spiderly 19.0.0 → 19.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 (442) hide show
  1. package/eslint.config.js +32 -0
  2. package/ng-package.json +10 -0
  3. package/package.json +55 -67
  4. package/src/lib/components/auth/login/login.component.html +25 -0
  5. package/src/lib/components/auth/login/login.component.ts +77 -0
  6. package/src/lib/components/auth/partials/auth.component.html +29 -0
  7. package/src/lib/components/auth/partials/auth.component.ts +60 -0
  8. package/src/lib/components/auth/partials/login-verification.component.html +2 -0
  9. package/src/lib/components/auth/partials/login-verification.component.ts +41 -0
  10. package/src/lib/components/auth/partials/registration-verification.component.html +1 -0
  11. package/src/lib/components/auth/partials/registration-verification.component.ts +41 -0
  12. package/src/lib/components/auth/partials/verification-wrapper.component.html +39 -0
  13. package/src/lib/components/auth/partials/verification-wrapper.component.ts +68 -0
  14. package/src/lib/components/auth/registration/registration.component.html +31 -0
  15. package/src/lib/components/auth/registration/registration.component.ts +77 -0
  16. package/src/lib/components/base-details/role-base-details.component.html +33 -0
  17. package/src/lib/components/base-details/role-base-details.component.ts +194 -0
  18. package/src/lib/components/base-form/base-form copy.ts +356 -0
  19. package/src/lib/components/card-skeleton/card-skeleton.component.html +8 -0
  20. package/src/lib/components/card-skeleton/card-skeleton.component.ts +21 -0
  21. package/src/lib/components/footer/app.footer.component.ts +17 -0
  22. package/src/lib/components/footer/footer.component.html +3 -0
  23. package/src/lib/components/footer/footer.component.ts +17 -0
  24. package/src/lib/components/index-card/index-card.component.html +15 -0
  25. package/src/lib/components/index-card/index-card.component.ts +48 -0
  26. package/src/lib/components/info-card/info-card.component.html +18 -0
  27. package/src/lib/components/info-card/info-card.component.ts +29 -0
  28. package/src/lib/components/layout/layout-base.component.ts +140 -0
  29. package/src/lib/components/layout/sidebar/menuitem.component.html +40 -0
  30. package/src/lib/components/layout/sidebar/menuitem.component.ts +179 -0
  31. package/src/lib/components/layout/sidebar/sidebar-menu.component.html +6 -0
  32. package/src/lib/components/layout/sidebar/sidebar-menu.component.ts +44 -0
  33. package/src/lib/components/layout/sidebar/sidebar-menu.service.ts +22 -0
  34. package/src/lib/components/layout/sidebar/sidebar.component.html +1 -0
  35. package/src/lib/components/layout/sidebar/sidebar.component.ts +20 -0
  36. package/src/lib/components/layout/topbar/topbar.component.html +64 -0
  37. package/src/lib/components/layout/topbar/topbar.component.ts +137 -0
  38. package/src/lib/components/not-found/not-found.component.html +27 -0
  39. package/src/lib/components/not-found/not-found.component.ts +22 -0
  40. package/src/lib/components/required/required.component.html +1 -0
  41. package/src/lib/components/required/required.component.ts +13 -0
  42. package/src/lib/components/spiderly-buttons/google-button/google-button.component.html +5 -0
  43. package/src/lib/components/spiderly-buttons/google-button/google-button.component.ts +53 -0
  44. package/src/lib/components/spiderly-buttons/return-button/return-button.component.html +3 -0
  45. package/src/lib/components/spiderly-buttons/return-button/return-button.component.ts +35 -0
  46. package/src/lib/components/spiderly-buttons/spiderly-button/spiderly-button.component.html +14 -0
  47. package/src/lib/components/spiderly-buttons/spiderly-button/spiderly-button.component.ts +27 -0
  48. package/src/lib/components/spiderly-buttons/spiderly-button-base/spiderly-button-base.ts +61 -0
  49. package/src/lib/components/spiderly-buttons/spiderly-split-button/spiderly-split-button.component.html +15 -0
  50. package/src/lib/components/spiderly-buttons/spiderly-split-button/spiderly-split-button.component.ts +24 -0
  51. package/src/lib/components/spiderly-data-table/spiderly-data-table.component.html +93 -0
  52. package/{styles → src/lib}/components/spiderly-data-table/spiderly-data-table.component.scss +15 -0
  53. package/src/lib/components/spiderly-data-table/spiderly-data-table.component.ts +614 -0
  54. package/src/lib/components/spiderly-delete-dialog/spiderly-delete-confirmation.component.html +17 -0
  55. package/src/lib/components/spiderly-delete-dialog/spiderly-delete-confirmation.component.ts +39 -0
  56. package/src/lib/components/spiderly-form-control/spiderly-form-control.ts +60 -0
  57. package/src/lib/components/spiderly-panels/panel-body/panel-body.component.html +8 -0
  58. package/src/lib/components/spiderly-panels/panel-body/panel-body.component.ts +16 -0
  59. package/src/lib/components/spiderly-panels/panel-footer/panel-footer.component.html +8 -0
  60. package/{styles → src/lib}/components/spiderly-panels/panel-footer/panel-footer.component.scss +3 -3
  61. package/src/lib/components/spiderly-panels/panel-footer/panel-footer.component.ts +15 -0
  62. package/src/lib/components/spiderly-panels/panel-header/panel-header.component.html +25 -0
  63. package/src/lib/components/spiderly-panels/panel-header/panel-header.component.ts +69 -0
  64. package/src/lib/components/spiderly-panels/spiderly-card/spiderly-card.component.html +7 -0
  65. package/src/lib/components/spiderly-panels/spiderly-card/spiderly-card.component.ts +17 -0
  66. package/src/lib/components/spiderly-panels/spiderly-panel/spiderly-panel.component.html +40 -0
  67. package/src/lib/components/spiderly-panels/spiderly-panel/spiderly-panel.component.scss +11 -0
  68. package/src/lib/components/spiderly-panels/spiderly-panel/spiderly-panel.component.ts +42 -0
  69. package/src/lib/components/spiderly-panels/spiderly-panels.module.ts +32 -0
  70. package/src/lib/controls/base-autocomplete-control.ts +17 -0
  71. package/src/lib/controls/base-control.ts +60 -0
  72. package/src/lib/controls/base-dropdown-control.ts +37 -0
  73. package/src/lib/controls/spiderly-autocomplete/spiderly-autocomplete.component.html +36 -0
  74. package/src/lib/controls/spiderly-autocomplete/spiderly-autocomplete.component.ts +56 -0
  75. package/src/lib/controls/spiderly-calendar/spiderly-calendar.component.html +21 -0
  76. package/src/lib/controls/spiderly-calendar/spiderly-calendar.component.ts +37 -0
  77. package/src/lib/controls/spiderly-checkbox/spiderly-checkbox.component.html +16 -0
  78. package/src/lib/controls/spiderly-checkbox/spiderly-checkbox.component.ts +38 -0
  79. package/src/lib/controls/spiderly-colorpick/spiderly-colorpick.component.html +33 -0
  80. package/src/lib/controls/spiderly-colorpick/spiderly-colorpick.component.ts +40 -0
  81. package/src/lib/controls/spiderly-controls.module.ts +61 -0
  82. package/src/lib/controls/spiderly-dropdown/spiderly-dropdown.component.html +27 -0
  83. package/src/lib/controls/spiderly-dropdown/spiderly-dropdown.component.ts +39 -0
  84. package/src/lib/controls/spiderly-editor/spiderly-editor.component.html +22 -0
  85. package/src/lib/controls/spiderly-editor/spiderly-editor.component.ts +58 -0
  86. package/src/lib/controls/spiderly-file/spiderly-file.component.html +54 -0
  87. package/src/lib/controls/spiderly-file/spiderly-file.component.ts +123 -0
  88. package/src/lib/controls/spiderly-multiautocomplete/spiderly-multiautocomplete.component.html +30 -0
  89. package/src/lib/controls/spiderly-multiautocomplete/spiderly-multiautocomplete.component.ts +38 -0
  90. package/src/lib/controls/spiderly-multiselect/spiderly-multiselect.component.html +23 -0
  91. package/src/lib/controls/spiderly-multiselect/spiderly-multiselect.component.ts +32 -0
  92. package/src/lib/controls/spiderly-number/spiderly-number.component.html +19 -0
  93. package/src/lib/controls/spiderly-number/spiderly-number.component.ts +37 -0
  94. package/src/lib/controls/spiderly-password/spiderly-password.component.html +17 -0
  95. package/src/lib/controls/spiderly-password/spiderly-password.component.ts +34 -0
  96. package/src/lib/controls/spiderly-textarea/spiderly-textarea.component.html +18 -0
  97. package/src/lib/controls/spiderly-textarea/spiderly-textarea.component.ts +32 -0
  98. package/src/lib/controls/spiderly-textbox/spiderly-textbox.component.html +23 -0
  99. package/src/lib/controls/spiderly-textbox/spiderly-textbox.component.ts +41 -0
  100. package/src/lib/entities/base-entity.ts +25 -0
  101. package/src/lib/entities/codebook.ts +23 -0
  102. package/src/lib/entities/init-company-auth-dialog-details.ts +22 -0
  103. package/src/lib/entities/init-top-bar-data.ts +35 -0
  104. package/src/lib/entities/is-authorized-for-save-event.ts +22 -0
  105. package/src/lib/entities/last-menu-icon-index-clicked.ts +18 -0
  106. package/src/lib/entities/lazy-load-selected-ids-result.ts +22 -0
  107. package/{lib/entities/menuchangeevent.d.ts → src/lib/entities/menuchangeevent.ts} +4 -4
  108. package/src/lib/entities/mime-type.ts +15 -0
  109. package/src/lib/entities/namebook.ts +22 -0
  110. package/src/lib/entities/primeng-option.ts +23 -0
  111. package/src/lib/entities/readonly-object.ts +1 -0
  112. package/src/lib/entities/security-entities.ts +548 -0
  113. package/src/lib/entities/simple-save-result.ts +19 -0
  114. package/src/lib/entities/spiderly-button.ts +30 -0
  115. package/{lib/entities/table-filter-context.d.ts → src/lib/entities/table-filter-context.ts} +6 -5
  116. package/src/lib/entities/table-filter-sort-meta.ts +5 -0
  117. package/{lib/entities/table-filter.d.ts → src/lib/entities/table-filter.ts} +48 -23
  118. package/src/lib/entities/table-response.ts +5 -0
  119. package/src/lib/enums/security-enums.ts +28 -0
  120. package/src/lib/enums/verification-type-codes.ts +5 -0
  121. package/src/lib/guards/auth.guard.ts +39 -0
  122. package/src/lib/guards/not-auth.guard.ts +32 -0
  123. package/src/lib/handlers/spiderly-error-handler.ts +32 -0
  124. package/src/lib/handlers/spiderly-transloco-fallback-strategy.ts +25 -0
  125. package/src/lib/interceptors/http-loading.interceptor.ts +21 -0
  126. package/src/lib/interceptors/json-parser.interceptor.ts +44 -0
  127. package/src/lib/interceptors/jwt.interceptor.ts +18 -0
  128. package/src/lib/interceptors/unauthorized.interceptor.ts +77 -0
  129. package/src/lib/modules/core.module.ts +22 -0
  130. package/src/lib/modules/primeng.module.ts +122 -0
  131. package/src/lib/modules/spiderly-transloco.module.ts +50 -0
  132. package/src/lib/services/api.service.security.ts +120 -0
  133. package/src/lib/services/app-initializer.ts +9 -0
  134. package/src/lib/services/app-layout-base.service.ts +184 -0
  135. package/src/lib/services/auth-base.service.ts +271 -0
  136. package/src/lib/services/base-form.service.ts +178 -0
  137. package/src/lib/services/config-base.service.ts +36 -0
  138. package/src/lib/services/helper-functions.ts +288 -0
  139. package/src/lib/services/spiderly-message.service.ts +66 -0
  140. package/src/lib/services/spiderly-transloco-loader.ts +15 -0
  141. package/src/lib/services/translate-labels-abstract.service.ts +13 -0
  142. package/src/lib/services/validator-abstract.service.ts +63 -0
  143. package/{styles → src/lib}/styles/layout/_config.scss +2 -2
  144. package/{styles → src/lib}/styles/layout/_content.scss +2 -0
  145. package/{styles → src/lib}/styles/layout/_footer.scss +2 -0
  146. package/{styles → src/lib}/styles/layout/_main.scss +6 -3
  147. package/{styles → src/lib}/styles/layout/_menu.scss +10 -7
  148. package/{styles → src/lib}/styles/layout/_mixins.scss +2 -2
  149. package/{styles → src/lib}/styles/layout/_preloading.scss +1 -1
  150. package/{styles → src/lib}/styles/layout/_responsive.scss +2 -0
  151. package/{styles → src/lib}/styles/layout/_spiderly-controls.scss +2 -0
  152. package/{styles → src/lib}/styles/layout/_topbar.scss +16 -11
  153. package/{styles → src/lib}/styles/layout/_typography.scss +1 -1
  154. package/{styles → src/lib}/styles/layout/_utils.scss +1 -1
  155. package/{styles → src/lib}/styles/layout/_variables.scss +59 -53
  156. package/src/lib/styles/layout/layout.scss +13 -0
  157. package/{styles → src/lib}/styles/shared.scss +70 -42
  158. package/src/lib/styles/styles.scss +3 -0
  159. package/{public-api.d.ts → src/public-api.ts} +103 -90
  160. package/tsconfig.lib.json +17 -0
  161. package/tsconfig.lib.prod.json +10 -0
  162. package/tsconfig.spec.json +14 -0
  163. package/esm2022/lib/components/auth/auth.module.mjs +0 -65
  164. package/esm2022/lib/components/auth/login/login.component.mjs +0 -60
  165. package/esm2022/lib/components/auth/partials/auth.component.mjs +0 -53
  166. package/esm2022/lib/components/auth/partials/login-verification.component.mjs +0 -39
  167. package/esm2022/lib/components/auth/partials/registration-verification.component.mjs +0 -37
  168. package/esm2022/lib/components/auth/partials/verification-wrapper.component.mjs +0 -74
  169. package/esm2022/lib/components/auth/registration/registration.component.mjs +0 -59
  170. package/esm2022/lib/components/base-details/role-base-details.component.mjs +0 -171
  171. package/esm2022/lib/components/base-form/base-form copy.mjs +0 -247
  172. package/esm2022/lib/components/card-skeleton/card-skeleton.component.mjs +0 -25
  173. package/esm2022/lib/components/footer/footer.component.mjs +0 -16
  174. package/esm2022/lib/components/index-card/index-card.component.mjs +0 -57
  175. package/esm2022/lib/components/info-card/info-card.component.mjs +0 -29
  176. package/esm2022/lib/components/layout/layout-base.component.mjs +0 -121
  177. package/esm2022/lib/components/layout/sidebar/menuitem.component.mjs +0 -161
  178. package/esm2022/lib/components/layout/sidebar/sidebar-menu.component.mjs +0 -34
  179. package/esm2022/lib/components/layout/sidebar/sidebar-menu.service.mjs +0 -26
  180. package/esm2022/lib/components/layout/sidebar/sidebar.component.mjs +0 -21
  181. package/esm2022/lib/components/layout/topbar/topbar.component.mjs +0 -115
  182. package/esm2022/lib/components/not-found/not-found.component.mjs +0 -20
  183. package/esm2022/lib/components/required/required.component.mjs +0 -12
  184. package/esm2022/lib/components/spiderly-buttons/google-button/google-button.component.mjs +0 -43
  185. package/esm2022/lib/components/spiderly-buttons/return-button/return-button.component.mjs +0 -37
  186. package/esm2022/lib/components/spiderly-buttons/spiderly-button/spiderly-button.component.mjs +0 -20
  187. package/esm2022/lib/components/spiderly-buttons/spiderly-button-base/spiderly-button-base.mjs +0 -68
  188. package/esm2022/lib/components/spiderly-buttons/spiderly-split-button/spiderly-split-button.component.mjs +0 -22
  189. package/esm2022/lib/components/spiderly-data-table/spiderly-data-table.component.mjs +0 -501
  190. package/esm2022/lib/components/spiderly-delete-dialog/spiderly-delete-confirmation.component.mjs +0 -42
  191. package/esm2022/lib/components/spiderly-form-control/spiderly-form-control.mjs +0 -36
  192. package/esm2022/lib/components/spiderly-panels/panel-body/panel-body.component.mjs +0 -19
  193. package/esm2022/lib/components/spiderly-panels/panel-footer/panel-footer.component.mjs +0 -14
  194. package/esm2022/lib/components/spiderly-panels/panel-header/panel-header.component.mjs +0 -49
  195. package/esm2022/lib/components/spiderly-panels/spiderly-card/spiderly-card.component.mjs +0 -20
  196. package/esm2022/lib/components/spiderly-panels/spiderly-panel/spiderly-panel.component.mjs +0 -63
  197. package/esm2022/lib/components/spiderly-panels/spiderly-panels.module.mjs +0 -49
  198. package/esm2022/lib/controls/base-autocomplete-control.mjs +0 -18
  199. package/esm2022/lib/controls/base-control.mjs +0 -62
  200. package/esm2022/lib/controls/base-dropdown-control.mjs +0 -37
  201. package/esm2022/lib/controls/spiderly-autocomplete/spiderly-autocomplete.component.mjs +0 -60
  202. package/esm2022/lib/controls/spiderly-calendar/spiderly-calendar.component.mjs +0 -39
  203. package/esm2022/lib/controls/spiderly-checkbox/spiderly-checkbox.component.mjs +0 -45
  204. package/esm2022/lib/controls/spiderly-colorpick/spiderly-colorpick.component.mjs +0 -40
  205. package/esm2022/lib/controls/spiderly-controls.module.mjs +0 -112
  206. package/esm2022/lib/controls/spiderly-dropdown/spiderly-dropdown.component.mjs +0 -40
  207. package/esm2022/lib/controls/spiderly-editor/spiderly-editor.component.mjs +0 -59
  208. package/esm2022/lib/controls/spiderly-file/spiderly-file.component.mjs +0 -106
  209. package/esm2022/lib/controls/spiderly-multiautocomplete/spiderly-multiautocomplete.component.mjs +0 -38
  210. package/esm2022/lib/controls/spiderly-multiselect/spiderly-multiselect.component.mjs +0 -34
  211. package/esm2022/lib/controls/spiderly-number/spiderly-number.component.mjs +0 -44
  212. package/esm2022/lib/controls/spiderly-password/spiderly-password.component.mjs +0 -37
  213. package/esm2022/lib/controls/spiderly-textarea/spiderly-textarea.component.mjs +0 -34
  214. package/esm2022/lib/controls/spiderly-textbox/spiderly-textbox.component.mjs +0 -45
  215. package/esm2022/lib/entities/base-entity.mjs +0 -18
  216. package/esm2022/lib/entities/codebook.mjs +0 -10
  217. package/esm2022/lib/entities/init-company-auth-dialog-details.mjs +0 -9
  218. package/esm2022/lib/entities/init-top-bar-data.mjs +0 -12
  219. package/esm2022/lib/entities/is-authorized-for-save-event.mjs +0 -9
  220. package/esm2022/lib/entities/last-menu-icon-index-clicked.mjs +0 -8
  221. package/esm2022/lib/entities/lazy-load-selected-ids-result.mjs +0 -11
  222. package/esm2022/lib/entities/menuchangeevent.mjs +0 -3
  223. package/esm2022/lib/entities/mime-type.mjs +0 -15
  224. package/esm2022/lib/entities/namebook.mjs +0 -9
  225. package/esm2022/lib/entities/primeng-option.mjs +0 -9
  226. package/esm2022/lib/entities/security-entities.mjs +0 -169
  227. package/esm2022/lib/entities/simple-save-result.mjs +0 -9
  228. package/esm2022/lib/entities/spiderly-button.mjs +0 -11
  229. package/esm2022/lib/entities/table-filter-context.mjs +0 -3
  230. package/esm2022/lib/entities/table-filter-sort-meta.mjs +0 -3
  231. package/esm2022/lib/entities/table-filter.mjs +0 -15
  232. package/esm2022/lib/entities/table-response.mjs +0 -3
  233. package/esm2022/lib/enums/security-enums.mjs +0 -26
  234. package/esm2022/lib/enums/verification-type-codes.mjs +0 -6
  235. package/esm2022/lib/guards/auth.guard.mjs +0 -40
  236. package/esm2022/lib/guards/not-auth.guard.mjs +0 -32
  237. package/esm2022/lib/handlers/spiderly-error-handler.mjs +0 -30
  238. package/esm2022/lib/handlers/spiderly-transloco-fallback-strategy.mjs +0 -24
  239. package/esm2022/lib/interceptors/http-loading.interceptor.mjs +0 -27
  240. package/esm2022/lib/interceptors/json-parser.interceptor.mjs +0 -47
  241. package/esm2022/lib/interceptors/jwt.interceptor.mjs +0 -27
  242. package/esm2022/lib/interceptors/unauthorized.interceptor.mjs +0 -64
  243. package/esm2022/lib/modules/core.module.mjs +0 -140
  244. package/esm2022/lib/modules/primeng.module.mjs +0 -278
  245. package/esm2022/lib/modules/spiderly-transloco.module.mjs +0 -42
  246. package/esm2022/lib/services/api.service.security.mjs +0 -86
  247. package/esm2022/lib/services/app-initializer.mjs +0 -6
  248. package/esm2022/lib/services/app-layout-base.service.mjs +0 -132
  249. package/esm2022/lib/services/auth-base.service.mjs +0 -220
  250. package/esm2022/lib/services/base-form.service.mjs +0 -124
  251. package/esm2022/lib/services/config-base.service.mjs +0 -33
  252. package/esm2022/lib/services/helper-functions.mjs +0 -229
  253. package/esm2022/lib/services/spiderly-message.service.mjs +0 -64
  254. package/esm2022/lib/services/spiderly-transloco-loader.mjs +0 -20
  255. package/esm2022/lib/services/translate-labels-abstract.service.mjs +0 -15
  256. package/esm2022/lib/services/validator-abstract.service.mjs +0 -51
  257. package/esm2022/public-api.mjs +0 -94
  258. package/esm2022/spiderly.mjs +0 -5
  259. package/fesm2022/spiderly.mjs +0 -4805
  260. package/fesm2022/spiderly.mjs.map +0 -1
  261. package/index.d.ts +0 -5
  262. package/lib/components/auth/auth.module.d.ts +0 -17
  263. package/lib/components/auth/login/login.component.d.ts +0 -35
  264. package/lib/components/auth/partials/auth.component.d.ts +0 -21
  265. package/lib/components/auth/partials/login-verification.component.d.ts +0 -18
  266. package/lib/components/auth/partials/registration-verification.component.d.ts +0 -17
  267. package/lib/components/auth/partials/verification-wrapper.component.d.ts +0 -31
  268. package/lib/components/auth/registration/registration.component.d.ts +0 -34
  269. package/lib/components/base-details/role-base-details.component.d.ts +0 -50
  270. package/lib/components/base-form/base-form copy.d.ts +0 -54
  271. package/lib/components/card-skeleton/card-skeleton.component.d.ts +0 -12
  272. package/lib/components/footer/footer.component.d.ts +0 -9
  273. package/lib/components/index-card/index-card.component.d.ts +0 -22
  274. package/lib/components/info-card/info-card.component.d.ts +0 -11
  275. package/lib/components/layout/layout-base.component.d.ts +0 -37
  276. package/lib/components/layout/sidebar/menuitem.component.d.ts +0 -43
  277. package/lib/components/layout/sidebar/sidebar-menu.component.d.ts +0 -23
  278. package/lib/components/layout/sidebar/sidebar-menu.service.d.ts +0 -12
  279. package/lib/components/layout/sidebar/sidebar.component.d.ts +0 -11
  280. package/lib/components/layout/topbar/topbar.component.d.ts +0 -45
  281. package/lib/components/not-found/not-found.component.d.ts +0 -9
  282. package/lib/components/required/required.component.d.ts +0 -6
  283. package/lib/components/spiderly-buttons/google-button/google-button.component.d.ts +0 -17
  284. package/lib/components/spiderly-buttons/return-button/return-button.component.d.ts +0 -10
  285. package/lib/components/spiderly-buttons/spiderly-button/spiderly-button.component.d.ts +0 -6
  286. package/lib/components/spiderly-buttons/spiderly-button-base/spiderly-button-base.d.ts +0 -27
  287. package/lib/components/spiderly-buttons/spiderly-split-button/spiderly-split-button.component.d.ts +0 -8
  288. package/lib/components/spiderly-data-table/spiderly-data-table.component.d.ts +0 -157
  289. package/lib/components/spiderly-delete-dialog/spiderly-delete-confirmation.component.d.ts +0 -11
  290. package/lib/components/spiderly-form-control/spiderly-form-control.d.ts +0 -37
  291. package/lib/components/spiderly-panels/panel-body/panel-body.component.d.ts +0 -9
  292. package/lib/components/spiderly-panels/panel-footer/panel-footer.component.d.ts +0 -8
  293. package/lib/components/spiderly-panels/panel-header/panel-header.component.d.ts +0 -29
  294. package/lib/components/spiderly-panels/spiderly-card/spiderly-card.component.d.ts +0 -10
  295. package/lib/components/spiderly-panels/spiderly-panel/spiderly-panel.component.d.ts +0 -25
  296. package/lib/components/spiderly-panels/spiderly-panels.module.d.ts +0 -13
  297. package/lib/controls/base-autocomplete-control.d.ts +0 -9
  298. package/lib/controls/base-control.d.ts +0 -23
  299. package/lib/controls/base-dropdown-control.d.ts +0 -18
  300. package/lib/controls/spiderly-autocomplete/spiderly-autocomplete.component.d.ts +0 -18
  301. package/lib/controls/spiderly-calendar/spiderly-calendar.component.d.ts +0 -13
  302. package/lib/controls/spiderly-checkbox/spiderly-checkbox.component.d.ts +0 -14
  303. package/lib/controls/spiderly-colorpick/spiderly-colorpick.component.d.ts +0 -11
  304. package/lib/controls/spiderly-controls.module.d.ts +0 -22
  305. package/lib/controls/spiderly-dropdown/spiderly-dropdown.component.d.ts +0 -14
  306. package/lib/controls/spiderly-editor/spiderly-editor.component.d.ts +0 -16
  307. package/lib/controls/spiderly-file/spiderly-file.component.d.ts +0 -36
  308. package/lib/controls/spiderly-multiautocomplete/spiderly-multiautocomplete.component.d.ts +0 -13
  309. package/lib/controls/spiderly-multiselect/spiderly-multiselect.component.d.ts +0 -11
  310. package/lib/controls/spiderly-number/spiderly-number.component.d.ts +0 -15
  311. package/lib/controls/spiderly-password/spiderly-password.component.d.ts +0 -12
  312. package/lib/controls/spiderly-textarea/spiderly-textarea.component.d.ts +0 -11
  313. package/lib/controls/spiderly-textbox/spiderly-textbox.component.d.ts +0 -15
  314. package/lib/entities/base-entity.d.ts +0 -14
  315. package/lib/entities/codebook.d.ts +0 -9
  316. package/lib/entities/init-company-auth-dialog-details.d.ts +0 -9
  317. package/lib/entities/init-top-bar-data.d.ts +0 -16
  318. package/lib/entities/is-authorized-for-save-event.d.ts +0 -9
  319. package/lib/entities/last-menu-icon-index-clicked.d.ts +0 -7
  320. package/lib/entities/lazy-load-selected-ids-result.d.ts +0 -9
  321. package/lib/entities/mime-type.d.ts +0 -11
  322. package/lib/entities/namebook.d.ts +0 -9
  323. package/lib/entities/primeng-option.d.ts +0 -9
  324. package/lib/entities/security-entities.d.ts +0 -211
  325. package/lib/entities/simple-save-result.d.ts +0 -7
  326. package/lib/entities/spiderly-button.d.ts +0 -13
  327. package/lib/entities/table-filter-sort-meta.d.ts +0 -4
  328. package/lib/entities/table-response.d.ts +0 -4
  329. package/lib/enums/security-enums.d.ts +0 -22
  330. package/lib/enums/verification-type-codes.d.ts +0 -4
  331. package/lib/guards/auth.guard.d.ts +0 -15
  332. package/lib/guards/not-auth.guard.d.ts +0 -12
  333. package/lib/handlers/spiderly-error-handler.d.ts +0 -14
  334. package/lib/handlers/spiderly-transloco-fallback-strategy.d.ts +0 -13
  335. package/lib/interceptors/http-loading.interceptor.d.ts +0 -11
  336. package/lib/interceptors/json-parser.interceptor.d.ts +0 -11
  337. package/lib/interceptors/jwt.interceptor.d.ts +0 -11
  338. package/lib/interceptors/unauthorized.interceptor.d.ts +0 -16
  339. package/lib/modules/core.module.d.ts +0 -13
  340. package/lib/modules/primeng.module.d.ts +0 -42
  341. package/lib/modules/spiderly-transloco.module.d.ts +0 -14
  342. package/lib/services/api.service.security.d.ts +0 -35
  343. package/lib/services/app-initializer.d.ts +0 -4
  344. package/lib/services/app-layout-base.service.d.ts +0 -60
  345. package/lib/services/auth-base.service.d.ts +0 -55
  346. package/lib/services/base-form.service.d.ts +0 -27
  347. package/lib/services/config-base.service.d.ts +0 -24
  348. package/lib/services/helper-functions.d.ts +0 -37
  349. package/lib/services/spiderly-message.service.d.ts +0 -17
  350. package/lib/services/spiderly-transloco-loader.d.ts +0 -10
  351. package/lib/services/translate-labels-abstract.service.d.ts +0 -7
  352. package/lib/services/validator-abstract.service.d.ts +0 -13
  353. package/styles/styles/layout/layout.scss +0 -13
  354. package/styles/styles/styles.scss +0 -6
  355. package/styles/styles/theme/base/_colors.scss +0 -18
  356. package/styles/styles/theme/base/_common.scss +0 -75
  357. package/styles/styles/theme/base/_components.scss +0 -106
  358. package/styles/styles/theme/base/_mixins.scss +0 -343
  359. package/styles/styles/theme/base/components/button/_button.scss +0 -564
  360. package/styles/styles/theme/base/components/button/_speeddial.scss +0 -96
  361. package/styles/styles/theme/base/components/button/_splitbutton.scss +0 -381
  362. package/styles/styles/theme/base/components/data/_carousel.scss +0 -37
  363. package/styles/styles/theme/base/components/data/_datatable.scss +0 -338
  364. package/styles/styles/theme/base/components/data/_dataview.scss +0 -55
  365. package/styles/styles/theme/base/components/data/_filter.scss +0 -138
  366. package/styles/styles/theme/base/components/data/_orderlist.scss +0 -103
  367. package/styles/styles/theme/base/components/data/_organizationchart.scss +0 -50
  368. package/styles/styles/theme/base/components/data/_paginator.scss +0 -92
  369. package/styles/styles/theme/base/components/data/_picklist.scss +0 -103
  370. package/styles/styles/theme/base/components/data/_timeline.scss +0 -81
  371. package/styles/styles/theme/base/components/data/_tree.scss +0 -149
  372. package/styles/styles/theme/base/components/data/_treetable.scss +0 -256
  373. package/styles/styles/theme/base/components/data/_virtualscroller.scss +0 -28
  374. package/styles/styles/theme/base/components/file/_fileupload.scss +0 -64
  375. package/styles/styles/theme/base/components/input/_autocomplete.scss +0 -118
  376. package/styles/styles/theme/base/components/input/_calendar.scss +0 -263
  377. package/styles/styles/theme/base/components/input/_cascadeselect.scss +0 -130
  378. package/styles/styles/theme/base/components/input/_checkbox.scss +0 -90
  379. package/styles/styles/theme/base/components/input/_chips.scss +0 -55
  380. package/styles/styles/theme/base/components/input/_colorpicker.scss +0 -26
  381. package/styles/styles/theme/base/components/input/_dropdown.scss +0 -152
  382. package/styles/styles/theme/base/components/input/_editor.scss +0 -122
  383. package/styles/styles/theme/base/components/input/_inputgroup.scss +0 -75
  384. package/styles/styles/theme/base/components/input/_inputmask.scss +0 -16
  385. package/styles/styles/theme/base/components/input/_inputnumber.scss +0 -28
  386. package/styles/styles/theme/base/components/input/_inputswitch.scss +0 -60
  387. package/styles/styles/theme/base/components/input/_inputtext.scss +0 -100
  388. package/styles/styles/theme/base/components/input/_listbox.scss +0 -82
  389. package/styles/styles/theme/base/components/input/_multiselect.scss +0 -173
  390. package/styles/styles/theme/base/components/input/_password.scss +0 -52
  391. package/styles/styles/theme/base/components/input/_radiobutton.scss +0 -78
  392. package/styles/styles/theme/base/components/input/_rating.scss +0 -55
  393. package/styles/styles/theme/base/components/input/_selectbutton.scss +0 -50
  394. package/styles/styles/theme/base/components/input/_slider.scss +0 -71
  395. package/styles/styles/theme/base/components/input/_togglebutton.scss +0 -48
  396. package/styles/styles/theme/base/components/input/_treeselect.scss +0 -139
  397. package/styles/styles/theme/base/components/menu/_breadcrumb.scss +0 -42
  398. package/styles/styles/theme/base/components/menu/_contextmenu.scss +0 -39
  399. package/styles/styles/theme/base/components/menu/_dock.scss +0 -95
  400. package/styles/styles/theme/base/components/menu/_megamenu.scss +0 -55
  401. package/styles/styles/theme/base/components/menu/_menu.scss +0 -37
  402. package/styles/styles/theme/base/components/menu/_menubar.scss +0 -141
  403. package/styles/styles/theme/base/components/menu/_panelmenu.scss +0 -153
  404. package/styles/styles/theme/base/components/menu/_slidemenu.scss +0 -59
  405. package/styles/styles/theme/base/components/menu/_steps.scss +0 -56
  406. package/styles/styles/theme/base/components/menu/_tabmenu.scss +0 -74
  407. package/styles/styles/theme/base/components/menu/_tieredmenu.scss +0 -43
  408. package/styles/styles/theme/base/components/messages/_inlinemessage.scss +0 -69
  409. package/styles/styles/theme/base/components/messages/_message.scss +0 -107
  410. package/styles/styles/theme/base/components/messages/_toast.scss +0 -103
  411. package/styles/styles/theme/base/components/misc/_avatar.scss +0 -30
  412. package/styles/styles/theme/base/components/misc/_badge.scss +0 -48
  413. package/styles/styles/theme/base/components/misc/_blockui.scss +0 -0
  414. package/styles/styles/theme/base/components/misc/_chip.scss +0 -42
  415. package/styles/styles/theme/base/components/misc/_inplace.scss +0 -17
  416. package/styles/styles/theme/base/components/misc/_progressbar.scss +0 -17
  417. package/styles/styles/theme/base/components/misc/_scrolltop.scss +0 -25
  418. package/styles/styles/theme/base/components/misc/_skeleton.scss +0 -8
  419. package/styles/styles/theme/base/components/misc/_tag.scss +0 -40
  420. package/styles/styles/theme/base/components/misc/_terminal.scss +0 -12
  421. package/styles/styles/theme/base/components/multimedia/_galleria.scss +0 -155
  422. package/styles/styles/theme/base/components/multimedia/_image.scss +0 -49
  423. package/styles/styles/theme/base/components/overlay/_confirmpopup.scss +0 -72
  424. package/styles/styles/theme/base/components/overlay/_dialog.scss +0 -73
  425. package/styles/styles/theme/base/components/overlay/_overlaypanel.scss +0 -64
  426. package/styles/styles/theme/base/components/overlay/_sidebar.scss +0 -27
  427. package/styles/styles/theme/base/components/overlay/_tooltip.scss +0 -33
  428. package/styles/styles/theme/base/components/panel/_accordion.scss +0 -119
  429. package/styles/styles/theme/base/components/panel/_card.scss +0 -30
  430. package/styles/styles/theme/base/components/panel/_divider.scss +0 -31
  431. package/styles/styles/theme/base/components/panel/_fieldset.scss +0 -47
  432. package/styles/styles/theme/base/components/panel/_panel.scss +0 -58
  433. package/styles/styles/theme/base/components/panel/_scrollpanel.scss +0 -6
  434. package/styles/styles/theme/base/components/panel/_splitter.scss +0 -19
  435. package/styles/styles/theme/base/components/panel/_tabview.scss +0 -82
  436. package/styles/styles/theme/base/components/panel/_toolbar.scss +0 -11
  437. package/styles/styles/theme/saga/_extensions.scss +0 -27
  438. package/styles/styles/theme/saga/_variables.scss +0 -1
  439. package/styles/styles/theme/saga/saga-blue/_extensions.scss +0 -2
  440. package/styles/styles/theme/saga/saga-blue/_fonts.scss +0 -1
  441. package/styles/styles/theme/saga/saga-blue/_variables.scss +0 -1
  442. package/styles/styles/theme/saga/saga-blue/theme.scss +0 -4
@@ -1,42 +0,0 @@
1
- import { provideTransloco, TranslocoModule } from '@jsverse/transloco';
2
- import { NgModule } from '@angular/core';
3
- import { SpiderlyTranslocoLoader } from '../services/spiderly-transloco-loader';
4
- import { provideTranslocoPreloadLangs } from '@jsverse/transloco-preload-langs';
5
- import * as i0 from "@angular/core";
6
- export class SpiderlyTranslocoModule {
7
- static forRoot(config) {
8
- return {
9
- ngModule: SpiderlyTranslocoModule,
10
- providers: [
11
- provideTranslocoPreloadLangs(['sr-Latn-RS']),
12
- provideTransloco({
13
- config: {
14
- availableLangs: config?.availableLangs ?? [
15
- 'en', 'en.generated',
16
- 'sr-Latn-RS', 'sr-Latn-RS.generated',
17
- ],
18
- defaultLang: config?.defaultLang ?? 'en',
19
- fallbackLang: config?.fallbackLang ?? 'en.generated',
20
- missingHandler: {
21
- useFallbackTranslation: true,
22
- logMissingKey: false,
23
- },
24
- reRenderOnLangChange: true,
25
- },
26
- loader: SpiderlyTranslocoLoader
27
- }),
28
- ],
29
- };
30
- }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyTranslocoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
32
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyTranslocoModule, imports: [TranslocoModule], exports: [TranslocoModule] }); }
33
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyTranslocoModule, imports: [TranslocoModule, TranslocoModule] }); }
34
- }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyTranslocoModule, decorators: [{
36
- type: NgModule,
37
- args: [{
38
- imports: [TranslocoModule],
39
- exports: [TranslocoModule],
40
- }]
41
- }] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpZGVybHktdHJhbnNsb2NvLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwaWRlcmx5L3NyYy9saWIvbW9kdWxlcy9zcGlkZXJseS10cmFuc2xvY28ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBMEIsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0YsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBTWhGLE1BQU0sT0FBTyx1QkFBdUI7SUFFbEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFnQztRQUM3QyxPQUFPO1lBQ0wsUUFBUSxFQUFFLHVCQUF1QjtZQUNqQyxTQUFTLEVBQUU7Z0JBQ1QsNEJBQTRCLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDNUMsZ0JBQWdCLENBQUM7b0JBQ2YsTUFBTSxFQUFFO3dCQUNOLGNBQWMsRUFBRSxNQUFNLEVBQUUsY0FBYyxJQUFJOzRCQUN4QyxJQUFJLEVBQUUsY0FBYzs0QkFDcEIsWUFBWSxFQUFFLHNCQUFzQjt5QkFDckM7d0JBQ0QsV0FBVyxFQUFFLE1BQU0sRUFBRSxXQUFXLElBQUksSUFBSTt3QkFDeEMsWUFBWSxFQUFFLE1BQU0sRUFBRSxZQUFZLElBQUksY0FBYzt3QkFDcEQsY0FBYyxFQUFFOzRCQUNkLHNCQUFzQixFQUFFLElBQUk7NEJBQzVCLGFBQWEsRUFBRSxLQUFLO3lCQUNyQjt3QkFDRCxvQkFBb0IsRUFBRSxJQUFJO3FCQUMzQjtvQkFDRCxNQUFNLEVBQUUsdUJBQXVCO2lCQUNoQyxDQUFDO2FBQ0g7U0FDRixDQUFDO0lBQ0osQ0FBQzsrR0F6QlUsdUJBQXVCO2dIQUF2Qix1QkFBdUIsWUFIeEIsZUFBZSxhQUNmLGVBQWU7Z0hBRWQsdUJBQXVCLFlBSHhCLGVBQWUsRUFDZixlQUFlOzs0RkFFZCx1QkFBdUI7a0JBSm5DLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUMxQixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJvdmlkZVRyYW5zbG9jbywgcHJvdmlkZVRyYW5zbG9jb0xvYWRlciwgVHJhbnNsb2NvTW9kdWxlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFNwaWRlcmx5VHJhbnNsb2NvTG9hZGVyIH0gZnJvbSAnLi4vc2VydmljZXMvc3BpZGVybHktdHJhbnNsb2NvLWxvYWRlcic7XHJcbmltcG9ydCB7IHByb3ZpZGVUcmFuc2xvY29QcmVsb2FkTGFuZ3MgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28tcHJlbG9hZC1sYW5ncyc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtUcmFuc2xvY29Nb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtUcmFuc2xvY29Nb2R1bGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3BpZGVybHlUcmFuc2xvY29Nb2R1bGUge1xyXG5cclxuICBzdGF0aWMgZm9yUm9vdChjb25maWc/OiBTcGlkZXJseVRyYW5zbG9jb0NvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8U3BpZGVybHlUcmFuc2xvY29Nb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBTcGlkZXJseVRyYW5zbG9jb01vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgcHJvdmlkZVRyYW5zbG9jb1ByZWxvYWRMYW5ncyhbJ3NyLUxhdG4tUlMnXSksXHJcbiAgICAgICAgcHJvdmlkZVRyYW5zbG9jbyh7XHJcbiAgICAgICAgICBjb25maWc6IHtcclxuICAgICAgICAgICAgYXZhaWxhYmxlTGFuZ3M6IGNvbmZpZz8uYXZhaWxhYmxlTGFuZ3MgPz8gW1xyXG4gICAgICAgICAgICAgICdlbicsICdlbi5nZW5lcmF0ZWQnLFxyXG4gICAgICAgICAgICAgICdzci1MYXRuLVJTJywgJ3NyLUxhdG4tUlMuZ2VuZXJhdGVkJywgXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIGRlZmF1bHRMYW5nOiBjb25maWc/LmRlZmF1bHRMYW5nID8/ICdlbicsXHJcbiAgICAgICAgICAgIGZhbGxiYWNrTGFuZzogY29uZmlnPy5mYWxsYmFja0xhbmcgPz8gJ2VuLmdlbmVyYXRlZCcsXHJcbiAgICAgICAgICAgIG1pc3NpbmdIYW5kbGVyOiB7XHJcbiAgICAgICAgICAgICAgdXNlRmFsbGJhY2tUcmFuc2xhdGlvbjogdHJ1ZSxcclxuICAgICAgICAgICAgICBsb2dNaXNzaW5nS2V5OiBmYWxzZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgcmVSZW5kZXJPbkxhbmdDaGFuZ2U6IHRydWUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgbG9hZGVyOiBTcGlkZXJseVRyYW5zbG9jb0xvYWRlclxyXG4gICAgICAgIH0pLFxyXG4gICAgICBdLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNwaWRlcmx5VHJhbnNsb2NvQ29uZmlnIHtcclxuICBhdmFpbGFibGVMYW5nczogc3RyaW5nW107XHJcbiAgZGVmYXVsdExhbmc6IHN0cmluZztcclxuICBmYWxsYmFja0xhbmc6IHN0cmluZztcclxufSJdfQ==
@@ -1,86 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common/http";
4
- import * as i2 from "./config-base.service";
5
- export class ApiSecurityService {
6
- constructor(http, config) {
7
- this.http = http;
8
- this.config = config;
9
- //#region Authentication
10
- this.register = (request) => {
11
- return this.http.post(`${this.config.apiUrl}/Security/Register`, request, this.config.httpOptions);
12
- };
13
- this.sendRegistrationVerificationEmail = (registrationDTO) => {
14
- return this.http.post(`${this.config.apiUrl}/Security/SendRegistrationVerificationEmail`, registrationDTO, this.config.httpOptions);
15
- };
16
- this.login = (request) => {
17
- return this.http.post(`${this.config.apiUrl}/Security/Login`, request, this.config.httpOptions);
18
- };
19
- this.loginExternal = (externalProviderDTO) => {
20
- return this.http.post(`${this.config.apiUrl}/Security/LoginExternal`, externalProviderDTO, this.config.httpOptions);
21
- };
22
- this.sendLoginVerificationEmail = (loginDTO) => {
23
- return this.http.post(`${this.config.apiUrl}/Security/SendLoginVerificationEmail`, loginDTO, this.config.httpOptions);
24
- };
25
- this.logout = (browserId) => {
26
- return this.http.get(`${this.config.apiUrl}/Security/Logout?browserId=${browserId}`);
27
- };
28
- this.refreshToken = (request) => {
29
- return this.http.post(`${this.config.apiUrl}/Security/RefreshToken`, request, this.config.httpOptions);
30
- };
31
- //#endregion
32
- //#region User
33
- this.getCurrentUser = () => {
34
- return this.http.get(`${this.config.apiUrl}/Security/GetCurrentUser`, this.config.httpSkipSpinnerOptions);
35
- };
36
- this.getCurrentUserPermissionCodes = () => {
37
- return this.http.get(`${this.config.apiUrl}/Security/GetCurrentUserPermissionCodes`, this.config.httpSkipSpinnerOptions);
38
- };
39
- //#endregion
40
- //#region Role
41
- this.getRoleTableData = (dto) => {
42
- return this.http.post(`${this.config.apiUrl}/Security/GetRoleTableData`, dto, this.config.httpSkipSpinnerOptions);
43
- };
44
- this.exportRoleTableDataToExcel = (dto) => {
45
- return this.http.post(`${this.config.apiUrl}/Security/ExportRoleTableDataToExcel`, dto, this.config.httpOptions);
46
- };
47
- this.deleteRole = (id) => {
48
- return this.http.delete(`${this.config.apiUrl}/Security/DeleteRole?id=${id}`);
49
- };
50
- this.getRoleMainUIFormDTO = (id) => {
51
- return this.http.get(`${this.config.apiUrl}/Security/GetRoleMainUIFormDTO?id=${id}`);
52
- };
53
- this.getRole = (id) => {
54
- return this.http.get(`${this.config.apiUrl}/Security/GetRole?id=${id}`);
55
- };
56
- this.saveRole = (dto) => {
57
- return this.http.put(`${this.config.apiUrl}/Security/SaveRole`, dto, this.config.httpOptions);
58
- };
59
- this.getUsersNamebookListForRole = (roleId) => {
60
- return this.http.get(`${this.config.apiUrl}/Security/GetUsersNamebookListForRole?roleId=${roleId}`, this.config.httpSkipSpinnerOptions);
61
- };
62
- this.getPermissionsDropdownListForRole = () => {
63
- return this.http.get(`${this.config.apiUrl}/Security/GetPermissionsDropdownListForRole`, this.config.httpSkipSpinnerOptions);
64
- };
65
- this.getPermissionsNamebookListForRole = (roleId) => {
66
- return this.http.get(`${this.config.apiUrl}/Security/GetPermissionsNamebookListForRole?roleId=${roleId}`, this.config.httpSkipSpinnerOptions);
67
- };
68
- this.getUsersAutocompleteListForRole = (limit, query) => {
69
- return this.http.get(`${this.config.apiUrl}/Security/GetUsersAutocompleteListForRole?limit=${limit}&query=${query}`, this.config.httpSkipSpinnerOptions);
70
- };
71
- //#endregion
72
- //#region Notification
73
- this.getUnreadNotificationsCountForCurrentUser = () => {
74
- return this.http.get(`${this.config.apiUrl}/Notification/GetUnreadNotificationsCountForCurrentUser`, this.config.httpSkipSpinnerOptions);
75
- };
76
- }
77
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ApiSecurityService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigBaseService }], target: i0.ɵɵFactoryTarget.Injectable }); }
78
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ApiSecurityService, providedIn: 'root' }); }
79
- }
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ApiSecurityService, decorators: [{
81
- type: Injectable,
82
- args: [{
83
- providedIn: 'root'
84
- }]
85
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigBaseService }] });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2Uuc2VjdXJpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL3NlcnZpY2VzL2FwaS5zZXJ2aWNlLnNlY3VyaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFXM0MsTUFBTSxPQUFPLGtCQUFrQjtJQUUzQixZQUNjLElBQWdCLEVBQ2hCLE1BQXlCO1FBRHpCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFLdkMsd0JBQXdCO1FBRXhCLGFBQVEsR0FBRyxDQUFDLE9BQWlDLEVBQTBCLEVBQUU7WUFDckUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuSCxDQUFDLENBQUE7UUFFRCxzQ0FBaUMsR0FBRyxDQUFDLGVBQTZCLEVBQThDLEVBQUU7WUFDOUcsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBaUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sNkNBQTZDLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEssQ0FBQyxDQUFBO1FBRUQsVUFBSyxHQUFHLENBQUMsT0FBaUMsRUFBMEIsRUFBRTtZQUNsRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hILENBQUMsQ0FBQTtRQUVELGtCQUFhLEdBQUcsQ0FB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TSxtREFBbUQsS0FBSyxVQUFVLEtBQUssRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUN6SyxDQUFDLENBQUE7UUFFRCxZQUFZO1FBRVosc0JBQXNCO1FBRXRCLDhDQUF5QyxHQUFHLEdBQXVCLEVBQUU7WUFDakUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSx5REFBeUQsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDckosQ0FBQyxDQUFBO0lBL0ZELENBQUM7K0dBUFEsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGZixNQUFNOzs0RkFFVCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE5hbWVib29rIH0gZnJvbSAnLi4vZW50aXRpZXMvbmFtZWJvb2snO1xyXG5pbXBvcnQgeyBUYWJsZUZpbHRlciB9IGZyb20gJy4uL2VudGl0aWVzL3RhYmxlLWZpbHRlcic7XHJcbmltcG9ydCB7IExvZ2luLCBSZWdpc3RyYXRpb24sIFJlZ2lzdHJhdGlvblZlcmlmaWNhdGlvblJlc3VsdCwgUmVmcmVzaFRva2VuUmVxdWVzdCwgQXV0aFJlc3VsdCwgUm9sZSwgVXNlciwgRXh0ZXJuYWxQcm92aWRlciwgVmVyaWZpY2F0aW9uVG9rZW5SZXF1ZXN0LCBSb2xlU2F2ZUJvZHksIFJvbGVNYWluVUlGb3JtIH0gZnJvbSAnLi4vZW50aXRpZXMvc2VjdXJpdHktZW50aXRpZXMnO1xyXG5pbXBvcnQgeyBDb25maWdCYXNlU2VydmljZSB9IGZyb20gJy4vY29uZmlnLWJhc2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFRhYmxlUmVzcG9uc2UgfSBmcm9tICcuLi9lbnRpdGllcy90YWJsZS1yZXNwb25zZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwaVNlY3VyaXR5U2VydmljZSB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgcHJvdGVjdGVkIGNvbmZpZzogQ29uZmlnQmFzZVNlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIC8vI3JlZ2lvbiBBdXRoZW50aWNhdGlvblxyXG5cclxuICAgIHJlZ2lzdGVyID0gKHJlcXVlc3Q6IFZlcmlmaWNhdGlvblRva2VuUmVxdWVzdCk6IE9ic2VydmFibGU8QXV0aFJlc3VsdD4gPT4geyBcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXV0aFJlc3VsdD4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS9TZWN1cml0eS9SZWdpc3RlcmAsIHJlcXVlc3QsIHRoaXMuY29uZmlnLmh0dHBPcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICBzZW5kUmVnaXN0cmF0aW9uVmVyaWZpY2F0aW9uRW1haWwgPSAocmVnaXN0cmF0aW9uRFRPOiBSZWdpc3RyYXRpb24pOiBPYnNlcnZhYmxlPFJlZ2lzdHJhdGlvblZlcmlmaWNhdGlvblJlc3VsdD4gPT4geyBcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UmVnaXN0cmF0aW9uVmVyaWZpY2F0aW9uUmVzdWx0PihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L1NlY3VyaXR5L1NlbmRSZWdpc3RyYXRpb25WZXJpZmljYXRpb25FbWFpbGAsIHJlZ2lzdHJhdGlvbkRUTywgdGhpcy5jb25maWcuaHR0cE9wdGlvbnMpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBsb2dpbiA9IChyZXF1ZXN0OiBWZXJpZmljYXRpb25Ub2tlblJlcXVlc3QpOiBPYnNlcnZhYmxlPEF1dGhSZXN1bHQ+ID0+IHsgXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEF1dGhSZXN1bHQ+KGAke3RoaXMuY29uZmlnLmFwaVVybH0vU2VjdXJpdHkvTG9naW5gLCByZXF1ZXN0LCB0aGlzLmNvbmZpZy5odHRwT3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9naW5FeHRlcm5hbCA9IChleHRlcm5hbFByb3ZpZGVyRFRPOiBFeHRlcm5hbFByb3ZpZGVyKTogT2JzZXJ2YWJsZTxBdXRoUmVzdWx0PiA9PiB7IFxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBdXRoUmVzdWx0PihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L1NlY3VyaXR5L0xvZ2luRXh0ZXJuYWxgLCBleHRlcm5hbFByb3ZpZGVyRFRPLCB0aGlzLmNvbmZpZy5odHRwT3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VuZExvZ2luVmVyaWZpY2F0aW9uRW1haWwgPSAobG9naW5EVE86IExvZ2luKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHsgXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS9TZWN1cml0eS9TZW5kTG9naW5WZXJpZmljYXRpb25FbWFpbGAsIGxvZ2luRFRPLCB0aGlzLmNvbmZpZy5odHRwT3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGxvZ291dCA9IChicm93c2VySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiA9PiB7IFxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS9TZWN1cml0eS9Mb2dvdXQ/YnJvd3NlcklkPSR7YnJvd3NlcklkfWApO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZnJlc2hUb2tlbiA9IChyZXF1ZXN0OiBSZWZyZXNoVG9rZW5SZXF1ZXN0KTogT2JzZXJ2YWJsZTxBdXRoUmVzdWx0PiA9PiB7IFxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBdXRoUmVzdWx0PihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L1NlY3VyaXR5L1JlZnJlc2hUb2tlbmAsIHJlcXVlc3QsIHRoaXMuY29uZmlnLmh0dHBPcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAvLyNyZWdpb24gVXNlclxyXG5cclxuICAgIGdldEN1cnJlbnRVc2VyID0gKCk6IE9ic2VydmFibGU8VXNlcj4gPT4geyBcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxVc2VyPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L1NlY3VyaXR5L0dldEN1cnJlbnRVc2VyYCwgdGhpcy5jb25maWcuaHR0cFNraXBTcGlubmVyT3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q3VycmVudFVzZXJQZXJtaXNzaW9uQ29kZXMgPSAoKTogT2JzZXJ2YWJsZTxzdHJpbmdbXT4gPT4geyBcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxzdHJpbmdbXT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS9TZWN1cml0eS9HZXRDdXJyZW50VXNlclBlcm1pc3Npb25Db2Rlc2AsIHRoaXMuY29uZmlnLmh0dHBTa2lwU3Bpbm5lck9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI3JlZ2lvbiBSb2xlXHJcblxyXG4gICAgZ2V0Um9sZVRhYmxlRGF0YSA9IChkdG86IFRhYmxlRmlsdGVyKTogT2JzZXJ2YWJsZTxUYWJsZVJlc3BvbnNlPiA9PiB7IFxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUYWJsZVJlc3BvbnNlPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L1NlY3VyaXR5L0dldFJvbGVUYWJsZURhdGFgLCBkdG8sIHRoaXMuY29uZmlnLmh0dHBTa2lwU3Bpbm5lck9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydFJvbGVUYWJsZURhdGFUb0V4Y2VsID0gKGR0bzogVGFibGVGaWx0ZXIpOiBPYnNlcnZhYmxlPGFueT4gPT4geyBcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L1NlY3VyaXR5L0V4cG9ydFJvbGVUYWJsZURhdGFUb0V4Y2VsYCwgZHRvLCB0aGlzLmNvbmZpZy5odHRwT3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgZGVsZXRlUm9sZSA9IChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHsgXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L1NlY3VyaXR5L0RlbGV0ZVJvbGU/aWQ9JHtpZH1gKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRSb2xlTWFpblVJRm9ybURUTyA9IChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxSb2xlTWFpblVJRm9ybT4gPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFJvbGVNYWluVUlGb3JtPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L1NlY3VyaXR5L0dldFJvbGVNYWluVUlGb3JtRFRPP2lkPSR7aWR9YCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Um9sZSA9IChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxSb2xlPiA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Um9sZT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS9TZWN1cml0eS9HZXRSb2xlP2lkPSR7aWR9YCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2F2ZVJvbGUgPSAoZHRvOiBSb2xlU2F2ZUJvZHkpOiBPYnNlcnZhYmxlPFJvbGU+ID0+IHsgXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8Um9sZT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS9TZWN1cml0eS9TYXZlUm9sZWAsIGR0bywgdGhpcy5jb25maWcuaHR0cE9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFVzZXJzTmFtZWJvb2tMaXN0Rm9yUm9sZSA9IChyb2xlSWQ6IG51bWJlcik6IE9ic2VydmFibGU8TmFtZWJvb2tbXT4gPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE5hbWVib29rW10+KGAke3RoaXMuY29uZmlnLmFwaVVybH0vU2VjdXJpdHkvR2V0VXNlcnNOYW1lYm9va0xpc3RGb3JSb2xlP3JvbGVJZD0ke3JvbGVJZH1gLCB0aGlzLmNvbmZpZy5odHRwU2tpcFNwaW5uZXJPcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRQZXJtaXNzaW9uc0Ryb3Bkb3duTGlzdEZvclJvbGUgPSAoKTogT2JzZXJ2YWJsZTxOYW1lYm9va1tdPiA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TmFtZWJvb2tbXT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS9TZWN1cml0eS9HZXRQZXJtaXNzaW9uc0Ryb3Bkb3duTGlzdEZvclJvbGVgLCB0aGlzLmNvbmZpZy5odHRwU2tpcFNwaW5uZXJPcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRQZXJtaXNzaW9uc05hbWVib29rTGlzdEZvclJvbGUgPSAocm9sZUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPE5hbWVib29rW10+ID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxOYW1lYm9va1tdPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L1NlY3VyaXR5L0dldFBlcm1pc3Npb25zTmFtZWJvb2tMaXN0Rm9yUm9sZT9yb2xlSWQ9JHtyb2xlSWR9YCwgdGhpcy5jb25maWcuaHR0cFNraXBTcGlubmVyT3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VXNlcnNBdXRvY29tcGxldGVMaXN0Rm9yUm9sZSA9IChsaW1pdDogbnVtYmVyLCBxdWVyeTogc3RyaW5nKTogT2JzZXJ2YWJsZTxOYW1lYm9va1tdPiA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TmFtZWJvb2tbXT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS9TZWN1cml0eS9HZXRVc2Vyc0F1dG9jb21wbGV0ZUxpc3RGb3JSb2xlP2xpbWl0PSR7bGltaXR9JnF1ZXJ5PSR7cXVlcnl9YCwgdGhpcy5jb25maWcuaHR0cFNraXBTcGlubmVyT3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgLy8jcmVnaW9uIE5vdGlmaWNhdGlvblxyXG5cclxuICAgIGdldFVucmVhZE5vdGlmaWNhdGlvbnNDb3VudEZvckN1cnJlbnRVc2VyID0gKCk6IE9ic2VydmFibGU8bnVtYmVyPiA9PiB7IFxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PG51bWJlcj4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS9Ob3RpZmljYXRpb24vR2V0VW5yZWFkTm90aWZpY2F0aW9uc0NvdW50Rm9yQ3VycmVudFVzZXJgLCB0aGlzLmNvbmZpZy5odHRwU2tpcFNwaW5uZXJPcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbn1cclxuXHJcbiJdfQ==
@@ -1,6 +0,0 @@
1
- export function authInitializer(authService) {
2
- return () => {
3
- return authService.refreshToken();
4
- };
5
- }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWluaXRpYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpZGVybHkvc3JjL2xpYi9zZXJ2aWNlcy9hcHAtaW5pdGlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxVQUFVLGVBQWUsQ0FBQyxXQUE0QjtJQUMxRCxPQUFPLEdBQUcsRUFBRTtRQUNWLE9BQU8sV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3BDLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEF1dGhCYXNlU2VydmljZSB9IGZyb20gJy4vYXV0aC1iYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoUmVzdWx0IH0gZnJvbSAnLi4vZW50aXRpZXMvc2VjdXJpdHktZW50aXRpZXMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGF1dGhJbml0aWFsaXplcihhdXRoU2VydmljZTogQXV0aEJhc2VTZXJ2aWNlKTogKCkgPT4gT2JzZXJ2YWJsZTxBdXRoUmVzdWx0PiB7XHJcbiAgcmV0dXJuICgpID0+IHtcclxuICAgIHJldHVybiBhdXRoU2VydmljZS5yZWZyZXNoVG9rZW4oKTtcclxuICB9O1xyXG59Il19
@@ -1,132 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject, combineLatest, delay, map, of, Subject, withLatestFrom } from 'rxjs';
3
- import { InitTopBarData } from '../entities/init-top-bar-data';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "./api.service.security";
6
- import * as i2 from "./config-base.service";
7
- import * as i3 from "./auth-base.service";
8
- export class LayoutBaseService {
9
- constructor(apiService, config, authService) {
10
- this.apiService = apiService;
11
- this.config = config;
12
- this.authService = authService;
13
- this._unreadNotificationsNumber = new BehaviorSubject(null);
14
- this.unreadNotificationsCount$ = this._unreadNotificationsNumber.asObservable();
15
- this.layoutConfig = {
16
- ripple: false,
17
- inputStyle: 'outlined',
18
- menuMode: 'static',
19
- colorScheme: 'light',
20
- theme: 'lara-light-indigo',
21
- scale: 14,
22
- color: `var(--primary-color)`,
23
- };
24
- this.state = {
25
- staticMenuDesktopInactive: false,
26
- overlayMenuActive: false,
27
- profileSidebarVisible: false,
28
- profileDropdownSidebarVisible: false,
29
- configSidebarVisible: false,
30
- staticMenuMobileActive: false,
31
- menuHoverActive: false
32
- };
33
- this.configUpdate = new Subject();
34
- this.overlayOpen = new Subject();
35
- this.configUpdate$ = this.configUpdate.asObservable();
36
- this.overlayOpen$ = this.overlayOpen.asObservable();
37
- this.initUnreadNotificationsCountForCurrentUser = () => {
38
- this.initUnreadNotificationsCountForCurrentUserObservable().pipe(delay(1), // FT HACK: Adding delay so both additionalObservable and user emits single null value when logout
39
- withLatestFrom(this.authService.user$) // Triggers when unread notifications change
40
- ).subscribe(([additionalObservable, user]) => {
41
- if (user != null && additionalObservable !== undefined) {
42
- this.setUnreadNotificationsCountForCurrentUser().subscribe();
43
- }
44
- });
45
- };
46
- this.initUnreadNotificationsCountForCurrentUserObservable = () => {
47
- return this.authService.user$;
48
- };
49
- this.setUnreadNotificationsCountForCurrentUser = () => {
50
- return this.apiService.getUnreadNotificationsCountForCurrentUser().pipe(map((unreadNotificationsCount) => {
51
- this._unreadNotificationsNumber.next(unreadNotificationsCount);
52
- }));
53
- };
54
- //#region Top Bar
55
- this.initTopBarData = () => {
56
- return combineLatest([this.authService.user$, this.unreadNotificationsCount$]).pipe(map(([currentUser, unreadNotificationsCount]) => {
57
- return new InitTopBarData({
58
- companyName: this.config.companyName,
59
- userProfilePath: `/administration/users/${currentUser?.id}`,
60
- unreadNotificationsCount: unreadNotificationsCount,
61
- showProfileIcon: true,
62
- currentUser: currentUser,
63
- });
64
- }));
65
- };
66
- //#endregion
67
- //#region Side Bar
68
- this.searchPartners = (event) => {
69
- return of();
70
- };
71
- this.partnersAutocompleteButtonClick = (selectedPartner) => { };
72
- }
73
- onMenuToggle() {
74
- if (this.isOverlay()) {
75
- this.state.overlayMenuActive = !this.state.overlayMenuActive;
76
- if (this.state.overlayMenuActive) {
77
- this.overlayOpen.next(null);
78
- }
79
- }
80
- if (this.isDesktop()) {
81
- this.state.staticMenuDesktopInactive = !this.state.staticMenuDesktopInactive;
82
- }
83
- else {
84
- this.state.staticMenuMobileActive = !this.state.staticMenuMobileActive;
85
- if (this.state.staticMenuMobileActive) {
86
- this.overlayOpen.next(null);
87
- }
88
- }
89
- }
90
- showProfileSidebar() {
91
- this.state.profileSidebarVisible = !this.state.profileSidebarVisible;
92
- if (this.state.profileSidebarVisible) {
93
- this.overlayOpen.next(null);
94
- }
95
- }
96
- showProfileDropdownSidebar() {
97
- this.state.profileDropdownSidebarVisible = !this.state.profileDropdownSidebarVisible;
98
- if (this.state.profileDropdownSidebarVisible) {
99
- this.overlayOpen.next(null);
100
- }
101
- }
102
- showConfigSidebar() {
103
- this.state.configSidebarVisible = true;
104
- }
105
- isOverlay() {
106
- return this.layoutConfig.menuMode === 'overlay';
107
- }
108
- isDesktop() {
109
- return window.innerWidth > 991;
110
- }
111
- isMobile() {
112
- return !this.isDesktop();
113
- }
114
- onConfigUpdate() {
115
- this.configUpdate.next(this.layoutConfig);
116
- }
117
- //#endregion
118
- ngOnDestroy() {
119
- if (this.userSubscription) {
120
- this.userSubscription.unsubscribe();
121
- }
122
- }
123
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LayoutBaseService, deps: [{ token: i1.ApiSecurityService }, { token: i2.ConfigBaseService }, { token: i3.AuthBaseService }], target: i0.ɵɵFactoryTarget.Injectable }); }
124
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LayoutBaseService, providedIn: 'root' }); }
125
- }
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LayoutBaseService, decorators: [{
127
- type: Injectable,
128
- args: [{
129
- providedIn: 'root',
130
- }]
131
- }], ctorParameters: () => [{ type: i1.ApiSecurityService }, { type: i2.ConfigBaseService }, { type: i3.AuthBaseService }] });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWxheW91dC1iYXNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL3NlcnZpY2VzL2FwcC1sYXlvdXQtYmFzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFpQixHQUFHLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBZ0IsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hJLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7QUE0Qi9ELE1BQU0sT0FBTyxpQkFBaUI7SUFrQzFCLFlBQ2MsVUFBOEIsRUFDOUIsTUFBeUIsRUFDekIsV0FBNEI7UUFGNUIsZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDekIsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBbENoQywrQkFBMEIsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFDaEYsOEJBQXlCLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBRTNFLGlCQUFZLEdBQWM7WUFDdEIsTUFBTSxFQUFFLEtBQUs7WUFDYixVQUFVLEVBQUUsVUFBVTtZQUN0QixRQUFRLEVBQUUsUUFBUTtZQUNsQixXQUFXLEVBQUUsT0FBTztZQUNwQixLQUFLLEVBQUUsbUJBQW1CO1lBQzFCLEtBQUssRUFBRSxFQUFFO1lBQ1QsS0FBSyxFQUFFLHNCQUFzQjtTQUNoQyxDQUFDO1FBRUYsVUFBSyxHQUFnQjtZQUNqQix5QkFBeUIsRUFBRSxLQUFLO1lBQ2hDLGlCQUFpQixFQUFFLEtBQUs7WUFDeEIscUJBQXFCLEVBQUUsS0FBSztZQUM1Qiw2QkFBNkIsRUFB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LFNBQVMsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUE0QkQsWUFBWTtJQUVaLFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdkM7SUFDTCxDQUFDOytHQXRKUSxpQkFBaUI7bUhBQWpCLGlCQUFpQixjQUZkLE1BQU07OzRGQUVULGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoQmFzZVNlcnZpY2UgfSBmcm9tICcuL2F1dGgtYmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBpU2VjdXJpdHlTZXJ2aWNlIH0gZnJvbSAnLi9hcGkuc2VydmljZS5zZWN1cml0eSc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRlbGF5LCBsYXN0VmFsdWVGcm9tLCBtYXAsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEluaXRUb3BCYXJEYXRhIH0gZnJvbSAnLi4vZW50aXRpZXMvaW5pdC10b3AtYmFyLWRhdGEnO1xyXG5pbXBvcnQgeyBDb25maWdCYXNlU2VydmljZSB9IGZyb20gJy4vY29uZmlnLWJhc2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFByaW1lbmdPcHRpb24gfSBmcm9tICcuLi9lbnRpdGllcy9wcmltZW5nLW9wdGlvbic7XHJcbmltcG9ydCB7IEF1dG9Db21wbGV0ZUNvbXBsZXRlRXZlbnQgfSBmcm9tICdwcmltZW5nL2F1dG9jb21wbGV0ZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFwcENvbmZpZyB7XHJcbiAgICBpbnB1dFN0eWxlOiBzdHJpbmc7XHJcbiAgICBjb2xvclNjaGVtZTogc3RyaW5nOyBcclxuICAgIHRoZW1lOiBzdHJpbmc7XHJcbiAgICByaXBwbGU6IGJvb2xlYW47XHJcbiAgICBtZW51TW9kZTogc3RyaW5nO1xyXG4gICAgc2NhbGU6IG51bWJlcjtcclxuICAgIGNvbG9yOiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBMYXlvdXRTdGF0ZSB7XHJcbiAgICBzdGF0aWNNZW51RGVza3RvcEluYWN0aXZlOiBib29sZWFuO1xyXG4gICAgb3ZlcmxheU1lbnVBY3RpdmU6IGJvb2xlYW47XHJcbiAgICBwcm9maWxlU2lkZWJhclZpc2libGU6IGJvb2xlYW47XHJcbiAgICBwcm9maWxlRHJvcGRvd25TaWRlYmFyVmlzaWJsZTpib29sZWFuO1xyXG4gICAgY29uZmlnU2lkZWJhclZpc2libGU6IGJvb2xlYW47XHJcbiAgICBzdGF0aWNNZW51TW9iaWxlQWN0aXZlOiBib29sZWFuO1xyXG4gICAgbWVudUhvdmVyQWN0aXZlOiBib29sZWFuO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYXlvdXRCYXNlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgICB1c2VyU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgcHJvdGVjdGVkIF91bnJlYWROb3RpZmljYXRpb25zTnVtYmVyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXIgfCBudWxsPihudWxsKTtcclxuICAgIHVucmVhZE5vdGlmaWNhdGlvbnNDb3VudCQgPSB0aGlzLl91bnJlYWROb3RpZmljYXRpb25zTnVtYmVyLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIGxheW91dENvbmZpZzogQXBwQ29uZmlnID0ge1xyXG4gICAgICAgIHJpcHBsZTogZmFsc2UsXHJcbiAgICAgICAgaW5wdXRTdHlsZTogJ291dGxpbmVkJyxcclxuICAgICAgICBtZW51TW9kZTogJ3N0YXRpYycsXHJcbiAgICAgICAgY29sb3JTY2hlbWU6ICdsaWdodCcsXHJcbiAgICAgICAgdGhlbWU6ICdsYXJhLWxpZ2h0LWluZGlnbycsXHJcbiAgICAgICAgc2NhbGU6IDE0LFxyXG4gICAgICAgIGNvbG9yOiBgdmFyKC0tcHJpbWFyeS1jb2xvcilgLFxyXG4gICAgfTtcclxuXHJcbiAgICBzdGF0ZTogTGF5b3V0U3RhdGUgPSB7XHJcbiAgICAgICAgc3RhdGljTWVudURlc2t0b3BJbmFjdGl2ZTogZmFsc2UsXHJcbiAgICAgICAgb3ZlcmxheU1lbnVBY3RpdmU6IGZhbHNlLFxyXG4gICAgICAgIHByb2ZpbGVTaWRlYmFyVmlzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgcHJvZmlsZURyb3Bkb3duU2lkZWJhclZpc2libGU6IGZhbHNlLFxyXG4gICAgICAgIGNvbmZpZ1NpZGViYXJWaXNpYmxlOiBmYWxzZSxcclxuICAgICAgICBzdGF0aWNNZW51TW9iaWxlQWN0aXZlOiBmYWxzZSxcclxuICAgICAgICBtZW51SG92ZXJBY3RpdmU6IGZhbHNlXHJcbiAgICB9O1xyXG5cclxuICAgIHByaXZhdGUgY29uZmlnVXBkYXRlID0gbmV3IFN1YmplY3Q8QXBwQ29uZmlnPigpO1xyXG5cclxuICAgIHByaXZhdGUgb3ZlcmxheU9wZW4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcblxyXG4gICAgY29uZmlnVXBkYXRlJCA9IHRoaXMuY29uZmlnVXBkYXRlLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIG92ZXJsYXlPcGVuJCA9IHRoaXMub3ZlcmxheU9wZW4uYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIGFwaVNlcnZpY2U6IEFwaVNlY3VyaXR5U2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgY29uZmlnOiBDb25maWdCYXNlU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgYXV0aFNlcnZpY2U6IEF1dGhCYXNlU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdFVucmVhZE5vdGlmaWNhdGlvbnNDb3VudEZvckN1cnJlbnRVc2VyID0gKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaW5pdFVucmVhZE5vdGlmaWNhdGlvbnNDb3VudEZvckN1cnJlbnRVc2VyT2JzZXJ2YWJsZSgpLnBpcGUoXHJcbiAgICAgICAgICAgIGRlbGF5KDEpLCAvLyBGVCBIQUNLOiBBZGRpbmcgZGVsYXkgc28gYm90aCBhZGRpdGlvbmFsT2JzZXJ2YWJsZSBhbmQgdXNlciBlbWl0cyBzaW5nbGUgbnVsbCB2YWx1ZSB3aGVuIGxvZ291dFxyXG4gICAgICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmF1dGhTZXJ2aWNlLnVzZXIkKSAvLyBUcmlnZ2VycyB3aGVuIHVucmVhZCBub3RpZmljYXRpb25zIGNoYW5nZVxyXG4gICAgICAgICkuc3Vic2NyaWJlKChbYWRkaXRpb25hbE9ic2VydmFibGUsIHVzZXJdKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh1c2VyICE9IG51bGwgJiYgYWRkaXRpb25hbE9ic2VydmFibGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRVbnJlYWROb3RpZmljYXRpb25zQ291bnRGb3JDdXJyZW50VXNlcigpLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdFVucmVhZE5vdGlmaWNhdGlvbnNDb3VudEZvckN1cnJlbnRVc2VyT2JzZXJ2YWJsZSA9ICgpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLnVzZXIkO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFVucmVhZE5vdGlmaWNhdGlvbnNDb3VudEZvckN1cnJlbnRVc2VyID0gKCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5nZXRVbnJlYWROb3RpZmljYXRpb25zQ291bnRGb3JDdXJyZW50VXNlcigpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgodW5yZWFkTm90aWZpY2F0aW9uc0NvdW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl91bnJlYWROb3RpZmljYXRpb25zTnVtYmVyLm5leHQodW5yZWFkTm90aWZpY2F0aW9uc0NvdW50KTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTWVudVRvZ2dsZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5pc092ZXJsYXkoKSkge1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRlLm92ZXJsYXlNZW51QWN0aXZlID0gIXRoaXMuc3RhdGUub3ZlcmxheU1lbnVBY3RpdmU7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLm92ZXJsYXlNZW51QWN0aXZlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJsYXlPcGVuLm5leHQobnVsbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzRGVza3RvcCgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGUuc3RhdGljTWVudURlc2t0b3BJbmFjdGl2ZSA9ICF0aGlzLnN0YXRlLnN0YXRpY01lbnVEZXNrdG9wSW5hY3RpdmU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRlLnN0YXRpY01lbnVNb2JpbGVBY3RpdmUgPSAhdGhpcy5zdGF0ZS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUuc3RhdGljTWVudU1vYmlsZUFjdGl2ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vdmVybGF5T3Blbi5uZXh0KG51bGwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNob3dQcm9maWxlU2lkZWJhcigpIHtcclxuICAgICAgICB0aGlzLnN0YXRlLnByb2ZpbGVTaWRlYmFyVmlzaWJsZSA9ICF0aGlzLnN0YXRlLnByb2ZpbGVTaWRlYmFyVmlzaWJsZTtcclxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5wcm9maWxlU2lkZWJhclZpc2libGUpIHtcclxuICAgICAgICAgICAgdGhpcy5vdmVybGF5T3Blbi5uZXh0KG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzaG93UHJvZmlsZURyb3Bkb3duU2lkZWJhcigpIHtcclxuICAgICAgICB0aGlzLnN0YXRlLnByb2ZpbGVEcm9wZG93blNpZGViYXJWaXNpYmxlID0gIXRoaXMuc3RhdGUucHJvZmlsZURyb3Bkb3duU2lkZWJhclZpc2libGU7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUucHJvZmlsZURyb3Bkb3duU2lkZWJhclZpc2libGUpIHtcclxuICAgICAgICAgICAgdGhpcy5vdmVybGF5T3Blbi5uZXh0KG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzaG93Q29uZmlnU2lkZWJhcigpIHtcclxuICAgICAgICB0aGlzLnN0YXRlLmNvbmZpZ1NpZGViYXJWaXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpc092ZXJsYXkoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0Q29uZmlnLm1lbnVNb2RlID09PSAnb3ZlcmxheSc7XHJcbiAgICB9XHJcblxyXG4gICAgaXNEZXNrdG9wKCkge1xyXG4gICAgICAgIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCA+IDk5MTtcclxuICAgIH1cclxuXHJcbiAgICBpc01vYmlsZSgpIHtcclxuICAgICAgICByZXR1cm4gIXRoaXMuaXNEZXNrdG9wKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25Db25maWdVcGRhdGUoKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdVcGRhdGUubmV4dCh0aGlzLmxheW91dENvbmZpZyk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vI3JlZ2lvbiBUb3AgQmFyXHJcblxyXG4gICAgaW5pdFRvcEJhckRhdGEgPSAoKTogT2JzZXJ2YWJsZTxJbml0VG9wQmFyRGF0YT4gPT4ge1xyXG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFt0aGlzLmF1dGhTZXJ2aWNlLnVzZXIkLCB0aGlzLnVucmVhZE5vdGlmaWNhdGlvbnNDb3VudCRdKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKFtjdXJyZW50VXNlciwgdW5yZWFkTm90aWZpY2F0aW9uc0NvdW50XSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBJbml0VG9wQmFyRGF0YSh7XHJcbiAgICAgICAgICAgICAgICAgICAgY29tcGFueU5hbWU6IHRoaXMuY29uZmlnLmNvbXBhbnlOYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXJQcm9maWxlUGF0aDogYC9hZG1pbmlzdHJhdGlvbi91c2Vycy8ke2N1cnJlbnRVc2VyPy5pZH1gLFxyXG4gICAgICAgICAgICAgICAgICAgIHVucmVhZE5vdGlmaWNhdGlvbnNDb3VudDogdW5yZWFkTm90aWZpY2F0aW9uc0NvdW50LFxyXG4gICAgICAgICAgICAgICAgICAgIHNob3dQcm9maWxlSWNvbjogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50VXNlcjogY3VycmVudFVzZXIsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI3JlZ2lvbiBTaWRlIEJhclxyXG5cclxuICAgIHNlYXJjaFBhcnRuZXJzID0gKGV2ZW50OiBBdXRvQ29tcGxldGVDb21wbGV0ZUV2ZW50KTogT2JzZXJ2YWJsZTxQcmltZW5nT3B0aW9uW10+ID0+IHtcclxuICAgICAgICByZXR1cm4gb2YoKTtcclxuICAgIH1cclxuXHJcbiAgICBwYXJ0bmVyc0F1dG9jb21wbGV0ZUJ1dHRvbkNsaWNrID0gKHNlbGVjdGVkUGFydG5lcjogUHJpbWVuZ09wdGlvbikgPT4ge31cclxuXHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy51c2VyU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXNlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,220 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject, of, Subject } from 'rxjs';
3
- import { map, tap, delay, finalize } from 'rxjs/operators';
4
- import { RefreshTokenRequest } from '../entities/security-entities';
5
- import { InitCompanyAuthDialogDetails } from '../entities/init-company-auth-dialog-details';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/router";
8
- import * as i2 from "@angular/common/http";
9
- import * as i3 from "@abacritt/angularx-social-login";
10
- import * as i4 from "./api.service.security";
11
- import * as i5 from "./config-base.service";
12
- export class AuthBaseService {
13
- constructor(router, http, externalAuthService, apiService, config) {
14
- this.router = router;
15
- this.http = http;
16
- this.externalAuthService = externalAuthService;
17
- this.apiService = apiService;
18
- this.config = config;
19
- this.apiUrl = this.config.apiUrl;
20
- this._currentUserPermissionCodes = new BehaviorSubject(undefined);
21
- this.currentUserPermissionCodes$ = this._currentUserPermissionCodes.asObservable();
22
- this._user = new BehaviorSubject(undefined);
23
- this.user$ = this._user.asObservable();
24
- // Google auth
25
- this.authChangeSub = new Subject();
26
- this.extAuthChangeSub = new Subject();
27
- this.authChanged = this.authChangeSub.asObservable();
28
- this.extAuthChanged = this.extAuthChangeSub.asObservable();
29
- this.storageEventListener = (event) => {
30
- if (event.storageArea === localStorage) {
31
- if (event.key === 'logout-event') {
32
- this.stopTokenTimer();
33
- this._user.next(null);
34
- this._currentUserPermissionCodes.next(null);
35
- }
36
- if (event.key === 'login-event') {
37
- this.stopTokenTimer();
38
- this.apiService.getCurrentUser().subscribe((user) => {
39
- this._user.next({
40
- id: user.id,
41
- email: user.email
42
- });
43
- this.setCurrentUserPermissionCodes().subscribe();
44
- });
45
- }
46
- }
47
- };
48
- this.onAfterLogout = () => {
49
- this._currentUserPermissionCodes.next(null);
50
- };
51
- this.onAfterRefreshToken = () => {
52
- this.setCurrentUserPermissionCodes().subscribe(); // FT: Needs to be after setting local storage
53
- };
54
- this.logoutGoogle = () => {
55
- this.externalAuthService.signOut();
56
- };
57
- this.initCompanyAuthDialogDetails = () => {
58
- return of(new InitCompanyAuthDialogDetails({
59
- image: `assets/images/logo/logo.svg`,
60
- companyName: this.config.companyName,
61
- }));
62
- };
63
- this.onAfterNgOnDestroy = () => { };
64
- window.addEventListener('storage', this.storageEventListener);
65
- // Google auth
66
- this.externalAuthService.authState.subscribe((user) => {
67
- const externalAuth = {
68
- // provider: user.provider,
69
- idToken: user.idToken
70
- };
71
- this.loginExternal(externalAuth).subscribe(() => {
72
- this.navigateToDashboard();
73
- });
74
- this.extAuthChangeSub.next(user);
75
- });
76
- }
77
- sendLoginVerificationEmail(body) {
78
- const browserId = this.getBrowserId();
79
- body.browserId = browserId;
80
- return this.apiService.sendLoginVerificationEmail(body);
81
- }
82
- login(body) {
83
- const browserId = this.getBrowserId();
84
- body.browserId = browserId;
85
- const loginResultObservable = this.http.post(`${this.apiUrl}/Security/Login`, body);
86
- return this.handleLoginResult(loginResultObservable);
87
- }
88
- loginExternal(body) {
89
- const browserId = this.getBrowserId();
90
- body.browserId = browserId;
91
- const loginResultObservable = this.http.post(`${this.apiUrl}/Security/LoginExternal`, body);
92
- return this.handleLoginResult(loginResultObservable);
93
- }
94
- sendRegistrationVerificationEmail(body) {
95
- const browserId = this.getBrowserId();
96
- body.browserId = browserId;
97
- return this.apiService.sendRegistrationVerificationEmail(body);
98
- }
99
- register(body) {
100
- const browserId = this.getBrowserId();
101
- body.browserId = browserId;
102
- const loginResultObservable = this.apiService.register(body);
103
- return this.handleLoginResult(loginResultObservable);
104
- }
105
- handleLoginResult(loginResultObservable) {
106
- return loginResultObservable.pipe(map(async (loginResult) => {
107
- this.setLocalStorage(loginResult);
108
- this._user.next({
109
- id: loginResult.userId,
110
- email: loginResult.email,
111
- });
112
- this.startTokenTimer();
113
- this.setCurrentUserPermissionCodes().subscribe();
114
- return loginResult;
115
- }));
116
- }
117
- logout() {
118
- const browserId = this.getBrowserId();
119
- this.http
120
- .get(`${this.apiUrl}/Security/Logout?browserId=${browserId}`)
121
- .pipe(finalize(() => {
122
- this.clearLocalStorage();
123
- this._user.next(null);
124
- this.onAfterLogout();
125
- this.stopTokenTimer();
126
- this.router.navigate([this.config.loginSlug]);
127
- }))
128
- .subscribe();
129
- }
130
- refreshToken() {
131
- let refreshToken = localStorage.getItem(this.config.refreshTokenKey);
132
- if (!refreshToken) {
133
- this.clearLocalStorage();
134
- return of(null);
135
- }
136
- const browserId = this.getBrowserId();
137
- let body = new RefreshTokenRequest();
138
- body.browserId = browserId;
139
- body.refreshToken = refreshToken;
140
- return this.http
141
- .post(`${this.apiUrl}/Security/RefreshToken`, body, this.config.httpSkipSpinnerOptions)
142
- .pipe(map((loginResult) => {
143
- this._user.next({
144
- id: loginResult.userId,
145
- email: loginResult.email
146
- });
147
- this.setLocalStorage(loginResult);
148
- this.startTokenTimer();
149
- this.onAfterRefreshToken();
150
- return loginResult;
151
- }));
152
- }
153
- setLocalStorage(loginResult) {
154
- localStorage.setItem(this.config.accessTokenKey, loginResult.accessToken);
155
- localStorage.setItem(this.config.refreshTokenKey, loginResult.refreshToken);
156
- localStorage.setItem('login-event', 'login' + Math.random());
157
- }
158
- clearLocalStorage() {
159
- localStorage.removeItem(this.config.accessTokenKey);
160
- localStorage.removeItem(this.config.refreshTokenKey);
161
- localStorage.setItem('logout-event', 'logout' + Math.random());
162
- }
163
- getBrowserId() {
164
- let browserId = localStorage.getItem(this.config.browserIdKey); // FT: We don't need to remove this from the local storage ever, only if the user manuely deletes it, we will handle it
165
- if (!browserId) {
166
- browserId = crypto.randomUUID();
167
- localStorage.setItem(this.config.browserIdKey, browserId);
168
- }
169
- return browserId;
170
- }
171
- isAccessTokenExpired() {
172
- const expired = this.getTokenRemainingTime() < 5000;
173
- return of(expired);
174
- }
175
- getTokenRemainingTime() {
176
- const accessToken = this.getAccessToken();
177
- if (!accessToken) {
178
- return 0;
179
- }
180
- const jwtToken = JSON.parse(atob(accessToken.split('.')[1]));
181
- const expires = new Date(jwtToken.exp * 1000);
182
- return expires.getTime() - Date.now();
183
- }
184
- getAccessToken() {
185
- return localStorage.getItem(this.config.accessTokenKey);
186
- }
187
- startTokenTimer() {
188
- const timeout = this.getTokenRemainingTime();
189
- this.timer = of(true)
190
- .pipe(delay(timeout), tap({
191
- next: () => this.refreshToken().subscribe(),
192
- }))
193
- .subscribe();
194
- }
195
- stopTokenTimer() {
196
- this.timer?.unsubscribe();
197
- }
198
- navigateToDashboard() {
199
- this.router.navigate(['/']);
200
- }
201
- setCurrentUserPermissionCodes() {
202
- return this.apiService.getCurrentUserPermissionCodes().pipe(map(permissionCodes => {
203
- this._currentUserPermissionCodes.next(permissionCodes);
204
- return permissionCodes;
205
- }));
206
- }
207
- ngOnDestroy() {
208
- window.removeEventListener('storage', this.storageEventListener.bind(this));
209
- this.onAfterNgOnDestroy();
210
- }
211
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthBaseService, deps: [{ token: i1.Router }, { token: i2.HttpClient }, { token: i3.SocialAuthService }, { token: i4.ApiSecurityService }, { token: i5.ConfigBaseService }], target: i0.ɵɵFactoryTarget.Injectable }); }
212
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthBaseService, providedIn: 'root' }); }
213
- }
214
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthBaseService, decorators: [{
215
- type: Injectable,
216
- args: [{
217
- providedIn: 'root'
218
- }]
219
- }], ctorParameters: () => [{ type: i1.Router }, { type: i2.HttpClient }, { type: i3.SocialAuthService }, { type: i4.ApiSecurityService }, { type: i5.ConfigBaseService }] });
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1iYXNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL3NlcnZpY2VzL2F1dGgtYmFzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHdEQsT0FBTyxFQUFFLGVBQWUsRUFBOEIsRUFBRSxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDOUYsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNELE9BQU8sRUFBK0csbUJBQW1CLEVBQVEsTUFBTSwrQkFBK0IsQ0FBQztBQUd2TCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7OztBQUs1RixNQUFNLE9BQU8sZUFBZTtJQWdCMUIsWUFDWSxNQUFjLEVBQ2QsSUFBZ0IsRUFDaEIsbUJBQXNDLEVBQ3RDLFVBQThCLEVBQzlCLE1BQXlCO1FBSnpCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBbUI7UUFDdEMsZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFwQnBCLFdBQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUduQyxnQ0FBMkIsR0FBRyxJQUFJLGVBQWUsQ0FBa0IsU0FBUyxDQUFDLENBQUM7UUFDeEYsZ0NBQTJCLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXBFLFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBYyxTQUFTLENBQUMsQ0FBQztRQUM5RCxVQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZ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RUFBRTtZQUNwQixJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3ZELE9BQU8sZUFBZSxDQUFDO1FBQ3pCLENBQUMsQ0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7K0dBN1BVLGVBQWU7bUhBQWYsZUFBZSxjQUZkLE1BQU07OzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlyc3RWYWx1ZUZyb20sIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCB0YXAsIGRlbGF5LCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU29jaWFsVXNlciwgU29jaWFsQXV0aFNlcnZpY2UgfSBmcm9tICdAYWJhY3JpdHQvYW5ndWxhcngtc29jaWFsLWxvZ2luJztcclxuaW1wb3J0IHsgRXh0ZXJuYWxQcm92aWRlciwgTG9naW4sIFZlcmlmaWNhdGlvblRva2VuUmVxdWVzdCwgQXV0aFJlc3VsdCwgUmVnaXN0cmF0aW9uLCBSZWdpc3RyYXRpb25WZXJpZmljYXRpb25SZXN1bHQsIFJlZnJlc2hUb2tlblJlcXVlc3QsIFVzZXIgfSBmcm9tICcuLi9lbnRpdGllcy9zZWN1cml0eS1lbnRpdGllcyc7XHJcbmltcG9ydCB7IENvbmZpZ0Jhc2VTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWctYmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBpU2VjdXJpdHlTZXJ2aWNlIH0gZnJvbSAnLi9hcGkuc2VydmljZS5zZWN1cml0eSc7XHJcbmltcG9ydCB7IEluaXRDb21wYW55QXV0aERpYWxvZ0RldGFpbHMgfSBmcm9tICcuLi9lbnRpdGllcy9pbml0LWNvbXBhbnktYXV0aC1kaWFsb2ctZGV0YWlscyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoQmFzZVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgYXBpVXJsID0gdGhpcy5jb25maWcuYXBpVXJsO1xyXG4gIHByaXZhdGUgdGltZXI/OiBTdWJzY3JpcHRpb247XHJcblxyXG4gIHByb3RlY3RlZCBfY3VycmVudFVzZXJQZXJtaXNzaW9uQ29kZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdIHwgbnVsbD4odW5kZWZpbmVkKTtcclxuICBjdXJyZW50VXNlclBlcm1pc3Npb25Db2RlcyQgPSB0aGlzLl9jdXJyZW50VXNlclBlcm1pc3Npb25Db2Rlcy5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJvdGVjdGVkIF91c2VyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxVc2VyIHwgbnVsbD4odW5kZWZpbmVkKTtcclxuICB1c2VyJCA9IHRoaXMuX3VzZXIuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIC8vIEdvb2dsZSBhdXRoXHJcbiAgcHJpdmF0ZSBhdXRoQ2hhbmdlU3ViID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBwcml2YXRlIGV4dEF1dGhDaGFuZ2VTdWIgPSBuZXcgU3ViamVjdDxTb2NpYWxVc2VyPigpO1xyXG4gIHB1YmxpYyBhdXRoQ2hhbmdlZCA9IHRoaXMuYXV0aENoYW5nZVN1Yi5hc09ic2VydmFibGUoKTtcclxuICBwdWJsaWMgZXh0QXV0aENoYW5nZWQgPSB0aGlzLmV4dEF1dGhDaGFuZ2VTdWIuYXNPYnNlcnZhYmxlKCk7XHJcbiAgXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByb3RlY3RlZCBleHRlcm5hbEF1dGhTZXJ2aWNlOiBTb2NpYWxBdXRoU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBhcGlTZXJ2aWNlOiBBcGlTZWN1cml0eVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY29uZmlnOiBDb25maWdCYXNlU2VydmljZSxcclxuICApIHtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzdG9yYWdlJywgdGhpcy5zdG9yYWdlRXZlbnRMaXN0ZW5lcik7XHJcblxyXG4gICAgLy8gR29vZ2xlIGF1dGhcclxuICAgIHRoaXMuZXh0ZXJuYWxBdXRoU2VydmljZS5hdXRoU3RhdGUuc3Vic2NyaWJlKCh1c2VyKSA9PiB7XHJcbiAgICAgIGNvbnN0IGV4dGVybmFsQXV0aDogRXh0ZXJuYWxQcm92aWRlciA9IHtcclxuICAgICAgICAvLyBwcm92aWRlcjogdXNlci5wcm92aWRlcixcclxuICAgICAgICBpZFRva2VuOiB1c2VyLmlkVG9rZW5cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmxvZ2luRXh0ZXJuYWwoZXh0ZXJuYWxBdXRoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubmF2aWdhdGVUb0Rhc2hib2FyZCgpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5leHRBdXRoQ2hhbmdlU3ViLm5leHQodXNlcik7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RvcmFnZUV2ZW50TGlzdGVuZXIgPSAoZXZlbnQ6IFN0b3JhZ2VFdmVudCkgPT4ge1xyXG4gICAgaWYgKGV2ZW50LnN0b3JhZ2VBcmVhID09PSBsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ2xvZ291dC1ldmVudCcpIHtcclxuICAgICAgICB0aGlzLnN0b3BUb2tlblRpbWVyKCk7XHJcbiAgICAgICAgdGhpcy5fdXNlci5uZXh0KG51bGwpO1xyXG5cclxuICAgICAgICB0aGlzLl9jdXJyZW50VXNlclBlcm1pc3Npb25Db2Rlcy5uZXh0KG51bGwpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdsb2dpbi1ldmVudCcpIHtcclxuICAgICAgICB0aGlzLnN0b3BUb2tlblRpbWVyKCk7XHJcblxyXG4gICAgICAgIHRoaXMuYXBpU2VydmljZS5nZXRDdXJyZW50VXNlcigpLnN1YnNjcmliZSgodXNlcjogVXNlcikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl91c2VyLm5leHQoe1xyXG4gICAgICAgICAgICAgIGlkOiB1c2VyLmlkLFxyXG4gICAgICAgICAgICAgIGVtYWlsOiB1c2VyLmVtYWlsXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5zZXRDdXJyZW50VXNlclBlcm1pc3Npb25Db2RlcygpLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbmRMb2dpblZlcmlmaWNhdGlvbkVtYWlsKGJvZHk6IExvZ2luKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IGJyb3dzZXJJZCA9IHRoaXMuZ2V0QnJvd3NlcklkKCk7XHJcbiAgICBib2R5LmJyb3dzZXJJZCA9IGJyb3dzZXJJZDtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2Uuc2VuZExvZ2luVmVyaWZpY2F0aW9uRW1haWwoYm9keSk7XHJcbiAgfVxyXG5cclxuICBsb2dpbihib2R5OiBWZXJpZmljYXRpb25Ub2tlblJlcXVlc3QpOiBPYnNlcnZhYmxlPFByb21pc2U8QXV0aFJlc3VsdD4+IHtcclxuICAgIGNvbnN0IGJyb3dzZXJJZCA9IHRoaXMuZ2V0QnJvd3NlcklkKCk7XHJcbiAgICBib2R5LmJyb3dzZXJJZCA9IGJyb3dzZXJJZDtcclxuICAgIGNvbnN0IGxvZ2luUmVzdWx0T2JzZXJ2YWJsZSA9IHRoaXMuaHR0cC5wb3N0PEF1dGhSZXN1bHQ+KGAke3RoaXMuYXBpVXJsfS9TZWN1cml0eS9Mb2dpbmAsIGJvZHkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlTG9naW5SZXN1bHQobG9naW5SZXN1bHRPYnNlcnZhYmxlKTtcclxuICB9XHJcblxyXG4gIGxvZ2luRXh0ZXJuYWwoYm9keTogRXh0ZXJuYWxQcm92aWRlcik6IE9ic2VydmFibGU8UHJvbWlzZTxBdXRoUmVzdWx0Pj4ge1xyXG4gICAgY29uc3QgYnJvd3NlcklkID0gdGhpcy5nZXRCcm93c2VySWQoKTtcclxuICAgIGJvZHkuYnJvd3NlcklkID0gYnJvd3NlcklkO1xyXG4gICAgY29uc3QgbG9naW5SZXN1bHRPYnNlcnZhYmxlID0gdGhpcy5odHRwLnBvc3Q8QXV0aFJlc3VsdD4oYCR7dGhpcy5hcGlVcmx9L1NlY3VyaXR5L0xvZ2luRXh0ZXJuYWxgLCBib2R5KTtcclxuICAgIHJldHVybiB0aGlzLmhhbmRsZUxvZ2luUmVzdWx0KGxvZ2luUmVzdWx0T2JzZXJ2YWJsZSk7XHJcbiAgfVxyXG5cclxuICBzZW5kUmVnaXN0cmF0aW9uVmVyaWZpY2F0aW9uRW1haWwoYm9keTogUmVnaXN0cmF0aW9uKTogT2JzZXJ2YWJsZTxSZWdpc3RyYXRpb25WZXJpZmljYXRpb25SZXN1bHQ+IHtcclxuICAgIGNvbnN0IGJyb3dzZXJJZCA9IHRoaXMuZ2V0QnJvd3NlcklkKCk7XHJcbiAgICBib2R5LmJyb3dzZXJJZCA9IGJyb3dzZXJJZDtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2Uuc2VuZFJlZ2lzdHJhdGlvblZlcmlmaWNhdGlvbkVtYWlsKGJvZHkpO1xyXG4gIH1cclxuICBcclxuICByZWdpc3Rlcihib2R5OiBWZXJpZmljYXRpb25Ub2tlblJlcXVlc3QpOiBPYnNlcnZhYmxlPFByb21pc2U8QXV0aFJlc3VsdD4+IHtcclxuICAgIGNvbnN0IGJyb3dzZXJJZCA9IHRoaXMuZ2V0QnJvd3NlcklkKCk7XHJcbiAgICBib2R5LmJyb3dzZXJJZCA9IGJyb3dzZXJJZDtcclxuICAgIGNvbnN0IGxvZ2luUmVzdWx0T2JzZXJ2YWJsZSA9IHRoaXMuYXBpU2VydmljZS5yZWdpc3Rlcihib2R5KTtcclxuICAgIHJldHVybiB0aGlzLmhhbmRsZUxvZ2luUmVzdWx0KGxvZ2luUmVzdWx0T2JzZXJ2YWJsZSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVMb2dpblJlc3VsdChsb2dpblJlc3VsdE9ic2VydmFibGU6IE9ic2VydmFibGU8QXV0aFJlc3VsdD4pe1xyXG4gICAgcmV0dXJuIGxvZ2luUmVzdWx0T2JzZXJ2YWJsZS5waXBlKFxyXG4gICAgICBtYXAoYXN5bmMgKGxvZ2luUmVzdWx0OiBBdXRoUmVzdWx0KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRMb2NhbFN0b3JhZ2UobG9naW5SZXN1bHQpO1xyXG4gICAgICAgIHRoaXMuX3VzZXIubmV4dCh7XHJcbiAgICAgICAgICBpZDogbG9naW5SZXN1bHQudXNlcklkLFxyXG4gICAgICAgICAgZW1haWw6IGxvZ2luUmVzdWx0LmVtYWlsLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuc3RhcnRUb2tlblRpbWVyKCk7XHJcbiAgICAgICAgdGhpcy5zZXRDdXJyZW50VXNlclBlcm1pc3Npb25Db2RlcygpLnN1YnNjcmliZSgpXHJcbiAgICAgICAgcmV0dXJuIGxvZ2luUmVzdWx0O1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGxvZ291dCgpIHtcclxuICAgIGNvbnN0IGJyb3dzZXJJZCA9IHRoaXMuZ2V0QnJvd3NlcklkKCk7XHJcbiAgICB0aGlzLmh0dHBcclxuICAgICAgLmdldChgJHt0aGlzLmFwaVVybH0vU2VjdXJpdHkvTG9nb3V0P2Jyb3dzZXJJZD0ke2Jyb3dzZXJJZH1gKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyTG9jYWxTdG9yYWdlKCk7XHJcbiAgICAgICAgICB0aGlzLl91c2VyLm5leHQobnVsbCk7XHJcbiAgICAgICAgICB0aGlzLm9uQWZ0ZXJMb2dvdXQoKTtcclxuICAgICAgICAgIHRoaXMuc3RvcFRva2VuVGltZXIoKTtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLmNvbmZpZy5sb2dpblNsdWddKTtcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG9uQWZ0ZXJMb2dvdXQgPSAoKSA9PiB7XHJcbiAgICB0aGlzLl9jdXJyZW50VXNlclBlcm1pc3Npb25Db2Rlcy5uZXh0KG51bGwpO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaFRva2VuKCk6IE9ic2VydmFibGU8QXV0aFJlc3VsdD4ge1xyXG4gICAgbGV0IHJlZnJlc2hUb2tlbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuY29uZmlnLnJlZnJlc2hUb2tlbktleSk7XHJcblxyXG4gICAgaWYgKCFyZWZyZXNoVG9rZW4pIHtcclxuICAgICAgdGhpcy5jbGVhckxvY2FsU3RvcmFnZSgpO1xyXG4gICAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgYnJvd3NlcklkID0gdGhpcy5nZXRCcm93c2VySWQoKTtcclxuICAgIGxldCBib2R5OiBSZWZyZXNoVG9rZW5SZXF1ZXN0ID0gbmV3IFJlZnJlc2hUb2tlblJlcXVlc3QoKTtcclxuICAgIGJvZHkuYnJvd3NlcklkID0gYnJvd3NlcklkO1xyXG4gICAgYm9keS5yZWZyZXNoVG9rZW4gPSByZWZyZXNoVG9rZW47XHJcbiAgICBcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8QXV0aFJlc3VsdD4oYCR7dGhpcy5hcGlVcmx9L1NlY3VyaXR5L1JlZnJlc2hUb2tlbmAsIGJvZHksIHRoaXMuY29uZmlnLmh0dHBTa2lwU3Bpbm5lck9wdGlvbnMpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgobG9naW5SZXN1bHQpID0+IHtcclxuICAgICAgICAgIHRoaXMuX3VzZXIubmV4dCh7XHJcbiAgICAgICAgICAgIGlkOiBsb2dpblJlc3VsdC51c2VySWQsXHJcbiAgICAgICAgICAgIGVtYWlsOiBsb2dpblJlc3VsdC5lbWFpbFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIHRoaXMuc2V0TG9jYWxTdG9yYWdlKGxvZ2luUmVzdWx0KTtcclxuICAgICAgICAgIHRoaXMuc3RhcnRUb2tlblRpbWVyKCk7XHJcbiAgICAgICAgICB0aGlzLm9uQWZ0ZXJSZWZyZXNoVG9rZW4oKTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgcmV0dXJuIGxvZ2luUmVzdWx0O1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBvbkFmdGVyUmVmcmVzaFRva2VuID0gKCkgPT4ge1xyXG4gICAgdGhpcy5zZXRDdXJyZW50VXNlclBlcm1pc3Npb25Db2RlcygpLnN1YnNjcmliZSgpOyAvLyBGVDogTmVlZHMgdG8gYmUgYWZ0ZXIgc2V0dGluZyBsb2NhbCBzdG9yYWdlXHJcbiAgfVxyXG5cclxuICBzZXRMb2NhbFN0b3JhZ2UobG9naW5SZXN1bHQ6IEF1dGhSZXN1bHQpIHtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuY29uZmlnLmFjY2Vzc1Rva2VuS2V5LCBsb2dpblJlc3VsdC5hY2Nlc3NUb2tlbik7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmNvbmZpZy5yZWZyZXNoVG9rZW5LZXksIGxvZ2luUmVzdWx0LnJlZnJlc2hUb2tlbik7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnbG9naW4tZXZlbnQnLCAnbG9naW4nICsgTWF0aC5yYW5kb20oKSk7XHJcbiAgfVxyXG5cclxuICBjbGVhckxvY2FsU3RvcmFnZSgpIHtcclxuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuY29uZmlnLmFjY2Vzc1Rva2VuS2V5KTtcclxuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuY29uZmlnLnJlZnJlc2hUb2tlbktleSk7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnbG9nb3V0LWV2ZW50JywgJ2xvZ291dCcgKyBNYXRoLnJhbmRvbSgpKTtcclxuICB9XHJcblxyXG4gIGdldEJyb3dzZXJJZCgpOiBzdHJpbmcge1xyXG4gICAgbGV0IGJyb3dzZXJJZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuY29uZmlnLmJyb3dzZXJJZEtleSk7IC8vIEZUOiBXZSBkb24ndCBuZWVkIHRvIHJlbW92ZSB0aGlzIGZyb20gdGhlIGxvY2FsIHN0b3JhZ2UgZXZlciwgb25seSBpZiB0aGUgdXNlciBtYW51ZWx5IGRlbGV0ZXMgaXQsIHdlIHdpbGwgaGFuZGxlIGl0XHJcbiAgICBpZiAoIWJyb3dzZXJJZCkge1xyXG4gICAgICBicm93c2VySWQgPSBjcnlwdG8ucmFuZG9tVVVJRCgpO1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmNvbmZpZy5icm93c2VySWRLZXksIGJyb3dzZXJJZCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYnJvd3NlcklkO1xyXG4gIH1cclxuXHJcbiAgaXNBY2Nlc3NUb2tlbkV4cGlyZWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICBjb25zdCBleHBpcmVkID0gdGhpcy5nZXRUb2tlblJlbWFpbmluZ1RpbWUoKSA8IDUwMDA7XHJcbiAgICBcclxuICAgIHJldHVybiBvZihleHBpcmVkKTtcclxuICB9XHJcblxyXG4gIGdldFRva2VuUmVtYWluaW5nVGltZSgpOiBudW1iZXIge1xyXG4gICAgY29uc3QgYWNjZXNzVG9rZW4gPSB0aGlzLmdldEFjY2Vzc1Rva2VuKCk7XHJcblxyXG4gICAgaWYgKCFhY2Nlc3NUb2tlbikge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBqd3RUb2tlbiA9IEpTT04ucGFyc2UoYXRvYihhY2Nlc3NUb2tlbi5zcGxpdCgnLicpWzFdKSk7XHJcbiAgICBjb25zdCBleHBpcmVzID0gbmV3IERhdGUoand0VG9rZW4uZXhwICogMTAwMCk7XHJcbiAgICBcclxuICAgIHJldHVybiBleHBpcmVzLmdldFRpbWUoKSAtIERhdGUubm93KCk7XHJcbiAgfVxyXG5cclxuICBnZXRBY2Nlc3NUb2tlbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuY29uZmlnLmFjY2Vzc1Rva2VuS2V5KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhcnRUb2tlblRpbWVyKCkge1xyXG4gICAgY29uc3QgdGltZW91dCA9IHRoaXMuZ2V0VG9rZW5SZW1haW5pbmdUaW1lKCk7XHJcbiAgICB0aGlzLnRpbWVyID0gb2YodHJ1ZSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZGVsYXkodGltZW91dCksXHJcbiAgICAgICAgdGFwKHtcclxuICAgICAgICAgIG5leHQ6ICgpID0+IHRoaXMucmVmcmVzaFRva2VuKCkuc3Vic2NyaWJlKCksXHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0b3BUb2tlblRpbWVyKCkge1xyXG4gICAgdGhpcy50aW1lcj8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG5hdmlnYXRlVG9EYXNoYm9hcmQoKXtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddKTtcclxuICB9XHJcblxyXG4gIGxvZ291dEdvb2dsZSA9ICgpID0+IHtcclxuICAgIHRoaXMuZXh0ZXJuYWxBdXRoU2VydmljZS5zaWduT3V0KCk7XHJcbiAgfVxyXG5cclxuICBpbml0Q29tcGFueUF1dGhEaWFsb2dEZXRhaWxzID0gKCk6IE9ic2VydmFibGU8SW5pdENvbXBhbnlBdXRoRGlhbG9nRGV0YWlscz4gPT4ge1xyXG4gICAgcmV0dXJuIG9mKFxyXG4gICAgICBuZXcgSW5pdENvbXBhbnlBdXRoRGlhbG9nRGV0YWlscyAoe1xyXG4gICAgICAgIGltYWdlOiBgYXNzZXRzL2ltYWdlcy9sb2dvL2xvZ28uc3ZnYCwgXHJcbiAgICAgICAgY29tcGFueU5hbWU6IHRoaXMuY29uZmlnLmNvbXBhbnlOYW1lLFxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHNldEN1cnJlbnRVc2VyUGVybWlzc2lvbkNvZGVzKCk6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZ2V0Q3VycmVudFVzZXJQZXJtaXNzaW9uQ29kZXMoKS5waXBlKFxyXG4gICAgICBtYXAocGVybWlzc2lvbkNvZGVzID0+IHtcclxuICAgICAgICB0aGlzLl9jdXJyZW50VXNlclBlcm1pc3Npb25Db2Rlcy5uZXh0KHBlcm1pc3Npb25Db2Rlcyk7XHJcbiAgICAgICAgcmV0dXJuIHBlcm1pc3Npb25Db2RlcztcclxuICAgICAgfVxyXG4gICAgKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzdG9yYWdlJywgdGhpcy5zdG9yYWdlRXZlbnRMaXN0ZW5lci5iaW5kKHRoaXMpKTtcclxuICAgIHRoaXMub25BZnRlck5nT25EZXN0cm95KCk7XHJcbiAgfVxyXG5cclxuICBvbkFmdGVyTmdPbkRlc3Ryb3kgPSAoKSA9PiB7fTtcclxufVxyXG4iXX0=