@sync-in/server 1.3.9 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (294) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +5 -3
  3. package/environment/environment.dist.yaml +2 -0
  4. package/package.json +6 -6
  5. package/server/app.bootstrap.js +9 -0
  6. package/server/app.bootstrap.js.map +1 -1
  7. package/server/app.service.spec.js +44 -19
  8. package/server/app.service.spec.js.map +1 -1
  9. package/server/applications/comments/comments.controller.spec.js +103 -4
  10. package/server/applications/comments/comments.controller.spec.js.map +1 -1
  11. package/server/applications/comments/services/comments-manager.service.spec.js +409 -9
  12. package/server/applications/comments/services/comments-manager.service.spec.js.map +1 -1
  13. package/server/applications/files/adapters/files-indexer-mysql.service.spec.js +333 -0
  14. package/server/applications/files/adapters/files-indexer-mysql.service.spec.js.map +1 -0
  15. package/server/applications/files/constants/files.js +0 -23
  16. package/server/applications/files/constants/files.js.map +1 -1
  17. package/server/applications/files/constants/only-office.js +8 -0
  18. package/server/applications/files/constants/only-office.js.map +1 -1
  19. package/server/applications/files/constants/routes.js +6 -1
  20. package/server/applications/files/constants/routes.js.map +1 -1
  21. package/server/applications/files/files-only-office.controller.js +11 -0
  22. package/server/applications/files/files-only-office.controller.js.map +1 -1
  23. package/server/applications/files/files-only-office.controller.spec.js +97 -3
  24. package/server/applications/files/files-only-office.controller.spec.js.map +1 -1
  25. package/server/applications/files/files-tasks.controller.spec.js +91 -1
  26. package/server/applications/files/files-tasks.controller.spec.js.map +1 -1
  27. package/server/applications/files/files.config.js +5 -0
  28. package/server/applications/files/files.config.js.map +1 -1
  29. package/server/applications/files/files.controller.spec.js +268 -46
  30. package/server/applications/files/files.controller.spec.js.map +1 -1
  31. package/server/applications/files/guards/files-only-office.guard.spec.js +77 -1
  32. package/server/applications/files/guards/files-only-office.guard.spec.js.map +1 -1
  33. package/server/applications/files/guards/files-only-office.strategy.js +0 -1
  34. package/server/applications/files/guards/files-only-office.strategy.js.map +1 -1
  35. package/server/applications/files/services/files-only-office-manager.service.js +5 -0
  36. package/server/applications/files/services/files-only-office-manager.service.js.map +1 -1
  37. package/server/applications/links/links.controller.spec.js +91 -58
  38. package/server/applications/links/links.controller.spec.js.map +1 -1
  39. package/server/applications/links/services/links-manager.service.js +4 -6
  40. package/server/applications/links/services/links-manager.service.js.map +1 -1
  41. package/server/applications/links/services/links-manager.service.spec.js +378 -14
  42. package/server/applications/links/services/links-manager.service.spec.js.map +1 -1
  43. package/server/applications/links/services/links-queries.service.js +1 -1
  44. package/server/applications/links/services/links-queries.service.js.map +1 -1
  45. package/server/applications/notifications/notifications.controller.spec.js +56 -1
  46. package/server/applications/notifications/notifications.controller.spec.js.map +1 -1
  47. package/server/applications/notifications/services/notifications-manager.service.spec.js +461 -5
  48. package/server/applications/notifications/services/notifications-manager.service.spec.js.map +1 -1
  49. package/server/applications/shares/services/shares-manager.service.spec.js +590 -14
  50. package/server/applications/shares/services/shares-manager.service.spec.js.map +1 -1
  51. package/server/applications/spaces/guards/space.guard.spec.js +153 -18
  52. package/server/applications/spaces/guards/space.guard.spec.js.map +1 -1
  53. package/server/applications/spaces/services/spaces-browser.service.js +7 -7
  54. package/server/applications/spaces/services/spaces-browser.service.js.map +1 -1
  55. package/server/applications/spaces/services/spaces-manager.service.js +17 -17
  56. package/server/applications/spaces/services/spaces-manager.service.js.map +1 -1
  57. package/server/applications/sync/interceptors/sync-diff-gzip-body.interceptor.spec.js +120 -0
  58. package/server/applications/sync/interceptors/sync-diff-gzip-body.interceptor.spec.js.map +1 -0
  59. package/server/applications/sync/services/sync-clients-manager.service.spec.js +548 -8
  60. package/server/applications/sync/services/sync-clients-manager.service.spec.js.map +1 -1
  61. package/server/applications/sync/services/sync-manager.service.spec.js +837 -5
  62. package/server/applications/sync/services/sync-manager.service.spec.js.map +1 -1
  63. package/server/applications/sync/services/sync-paths-manager.service.spec.js +900 -7
  64. package/server/applications/sync/services/sync-paths-manager.service.spec.js.map +1 -1
  65. package/server/applications/sync/utils/routes.js +1 -1
  66. package/server/applications/sync/utils/routes.js.map +1 -1
  67. package/server/applications/users/guards/permissions.guard.js +4 -4
  68. package/server/applications/users/guards/permissions.guard.js.map +1 -1
  69. package/server/applications/users/guards/permissions.guard.spec.js +6 -6
  70. package/server/applications/users/guards/permissions.guard.spec.js.map +1 -1
  71. package/server/applications/users/guards/roles.guard.js +1 -1
  72. package/server/applications/users/guards/roles.guard.js.map +1 -1
  73. package/server/applications/users/models/user.model.js +1 -1
  74. package/server/applications/users/models/user.model.js.map +1 -1
  75. package/server/applications/users/services/admin-users-manager.service.js +22 -24
  76. package/server/applications/users/services/admin-users-manager.service.js.map +1 -1
  77. package/server/applications/users/services/admin-users-manager.service.spec.js +763 -17
  78. package/server/applications/users/services/admin-users-manager.service.spec.js.map +1 -1
  79. package/server/applications/users/services/users-manager.service.js +1 -1
  80. package/server/applications/users/services/users-manager.service.js.map +1 -1
  81. package/server/applications/users/services/users-manager.service.spec.js +938 -49
  82. package/server/applications/users/services/users-manager.service.spec.js.map +1 -1
  83. package/server/applications/webdav/decorators/if-header.decorator.js +4 -1
  84. package/server/applications/webdav/decorators/if-header.decorator.js.map +1 -1
  85. package/server/applications/webdav/filters/webdav.filter.spec.js +77 -0
  86. package/server/applications/webdav/filters/webdav.filter.spec.js.map +1 -0
  87. package/server/applications/webdav/guards/webdav-protocol.guard.js +3 -7
  88. package/server/applications/webdav/guards/webdav-protocol.guard.js.map +1 -1
  89. package/server/applications/webdav/guards/webdav-protocol.guard.spec.js +580 -0
  90. package/server/applications/webdav/guards/webdav-protocol.guard.spec.js.map +1 -0
  91. package/server/applications/webdav/services/webdav-methods.service.spec.js +1582 -3
  92. package/server/applications/webdav/services/webdav-methods.service.spec.js.map +1 -1
  93. package/server/applications/webdav/services/webdav-spaces.service.spec.js +390 -2
  94. package/server/applications/webdav/services/webdav-spaces.service.spec.js.map +1 -1
  95. package/server/applications/webdav/webdav.controller.js +2 -2
  96. package/server/applications/webdav/webdav.controller.js.map +1 -1
  97. package/server/authentication/guards/auth-basic.guard.js.map +1 -1
  98. package/server/authentication/guards/auth-basic.guard.spec.js +38 -2
  99. package/server/authentication/guards/auth-basic.guard.spec.js.map +1 -1
  100. package/server/authentication/guards/auth-basic.strategy.js +0 -1
  101. package/server/authentication/guards/auth-basic.strategy.js.map +1 -1
  102. package/server/authentication/guards/auth-digest.guard.js +1 -2
  103. package/server/authentication/guards/auth-digest.guard.js.map +1 -1
  104. package/server/authentication/guards/auth-local.guard.js.map +1 -1
  105. package/server/authentication/guards/auth-local.guard.spec.js +7 -5
  106. package/server/authentication/guards/auth-local.guard.spec.js.map +1 -1
  107. package/server/authentication/guards/auth-local.strategy.js +0 -1
  108. package/server/authentication/guards/auth-local.strategy.js.map +1 -1
  109. package/server/authentication/guards/auth-token-access.guard.spec.js +30 -0
  110. package/server/authentication/guards/auth-token-access.guard.spec.js.map +1 -1
  111. package/server/authentication/guards/auth-token-access.strategy.js +0 -1
  112. package/server/authentication/guards/auth-token-access.strategy.js.map +1 -1
  113. package/server/authentication/guards/auth-token-refresh.strategy.js +0 -1
  114. package/server/authentication/guards/auth-token-refresh.strategy.js.map +1 -1
  115. package/server/authentication/services/auth-methods/auth-method-database.service.js +1 -1
  116. package/server/authentication/services/auth-methods/auth-method-database.service.js.map +1 -1
  117. package/server/authentication/services/auth-methods/auth-method-database.service.spec.js +8 -6
  118. package/server/authentication/services/auth-methods/auth-method-database.service.spec.js.map +1 -1
  119. package/server/authentication/services/auth-methods/auth-method-ldap.service.js +2 -2
  120. package/server/authentication/services/auth-methods/auth-method-ldap.service.js.map +1 -1
  121. package/server/authentication/services/auth-methods/auth-method-ldap.service.spec.js +500 -5
  122. package/server/authentication/services/auth-methods/auth-method-ldap.service.spec.js.map +1 -1
  123. package/server/configuration/config.loader.js +0 -3
  124. package/server/configuration/config.loader.js.map +1 -1
  125. package/server/infrastructure/context/interceptors/context.interceptor.spec.js +135 -0
  126. package/server/infrastructure/context/interceptors/context.interceptor.spec.js.map +1 -0
  127. package/server/infrastructure/context/services/context-manager.service.spec.js +98 -0
  128. package/server/infrastructure/context/services/context-manager.service.spec.js.map +1 -0
  129. package/server/infrastructure/database/constants.js +0 -1
  130. package/server/infrastructure/database/constants.js.map +1 -1
  131. package/server/infrastructure/database/scripts/seed/usersgroups.js +3 -3
  132. package/server/infrastructure/database/scripts/seed/usersgroups.js.map +1 -1
  133. package/server/infrastructure/mailer/mailer.service.js +20 -19
  134. package/server/infrastructure/mailer/mailer.service.js.map +1 -1
  135. package/server/infrastructure/mailer/mailer.service.spec.js +176 -0
  136. package/server/infrastructure/mailer/mailer.service.spec.js.map +1 -0
  137. package/static/3rdpartylicenses.txt +26 -26
  138. package/static/assets/pdfjs/build/pdf.mjs +1177 -255
  139. package/static/assets/pdfjs/build/pdf.mjs.map +1 -1
  140. package/static/assets/pdfjs/build/pdf.sandbox.mjs +25 -2
  141. package/static/assets/pdfjs/build/pdf.sandbox.mjs.map +1 -1
  142. package/static/assets/pdfjs/build/pdf.worker.mjs +140 -16
  143. package/static/assets/pdfjs/build/pdf.worker.mjs.map +1 -1
  144. package/static/assets/pdfjs/version +1 -1
  145. package/static/assets/pdfjs/web/debugger.css +31 -0
  146. package/static/assets/pdfjs/web/debugger.mjs +144 -2
  147. package/static/assets/pdfjs/web/images/comment-editButton.svg +6 -1
  148. package/static/assets/pdfjs/web/locale/ach/viewer.ftl +0 -63
  149. package/static/assets/pdfjs/web/locale/af/viewer.ftl +0 -71
  150. package/static/assets/pdfjs/web/locale/an/viewer.ftl +0 -63
  151. package/static/assets/pdfjs/web/locale/ast/viewer.ftl +0 -60
  152. package/static/assets/pdfjs/web/locale/az/viewer.ftl +0 -63
  153. package/static/assets/pdfjs/web/locale/be/viewer.ftl +38 -0
  154. package/static/assets/pdfjs/web/locale/bg/viewer.ftl +0 -37
  155. package/static/assets/pdfjs/web/locale/bn/viewer.ftl +0 -63
  156. package/static/assets/pdfjs/web/locale/bo/viewer.ftl +0 -63
  157. package/static/assets/pdfjs/web/locale/br/viewer.ftl +0 -37
  158. package/static/assets/pdfjs/web/locale/brx/viewer.ftl +0 -63
  159. package/static/assets/pdfjs/web/locale/bs/viewer.ftl +22 -0
  160. package/static/assets/pdfjs/web/locale/ca/viewer.ftl +0 -54
  161. package/static/assets/pdfjs/web/locale/cak/viewer.ftl +0 -54
  162. package/static/assets/pdfjs/web/locale/ckb/viewer.ftl +0 -63
  163. package/static/assets/pdfjs/web/locale/cs/viewer.ftl +38 -0
  164. package/static/assets/pdfjs/web/locale/cy/viewer.ftl +38 -0
  165. package/static/assets/pdfjs/web/locale/da/viewer.ftl +38 -0
  166. package/static/assets/pdfjs/web/locale/de/viewer.ftl +38 -0
  167. package/static/assets/pdfjs/web/locale/dsb/viewer.ftl +38 -0
  168. package/static/assets/pdfjs/web/locale/el/viewer.ftl +38 -0
  169. package/static/assets/pdfjs/web/locale/en-CA/viewer.ftl +38 -0
  170. package/static/assets/pdfjs/web/locale/en-GB/viewer.ftl +38 -0
  171. package/static/assets/pdfjs/web/locale/en-US/viewer.ftl +25 -0
  172. package/static/assets/pdfjs/web/locale/eo/viewer.ftl +38 -0
  173. package/static/assets/pdfjs/web/locale/es-AR/viewer.ftl +38 -0
  174. package/static/assets/pdfjs/web/locale/es-CL/viewer.ftl +38 -0
  175. package/static/assets/pdfjs/web/locale/es-MX/viewer.ftl +0 -6
  176. package/static/assets/pdfjs/web/locale/et/viewer.ftl +0 -57
  177. package/static/assets/pdfjs/web/locale/fa/viewer.ftl +0 -37
  178. package/static/assets/pdfjs/web/locale/ff/viewer.ftl +0 -63
  179. package/static/assets/pdfjs/web/locale/fi/viewer.ftl +38 -0
  180. package/static/assets/pdfjs/web/locale/fr/viewer.ftl +38 -0
  181. package/static/assets/pdfjs/web/locale/fy-NL/viewer.ftl +38 -0
  182. package/static/assets/pdfjs/web/locale/ga-IE/viewer.ftl +0 -71
  183. package/static/assets/pdfjs/web/locale/gd/viewer.ftl +0 -54
  184. package/static/assets/pdfjs/web/locale/gl/viewer.ftl +8 -0
  185. package/static/assets/pdfjs/web/locale/gn/viewer.ftl +38 -0
  186. package/static/assets/pdfjs/web/locale/gu-IN/viewer.ftl +0 -63
  187. package/static/assets/pdfjs/web/locale/he/viewer.ftl +38 -0
  188. package/static/assets/pdfjs/web/locale/hi-IN/viewer.ftl +0 -60
  189. package/static/assets/pdfjs/web/locale/hsb/viewer.ftl +38 -0
  190. package/static/assets/pdfjs/web/locale/hu/viewer.ftl +38 -0
  191. package/static/assets/pdfjs/web/locale/hy-AM/viewer.ftl +0 -49
  192. package/static/assets/pdfjs/web/locale/hye/viewer.ftl +0 -60
  193. package/static/assets/pdfjs/web/locale/ia/viewer.ftl +38 -0
  194. package/static/assets/pdfjs/web/locale/is/viewer.ftl +0 -3
  195. package/static/assets/pdfjs/web/locale/it/viewer.ftl +31 -0
  196. package/static/assets/pdfjs/web/locale/ja/viewer.ftl +8 -0
  197. package/static/assets/pdfjs/web/locale/ka/viewer.ftl +48 -10
  198. package/static/assets/pdfjs/web/locale/kab/viewer.ftl +5 -0
  199. package/static/assets/pdfjs/web/locale/kk/viewer.ftl +8 -0
  200. package/static/assets/pdfjs/web/locale/km/viewer.ftl +0 -63
  201. package/static/assets/pdfjs/web/locale/kn/viewer.ftl +0 -71
  202. package/static/assets/pdfjs/web/locale/ko/viewer.ftl +38 -0
  203. package/static/assets/pdfjs/web/locale/lij/viewer.ftl +0 -63
  204. package/static/assets/pdfjs/web/locale/lo/viewer.ftl +0 -54
  205. package/static/assets/pdfjs/web/locale/lt/viewer.ftl +0 -60
  206. package/static/assets/pdfjs/web/locale/ltg/viewer.ftl +0 -63
  207. package/static/assets/pdfjs/web/locale/lv/viewer.ftl +0 -63
  208. package/static/assets/pdfjs/web/locale/meh/viewer.ftl +0 -75
  209. package/static/assets/pdfjs/web/locale/mk/viewer.ftl +0 -63
  210. package/static/assets/pdfjs/web/locale/ml/viewer.ftl +0 -3
  211. package/static/assets/pdfjs/web/locale/mr/viewer.ftl +0 -63
  212. package/static/assets/pdfjs/web/locale/ms/viewer.ftl +0 -63
  213. package/static/assets/pdfjs/web/locale/my/viewer.ftl +0 -71
  214. package/static/assets/pdfjs/web/locale/nb-NO/viewer.ftl +44 -6
  215. package/static/assets/pdfjs/web/locale/ne-NP/viewer.ftl +0 -71
  216. package/static/assets/pdfjs/web/locale/nl/viewer.ftl +38 -0
  217. package/static/assets/pdfjs/web/locale/nn-NO/viewer.ftl +45 -1
  218. package/static/assets/pdfjs/web/locale/oc/viewer.ftl +0 -31
  219. package/static/assets/pdfjs/web/locale/pa-IN/viewer.ftl +38 -0
  220. package/static/assets/pdfjs/web/locale/pl/viewer.ftl +39 -1
  221. package/static/assets/pdfjs/web/locale/pt-BR/viewer.ftl +38 -0
  222. package/static/assets/pdfjs/web/locale/ro/viewer.ftl +355 -1
  223. package/static/assets/pdfjs/web/locale/ru/viewer.ftl +38 -0
  224. package/static/assets/pdfjs/web/locale/sat/viewer.ftl +0 -54
  225. package/static/assets/pdfjs/web/locale/sc/viewer.ftl +0 -38
  226. package/static/assets/pdfjs/web/locale/scn/viewer.ftl +0 -92
  227. package/static/assets/pdfjs/web/locale/sco/viewer.ftl +0 -60
  228. package/static/assets/pdfjs/web/locale/si/viewer.ftl +0 -51
  229. package/static/assets/pdfjs/web/locale/sk/viewer.ftl +38 -0
  230. package/static/assets/pdfjs/web/locale/skr/viewer.ftl +0 -27
  231. package/static/assets/pdfjs/web/locale/sl/viewer.ftl +8 -0
  232. package/static/assets/pdfjs/web/locale/son/viewer.ftl +0 -71
  233. package/static/assets/pdfjs/web/locale/sr/viewer.ftl +0 -33
  234. package/static/assets/pdfjs/web/locale/sv-SE/viewer.ftl +38 -0
  235. package/static/assets/pdfjs/web/locale/szl/viewer.ftl +0 -63
  236. package/static/assets/pdfjs/web/locale/ta/viewer.ftl +0 -63
  237. package/static/assets/pdfjs/web/locale/te/viewer.ftl +0 -60
  238. package/static/assets/pdfjs/web/locale/tg/viewer.ftl +38 -0
  239. package/static/assets/pdfjs/web/locale/tl/viewer.ftl +0 -63
  240. package/static/assets/pdfjs/web/locale/tr/viewer.ftl +40 -2
  241. package/static/assets/pdfjs/web/locale/trs/viewer.ftl +0 -72
  242. package/static/assets/pdfjs/web/locale/ur/viewer.ftl +0 -60
  243. package/static/assets/pdfjs/web/locale/uz/viewer.ftl +0 -71
  244. package/static/assets/pdfjs/web/locale/vi/viewer.ftl +38 -0
  245. package/static/assets/pdfjs/web/locale/wo/viewer.ftl +0 -77
  246. package/static/assets/pdfjs/web/locale/xh/viewer.ftl +0 -71
  247. package/static/assets/pdfjs/web/locale/zh-CN/viewer.ftl +38 -0
  248. package/static/assets/pdfjs/web/locale/zh-TW/viewer.ftl +38 -0
  249. package/static/assets/pdfjs/web/viewer.css +649 -120
  250. package/static/assets/pdfjs/web/viewer.html +19 -0
  251. package/static/assets/pdfjs/web/viewer.mjs +489 -38
  252. package/static/assets/pdfjs/web/viewer.mjs.map +1 -1
  253. package/static/chunk-22EANI6R.js +1 -0
  254. package/static/{chunk-KFM544CA.js → chunk-2UWN7IQF.js} +1 -1
  255. package/static/{chunk-N3T57OCA.js → chunk-2VSPDSJS.js} +1 -1
  256. package/static/{chunk-HUWQHCUX.js → chunk-34UZ7SYI.js} +1 -1
  257. package/static/{chunk-MWFRZBJD.js → chunk-45UQJGGY.js} +1 -1
  258. package/static/{chunk-LYTD6AJE.js → chunk-5TEXH3LJ.js} +1 -1
  259. package/static/{chunk-4KESSWTF.js → chunk-66FMKVJX.js} +1 -1
  260. package/static/{chunk-XE5YHU5J.js → chunk-BIUNUYZ5.js} +1 -1
  261. package/static/chunk-CK4BY2NX.js +27 -0
  262. package/static/{chunk-QTW62OKJ.js → chunk-CSBDAY77.js} +1 -1
  263. package/static/{chunk-XUZSYWRF.js → chunk-CXXPLBDZ.js} +1 -1
  264. package/static/{chunk-ZTXJC5IC.js → chunk-EILQG525.js} +1 -1
  265. package/static/{chunk-FJFNDK67.js → chunk-ENWABUR4.js} +1 -1
  266. package/static/{chunk-WL65GYD5.js → chunk-FR4AOLYL.js} +4 -4
  267. package/static/chunk-HW2H3ISM.js +559 -0
  268. package/static/{chunk-BW5PQAKK.js → chunk-HYMDGBZL.js} +1 -1
  269. package/static/{chunk-WLPYIJFI.js → chunk-IML5UYQG.js} +1 -1
  270. package/static/{chunk-Z5X7LVMZ.js → chunk-IPSMJHMQ.js} +1 -1
  271. package/static/{chunk-3S4WNZ2T.js → chunk-JVCWYSNP.js} +1 -1
  272. package/static/{chunk-CLSVDV7J.js → chunk-KGPCIUD2.js} +1 -1
  273. package/static/{chunk-O4AQBQBF.js → chunk-KQZJSEM3.js} +1 -1
  274. package/static/{chunk-MK7WZG3F.js → chunk-NPEMJJIU.js} +1 -1
  275. package/static/{chunk-4TEHM3AS.js → chunk-OEFBC4GG.js} +1 -1
  276. package/static/{chunk-O67RFAWU.js → chunk-P734A3XZ.js} +1 -1
  277. package/static/{chunk-SRLMFJ7C.js → chunk-RASR4CK6.js} +1 -1
  278. package/static/{chunk-S5WXHO6D.js → chunk-RFMOUC22.js} +1 -1
  279. package/static/{chunk-TTQ37MUV.js → chunk-RSS6GYNE.js} +1 -1
  280. package/static/{chunk-3FX6ISDY.js → chunk-SBOQGGZX.js} +1 -1
  281. package/static/{chunk-NV2MEIWP.js → chunk-SJAFPXQV.js} +1 -1
  282. package/static/{chunk-PYSFXLMV.js → chunk-XTYGMF2V.js} +1 -1
  283. package/static/{chunk-ZFKCGL6X.js → chunk-YCWMV2YR.js} +1 -1
  284. package/static/{chunk-LB7B5RIV.js → chunk-YGD22MWQ.js} +1 -1
  285. package/static/{chunk-MTRNPGS4.js → chunk-ZC5NIT55.js} +1 -1
  286. package/static/{chunk-SKDQM65G.js → chunk-ZVY37DKS.js} +1 -1
  287. package/static/index.html +2 -2
  288. package/static/main-N5CZRHAO.js +7 -0
  289. package/static/styles-FYUSO6OJ.css +1 -0
  290. package/static/chunk-AY2GOSJ2.js +0 -24
  291. package/static/chunk-RSNLYAN6.js +0 -560
  292. package/static/chunk-ZZ3LHYOY.js +0 -1
  293. package/static/main-RREKR34B.js +0 -10
  294. package/static/styles-3DONJ2Z4.css +0 -1
@@ -1 +1 @@
1
- import{a as Ct}from"./chunk-S5WXHO6D.js";import{a as gt,b as R,c as vt}from"./chunk-KFM544CA.js";import{a as Q,b as Fe,c as ot,e as oe}from"./chunk-QTW62OKJ.js";import{a as ht}from"./chunk-NV2MEIWP.js";import{d as be}from"./chunk-CLSVDV7J.js";import"./chunk-JXZCNFW7.js";import{a as _t}from"./chunk-LB7B5RIV.js";import{a as ne,b as xe,c as Se,d as we,f as Te,i as Ae}from"./chunk-BW5PQAKK.js";import{a as ke,b as Ie,c as ut,d as ft}from"./chunk-MWFRZBJD.js";import{a as K,b as ye}from"./chunk-SRLMFJ7C.js";import"./chunk-FJFNDK67.js";import{g as dt}from"./chunk-4KESSWTF.js";import{K as it,L as X,N as nt,R as ve,Xa as pt,pa as at,qa as rt,ra as st,ua as lt,v as qe,va as mt,wa as ct,wb as z}from"./chunk-WL65GYD5.js";import{b as Re,d as Le}from"./chunk-XE5YHU5J.js";import{$a as Pe,$c as Z,Ad as $e,Bf as Ze,Cb as f,Eb as p,Ed as ie,Ee as Ke,Fc as pe,Fd as G,Ga as J,Gc as Ge,Gd as je,Ge as Ce,Ib as re,If as et,Jb as se,Kb as le,L as W,Ma as r,Mb as De,Nb as E,Ob as U,Pb as m,Pf as he,Qb as v,Qd as He,Rb as A,Sb as O,Ue as We,Uf as tt,Xa as N,Xb as P,Yb as Me,Zc as M,_a as me,ab as k,ad as de,ae as Qe,bb as ce,bf as Xe,cd as F,dc as h,ec as w,ed as B,fc as D,fd as $,gd as ee,ha as S,id as y,jb as g,jd as Oe,kb as C,lb as Y,ma as b,na as x,nb as I,nd as q,ob as V,od as te,pb as c,pd as ue,pe as ze,qb as n,qd as fe,rb as o,rd as _e,sb as u,wd as Be,wf as Je,xd as j,xe as ge,yd as H,zb as L,zf as Ye}from"./chunk-RSNLYAN6.js";import"./chunk-RTRJ3KFH.js";function Tt(e,a){if(e&1&&(u(0,"fa-icon",42),n(1,"span"),m(2),o()),e&2){let i=p();c("icon",i.icons.faPen),r(2),v(i.guest.fullName)}}function At(e,a){if(e&1&&(u(0,"fa-icon",42),n(1,"span",43),m(2,"New guest"),o()),e&2){let i=p();c("icon",i.icons.faPlus)}}function Et(e,a){if(e&1&&u(0,"fa-icon",2),e&2){let i=p();c("icon",i.icons.faSpinner)}}function Ut(e,a){e&1&&(n(0,"h4",3)(1,"span",43),m(2,"Edit guest"),o()())}function Dt(e,a){if(e&1&&(u(0,"fa-icon",44),n(1,"span",45),m(2,"Account"),o()),e&2){let i=p();c("icon",i.icons.faAddressCard)}}function Ft(e,a){if(e&1&&u(0,"app-password-strength-bar",22),e&2){let i=p();c("passwordToCheck",i.guestForm.value.password)}}function kt(e,a){if(e&1&&(n(0,"option",26),m(1),o()),e&2){let i=a.$implicit;c("ngValue",i),r(),v(i)}}function It(e,a){if(e&1&&(n(0,"option",34),m(1),o()),e&2){let i=a.$implicit,s=p();c("ngValue",s.allNotifications.indexOf(i)),r(),v(i)}}function Vt(e,a){if(e&1&&(n(0,"div"),m(1),h(2,"amDateFormat"),o(),n(3,"div"),m(4),h(5,"amDateFormat"),o()),e&2){let i=p(2);r(),O("",w(2,4,i.guest.currentAccess)," - ",i.guest.currentIp),r(3),O("",w(5,6,i.guest.lastAccess)," - ",i.guest.lastIp)}}function Nt(e,a){e&1&&(n(0,"span",37),m(1,"never"),o())}function Pt(e,a){if(e&1&&(n(0,"div",11)(1,"div",12)(2,"label",46),m(3,"Creation date"),o(),n(4,"div",47),m(5),h(6,"amDateFormat"),o()(),n(7,"div",48)(8,"label",49),m(9,"Last accesses"),o(),n(10,"div",50),g(11,Vt,6,8)(12,Nt,2,0,"span",37),o()()()),e&2){let i=p();r(5),v(w(6,2,i.guest.createdAt)),r(6),C(i.guest.lastAccess?11:12)}}function Mt(e,a){if(e&1&&(u(0,"fa-icon",44),n(1,"span",51),m(2,"Managers"),o(),n(3,"span"),m(4),o()),e&2){let i=p();c("icon",i.icons.faUsersGear),r(4),A("(",i.guestForm.value.managers.length||0,")")}}function Gt(e,a){e&1&&(n(0,"small",37),m(1,"At least one manager is required"),o())}function Rt(e,a){if(e&1){let i=L();n(0,"button",52),f("click",function(){b(i);let l=p();return x(l.confirmDeletion=!0)}),m(1," Remove "),o()}if(e&2){let i=p();c("disabled",i.confirmDeletion)}}var Ve=(()=>{let a=class a extends Ct{constructor(){super(),this.adminService=S(R)}searchMembers(s){let l={search:s,ignoreUserIds:this.guestForm.value.managers.map(t=>t.id),usersRole:X.USER,onlyUsers:!0};return this.adminService.searchMembers(l)}onSubmit(){if(this.submitted=!0,this.confirmDeletion)this.adminService.deleteUser(this.guest.id,null,!0).subscribe({next:()=>{this.guestChange.emit(["delete",this.guest]),this.layout.sendNotification("success","Guest deleted",this.guest.login),this.layout.closeDialog()},error:s=>this.onError(s)});else if(!this.guest)this.adminService.createUser(this.makeDto(!0),!0).subscribe({next:s=>{this.guestChange.emit(["add",s]),this.layout.sendNotification("success","Guest created",this.guestForm.value.login),this.layout.closeDialog()},error:s=>this.onError(s)});else{let s=this.makeDto();if(!Object.keys(s).length){this.loading=!1,this.submitted=!1;return}this.adminService.updateUser(this.guest.id,s,!0).subscribe({next:l=>{l?this.guestChange.emit(["update",l]):this.guestChange.emit(["delete",this.guest]),this.layout.sendNotification("success","Guest updated",this.guestForm.value.login),this.layout.closeDialog()},error:l=>this.onError(l)})}}};a.\u0275fac=function(l){return new(l||a)},a.\u0275cmp=N({type:a,selectors:[["app-admin-guest-dialog"]],features:[Pe],decls:70,vars:40,consts:[[1,"modal-header","align-items-center"],[1,"modal-title"],["animation","spin","size","sm",1,"ms-2",3,"icon"],[1,"modal-title","ms-auto"],["aria-label","Close","type","button",3,"click"],[1,"modal-body",3,"formGroup"],["type","pills",3,"justified"],[1,"my-3"],["customClass","tab-dialog form-validation",3,"selectTab"],["tabHeading",""],[1,"d-flex","flex-column"],[1,"d-flex","col-12","pb-3"],[1,"flex-fill","col-6","pe-4"],["for","login","l10nTranslate",""],["id","login","appAutofocus","","formControlName","login","autocomplete","off","type","text",1,"form-control","form-control-sm",3,"autoSelect"],[1,"flex-fill","col-6","ps-4"],["for","email","l10nTranslate",""],["id","email","formControlName","email","autocomplete","off","type","email",1,"form-control","form-control-sm"],["for","firstName","l10nTranslate",""],["id","firstName","formControlName","firstName","autocomplete","off","type","text",1,"form-control","form-control-sm"],["for","lastName","l10nTranslate",""],["id","lastName","formControlName","lastName","autocomplete","off","type","text",1,"form-control","form-control-sm"],[1,"position-absolute","pe-4",2,"right","50%","padding-top","6px",3,"passwordToCheck"],["id","password","placeholder","Set a password",3,"passwordChange","password","showGenerator","showLabel","isRequired"],["for","language","l10nTranslate",""],["id","language","formControlName","language",1,"form-control","form-select","form-select-sm"],[3,"ngValue"],[1,"d-flex","flex-column","col-6","pe-4"],["for","account","l10nTranslate",""],["id","account",1,"form-check","form-switch","form-check-inline"],["for","isActive",1,"form-check-label"],["formControlName","isActive","id","isActive","type","checkbox",1,"form-check-input"],["for","notification","l10nTranslate",""],["id","notification","formControlName","notification",1,"form-control","form-select","form-select-sm"],["l10nTranslate","",3,"ngValue"],["customClass","tab-dialog",3,"selectTab"],[3,"membersChange","members","withPermissions","customPlaceholder","searchFunction"],["l10nTranslate","",1,"text-danger"],[1,"modal-footer"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-danger",3,"disabled"],["data-dismiss","modal","type","button","l10nTranslate","",1,"btn","btn-sm","btn-secondary","ms-auto",3,"click"],["type","button","l10nTranslate","",3,"click","disabled"],[1,"me-2",3,"icon"],["l10nTranslate",""],[3,"icon"],["l10nTranslate","",1,"ms-2"],["for","created","l10nTranslate",""],["id","created"],[1,"d-flex","flex-column","align-items-end","col-6","ps-4"],["for","access","l10nTranslate",""],["id","access",1,"text-align-end"],["l10nTranslate","",1,"ms-2","me-1"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-danger",3,"click","disabled"]],template:function(l,t){l&1&&(n(0,"div",0)(1,"h4",1),g(2,Tt,3,2)(3,At,3,1),g(4,Et,1,1,"fa-icon",2),o(),g(5,Ut,3,0,"h4",3),n(6,"button",4),f("click",function(){return t.layout.closeDialog()}),o()(),n(7,"div",5)(8,"tabset",6),u(9,"hr",7),n(10,"tab",8),f("selectTab",function(){return t.tabView=null}),k(11,Dt,3,1,"ng-template",9),n(12,"div",10)(13,"div",11)(14,"div",12)(15,"label",13),m(16,"Login"),o(),u(17,"input",14),o(),n(18,"div",15)(19,"label",16),m(20,"Email"),o(),u(21,"input",17),o()(),n(22,"div",11)(23,"div",12)(24,"label",18),m(25,"First name"),o(),u(26,"input",19),o(),n(27,"div",15)(28,"label",20),m(29,"Last name"),o(),u(30,"input",21),o()(),n(31,"div",11)(32,"div",12),g(33,Ft,1,1,"app-password-strength-bar",22),n(34,"app-input-password",23),f("passwordChange",function(_){return t.updatePassword(_)}),o()(),n(35,"div",15)(36,"label",24),m(37,"Language"),o(),n(38,"select",25),I(39,kt,2,2,"option",26,Y),o()()(),n(41,"div",11)(42,"div",27)(43,"label",28),m(44,"Account status"),o(),n(45,"div",29)(46,"label",30),u(47,"input",31),n(48,"span"),m(49),h(50,"translate"),h(51,"titlecase"),o()()()(),n(52,"div",15)(53,"label",32),m(54,"Notification"),o(),n(55,"select",33),I(56,It,2,2,"option",34,Y),o()()(),g(58,Pt,13,4,"div",11),o()(),n(59,"tab",35),f("selectTab",function(){return t.tabView="managers"}),k(60,Mt,5,2,"ng-template",9),n(61,"div",7)(62,"app-user-search",36),f("membersChange",function(_){return t.updateManagers(_)}),o(),g(63,Gt,2,0,"small",37),o()()()(),n(64,"div",38),g(65,Rt,2,1,"button",39),n(66,"button",40),f("click",function(){return t.onCancel()}),m(67,"Cancel"),o(),n(68,"button",41),f("click",function(){return t.onSubmit()}),m(69),o()()),l&2&&(r(2),C(t.guest?2:3),r(2),C(t.loading?4:-1),r(),C(t.guest?5:-1),r(),U(P("btn-close btn-close-white ",t.guest?"ms-2":"ms-auto"," ms-2")),r(),c("formGroup",t.guestForm),r(),c("justified",!0),r(9),E("is-invalid",t.guestForm.controls.login.invalid),c("autoSelect",!1),r(4),E("is-invalid",t.guestForm.controls.email.invalid),r(5),E("is-invalid",t.guestForm.controls.firstName.invalid),r(7),C(t.guestForm.value.password!==t.defaultPassword?33:-1),r(),c("password",t.guestForm.value.password)("showGenerator",!0)("showLabel",!0)("isRequired",!0),r(5),V(t.languages),r(9),E("text-danger",!t.guestForm.value.isActive),r(),A(" ",w(51,38,D(50,35,t.guestForm.value.isActive?"active":"suspended",t.locale.language))," "),r(7),V(t.allNotifications),r(2),C(t.guest?58:-1),r(4),c("members",t.guestForm.value.managers)("withPermissions",!1)("customPlaceholder","Type to search for managers to add")("searchFunction",t.searchMembers.bind(t)),r(),C(t.guestForm.value.managers.length?-1:63),r(2),C(t.guest!=null&&t.guest.id?65:-1),r(3),U(P("btn btn-sm ",t.confirmDeletion?"btn-danger":"btn-primary")),c("disabled",t.guestForm.invalid||t.submitted),r(),A(" ",t.confirmDeletion?"Confirm deletion":"Confirm"," "))},dependencies:[M,G,j,fe,_e,de,Z,ue,B,$,q,te,K,ye,Te,Ae,xe,Se,we,ne,ie,pe],encapsulation:2});let e=a;return e})();function Ot(e,a){e&1&&(n(0,"h4",3)(1,"span",13),m(2,"Impersonate identity"),o()())}var bt=(()=>{let a=class a{constructor(){this.locale=S(H),this.layout=S(z),this.submitted=!1,this.icons={faUserSecret:he},this.passwordMinLength=8,this.impersonateUserForm=new ee({password:new y("",F.required)}),this.adminService=S(R)}onSubmit(){this.submitted=!0,this.adminService.impersonateUser(this.user.id,{password:this.impersonateUserForm.value.password}).subscribe({next:s=>{this.layout.closeDialog(),setTimeout(()=>this.adminService.initImpersonateUser(s),500)},error:s=>{this.submitted=!1,this.layout.sendNotification("error","Impersonate identity",this.user.login,s)}})}};a.\u0275fac=function(l){return new(l||a)},a.\u0275cmp=N({type:a,selectors:[["app-admin-impersonate-user-dialog"]],inputs:{user:"user"},decls:19,vars:16,consts:[[1,"modal-header","align-items-center"],[1,"modal-title"],[1,"me-2",3,"icon"],[1,"modal-title","ms-auto"],["aria-label","Close","type","button",3,"click"],[1,"modal-body",3,"formGroup"],[1,"d-flex","align-items-center","avatar","mb-3"],["alt","",1,"avatar-img",3,"src"],[1,"fw-bold","mx-2"],["id","password","placeholder","Enter your password to confirm",3,"passwordChange","password","passwordMinLength","isRequired","focus"],[1,"modal-footer"],["data-dismiss","modal","type","button","l10nTranslate","",1,"btn","btn-sm","btn-secondary","ms-auto",3,"click"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-primary",3,"click","disabled"],["l10nTranslate",""]],template:function(l,t){l&1&&(n(0,"div",0)(1,"h4",1),u(2,"fa-icon",2),n(3,"span"),m(4),o()(),g(5,Ot,3,0,"h4",3),n(6,"button",4),f("click",function(){return t.layout.closeDialog()}),o()(),n(7,"div",5)(8,"div",6),u(9,"img",7),n(10,"span",8),m(11),h(12,"capitalize"),o()(),n(13,"app-input-password",9),f("passwordChange",function(_){return t.impersonateUserForm.controls.password.setValue(_)}),o()(),n(14,"div",10)(15,"button",11),f("click",function(){return t.layout.closeDialog()}),m(16,"Cancel"),o(),n(17,"button",12),f("click",function(){return t.onSubmit()}),m(18," Confirm "),o()()),l&2&&(r(2),c("icon",t.icons.faUserSecret),r(2),v(t.user.fullName),r(),C(t.user?5:-1),r(),U(P("btn-close btn-close-white ",t.user?"ms-2":"ms-auto"," ms-2")),r(),c("formGroup",t.impersonateUserForm),r(2),c("src",t.user.avatarUrl,J),r(2),v(w(12,14,t.user.login)),r(2),c("password",t.impersonateUserForm.value.password)("passwordMinLength",t.passwordMinLength)("isRequired",!0)("focus",!0),r(4),c("disabled",t.impersonateUserForm.invalid||t.submitted))},dependencies:[M,G,j,$,q,K,oe],encapsulation:2});let e=a;return e})();var xt=(()=>{let a=class a{constructor(){this.translate=S($e)}transform(s,l=!1,t=null,d=", "){return s.length?(t?s.map(T=>T[t]):s.concat()).sort().map(T=>new oe().transform(l?this.translate.translate(T):T)).join(d):""}};a.\u0275fac=function(l){return new(l||a)},a.\u0275pipe=me({name:"join",type:a,pure:!0});let e=a;return e})();var St=(()=>{let a=class a{transform(s,l=","){return s?.length?s.split(l):[]}};a.\u0275fac=function(l){return new(l||a)},a.\u0275pipe=me({name:"split",type:a,pure:!0});let e=a;return e})();function Bt(e,a){e&1&&(n(0,"h4",3)(1,"span",9),m(2,"Delete user"),o()())}var wt=(()=>{let a=class a{constructor(){this.wasDeleted=new ce,this.locale=S(H),this.submitted=!1,this.icons={faUserMinus:Je},this.deleteUserForm=new ee({adminPassword:new y("",F.required),deleteSpace:new y(!1)}),this.layout=S(z),this.adminService=S(R)}onClose(){this.wasDeleted.emit(!1),this.layout.closeDialog()}onSubmit(){this.submitted=!0,this.adminService.deleteUser(this.user.id,{adminPassword:this.deleteUserForm.value.adminPassword,deleteSpace:this.deleteUserForm.value.deleteSpace}).subscribe({next:()=>{this.wasDeleted.emit(!0),this.layout.sendNotification("success","Delete user",this.user.login),this.onClose()},error:s=>{this.submitted=!1,this.layout.sendNotification("error","Delete user",this.user.login,s)}})}};a.\u0275fac=function(l){return new(l||a)},a.\u0275cmp=N({type:a,selectors:[["app-admin-user-delete-dialog"]],inputs:{user:"user"},outputs:{wasDeleted:"wasDeleted"},decls:27,vars:15,consts:[[1,"modal-header","align-items-center"],[1,"modal-title"],[1,"me-2",3,"icon"],[1,"modal-title","ms-auto"],["aria-label","Close","type","button",3,"click"],[1,"modal-body",3,"formGroup"],[1,"d-flex","align-items-center","avatar","mb-3"],["alt","",1,"avatar-img",3,"src"],[1,"fw-bold","mx-2"],["l10nTranslate",""],["id","password","placeholder","Enter your password to confirm",3,"passwordChange","password","isRequired","focus"],[1,"form-check","form-check-inline","mt-3"],[1,"d-flex"],["for","deleteSpace",1,"form-check-label"],["formControlName","deleteSpace","id","deleteSpace","type","checkbox",1,"form-check-input"],[1,"modal-footer"],["data-dismiss","modal","type","button","l10nTranslate","",1,"btn","btn-sm","btn-secondary","ms-auto",3,"click"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-primary",3,"click","disabled"]],template:function(l,t){l&1&&(n(0,"div",0)(1,"h4",1),u(2,"fa-icon",2),n(3,"span"),m(4),o()(),g(5,Bt,3,0,"h4",3),n(6,"button",4),f("click",function(){return t.onClose()}),o()(),n(7,"div",5)(8,"div",6),u(9,"img",7),n(10,"span",8),m(11),h(12,"capitalize"),o(),n(13,"span",9),m(14,"will be permanently removed"),o()(),n(15,"app-input-password",10),f("passwordChange",function(_){return t.deleteUserForm.controls.adminPassword.setValue(_)}),o(),n(16,"div",11)(17,"div",12)(18,"label",13),u(19,"input",14),n(20,"span",9),m(21,"Delete all user files"),o()()()()(),n(22,"div",15)(23,"button",16),f("click",function(){return t.onClose()}),m(24,"Cancel"),o(),n(25,"button",17),f("click",function(){return t.onSubmit()}),m(26," Confirm "),o()()),l&2&&(r(2),c("icon",t.icons.faUserMinus),r(2),v(t.user.fullName),r(),C(t.user?5:-1),r(),U(P("btn-close btn-close-white ",t.user?"ms-2":"ms-auto"," ms-2")),r(),c("formGroup",t.deleteUserForm),r(2),c("src",t.user.avatarUrl,J),r(2),v(w(12,13,t.user.login)),r(4),c("password",t.deleteUserForm.value.adminPassword)("isRequired",!0)("focus",!0),r(10),c("disabled",t.deleteUserForm.invalid||t.submitted))},dependencies:[M,G,j,Z,B,$,q,te,K,oe],encapsulation:2});let e=a;return e})();var $t=(e,a)=>a.id;function qt(e,a){if(e&1&&(u(0,"fa-icon",47),n(1,"span"),m(2),o()),e&2){let i=p();c("icon",i.icons.faUserPen),r(2),v(i.user.fullName)}}function jt(e,a){if(e&1&&(u(0,"fa-icon",47),n(1,"span",40),m(2,"New user"),o()),e&2){let i=p();c("icon",i.icons.faUserPlus)}}function Ht(e,a){if(e&1&&u(0,"fa-icon",2),e&2){let i=p();c("icon",i.icons.faSpinner)}}function Qt(e,a){e&1&&(n(0,"h4",3)(1,"span",40),m(2,"Edit user"),o()())}function zt(e,a){if(e&1&&(u(0,"fa-icon",48),n(1,"span",49),m(2,"Account"),o()),e&2){let i=p();c("icon",i.icons.faAddressCard)}}function Kt(e,a){if(e&1&&u(0,"app-password-strength-bar",22),e&2){let i=p();c("passwordToCheck",i.userForm.value.password)}}function Wt(e,a){if(e&1&&(n(0,"option",26),m(1),o()),e&2){let i=a.$implicit;c("ngValue",i),r(),v(i)}}function Xt(e,a){if(e&1&&(n(0,"option",30),m(1),o()),e&2){let i=a.$implicit,s=p();c("ngValue",s.allNotifications.indexOf(i)),r(),v(i)}}function Jt(e,a){if(e&1&&(n(0,"div",11)(1,"div",12)(2,"label",50),m(3,"Storage Usage"),o(),u(4,"app-storage-usage",51),o(),u(5,"div",15),o()),e&2){let i=p();r(4),c("item",i.user)}}function Yt(e,a){if(e&1&&(n(0,"div"),m(1),h(2,"amDateFormat"),o(),n(3,"div"),m(4),h(5,"amDateFormat"),o()),e&2){let i=p(2);r(),O("",w(2,4,i.user.currentAccess)," - ",i.user.currentIp),r(3),O("",w(5,6,i.user.lastAccess)," - ",i.user.lastIp)}}function Zt(e,a){e&1&&(n(0,"span",57),m(1,"never"),o())}function ei(e,a){if(e&1&&(n(0,"div",11)(1,"div",12)(2,"label",52),m(3,"Creation date"),o(),n(4,"div",53),m(5),h(6,"amDateFormat"),o()(),n(7,"div",54)(8,"label",55),m(9,"Last accesses"),o(),n(10,"div",56),g(11,Yt,6,8)(12,Zt,2,0,"span",57),o()()()),e&2){let i=p();r(5),v(w(6,2,i.user.createdAt)),r(6),C(i.user.lastAccess?11:12)}}function ti(e,a){if(e&1&&(u(0,"fa-icon",48),n(1,"span",49),m(2,"Permissions"),o()),e&2){let i=p();c("icon",i.icons.faShieldHalved)}}function ii(e,a){if(e&1&&(n(0,"div",60)(1,"div",61),u(2,"fa-icon",62),n(3,"span"),m(4),o()(),n(5,"div",63),m(6),h(7,"split"),h(8,"join"),o()()),e&2){let i=p().$implicit,s=p(2);r(2),c("icon",s.icons.GROUPS),r(2),v(i.name),r(2),v(D(8,5,w(7,3,i.permissions),!0))}}function ni(e,a){if(e&1&&g(0,ii,9,8,"div",60),e&2){let i=a.$implicit;C(i.permissions?0:-1)}}function oi(e,a){if(e&1&&(n(0,"div",32)(1,"label",58),m(2,"Permissions inherited from groups"),o(),n(3,"div",59),I(4,ni,1,1,null,null,$t),o()()),e&2){let i=p();r(4),V(i.userForm.value.groups)}}function ai(e,a){if(e&1&&(u(0,"fa-icon",48),n(1,"span",64),m(2,"Groups"),o(),n(3,"span"),m(4),o()),e&2){let i=p();c("icon",i.icons.faUsers),r(4),A("(",i.userForm.value.groups.length||0,")")}}function ri(e,a){if(e&1){let i=L();n(0,"button",65),f("click",function(){b(i);let l=p();return x(l.confirmDeletion=!0)}),m(1," Remove "),o()}if(e&2){let i=p();c("disabled",i.confirmDeletion)}}var Ne=(()=>{let a=class a{constructor(){this.user=null,this.userChange=new ce,this.locale=S(H),this.layout=S(z),this.submitted=!1,this.loading=!1,this.confirmDeletion=!1,this.icons={GROUPS:lt.GROUPS,faUserPlus:Ce,faUserPen:ge,faSpinner:Xe,faAddressCard:Ke,faUsers:ze,faShieldHalved:Ze},this.allNotifications=Object.values(ve),this.defaultPassword=this.layout.translateString(mt),this.languages=this.layout.getLanguages(!0),this.adminService=S(R)}ngOnInit(){this.userForm=new ee({login:new y(this.user?.login||"",[F.required,F.pattern(it)]),email:new y(this.user?.email||"",[F.required,F.maxLength(255),F.email]),firstName:new y(this.user?.firstName||"",[F.required,F.maxLength(255)]),lastName:new y(this.user?.lastName||"",F.maxLength(255)),password:new y(this.user?this.defaultPassword:"",F.maxLength(255)),language:new y(this.user?.language||null),notification:new y(this.user?.notification||Object.values(ve).indexOf(ve.APPLICATION_EMAIL)),isActive:new y(this.user?this.user.isActive:!0),isAdmin:new y(this.user?this.user.isAdmin:!1),storageQuota:new y(this.user?.storageQuota||null),groups:new y(this.user?.groups||[]),applications:new y(this.user?.applications||[])})}searchMembers(s){let l={search:s,onlyGroups:!0,excludePersonalGroups:!0,withPermissions:!0,ignoreGroupIds:this.userForm.value.groups.map(t=>t.id)};return this.adminService.searchMembers(l)}updateApplications(s){this.userForm.controls.applications.setValue(s),this.userForm.controls.applications.markAsDirty()}updatePassword(s){this.userForm.controls.password.setValue(s),this.userForm.controls.password.markAsDirty()}updateMembers(s){this.userForm.controls.groups.setValue(s),this.userForm.controls.groups.markAsDirty()}updateQuota(s){this.userForm.controls.storageQuota.setValue(s),this.userForm.controls.storageQuota.markAsDirty()}onCancel(){this.confirmDeletion?this.confirmDeletion=!1:this.layout.closeDialog()}onSubmit(){this.submitted=!0,this.confirmDeletion?this.layout.openDialog(wt,"sm",{initialState:{user:this.user}}).content.wasDeleted.pipe(W(1)).subscribe(l=>{l?(this.userChange.emit(["delete",this.user]),this.layout.closeDialog()):(this.confirmDeletion=!1,this.submitted=!1)}):this.user?this.adminService.updateUser(this.user.id,this.makeDto()).subscribe({next:s=>{this.userChange.emit(["update",s]),this.layout.sendNotification("success","User updated",this.userForm.value.login),this.layout.closeDialog()},error:s=>this.onError(s)}):this.adminService.createUser(this.makeDto(!0)).subscribe({next:s=>{this.userChange.emit(["add",s]),this.layout.sendNotification("success","User created",this.userForm.value.login),this.layout.closeDialog()},error:s=>this.onError(s)})}makeDto(s=!1){let l={};if(s)l=this.userForm.value;else for(let t in this.userForm.controls)this.userForm.controls[t].dirty&&(l[t]=this.userForm.controls[t].value);for(let t in l)switch(t){case"language":l[t]=l[t]===ct?null:l[t];break;case"isAdmin":l.role=l[t]?X.ADMINISTRATOR:X.USER;break;case"applications":l.permissions=l[t].join(nt);break;case"groups":l[t]=l[t].map(d=>d.id);break}return l}onError(s){this.layout.sendNotification("error","Group error",this.userForm.value.login,s),this.submitted=!1}};a.\u0275fac=function(l){return new(l||a)},a.\u0275cmp=N({type:a,selectors:[["app-admin-user-dialog"]],inputs:{user:"user"},outputs:{userChange:"userChange"},decls:82,vars:44,consts:[[1,"modal-header","align-items-center"],[1,"modal-title"],["animation","spin","size","sm",1,"ms-2",3,"icon"],[1,"modal-title","ms-auto"],["aria-label","Close","type","button",3,"click"],[1,"modal-body",3,"formGroup"],["type","pills",3,"justified"],[1,"my-3"],["customClass","tab-dialog form-validation",3,"selectTab"],["tabHeading",""],[1,"d-flex","flex-column"],[1,"d-flex","col-12","pb-3"],[1,"flex-fill","col-6","pe-4"],["for","login","l10nTranslate",""],["id","login","appAutofocus","","formControlName","login","autocomplete","off","type","text",1,"form-control","form-control-sm",3,"autoSelect"],[1,"flex-fill","col-6","ps-4"],["for","email","l10nTranslate",""],["id","email","formControlName","email","autocomplete","off","type","email",1,"form-control","form-control-sm"],["for","firstName","l10nTranslate",""],["id","firstName","formControlName","firstName","autocomplete","off","type","text",1,"form-control","form-control-sm"],["for","lastName","l10nTranslate",""],["id","lastName","formControlName","lastName","autocomplete","off","type","text",1,"form-control","form-control-sm"],[1,"position-absolute","pe-4",2,"right","50%","padding-top","6px",3,"passwordToCheck"],["id","password","placeholder","Set a password",3,"passwordChange","password","showGenerator","showLabel","isRequired"],["for","language","l10nTranslate",""],["id","language","formControlName","language",1,"form-control","form-select","form-select-sm"],[3,"ngValue"],[3,"quotaChange","quota","fullWidth"],["for","notification","l10nTranslate",""],["id","notification","formControlName","notification",1,"form-control","form-select","form-select-sm"],["l10nTranslate","",3,"ngValue"],["customClass","tab-dialog",3,"selectTab"],[1,"d-flex","flex-column","col-12","pb-3"],["for","account","l10nTranslate",""],["id","account",1,"form-check","form-switch","form-check-inline"],[1,"d-flex"],["for","isActive",1,"form-check-label"],["formControlName","isActive","id","isActive","type","checkbox",1,"form-check-input"],["for","isAdmin",1,"form-check-label"],["formControlName","isAdmin","id","isAdmin","type","checkbox",1,"form-check-input"],["l10nTranslate",""],[3,"permissionsChange","permissions"],[3,"membersChange","members","withPermissions","customPlaceholder","searchFunction"],[1,"modal-footer"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-danger",3,"disabled"],["data-dismiss","modal","type","button","l10nTranslate","",1,"btn","btn-sm","btn-secondary","ms-auto",3,"click"],["type","button","l10nTranslate","",3,"click","disabled"],[1,"me-2",3,"icon"],[3,"icon"],["l10nTranslate","",1,"ms-2"],["for","storage","l10nTranslate",""],["id","storage",3,"item"],["for","created","l10nTranslate",""],["id","created"],[1,"d-flex","flex-column","align-items-end","col-6","ps-4"],["for","access","l10nTranslate",""],["id","access",1,"text-align-end"],["l10nTranslate","",1,"text-danger"],["for","groups_permissions","l10nTranslate",""],["id","groups_permissions"],[1,"d-flex","align-items-center","mb-1"],[1,"d-flex","align-items-center","me-5"],[1,"circle-primary-icon","me-2",3,"icon"],[1,"d-flex","fs-xxs","ms-auto"],["l10nTranslate","",1,"ms-2","me-1"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-danger",3,"click","disabled"]],template:function(l,t){l&1&&(n(0,"div",0)(1,"h4",1),g(2,qt,3,2)(3,jt,3,1),g(4,Ht,1,1,"fa-icon",2),o(),g(5,Qt,3,0,"h4",3),n(6,"button",4),f("click",function(){return t.layout.closeDialog()}),o()(),n(7,"div",5)(8,"tabset",6),u(9,"hr",7),n(10,"tab",8),f("selectTab",function(){return t.tabView=null}),k(11,zt,3,1,"ng-template",9),n(12,"div",10)(13,"div",11)(14,"div",12)(15,"label",13),m(16,"Login"),o(),u(17,"input",14),o(),n(18,"div",15)(19,"label",16),m(20,"Email"),o(),u(21,"input",17),o()(),n(22,"div",11)(23,"div",12)(24,"label",18),m(25,"First name"),o(),u(26,"input",19),o(),n(27,"div",15)(28,"label",20),m(29,"Last name"),o(),u(30,"input",21),o()(),n(31,"div",11)(32,"div",12),g(33,Kt,1,1,"app-password-strength-bar",22),n(34,"app-input-password",23),f("passwordChange",function(_){return t.updatePassword(_)}),o()(),n(35,"div",15)(36,"label",24),m(37,"Language"),o(),n(38,"select",25),I(39,Wt,2,2,"option",26,Y),o()()(),n(41,"div",11)(42,"div",12)(43,"app-storage-quota",27),f("quotaChange",function(_){return t.updateQuota(_)}),o()(),n(44,"div",15)(45,"label",28),m(46,"Notification"),o(),n(47,"select",29),I(48,Xt,2,2,"option",30,Y),o()()(),g(50,Jt,6,1,"div",11),o(),g(51,ei,13,4,"div",11),o(),n(52,"tab",31),f("selectTab",function(){return t.tabView="permissions"}),k(53,ti,3,1,"ng-template",9),n(54,"div",32)(55,"label",33),m(56,"Account status"),o(),n(57,"div",34)(58,"div",35)(59,"label",36),u(60,"input",37),n(61,"span"),m(62),h(63,"translate"),h(64,"titlecase"),o()()(),n(65,"div",35)(66,"label",38),u(67,"input",39),n(68,"span",40),m(69,"Administrator"),o()()()()(),n(70,"app-admin-permissions",41),f("permissionsChange",function(_){return t.updateApplications(_)}),o(),g(71,oi,6,0,"div",32),o(),n(72,"tab",31),f("selectTab",function(){return t.tabView="groups"}),k(73,ai,5,2,"ng-template",9),n(74,"div",7)(75,"app-user-search",42),f("membersChange",function(_){return t.updateMembers(_)}),o()()()()(),n(76,"div",43),g(77,ri,2,1,"button",44),n(78,"button",45),f("click",function(){return t.onCancel()}),m(79,"Cancel"),o(),n(80,"button",46),f("click",function(){return t.onSubmit()}),m(81),o()()),l&2&&(r(2),C(t.user?2:3),r(2),C(t.loading?4:-1),r(),C(t.user?5:-1),r(),U(P("btn-close btn-close-white ",t.user?"ms-2":"ms-auto"," ms-2")),r(),c("formGroup",t.userForm),r(),c("justified",!0),r(9),E("is-invalid",t.userForm.controls.login.invalid),c("autoSelect",!1),r(4),E("is-invalid",t.userForm.controls.email.invalid),r(5),E("is-invalid",t.userForm.controls.firstName.invalid),r(7),C(t.userForm.value.password!==t.defaultPassword?33:-1),r(),c("password",t.userForm.value.password)("showGenerator",!0)("showLabel",!0)("isRequired",!0),r(5),V(t.languages),r(4),c("quota",t.userForm.value.storageQuota)("fullWidth",!0),r(5),V(t.allNotifications),r(2),C(t.user&&t.user.storageUsage?50:-1),r(),C(t.user?51:-1),r(10),E("text-danger",!t.userForm.value.isActive),r(),A(" ",w(64,42,D(63,39,t.userForm.value.isActive?"active":"suspended",t.locale.language))," "),r(8),c("permissions",t.userForm.value.applications),r(),C(t.userForm.value.groups.length?71:-1),r(4),c("members",t.userForm.value.groups)("withPermissions",!1)("customPlaceholder","Type to search for groups to add")("searchFunction",t.searchMembers.bind(t)),r(2),C(t.user!=null&&t.user.id?77:-1),r(3),U(P("btn btn-sm ",t.confirmDeletion?"btn-danger":"btn-primary")),c("disabled",t.userForm.invalid||t.submitted),r(),A(" ",t.confirmDeletion?"Confirm deletion":"Confirm"," "))},dependencies:[M,G,Se,we,xe,j,fe,_e,de,Z,ue,B,$,q,te,K,ye,be,ht,Ae,Te,vt,pe,ie,St,xt,ne],encapsulation:2});let e=a;return e})();var si=["MainContextMenu"],li=["TargetContextMenu"],yt=(e,a)=>a.key,mi=(e,a)=>a.id,ci=(e,a)=>a.mid;function pi(e,a){if(e&1&&u(0,"fa-icon",24),e&2){let i=p(3);c("icon",i.sortTable.sortParam.asc?i.icons.faArrowDown:i.icons.faArrowUp)("fixedWidth",!1)}}function di(e,a){if(e&1){let i=L();n(0,"th",23),f("click",function(){b(i);let l=p().$implicit,t=p();return x(t.sortBy(l.key))}),m(1),g(2,pi,1,2,"fa-icon",24),o()}if(e&2){let i=p().$implicit,s=p();U(i.value.class),De("width",i.value.width,"%"),E("text-align-center",i.value.textCenter)("cursor-pointer",i.value.sortable),r(),A(" ",i.value.label," "),r(),C(s.sortTable.sortParam.column===i.key?2:-1)}}function ui(e,a){if(e&1&&g(0,di,3,10,"th",22),e&2){let i=a.$implicit;C(i.value.show?0:-1)}}function fi(e,a){if(e&1&&u(0,"fa-icon",32),e&2){let i=p(5);c("icon",i.icons.faKey)}}function _i(e,a){if(e&1&&(n(0,"div",27),u(1,"img",30),n(2,"div",28)(3,"span",31),m(4),g(5,fi,1,1,"fa-icon",32),o(),n(6,"span",33),m(7),o()()()),e&2){let i=p(3).$implicit;r(),c("src",i.avatarUrl,J),r(3),A(" ",i.login," "),r(),C(i.isAdmin?5:-1),r(2),v(i.email)}}function gi(e,a){if(e&1&&(n(0,"span",34),m(1),o()),e&2){let i=p(4).$implicit;r(),v(i.userRoleText)}}function Ci(e,a){if(e&1&&(n(0,"div",28)(1,"span",31),m(2),o(),g(3,gi,2,1,"span",34),o()),e&2){let i=p(3).$implicit;r(2),v(i.fullName),r(),C(i.isAdmin?3:-1)}}function hi(e,a){if(e&1&&u(0,"app-user-avatar",35),e&2){let i=a.$implicit;c("user",i)("isMember",!0)}}function vi(e,a){if(e&1&&I(0,hi,1,2,"app-user-avatar",35,ci),e&2){let i=p(3).$implicit;V(i.managers)}}function bi(e,a){if(e&1&&u(0,"app-storage-usage",36),e&2){let i=p(4).$implicit;c("item",i)}}function xi(e,a){if(e&1&&g(0,bi,1,1,"app-storage-usage",36),e&2){let i=p(3).$implicit;C(i.storageUsage?0:-1)}}function Si(e,a){if(e&1&&(n(0,"div",28)(1,"div"),m(2),o(),n(3,"div"),m(4),o()()),e&2){let i=p(3).$implicit;r(2),v(i.currentIp),r(2),v(i.lastIp)}}function wi(e,a){e&1&&m(0," too many login attempts ")}function yi(e,a){if(e&1&&m(0),e&2){let i=p(4).$implicit;A(" ",i.userIsActiveText," ")}}function Ti(e,a){if(e&1&&(n(0,"span",11),g(1,wi,1,0)(2,yi,1,1),o()),e&2){let i=p(3).$implicit;U(i.isActive?"text-success":"text-danger"),r(),C(!i.isActive&&i.passwordAttempts?1:2)}}function Ai(e,a){if(e&1&&(n(0,"div",28)(1,"div"),m(2),h(3,"amDateFormat"),o(),n(4,"div"),m(5),h(6,"amDateFormat"),o()()),e&2){let i=p(5).$implicit;r(2),v(w(3,2,i.currentAccess)),r(3),v(w(6,4,i.lastAccess))}}function Ei(e,a){if(e&1&&m(0),e&2){let i=p(5).$implicit;A(" ",i.hTimeAgo," ")}}function Ui(e,a){if(e&1){let i=L();n(0,"div",38),f("mouseover",function(){b(i);let l=p(4).$implicit;return x(l.currentAccessHover=!0)})("focus",function(){b(i);let l=p(4).$implicit;return x(l.currentAccessHover=!0)})("mouseleave",function(){b(i);let l=p(4).$implicit;return x(l.currentAccessHover=!1)}),g(1,Ai,7,6,"div",28)(2,Ei,1,1),o()}if(e&2){let i=p(4).$implicit;r(),C(i.currentAccessHover?1:2)}}function Di(e,a){e&1&&(n(0,"span",11),m(1,"never"),o())}function Fi(e,a){if(e&1&&g(0,Ui,3,1,"div",37)(1,Di,2,0,"span",11),e&2){let i=p(3).$implicit;C(i.currentAccess?0:1)}}function ki(e,a){if(e&1&&(n(0,"td"),g(1,_i,8,4,"div",27)(2,Ci,4,2,"div",28)(3,vi,2,0)(4,xi,1,1)(5,Si,5,2,"div",28)(6,Ti,3,3,"span",29)(7,Fi,2,1),o()),e&2){let i,s=p().$implicit,l=p().$implicit;U(Me("",s.value.class," ",s.value.newly?"prop-newly-"+l[s.value.newly]:"")),De("width",s.value.width,"%"),E("text-align-center",s.value.textCenter),r(),C((i=s.key)==="login"?1:i==="fullName"?2:i==="managers"?3:i==="storage"?4:i==="currentIp"?5:i==="isActive"?6:i==="currentAccess"?7:-1)}}function Ii(e,a){if(e&1&&g(0,ki,8,9,"td",26),e&2){let i=a.$implicit;C(i.value.show?0:-1)}}function Vi(e,a){if(e&1){let i=L();n(0,"tr",25),f("click",function(){let l=b(i).$implicit,t=p();return x(t.onSelect(l))})("contextmenu",function(l){let t=b(i).$implicit,d=p();return x(d.onTargetContextMenu(l,t))})("pressup",function(l){let t=b(i).$implicit,d=p();return x(d.onTargetContextMenu(l,t))})("tap",function(){b(i);let l=p();return x(l.openDialog())}),I(1,Ii,1,1,null,null,yt),h(3,"keyvalue"),o()}if(e&2){let i=a.$implicit,s=p();E("disabled",!i.isActive)("selected",i.id===(s.selected==null?null:s.selected.id)),r(),V(D(3,4,s.tableHeaders,s.originalOrderKeyValue))}}function Ni(e,a){if(e&1&&(n(0,"span",11),u(1,"fa-icon",5),m(2),o()),e&2){let i=p();r(),c("icon",i.icons.faUserPlus),r(),A("New ",i.guestsView?"guest":"user")}}function Pi(e,a){}function Mi(e,a){if(e&1&&(n(0,"span",11),u(1,"fa-icon",5),m(2,"Refresh"),o()),e&2){let i=p();r(),c("icon",i.icons.faArrowRotateRight)}}function Gi(e,a){if(e&1&&(n(0,"span",11),u(1,"fa-icon",5),m(2),o()),e&2){let i=p();r(),c("icon",i.icons.faUserPen),r(),A("Edit ",i.guestsView?"guest":"user")}}function Ri(e,a){}function Li(e,a){if(e&1&&(n(0,"span",11),u(1,"fa-icon",5),m(2,"Impersonate identity"),o()),e&2){let i=p();r(),c("icon",i.icons.faUserSecret)}}var Lo=(()=>{let a=class a{constructor(){this.locale=S(H),this.originalOrderKeyValue=pt,this.icons={faRotate:je,faUserPlus:Ce,faUserPen:ge,faArrowDown:tt,faArrowUp:We,faKey:Qe,faUserSecret:he,faArrowRotateRight:et,faToggleOn:Ye,faToggleOff:He},this.tableHeaders={login:{label:"Login",width:30,textCenter:!1,class:"",show:!0,sortable:!0},fullName:{label:"Full name",width:15,class:"",textCenter:!1,show:!0,sortable:!0},managers:{label:"Managers",width:15,class:"d-none d-md-table-cell",textCenter:!0,show:!1,sortable:!0},storage:{label:"Storage Space",width:15,class:"d-none d-md-table-cell",textCenter:!0,show:!0,sortable:!0},isActive:{label:"Status",width:10,textCenter:!0,class:"d-none d-lg-table-cell",show:!0,sortable:!0},currentIp:{label:"IP",width:10,textCenter:!1,class:"d-none d-lg-table-cell",show:!0},currentAccess:{label:"Seen",width:12,textCenter:!0,class:"d-none d-lg-table-cell",newly:"newly",show:!0,sortable:!0}},this.guestsView=!1,this.loading=!1,this.selected=null,this.users=[],this.router=S(Le),this.activatedRoute=S(Re),this.layout=S(z),this.adminService=S(R),this.sortSettings={default:[{prop:"login",type:"string"}],login:[{prop:"login",type:"string"}],fullName:[{prop:"fullName",type:"string"}],managers:[{prop:"managers",type:"length"}],storage:[{prop:"storageUsage",type:"number"}],currentAccess:[{prop:"currentAccess",type:"date"}],isActive:[{prop:"isActive",type:"number"}]},this.sortTable=new ft(this.constructor.name,this.sortSettings),this.layout.setBreadcrumbIcon(ot.USERS),this.activatedRoute.data.subscribe(s=>{this.guestsView=s.type===X.GUEST,this.setEnv()})}loadUsersOrGuests(){this.loading=!0,this.onSelect(),this.adminService.listUsers(this.guestsView).subscribe({next:s=>{this.sortBy(this.sortTable.sortParam.column,!1,s),this.scrollView.scrollInto(-1),this.loading=!1},error:s=>{this.users=[],this.layout.sendNotification("error",this.guestsView?"Guests":"Users","Unable to load",s),this.loading=!1}})}onSelect(s=null){this.selected=s}onGuestsView(s){this.guestsView=s,this.router.navigate([Q.BASE,s?Q.GUESTS:Q.USERS]).catch(console.error)}onContextMenu(s){s.preventDefault(),s.stopPropagation(),this.layout.openContextMenu(s,this.mainContextMenu)}onTargetContextMenu(s,l){s.preventDefault(),s.type==="contextmenu"&&s.stopPropagation(),this.onSelect(l),this.layout.openContextMenu(s,this.targetContextMenu)}sortBy(s,l=!0,t){this.users=this.sortTable.sortBy(s,l,t||this.users)}openDialog(s=!1){this.guestsView?this.openGuestDialog(s):this.openUserDialog(s)}openUserDialog(s=!1){s?this.layout.openDialog(Ne,"md").content.userChange.pipe(W(1)).subscribe(t=>{let[d,_]=t;d==="add"&&(this.sortBy(this.sortTable.sortParam.column,!1,[...this.users,_]),this.onSelect(_))}):this.adminService.getUser(this.selected.id).subscribe({next:l=>{this.layout.openDialog(Ne,"md",{initialState:{user:l}}).content.userChange.pipe(W(1)).subscribe(d=>{let[_,T]=d;_==="update"?this.selected=Object.assign(this.selected,T):_==="delete"&&(this.onSelect(),this.sortBy(this.sortTable.sortParam.column,!1,this.users.filter(Ue=>Ue.id!==T.id)))})},error:l=>this.layout.sendNotification("error","Edit group",this.selected.login,l)})}openGuestDialog(s=!1){s?this.layout.openDialog(Ve,"md").content.guestChange.pipe(W(1)).subscribe(t=>{let[d,_]=t,T=new gt(_);d==="add"&&(this.sortBy(this.sortTable.sortParam.column,!1,[...this.users,T]),this.onSelect(T))}):this.adminService.getUser(this.selected.id,!0).subscribe({next:l=>{this.layout.openDialog(Ve,"md",{initialState:{guest:l}}).content.guestChange.pipe(W(1)).subscribe(d=>{let[_,T]=d;_==="update"?this.selected=Object.assign(this.selected,T):_==="delete"&&(this.onSelect(),this.sortBy(this.sortTable.sortParam.column,!1,this.users.filter(Ue=>Ue.id!==T.id)))})},error:l=>this.layout.sendNotification("error","Guest error",this.selected.fullName,l)})}impersonateIdentity(){this.layout.openDialog(bt,"sm",{initialState:{user:this.selected}})}setEnv(){this.tableHeaders.managers.show=this.guestsView,this.tableHeaders.storage.show=!this.guestsView,this.loadUsersOrGuests(),this.layout.setBreadcrumbNav({url:this.guestsView?`/${Q.BASE}/${Q.GUESTS}/${Fe.GUESTS}`:`/${Q.BASE}/${Q.USERS}/${Fe.USERS}`,splicing:2,translating:!0,sameLink:!0})}};a.\u0275fac=function(l){return new(l||a)},a.\u0275cmp=N({type:a,selectors:[["app-admin-users"]],viewQuery:function(l,t){if(l&1&&(re(Ie,5),re(ke,7),re(si,7),re(li,7)),l&2){let d;se(d=le())&&(t.scrollView=d.first),se(d=le())&&(t.inputFilter=d.first),se(d=le())&&(t.mainContextMenu=d.first),se(d=le())&&(t.targetContextMenu=d.first)}},decls:47,vars:40,consts:[["MainContextMenu",""],["TargetContextMenu",""],[1,"app-top-menu"],["container","body","type","button",1,"btn","btn-sm","btn-secondary","me-1",3,"click","tooltip"],[3,"icon","animation"],[3,"icon"],["container","body","type","button",1,"btn","btn-sm","btn-secondary","me-1",3,"click","disabled","tooltip"],[1,"ms-auto"],["btnCheckbox","","type","button",1,"btn","btn-sm","btn-custom","me-1",3,"ngModelChange","ngModel"],[1,"d-flex","align-items-center"],[1,"me-2",3,"icon"],["l10nTranslate",""],[1,"btn-group","btn-group-sm"],[1,"d-none","d-sm-block"],[1,"app-table"],[3,"contextmenu","bufferAmount","items"],["tabindex","-1"],[3,"disabled","selected"],[1,"app-foot-menu"],[1,"mx-auto"],["contextMenuItem","",3,"execute"],["contextMenuItem","",3,"divider"],["l10nTranslate","",3,"width","text-align-center","cursor-pointer","class"],["l10nTranslate","",3,"click"],[3,"icon","fixedWidth"],[3,"click","contextmenu","pressup","tap"],[3,"width","text-align-center","class"],[1,"d-flex","align-items-center","avatar"],[1,"d-flex","flex-column"],["l10nTranslate","",3,"class"],["alt","",1,"avatar-img",3,"src"],["draggable","false",1,"no-pointer-events"],[1,"m-0",3,"icon"],["draggable","false",1,"no-pointer-events","text-muted","fs-xxxs"],["draggable","false","l10nTranslate","",1,"no-pointer-events","text-muted","fs-xxxs"],[3,"user","isMember"],[3,"item"],[1,"d-flex","justify-content-center"],[1,"d-flex","justify-content-center",3,"mouseover","focus","mouseleave"]],template:function(l,t){if(l&1){let d=L();n(0,"div",2)(1,"button",3),h(2,"translate"),f("click",function(){return b(d),x(t.loadUsersOrGuests())}),u(3,"fa-icon",4),o(),n(4,"button",3),h(5,"translate"),f("click",function(){return b(d),x(t.openDialog(!0))}),u(6,"fa-icon",5),o(),n(7,"button",6),h(8,"translate"),f("click",function(){return b(d),x(t.openDialog())}),u(9,"fa-icon",5),o(),n(10,"button",6),h(11,"translate"),f("click",function(){return b(d),x(t.impersonateIdentity())}),u(12,"fa-icon",5),o(),n(13,"div",7)(14,"button",8),f("ngModelChange",function(T){return b(d),x(t.onGuestsView(T))}),n(15,"div",9),u(16,"fa-icon",10),n(17,"span",11),m(18,"Guests"),o()()(),n(19,"div",12),u(20,"app-input-filter",13),o()()(),n(21,"table",14)(22,"thead")(23,"tr"),I(24,ui,1,1,null,null,yt),h(26,"keyvalue"),o()()(),n(27,"app-virtual-scroll",15),h(28,"searchFilter"),f("contextmenu",function(T){return b(d),x(t.onContextMenu(T))}),n(29,"table",14)(30,"tbody",16),I(31,Vi,4,7,"tr",17,mi),o()()(),n(33,"div",18)(34,"span",19),m(35),h(36,"translate"),o()(),n(37,"context-menu",null,0),k(39,Ni,3,2,"ng-template",20),f("execute",function(){return b(d),x(t.openDialog(!0))}),k(40,Pi,0,0,"ng-template",21)(41,Mi,3,1,"ng-template",20),f("execute",function(){return b(d),x(t.loadUsersOrGuests())}),o(),n(42,"context-menu",null,1),k(44,Gi,3,2,"ng-template",20),f("execute",function(){return b(d),x(t.openDialog())}),k(45,Ri,0,0,"ng-template",21)(46,Li,3,1,"ng-template",20),f("execute",function(){return b(d),x(t.impersonateIdentity())}),o()}l&2&&(r(),c("tooltip",D(2,19,"Refresh",t.locale.language)),r(2),c("icon",t.icons.faRotate)("animation",t.loading?"spin":null),r(),c("tooltip",D(5,22,t.guestsView?"New guest":"New user",t.locale.language)),r(2),c("icon",t.icons.faUserPlus),r(),c("disabled",!t.selected)("tooltip",D(8,25,t.guestsView?"Edit guest":"Edit user",t.locale.language)),r(2),c("icon",t.icons.faUserPen),r(),c("disabled",!t.selected)("tooltip",D(11,28,"Impersonate identity",t.locale.language)),r(2),c("icon",t.icons.faUserSecret),r(2),c("ngModel",t.guestsView),r(2),c("icon",t.guestsView?t.icons.faToggleOn:t.icons.faToggleOff),r(8),V(D(26,31,t.tableHeaders,t.originalOrderKeyValue)),r(3),c("bufferAmount",5)("items",D(28,34,t.users,t.inputFilter.search())),r(4),V(t.scrollView==null?null:t.scrollView.viewPortItems),r(4),O("",t.users.length," ",D(36,37,t.guestsView?"guests":"users",t.locale.language)),r(5),c("divider",!0),r(5),c("divider",!0))},dependencies:[M,ke,qe,G,Ie,be,st,rt,at,dt,Be,B,Oe,_t,ie,Ge,ut,ne],encapsulation:2});let e=a;return e})();export{Lo as AdminUsersComponent};
1
+ import{a as Ct}from"./chunk-RFMOUC22.js";import{a as gt,b as R,c as vt}from"./chunk-2UWN7IQF.js";import{a as Q,b as Fe,c as ot,e as oe}from"./chunk-CSBDAY77.js";import{a as ht}from"./chunk-SJAFPXQV.js";import{d as be}from"./chunk-KGPCIUD2.js";import"./chunk-JXZCNFW7.js";import{a as _t}from"./chunk-YGD22MWQ.js";import{a as ne,b as xe,c as Se,d as we,f as Te,i as Ae}from"./chunk-HYMDGBZL.js";import{a as ke,b as Ie,c as ut,d as ft}from"./chunk-45UQJGGY.js";import{a as K,b as ye}from"./chunk-RASR4CK6.js";import"./chunk-ENWABUR4.js";import{g as dt}from"./chunk-66FMKVJX.js";import{K as it,L as X,N as nt,R as ve,Xa as pt,pa as at,qa as rt,ra as st,ua as lt,v as qe,va as mt,wa as ct,wb as z}from"./chunk-FR4AOLYL.js";import{b as Re,d as Le}from"./chunk-BIUNUYZ5.js";import{$a as Pe,$c as Z,Ad as $e,Bf as Ze,Cb as f,Eb as p,Ed as ie,Ee as Ke,Fc as pe,Fd as G,Ga as J,Gc as Ge,Gd as je,Ge as Ce,Ib as re,If as et,Jb as se,Kb as le,L as W,Ma as r,Mb as De,Nb as E,Ob as U,Pb as m,Pf as he,Qb as v,Qd as He,Rb as A,Sb as O,Ue as We,Uf as tt,Xa as N,Xb as P,Yb as Me,Zc as M,_a as me,ab as k,ad as de,ae as Qe,bb as ce,bf as Xe,cd as F,dc as h,ec as w,ed as B,fc as D,fd as $,gd as ee,ha as S,id as y,jb as g,jd as Oe,kb as C,lb as Y,ma as b,na as x,nb as I,nd as q,ob as V,od as te,pb as c,pd as ue,pe as ze,qb as n,qd as fe,rb as o,rd as _e,sb as u,wd as Be,wf as Je,xd as j,xe as ge,yd as H,zb as L,zf as Ye}from"./chunk-HW2H3ISM.js";import"./chunk-RTRJ3KFH.js";function Tt(e,a){if(e&1&&(u(0,"fa-icon",42),n(1,"span"),m(2),o()),e&2){let i=p();c("icon",i.icons.faPen),r(2),v(i.guest.fullName)}}function At(e,a){if(e&1&&(u(0,"fa-icon",42),n(1,"span",43),m(2,"New guest"),o()),e&2){let i=p();c("icon",i.icons.faPlus)}}function Et(e,a){if(e&1&&u(0,"fa-icon",2),e&2){let i=p();c("icon",i.icons.faSpinner)}}function Ut(e,a){e&1&&(n(0,"h4",3)(1,"span",43),m(2,"Edit guest"),o()())}function Dt(e,a){if(e&1&&(u(0,"fa-icon",44),n(1,"span",45),m(2,"Account"),o()),e&2){let i=p();c("icon",i.icons.faAddressCard)}}function Ft(e,a){if(e&1&&u(0,"app-password-strength-bar",22),e&2){let i=p();c("passwordToCheck",i.guestForm.value.password)}}function kt(e,a){if(e&1&&(n(0,"option",26),m(1),o()),e&2){let i=a.$implicit;c("ngValue",i),r(),v(i)}}function It(e,a){if(e&1&&(n(0,"option",34),m(1),o()),e&2){let i=a.$implicit,s=p();c("ngValue",s.allNotifications.indexOf(i)),r(),v(i)}}function Vt(e,a){if(e&1&&(n(0,"div"),m(1),h(2,"amDateFormat"),o(),n(3,"div"),m(4),h(5,"amDateFormat"),o()),e&2){let i=p(2);r(),O("",w(2,4,i.guest.currentAccess)," - ",i.guest.currentIp),r(3),O("",w(5,6,i.guest.lastAccess)," - ",i.guest.lastIp)}}function Nt(e,a){e&1&&(n(0,"span",37),m(1,"never"),o())}function Pt(e,a){if(e&1&&(n(0,"div",11)(1,"div",12)(2,"label",46),m(3,"Creation date"),o(),n(4,"div",47),m(5),h(6,"amDateFormat"),o()(),n(7,"div",48)(8,"label",49),m(9,"Last accesses"),o(),n(10,"div",50),g(11,Vt,6,8)(12,Nt,2,0,"span",37),o()()()),e&2){let i=p();r(5),v(w(6,2,i.guest.createdAt)),r(6),C(i.guest.lastAccess?11:12)}}function Mt(e,a){if(e&1&&(u(0,"fa-icon",44),n(1,"span",51),m(2,"Managers"),o(),n(3,"span"),m(4),o()),e&2){let i=p();c("icon",i.icons.faUsersGear),r(4),A("(",i.guestForm.value.managers.length||0,")")}}function Gt(e,a){e&1&&(n(0,"small",37),m(1,"At least one manager is required"),o())}function Rt(e,a){if(e&1){let i=L();n(0,"button",52),f("click",function(){b(i);let l=p();return x(l.confirmDeletion=!0)}),m(1," Remove "),o()}if(e&2){let i=p();c("disabled",i.confirmDeletion)}}var Ve=(()=>{let a=class a extends Ct{constructor(){super(),this.adminService=S(R)}searchMembers(s){let l={search:s,ignoreUserIds:this.guestForm.value.managers.map(t=>t.id),usersRole:X.USER,onlyUsers:!0};return this.adminService.searchMembers(l)}onSubmit(){if(this.submitted=!0,this.confirmDeletion)this.adminService.deleteUser(this.guest.id,null,!0).subscribe({next:()=>{this.guestChange.emit(["delete",this.guest]),this.layout.sendNotification("success","Guest deleted",this.guest.login),this.layout.closeDialog()},error:s=>this.onError(s)});else if(!this.guest)this.adminService.createUser(this.makeDto(!0),!0).subscribe({next:s=>{this.guestChange.emit(["add",s]),this.layout.sendNotification("success","Guest created",this.guestForm.value.login),this.layout.closeDialog()},error:s=>this.onError(s)});else{let s=this.makeDto();if(!Object.keys(s).length){this.loading=!1,this.submitted=!1;return}this.adminService.updateUser(this.guest.id,s,!0).subscribe({next:l=>{l?this.guestChange.emit(["update",l]):this.guestChange.emit(["delete",this.guest]),this.layout.sendNotification("success","Guest updated",this.guestForm.value.login),this.layout.closeDialog()},error:l=>this.onError(l)})}}};a.\u0275fac=function(l){return new(l||a)},a.\u0275cmp=N({type:a,selectors:[["app-admin-guest-dialog"]],features:[Pe],decls:70,vars:40,consts:[[1,"modal-header","align-items-center"],[1,"modal-title"],["animation","spin","size","sm",1,"ms-2",3,"icon"],[1,"modal-title","ms-auto"],["aria-label","Close","type","button",3,"click"],[1,"modal-body",3,"formGroup"],["type","pills",3,"justified"],[1,"my-3"],["customClass","tab-dialog form-validation",3,"selectTab"],["tabHeading",""],[1,"d-flex","flex-column"],[1,"d-flex","col-12","pb-3"],[1,"flex-fill","col-6","pe-4"],["for","login","l10nTranslate",""],["id","login","appAutofocus","","formControlName","login","autocomplete","off","type","text",1,"form-control","form-control-sm",3,"autoSelect"],[1,"flex-fill","col-6","ps-4"],["for","email","l10nTranslate",""],["id","email","formControlName","email","autocomplete","off","type","email",1,"form-control","form-control-sm"],["for","firstName","l10nTranslate",""],["id","firstName","formControlName","firstName","autocomplete","off","type","text",1,"form-control","form-control-sm"],["for","lastName","l10nTranslate",""],["id","lastName","formControlName","lastName","autocomplete","off","type","text",1,"form-control","form-control-sm"],[1,"position-absolute","pe-4",2,"right","50%","padding-top","6px",3,"passwordToCheck"],["id","password","placeholder","Set a password",3,"passwordChange","password","showGenerator","showLabel","isRequired"],["for","language","l10nTranslate",""],["id","language","formControlName","language",1,"form-control","form-select","form-select-sm"],[3,"ngValue"],[1,"d-flex","flex-column","col-6","pe-4"],["for","account","l10nTranslate",""],["id","account",1,"form-check","form-switch","form-check-inline"],["for","isActive",1,"form-check-label"],["formControlName","isActive","id","isActive","type","checkbox",1,"form-check-input"],["for","notification","l10nTranslate",""],["id","notification","formControlName","notification",1,"form-control","form-select","form-select-sm"],["l10nTranslate","",3,"ngValue"],["customClass","tab-dialog",3,"selectTab"],[3,"membersChange","members","withPermissions","customPlaceholder","searchFunction"],["l10nTranslate","",1,"text-danger"],[1,"modal-footer"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-danger",3,"disabled"],["data-dismiss","modal","type","button","l10nTranslate","",1,"btn","btn-sm","btn-secondary","ms-auto",3,"click"],["type","button","l10nTranslate","",3,"click","disabled"],[1,"me-2",3,"icon"],["l10nTranslate",""],[3,"icon"],["l10nTranslate","",1,"ms-2"],["for","created","l10nTranslate",""],["id","created"],[1,"d-flex","flex-column","align-items-end","col-6","ps-4"],["for","access","l10nTranslate",""],["id","access",1,"text-align-end"],["l10nTranslate","",1,"ms-2","me-1"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-danger",3,"click","disabled"]],template:function(l,t){l&1&&(n(0,"div",0)(1,"h4",1),g(2,Tt,3,2)(3,At,3,1),g(4,Et,1,1,"fa-icon",2),o(),g(5,Ut,3,0,"h4",3),n(6,"button",4),f("click",function(){return t.layout.closeDialog()}),o()(),n(7,"div",5)(8,"tabset",6),u(9,"hr",7),n(10,"tab",8),f("selectTab",function(){return t.tabView=null}),k(11,Dt,3,1,"ng-template",9),n(12,"div",10)(13,"div",11)(14,"div",12)(15,"label",13),m(16,"Login"),o(),u(17,"input",14),o(),n(18,"div",15)(19,"label",16),m(20,"Email"),o(),u(21,"input",17),o()(),n(22,"div",11)(23,"div",12)(24,"label",18),m(25,"First name"),o(),u(26,"input",19),o(),n(27,"div",15)(28,"label",20),m(29,"Last name"),o(),u(30,"input",21),o()(),n(31,"div",11)(32,"div",12),g(33,Ft,1,1,"app-password-strength-bar",22),n(34,"app-input-password",23),f("passwordChange",function(_){return t.updatePassword(_)}),o()(),n(35,"div",15)(36,"label",24),m(37,"Language"),o(),n(38,"select",25),I(39,kt,2,2,"option",26,Y),o()()(),n(41,"div",11)(42,"div",27)(43,"label",28),m(44,"Account status"),o(),n(45,"div",29)(46,"label",30),u(47,"input",31),n(48,"span"),m(49),h(50,"translate"),h(51,"titlecase"),o()()()(),n(52,"div",15)(53,"label",32),m(54,"Notification"),o(),n(55,"select",33),I(56,It,2,2,"option",34,Y),o()()(),g(58,Pt,13,4,"div",11),o()(),n(59,"tab",35),f("selectTab",function(){return t.tabView="managers"}),k(60,Mt,5,2,"ng-template",9),n(61,"div",7)(62,"app-user-search",36),f("membersChange",function(_){return t.updateManagers(_)}),o(),g(63,Gt,2,0,"small",37),o()()()(),n(64,"div",38),g(65,Rt,2,1,"button",39),n(66,"button",40),f("click",function(){return t.onCancel()}),m(67,"Cancel"),o(),n(68,"button",41),f("click",function(){return t.onSubmit()}),m(69),o()()),l&2&&(r(2),C(t.guest?2:3),r(2),C(t.loading?4:-1),r(),C(t.guest?5:-1),r(),U(P("btn-close btn-close-white ",t.guest?"ms-2":"ms-auto"," ms-2")),r(),c("formGroup",t.guestForm),r(),c("justified",!0),r(9),E("is-invalid",t.guestForm.controls.login.invalid),c("autoSelect",!1),r(4),E("is-invalid",t.guestForm.controls.email.invalid),r(5),E("is-invalid",t.guestForm.controls.firstName.invalid),r(7),C(t.guestForm.value.password!==t.defaultPassword?33:-1),r(),c("password",t.guestForm.value.password)("showGenerator",!0)("showLabel",!0)("isRequired",!0),r(5),V(t.languages),r(9),E("text-danger",!t.guestForm.value.isActive),r(),A(" ",w(51,38,D(50,35,t.guestForm.value.isActive?"active":"suspended",t.locale.language))," "),r(7),V(t.allNotifications),r(2),C(t.guest?58:-1),r(4),c("members",t.guestForm.value.managers)("withPermissions",!1)("customPlaceholder","Type to search for managers to add")("searchFunction",t.searchMembers.bind(t)),r(),C(t.guestForm.value.managers.length?-1:63),r(2),C(t.guest!=null&&t.guest.id?65:-1),r(3),U(P("btn btn-sm ",t.confirmDeletion?"btn-danger":"btn-primary")),c("disabled",t.guestForm.invalid||t.submitted),r(),A(" ",t.confirmDeletion?"Confirm deletion":"Confirm"," "))},dependencies:[M,G,j,fe,_e,de,Z,ue,B,$,q,te,K,ye,Te,Ae,xe,Se,we,ne,ie,pe],encapsulation:2});let e=a;return e})();function Ot(e,a){e&1&&(n(0,"h4",3)(1,"span",13),m(2,"Impersonate identity"),o()())}var bt=(()=>{let a=class a{constructor(){this.locale=S(H),this.layout=S(z),this.submitted=!1,this.icons={faUserSecret:he},this.passwordMinLength=8,this.impersonateUserForm=new ee({password:new y("",F.required)}),this.adminService=S(R)}onSubmit(){this.submitted=!0,this.adminService.impersonateUser(this.user.id,{password:this.impersonateUserForm.value.password}).subscribe({next:s=>{this.layout.closeDialog(),setTimeout(()=>this.adminService.initImpersonateUser(s),500)},error:s=>{this.submitted=!1,this.layout.sendNotification("error","Impersonate identity",this.user.login,s)}})}};a.\u0275fac=function(l){return new(l||a)},a.\u0275cmp=N({type:a,selectors:[["app-admin-impersonate-user-dialog"]],inputs:{user:"user"},decls:19,vars:16,consts:[[1,"modal-header","align-items-center"],[1,"modal-title"],[1,"me-2",3,"icon"],[1,"modal-title","ms-auto"],["aria-label","Close","type","button",3,"click"],[1,"modal-body",3,"formGroup"],[1,"d-flex","align-items-center","avatar","mb-3"],["alt","",1,"avatar-img",3,"src"],[1,"fw-bold","mx-2"],["id","password","placeholder","Enter your password to confirm",3,"passwordChange","password","passwordMinLength","isRequired","focus"],[1,"modal-footer"],["data-dismiss","modal","type","button","l10nTranslate","",1,"btn","btn-sm","btn-secondary","ms-auto",3,"click"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-primary",3,"click","disabled"],["l10nTranslate",""]],template:function(l,t){l&1&&(n(0,"div",0)(1,"h4",1),u(2,"fa-icon",2),n(3,"span"),m(4),o()(),g(5,Ot,3,0,"h4",3),n(6,"button",4),f("click",function(){return t.layout.closeDialog()}),o()(),n(7,"div",5)(8,"div",6),u(9,"img",7),n(10,"span",8),m(11),h(12,"capitalize"),o()(),n(13,"app-input-password",9),f("passwordChange",function(_){return t.impersonateUserForm.controls.password.setValue(_)}),o()(),n(14,"div",10)(15,"button",11),f("click",function(){return t.layout.closeDialog()}),m(16,"Cancel"),o(),n(17,"button",12),f("click",function(){return t.onSubmit()}),m(18," Confirm "),o()()),l&2&&(r(2),c("icon",t.icons.faUserSecret),r(2),v(t.user.fullName),r(),C(t.user?5:-1),r(),U(P("btn-close btn-close-white ",t.user?"ms-2":"ms-auto"," ms-2")),r(),c("formGroup",t.impersonateUserForm),r(2),c("src",t.user.avatarUrl,J),r(2),v(w(12,14,t.user.login)),r(2),c("password",t.impersonateUserForm.value.password)("passwordMinLength",t.passwordMinLength)("isRequired",!0)("focus",!0),r(4),c("disabled",t.impersonateUserForm.invalid||t.submitted))},dependencies:[M,G,j,$,q,K,oe],encapsulation:2});let e=a;return e})();var xt=(()=>{let a=class a{constructor(){this.translate=S($e)}transform(s,l=!1,t=null,d=", "){return s.length?(t?s.map(T=>T[t]):s.concat()).sort().map(T=>new oe().transform(l?this.translate.translate(T):T)).join(d):""}};a.\u0275fac=function(l){return new(l||a)},a.\u0275pipe=me({name:"join",type:a,pure:!0});let e=a;return e})();var St=(()=>{let a=class a{transform(s,l=","){return s?.length?s.split(l):[]}};a.\u0275fac=function(l){return new(l||a)},a.\u0275pipe=me({name:"split",type:a,pure:!0});let e=a;return e})();function Bt(e,a){e&1&&(n(0,"h4",3)(1,"span",9),m(2,"Delete user"),o()())}var wt=(()=>{let a=class a{constructor(){this.wasDeleted=new ce,this.locale=S(H),this.submitted=!1,this.icons={faUserMinus:Je},this.deleteUserForm=new ee({adminPassword:new y("",F.required),deleteSpace:new y(!1)}),this.layout=S(z),this.adminService=S(R)}onClose(){this.wasDeleted.emit(!1),this.layout.closeDialog()}onSubmit(){this.submitted=!0,this.adminService.deleteUser(this.user.id,{adminPassword:this.deleteUserForm.value.adminPassword,deleteSpace:this.deleteUserForm.value.deleteSpace}).subscribe({next:()=>{this.wasDeleted.emit(!0),this.layout.sendNotification("success","Delete user",this.user.login),this.onClose()},error:s=>{this.submitted=!1,this.layout.sendNotification("error","Delete user",this.user.login,s)}})}};a.\u0275fac=function(l){return new(l||a)},a.\u0275cmp=N({type:a,selectors:[["app-admin-user-delete-dialog"]],inputs:{user:"user"},outputs:{wasDeleted:"wasDeleted"},decls:27,vars:15,consts:[[1,"modal-header","align-items-center"],[1,"modal-title"],[1,"me-2",3,"icon"],[1,"modal-title","ms-auto"],["aria-label","Close","type","button",3,"click"],[1,"modal-body",3,"formGroup"],[1,"d-flex","align-items-center","avatar","mb-3"],["alt","",1,"avatar-img",3,"src"],[1,"fw-bold","mx-2"],["l10nTranslate",""],["id","password","placeholder","Enter your password to confirm",3,"passwordChange","password","isRequired","focus"],[1,"form-check","form-check-inline","mt-3"],[1,"d-flex"],["for","deleteSpace",1,"form-check-label"],["formControlName","deleteSpace","id","deleteSpace","type","checkbox",1,"form-check-input"],[1,"modal-footer"],["data-dismiss","modal","type","button","l10nTranslate","",1,"btn","btn-sm","btn-secondary","ms-auto",3,"click"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-primary",3,"click","disabled"]],template:function(l,t){l&1&&(n(0,"div",0)(1,"h4",1),u(2,"fa-icon",2),n(3,"span"),m(4),o()(),g(5,Bt,3,0,"h4",3),n(6,"button",4),f("click",function(){return t.onClose()}),o()(),n(7,"div",5)(8,"div",6),u(9,"img",7),n(10,"span",8),m(11),h(12,"capitalize"),o(),n(13,"span",9),m(14,"will be permanently removed"),o()(),n(15,"app-input-password",10),f("passwordChange",function(_){return t.deleteUserForm.controls.adminPassword.setValue(_)}),o(),n(16,"div",11)(17,"div",12)(18,"label",13),u(19,"input",14),n(20,"span",9),m(21,"Delete all user files"),o()()()()(),n(22,"div",15)(23,"button",16),f("click",function(){return t.onClose()}),m(24,"Cancel"),o(),n(25,"button",17),f("click",function(){return t.onSubmit()}),m(26," Confirm "),o()()),l&2&&(r(2),c("icon",t.icons.faUserMinus),r(2),v(t.user.fullName),r(),C(t.user?5:-1),r(),U(P("btn-close btn-close-white ",t.user?"ms-2":"ms-auto"," ms-2")),r(),c("formGroup",t.deleteUserForm),r(2),c("src",t.user.avatarUrl,J),r(2),v(w(12,13,t.user.login)),r(4),c("password",t.deleteUserForm.value.adminPassword)("isRequired",!0)("focus",!0),r(10),c("disabled",t.deleteUserForm.invalid||t.submitted))},dependencies:[M,G,j,Z,B,$,q,te,K,oe],encapsulation:2});let e=a;return e})();var $t=(e,a)=>a.id;function qt(e,a){if(e&1&&(u(0,"fa-icon",47),n(1,"span"),m(2),o()),e&2){let i=p();c("icon",i.icons.faUserPen),r(2),v(i.user.fullName)}}function jt(e,a){if(e&1&&(u(0,"fa-icon",47),n(1,"span",40),m(2,"New user"),o()),e&2){let i=p();c("icon",i.icons.faUserPlus)}}function Ht(e,a){if(e&1&&u(0,"fa-icon",2),e&2){let i=p();c("icon",i.icons.faSpinner)}}function Qt(e,a){e&1&&(n(0,"h4",3)(1,"span",40),m(2,"Edit user"),o()())}function zt(e,a){if(e&1&&(u(0,"fa-icon",48),n(1,"span",49),m(2,"Account"),o()),e&2){let i=p();c("icon",i.icons.faAddressCard)}}function Kt(e,a){if(e&1&&u(0,"app-password-strength-bar",22),e&2){let i=p();c("passwordToCheck",i.userForm.value.password)}}function Wt(e,a){if(e&1&&(n(0,"option",26),m(1),o()),e&2){let i=a.$implicit;c("ngValue",i),r(),v(i)}}function Xt(e,a){if(e&1&&(n(0,"option",30),m(1),o()),e&2){let i=a.$implicit,s=p();c("ngValue",s.allNotifications.indexOf(i)),r(),v(i)}}function Jt(e,a){if(e&1&&(n(0,"div",11)(1,"div",12)(2,"label",50),m(3,"Storage Usage"),o(),u(4,"app-storage-usage",51),o(),u(5,"div",15),o()),e&2){let i=p();r(4),c("item",i.user)}}function Yt(e,a){if(e&1&&(n(0,"div"),m(1),h(2,"amDateFormat"),o(),n(3,"div"),m(4),h(5,"amDateFormat"),o()),e&2){let i=p(2);r(),O("",w(2,4,i.user.currentAccess)," - ",i.user.currentIp),r(3),O("",w(5,6,i.user.lastAccess)," - ",i.user.lastIp)}}function Zt(e,a){e&1&&(n(0,"span",57),m(1,"never"),o())}function ei(e,a){if(e&1&&(n(0,"div",11)(1,"div",12)(2,"label",52),m(3,"Creation date"),o(),n(4,"div",53),m(5),h(6,"amDateFormat"),o()(),n(7,"div",54)(8,"label",55),m(9,"Last accesses"),o(),n(10,"div",56),g(11,Yt,6,8)(12,Zt,2,0,"span",57),o()()()),e&2){let i=p();r(5),v(w(6,2,i.user.createdAt)),r(6),C(i.user.lastAccess?11:12)}}function ti(e,a){if(e&1&&(u(0,"fa-icon",48),n(1,"span",49),m(2,"Permissions"),o()),e&2){let i=p();c("icon",i.icons.faShieldHalved)}}function ii(e,a){if(e&1&&(n(0,"div",60)(1,"div",61),u(2,"fa-icon",62),n(3,"span"),m(4),o()(),n(5,"div",63),m(6),h(7,"split"),h(8,"join"),o()()),e&2){let i=p().$implicit,s=p(2);r(2),c("icon",s.icons.GROUPS),r(2),v(i.name),r(2),v(D(8,5,w(7,3,i.permissions),!0))}}function ni(e,a){if(e&1&&g(0,ii,9,8,"div",60),e&2){let i=a.$implicit;C(i.permissions?0:-1)}}function oi(e,a){if(e&1&&(n(0,"div",32)(1,"label",58),m(2,"Permissions inherited from groups"),o(),n(3,"div",59),I(4,ni,1,1,null,null,$t),o()()),e&2){let i=p();r(4),V(i.userForm.value.groups)}}function ai(e,a){if(e&1&&(u(0,"fa-icon",48),n(1,"span",64),m(2,"Groups"),o(),n(3,"span"),m(4),o()),e&2){let i=p();c("icon",i.icons.faUsers),r(4),A("(",i.userForm.value.groups.length||0,")")}}function ri(e,a){if(e&1){let i=L();n(0,"button",65),f("click",function(){b(i);let l=p();return x(l.confirmDeletion=!0)}),m(1," Remove "),o()}if(e&2){let i=p();c("disabled",i.confirmDeletion)}}var Ne=(()=>{let a=class a{constructor(){this.user=null,this.userChange=new ce,this.locale=S(H),this.layout=S(z),this.submitted=!1,this.loading=!1,this.confirmDeletion=!1,this.icons={GROUPS:lt.GROUPS,faUserPlus:Ce,faUserPen:ge,faSpinner:Xe,faAddressCard:Ke,faUsers:ze,faShieldHalved:Ze},this.allNotifications=Object.values(ve),this.defaultPassword=this.layout.translateString(mt),this.languages=this.layout.getLanguages(!0),this.adminService=S(R)}ngOnInit(){this.userForm=new ee({login:new y(this.user?.login||"",[F.required,F.pattern(it)]),email:new y(this.user?.email||"",[F.required,F.maxLength(255),F.email]),firstName:new y(this.user?.firstName||"",[F.required,F.maxLength(255)]),lastName:new y(this.user?.lastName||"",F.maxLength(255)),password:new y(this.user?this.defaultPassword:"",F.maxLength(255)),language:new y(this.user?.language||null),notification:new y(this.user?.notification||Object.values(ve).indexOf(ve.APPLICATION_EMAIL)),isActive:new y(this.user?this.user.isActive:!0),isAdmin:new y(this.user?this.user.isAdmin:!1),storageQuota:new y(this.user?.storageQuota||null),groups:new y(this.user?.groups||[]),applications:new y(this.user?.applications||[])})}searchMembers(s){let l={search:s,onlyGroups:!0,excludePersonalGroups:!0,withPermissions:!0,ignoreGroupIds:this.userForm.value.groups.map(t=>t.id)};return this.adminService.searchMembers(l)}updateApplications(s){this.userForm.controls.applications.setValue(s),this.userForm.controls.applications.markAsDirty()}updatePassword(s){this.userForm.controls.password.setValue(s),this.userForm.controls.password.markAsDirty()}updateMembers(s){this.userForm.controls.groups.setValue(s),this.userForm.controls.groups.markAsDirty()}updateQuota(s){this.userForm.controls.storageQuota.setValue(s),this.userForm.controls.storageQuota.markAsDirty()}onCancel(){this.confirmDeletion?this.confirmDeletion=!1:this.layout.closeDialog()}onSubmit(){this.submitted=!0,this.confirmDeletion?this.layout.openDialog(wt,"sm",{initialState:{user:this.user}}).content.wasDeleted.pipe(W(1)).subscribe(l=>{l?(this.userChange.emit(["delete",this.user]),this.layout.closeDialog()):(this.confirmDeletion=!1,this.submitted=!1)}):this.user?this.adminService.updateUser(this.user.id,this.makeDto()).subscribe({next:s=>{this.userChange.emit(["update",s]),this.layout.sendNotification("success","User updated",this.userForm.value.login),this.layout.closeDialog()},error:s=>this.onError(s)}):this.adminService.createUser(this.makeDto(!0)).subscribe({next:s=>{this.userChange.emit(["add",s]),this.layout.sendNotification("success","User created",this.userForm.value.login),this.layout.closeDialog()},error:s=>this.onError(s)})}makeDto(s=!1){let l={};if(s)l=this.userForm.value;else for(let t in this.userForm.controls)this.userForm.controls[t].dirty&&(l[t]=this.userForm.controls[t].value);for(let t in l)switch(t){case"language":l[t]=l[t]===ct?null:l[t];break;case"isAdmin":l.role=l[t]?X.ADMINISTRATOR:X.USER;break;case"applications":l.permissions=l[t].join(nt);break;case"groups":l[t]=l[t].map(d=>d.id);break}return l}onError(s){this.layout.sendNotification("error","Group error",this.userForm.value.login,s),this.submitted=!1}};a.\u0275fac=function(l){return new(l||a)},a.\u0275cmp=N({type:a,selectors:[["app-admin-user-dialog"]],inputs:{user:"user"},outputs:{userChange:"userChange"},decls:82,vars:44,consts:[[1,"modal-header","align-items-center"],[1,"modal-title"],["animation","spin","size","sm",1,"ms-2",3,"icon"],[1,"modal-title","ms-auto"],["aria-label","Close","type","button",3,"click"],[1,"modal-body",3,"formGroup"],["type","pills",3,"justified"],[1,"my-3"],["customClass","tab-dialog form-validation",3,"selectTab"],["tabHeading",""],[1,"d-flex","flex-column"],[1,"d-flex","col-12","pb-3"],[1,"flex-fill","col-6","pe-4"],["for","login","l10nTranslate",""],["id","login","appAutofocus","","formControlName","login","autocomplete","off","type","text",1,"form-control","form-control-sm",3,"autoSelect"],[1,"flex-fill","col-6","ps-4"],["for","email","l10nTranslate",""],["id","email","formControlName","email","autocomplete","off","type","email",1,"form-control","form-control-sm"],["for","firstName","l10nTranslate",""],["id","firstName","formControlName","firstName","autocomplete","off","type","text",1,"form-control","form-control-sm"],["for","lastName","l10nTranslate",""],["id","lastName","formControlName","lastName","autocomplete","off","type","text",1,"form-control","form-control-sm"],[1,"position-absolute","pe-4",2,"right","50%","padding-top","6px",3,"passwordToCheck"],["id","password","placeholder","Set a password",3,"passwordChange","password","showGenerator","showLabel","isRequired"],["for","language","l10nTranslate",""],["id","language","formControlName","language",1,"form-control","form-select","form-select-sm"],[3,"ngValue"],[3,"quotaChange","quota","fullWidth"],["for","notification","l10nTranslate",""],["id","notification","formControlName","notification",1,"form-control","form-select","form-select-sm"],["l10nTranslate","",3,"ngValue"],["customClass","tab-dialog",3,"selectTab"],[1,"d-flex","flex-column","col-12","pb-3"],["for","account","l10nTranslate",""],["id","account",1,"form-check","form-switch","form-check-inline"],[1,"d-flex"],["for","isActive",1,"form-check-label"],["formControlName","isActive","id","isActive","type","checkbox",1,"form-check-input"],["for","isAdmin",1,"form-check-label"],["formControlName","isAdmin","id","isAdmin","type","checkbox",1,"form-check-input"],["l10nTranslate",""],[3,"permissionsChange","permissions"],[3,"membersChange","members","withPermissions","customPlaceholder","searchFunction"],[1,"modal-footer"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-danger",3,"disabled"],["data-dismiss","modal","type","button","l10nTranslate","",1,"btn","btn-sm","btn-secondary","ms-auto",3,"click"],["type","button","l10nTranslate","",3,"click","disabled"],[1,"me-2",3,"icon"],[3,"icon"],["l10nTranslate","",1,"ms-2"],["for","storage","l10nTranslate",""],["id","storage",3,"item"],["for","created","l10nTranslate",""],["id","created"],[1,"d-flex","flex-column","align-items-end","col-6","ps-4"],["for","access","l10nTranslate",""],["id","access",1,"text-align-end"],["l10nTranslate","",1,"text-danger"],["for","groups_permissions","l10nTranslate",""],["id","groups_permissions"],[1,"d-flex","align-items-center","mb-1"],[1,"d-flex","align-items-center","me-5"],[1,"circle-primary-icon","me-2",3,"icon"],[1,"d-flex","fs-xxs","ms-auto"],["l10nTranslate","",1,"ms-2","me-1"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-danger",3,"click","disabled"]],template:function(l,t){l&1&&(n(0,"div",0)(1,"h4",1),g(2,qt,3,2)(3,jt,3,1),g(4,Ht,1,1,"fa-icon",2),o(),g(5,Qt,3,0,"h4",3),n(6,"button",4),f("click",function(){return t.layout.closeDialog()}),o()(),n(7,"div",5)(8,"tabset",6),u(9,"hr",7),n(10,"tab",8),f("selectTab",function(){return t.tabView=null}),k(11,zt,3,1,"ng-template",9),n(12,"div",10)(13,"div",11)(14,"div",12)(15,"label",13),m(16,"Login"),o(),u(17,"input",14),o(),n(18,"div",15)(19,"label",16),m(20,"Email"),o(),u(21,"input",17),o()(),n(22,"div",11)(23,"div",12)(24,"label",18),m(25,"First name"),o(),u(26,"input",19),o(),n(27,"div",15)(28,"label",20),m(29,"Last name"),o(),u(30,"input",21),o()(),n(31,"div",11)(32,"div",12),g(33,Kt,1,1,"app-password-strength-bar",22),n(34,"app-input-password",23),f("passwordChange",function(_){return t.updatePassword(_)}),o()(),n(35,"div",15)(36,"label",24),m(37,"Language"),o(),n(38,"select",25),I(39,Wt,2,2,"option",26,Y),o()()(),n(41,"div",11)(42,"div",12)(43,"app-storage-quota",27),f("quotaChange",function(_){return t.updateQuota(_)}),o()(),n(44,"div",15)(45,"label",28),m(46,"Notification"),o(),n(47,"select",29),I(48,Xt,2,2,"option",30,Y),o()()(),g(50,Jt,6,1,"div",11),o(),g(51,ei,13,4,"div",11),o(),n(52,"tab",31),f("selectTab",function(){return t.tabView="permissions"}),k(53,ti,3,1,"ng-template",9),n(54,"div",32)(55,"label",33),m(56,"Account status"),o(),n(57,"div",34)(58,"div",35)(59,"label",36),u(60,"input",37),n(61,"span"),m(62),h(63,"translate"),h(64,"titlecase"),o()()(),n(65,"div",35)(66,"label",38),u(67,"input",39),n(68,"span",40),m(69,"Administrator"),o()()()()(),n(70,"app-admin-permissions",41),f("permissionsChange",function(_){return t.updateApplications(_)}),o(),g(71,oi,6,0,"div",32),o(),n(72,"tab",31),f("selectTab",function(){return t.tabView="groups"}),k(73,ai,5,2,"ng-template",9),n(74,"div",7)(75,"app-user-search",42),f("membersChange",function(_){return t.updateMembers(_)}),o()()()()(),n(76,"div",43),g(77,ri,2,1,"button",44),n(78,"button",45),f("click",function(){return t.onCancel()}),m(79,"Cancel"),o(),n(80,"button",46),f("click",function(){return t.onSubmit()}),m(81),o()()),l&2&&(r(2),C(t.user?2:3),r(2),C(t.loading?4:-1),r(),C(t.user?5:-1),r(),U(P("btn-close btn-close-white ",t.user?"ms-2":"ms-auto"," ms-2")),r(),c("formGroup",t.userForm),r(),c("justified",!0),r(9),E("is-invalid",t.userForm.controls.login.invalid),c("autoSelect",!1),r(4),E("is-invalid",t.userForm.controls.email.invalid),r(5),E("is-invalid",t.userForm.controls.firstName.invalid),r(7),C(t.userForm.value.password!==t.defaultPassword?33:-1),r(),c("password",t.userForm.value.password)("showGenerator",!0)("showLabel",!0)("isRequired",!0),r(5),V(t.languages),r(4),c("quota",t.userForm.value.storageQuota)("fullWidth",!0),r(5),V(t.allNotifications),r(2),C(t.user&&t.user.storageUsage?50:-1),r(),C(t.user?51:-1),r(10),E("text-danger",!t.userForm.value.isActive),r(),A(" ",w(64,42,D(63,39,t.userForm.value.isActive?"active":"suspended",t.locale.language))," "),r(8),c("permissions",t.userForm.value.applications),r(),C(t.userForm.value.groups.length?71:-1),r(4),c("members",t.userForm.value.groups)("withPermissions",!1)("customPlaceholder","Type to search for groups to add")("searchFunction",t.searchMembers.bind(t)),r(2),C(t.user!=null&&t.user.id?77:-1),r(3),U(P("btn btn-sm ",t.confirmDeletion?"btn-danger":"btn-primary")),c("disabled",t.userForm.invalid||t.submitted),r(),A(" ",t.confirmDeletion?"Confirm deletion":"Confirm"," "))},dependencies:[M,G,Se,we,xe,j,fe,_e,de,Z,ue,B,$,q,te,K,ye,be,ht,Ae,Te,vt,pe,ie,St,xt,ne],encapsulation:2});let e=a;return e})();var si=["MainContextMenu"],li=["TargetContextMenu"],yt=(e,a)=>a.key,mi=(e,a)=>a.id,ci=(e,a)=>a.mid;function pi(e,a){if(e&1&&u(0,"fa-icon",24),e&2){let i=p(3);c("icon",i.sortTable.sortParam.asc?i.icons.faArrowDown:i.icons.faArrowUp)("fixedWidth",!1)}}function di(e,a){if(e&1){let i=L();n(0,"th",23),f("click",function(){b(i);let l=p().$implicit,t=p();return x(t.sortBy(l.key))}),m(1),g(2,pi,1,2,"fa-icon",24),o()}if(e&2){let i=p().$implicit,s=p();U(i.value.class),De("width",i.value.width,"%"),E("text-align-center",i.value.textCenter)("cursor-pointer",i.value.sortable),r(),A(" ",i.value.label," "),r(),C(s.sortTable.sortParam.column===i.key?2:-1)}}function ui(e,a){if(e&1&&g(0,di,3,10,"th",22),e&2){let i=a.$implicit;C(i.value.show?0:-1)}}function fi(e,a){if(e&1&&u(0,"fa-icon",32),e&2){let i=p(5);c("icon",i.icons.faKey)}}function _i(e,a){if(e&1&&(n(0,"div",27),u(1,"img",30),n(2,"div",28)(3,"span",31),m(4),g(5,fi,1,1,"fa-icon",32),o(),n(6,"span",33),m(7),o()()()),e&2){let i=p(3).$implicit;r(),c("src",i.avatarUrl,J),r(3),A(" ",i.login," "),r(),C(i.isAdmin?5:-1),r(2),v(i.email)}}function gi(e,a){if(e&1&&(n(0,"span",34),m(1),o()),e&2){let i=p(4).$implicit;r(),v(i.userRoleText)}}function Ci(e,a){if(e&1&&(n(0,"div",28)(1,"span",31),m(2),o(),g(3,gi,2,1,"span",34),o()),e&2){let i=p(3).$implicit;r(2),v(i.fullName),r(),C(i.isAdmin?3:-1)}}function hi(e,a){if(e&1&&u(0,"app-user-avatar",35),e&2){let i=a.$implicit;c("user",i)("isMember",!0)}}function vi(e,a){if(e&1&&I(0,hi,1,2,"app-user-avatar",35,ci),e&2){let i=p(3).$implicit;V(i.managers)}}function bi(e,a){if(e&1&&u(0,"app-storage-usage",36),e&2){let i=p(4).$implicit;c("item",i)}}function xi(e,a){if(e&1&&g(0,bi,1,1,"app-storage-usage",36),e&2){let i=p(3).$implicit;C(i.storageUsage?0:-1)}}function Si(e,a){if(e&1&&(n(0,"div",28)(1,"div"),m(2),o(),n(3,"div"),m(4),o()()),e&2){let i=p(3).$implicit;r(2),v(i.currentIp),r(2),v(i.lastIp)}}function wi(e,a){e&1&&m(0," too many login attempts ")}function yi(e,a){if(e&1&&m(0),e&2){let i=p(4).$implicit;A(" ",i.userIsActiveText," ")}}function Ti(e,a){if(e&1&&(n(0,"span",11),g(1,wi,1,0)(2,yi,1,1),o()),e&2){let i=p(3).$implicit;U(i.isActive?"text-success":"text-danger"),r(),C(!i.isActive&&i.passwordAttempts?1:2)}}function Ai(e,a){if(e&1&&(n(0,"div",28)(1,"div"),m(2),h(3,"amDateFormat"),o(),n(4,"div"),m(5),h(6,"amDateFormat"),o()()),e&2){let i=p(5).$implicit;r(2),v(w(3,2,i.currentAccess)),r(3),v(w(6,4,i.lastAccess))}}function Ei(e,a){if(e&1&&m(0),e&2){let i=p(5).$implicit;A(" ",i.hTimeAgo," ")}}function Ui(e,a){if(e&1){let i=L();n(0,"div",38),f("mouseover",function(){b(i);let l=p(4).$implicit;return x(l.currentAccessHover=!0)})("focus",function(){b(i);let l=p(4).$implicit;return x(l.currentAccessHover=!0)})("mouseleave",function(){b(i);let l=p(4).$implicit;return x(l.currentAccessHover=!1)}),g(1,Ai,7,6,"div",28)(2,Ei,1,1),o()}if(e&2){let i=p(4).$implicit;r(),C(i.currentAccessHover?1:2)}}function Di(e,a){e&1&&(n(0,"span",11),m(1,"never"),o())}function Fi(e,a){if(e&1&&g(0,Ui,3,1,"div",37)(1,Di,2,0,"span",11),e&2){let i=p(3).$implicit;C(i.currentAccess?0:1)}}function ki(e,a){if(e&1&&(n(0,"td"),g(1,_i,8,4,"div",27)(2,Ci,4,2,"div",28)(3,vi,2,0)(4,xi,1,1)(5,Si,5,2,"div",28)(6,Ti,3,3,"span",29)(7,Fi,2,1),o()),e&2){let i,s=p().$implicit,l=p().$implicit;U(Me("",s.value.class," ",s.value.newly?"prop-newly-"+l[s.value.newly]:"")),De("width",s.value.width,"%"),E("text-align-center",s.value.textCenter),r(),C((i=s.key)==="login"?1:i==="fullName"?2:i==="managers"?3:i==="storage"?4:i==="currentIp"?5:i==="isActive"?6:i==="currentAccess"?7:-1)}}function Ii(e,a){if(e&1&&g(0,ki,8,9,"td",26),e&2){let i=a.$implicit;C(i.value.show?0:-1)}}function Vi(e,a){if(e&1){let i=L();n(0,"tr",25),f("click",function(){let l=b(i).$implicit,t=p();return x(t.onSelect(l))})("contextmenu",function(l){let t=b(i).$implicit,d=p();return x(d.onTargetContextMenu(l,t))})("pressup",function(l){let t=b(i).$implicit,d=p();return x(d.onTargetContextMenu(l,t))})("tap",function(){b(i);let l=p();return x(l.openDialog())}),I(1,Ii,1,1,null,null,yt),h(3,"keyvalue"),o()}if(e&2){let i=a.$implicit,s=p();E("disabled",!i.isActive)("selected",i.id===(s.selected==null?null:s.selected.id)),r(),V(D(3,4,s.tableHeaders,s.originalOrderKeyValue))}}function Ni(e,a){if(e&1&&(n(0,"span",11),u(1,"fa-icon",5),m(2),o()),e&2){let i=p();r(),c("icon",i.icons.faUserPlus),r(),A("New ",i.guestsView?"guest":"user")}}function Pi(e,a){}function Mi(e,a){if(e&1&&(n(0,"span",11),u(1,"fa-icon",5),m(2,"Refresh"),o()),e&2){let i=p();r(),c("icon",i.icons.faArrowRotateRight)}}function Gi(e,a){if(e&1&&(n(0,"span",11),u(1,"fa-icon",5),m(2),o()),e&2){let i=p();r(),c("icon",i.icons.faUserPen),r(),A("Edit ",i.guestsView?"guest":"user")}}function Ri(e,a){}function Li(e,a){if(e&1&&(n(0,"span",11),u(1,"fa-icon",5),m(2,"Impersonate identity"),o()),e&2){let i=p();r(),c("icon",i.icons.faUserSecret)}}var Lo=(()=>{let a=class a{constructor(){this.locale=S(H),this.originalOrderKeyValue=pt,this.icons={faRotate:je,faUserPlus:Ce,faUserPen:ge,faArrowDown:tt,faArrowUp:We,faKey:Qe,faUserSecret:he,faArrowRotateRight:et,faToggleOn:Ye,faToggleOff:He},this.tableHeaders={login:{label:"Login",width:30,textCenter:!1,class:"",show:!0,sortable:!0},fullName:{label:"Full name",width:15,class:"",textCenter:!1,show:!0,sortable:!0},managers:{label:"Managers",width:15,class:"d-none d-md-table-cell",textCenter:!0,show:!1,sortable:!0},storage:{label:"Storage Space",width:15,class:"d-none d-md-table-cell",textCenter:!0,show:!0,sortable:!0},isActive:{label:"Status",width:10,textCenter:!0,class:"d-none d-lg-table-cell",show:!0,sortable:!0},currentIp:{label:"IP",width:10,textCenter:!1,class:"d-none d-lg-table-cell",show:!0},currentAccess:{label:"Seen",width:12,textCenter:!0,class:"d-none d-lg-table-cell",newly:"newly",show:!0,sortable:!0}},this.guestsView=!1,this.loading=!1,this.selected=null,this.users=[],this.router=S(Le),this.activatedRoute=S(Re),this.layout=S(z),this.adminService=S(R),this.sortSettings={default:[{prop:"login",type:"string"}],login:[{prop:"login",type:"string"}],fullName:[{prop:"fullName",type:"string"}],managers:[{prop:"managers",type:"length"}],storage:[{prop:"storageUsage",type:"number"}],currentAccess:[{prop:"currentAccess",type:"date"}],isActive:[{prop:"isActive",type:"number"}]},this.sortTable=new ft(this.constructor.name,this.sortSettings),this.layout.setBreadcrumbIcon(ot.USERS),this.activatedRoute.data.subscribe(s=>{this.guestsView=s.type===X.GUEST,this.setEnv()})}loadUsersOrGuests(){this.loading=!0,this.onSelect(),this.adminService.listUsers(this.guestsView).subscribe({next:s=>{this.sortBy(this.sortTable.sortParam.column,!1,s),this.scrollView.scrollInto(-1),this.loading=!1},error:s=>{this.users=[],this.layout.sendNotification("error",this.guestsView?"Guests":"Users","Unable to load",s),this.loading=!1}})}onSelect(s=null){this.selected=s}onGuestsView(s){this.guestsView=s,this.router.navigate([Q.BASE,s?Q.GUESTS:Q.USERS]).catch(console.error)}onContextMenu(s){s.preventDefault(),s.stopPropagation(),this.layout.openContextMenu(s,this.mainContextMenu)}onTargetContextMenu(s,l){s.preventDefault(),s.type==="contextmenu"&&s.stopPropagation(),this.onSelect(l),this.layout.openContextMenu(s,this.targetContextMenu)}sortBy(s,l=!0,t){this.users=this.sortTable.sortBy(s,l,t||this.users)}openDialog(s=!1){this.guestsView?this.openGuestDialog(s):this.openUserDialog(s)}openUserDialog(s=!1){s?this.layout.openDialog(Ne,"md").content.userChange.pipe(W(1)).subscribe(t=>{let[d,_]=t;d==="add"&&(this.sortBy(this.sortTable.sortParam.column,!1,[...this.users,_]),this.onSelect(_))}):this.adminService.getUser(this.selected.id).subscribe({next:l=>{this.layout.openDialog(Ne,"md",{initialState:{user:l}}).content.userChange.pipe(W(1)).subscribe(d=>{let[_,T]=d;_==="update"?this.selected=Object.assign(this.selected,T):_==="delete"&&(this.onSelect(),this.sortBy(this.sortTable.sortParam.column,!1,this.users.filter(Ue=>Ue.id!==T.id)))})},error:l=>this.layout.sendNotification("error","Edit group",this.selected.login,l)})}openGuestDialog(s=!1){s?this.layout.openDialog(Ve,"md").content.guestChange.pipe(W(1)).subscribe(t=>{let[d,_]=t,T=new gt(_);d==="add"&&(this.sortBy(this.sortTable.sortParam.column,!1,[...this.users,T]),this.onSelect(T))}):this.adminService.getUser(this.selected.id,!0).subscribe({next:l=>{this.layout.openDialog(Ve,"md",{initialState:{guest:l}}).content.guestChange.pipe(W(1)).subscribe(d=>{let[_,T]=d;_==="update"?this.selected=Object.assign(this.selected,T):_==="delete"&&(this.onSelect(),this.sortBy(this.sortTable.sortParam.column,!1,this.users.filter(Ue=>Ue.id!==T.id)))})},error:l=>this.layout.sendNotification("error","Guest error",this.selected.fullName,l)})}impersonateIdentity(){this.layout.openDialog(bt,"sm",{initialState:{user:this.selected}})}setEnv(){this.tableHeaders.managers.show=this.guestsView,this.tableHeaders.storage.show=!this.guestsView,this.loadUsersOrGuests(),this.layout.setBreadcrumbNav({url:this.guestsView?`/${Q.BASE}/${Q.GUESTS}/${Fe.GUESTS}`:`/${Q.BASE}/${Q.USERS}/${Fe.USERS}`,splicing:2,translating:!0,sameLink:!0})}};a.\u0275fac=function(l){return new(l||a)},a.\u0275cmp=N({type:a,selectors:[["app-admin-users"]],viewQuery:function(l,t){if(l&1&&(re(Ie,5),re(ke,7),re(si,7),re(li,7)),l&2){let d;se(d=le())&&(t.scrollView=d.first),se(d=le())&&(t.inputFilter=d.first),se(d=le())&&(t.mainContextMenu=d.first),se(d=le())&&(t.targetContextMenu=d.first)}},decls:47,vars:40,consts:[["MainContextMenu",""],["TargetContextMenu",""],[1,"app-top-menu"],["container","body","type","button",1,"btn","btn-sm","btn-secondary","me-1",3,"click","tooltip"],[3,"icon","animation"],[3,"icon"],["container","body","type","button",1,"btn","btn-sm","btn-secondary","me-1",3,"click","disabled","tooltip"],[1,"ms-auto"],["btnCheckbox","","type","button",1,"btn","btn-sm","btn-custom","me-1",3,"ngModelChange","ngModel"],[1,"d-flex","align-items-center"],[1,"me-2",3,"icon"],["l10nTranslate",""],[1,"btn-group","btn-group-sm"],[1,"d-none","d-sm-block"],[1,"app-table"],[3,"contextmenu","bufferAmount","items"],["tabindex","-1"],[3,"disabled","selected"],[1,"app-foot-menu"],[1,"mx-auto"],["contextMenuItem","",3,"execute"],["contextMenuItem","",3,"divider"],["l10nTranslate","",3,"width","text-align-center","cursor-pointer","class"],["l10nTranslate","",3,"click"],[3,"icon","fixedWidth"],[3,"click","contextmenu","pressup","tap"],[3,"width","text-align-center","class"],[1,"d-flex","align-items-center","avatar"],[1,"d-flex","flex-column"],["l10nTranslate","",3,"class"],["alt","",1,"avatar-img",3,"src"],["draggable","false",1,"no-pointer-events"],[1,"m-0",3,"icon"],["draggable","false",1,"no-pointer-events","text-muted","fs-xxxs"],["draggable","false","l10nTranslate","",1,"no-pointer-events","text-muted","fs-xxxs"],[3,"user","isMember"],[3,"item"],[1,"d-flex","justify-content-center"],[1,"d-flex","justify-content-center",3,"mouseover","focus","mouseleave"]],template:function(l,t){if(l&1){let d=L();n(0,"div",2)(1,"button",3),h(2,"translate"),f("click",function(){return b(d),x(t.loadUsersOrGuests())}),u(3,"fa-icon",4),o(),n(4,"button",3),h(5,"translate"),f("click",function(){return b(d),x(t.openDialog(!0))}),u(6,"fa-icon",5),o(),n(7,"button",6),h(8,"translate"),f("click",function(){return b(d),x(t.openDialog())}),u(9,"fa-icon",5),o(),n(10,"button",6),h(11,"translate"),f("click",function(){return b(d),x(t.impersonateIdentity())}),u(12,"fa-icon",5),o(),n(13,"div",7)(14,"button",8),f("ngModelChange",function(T){return b(d),x(t.onGuestsView(T))}),n(15,"div",9),u(16,"fa-icon",10),n(17,"span",11),m(18,"Guests"),o()()(),n(19,"div",12),u(20,"app-input-filter",13),o()()(),n(21,"table",14)(22,"thead")(23,"tr"),I(24,ui,1,1,null,null,yt),h(26,"keyvalue"),o()()(),n(27,"app-virtual-scroll",15),h(28,"searchFilter"),f("contextmenu",function(T){return b(d),x(t.onContextMenu(T))}),n(29,"table",14)(30,"tbody",16),I(31,Vi,4,7,"tr",17,mi),o()()(),n(33,"div",18)(34,"span",19),m(35),h(36,"translate"),o()(),n(37,"context-menu",null,0),k(39,Ni,3,2,"ng-template",20),f("execute",function(){return b(d),x(t.openDialog(!0))}),k(40,Pi,0,0,"ng-template",21)(41,Mi,3,1,"ng-template",20),f("execute",function(){return b(d),x(t.loadUsersOrGuests())}),o(),n(42,"context-menu",null,1),k(44,Gi,3,2,"ng-template",20),f("execute",function(){return b(d),x(t.openDialog())}),k(45,Ri,0,0,"ng-template",21)(46,Li,3,1,"ng-template",20),f("execute",function(){return b(d),x(t.impersonateIdentity())}),o()}l&2&&(r(),c("tooltip",D(2,19,"Refresh",t.locale.language)),r(2),c("icon",t.icons.faRotate)("animation",t.loading?"spin":null),r(),c("tooltip",D(5,22,t.guestsView?"New guest":"New user",t.locale.language)),r(2),c("icon",t.icons.faUserPlus),r(),c("disabled",!t.selected)("tooltip",D(8,25,t.guestsView?"Edit guest":"Edit user",t.locale.language)),r(2),c("icon",t.icons.faUserPen),r(),c("disabled",!t.selected)("tooltip",D(11,28,"Impersonate identity",t.locale.language)),r(2),c("icon",t.icons.faUserSecret),r(2),c("ngModel",t.guestsView),r(2),c("icon",t.guestsView?t.icons.faToggleOn:t.icons.faToggleOff),r(8),V(D(26,31,t.tableHeaders,t.originalOrderKeyValue)),r(3),c("bufferAmount",5)("items",D(28,34,t.users,t.inputFilter.search())),r(4),V(t.scrollView==null?null:t.scrollView.viewPortItems),r(4),O("",t.users.length," ",D(36,37,t.guestsView?"guests":"users",t.locale.language)),r(5),c("divider",!0),r(5),c("divider",!0))},dependencies:[M,ke,qe,G,Ie,be,st,rt,at,dt,Be,B,Oe,_t,ie,Ge,ut,ne],encapsulation:2});let e=a;return e})();export{Lo as AdminUsersComponent};
@@ -1 +1 @@
1
- import{Ab as N,B as l,Bb as C,Cb as k,Ea as c,Ib as p,Mb as U,Ob as h,Qa as d,Qb as A,Tb as u,ib as w,lb as m,ob as x,pb as b,xb as r}from"./chunk-WL65GYD5.js";import{c as a,d as I,h as E,m as $}from"./chunk-ZZ3LHYOY.js";import{Oc as M,ca as T,ha as _,v as n}from"./chunk-RSNLYAN6.js";function R(i){i.file?.id?(i.file.isDir&&(i.file.mime=i.parent?.alias?I:a),i.mimeUrl=E(i.file.mime)):i.mimeUrl=E(i.parent?.alias?I:a)}function y(i){let e,o=i.file.path?i.file.path.split("/").filter(s=>s&&s!=="."):[];if(i.parent?.id){if(!o.length)return[p.SPACES_SHARES,i.parent.alias];e=`${p.SPACES_SHARES}/${i.parent.alias}`}else i.file.space?.alias?i.file.inTrash?e=`${p.SPACES_TRASH}/${i.file.space.alias}`:(e=`${p.SPACES_FILES}/${i.file.space.alias}`,i.file.space?.root?.alias&&(o.length?e=`${e}/${i.file.space.root.alias}`:o.push(i.file.space.root.name))):i.file?.ownerId?e=`${i.file.inTrash?p.PERSONAL_TRASH:p.PERSONAL_FILES}`:console.warn("unable to find the right file path",i);let t=o.pop();return e&&o.length&&(e=`${e}/${o.join("/")}`),[e,t]}var g=class{constructor(e){this.hTimeExpirationAgo=0,this.hPerms={},this.newly=0,Object.assign(this,e),R(this),this.updatePermission(),this.updateTimes()}fallBackMimeUrl(){this.mimeUrl=$}updatePermission(){this.hPerms=h(this.link.permissions)}updateTimes(){if(this.hTimeAccessAgo=(0,l.default)(this.link.currentAccess).fromNow(!0),this.newly=d(this.link.currentAccess),this.link.expiresAt){this.link.expiresAt=new Date((0,l.default)(this.link.expiresAt).local().format("YYYY-MM-DD"));let e=Math.max(0,(0,l.default)(this.link.expiresAt).diff((0,l.default)(),"hours"));e===0?this.hTimeExpirationAgo=0:e<=24?this.hTimeExpirationAgo=1:this.hTimeExpirationAgo=Math.round(e/24)+1}else this.hTimeExpirationAgo=0}};var B=(function(i){return i[i.COMMON=0]="COMMON",i[i.LINK=1]="LINK",i})(B||{}),D=Object.values(m).filter(i=>i!==m.SHARE_INSIDE).sort().join(":");var P=class{constructor(e){this.members=[],this.links=[],this.hPerms={},this.setMembers(c("members",e),e.externalPath||e.file?.isDir?[m.SHARE_INSIDE]:[]),Object.assign(this,e),R(this),this.checkFile(),this.setPermissions()}fallBackMimeUrl(){this.mimeUrl=$}setMembers(e,o){if(e)for(let t of e)t.linkId?this.links.push(new A(t,[...o,m.SHARE_OUTSIDE])):this.members.push(new A(t,o))}checkFile(){this.file&&(!this.file.path&&this.file.space.root?.name&&(this.file.path=this.file.space.root.name,this.file.name=this.file.space.root.name),this.file.permissions&&(this.file.permissions=this.file.permissions.split(":").filter(e=>e===m.SHARE_INSIDE||e===m.ADD&&this.file.id&&!this.file.isDir?!1:!(e===m.DELETE&&this.file.id&&!this.file.isDir)).join(":")))}setPermissions(){typeof this.file?.permissions=="string"?this.hPerms=h(this.file.permissions):this.externalPath&&(this.hPerms=h(D))}};var f=class{constructor(e){this.roots=[],this.managers=[],this.members=[],this.links=[],this.hPerms={},this.newly=0,this.hPerms=h(e.permissions),this.setMembers(c("members",e)),this.setRoots(c("roots",e)),Object.assign(this,e),this.hTimeAgo=(0,l.default)(this.modifiedAt).fromNow(!0),this.newly=d(this.modifiedAt),this.sort()}addRoot(e,o=!1){e.hPerms=U(e.permissions,[m.SHARE_INSIDE]),e.owner?.login&&(e.owner.avatarUrl=w(e.owner.login)),e.file.mimeUrl=E(e.file?.mime?e.file.mime:a),o?this.roots.unshift(e):this.roots.push(e),e.isDir=e.file.mime===a||!!e.externalPath}havePermission(e){return this.permissions.indexOf(e)>-1}setMembers(e){if(e)for(let o of e){let t=new A(o);t.isLink?this.links.push(t):t.spaceRole===x.IS_MANAGER?this.managers.push(t):this.members.push(t)}}setRoots(e){if(e)for(let o of e)this.addRoot(o)}sort(){u(this.roots,"createdAt",!1),u(this.managers,"createdAt",!1),u(this.members,"createdAt",!1),u(this.links,"createdAt",!1)}};var Oe=(()=>{let e=class e{constructor(){this.http=_(M)}listSpaces(){return this.http.get(N).pipe(n(t=>t.map(s=>new f(s))))}getSpace(t){return this.http.get(`${r.BASE}/${t}`).pipe(n(s=>new f(s)))}getUserSpaceRoots(t){return this.http.get(`${r.BASE}/${t}/${r.ROOTS}`)}createUserSpaceRoots(t,s){return this.http.post(`${r.BASE}/${t}/${r.ROOTS}`,s)}updateUserSpaceRoots(t,s){return this.http.put(`${r.BASE}/${t}/${r.ROOTS}`,s)}updateSpace(t){return this.http.put(`${r.BASE}/${t.id}`,t).pipe(n(s=>s?new f(s):null))}createSpace(t){return this.http.post(r.BASE,t).pipe(n(s=>(s.permissions=b,new f(s))))}deleteSpace(t,s){return this.http.request("delete",`${r.BASE}/${t}`,{body:s})}searchSpaces(t){return this.http.request("search",r.BASE,{body:t})}listSpaceShares(t){return this.http.get(`${r.BASE}/${t}/${r.SHARES}`)}getSpaceShare(t,s){return this.http.get(`${r.BASE}/${t}/${r.SHARES}/${s}`).pipe(n(S=>new P(S)))}updateSpaceShare(t,s){return this.http.put(`${r.BASE}/${t}/${r.SHARES}/${s.id}`,s).pipe(n(S=>new P(S)))}deleteSpaceShare(t,s){return this.http.delete(`${r.BASE}/${t}/${r.SHARES}/${s}`)}getSpaceShareLink(t,s){return this.http.get(`${r.BASE}/${t}/${r.LINKS}/${s}`).pipe(n(S=>new g(S)))}listTrashBins(){return this.http.get(C)}checkSpaceRootPath(t){return this.http.post(k,{path:t})}};e.\u0275fac=function(s){return new(s||e)},e.\u0275prov=T({token:e,factory:e.\u0275fac,providedIn:"root"});let i=e;return i})();export{B as a,R as b,y as c,P as d,g as e,f,Oe as g};
1
+ import{Ab as N,B as l,Bb as C,Cb as k,Ea as c,Ib as p,Mb as U,Ob as h,Qa as d,Qb as A,Tb as u,ib as w,lb as m,ob as x,pb as b,xb as r}from"./chunk-FR4AOLYL.js";import{c as a,d as I,h as E,m as $}from"./chunk-22EANI6R.js";import{Oc as M,ca as T,ha as _,v as n}from"./chunk-HW2H3ISM.js";function R(i){i.file?.id?(i.file.isDir&&(i.file.mime=i.parent?.alias?I:a),i.mimeUrl=E(i.file.mime)):i.mimeUrl=E(i.parent?.alias?I:a)}function y(i){let e,o=i.file.path?i.file.path.split("/").filter(s=>s&&s!=="."):[];if(i.parent?.id){if(!o.length)return[p.SPACES_SHARES,i.parent.alias];e=`${p.SPACES_SHARES}/${i.parent.alias}`}else i.file.space?.alias?i.file.inTrash?e=`${p.SPACES_TRASH}/${i.file.space.alias}`:(e=`${p.SPACES_FILES}/${i.file.space.alias}`,i.file.space?.root?.alias&&(o.length?e=`${e}/${i.file.space.root.alias}`:o.push(i.file.space.root.name))):i.file?.ownerId?e=`${i.file.inTrash?p.PERSONAL_TRASH:p.PERSONAL_FILES}`:console.warn("unable to find the right file path",i);let t=o.pop();return e&&o.length&&(e=`${e}/${o.join("/")}`),[e,t]}var g=class{constructor(e){this.hTimeExpirationAgo=0,this.hPerms={},this.newly=0,Object.assign(this,e),R(this),this.updatePermission(),this.updateTimes()}fallBackMimeUrl(){this.mimeUrl=$}updatePermission(){this.hPerms=h(this.link.permissions)}updateTimes(){if(this.hTimeAccessAgo=(0,l.default)(this.link.currentAccess).fromNow(!0),this.newly=d(this.link.currentAccess),this.link.expiresAt){this.link.expiresAt=new Date((0,l.default)(this.link.expiresAt).local().format("YYYY-MM-DD"));let e=Math.max(0,(0,l.default)(this.link.expiresAt).diff((0,l.default)(),"hours"));e===0?this.hTimeExpirationAgo=0:e<=24?this.hTimeExpirationAgo=1:this.hTimeExpirationAgo=Math.round(e/24)+1}else this.hTimeExpirationAgo=0}};var B=(function(i){return i[i.COMMON=0]="COMMON",i[i.LINK=1]="LINK",i})(B||{}),D=Object.values(m).filter(i=>i!==m.SHARE_INSIDE).sort().join(":");var P=class{constructor(e){this.members=[],this.links=[],this.hPerms={},this.setMembers(c("members",e),e.externalPath||e.file?.isDir?[m.SHARE_INSIDE]:[]),Object.assign(this,e),R(this),this.checkFile(),this.setPermissions()}fallBackMimeUrl(){this.mimeUrl=$}setMembers(e,o){if(e)for(let t of e)t.linkId?this.links.push(new A(t,[...o,m.SHARE_OUTSIDE])):this.members.push(new A(t,o))}checkFile(){this.file&&(!this.file.path&&this.file.space.root?.name&&(this.file.path=this.file.space.root.name,this.file.name=this.file.space.root.name),this.file.permissions&&(this.file.permissions=this.file.permissions.split(":").filter(e=>e===m.SHARE_INSIDE||e===m.ADD&&this.file.id&&!this.file.isDir?!1:!(e===m.DELETE&&this.file.id&&!this.file.isDir)).join(":")))}setPermissions(){typeof this.file?.permissions=="string"?this.hPerms=h(this.file.permissions):this.externalPath&&(this.hPerms=h(D))}};var f=class{constructor(e){this.roots=[],this.managers=[],this.members=[],this.links=[],this.hPerms={},this.newly=0,this.hPerms=h(e.permissions),this.setMembers(c("members",e)),this.setRoots(c("roots",e)),Object.assign(this,e),this.hTimeAgo=(0,l.default)(this.modifiedAt).fromNow(!0),this.newly=d(this.modifiedAt),this.sort()}addRoot(e,o=!1){e.hPerms=U(e.permissions,[m.SHARE_INSIDE]),e.owner?.login&&(e.owner.avatarUrl=w(e.owner.login)),e.file.mimeUrl=E(e.file?.mime?e.file.mime:a),o?this.roots.unshift(e):this.roots.push(e),e.isDir=e.file.mime===a||!!e.externalPath}havePermission(e){return this.permissions.indexOf(e)>-1}setMembers(e){if(e)for(let o of e){let t=new A(o);t.isLink?this.links.push(t):t.spaceRole===x.IS_MANAGER?this.managers.push(t):this.members.push(t)}}setRoots(e){if(e)for(let o of e)this.addRoot(o)}sort(){u(this.roots,"createdAt",!1),u(this.managers,"createdAt",!1),u(this.members,"createdAt",!1),u(this.links,"createdAt",!1)}};var Oe=(()=>{let e=class e{constructor(){this.http=_(M)}listSpaces(){return this.http.get(N).pipe(n(t=>t.map(s=>new f(s))))}getSpace(t){return this.http.get(`${r.BASE}/${t}`).pipe(n(s=>new f(s)))}getUserSpaceRoots(t){return this.http.get(`${r.BASE}/${t}/${r.ROOTS}`)}createUserSpaceRoots(t,s){return this.http.post(`${r.BASE}/${t}/${r.ROOTS}`,s)}updateUserSpaceRoots(t,s){return this.http.put(`${r.BASE}/${t}/${r.ROOTS}`,s)}updateSpace(t){return this.http.put(`${r.BASE}/${t.id}`,t).pipe(n(s=>s?new f(s):null))}createSpace(t){return this.http.post(r.BASE,t).pipe(n(s=>(s.permissions=b,new f(s))))}deleteSpace(t,s){return this.http.request("delete",`${r.BASE}/${t}`,{body:s})}searchSpaces(t){return this.http.request("search",r.BASE,{body:t})}listSpaceShares(t){return this.http.get(`${r.BASE}/${t}/${r.SHARES}`)}getSpaceShare(t,s){return this.http.get(`${r.BASE}/${t}/${r.SHARES}/${s}`).pipe(n(S=>new P(S)))}updateSpaceShare(t,s){return this.http.put(`${r.BASE}/${t}/${r.SHARES}/${s.id}`,s).pipe(n(S=>new P(S)))}deleteSpaceShare(t,s){return this.http.delete(`${r.BASE}/${t}/${r.SHARES}/${s}`)}getSpaceShareLink(t,s){return this.http.get(`${r.BASE}/${t}/${r.LINKS}/${s}`).pipe(n(S=>new g(S)))}listTrashBins(){return this.http.get(C)}checkSpaceRootPath(t){return this.http.post(k,{path:t})}};e.\u0275fac=function(s){return new(s||e)},e.\u0275prov=T({token:e,factory:e.\u0275fac,providedIn:"root"});let i=e;return i})();export{B as a,R as b,y as c,P as d,g as e,f,Oe as g};
@@ -1 +1 @@
1
- import{f as P}from"./chunk-4KESSWTF.js";import{Ba as d,U as g,Va as C,X as N,cb as E,kb as H,oa as O,sa as f,vb as k,wb as F}from"./chunk-WL65GYD5.js";import{d as T}from"./chunk-XE5YHU5J.js";import{$ as I,G as h,O as m,Oc as R,Z as x,ca as A,ha as n,p as c,q as _,v as p}from"./chunk-RSNLYAN6.js";var a=(function(r){return r.ACCESS="access",r.REFRESH="refresh",r.WS="ws",r.CSRF="csrf",r})(a||{});var s=(function(r){return r.BASE="/api/auth",r.LOGIN="login",r.LOGOUT="logout",r.REFRESH="refresh",r.TOKEN="token",r.TOKEN_REFRESH="token/refresh",r.WS="socket.io",r})(s||{}),U=`${s.BASE}/${s.LOGIN}`,K=`${s.BASE}/${s.LOGOUT}`,l=`${s.BASE}/${s.REFRESH}`,M=`${s.BASE}/${s.TOKEN}`,W=`${s.BASE}/${s.TOKEN_REFRESH}`,b=`/${s.WS}`;var u="sync-in-csrf";var y=[a.REFRESH,a.ACCESS,a.WS,a.CSRF];var L="Client token is expired";var S={BASE:"auth",LOGIN:"login"};var fe=(()=>{let o=class o{constructor(){this.http=n(R),this.router=n(T),this.store=n(H),this.userService=n(P),this.layout=n(F),this.electron=n(k),this._refreshExpiration=parseInt(localStorage.getItem("refresh_expiration")||"0",10)||0,this._accessExpiration=parseInt(localStorage.getItem("access_expiration")||"0",10)||0}get refreshExpiration(){return this._refreshExpiration}set refreshExpiration(e){this._refreshExpiration=e!==0?e+60:e,localStorage.setItem("refresh_expiration",e.toString())}get accessExpiration(){return this._accessExpiration}set accessExpiration(e){this._accessExpiration=e!==0?e+60:e,localStorage.setItem("access_expiration",e.toString())}login(e,t){return this.http.post(U,{login:e,password:t}).pipe(p(i=>(this.accessExpiration=i.token.access_expiration,this.refreshExpiration=i.token.refresh_expiration,this.userService.initUser(i.user),{success:!0,message:null})),h(i=>(console.warn(i),c({success:!1,message:i.error.message||i.message}))))}loginElectron(){return this.electron.authenticate().pipe(x(e=>this.http.post(g,e).pipe(p(t=>(this.accessExpiration=t.token.access_expiration,this.refreshExpiration=t.token.refresh_expiration,this.userService.initUser(t.user),t?.client_token_update&&this.electron.send(E.SERVER.AUTHENTICATION_TOKEN_UPDATE,t.client_token_update),!0)),h(t=>(console.warn(t),t.error.message===L?this.electron.send(E.SERVER.AUTHENTICATION_TOKEN_EXPIRED):this.electron.send(E.SERVER.AUTHENTICATION_FAILED),c(!1))))))}logout(e=!0,t=!1){if((e||t)&&this.store.userImpersonate()){this.logoutImpersonateUser();return}this.userService.disconnectWebSocket(),this.clearCookies().pipe(m(()=>{this.accessExpiration=0,this.refreshExpiration=0,this.layout.clean(),this.store.clean(),e&&this.router.navigate([S.BASE,S.LOGIN]).catch(console.error),t&&this.layout.sendNotification("warning","Session has expired","Please sign in")})).subscribe()}logoutImpersonateUser(){this.http.post(O,null).subscribe({next:e=>{this.userService.disconnectWebSocket(),this.initUserFromResponse(e),this.router.navigate([f.BASE,f.ACCOUNT]).catch(console.error)},error:e=>{console.error(e),this.layout.sendNotification("error","Impersonate identity","logout",e)}})}initUserFromResponse(e,t=!1){e!==null&&(this.accessExpiration=e.token.access_expiration,this.refreshExpiration=e.token.refresh_expiration,this.userService.initUser(e.user,t))}isLogged(){return!this.refreshTokenHasExpired()}refreshToken(){return this.http.post(l,null).pipe(p(e=>(this.accessExpiration=e.access_expiration,this.refreshExpiration=e.refresh_expiration,console.debug("refresh token done"),!0)),h(e=>(console.debug("token has expired"),this.electron.enabled?(console.debug("login with app"),this.loginElectron()):(this.logout(!0,!0),_(()=>e)))))}checkUserAuthAndLoad(e){return this.refreshTokenHasExpired()?this.electron.enabled?this.loginElectron():(this.returnUrl=e.length>1?e:null,this.logout(),c(!1)):this.store.user.getValue()?c(!0):this.http.get(N).pipe(I(t=>this.userService.initUser(t.user)),p(()=>!0),h(t=>(t.status===401?this.logout():console.warn(t),c(!1))))}checkCSRF(e){return e.headers.has(u)?e.clone({headers:e.headers.set(u,C(u))}):e}refreshTokenHasExpired(){return this.refreshExpiration===0||d()>=this.refreshExpiration}clearCookies(){return this.http.post(K,null)}};o.\u0275fac=function(t){return new(t||o)},o.\u0275prov=A({token:o,factory:o.\u0275fac,providedIn:"root"});let r=o;return r})();export{U as a,K as b,l as c,u as d,S as e,fe as f};
1
+ import{f as P}from"./chunk-66FMKVJX.js";import{Ba as d,U as g,Va as C,X as N,cb as E,kb as H,oa as O,sa as f,vb as k,wb as F}from"./chunk-FR4AOLYL.js";import{d as T}from"./chunk-BIUNUYZ5.js";import{$ as I,G as h,O as m,Oc as R,Z as x,ca as A,ha as n,p as c,q as _,v as p}from"./chunk-HW2H3ISM.js";var a=(function(r){return r.ACCESS="access",r.REFRESH="refresh",r.WS="ws",r.CSRF="csrf",r})(a||{});var s=(function(r){return r.BASE="/api/auth",r.LOGIN="login",r.LOGOUT="logout",r.REFRESH="refresh",r.TOKEN="token",r.TOKEN_REFRESH="token/refresh",r.WS="socket.io",r})(s||{}),U=`${s.BASE}/${s.LOGIN}`,K=`${s.BASE}/${s.LOGOUT}`,l=`${s.BASE}/${s.REFRESH}`,M=`${s.BASE}/${s.TOKEN}`,W=`${s.BASE}/${s.TOKEN_REFRESH}`,b=`/${s.WS}`;var u="sync-in-csrf";var y=[a.REFRESH,a.ACCESS,a.WS,a.CSRF];var L="Client token is expired";var S={BASE:"auth",LOGIN:"login"};var fe=(()=>{let o=class o{constructor(){this.http=n(R),this.router=n(T),this.store=n(H),this.userService=n(P),this.layout=n(F),this.electron=n(k),this._refreshExpiration=parseInt(localStorage.getItem("refresh_expiration")||"0",10)||0,this._accessExpiration=parseInt(localStorage.getItem("access_expiration")||"0",10)||0}get refreshExpiration(){return this._refreshExpiration}set refreshExpiration(e){this._refreshExpiration=e!==0?e+60:e,localStorage.setItem("refresh_expiration",e.toString())}get accessExpiration(){return this._accessExpiration}set accessExpiration(e){this._accessExpiration=e!==0?e+60:e,localStorage.setItem("access_expiration",e.toString())}login(e,t){return this.http.post(U,{login:e,password:t}).pipe(p(i=>(this.accessExpiration=i.token.access_expiration,this.refreshExpiration=i.token.refresh_expiration,this.userService.initUser(i.user),{success:!0,message:null})),h(i=>(console.warn(i),c({success:!1,message:i.error.message||i.message}))))}loginElectron(){return this.electron.authenticate().pipe(x(e=>this.http.post(g,e).pipe(p(t=>(this.accessExpiration=t.token.access_expiration,this.refreshExpiration=t.token.refresh_expiration,this.userService.initUser(t.user),t?.client_token_update&&this.electron.send(E.SERVER.AUTHENTICATION_TOKEN_UPDATE,t.client_token_update),!0)),h(t=>(console.warn(t),t.error.message===L?this.electron.send(E.SERVER.AUTHENTICATION_TOKEN_EXPIRED):this.electron.send(E.SERVER.AUTHENTICATION_FAILED),c(!1))))))}logout(e=!0,t=!1){if((e||t)&&this.store.userImpersonate()){this.logoutImpersonateUser();return}this.userService.disconnectWebSocket(),this.clearCookies().pipe(m(()=>{this.accessExpiration=0,this.refreshExpiration=0,this.layout.clean(),this.store.clean(),e&&this.router.navigate([S.BASE,S.LOGIN]).catch(console.error),t&&this.layout.sendNotification("warning","Session has expired","Please sign in")})).subscribe()}logoutImpersonateUser(){this.http.post(O,null).subscribe({next:e=>{this.userService.disconnectWebSocket(),this.initUserFromResponse(e),this.router.navigate([f.BASE,f.ACCOUNT]).catch(console.error)},error:e=>{console.error(e),this.layout.sendNotification("error","Impersonate identity","logout",e)}})}initUserFromResponse(e,t=!1){e!==null&&(this.accessExpiration=e.token.access_expiration,this.refreshExpiration=e.token.refresh_expiration,this.userService.initUser(e.user,t))}isLogged(){return!this.refreshTokenHasExpired()}refreshToken(){return this.http.post(l,null).pipe(p(e=>(this.accessExpiration=e.access_expiration,this.refreshExpiration=e.refresh_expiration,console.debug("refresh token done"),!0)),h(e=>(console.debug("token has expired"),this.electron.enabled?(console.debug("login with app"),this.loginElectron()):(this.logout(!0,!0),_(()=>e)))))}checkUserAuthAndLoad(e){return this.refreshTokenHasExpired()?this.electron.enabled?this.loginElectron():(this.returnUrl=e.length>1?e:null,this.logout(),c(!1)):this.store.user.getValue()?c(!0):this.http.get(N).pipe(I(t=>this.userService.initUser(t.user)),p(()=>!0),h(t=>(t.status===401?this.logout():console.warn(t),c(!1))))}checkCSRF(e){return e.headers.has(u)?e.clone({headers:e.headers.set(u,C(u))}):e}refreshTokenHasExpired(){return this.refreshExpiration===0||d()>=this.refreshExpiration}clearCookies(){return this.http.post(K,null)}};o.\u0275fac=function(t){return new(t||o)},o.\u0275prov=A({token:o,factory:o.\u0275fac,providedIn:"root"});let r=o;return r})();export{U as a,K as b,l as c,u as d,S as e,fe as f};