@sync-in/server 1.5.2 → 1.6.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 (228) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +1 -0
  3. package/environment/environment.dist.min.yaml +1 -0
  4. package/environment/environment.dist.yaml +88 -30
  5. package/migrations/0002_sleepy_korath.sql +1 -0
  6. package/migrations/meta/0002_snapshot.json +2424 -0
  7. package/migrations/meta/_journal.json +7 -0
  8. package/package.json +6 -4
  9. package/server/app.bootstrap.js +1 -1
  10. package/server/app.bootstrap.js.map +1 -1
  11. package/server/applications/files/services/files-manager.service.js +1 -2
  12. package/server/applications/files/services/files-manager.service.js.map +1 -1
  13. package/server/applications/files/services/files-only-office-manager.service.js +5 -6
  14. package/server/applications/files/services/files-only-office-manager.service.js.map +1 -1
  15. package/server/applications/files/utils/files.js +6 -4
  16. package/server/applications/files/utils/files.js.map +1 -1
  17. package/server/applications/links/links.controller.js +2 -2
  18. package/server/applications/links/links.controller.js.map +1 -1
  19. package/server/applications/links/services/links-manager.service.js +2 -1
  20. package/server/applications/links/services/links-manager.service.js.map +1 -1
  21. package/server/applications/links/services/links-manager.service.spec.js +6 -3
  22. package/server/applications/links/services/links-manager.service.spec.js.map +1 -1
  23. package/server/applications/notifications/constants/notifications.js +9 -0
  24. package/server/applications/notifications/constants/notifications.js.map +1 -1
  25. package/server/applications/notifications/i18n/fr.js +10 -1
  26. package/server/applications/notifications/i18n/fr.js.map +1 -1
  27. package/server/applications/notifications/interfaces/notification-properties.interface.js.map +1 -1
  28. package/server/applications/notifications/mails/models.js +41 -3
  29. package/server/applications/notifications/mails/models.js.map +1 -1
  30. package/server/applications/notifications/mails/templates.js +1 -1
  31. package/server/applications/notifications/mails/templates.js.map +1 -1
  32. package/server/applications/notifications/schemas/notifications.schema.js +2 -1
  33. package/server/applications/notifications/schemas/notifications.schema.js.map +1 -1
  34. package/server/applications/notifications/services/notifications-manager.service.js +16 -13
  35. package/server/applications/notifications/services/notifications-manager.service.js.map +1 -1
  36. package/server/applications/notifications/services/notifications-manager.service.spec.js +9 -8
  37. package/server/applications/notifications/services/notifications-manager.service.spec.js.map +1 -1
  38. package/server/applications/notifications/services/notifications-queries.service.js +1 -1
  39. package/server/applications/notifications/services/notifications-queries.service.js.map +1 -1
  40. package/server/applications/shares/services/shares-manager.service.js +3 -2
  41. package/server/applications/shares/services/shares-manager.service.js.map +1 -1
  42. package/server/applications/sync/constants/auth.js +2 -2
  43. package/server/applications/sync/constants/auth.js.map +1 -1
  44. package/server/applications/sync/dtos/sync-client-registration.dto.js +5 -0
  45. package/server/applications/sync/dtos/sync-client-registration.dto.js.map +1 -1
  46. package/server/applications/sync/dtos/sync-operations.dto.js +1 -2
  47. package/server/applications/sync/dtos/sync-operations.dto.js.map +1 -1
  48. package/server/applications/sync/schemas/sync-clients.schema.js +2 -1
  49. package/server/applications/sync/schemas/sync-clients.schema.js.map +1 -1
  50. package/server/applications/sync/schemas/sync-paths.schema.js +2 -1
  51. package/server/applications/sync/schemas/sync-paths.schema.js.map +1 -1
  52. package/server/applications/sync/services/sync-clients-manager.service.js +28 -20
  53. package/server/applications/sync/services/sync-clients-manager.service.js.map +1 -1
  54. package/server/applications/sync/services/sync-clients-manager.service.spec.js +24 -18
  55. package/server/applications/sync/services/sync-clients-manager.service.spec.js.map +1 -1
  56. package/server/applications/sync/services/sync-queries.service.js +5 -5
  57. package/server/applications/sync/services/sync-queries.service.js.map +1 -1
  58. package/server/applications/users/admin-users.controller.js +48 -37
  59. package/server/applications/users/admin-users.controller.js.map +1 -1
  60. package/server/applications/users/admin-users.controller.spec.js +15 -0
  61. package/server/applications/users/admin-users.controller.spec.js.map +1 -1
  62. package/server/applications/users/constants/routes.js +5 -0
  63. package/server/applications/users/constants/routes.js.map +1 -1
  64. package/server/applications/users/constants/user.js +8 -0
  65. package/server/applications/users/constants/user.js.map +1 -1
  66. package/server/applications/users/dto/delete-user.dto.js +5 -23
  67. package/server/applications/users/dto/delete-user.dto.js.map +1 -1
  68. package/server/applications/users/dto/user-properties.dto.js +38 -3
  69. package/server/applications/users/dto/user-properties.dto.js.map +1 -1
  70. package/server/applications/users/interfaces/admin-user.interface.js.map +1 -1
  71. package/server/applications/users/interfaces/user-secrets.interface.js +10 -0
  72. package/server/applications/users/interfaces/user-secrets.interface.js.map +1 -0
  73. package/server/applications/users/models/user.model.js +84 -50
  74. package/server/applications/users/models/user.model.js.map +1 -1
  75. package/server/applications/users/schemas/user.interface.js.map +1 -1
  76. package/server/applications/users/schemas/users.schema.js +2 -0
  77. package/server/applications/users/schemas/users.schema.js.map +1 -1
  78. package/server/applications/users/services/admin-users-manager.service.js +7 -19
  79. package/server/applications/users/services/admin-users-manager.service.js.map +1 -1
  80. package/server/applications/users/services/admin-users-manager.service.spec.js +7 -26
  81. package/server/applications/users/services/admin-users-manager.service.spec.js.map +1 -1
  82. package/server/applications/users/services/admin-users-queries.service.js +1 -0
  83. package/server/applications/users/services/admin-users-queries.service.js.map +1 -1
  84. package/server/applications/users/services/users-manager.service.js +138 -28
  85. package/server/applications/users/services/users-manager.service.js.map +1 -1
  86. package/server/applications/users/services/users-manager.service.spec.js +11 -9
  87. package/server/applications/users/services/users-manager.service.spec.js.map +1 -1
  88. package/server/applications/users/services/users-queries.service.js +63 -57
  89. package/server/applications/users/services/users-queries.service.js.map +1 -1
  90. package/server/applications/users/users.controller.js +48 -1
  91. package/server/applications/users/users.controller.js.map +1 -1
  92. package/server/applications/users/users.controller.spec.js +8 -1
  93. package/server/applications/users/users.controller.spec.js.map +1 -1
  94. package/server/applications/users/users.e2e-spec.js +2 -1
  95. package/server/applications/users/users.e2e-spec.js.map +1 -1
  96. package/server/applications/users/utils/avatar.js +48 -0
  97. package/server/applications/users/utils/avatar.js.map +1 -0
  98. package/server/authentication/auth.config.js +85 -26
  99. package/server/authentication/auth.config.js.map +1 -1
  100. package/server/authentication/auth.controller.js +117 -9
  101. package/server/authentication/auth.controller.js.map +1 -1
  102. package/server/authentication/auth.controller.spec.js +16 -1
  103. package/server/authentication/auth.controller.spec.js.map +1 -1
  104. package/server/authentication/auth.e2e-spec.js +4 -3
  105. package/server/authentication/auth.e2e-spec.js.map +1 -1
  106. package/server/authentication/auth.module.js +4 -1
  107. package/server/authentication/auth.module.js.map +1 -1
  108. package/server/authentication/constants/auth.js +37 -4
  109. package/server/authentication/constants/auth.js.map +1 -1
  110. package/server/authentication/constants/routes.js +21 -0
  111. package/server/authentication/constants/routes.js.map +1 -1
  112. package/server/authentication/constants/scope.js +20 -0
  113. package/server/authentication/constants/scope.js.map +1 -0
  114. package/server/authentication/dto/login-response.dto.js +27 -4
  115. package/server/authentication/dto/login-response.dto.js.map +1 -1
  116. package/server/authentication/dto/token-response.dto.js +5 -0
  117. package/server/authentication/dto/token-response.dto.js.map +1 -1
  118. package/server/{applications/users/dto/user-password.dto.js → authentication/dto/two-fa-verify.dto.js} +27 -9
  119. package/server/authentication/dto/two-fa-verify.dto.js.map +1 -0
  120. package/server/authentication/guards/auth-basic.strategy.js +6 -5
  121. package/server/authentication/guards/auth-basic.strategy.js.map +1 -1
  122. package/server/authentication/guards/auth-token-access.strategy.js +3 -2
  123. package/server/authentication/guards/auth-token-access.strategy.js.map +1 -1
  124. package/server/authentication/guards/auth-token-refresh.strategy.js +3 -2
  125. package/server/authentication/guards/auth-token-refresh.strategy.js.map +1 -1
  126. package/server/authentication/guards/auth-two-fa-guard.js +81 -0
  127. package/server/authentication/guards/auth-two-fa-guard.js.map +1 -0
  128. package/server/authentication/interfaces/jwt-payload.interface.js +5 -0
  129. package/server/authentication/interfaces/jwt-payload.interface.js.map +1 -1
  130. package/server/authentication/interfaces/token.interface.js +2 -0
  131. package/server/authentication/interfaces/token.interface.js.map +1 -1
  132. package/server/authentication/interfaces/two-fa-setup.interface.js +10 -0
  133. package/server/authentication/interfaces/two-fa-setup.interface.js.map +1 -0
  134. package/server/authentication/models/auth-method.js.map +1 -1
  135. package/server/authentication/services/auth-manager.service.js +72 -49
  136. package/server/authentication/services/auth-manager.service.js.map +1 -1
  137. package/server/authentication/services/auth-methods/auth-method-database.service.js +3 -3
  138. package/server/authentication/services/auth-methods/auth-method-database.service.js.map +1 -1
  139. package/server/authentication/services/auth-methods/auth-method-database.service.spec.js +5 -0
  140. package/server/authentication/services/auth-methods/auth-method-database.service.spec.js.map +1 -1
  141. package/server/authentication/services/auth-methods/auth-method-ldap.service.js +100 -27
  142. package/server/authentication/services/auth-methods/auth-method-ldap.service.js.map +1 -1
  143. package/server/authentication/services/auth-methods/auth-method-ldap.service.spec.js +11 -12
  144. package/server/authentication/services/auth-methods/auth-method-ldap.service.spec.js.map +1 -1
  145. package/server/authentication/services/auth-methods/auth-method-two-fa.service.js +251 -0
  146. package/server/authentication/services/auth-methods/auth-method-two-fa.service.js.map +1 -0
  147. package/server/authentication/services/auth-methods/auth-method-two-fa.service.spec.js +41 -0
  148. package/server/authentication/services/auth-methods/auth-method-two-fa.service.spec.js.map +1 -0
  149. package/server/authentication/utils/crypt-secret.js +68 -0
  150. package/server/authentication/utils/crypt-secret.js.map +1 -0
  151. package/server/common/functions.js +18 -2
  152. package/server/common/functions.js.map +1 -1
  153. package/server/common/qrcode.js +34 -0
  154. package/server/common/qrcode.js.map +1 -0
  155. package/server/common/shared.js +18 -0
  156. package/server/common/shared.js.map +1 -1
  157. package/server/configuration/config.environment.js +23 -6
  158. package/server/configuration/config.environment.js.map +1 -1
  159. package/server/configuration/config.interfaces.js +10 -0
  160. package/server/configuration/config.interfaces.js.map +1 -0
  161. package/server/configuration/config.loader.js.map +1 -1
  162. package/server/configuration/config.validation.js +13 -13
  163. package/server/configuration/config.validation.js.map +1 -1
  164. package/server/infrastructure/cache/adapters/mysql-cache.adapter.js +6 -6
  165. package/server/infrastructure/cache/adapters/mysql-cache.adapter.js.map +1 -1
  166. package/server/infrastructure/cache/schemas/mysql-cache.schema.js +2 -1
  167. package/server/infrastructure/cache/schemas/mysql-cache.schema.js.map +1 -1
  168. package/server/infrastructure/cache/services/cache.service.js.map +1 -1
  169. package/server/infrastructure/database/columns.js +39 -0
  170. package/server/infrastructure/database/columns.js.map +1 -0
  171. package/server/infrastructure/database/database.config.js +0 -1
  172. package/server/infrastructure/database/database.config.js.map +1 -1
  173. package/server/infrastructure/mailer/interfaces/mail.interface.js.map +1 -1
  174. package/server/infrastructure/mailer/mailer.config.js +12 -0
  175. package/server/infrastructure/mailer/mailer.config.js.map +1 -1
  176. package/server/infrastructure/mailer/mailer.service.js +2 -1
  177. package/server/infrastructure/mailer/mailer.service.js.map +1 -1
  178. package/static/assets/mimes/text-x-c.svg +1 -0
  179. package/static/chunk-2TZUZMCM.js +4 -0
  180. package/static/chunk-2XJ5Z2GZ.js +1 -0
  181. package/static/{chunk-7VRUZRJG.js → chunk-5M4YJZUB.js} +2 -2
  182. package/static/{chunk-MRSWNAVB.js → chunk-5ZGQYTS2.js} +1 -1
  183. package/static/chunk-6BFNMDUD.js +1 -0
  184. package/static/chunk-6IRL673W.js +559 -0
  185. package/static/{chunk-2R6HHGUR.js → chunk-ABGR5AYC.js} +1 -1
  186. package/static/chunk-CN27VAGB.js +1 -0
  187. package/static/{chunk-MVO4WZLK.js → chunk-DNMO47SY.js} +1 -1
  188. package/static/{chunk-MGGT6MIJ.js → chunk-EI4PVI2W.js} +1 -1
  189. package/static/chunk-ET6QDNNM.js +1 -0
  190. package/static/{chunk-L6MU6S2V.js → chunk-G2TKYYWK.js} +1 -1
  191. package/static/chunk-G3FOG2QB.js +1 -0
  192. package/static/{chunk-MCLQFZ3S.js → chunk-GCUWGVYT.js} +1 -1
  193. package/static/{chunk-RSS6GYNE.js → chunk-HME7LAEY.js} +1 -1
  194. package/static/chunk-IEUANP3Q.js +1 -0
  195. package/static/{chunk-VJRTMDEJ.js → chunk-IIFHIIC6.js} +1 -1
  196. package/static/{chunk-YJMN3B4N.js → chunk-KPZ7FEMO.js} +1 -1
  197. package/static/{chunk-JYXLQRHG.js → chunk-M57NVD4V.js} +1 -1
  198. package/static/chunk-NN3VQOS7.js +1 -0
  199. package/static/chunk-NW3CTYUW.js +1 -0
  200. package/static/{chunk-6OJZWYRZ.js → chunk-O3ANXCPE.js} +1 -1
  201. package/static/{chunk-ZC5NIT55.js → chunk-QFOMEU3T.js} +1 -1
  202. package/static/{chunk-BIUNUYZ5.js → chunk-RKNTQYMU.js} +1 -1
  203. package/static/{chunk-VUI3KV7V.js → chunk-UQ4TRQCE.js} +1 -1
  204. package/static/{chunk-WI7FOANP.js → chunk-WINILGQN.js} +1 -1
  205. package/static/{chunk-NE4NDO45.js → chunk-X7MFVDBY.js} +1 -1
  206. package/static/chunk-XCBLEI2E.js +1 -0
  207. package/static/{chunk-CRQNEHTX.js → chunk-XLWCV4HI.js} +1 -1
  208. package/static/chunk-XPIYOZBX.js +4 -0
  209. package/static/{chunk-LLWSLOSX.js → chunk-YD74UCFG.js} +1 -1
  210. package/static/{chunk-IZL7JPTS.js → chunk-YDFVKH2D.js} +1 -1
  211. package/static/{chunk-SPTF6FSM.js → chunk-YVJDYSDE.js} +1 -1
  212. package/static/index.html +2 -2
  213. package/static/main-QNBKYA6L.js +9 -0
  214. package/static/{styles-FYUSO6OJ.css → styles-A5VYX3CE.css} +1 -1
  215. package/server/applications/users/dto/user-password.dto.js.map +0 -1
  216. package/static/chunk-4U5A2DEP.js +0 -4
  217. package/static/chunk-54EAZ2UD.js +0 -1
  218. package/static/chunk-7ZRXJONB.js +0 -1
  219. package/static/chunk-F2J2IIJE.js +0 -1
  220. package/static/chunk-FNFGUIQH.js +0 -4
  221. package/static/chunk-GGLK52CG.js +0 -1
  222. package/static/chunk-HW2H3ISM.js +0 -559
  223. package/static/chunk-HX6BBYVD.js +0 -1
  224. package/static/chunk-JF7S3UYQ.js +0 -1
  225. package/static/chunk-KSHPKI4G.js +0 -1
  226. package/static/chunk-VPJ2V27B.js +0 -1
  227. package/static/chunk-ZXS4V7J2.js +0 -1
  228. package/static/main-FFIWFD2F.js +0 -7
@@ -1 +1 @@
1
- import{e as N}from"./chunk-F2J2IIJE.js";import"./chunk-MVO4WZLK.js";import"./chunk-7ZRXJONB.js";import"./chunk-JF7S3UYQ.js";import"./chunk-VPJ2V27B.js";import"./chunk-4U5A2DEP.js";import{k as F,l as I}from"./chunk-22EANI6R.js";import{b as _,e as P}from"./chunk-BIUNUYZ5.js";import{Cb as p,Ed as E,Fd as U,Ga as h,Ma as i,Pb as g,Tb as v,Ub as k,Vb as y,Xa as f,Zc as S,ad as L,ae as D,dc as b,ed as C,fc as w,fe as R,ha as l,jd as A,pb as n,qb as t,rb as o,sb as a,wd as M,yd as T}from"./chunk-HW2H3ISM.js";import"./chunk-RTRJ3KFH.js";var Q=(()=>{let r=class r{constructor(){this.locale=l(T),this.logoUrl=F,this.linkProtected=I,this.icons={faKey:D,faSignInAlt:R},this.password="",this.activatedRoute=l(_),this.linksService=l(N),this.activatedRoute.params.subscribe(c=>this.uuid=c.uuid)}validPassword(){this.password&&this.linksService.linkAuthentication(this.uuid,this.password).subscribe(()=>this.password="")}};r.\u0275fac=function(s){return new(s||r)},r.\u0275cmp=f({type:r,selectors:[["app-public-link-auth"]],decls:18,vars:10,consts:[[1,"link-page"],[1,"header"],["routerLink",""],["alt","","height","40",3,"src"],["alt","","height","96",1,"cursor-pointer",3,"click","src"],[1,"d-flex","mt-2","ms-auto","me-auto",2,"width","250px"],[1,"input-group"],[1,"input-group-text","bg-gray-light"],[3,"icon"],["autocomplete","off","type","password",1,"form-control","border-0",3,"ngModelChange","keyup.enter","ngModel","placeholder"],["type","button",1,"btn","btn-default","btn-custom","border-0",3,"click","disabled"],[1,"error-text","no-select"],[1,"hr"],["l10nTranslate","",1,"solve"]],template:function(s,e){s&1&&(t(0,"div",0)(1,"div",1)(2,"a",2),a(3,"img",3),o()(),t(4,"img",4),p("click",function(){return e.validPassword()}),o(),t(5,"div",5)(6,"div",6)(7,"span",7),a(8,"fa-icon",8),o(),t(9,"input",9),b(10,"translate"),y("ngModelChange",function(m){return k(e.password,m)||(e.password=m),m}),p("keyup.enter",function(){return e.validPassword()}),o(),t(11,"button",10),p("click",function(){return e.validPassword()}),a(12,"fa-icon",8),o()()(),t(13,"div",11),a(14,"span",12),t(15,"div")(16,"span",13),g(17,"This share is protected by a password"),o()()()()),s&2&&(i(3),n("src",e.logoUrl,h),i(),n("src",e.linkProtected,h),i(4),n("icon",e.icons.faKey),i(),v("ngModel",e.password),n("placeholder",w(10,7,"Password",e.locale.language)),i(2),n("disabled",!(e.password!=null&&e.password.length)),i(),n("icon",e.icons.faSignInAlt))},dependencies:[P,M,L,C,A,S,U,E],encapsulation:2});let d=r;return d})();export{Q as PublicLinkAuthComponent};
1
+ import{e as N}from"./chunk-CN27VAGB.js";import"./chunk-DNMO47SY.js";import"./chunk-G3FOG2QB.js";import"./chunk-NW3CTYUW.js";import"./chunk-IEUANP3Q.js";import"./chunk-2TZUZMCM.js";import{k as F,l as I}from"./chunk-22EANI6R.js";import{b as _,e as P}from"./chunk-RKNTQYMU.js";import{Ad as T,Cb as p,Ga as h,Gd as E,Hd as U,Ma as i,Pb as g,Tb as v,Ub as k,Vb as y,Xa as f,_c as S,bd as L,ce as D,dc as b,fc as w,fd as C,ha as l,ie as R,kd as A,pb as n,qb as t,rb as o,sb as a,yd as M}from"./chunk-6IRL673W.js";import"./chunk-RTRJ3KFH.js";var Q=(()=>{let r=class r{constructor(){this.locale=l(T),this.logoUrl=F,this.linkProtected=I,this.icons={faKey:D,faSignInAlt:R},this.password="",this.activatedRoute=l(_),this.linksService=l(N),this.activatedRoute.params.subscribe(c=>this.uuid=c.uuid)}validPassword(){this.password&&this.linksService.linkAuthentication(this.uuid,this.password).subscribe(()=>this.password="")}};r.\u0275fac=function(s){return new(s||r)},r.\u0275cmp=f({type:r,selectors:[["app-public-link-auth"]],decls:18,vars:10,consts:[[1,"link-page"],[1,"header"],["routerLink",""],["alt","","height","40",3,"src"],["alt","","height","96",1,"cursor-pointer",3,"click","src"],[1,"d-flex","mt-2","ms-auto","me-auto",2,"width","250px"],[1,"input-group"],[1,"input-group-text","bg-gray-light"],[3,"icon"],["autocomplete","off","type","password",1,"form-control","border-0",3,"ngModelChange","keyup.enter","ngModel","placeholder"],["type","button",1,"btn","btn-default","btn-custom","border-0",3,"click","disabled"],[1,"error-text","no-select"],[1,"hr"],["l10nTranslate","",1,"solve"]],template:function(s,e){s&1&&(t(0,"div",0)(1,"div",1)(2,"a",2),a(3,"img",3),o()(),t(4,"img",4),p("click",function(){return e.validPassword()}),o(),t(5,"div",5)(6,"div",6)(7,"span",7),a(8,"fa-icon",8),o(),t(9,"input",9),b(10,"translate"),y("ngModelChange",function(m){return k(e.password,m)||(e.password=m),m}),p("keyup.enter",function(){return e.validPassword()}),o(),t(11,"button",10),p("click",function(){return e.validPassword()}),a(12,"fa-icon",8),o()()(),t(13,"div",11),a(14,"span",12),t(15,"div")(16,"span",13),g(17,"This share is protected by a password"),o()()()()),s&2&&(i(3),n("src",e.logoUrl,h),i(),n("src",e.linkProtected,h),i(4),n("icon",e.icons.faKey),i(),v("ngModel",e.password),n("placeholder",w(10,7,"Password",e.locale.language)),i(2),n("disabled",!(e.password!=null&&e.password.length)),i(),n("icon",e.icons.faSignInAlt))},dependencies:[P,M,L,C,A,S,U,E],encapsulation:2});let d=r;return d})();export{Q as PublicLinkAuthComponent};
@@ -1 +1 @@
1
- import{b as ft,c as ht}from"./chunk-KSHPKI4G.js";import{A as ut,C as Ct,z as _t}from"./chunk-7VRUZRJG.js";import{a as dt}from"./chunk-MGGT6MIJ.js";import{a as re}from"./chunk-WI7FOANP.js";import{a as lt}from"./chunk-LLWSLOSX.js";import{d as Ge}from"./chunk-6OJZWYRZ.js";import"./chunk-JXZCNFW7.js";import{a as et}from"./chunk-MCLQFZ3S.js";import{a as ct}from"./chunk-ZC5NIT55.js";import"./chunk-NE4NDO45.js";import{a as Je,b as tt,c as it,d as nt,e as ot,f as at,h as rt,i as st}from"./chunk-FNFGUIQH.js";import{a as oe,b as ae,c as Xe,d as Ze}from"./chunk-54EAZ2UD.js";import{e as mt}from"./chunk-F2J2IIJE.js";import{f as pt,g as ie}from"./chunk-MVO4WZLK.js";import"./chunk-7ZRXJONB.js";import"./chunk-JF7S3UYQ.js";import{f as te}from"./chunk-VPJ2V27B.js";import{B as Y,Gb as je,Hb as I,Ib as ne,Ja as He,O as We,Rb as Ye,Xa as Qe,kb as ze,lb as W,ob as Z,pa as Ue,qa as $e,ra as qe,v as Me,w as Ve,wb as ee}from"./chunk-4U5A2DEP.js";import"./chunk-22EANI6R.js";import{b as Se,d as xe}from"./chunk-BIUNUYZ5.js";import{$c as be,Cb as f,Eb as c,Ed as De,Ef as Le,Fd as j,Gc as ge,Gd as Pe,Gf as J,Ib as B,If as Be,Jb as N,Kb as O,L,Ma as a,Mb as F,Nb as U,Ob as R,Pb as m,Qb as E,Rb as D,Re as Fe,Sb as ue,Tb as M,Ub as V,Ue as Re,Uf as Ne,Vb as P,Xa as $,Xb as H,Yb as fe,Zc as z,Zf as Oe,_a as q,_b as Ce,ab as w,ad as ve,bb as de,bf as Ie,cg as Ke,dc as b,ec as Q,ed as ye,f as me,fc as v,gc as he,ha as y,ib as _e,jb as g,jd as we,kb as S,ma as C,na as h,nb as A,ob as k,of as G,pb as p,pe as Ae,qb as s,rb as l,sb as u,se as ke,td as Te,vf as X,wd as Ee,yd as K,zb as x}from"./chunk-HW2H3ISM.js";import{a as ce,b as pe}from"./chunk-RTRJ3KFH.js";var gt=(()=>{let r=class r{transform(n,o,i){if(typeof o>"u"||typeof o=="number"&&typeof i>"u")throw new Error("TimeAddPipe: missing required arguments");return(0,Y.default)(n).add(o,i)}};r.\u0275fac=function(o){return new(o||r)},r.\u0275pipe=q({name:"amAdd",type:r,pure:!0});let e=r;return e})();var St=(()=>{let r=class r{transform(n,o){if(!o)throw new Error("TimeDurationPipe: missing required time unit argument");return Y.default.duration({[o]:n}).humanize()}};r.\u0275fac=function(o){return new(o||r)},r.\u0275pipe=q({name:"amDuration",type:r,pure:!1});let e=r;return e})();function Tt(e,r){if(e&1&&(s(0,"span"),m(1),l()),e&2){let t=c();a(),E(t.space.name)}}function Et(e,r){e&1&&(s(0,"span",3),m(1,"Create a new space"),l())}function Dt(e,r){if(e&1&&u(0,"fa-icon",4),e&2){let t=c();p("icon",t.icons.faSpinner)}}function Mt(e,r){e&1&&(s(0,"h4",5)(1,"span",3),m(2,"Edit space"),l()())}function Vt(e,r){if(e&1&&(u(0,"fa-icon",45),s(1,"span",46),m(2,"Settings"),l()),e&2){let t=c();p("icon",t.icons.faCog)}}function Pt(e,r){if(e&1&&(s(0,"div",21)(1,"label",47),m(2,"Storage Usage"),l(),u(3,"app-storage-usage",48),l()),e&2){let t=c();a(3),p("item",t.space)}}function At(e,r){if(e&1&&(s(0,"span"),m(1),b(2,"amAdd"),b(3,"amTimeAgo"),l()),e&2){let t=c(2);a(),D("\xA0",v(3,5,he(2,1,t.space.disabledAt,t.SPACE_MAX_DISABLED_DAYS,"days"),!0))}}function kt(e,r){if(e&1&&(s(0,"span"),m(1),b(2,"amDuration"),l()),e&2){let t=c(2);a(),D("\xA0",v(2,1,t.SPACE_MAX_DISABLED_DAYS,"days"))}}function Ft(e,r){if(e&1&&(s(0,"div",27)(1,"span",3),m(2,"Space and data will be deleted in"),l(),s(3,"span",49),g(4,At,4,8,"span")(5,kt,3,4,"span"),l()()),e&2){let t=c();a(4),S(t.space.disabledAt?4:5)}}function Rt(e,r){e&1&&(s(0,"small",33),m(1,"At least one manager is required"),l())}function It(e,r){if(e&1&&(s(0,"div",56)(1,"label",57),m(2,"Deactivation date"),l(),s(3,"div",58),m(4),b(5,"amDateFormat"),l()()),e&2){let t=c(2);a(4),E(Q(5,1,t.space.disabledAt))}}function Lt(e,r){if(e&1&&(s(0,"div",34)(1,"div",50)(2,"label",51),m(3,"Creation date"),l(),s(4,"div",52),m(5),b(6,"amDateFormat"),l()(),s(7,"div",53)(8,"label",54),m(9,"Modification date"),l(),s(10,"div",55),m(11),b(12,"amDateFormat"),l()(),g(13,It,6,3,"div",56),l()),e&2){let t=c();a(5),E(Q(6,3,t.space.createdAt)),a(6),E(Q(12,5,t.space.modifiedAt)),a(2),S(t.space.disabledAt&&!t.space.enabled?13:-1)}}function Bt(e,r){if(e&1&&(u(0,"fa-icon",45),s(1,"span",59),m(2,"Files"),l(),s(3,"span"),m(4),l()),e&2){let t=c();p("icon",t.icons.faAnchor),a(4),D("(",(t.space.roots==null?null:t.space.roots.length)||0,")")}}function Nt(e,r){if(e&1&&(u(0,"fa-icon",45),s(1,"span",59),m(2,"Members"),l(),s(3,"span"),m(4),l()),e&2){let t=c();p("icon",t.icons.faUsers),a(4),D("(",t.space.members.length,")")}}function Ot(e,r){if(e&1&&(u(0,"fa-icon",45),s(1,"span",59),m(2,"Links"),l(),s(3,"span"),m(4),l()),e&2){let t=c();p("icon",t.icons.LINKS),a(4),D("(",t.space.links.length,")")}}function Wt(e,r){if(e&1){let t=x();s(0,"button",60),f("click",function(){C(t);let o=c();return h(o.confirmDeletion=!0)}),m(1," Remove "),l()}if(e&2){let t=c();p("disabled",t.confirmDeletion)}}function Ut(e,r){if(e&1){let t=x();s(0,"button",61),f("click",function(){C(t);let o=c();return h(o.openCreateLinkDialog())}),u(1,"fa-icon",45)(2,"fa-icon",45),m(3," Link "),l()}if(e&2){let t=c();a(),p("icon",t.icons.faPlus),a(),p("icon",t.icons.LINKS)}}function $t(e,r){if(e&1){let t=x();s(0,"button",63),f("click",function(){C(t);let o=c(2);return h(o.openAdminRootDialog())}),u(1,"fa-icon",45)(2,"fa-icon",45),m(3," External location "),l()}if(e&2){let t=c(2);a(),p("icon",t.icons.faPlus),a(),p("icon",t.icons.faUserShield)}}function qt(e,r){if(e&1){let t=x();s(0,"button",61),f("click",function(){C(t);let o=c();return h(o.openSelectRootDialog())}),u(1,"fa-icon",45)(2,"fa-icon",45),m(3," File "),l(),g(4,$t,4,2,"button",62)}if(e&2){let t=c();a(),p("icon",t.icons.faPlus),a(),p("icon",t.icons.faAnchor),a(2),S(t.user.isAdmin?4:-1)}}var le=(()=>{let r=class r{constructor(){this.space=new pt({id:0,name:"",createdAt:new Date,enabled:!0,storageUsage:0,storageQuota:null}),this.spaceChange=new de,this.locale=y(K),this.layout=y(ee),this.icons={SPACES:I.SPACES,LINKS:I.LINKS,faPen:G,faAnchor:X,faUserShield:ke,faPlus:J,faSpinner:Ie,faCog:Fe,faUsers:Ae},this.SPACE_MAX_DISABLED_DAYS=30,this.addRootFileEvent=new me,this.allowedLinkPermissions=[W.ADD,W.DELETE,W.MODIFY],this.editManagers=!1,this.confirmDeletion=!1,this.loading=!1,this.submitted=!1,this.userService=y(te),this.user=this.userService.user,this.spacesService=y(ie),this.linksService=y(mt)}ngOnInit(){this.space.id||this.space.managers.unshift(Ye(this.user,Z.IS_MANAGER))}searchManagers(n){let o={search:n,ignoreUserIds:[...this.space.managers.map(i=>i.id),...this.space.members.filter(i=>i.isUser).map(i=>i.id)],onlyUsers:!0};return this.userService.searchMembers(o)}searchMembers(n){let o={search:n,ignoreUserIds:[...this.space.managers.map(i=>i.id),...this.space.members.filter(i=>i.isUser).map(i=>i.id)],ignoreGroupIds:this.space.members.filter(i=>i.isGroup).map(i=>i.id)};return this.userService.searchMembers(o)}openSelectRootDialog(){this.layout.openDialog(_t,"xl",{initialState:{currentRoots:this.space.roots.filter(o=>o.owner.id===this.user.id)}}).content.submitEvent.pipe(L(1)).subscribe(o=>this.addRootFileEvent.next(o))}openAdminRootDialog(){this.layout.openDialog(ut,null,{initialState:{currentRoots:this.space.roots.filter(o=>o.externalPath)}}).content.submitEvent.pipe(L(1)).subscribe(o=>this.addRootFileEvent.next(o))}openEditLinkDialog(n){this.linksService.editLinkDialog(n,this.space,Ke.SPACE)}openCreateLinkDialog(){this.linksService.createLinkDialog(this.space)}onCancel(){this.confirmDeletion?this.confirmDeletion=!1:this.layout.closeDialog()}onSubmit(){this.loading=!0,this.submitted=!0,this.confirmDeletion?(this.space.id===0&&this.layout.closeDialog(),this.spacesService.deleteSpace(this.space.id,{deleteNow:!0}).subscribe({next:()=>{this.loading=!1,this.spaceChange.emit(["delete",this.space]),this.layout.closeDialog()},error:n=>{this.onError(),this.layout.sendNotification("error","Delete space",this.space.name,n)}})):this.space.id===0?this.spacesService.createSpace(this.space).subscribe({next:n=>{this.loading=!1,this.space=n,this.spaceChange.emit(["add",n]),this.layout.closeDialog()},error:n=>{this.onError(),this.layout.sendNotification("error","Create space",this.space.name,n)}}):this.spacesService.updateSpace(this.space).subscribe({next:n=>{this.loading=!1,n?(this.space=n,this.spaceChange.emit(["update",n])):this.spaceChange.emit(["delete",this.space]),this.layout.closeDialog()},error:n=>{this.onError(),this.layout.sendNotification("error","Edit space",this.space.name,n)}})}cantSubmit(){return this.submitted||!this.space.name||!this.space.managers.length}onError(){this.confirmDeletion=!1,this.submitted=!1,this.loading=!1}};r.\u0275fac=function(o){return new(o||r)},r.\u0275cmp=$({type:r,selectors:[["app-space-dialog"]],inputs:{space:"space"},outputs:{spaceChange:"spaceChange"},decls:62,vars:47,consts:[[1,"modal-header","align-items-center"],[1,"modal-title"],[1,"me-2",3,"icon"],["l10nTranslate",""],["animation","spin","size","sm",1,"ms-2",3,"icon"],[1,"modal-title","ms-auto"],["aria-label","Close","type","button",3,"click"],[1,"modal-body"],["type","pills",3,"justified"],[1,"my-3"],["customClass","tab-dialog form-validation",3,"selectTab"],["tabHeading",""],[1,"d-flex","col-12"],[1,"d-flex","flex-column","col-6","pe-2"],[1,"mb-3","px-0",2,"max-width","80%"],["for","name","l10nTranslate",""],["id","name","type","text","appAutofocus","","required","",3,"ngModelChange","ngModel"],["for","description","l10nTranslate",""],["id","description","type","text",1,"form-control","form-control-sm",3,"ngModelChange","ngModel"],[1,"d-flex","flex-column","align-items-start","mb-3",2,"max-width","80%"],[1,"w-100",3,"quotaChange","quota","fullWidth"],[1,"d-flex","flex-column","mb-3",2,"max-width","80%"],[1,"mb-3","px-0"],["for","switchStatus","l10nTranslate",""],[1,"d-flex","align-items-center","form-check","form-switch","cursor-pointer"],["id","switchStatus","type","checkbox","role","button",1,"form-check-input",3,"ngModelChange","ngModel"],["for","switchStatus","l10nTranslate","",1,"form-check-label","mb-0","ms-2"],[1,"text-danger","mt-2"],[1,"d-flex","flex-column","col-6"],["type","button",3,"click"],["for","editManagers","l10nTranslate","",1,"no-select-pointer"],["id","editManagers",1,"ms-1",3,"icon"],[3,"membersChange","members","searchFunction","editMode","hideInput","customPlaceholder"],["l10nTranslate","",1,"text-danger"],[1,"d-flex","d-none","d-lg-flex","mt-auto"],["customClass","tab-dialog",3,"selectTab"],[1,"col-12"],[3,"space","user","addRootFile"],[3,"membersChange","members","withPermissions","searchFunction"],[3,"membersChange","members","filterPermissions","allowedPermissions","withPermissions","editFunction","hideInput"],[1,"modal-footer"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-danger",3,"disabled"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-success"],["data-dismiss","modal","type","button","l10nTranslate","",1,"btn","btn-sm","btn-secondary","ms-auto",3,"click"],["type","button","l10nTranslate","",3,"click","disabled"],[3,"icon"],["l10nTranslate","",1,"ms-2"],["for","storage","l10nTranslate",""],["id","storage",3,"item"],[1,"fw-bold"],[1,"d-flex","flex-column","align-items-start","col-4","px-0"],["for","created","l10nTranslate",""],["id","created"],[1,"d-flex","flex-column","align-items-center","col-4","px-0"],["for","modified","l10nTranslate",""],["id","modified"],[1,"d-flex","flex-column","align-items-end","col-4","text-danger","px-0"],["for","disabled","l10nTranslate",""],["id","disabled"],["l10nTranslate","",1,"ms-2","me-1"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-danger",3,"click","disabled"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-success",3,"click"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-warning"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-warning",3,"click"]],template:function(o,i){o&1&&(s(0,"div",0)(1,"h4",1),u(2,"fa-icon",2),g(3,Tt,2,1,"span")(4,Et,2,0,"span",3),g(5,Dt,1,1,"fa-icon",4),l(),g(6,Mt,3,0,"h4",5),s(7,"button",6),f("click",function(){return i.layout.closeDialog()}),l()(),s(8,"div",7)(9,"tabset",8),u(10,"hr",9),s(11,"tab",10),f("selectTab",function(){return i.tabView=null}),w(12,Vt,3,1,"ng-template",11),s(13,"div",12)(14,"div",13)(15,"div",14)(16,"label",15),m(17," Space name "),l(),s(18,"input",16),P("ngModelChange",function(_){return V(i.space.name,_)||(i.space.name=_),_}),l()(),s(19,"div",14)(20,"label",17),m(21," Description "),l(),s(22,"input",18),P("ngModelChange",function(_){return V(i.space.description,_)||(i.space.description=_),_}),l()(),s(23,"div",19)(24,"app-storage-quota",20),P("quotaChange",function(_){return V(i.space.storageQuota,_)||(i.space.storageQuota=_),_}),l()(),g(25,Pt,4,1,"div",21),s(26,"div",22)(27,"label",23),m(28,"Space status"),l(),s(29,"div",24)(30,"input",25),P("ngModelChange",function(_){return V(i.space.enabled,_)||(i.space.enabled=_),_}),l(),s(31,"label",26),m(32),l()(),g(33,Ft,6,1,"div",27),l()(),s(34,"div",28)(35,"div",29),f("click",function(){return i.editManagers=!i.editManagers}),s(36,"label",30),m(37,"Managers"),l(),u(38,"fa-icon",31),l(),s(39,"app-user-search",32),P("membersChange",function(_){return V(i.space.managers,_)||(i.space.managers=_),_}),l(),g(40,Rt,2,0,"small",33),g(41,Lt,14,7,"div",34),l()()(),s(42,"tab",35),f("selectTab",function(){return i.tabView="roots"}),w(43,Bt,5,2,"ng-template",11),s(44,"div",36),u(45,"app-space-manage-roots",37),l()(),s(46,"tab",35),f("selectTab",function(){return i.tabView="members"}),w(47,Nt,5,2,"ng-template",11),s(48,"div",9)(49,"app-user-search",38),P("membersChange",function(_){return V(i.space.members,_)||(i.space.members=_),_}),l()()(),s(50,"tab",35),f("selectTab",function(){return i.tabView="links"}),w(51,Ot,5,2,"ng-template",11),s(52,"div",9)(53,"app-user-search",39),P("membersChange",function(_){return V(i.space.links,_)||(i.space.links=_),_}),l()()()()(),s(54,"div",40),g(55,Wt,2,1,"button",41),g(56,Ut,4,2,"button",42),g(57,qt,5,3),s(58,"button",43),f("click",function(){return i.onCancel()}),m(59,"Cancel"),l(),s(60,"button",44),f("click",function(){return i.onSubmit()}),m(61),l()()),o&2&&(a(2),p("icon",i.icons.SPACES),a(),S(i.space.id?3:4),a(2),S(i.loading?5:-1),a(),S(i.space.id?6:-1),a(),R(H("btn-close btn-close-white ",i.space.id?"ms-2":"ms-auto"," ms-2")),a(2),p("justified",!0),a(9),R(H("form-control form-control-sm ",i.space.name?"":"is-invalid")),M("ngModel",i.space.name),a(4),M("ngModel",i.space.description),a(2),M("quota",i.space.storageQuota),p("fullWidth",!0),a(),S(i.space.storageUsage?25:-1),a(5),M("ngModel",i.space.enabled),a(2),D(" ",i.space.enabled?"enabled":"disabled"," "),a(),S(i.space.enabled?-1:33),a(5),p("icon",i.icons.faPen),a(),M("members",i.space.managers),p("searchFunction",i.searchManagers.bind(i))("editMode",i.editManagers)("hideInput",!i.editManagers)("customPlaceholder","Type to search for managers to add"),a(),S(i.space.managers.length?-1:40),a(),S(i.space.id?41:-1),a(4),p("space",i.space)("user",i.user)("addRootFile",i.addRootFileEvent),a(4),M("members",i.space.members),p("withPermissions",!0)("searchFunction",i.searchMembers.bind(i)),a(4),M("members",i.space.links),p("filterPermissions",!0)("allowedPermissions",i.allowedLinkPermissions)("withPermissions",!0)("editFunction",i.openEditLinkDialog.bind(i))("hideInput",!0),a(2),S(!i.tabView&&i.space.id&&i.user.isAdmin?55:-1),a(),S(i.tabView==="links"?56:-1),a(),S(i.tabView==="roots"?57:-1),a(3),R(H("btn btn-sm ",i.confirmDeletion?"btn-danger":"btn-primary")),p("disabled",i.cantSubmit()),a(),D(" ",i.confirmDeletion?"Confirm permanent deletion of data":"Confirm"," "))},dependencies:[j,z,ot,it,tt,nt,Ee,ve,be,ye,Te,we,at,lt,st,ft,Ge,rt,gt,St,Je],encapsulation:2});let e=r;return e})();var Ht=["MainContextMenu"],Qt=["TargetContextMenu"],zt=()=>["roots","shares"],xt=(e,r)=>r.id,bt=(e,r)=>r.mid,vt=(e,r)=>r.key;function Kt(e,r){if(e&1){let t=x();s(0,"button",3),b(1,"translate"),f("click",function(){C(t);let o=c();return h(o.openSpaceDialog(!0))}),u(2,"fa-icon",7),l()}if(e&2){let t=c();p("tooltip",v(1,2,"New space",t.locale.language)),a(2),p("icon",t.icons.faPlus)}}function jt(e,r){if(e&1&&(s(0,"span",29),m(1),l()),e&2){let t=c().$implicit,n=c(2);F("font-size",n.galleryMode.textSize,"px"),a(),E(t.hTimeAgo)}}function Yt(e,r){if(e&1&&u(0,"app-user-avatar",30),e&2){let t=r.$implicit,n=c(4);p("user",t)("isMember",!0)("height",n.galleryMode.dimensions/3)("width",n.galleryMode.dimensions/3)}}function Gt(e,r){if(e&1&&(s(0,"span",26),A(1,Yt,1,4,"app-user-avatar",30,bt),l()),e&2){let t=c().$implicit;a(),k(t.managers)}}function Xt(e,r){if(e&1){let t=x();s(0,"div",21),f("click",function(){let o=C(t).$implicit,i=c(2);return h(i.onSelect(o))})("contextmenu",function(o){let i=C(t).$implicit,d=c(2);return h(d.onTargetContextMenu(o,i))})("pressup",function(o){let i=C(t).$implicit,d=c(2);return h(d.onTargetContextMenu(o,i))})("tap",function(){let o=C(t).$implicit,i=c(2);return h(i.browse(o))}),s(1,"div",22),u(2,"fa-icon",23),s(3,"span",24),g(4,jt,2,3,"span",25),l(),g(5,Gt,3,0,"span",26),l(),s(6,"div",27)(7,"span",28),m(8),l()()()}if(e&2){let t=r.$implicit,n=r.$index,o=c(2);F("height",o.galleryMode.dimensions,"px")("width",o.galleryMode.dimensions,"px"),U("disabled",!t.enabled)("selected",t.id===(o.selected==null?null:o.selected.id)),a(),_e("rowIndex",n),a(),F("min-width",o.galleryMode.image,"px")("min-height",o.galleryMode.image,"px")("font-size",o.galleryMode.faSize,"px"),p("icon",o.icons.SPACES),a(2),S(t.newly?4:-1),a(),S(t.managers.length?5:-1),a(2),F("font-size",o.galleryMode.textSize,"px"),a(),E(t.name)}}function Jt(e,r){if(e&1){let t=x();s(0,"div",12)(1,"app-virtual-scroll",18),b(2,"searchFilter"),f("contextmenu",function(o){C(t);let i=c();return h(i.onContextMenu(o))}),s(3,"div",19),A(4,Xt,9,21,"div",20,xt),l()()()}if(e&2){let t=c();a(),p("childHeight",t.galleryMode.dimensions)("childWidth",t.galleryMode.dimensions)("items",v(2,5,t.spaces,t.inputFilter.search()))("galleryMode",!0)("resizeOffset",110),a(3),k(t.scrollView==null?null:t.scrollView.viewPortItems)}}function Zt(e,r){if(e&1&&u(0,"fa-icon",37),e&2){let t=c(4);p("icon",t.sortTable.sortParam.asc?t.icons.faArrowDown:t.icons.faArrowUp)("fixedWidth",!1)}}function ei(e,r){if(e&1){let t=x();s(0,"th",36),f("click",function(){C(t);let o=c().$implicit,i=c(2);return h(i.sortBy(o.key))}),m(1),g(2,Zt,1,2,"fa-icon",37),l()}if(e&2){let t=c().$implicit,n=c(2);R(t.value.class),F("width",t.value.width,"%"),U("text-align-center",t.value.textCenter)("cursor-pointer",t.value.sortable),a(),D(" ",t.value.label," "),a(),S(n.sortTable.sortParam.column===t.key?2:-1)}}function ti(e,r){if(e&1&&g(0,ei,3,10,"th",35),e&2){let t=r.$implicit;S(t.value.show?0:-1)}}function ii(e,r){if(e&1&&(s(0,"div",40),u(1,"fa-icon",41),s(2,"div",42)(3,"span",28),m(4),l(),s(5,"span",43),m(6),l()()()),e&2){let t=c(3).$implicit,n=c(2);a(),p("icon",n.icons.SPACES)("fixedWidth",!1),a(3),E(t.name),a(2),E(t.description)}}function ni(e,r){if(e&1&&u(0,"app-user-avatar",44),e&2){let t=r.$implicit;p("user",t)("isMember",!0)}}function oi(e,r){if(e&1&&A(0,ni,1,2,"app-user-avatar",44,bt),e&2){let t=c(3).$implicit;k(t.managers)}}function ai(e,r){if(e&1&&(s(0,"span"),m(1),b(2,"joinCounts"),l()),e&2){let t=c(3).$implicit;a(),E(v(2,1,t.counts,Ce(4,zt)))}}function ri(e,r){if(e&1){let t=x();s(0,"span",47),f("click",function(){C(t);let o=c(6);return h(o.openSpaceRootsDialog())}),u(1,"fa-icon",7),m(2),l()}if(e&2){let t=c(4).$implicit,n=c(2);a(),p("icon",n.icons.faAnchor),a(),D("\xA0",t.counts.roots," ")}}function si(e,r){if(e&1){let t=x();s(0,"span",48),f("click",function(){C(t);let o=c(4).$implicit,i=c(2);return h(i.openChildShareDialog(o))}),u(1,"fa-icon",49),s(2,"span"),m(3),l()()}if(e&2){let t=c(4).$implicit,n=c(2);a(),p("icon",n.icons.SHARED),a(2),E(t.counts.shares)}}function li(e,r){if(e&1&&(g(0,ri,3,2,"span",45),g(1,si,4,2,"span",46)),e&2){let t=c(3).$implicit,n=c(2);S(t.counts!=null&&t.counts.roots?0:-1),a(),S(t.role===n.SPACE_ROLE.IS_MANAGER&&t.counts.shares?1:-1)}}function ci(e,r){if(e&1&&u(0,"app-file-permissions",50),e&2){let t=c(4).$implicit;p("permissions",t.hPerms)}}function pi(e,r){if(e&1&&g(0,ci,1,1,"app-file-permissions",50),e&2){let t=c(3).$implicit;S(t.permissions?0:-1)}}function mi(e,r){if(e&1&&m(0),e&2){let t=c(3).$implicit;D(" ",t.hTimeAgo," ")}}function di(e,r){if(e&1&&(s(0,"td"),g(1,ii,7,4,"div",40)(2,oi,2,0)(3,ai,3,5,"span")(4,li,2,2)(5,pi,1,1)(6,mi,1,1),l()),e&2){let t,n=c().$implicit,o=c().$implicit;R(fe("",n.value.class," ",n.value.newly?"prop-newly-"+o[n.value.newly]:"")),F("width",n.value.width,"%"),U("text-align-center",n.value.textCenter),a(),S((t=n.key)==="name"?1:t==="managers"?2:t==="members"?3:t==="infos"?4:t==="permissions"?5:t==="modified"?6:-1)}}function _i(e,r){if(e&1&&g(0,di,7,9,"td",39),e&2){let t=r.$implicit;S(t.value.show?0:-1)}}function ui(e,r){if(e&1){let t=x();s(0,"tr",38),f("click",function(){let o=C(t).$implicit,i=c(2);return h(i.onSelect(o))})("contextmenu",function(o){let i=C(t).$implicit,d=c(2);return h(d.onTargetContextMenu(o,i))})("pressup",function(o){let i=C(t).$implicit,d=c(2);return h(d.onTargetContextMenu(o,i))})("tap",function(){let o=C(t).$implicit,i=c(2);return h(i.browse(o))}),A(1,_i,1,1,null,null,vt),b(3,"keyvalue"),l()}if(e&2){let t=r.$implicit,n=c(2);U("disabled",!t.enabled)("selected",t.id===(n.selected==null?null:n.selected.id)),a(),k(v(3,4,n.tableHeaders,n.originalOrderKeyValue))}}function fi(e,r){if(e&1){let t=x();s(0,"table",31)(1,"thead")(2,"tr"),A(3,ti,1,1,null,null,vt),b(5,"keyvalue"),l()()(),s(6,"app-virtual-scroll",32),b(7,"searchFilter"),f("contextmenu",function(o){C(t);let i=c();return h(i.onContextMenu(o))}),s(8,"table",31)(9,"tbody",33),A(10,ui,4,7,"tr",34,xt),l()()()}if(e&2){let t=c();a(3),k(v(5,2,t.tableHeaders,t.originalOrderKeyValue)),a(3),p("bufferAmount",5)("items",v(7,5,t.spaces,t.inputFilter.search())),a(4),k(t.scrollView==null?null:t.scrollView.viewPortItems)}}function Ci(e,r){if(e&1&&(s(0,"span",51),u(1,"fa-icon",7),m(2,"New space"),l()),e&2){let t=c(2);a(),p("icon",t.icons.faPlus)}}function hi(e,r){}function gi(e,r){if(e&1){let t=x();w(0,Ci,3,1,"ng-template",15),f("execute",function(){C(t);let o=c();return h(o.openSpaceDialog(!0))}),w(1,hi,0,0,"ng-template",17)}e&2&&(a(),p("divider",!0))}function Si(e,r){if(e&1&&(s(0,"span",51),u(1,"fa-icon",7),m(2,"Refresh"),l()),e&2){let t=c();a(),p("icon",t.icons.faArrowRotateRight)}}function xi(e,r){if(e&1&&(s(0,"span",51),u(1,"fa-icon",7),m(2,"Edit space"),l()),e&2){let t=c(2);a(),p("icon",t.icons.faPen)}}function bi(e,r){if(e&1&&(s(0,"span",51),u(1,"fa-icon",7),m(2,"Edit children shares"),l()),e&2){let t=c(3);a(),p("icon",t.icons.SHARED)}}function vi(e,r){if(e&1){let t=x();w(0,bi,3,1,"ng-template",15),f("execute",function(){C(t);let o=c(2);return h(o.openChildShareDialog())})}}function yi(e,r){if(e&1){let t=x();w(0,xi,3,1,"ng-template",15),f("execute",function(){C(t);let o=c();return h(o.openSpaceDialog())}),g(1,vi,1,0,null,16)}if(e&2){let t=c();a(),S(t.selected!=null&&t.selected.counts.shares?1:-1)}}function wi(e,r){if(e&1&&(s(0,"span",51),u(1,"fa-icon",7),m(2,"Manage my anchored files"),l()),e&2){let t=c(2);a(),p("icon",t.icons.faAnchor)}}function Ti(e,r){if(e&1){let t=x();w(0,wi,3,1,"ng-template",15),f("execute",function(){C(t);let o=c();return h(o.openSpaceRootsDialog())})}}function Ei(e,r){}function Di(e,r){e&1&&w(0,Ei,0,0,"ng-template",17),e&2&&p("divider",!0)}function Mi(e,r){if(e&1&&(s(0,"span",51),u(1,"fa-icon",7),m(2,"Informations"),l()),e&2){let t=c();a(),p("icon",t.icons.faCircleInfo)}}var Kn=(()=>{let r=class r{constructor(){this.locale=y(K),this.layout=y(ee),this.SPACE_ROLE=Z,this.originalOrderKeyValue=Qe,this.TAB_MENU=He,this.icons={SPACES:I.SPACES,SHARED:I.SHARED_WITH_OTHERS,faAnchor:X,faArrowDown:Ne,faArrowUp:Re,faRotate:Pe,faArrowRotateRight:Be,faUpload:Le,faPlus:J,faPen:G,faCircleInfo:Oe},this.tableHeaders={name:{label:"Name",width:30,textCenter:!1,class:"",show:!0,sortable:!0},managers:{label:"Managers",width:10,class:"d-none d-md-table-cell",textCenter:!0,show:!0,sortable:!0},members:{label:"Members",width:20,class:"d-none d-md-table-cell",textCenter:!1,show:!0},infos:{label:"Infos",width:15,textCenter:!0,class:"d-none d-md-table-cell",show:!0},permissions:{label:"Permissions",width:10,textCenter:!0,class:"d-none d-lg-table-cell",show:!0,sortable:!0},modified:{label:"Modified",width:10,textCenter:!0,class:"d-none d-lg-table-cell",newly:"newly",show:!0,sortable:!0}},this.btnSortFields={name:"Name",managers:"Managers",permissions:"Permissions",modified:"Modified"},this.loading=!1,this.spaces=[],this.selected=null,this.canCreateSpace=!1,this.canEditSpace=!1,this.canManageRoots=!1,this.router=y(xe),this.activatedRoute=y(Se),this.spacesService=y(ie),this.store=y(ze),this.userService=y(te),this.sortSettings={default:[{prop:"name",type:"string"}],name:[{prop:"name",type:"string"}],managers:[{prop:"managers",type:"length"}],permissions:[{prop:"permissions",type:"length"}],modified:[{prop:"modified",type:"date"}]},this.sortTable=new Ze(this.constructor.name,this.sortSettings),this.loadSpaces(),this.canCreateSpace=this.userService.userHavePermission(We.SPACES_ADMIN),this.layout.setBreadcrumbIcon(I.SPACES),this.layout.setBreadcrumbNav({url:`/${ne.SPACES}/${je.SPACES}`,translating:!0,sameLink:!0}),this.activatedRoute.queryParams.subscribe(n=>this.focusOnSelect=n.select)}ngOnInit(){this.galleryMode=this.btnNavigationView.currentView()}loadSpaces(){this.loading=!0,this.onSelect(),this.spacesService.listSpaces().subscribe({next:n=>{this.sortBy(this.sortTable.sortParam.column,!1,n),this.loading=!1,this.focusOnSelect?this.focusOn(this.focusOnSelect):this.scrollView.scrollInto(-1)},error:n=>{this.spaces=[],this.loading=!1,this.layout.sendNotification("error","Spaces",n.error.message)}})}browse(n){n.enabled?this.router.navigate([ne.FILES,n.alias],{relativeTo:this.activatedRoute}).catch(console.error):this.layout.sendNotification("warning",n.name,"Space is disabled")}onSelect(n=null){n?(this.selected=n,this.canEditSpace=!!n.managers.find(o=>o.id===this.userService.user.id),this.canManageRoots=this.canEditSpace||n.havePermission(W.SHARE_INSIDE)):(this.selected=null,this.canEditSpace=!1,this.canManageRoots=!1),this.store.spaceSelection.set(this.selected)}sortBy(n,o=!0,i){this.spaces=this.sortTable.sortBy(n,o,i||this.spaces)}onContextMenu(n){n.preventDefault(),n.stopPropagation(),this.layout.openContextMenu(n,this.mainContextMenu)}onTargetContextMenu(n,o){n.preventDefault(),n.type==="contextmenu"&&n.stopPropagation(),this.onSelect(o),this.layout.openContextMenu(n,this.targetContextMenu)}openSpaceDialog(n=!1){n?this.layout.openDialog(le,"xl").content.spaceChange.pipe(L(1)).subscribe(i=>{let[d,_]=i;d==="add"&&(this.sortBy(this.sortTable.sortParam.column,!1,this.spaces.concat(_)),this.onSelect(_))}):this.selected&&this.canEditSpace&&this.spacesService.getSpace(this.selected.id).subscribe({next:o=>{this.layout.openDialog(le,"xl",{initialState:{space:o}}).content.spaceChange.pipe(L(1)).subscribe(d=>{let[_,T]=d;_==="update"?(this.selected.name=T.name,this.selected.alias=T.alias,this.selected.description=T.description,this.selected.counts=pe(ce({},T.counts),{shares:this.selected.counts.shares}),this.selected.modifiedAt=T.modifiedAt,this.selected.enabled=T.enabled,this.selected.managers=[...T.managers]):_==="delete"&&(this.onSelect(),this.sortBy(this.sortTable.sortParam.column,!1,this.spaces.filter(yt=>yt.id!==T.id)))})},error:o=>this.layout.sendNotification("error","Edit space",this.selected.name,o)})}openSpaceRootsDialog(){setTimeout(()=>{this.layout.openDialog(ht,"md",{initialState:{space:this.selected,user:this.userService.user}})},this.selected?0:100)}openChildShareDialog(n){n&&this.onSelect(n),this.layout.openDialog(Ct,null,{initialState:{space:this.selected}}).content.sharesCountEvent.subscribe(i=>this.selected.counts.shares=i)}focusOn(n){let o=this.spaces.find(i=>i.name===n);o&&(setTimeout(()=>this.scrollView.scrollInto(o),100),this.onSelect(o))}};r.\u0275fac=function(o){return new(o||r)},r.\u0275cmp=$({type:r,selectors:[["app-spaces"]],viewQuery:function(o,i){if(o&1&&(B(ae,5),B(oe,7),B(re,7),B(Ht,7),B(Qt,7)),o&2){let d;N(d=O())&&(i.scrollView=d.first),N(d=O())&&(i.inputFilter=d.first),N(d=O())&&(i.btnNavigationView=d.first),N(d=O())&&(i.mainContextMenu=d.first),N(d=O())&&(i.targetContextMenu=d.first)}},decls:34,vars:37,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"],["container","body","type","button",1,"btn","btn-sm","btn-secondary","me-1",3,"tooltip"],["container","body","type","button",1,"btn","btn-sm","btn-secondary","me-1",3,"click","disabled","tooltip"],[3,"icon"],[1,"ms-auto"],[1,"btn-group","btn-group-sm","me-1"],[1,"d-none","d-sm-block"],[3,"sortBy","switchView","sortParams","sortFields"],[1,"app-thumbs"],[1,"app-foot-menu"],[1,"mx-auto"],["contextMenuItem","",3,"execute"],["contextMenuItem",""],["contextMenuItem","",3,"divider"],[3,"contextmenu","childHeight","childWidth","items","galleryMode","resizeOffset"],["tabindex","-1",1,"row","g-0"],[1,"card",3,"disabled","selected","height","width"],[1,"card",3,"click","contextmenu","pressup","tap"],[1,"card-body"],[1,"circle-primary-icon",3,"icon"],[1,"label-top-right"],["l10nTranslate","",1,"badge","rounded-pill","bg-warning",3,"font-size"],[1,"label-bottom-left"],[1,"card-footer","text-center","text-truncate","p-1"],["draggable","false",1,"no-pointer-events"],["l10nTranslate","",1,"badge","rounded-pill","bg-warning"],[3,"user","isMember","height","width"],[1,"app-table"],[3,"contextmenu","bufferAmount","items"],["tabindex","-1"],[3,"disabled","selected"],["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"],[1,"circle-primary-icon",3,"icon","fixedWidth"],[1,"d-flex","flex-column","text-truncate"],["draggable","false",1,"no-pointer-events","text-muted","fs-xxxs"],[3,"user","isMember"],[1,"badge","rounded-pill","bg-primary","cursor-pointer","me-1"],[1,"badge","rounded-pill","bg-purple","cursor-pointer","me-1"],[1,"badge","rounded-pill","bg-primary","cursor-pointer","me-1",3,"click"],[1,"badge","rounded-pill","bg-purple","cursor-pointer","me-1",3,"click"],[1,"me-1",3,"icon"],["tooltipPlacement","auto",3,"permissions"],["l10nTranslate",""]],template:function(o,i){if(o&1){let d=x();s(0,"div",2)(1,"button",3),b(2,"translate"),f("click",function(){return C(d),h(i.loadSpaces())}),u(3,"fa-icon",4),l(),g(4,Kt,3,5,"button",5),s(5,"button",6),b(6,"translate"),f("click",function(){return C(d),h(i.openSpaceDialog())}),u(7,"fa-icon",7),l(),s(8,"button",6),b(9,"translate"),f("click",function(){return C(d),h(i.openChildShareDialog())}),u(10,"fa-icon",7),l(),s(11,"button",6),b(12,"translate"),f("click",function(){return C(d),h(i.openSpaceRootsDialog())}),u(13,"fa-icon",7),l(),s(14,"div",8)(15,"div",9),u(16,"app-input-filter",10),l(),s(17,"app-navigation-view",11),f("sortBy",function(T){return C(d),h(i.sortBy(T))})("switchView",function(T){return C(d),h(i.galleryMode=T)}),l()()(),g(18,Jt,6,8,"div",12)(19,fi,12,8),s(20,"div",13)(21,"span",14),m(22),b(23,"translate"),l()(),s(24,"context-menu",null,0),g(26,gi,2,1),w(27,Si,3,1,"ng-template",15),f("execute",function(){return C(d),h(i.loadSpaces())}),l(),s(28,"context-menu",null,1),g(30,yi,2,1),g(31,Ti,1,0,null,16),g(32,Di,1,1,null,17),w(33,Mi,3,1,"ng-template",15),f("execute",function(){return C(d),h(i.layout.showRSideBarTab(i.TAB_MENU.SELECTION))}),l()}o&2&&(a(),p("tooltip",v(2,22,"Refresh",i.locale.language)),a(2),p("icon",i.icons.faArrowRotateRight)("animation",i.loading?"spin":null),a(),S(i.canCreateSpace?4:-1),a(),p("disabled",!i.canEditSpace)("tooltip",v(6,25,"Edit space",i.locale.language)),a(2),p("icon",i.icons.faPen),a(),p("disabled",!i.canEditSpace||!(i.selected!=null&&i.selected.counts.shares))("tooltip",v(9,28,"Edit children shares",i.locale.language)),a(2),p("icon",i.icons.SHARED),a(),p("disabled",!i.canManageRoots)("tooltip",v(12,31,"Manage my anchored files",i.locale.language)),a(2),p("icon",i.icons.faAnchor),a(4),p("sortParams",i.sortTable.sortParam)("sortFields",i.btnSortFields),a(),S(i.galleryMode!=null&&i.galleryMode.enabled?18:19),a(4),ue("",i.spaces.length," ",v(23,34,"spaces",i.locale.language)),a(4),S(i.canCreateSpace?26:-1),a(4),S(i.canEditSpace?30:-1),a(),S(i.canManageRoots?31:-1),a(),S(i.canEditSpace||i.canManageRoots?32:-1))},dependencies:[j,z,et,ae,Ve,Me,qe,$e,Ue,re,oe,dt,ge,ct,De,Xe],encapsulation:2});let e=r;return e})();export{Kn as SpacesComponent};
1
+ import{b as ft,c as ht}from"./chunk-XCBLEI2E.js";import{A as ut,C as Ct,z as _t}from"./chunk-5M4YJZUB.js";import{a as dt}from"./chunk-EI4PVI2W.js";import{a as re}from"./chunk-WINILGQN.js";import{a as lt}from"./chunk-YD74UCFG.js";import{d as Xe}from"./chunk-O3ANXCPE.js";import"./chunk-JXZCNFW7.js";import{a as tt}from"./chunk-GCUWGVYT.js";import{a as ct}from"./chunk-QFOMEU3T.js";import"./chunk-X7MFVDBY.js";import{a as Ze,b as it,c as nt,d as ot,e as at,g as rt,h as st}from"./chunk-XPIYOZBX.js";import{a as oe,b as ae,c as Je,d as et}from"./chunk-ET6QDNNM.js";import{e as mt}from"./chunk-CN27VAGB.js";import{f as pt,g as ie}from"./chunk-DNMO47SY.js";import"./chunk-G3FOG2QB.js";import"./chunk-NW3CTYUW.js";import{m as Ye,p as te}from"./chunk-IEUANP3Q.js";import{B as Y,Jb as je,Kb as I,Lb as ne,Na as He,P as We,Ub as Ge,_a as Qe,nb as ze,ob as W,ra as Ue,rb as Z,sa as $e,ta as qe,v as Me,w as Ve,zb as ee}from"./chunk-2TZUZMCM.js";import"./chunk-22EANI6R.js";import{b as Se,d as xe}from"./chunk-RKNTQYMU.js";import{Ad as K,Cb as f,Eb as c,Gc as ge,Gd as De,Hd as j,Hf as Le,Ib as B,Id as Pe,Jb as N,Jf as J,Kb as O,L,Lf as Be,Ma as a,Mb as F,Nb as U,Ob as R,Pb as m,Qb as E,Rb as D,Sb as ue,Tb as M,Ub as V,Ue as Fe,Vb as P,Xa as $,Xb as H,Xe as Re,Xf as Ne,Yb as fe,_a as q,_b as Ce,_c as z,ab as w,ad as be,bb as de,bd as ve,bg as Oe,dc as b,ec as Q,ef as Ie,f as me,fc as v,fd as ye,gc as he,gg as Ke,ha as y,ib as _e,jb as g,kb as S,kd as we,ma as C,na as h,nb as A,ob as k,pb as p,qb as s,rb as l,rf as G,sb as u,se as Ae,ud as Te,ve as ke,yd as Ee,yf as X,zb as x}from"./chunk-6IRL673W.js";import{a as ce,b as pe}from"./chunk-RTRJ3KFH.js";var gt=(()=>{let r=class r{transform(n,o,i){if(typeof o>"u"||typeof o=="number"&&typeof i>"u")throw new Error("TimeAddPipe: missing required arguments");return(0,Y.default)(n).add(o,i)}};r.\u0275fac=function(o){return new(o||r)},r.\u0275pipe=q({name:"amAdd",type:r,pure:!0});let e=r;return e})();var St=(()=>{let r=class r{transform(n,o){if(!o)throw new Error("TimeDurationPipe: missing required time unit argument");return Y.default.duration({[o]:n}).humanize()}};r.\u0275fac=function(o){return new(o||r)},r.\u0275pipe=q({name:"amDuration",type:r,pure:!1});let e=r;return e})();function Tt(e,r){if(e&1&&(s(0,"span"),m(1),l()),e&2){let t=c();a(),E(t.space.name)}}function Et(e,r){e&1&&(s(0,"span",3),m(1,"Create a new space"),l())}function Dt(e,r){if(e&1&&u(0,"fa-icon",4),e&2){let t=c();p("icon",t.icons.faSpinner)}}function Mt(e,r){e&1&&(s(0,"h4",5)(1,"span",3),m(2,"Edit space"),l()())}function Vt(e,r){if(e&1&&(u(0,"fa-icon",45),s(1,"span",46),m(2,"Settings"),l()),e&2){let t=c();p("icon",t.icons.faCog)}}function Pt(e,r){if(e&1&&(s(0,"div",21)(1,"label",47),m(2,"Storage Usage"),l(),u(3,"app-storage-usage",48),l()),e&2){let t=c();a(3),p("item",t.space)}}function At(e,r){if(e&1&&(s(0,"span"),m(1),b(2,"amAdd"),b(3,"amTimeAgo"),l()),e&2){let t=c(2);a(),D("\xA0",v(3,5,he(2,1,t.space.disabledAt,t.SPACE_MAX_DISABLED_DAYS,"days"),!0))}}function kt(e,r){if(e&1&&(s(0,"span"),m(1),b(2,"amDuration"),l()),e&2){let t=c(2);a(),D("\xA0",v(2,1,t.SPACE_MAX_DISABLED_DAYS,"days"))}}function Ft(e,r){if(e&1&&(s(0,"div",27)(1,"span",3),m(2,"Space and data will be deleted in"),l(),s(3,"span",49),g(4,At,4,8,"span")(5,kt,3,4,"span"),l()()),e&2){let t=c();a(4),S(t.space.disabledAt?4:5)}}function Rt(e,r){e&1&&(s(0,"small",33),m(1,"At least one manager is required"),l())}function It(e,r){if(e&1&&(s(0,"div",56)(1,"label",57),m(2,"Deactivation date"),l(),s(3,"div",58),m(4),b(5,"amDateFormat"),l()()),e&2){let t=c(2);a(4),E(Q(5,1,t.space.disabledAt))}}function Lt(e,r){if(e&1&&(s(0,"div",34)(1,"div",50)(2,"label",51),m(3,"Creation date"),l(),s(4,"div",52),m(5),b(6,"amDateFormat"),l()(),s(7,"div",53)(8,"label",54),m(9,"Modification date"),l(),s(10,"div",55),m(11),b(12,"amDateFormat"),l()(),g(13,It,6,3,"div",56),l()),e&2){let t=c();a(5),E(Q(6,3,t.space.createdAt)),a(6),E(Q(12,5,t.space.modifiedAt)),a(2),S(t.space.disabledAt&&!t.space.enabled?13:-1)}}function Bt(e,r){if(e&1&&(u(0,"fa-icon",45),s(1,"span",59),m(2,"Files"),l(),s(3,"span"),m(4),l()),e&2){let t=c();p("icon",t.icons.faAnchor),a(4),D("(",(t.space.roots==null?null:t.space.roots.length)||0,")")}}function Nt(e,r){if(e&1&&(u(0,"fa-icon",45),s(1,"span",59),m(2,"Members"),l(),s(3,"span"),m(4),l()),e&2){let t=c();p("icon",t.icons.faUsers),a(4),D("(",t.space.members.length,")")}}function Ot(e,r){if(e&1&&(u(0,"fa-icon",45),s(1,"span",59),m(2,"Links"),l(),s(3,"span"),m(4),l()),e&2){let t=c();p("icon",t.icons.LINKS),a(4),D("(",t.space.links.length,")")}}function Wt(e,r){if(e&1){let t=x();s(0,"button",60),f("click",function(){C(t);let o=c();return h(o.confirmDeletion=!0)}),m(1," Remove "),l()}if(e&2){let t=c();p("disabled",t.confirmDeletion)}}function Ut(e,r){if(e&1){let t=x();s(0,"button",61),f("click",function(){C(t);let o=c();return h(o.openCreateLinkDialog())}),u(1,"fa-icon",45)(2,"fa-icon",45),m(3," Link "),l()}if(e&2){let t=c();a(),p("icon",t.icons.faPlus),a(),p("icon",t.icons.LINKS)}}function $t(e,r){if(e&1){let t=x();s(0,"button",63),f("click",function(){C(t);let o=c(2);return h(o.openAdminRootDialog())}),u(1,"fa-icon",45)(2,"fa-icon",45),m(3," External location "),l()}if(e&2){let t=c(2);a(),p("icon",t.icons.faPlus),a(),p("icon",t.icons.faUserShield)}}function qt(e,r){if(e&1){let t=x();s(0,"button",61),f("click",function(){C(t);let o=c();return h(o.openSelectRootDialog())}),u(1,"fa-icon",45)(2,"fa-icon",45),m(3," File "),l(),g(4,$t,4,2,"button",62)}if(e&2){let t=c();a(),p("icon",t.icons.faPlus),a(),p("icon",t.icons.faAnchor),a(2),S(t.user.isAdmin?4:-1)}}var le=(()=>{let r=class r{constructor(){this.space=new pt({id:0,name:"",createdAt:new Date,enabled:!0,storageUsage:0,storageQuota:null}),this.spaceChange=new de,this.locale=y(K),this.layout=y(ee),this.icons={SPACES:I.SPACES,LINKS:I.LINKS,faPen:G,faAnchor:X,faUserShield:ke,faPlus:J,faSpinner:Ie,faCog:Fe,faUsers:Ae},this.SPACE_MAX_DISABLED_DAYS=30,this.addRootFileEvent=new me,this.allowedLinkPermissions=[W.ADD,W.DELETE,W.MODIFY],this.editManagers=!1,this.confirmDeletion=!1,this.loading=!1,this.submitted=!1,this.userService=y(te),this.user=this.userService.user,this.spacesService=y(ie),this.linksService=y(mt)}ngOnInit(){this.space.id||this.space.managers.unshift(Ge(this.user,Z.IS_MANAGER))}searchManagers(n){let o={search:n,ignoreUserIds:[...this.space.managers.map(i=>i.id),...this.space.members.filter(i=>i.isUser).map(i=>i.id)],onlyUsers:!0};return this.userService.searchMembers(o)}searchMembers(n){let o={search:n,ignoreUserIds:[...this.space.managers.map(i=>i.id),...this.space.members.filter(i=>i.isUser).map(i=>i.id)],ignoreGroupIds:this.space.members.filter(i=>i.isGroup).map(i=>i.id)};return this.userService.searchMembers(o)}openSelectRootDialog(){this.layout.openDialog(_t,"xl",{initialState:{currentRoots:this.space.roots.filter(o=>o.owner.id===this.user.id)}}).content.submitEvent.pipe(L(1)).subscribe(o=>this.addRootFileEvent.next(o))}openAdminRootDialog(){this.layout.openDialog(ut,null,{initialState:{currentRoots:this.space.roots.filter(o=>o.externalPath)}}).content.submitEvent.pipe(L(1)).subscribe(o=>this.addRootFileEvent.next(o))}openEditLinkDialog(n){this.linksService.editLinkDialog(n,this.space,Ke.SPACE)}openCreateLinkDialog(){this.linksService.createLinkDialog(this.space)}onCancel(){this.confirmDeletion?this.confirmDeletion=!1:this.layout.closeDialog()}onSubmit(){this.loading=!0,this.submitted=!0,this.confirmDeletion?(this.space.id===0&&this.layout.closeDialog(),this.spacesService.deleteSpace(this.space.id,{deleteNow:!0}).subscribe({next:()=>{this.loading=!1,this.spaceChange.emit(["delete",this.space]),this.layout.closeDialog()},error:n=>{this.onError(),this.layout.sendNotification("error","Delete space",this.space.name,n)}})):this.space.id===0?this.spacesService.createSpace(this.space).subscribe({next:n=>{this.loading=!1,this.space=n,this.spaceChange.emit(["add",n]),this.layout.closeDialog()},error:n=>{this.onError(),this.layout.sendNotification("error","Create space",this.space.name,n)}}):this.spacesService.updateSpace(this.space).subscribe({next:n=>{this.loading=!1,n?(this.space=n,this.spaceChange.emit(["update",n])):this.spaceChange.emit(["delete",this.space]),this.layout.closeDialog()},error:n=>{this.onError(),this.layout.sendNotification("error","Edit space",this.space.name,n)}})}cantSubmit(){return this.submitted||!this.space.name||!this.space.managers.length}onError(){this.confirmDeletion=!1,this.submitted=!1,this.loading=!1}};r.\u0275fac=function(o){return new(o||r)},r.\u0275cmp=$({type:r,selectors:[["app-space-dialog"]],inputs:{space:"space"},outputs:{spaceChange:"spaceChange"},decls:62,vars:47,consts:[[1,"modal-header","align-items-center"],[1,"modal-title"],[1,"me-2",3,"icon"],["l10nTranslate",""],["animation","spin","size","sm",1,"ms-2",3,"icon"],[1,"modal-title","ms-auto"],["aria-label","Close","type","button",3,"click"],[1,"modal-body"],["type","pills",3,"justified"],[1,"my-3"],["customClass","tab-dialog form-validation",3,"selectTab"],["tabHeading",""],[1,"d-flex","col-12"],[1,"d-flex","flex-column","col-6","pe-2"],[1,"mb-3","px-0",2,"max-width","80%"],["for","name","l10nTranslate",""],["id","name","type","text","appAutofocus","","required","",3,"ngModelChange","ngModel"],["for","description","l10nTranslate",""],["id","description","type","text",1,"form-control","form-control-sm",3,"ngModelChange","ngModel"],[1,"d-flex","flex-column","align-items-start","mb-3",2,"max-width","80%"],[1,"w-100",3,"quotaChange","quota","fullWidth"],[1,"d-flex","flex-column","mb-3",2,"max-width","80%"],[1,"mb-3","px-0"],["for","switchStatus","l10nTranslate",""],[1,"d-flex","align-items-center","form-check","form-switch","cursor-pointer"],["id","switchStatus","type","checkbox","role","button",1,"form-check-input",3,"ngModelChange","ngModel"],["for","switchStatus","l10nTranslate","",1,"form-check-label","mb-0","ms-2"],[1,"text-danger","mt-2"],[1,"d-flex","flex-column","col-6"],["type","button",3,"click"],["for","editManagers","l10nTranslate","",1,"no-select-pointer"],["id","editManagers",1,"ms-1",3,"icon"],[3,"membersChange","members","searchFunction","editMode","hideInput","customPlaceholder"],["l10nTranslate","",1,"text-danger"],[1,"d-flex","d-none","d-lg-flex","mt-auto"],["customClass","tab-dialog",3,"selectTab"],[1,"col-12"],[3,"space","user","addRootFile"],[3,"membersChange","members","withPermissions","searchFunction"],[3,"membersChange","members","filterPermissions","allowedPermissions","withPermissions","editFunction","hideInput"],[1,"modal-footer"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-danger",3,"disabled"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-success"],["data-dismiss","modal","type","button","l10nTranslate","",1,"btn","btn-sm","btn-secondary","ms-auto",3,"click"],["type","button","l10nTranslate","",3,"click","disabled"],[3,"icon"],["l10nTranslate","",1,"ms-2"],["for","storage","l10nTranslate",""],["id","storage",3,"item"],[1,"fw-bold"],[1,"d-flex","flex-column","align-items-start","col-4","px-0"],["for","created","l10nTranslate",""],["id","created"],[1,"d-flex","flex-column","align-items-center","col-4","px-0"],["for","modified","l10nTranslate",""],["id","modified"],[1,"d-flex","flex-column","align-items-end","col-4","text-danger","px-0"],["for","disabled","l10nTranslate",""],["id","disabled"],["l10nTranslate","",1,"ms-2","me-1"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-danger",3,"click","disabled"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-success",3,"click"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-warning"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-warning",3,"click"]],template:function(o,i){o&1&&(s(0,"div",0)(1,"h4",1),u(2,"fa-icon",2),g(3,Tt,2,1,"span")(4,Et,2,0,"span",3),g(5,Dt,1,1,"fa-icon",4),l(),g(6,Mt,3,0,"h4",5),s(7,"button",6),f("click",function(){return i.layout.closeDialog()}),l()(),s(8,"div",7)(9,"tabset",8),u(10,"hr",9),s(11,"tab",10),f("selectTab",function(){return i.tabView=null}),w(12,Vt,3,1,"ng-template",11),s(13,"div",12)(14,"div",13)(15,"div",14)(16,"label",15),m(17," Space name "),l(),s(18,"input",16),P("ngModelChange",function(_){return V(i.space.name,_)||(i.space.name=_),_}),l()(),s(19,"div",14)(20,"label",17),m(21," Description "),l(),s(22,"input",18),P("ngModelChange",function(_){return V(i.space.description,_)||(i.space.description=_),_}),l()(),s(23,"div",19)(24,"app-storage-quota",20),P("quotaChange",function(_){return V(i.space.storageQuota,_)||(i.space.storageQuota=_),_}),l()(),g(25,Pt,4,1,"div",21),s(26,"div",22)(27,"label",23),m(28,"Space status"),l(),s(29,"div",24)(30,"input",25),P("ngModelChange",function(_){return V(i.space.enabled,_)||(i.space.enabled=_),_}),l(),s(31,"label",26),m(32),l()(),g(33,Ft,6,1,"div",27),l()(),s(34,"div",28)(35,"div",29),f("click",function(){return i.editManagers=!i.editManagers}),s(36,"label",30),m(37,"Managers"),l(),u(38,"fa-icon",31),l(),s(39,"app-user-search",32),P("membersChange",function(_){return V(i.space.managers,_)||(i.space.managers=_),_}),l(),g(40,Rt,2,0,"small",33),g(41,Lt,14,7,"div",34),l()()(),s(42,"tab",35),f("selectTab",function(){return i.tabView="roots"}),w(43,Bt,5,2,"ng-template",11),s(44,"div",36),u(45,"app-space-manage-roots",37),l()(),s(46,"tab",35),f("selectTab",function(){return i.tabView="members"}),w(47,Nt,5,2,"ng-template",11),s(48,"div",9)(49,"app-user-search",38),P("membersChange",function(_){return V(i.space.members,_)||(i.space.members=_),_}),l()()(),s(50,"tab",35),f("selectTab",function(){return i.tabView="links"}),w(51,Ot,5,2,"ng-template",11),s(52,"div",9)(53,"app-user-search",39),P("membersChange",function(_){return V(i.space.links,_)||(i.space.links=_),_}),l()()()()(),s(54,"div",40),g(55,Wt,2,1,"button",41),g(56,Ut,4,2,"button",42),g(57,qt,5,3),s(58,"button",43),f("click",function(){return i.onCancel()}),m(59,"Cancel"),l(),s(60,"button",44),f("click",function(){return i.onSubmit()}),m(61),l()()),o&2&&(a(2),p("icon",i.icons.SPACES),a(),S(i.space.id?3:4),a(2),S(i.loading?5:-1),a(),S(i.space.id?6:-1),a(),R(H("btn-close btn-close-white ",i.space.id?"ms-2":"ms-auto"," ms-2")),a(2),p("justified",!0),a(9),R(H("form-control form-control-sm ",i.space.name?"":"is-invalid")),M("ngModel",i.space.name),a(4),M("ngModel",i.space.description),a(2),M("quota",i.space.storageQuota),p("fullWidth",!0),a(),S(i.space.storageUsage?25:-1),a(5),M("ngModel",i.space.enabled),a(2),D(" ",i.space.enabled?"enabled":"disabled"," "),a(),S(i.space.enabled?-1:33),a(5),p("icon",i.icons.faPen),a(),M("members",i.space.managers),p("searchFunction",i.searchManagers.bind(i))("editMode",i.editManagers)("hideInput",!i.editManagers)("customPlaceholder","Type to search for managers to add"),a(),S(i.space.managers.length?-1:40),a(),S(i.space.id?41:-1),a(4),p("space",i.space)("user",i.user)("addRootFile",i.addRootFileEvent),a(4),M("members",i.space.members),p("withPermissions",!0)("searchFunction",i.searchMembers.bind(i)),a(4),M("members",i.space.links),p("filterPermissions",!0)("allowedPermissions",i.allowedLinkPermissions)("withPermissions",!0)("editFunction",i.openEditLinkDialog.bind(i))("hideInput",!0),a(2),S(!i.tabView&&i.space.id&&i.user.isAdmin?55:-1),a(),S(i.tabView==="links"?56:-1),a(),S(i.tabView==="roots"?57:-1),a(3),R(H("btn btn-sm ",i.confirmDeletion?"btn-danger":"btn-primary")),p("disabled",i.cantSubmit()),a(),D(" ",i.confirmDeletion?"Confirm permanent deletion of data":"Confirm"," "))},dependencies:[j,z,at,nt,it,ot,Ee,ve,be,ye,Te,we,Ye,lt,st,ft,Xe,rt,gt,St,Ze],encapsulation:2});let e=r;return e})();var Ht=["MainContextMenu"],Qt=["TargetContextMenu"],zt=()=>["roots","shares"],xt=(e,r)=>r.id,bt=(e,r)=>r.mid,vt=(e,r)=>r.key;function Kt(e,r){if(e&1){let t=x();s(0,"button",3),b(1,"translate"),f("click",function(){C(t);let o=c();return h(o.openSpaceDialog(!0))}),u(2,"fa-icon",7),l()}if(e&2){let t=c();p("tooltip",v(1,2,"New space",t.locale.language)),a(2),p("icon",t.icons.faPlus)}}function jt(e,r){if(e&1&&(s(0,"span",29),m(1),l()),e&2){let t=c().$implicit,n=c(2);F("font-size",n.galleryMode.textSize,"px"),a(),E(t.hTimeAgo)}}function Yt(e,r){if(e&1&&u(0,"app-user-avatar",30),e&2){let t=r.$implicit,n=c(4);p("user",t)("isMember",!0)("height",n.galleryMode.dimensions/3)("width",n.galleryMode.dimensions/3)}}function Gt(e,r){if(e&1&&(s(0,"span",26),A(1,Yt,1,4,"app-user-avatar",30,bt),l()),e&2){let t=c().$implicit;a(),k(t.managers)}}function Xt(e,r){if(e&1){let t=x();s(0,"div",21),f("click",function(){let o=C(t).$implicit,i=c(2);return h(i.onSelect(o))})("contextmenu",function(o){let i=C(t).$implicit,d=c(2);return h(d.onTargetContextMenu(o,i))})("pressup",function(o){let i=C(t).$implicit,d=c(2);return h(d.onTargetContextMenu(o,i))})("tap",function(){let o=C(t).$implicit,i=c(2);return h(i.browse(o))}),s(1,"div",22),u(2,"fa-icon",23),s(3,"span",24),g(4,jt,2,3,"span",25),l(),g(5,Gt,3,0,"span",26),l(),s(6,"div",27)(7,"span",28),m(8),l()()()}if(e&2){let t=r.$implicit,n=r.$index,o=c(2);F("height",o.galleryMode.dimensions,"px")("width",o.galleryMode.dimensions,"px"),U("disabled",!t.enabled)("selected",t.id===(o.selected==null?null:o.selected.id)),a(),_e("rowIndex",n),a(),F("min-width",o.galleryMode.image,"px")("min-height",o.galleryMode.image,"px")("font-size",o.galleryMode.faSize,"px"),p("icon",o.icons.SPACES),a(2),S(t.newly?4:-1),a(),S(t.managers.length?5:-1),a(2),F("font-size",o.galleryMode.textSize,"px"),a(),E(t.name)}}function Jt(e,r){if(e&1){let t=x();s(0,"div",12)(1,"app-virtual-scroll",18),b(2,"searchFilter"),f("contextmenu",function(o){C(t);let i=c();return h(i.onContextMenu(o))}),s(3,"div",19),A(4,Xt,9,21,"div",20,xt),l()()()}if(e&2){let t=c();a(),p("childHeight",t.galleryMode.dimensions)("childWidth",t.galleryMode.dimensions)("items",v(2,5,t.spaces,t.inputFilter.search()))("galleryMode",!0)("resizeOffset",110),a(3),k(t.scrollView==null?null:t.scrollView.viewPortItems)}}function Zt(e,r){if(e&1&&u(0,"fa-icon",37),e&2){let t=c(4);p("icon",t.sortTable.sortParam.asc?t.icons.faArrowDown:t.icons.faArrowUp)("fixedWidth",!1)}}function ei(e,r){if(e&1){let t=x();s(0,"th",36),f("click",function(){C(t);let o=c().$implicit,i=c(2);return h(i.sortBy(o.key))}),m(1),g(2,Zt,1,2,"fa-icon",37),l()}if(e&2){let t=c().$implicit,n=c(2);R(t.value.class),F("width",t.value.width,"%"),U("text-align-center",t.value.textCenter)("cursor-pointer",t.value.sortable),a(),D(" ",t.value.label," "),a(),S(n.sortTable.sortParam.column===t.key?2:-1)}}function ti(e,r){if(e&1&&g(0,ei,3,10,"th",35),e&2){let t=r.$implicit;S(t.value.show?0:-1)}}function ii(e,r){if(e&1&&(s(0,"div",40),u(1,"fa-icon",41),s(2,"div",42)(3,"span",28),m(4),l(),s(5,"span",43),m(6),l()()()),e&2){let t=c(3).$implicit,n=c(2);a(),p("icon",n.icons.SPACES)("fixedWidth",!1),a(3),E(t.name),a(2),E(t.description)}}function ni(e,r){if(e&1&&u(0,"app-user-avatar",44),e&2){let t=r.$implicit;p("user",t)("isMember",!0)}}function oi(e,r){if(e&1&&A(0,ni,1,2,"app-user-avatar",44,bt),e&2){let t=c(3).$implicit;k(t.managers)}}function ai(e,r){if(e&1&&(s(0,"span"),m(1),b(2,"joinCounts"),l()),e&2){let t=c(3).$implicit;a(),E(v(2,1,t.counts,Ce(4,zt)))}}function ri(e,r){if(e&1){let t=x();s(0,"span",47),f("click",function(){C(t);let o=c(6);return h(o.openSpaceRootsDialog())}),u(1,"fa-icon",7),m(2),l()}if(e&2){let t=c(4).$implicit,n=c(2);a(),p("icon",n.icons.faAnchor),a(),D("\xA0",t.counts.roots," ")}}function si(e,r){if(e&1){let t=x();s(0,"span",48),f("click",function(){C(t);let o=c(4).$implicit,i=c(2);return h(i.openChildShareDialog(o))}),u(1,"fa-icon",49),s(2,"span"),m(3),l()()}if(e&2){let t=c(4).$implicit,n=c(2);a(),p("icon",n.icons.SHARED),a(2),E(t.counts.shares)}}function li(e,r){if(e&1&&(g(0,ri,3,2,"span",45),g(1,si,4,2,"span",46)),e&2){let t=c(3).$implicit,n=c(2);S(t.counts!=null&&t.counts.roots?0:-1),a(),S(t.role===n.SPACE_ROLE.IS_MANAGER&&t.counts.shares?1:-1)}}function ci(e,r){if(e&1&&u(0,"app-file-permissions",50),e&2){let t=c(4).$implicit;p("permissions",t.hPerms)}}function pi(e,r){if(e&1&&g(0,ci,1,1,"app-file-permissions",50),e&2){let t=c(3).$implicit;S(t.permissions?0:-1)}}function mi(e,r){if(e&1&&m(0),e&2){let t=c(3).$implicit;D(" ",t.hTimeAgo," ")}}function di(e,r){if(e&1&&(s(0,"td"),g(1,ii,7,4,"div",40)(2,oi,2,0)(3,ai,3,5,"span")(4,li,2,2)(5,pi,1,1)(6,mi,1,1),l()),e&2){let t,n=c().$implicit,o=c().$implicit;R(fe("",n.value.class," ",n.value.newly?"prop-newly-"+o[n.value.newly]:"")),F("width",n.value.width,"%"),U("text-align-center",n.value.textCenter),a(),S((t=n.key)==="name"?1:t==="managers"?2:t==="members"?3:t==="infos"?4:t==="permissions"?5:t==="modified"?6:-1)}}function _i(e,r){if(e&1&&g(0,di,7,9,"td",39),e&2){let t=r.$implicit;S(t.value.show?0:-1)}}function ui(e,r){if(e&1){let t=x();s(0,"tr",38),f("click",function(){let o=C(t).$implicit,i=c(2);return h(i.onSelect(o))})("contextmenu",function(o){let i=C(t).$implicit,d=c(2);return h(d.onTargetContextMenu(o,i))})("pressup",function(o){let i=C(t).$implicit,d=c(2);return h(d.onTargetContextMenu(o,i))})("tap",function(){let o=C(t).$implicit,i=c(2);return h(i.browse(o))}),A(1,_i,1,1,null,null,vt),b(3,"keyvalue"),l()}if(e&2){let t=r.$implicit,n=c(2);U("disabled",!t.enabled)("selected",t.id===(n.selected==null?null:n.selected.id)),a(),k(v(3,4,n.tableHeaders,n.originalOrderKeyValue))}}function fi(e,r){if(e&1){let t=x();s(0,"table",31)(1,"thead")(2,"tr"),A(3,ti,1,1,null,null,vt),b(5,"keyvalue"),l()()(),s(6,"app-virtual-scroll",32),b(7,"searchFilter"),f("contextmenu",function(o){C(t);let i=c();return h(i.onContextMenu(o))}),s(8,"table",31)(9,"tbody",33),A(10,ui,4,7,"tr",34,xt),l()()()}if(e&2){let t=c();a(3),k(v(5,2,t.tableHeaders,t.originalOrderKeyValue)),a(3),p("bufferAmount",5)("items",v(7,5,t.spaces,t.inputFilter.search())),a(4),k(t.scrollView==null?null:t.scrollView.viewPortItems)}}function Ci(e,r){if(e&1&&(s(0,"span",51),u(1,"fa-icon",7),m(2,"New space"),l()),e&2){let t=c(2);a(),p("icon",t.icons.faPlus)}}function hi(e,r){}function gi(e,r){if(e&1){let t=x();w(0,Ci,3,1,"ng-template",15),f("execute",function(){C(t);let o=c();return h(o.openSpaceDialog(!0))}),w(1,hi,0,0,"ng-template",17)}e&2&&(a(),p("divider",!0))}function Si(e,r){if(e&1&&(s(0,"span",51),u(1,"fa-icon",7),m(2,"Refresh"),l()),e&2){let t=c();a(),p("icon",t.icons.faArrowRotateRight)}}function xi(e,r){if(e&1&&(s(0,"span",51),u(1,"fa-icon",7),m(2,"Edit space"),l()),e&2){let t=c(2);a(),p("icon",t.icons.faPen)}}function bi(e,r){if(e&1&&(s(0,"span",51),u(1,"fa-icon",7),m(2,"Edit children shares"),l()),e&2){let t=c(3);a(),p("icon",t.icons.SHARED)}}function vi(e,r){if(e&1){let t=x();w(0,bi,3,1,"ng-template",15),f("execute",function(){C(t);let o=c(2);return h(o.openChildShareDialog())})}}function yi(e,r){if(e&1){let t=x();w(0,xi,3,1,"ng-template",15),f("execute",function(){C(t);let o=c();return h(o.openSpaceDialog())}),g(1,vi,1,0,null,16)}if(e&2){let t=c();a(),S(t.selected!=null&&t.selected.counts.shares?1:-1)}}function wi(e,r){if(e&1&&(s(0,"span",51),u(1,"fa-icon",7),m(2,"Manage my anchored files"),l()),e&2){let t=c(2);a(),p("icon",t.icons.faAnchor)}}function Ti(e,r){if(e&1){let t=x();w(0,wi,3,1,"ng-template",15),f("execute",function(){C(t);let o=c();return h(o.openSpaceRootsDialog())})}}function Ei(e,r){}function Di(e,r){e&1&&w(0,Ei,0,0,"ng-template",17),e&2&&p("divider",!0)}function Mi(e,r){if(e&1&&(s(0,"span",51),u(1,"fa-icon",7),m(2,"Informations"),l()),e&2){let t=c();a(),p("icon",t.icons.faCircleInfo)}}var Kn=(()=>{let r=class r{constructor(){this.locale=y(K),this.layout=y(ee),this.SPACE_ROLE=Z,this.originalOrderKeyValue=Qe,this.TAB_MENU=He,this.icons={SPACES:I.SPACES,SHARED:I.SHARED_WITH_OTHERS,faAnchor:X,faArrowDown:Ne,faArrowUp:Re,faRotate:Pe,faArrowRotateRight:Be,faUpload:Le,faPlus:J,faPen:G,faCircleInfo:Oe},this.tableHeaders={name:{label:"Name",width:30,textCenter:!1,class:"",show:!0,sortable:!0},managers:{label:"Managers",width:10,class:"d-none d-md-table-cell",textCenter:!0,show:!0,sortable:!0},members:{label:"Members",width:20,class:"d-none d-md-table-cell",textCenter:!1,show:!0},infos:{label:"Infos",width:15,textCenter:!0,class:"d-none d-md-table-cell",show:!0},permissions:{label:"Permissions",width:10,textCenter:!0,class:"d-none d-lg-table-cell",show:!0,sortable:!0},modified:{label:"Modified",width:10,textCenter:!0,class:"d-none d-lg-table-cell",newly:"newly",show:!0,sortable:!0}},this.btnSortFields={name:"Name",managers:"Managers",permissions:"Permissions",modified:"Modified"},this.loading=!1,this.spaces=[],this.selected=null,this.canCreateSpace=!1,this.canEditSpace=!1,this.canManageRoots=!1,this.router=y(xe),this.activatedRoute=y(Se),this.spacesService=y(ie),this.store=y(ze),this.userService=y(te),this.sortSettings={default:[{prop:"name",type:"string"}],name:[{prop:"name",type:"string"}],managers:[{prop:"managers",type:"length"}],permissions:[{prop:"permissions",type:"length"}],modified:[{prop:"modified",type:"date"}]},this.sortTable=new et(this.constructor.name,this.sortSettings),this.loadSpaces(),this.canCreateSpace=this.userService.userHavePermission(We.SPACES_ADMIN),this.layout.setBreadcrumbIcon(I.SPACES),this.layout.setBreadcrumbNav({url:`/${ne.SPACES}/${je.SPACES}`,translating:!0,sameLink:!0}),this.activatedRoute.queryParams.subscribe(n=>this.focusOnSelect=n.select)}ngOnInit(){this.galleryMode=this.btnNavigationView.currentView()}loadSpaces(){this.loading=!0,this.onSelect(),this.spacesService.listSpaces().subscribe({next:n=>{this.sortBy(this.sortTable.sortParam.column,!1,n),this.loading=!1,this.focusOnSelect?this.focusOn(this.focusOnSelect):this.scrollView.scrollInto(-1)},error:n=>{this.spaces=[],this.loading=!1,this.layout.sendNotification("error","Spaces",n.error.message)}})}browse(n){n.enabled?this.router.navigate([ne.FILES,n.alias],{relativeTo:this.activatedRoute}).catch(console.error):this.layout.sendNotification("warning",n.name,"Space is disabled")}onSelect(n=null){n?(this.selected=n,this.canEditSpace=!!n.managers.find(o=>o.id===this.userService.user.id),this.canManageRoots=this.canEditSpace||n.havePermission(W.SHARE_INSIDE)):(this.selected=null,this.canEditSpace=!1,this.canManageRoots=!1),this.store.spaceSelection.set(this.selected)}sortBy(n,o=!0,i){this.spaces=this.sortTable.sortBy(n,o,i||this.spaces)}onContextMenu(n){n.preventDefault(),n.stopPropagation(),this.layout.openContextMenu(n,this.mainContextMenu)}onTargetContextMenu(n,o){n.preventDefault(),n.type==="contextmenu"&&n.stopPropagation(),this.onSelect(o),this.layout.openContextMenu(n,this.targetContextMenu)}openSpaceDialog(n=!1){n?this.layout.openDialog(le,"xl").content.spaceChange.pipe(L(1)).subscribe(i=>{let[d,_]=i;d==="add"&&(this.sortBy(this.sortTable.sortParam.column,!1,this.spaces.concat(_)),this.onSelect(_))}):this.selected&&this.canEditSpace&&this.spacesService.getSpace(this.selected.id).subscribe({next:o=>{this.layout.openDialog(le,"xl",{initialState:{space:o}}).content.spaceChange.pipe(L(1)).subscribe(d=>{let[_,T]=d;_==="update"?(this.selected.name=T.name,this.selected.alias=T.alias,this.selected.description=T.description,this.selected.counts=pe(ce({},T.counts),{shares:this.selected.counts.shares}),this.selected.modifiedAt=T.modifiedAt,this.selected.enabled=T.enabled,this.selected.managers=[...T.managers]):_==="delete"&&(this.onSelect(),this.sortBy(this.sortTable.sortParam.column,!1,this.spaces.filter(yt=>yt.id!==T.id)))})},error:o=>this.layout.sendNotification("error","Edit space",this.selected.name,o)})}openSpaceRootsDialog(){setTimeout(()=>{this.layout.openDialog(ht,"md",{initialState:{space:this.selected,user:this.userService.user}})},this.selected?0:100)}openChildShareDialog(n){n&&this.onSelect(n),this.layout.openDialog(Ct,null,{initialState:{space:this.selected}}).content.sharesCountEvent.subscribe(i=>this.selected.counts.shares=i)}focusOn(n){let o=this.spaces.find(i=>i.name===n);o&&(setTimeout(()=>this.scrollView.scrollInto(o),100),this.onSelect(o))}};r.\u0275fac=function(o){return new(o||r)},r.\u0275cmp=$({type:r,selectors:[["app-spaces"]],viewQuery:function(o,i){if(o&1&&(B(ae,5),B(oe,7),B(re,7),B(Ht,7),B(Qt,7)),o&2){let d;N(d=O())&&(i.scrollView=d.first),N(d=O())&&(i.inputFilter=d.first),N(d=O())&&(i.btnNavigationView=d.first),N(d=O())&&(i.mainContextMenu=d.first),N(d=O())&&(i.targetContextMenu=d.first)}},decls:34,vars:37,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"],["container","body","type","button",1,"btn","btn-sm","btn-secondary","me-1",3,"tooltip"],["container","body","type","button",1,"btn","btn-sm","btn-secondary","me-1",3,"click","disabled","tooltip"],[3,"icon"],[1,"ms-auto"],[1,"btn-group","btn-group-sm","me-1"],[1,"d-none","d-sm-block"],[3,"sortBy","switchView","sortParams","sortFields"],[1,"app-thumbs"],[1,"app-foot-menu"],[1,"mx-auto"],["contextMenuItem","",3,"execute"],["contextMenuItem",""],["contextMenuItem","",3,"divider"],[3,"contextmenu","childHeight","childWidth","items","galleryMode","resizeOffset"],["tabindex","-1",1,"row","g-0"],[1,"card",3,"disabled","selected","height","width"],[1,"card",3,"click","contextmenu","pressup","tap"],[1,"card-body"],[1,"circle-primary-icon",3,"icon"],[1,"label-top-right"],["l10nTranslate","",1,"badge","rounded-pill","bg-warning",3,"font-size"],[1,"label-bottom-left"],[1,"card-footer","text-center","text-truncate","p-1"],["draggable","false",1,"no-pointer-events"],["l10nTranslate","",1,"badge","rounded-pill","bg-warning"],[3,"user","isMember","height","width"],[1,"app-table"],[3,"contextmenu","bufferAmount","items"],["tabindex","-1"],[3,"disabled","selected"],["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"],[1,"circle-primary-icon",3,"icon","fixedWidth"],[1,"d-flex","flex-column","text-truncate"],["draggable","false",1,"no-pointer-events","text-muted","fs-xxxs"],[3,"user","isMember"],[1,"badge","rounded-pill","bg-primary","cursor-pointer","me-1"],[1,"badge","rounded-pill","bg-purple","cursor-pointer","me-1"],[1,"badge","rounded-pill","bg-primary","cursor-pointer","me-1",3,"click"],[1,"badge","rounded-pill","bg-purple","cursor-pointer","me-1",3,"click"],[1,"me-1",3,"icon"],["tooltipPlacement","auto",3,"permissions"],["l10nTranslate",""]],template:function(o,i){if(o&1){let d=x();s(0,"div",2)(1,"button",3),b(2,"translate"),f("click",function(){return C(d),h(i.loadSpaces())}),u(3,"fa-icon",4),l(),g(4,Kt,3,5,"button",5),s(5,"button",6),b(6,"translate"),f("click",function(){return C(d),h(i.openSpaceDialog())}),u(7,"fa-icon",7),l(),s(8,"button",6),b(9,"translate"),f("click",function(){return C(d),h(i.openChildShareDialog())}),u(10,"fa-icon",7),l(),s(11,"button",6),b(12,"translate"),f("click",function(){return C(d),h(i.openSpaceRootsDialog())}),u(13,"fa-icon",7),l(),s(14,"div",8)(15,"div",9),u(16,"app-input-filter",10),l(),s(17,"app-navigation-view",11),f("sortBy",function(T){return C(d),h(i.sortBy(T))})("switchView",function(T){return C(d),h(i.galleryMode=T)}),l()()(),g(18,Jt,6,8,"div",12)(19,fi,12,8),s(20,"div",13)(21,"span",14),m(22),b(23,"translate"),l()(),s(24,"context-menu",null,0),g(26,gi,2,1),w(27,Si,3,1,"ng-template",15),f("execute",function(){return C(d),h(i.loadSpaces())}),l(),s(28,"context-menu",null,1),g(30,yi,2,1),g(31,Ti,1,0,null,16),g(32,Di,1,1,null,17),w(33,Mi,3,1,"ng-template",15),f("execute",function(){return C(d),h(i.layout.showRSideBarTab(i.TAB_MENU.SELECTION))}),l()}o&2&&(a(),p("tooltip",v(2,22,"Refresh",i.locale.language)),a(2),p("icon",i.icons.faArrowRotateRight)("animation",i.loading?"spin":null),a(),S(i.canCreateSpace?4:-1),a(),p("disabled",!i.canEditSpace)("tooltip",v(6,25,"Edit space",i.locale.language)),a(2),p("icon",i.icons.faPen),a(),p("disabled",!i.canEditSpace||!(i.selected!=null&&i.selected.counts.shares))("tooltip",v(9,28,"Edit children shares",i.locale.language)),a(2),p("icon",i.icons.SHARED),a(),p("disabled",!i.canManageRoots)("tooltip",v(12,31,"Manage my anchored files",i.locale.language)),a(2),p("icon",i.icons.faAnchor),a(4),p("sortParams",i.sortTable.sortParam)("sortFields",i.btnSortFields),a(),S(i.galleryMode!=null&&i.galleryMode.enabled?18:19),a(4),ue("",i.spaces.length," ",v(23,34,"spaces",i.locale.language)),a(4),S(i.canCreateSpace?26:-1),a(4),S(i.canEditSpace?30:-1),a(),S(i.canManageRoots?31:-1),a(),S(i.canEditSpace||i.canManageRoots?32:-1))},dependencies:[j,z,tt,ae,Ve,Me,qe,$e,Ue,re,oe,dt,ge,ct,De,Je],encapsulation:2});let e=r;return e})();export{Kn as SpacesComponent};
@@ -0,0 +1 @@
1
+ import{a as wt}from"./chunk-YDFVKH2D.js";import{a as Tt,b as H,c as Et}from"./chunk-2XJ5Z2GZ.js";import{a as $,b as ke,c as pt,e as Fe}from"./chunk-G2TKYYWK.js";import{a as At}from"./chunk-YD74UCFG.js";import{d as Se}from"./chunk-O3ANXCPE.js";import"./chunk-JXZCNFW7.js";import{a as yt}from"./chunk-GCUWGVYT.js";import{a as Z,b as ye,c as Te,d as we,h as Ee}from"./chunk-XPIYOZBX.js";import{a as Ve,b as Ne,c as bt,d as St}from"./chunk-ET6QDNNM.js";import{a as Ae}from"./chunk-G3FOG2QB.js";import"./chunk-NW3CTYUW.js";import{l as xe,m as be,p as Y,q as xt}from"./chunk-IEUANP3Q.js";import{L as ct,M as q,O as dt,S as ve,_a as vt,ra as ut,sa as ft,ta as _t,v as We,wa as gt,xa as Ct,ya as ht,zb as J}from"./chunk-2TZUZMCM.js";import{b as He,d as je}from"./chunk-RKNTQYMU.js";import{$a as Ge,Ad as K,Ae as Ce,Cb as f,Cd as Qe,Cf as at,Eb as d,Ef as rt,Fc as se,Ga as oe,Gc as $e,Gd as X,Hd as B,He as Ze,Ib as ee,Id as ze,Jb as te,Je as he,Kb as ie,L as j,Lf as st,Ma as a,Mb as Ue,Nb as E,Ob as V,Pb as m,Qb as b,Rb as w,Sb as G,Sd as Ke,Sf as lt,Tb as Re,Ub as Le,Vb as Oe,Xa as M,Xb as R,Xe as et,Xf as mt,Yb as Be,_a as ae,_c as L,ab as D,ad as W,bb as re,bd as le,ce as Xe,dc as h,dd as I,ec as T,ee as Je,ef as tt,fc as A,fd as O,gd as me,ha as S,hd as qe,jb as g,jd as F,kb as C,kd as ce,lb as Q,ma as v,na as x,nb as U,ob as k,od as de,of as it,pb as c,pd as pe,qb as n,qd as ue,rb as o,rd as fe,sb as u,sd as _e,se as Ye,wf as nt,yd as ge,zb as N,zd as z,zf as ot}from"./chunk-6IRL673W.js";import{j as P}from"./chunk-RTRJ3KFH.js";function Vt(e,r){if(e&1&&(u(0,"fa-icon",42),n(1,"span"),m(2),o()),e&2){let i=d();c("icon",i.icons.faPen),a(2),b(i.guest.fullName)}}function Nt(e,r){if(e&1&&(u(0,"fa-icon",42),n(1,"span",43),m(2,"New guest"),o()),e&2){let i=d();c("icon",i.icons.faPlus)}}function It(e,r){if(e&1&&u(0,"fa-icon",2),e&2){let i=d();c("icon",i.icons.faSpinner)}}function Pt(e,r){e&1&&(n(0,"h4",3)(1,"span",43),m(2,"Edit guest"),o()())}function Mt(e,r){if(e&1&&(u(0,"fa-icon",44),n(1,"span",45),m(2,"Account"),o()),e&2){let i=d();c("icon",i.icons.faAddressCard)}}function Gt(e,r){if(e&1&&u(0,"app-password-strength-bar",22),e&2){let i=d();c("passwordToCheck",i.guestForm.value.password)}}function Rt(e,r){if(e&1&&(n(0,"option",26),m(1),o()),e&2){let i=r.$implicit;c("ngValue",i),a(),b(i)}}function Lt(e,r){if(e&1&&(n(0,"option",34),m(1),o()),e&2){let i=r.$implicit,s=d();c("ngValue",s.allNotifications.indexOf(i)),a(),b(i)}}function Ot(e,r){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=d(2);a(),G("",T(2,4,i.guest.currentAccess)," - ",i.guest.currentIp),a(3),G("",T(5,6,i.guest.lastAccess)," - ",i.guest.lastIp)}}function Bt(e,r){e&1&&(n(0,"span",37),m(1,"never"),o())}function $t(e,r){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,Ot,6,8)(12,Bt,2,0,"span",37),o()()()),e&2){let i=d();a(5),b(T(6,2,i.guest.createdAt)),a(6),C(i.guest.lastAccess?11:12)}}function Ht(e,r){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=d();c("icon",i.icons.faUsersGear),a(4),w("(",i.guestForm.value.managers.length||0,")")}}function jt(e,r){e&1&&(n(0,"small",37),m(1,"At least one manager is required"),o())}function qt(e,r){if(e&1){let i=N();n(0,"button",52),f("click",function(){v(i);let l=d();return x(l.confirmDeletion=!0)}),m(1," Remove "),o()}if(e&2){let i=d();c("disabled",i.confirmDeletion)}}var Pe=(()=>{let r=class r extends wt{constructor(){super(),this.adminService=S(H)}searchMembers(s){let l={search:s,ignoreUserIds:this.guestForm.value.managers.map(t=>t.id),usersRole:q.USER,onlyUsers:!0};return this.adminService.searchMembers(l)}onSubmit(){return P(this,null,function*(){if(this.submitted=!0,this.confirmDeletion){let s=yield this.userService.auth2FaVerifyDialog(!0);if(s===!1)return;this.adminService.deleteUser(this.guest.id,{deleteSpace:!0,isGuest:!0},s).subscribe({next:()=>{this.guestChange.emit(["delete",this.guest]),this.layout.sendNotification("success","Guest deleted",this.guest.login),this.layout.closeDialog()},error:l=>this.onError(l)})}else if(this.guest){let s=this.makeDto();if(!Object.keys(s).length){this.loading=!1,this.submitted=!1;return}let l=yield this.userService.auth2FaVerifyDialog();if(l===!1)return;this.adminService.updateUser(this.guest.id,s,l,!0).subscribe({next:t=>{t?this.guestChange.emit(["update",t]):this.guestChange.emit(["delete",this.guest]),this.layout.sendNotification("success","Guest updated",this.guestForm.value.login),this.layout.closeDialog()},error:t=>this.onError(t)})}else{let s=yield this.userService.auth2FaVerifyDialog();if(s===!1)return;this.adminService.createUser(this.makeDto(!0),s,!0).subscribe({next:l=>{this.guestChange.emit(["add",l]),this.layout.sendNotification("success","Guest created",this.guestForm.value.login),this.layout.closeDialog()},error:l=>this.onError(l)})}})}};r.\u0275fac=function(l){return new(l||r)},r.\u0275cmp=M({type:r,selectors:[["app-admin-guest-dialog"]],features:[Ge],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,Vt,3,2)(3,Nt,3,1),g(4,It,1,1,"fa-icon",2),o(),g(5,Pt,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}),D(11,Mt,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,Gt,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),U(39,Rt,2,2,"option",26,Q),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),U(56,Lt,2,2,"option",34,Q),o()()(),g(58,$t,13,4,"div",11),o()(),n(59,"tab",35),f("selectTab",function(){return t.tabView="managers"}),D(60,Ht,5,2,"ng-template",9),n(61,"div",7)(62,"app-user-search",36),f("membersChange",function(_){return t.updateManagers(_)}),o(),g(63,jt,2,0,"small",37),o()()()(),n(64,"div",38),g(65,qt,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&&(a(2),C(t.guest?2:3),a(2),C(t.loading?4:-1),a(),C(t.guest?5:-1),a(),V(R("btn-close btn-close-white ",t.guest?"ms-2":"ms-auto"," ms-2")),a(),c("formGroup",t.guestForm),a(),c("justified",!0),a(9),E("is-invalid",t.guestForm.controls.login.invalid),c("autoSelect",!1),a(4),E("is-invalid",t.guestForm.controls.email.invalid),a(5),E("is-invalid",t.guestForm.controls.firstName.invalid),a(7),C(t.guestForm.value.password!==t.defaultPassword?33:-1),a(),c("password",t.guestForm.value.password)("showGenerator",!0)("showLabel",!0)("isRequired",!0),a(5),k(t.languages),a(9),E("text-danger",!t.guestForm.value.isActive),a(),w(" ",T(51,38,A(50,35,t.guestForm.value.isActive?"active":"suspended",t.locale.language))," "),a(7),k(t.allNotifications),a(2),C(t.guest?58:-1),a(4),c("members",t.guestForm.value.managers)("withPermissions",!1)("customPlaceholder","Type to search for managers to add")("searchFunction",t.searchMembers.bind(t)),a(),C(t.guestForm.value.managers.length?-1:63),a(2),C(t.guest!=null&&t.guest.id?65:-1),a(3),V(R("btn btn-sm ",t.confirmDeletion?"btn-danger":"btn-primary")),c("disabled",t.guestForm.invalid||t.submitted),a(),w(" ",t.confirmDeletion?"Confirm deletion":"Confirm"," "))},dependencies:[L,B,z,fe,_e,le,W,ue,O,me,de,pe,xe,Ae,be,Ee,ye,Te,we,Z,X,se],encapsulation:2});let e=r;return e})();var Ft=(()=>{let r=class r{constructor(){this.translate=S(Qe)}transform(s,l=!1,t=null,p=", "){return s.length?(t?s.map(y=>y[t]):s.concat()).sort().map(y=>new Fe().transform(l?this.translate.translate(y):y)).join(p):""}};r.\u0275fac=function(l){return new(l||r)},r.\u0275pipe=ae({name:"join",type:r,pure:!0});let e=r;return e})();var Dt=(()=>{let r=class r{transform(s,l=","){return s?.length?s.split(l):[]}};r.\u0275fac=function(l){return new(l||r)},r.\u0275pipe=ae({name:"split",type:r,pure:!0});let e=r;return e})();function Qt(e,r){e&1&&(n(0,"h4",3)(1,"span",14),m(2,"Delete user"),o()())}var Ut=(()=>{let r=class r{constructor(){this.wasDeleted=new re,this.locale=S(K),this.submitted=!1,this.icons={faUserMinus:ot},this.deleteSpace=!1,this.layout=S(J),this.adminService=S(H),this.userService=S(Y)}onClose(){this.wasDeleted.emit(!1),this.layout.closeDialog()}onSubmit(){return P(this,null,function*(){this.submitted=!0;let s=yield this.userService.auth2FaVerifyDialog(!0);if(s===!1){this.onClose();return}this.adminService.deleteUser(this.user.id,{deleteSpace:this.deleteSpace,isGuest:!1},s).subscribe({next:()=>{this.wasDeleted.emit(!0),this.layout.sendNotification("success","Delete user",this.user.login),this.onClose()},error:l=>{this.submitted=!1,this.layout.sendNotification("error","Delete user",this.user.login,l)}})})}};r.\u0275fac=function(l){return new(l||r)},r.\u0275cmp=M({type:r,selectors:[["app-admin-user-delete-dialog"]],inputs:{user:"user"},outputs:{wasDeleted:"wasDeleted"},decls:28,vars:13,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"],[1,"d-flex","align-items-center","avatar","mb-3"],["alt","",1,"avatar-img",3,"src"],[1,"d-flex","flex-column"],[1,"mx-2"],[1,"form-check","form-check-inline","mt-3"],[1,"d-flex"],["for","deleteSpace",1,"form-check-label"],["id","deleteSpace","type","checkbox",1,"form-check-input",3,"ngModelChange","ngModel"],["l10nTranslate",""],[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-danger",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,Qt,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,"div",8)(11,"span",9)(12,"b"),m(13),h(14,"capitalize"),o()(),n(15,"span",9),m(16),o()()(),n(17,"div",10)(18,"div",11)(19,"label",12)(20,"input",13),Oe("ngModelChange",function(_){return Le(t.deleteSpace,_)||(t.deleteSpace=_),_}),o(),n(21,"span",14),m(22,"Delete all user files"),o()()()()(),n(23,"div",15)(24,"button",16),f("click",function(){return t.onClose()}),m(25," Cancel "),o(),n(26,"button",17),f("click",function(){return t.onSubmit()}),m(27," Confirm "),o()()),l&2&&(a(2),c("icon",t.icons.faUserMinus),a(2),b(t.user.fullName),a(),C(t.user?5:-1),a(),V(R("btn-close btn-close-white ",t.user?"ms-2":"ms-auto"," ms-2")),a(3),c("src",t.user.avatarUrl,oe),a(4),b(T(14,11,t.user.login)),a(3),b(t.user.email),a(4),Re("ngModel",t.deleteSpace),a(6),c("disabled",t.submitted))},dependencies:[L,B,z,W,O,ge,ce,Fe],encapsulation:2});let e=r;return e})();var Wt=(e,r)=>r.id;function zt(e,r){if(e&1&&(u(0,"fa-icon",47),n(1,"span"),m(2),o()),e&2){let i=d();c("icon",i.icons.faUserPen),a(2),b(i.user.fullName)}}function Kt(e,r){if(e&1&&(u(0,"fa-icon",47),n(1,"span",40),m(2,"New user"),o()),e&2){let i=d();c("icon",i.icons.faUserPlus)}}function Xt(e,r){if(e&1&&u(0,"fa-icon",2),e&2){let i=d();c("icon",i.icons.faSpinner)}}function Jt(e,r){e&1&&(n(0,"h4",3)(1,"span",40),m(2,"Edit user"),o()())}function Yt(e,r){if(e&1&&(u(0,"fa-icon",48),n(1,"span",49),m(2,"Account"),o()),e&2){let i=d();c("icon",i.icons.faAddressCard)}}function Zt(e,r){if(e&1&&u(0,"app-password-strength-bar",22),e&2){let i=d();c("passwordToCheck",i.userForm.value.password)}}function ei(e,r){if(e&1&&(n(0,"option",26),m(1),o()),e&2){let i=r.$implicit;c("ngValue",i),a(),b(i)}}function ti(e,r){if(e&1&&(n(0,"option",30),m(1),o()),e&2){let i=r.$implicit,s=d();c("ngValue",s.allNotifications.indexOf(i)),a(),b(i)}}function ii(e,r){if(e&1){let i=N();n(0,"span",55),f("click",function(){v(i);let l=d(2);return x(l.reset2Fa())}),u(1,"fa-icon",48),n(2,"span",56),m(3,"Reset"),o()()}if(e&2){let i=d(2);a(),c("icon",i.icons.faTrash)}}function ni(e,r){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(),n(5,"div",15)(6,"div",10)(7,"label",52),m(8,"Two-Factor Authentication"),o(),n(9,"div",53)(10,"span"),u(11,"fa-icon",48),m(12),h(13,"translate"),h(14,"titlecase"),o(),g(15,ii,4,1,"span",54),o()()()()),e&2){let i=d();a(4),c("item",i.user),a(7),c("icon",i.user.twoFaEnabled?i.icons.faLock:i.icons.faLockOpen),a(),w(" ",T(14,7,A(13,4,i.user.twoFaEnabled?"enabled":"disabled",i.locale.language))," "),a(3),C(i.user.twoFaEnabled?15:-1)}}function oi(e,r){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=d(2);a(),G("",T(2,4,i.user.currentAccess)," - ",i.user.currentIp),a(3),G("",T(5,6,i.user.lastAccess)," - ",i.user.lastIp)}}function ai(e,r){e&1&&(n(0,"span",62),m(1,"never"),o())}function ri(e,r){if(e&1&&(n(0,"div",11)(1,"div",12)(2,"label",57),m(3,"Creation date"),o(),n(4,"div",58),m(5),h(6,"amDateFormat"),o()(),n(7,"div",59)(8,"label",60),m(9,"Last accesses"),o(),n(10,"div",61),g(11,oi,6,8)(12,ai,2,0,"span",62),o()()()),e&2){let i=d();a(5),b(T(6,2,i.user.createdAt)),a(6),C(i.user.lastAccess?11:12)}}function si(e,r){if(e&1&&(u(0,"fa-icon",48),n(1,"span",49),m(2,"Permissions"),o()),e&2){let i=d();c("icon",i.icons.faShieldHalved)}}function li(e,r){if(e&1&&(n(0,"div",65)(1,"div",66),u(2,"fa-icon",67),n(3,"span"),m(4),o()(),n(5,"div",68),m(6),h(7,"split"),h(8,"join"),o()()),e&2){let i=d().$implicit,s=d(2);a(2),c("icon",s.icons.GROUPS),a(2),b(i.name),a(2),b(A(8,5,T(7,3,i.permissions),!0))}}function mi(e,r){if(e&1&&g(0,li,9,8,"div",65),e&2){let i=r.$implicit;C(i.permissions?0:-1)}}function ci(e,r){if(e&1&&(n(0,"div",32)(1,"label",63),m(2,"Permissions inherited from groups"),o(),n(3,"div",64),U(4,mi,1,1,null,null,Wt),o()()),e&2){let i=d();a(4),k(i.userForm.value.groups)}}function di(e,r){if(e&1&&(u(0,"fa-icon",48),n(1,"span",69),m(2,"Groups"),o(),n(3,"span"),m(4),o()),e&2){let i=d();c("icon",i.icons.faUsers),a(4),w("(",i.userForm.value.groups.length||0,")")}}function pi(e,r){if(e&1){let i=N();n(0,"button",70),f("click",function(){v(i);let l=d();return x(l.confirmDeletion=!0)}),m(1," Remove "),o()}if(e&2){let i=d();c("disabled",i.confirmDeletion)}}var Me=(()=>{let r=class r{constructor(){this.user=null,this.userChange=new re,this.locale=S(K),this.layout=S(J),this.submitted=!1,this.loading=!1,this.confirmDeletion=!1,this.icons={GROUPS:gt.GROUPS,faUserPlus:he,faUserPen:Ce,faSpinner:tt,faAddressCard:Ze,faUsers:Ye,faShieldHalved:rt,faTrash:Je,faLock:nt,faLockOpen:it},this.allNotifications=Object.values(ve),this.defaultPassword=this.layout.translateString(Ct),this.languages=this.layout.getLanguages(!0),this.adminService=S(H),this.userService=S(Y)}ngOnInit(){this.userForm=new qe({login:new F(this.user?.login||"",[I.required,I.pattern(ct)]),email:new F(this.user?.email||"",[I.required,I.maxLength(255),I.email]),firstName:new F(this.user?.firstName||"",[I.required,I.maxLength(255)]),lastName:new F(this.user?.lastName||"",I.maxLength(255)),password:new F(this.user?this.defaultPassword:"",I.maxLength(255)),language:new F(this.user?.language||null),notification:new F(this.user?.notification||Object.values(ve).indexOf(ve.APPLICATION_EMAIL)),isActive:new F(this.user?this.user.isActive:!0),isAdmin:new F(this.user?this.user.isAdmin:!1),storageQuota:new F(this.user?.storageQuota||null),groups:new F(this.user?.groups||[]),applications:new F(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()}reset2Fa(){return P(this,null,function*(){let s=yield this.userService.auth2FaVerifyDialog(!0);s!==!1&&this.userService.adminResetUser2Fa(this.user.id,s).subscribe({next:l=>{this.user.twoFaEnabled=!l.success,l.success?this.layout.sendNotification("success","Two-Factor Authentication is disabled",this.user.login):this.layout.sendNotification("error","Two-Factor Authentication",l.message)},error:l=>{this.submitted=!1,this.layout.sendNotification("error","Two-Factor Authentication",this.user.login,l)}})})}onSubmit(){return P(this,null,function*(){if(this.submitted=!0,this.confirmDeletion)this.layout.openDialog(Ut,"sm",{initialState:{user:this.user}}).content.wasDeleted.pipe(j(1)).subscribe(l=>{l?(this.userChange.emit(["delete",this.user]),this.layout.closeDialog()):(this.confirmDeletion=!1,this.submitted=!1)});else if(this.user){let s=yield this.userService.auth2FaVerifyDialog();if(s===!1)return;this.adminService.updateUser(this.user.id,this.makeDto(),s).subscribe({next:l=>{this.userChange.emit(["update",l]),this.layout.sendNotification("success","User updated",this.userForm.value.login),this.layout.closeDialog()},error:l=>this.onError(l)})}else{let s=yield this.userService.auth2FaVerifyDialog();if(s===!1)return;this.adminService.createUser(this.makeDto(!0),s).subscribe({next:l=>{this.userChange.emit(["add",l]),this.layout.sendNotification("success","User created",this.userForm.value.login),this.layout.closeDialog()},error:l=>this.onError(l)})}})}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]===ht?null:l[t];break;case"isAdmin":l.role=l[t]?q.ADMINISTRATOR:q.USER;break;case"applications":l.permissions=l[t].join(dt);break;case"groups":l[t]=l[t].map(p=>p.id);break}return l}onError(s){this.layout.sendNotification("error","Group error",this.userForm.value.login,s),this.submitted=!1}};r.\u0275fac=function(l){return new(l||r)},r.\u0275cmp=M({type:r,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","twoFa","l10nTranslate",""],["id","twoFa",1,"pt-1"],["role","button",1,"ms-3","link-danger"],["role","button",1,"ms-3","link-danger",3,"click"],["l10nTranslate","",1,"ms-1"],["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,zt,3,2)(3,Kt,3,1),g(4,Xt,1,1,"fa-icon",2),o(),g(5,Jt,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}),D(11,Yt,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,Zt,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),U(39,ei,2,2,"option",26,Q),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),U(48,ti,2,2,"option",30,Q),o()()(),g(50,ni,16,9,"div",11),o(),g(51,ri,13,4,"div",11),o(),n(52,"tab",31),f("selectTab",function(){return t.tabView="permissions"}),D(53,si,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,ci,6,0,"div",32),o(),n(72,"tab",31),f("selectTab",function(){return t.tabView="groups"}),D(73,di,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,pi,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&&(a(2),C(t.user?2:3),a(2),C(t.loading?4:-1),a(),C(t.user?5:-1),a(),V(R("btn-close btn-close-white ",t.user?"ms-2":"ms-auto"," ms-2")),a(),c("formGroup",t.userForm),a(),c("justified",!0),a(9),E("is-invalid",t.userForm.controls.login.invalid),c("autoSelect",!1),a(4),E("is-invalid",t.userForm.controls.email.invalid),a(5),E("is-invalid",t.userForm.controls.firstName.invalid),a(7),C(t.userForm.value.password!==t.defaultPassword?33:-1),a(),c("password",t.userForm.value.password)("showGenerator",!0)("showLabel",!0)("isRequired",!0),a(5),k(t.languages),a(4),c("quota",t.userForm.value.storageQuota)("fullWidth",!0),a(5),k(t.allNotifications),a(2),C(t.user&&t.user.storageUsage?50:-1),a(),C(t.user?51:-1),a(10),E("text-danger",!t.userForm.value.isActive),a(),w(" ",T(64,42,A(63,39,t.userForm.value.isActive?"active":"suspended",t.locale.language))," "),a(8),c("permissions",t.userForm.value.applications),a(),C(t.userForm.value.groups.length?71:-1),a(4),c("members",t.userForm.value.groups)("withPermissions",!1)("customPlaceholder","Type to search for groups to add")("searchFunction",t.searchMembers.bind(t)),a(2),C(t.user!=null&&t.user.id?77:-1),a(3),V(R("btn btn-sm ",t.confirmDeletion?"btn-danger":"btn-primary")),c("disabled",t.userForm.invalid||t.submitted),a(),w(" ",t.confirmDeletion?"Confirm deletion":"Confirm"," "))},dependencies:[L,B,Te,we,ye,z,fe,_e,le,W,ue,O,me,de,pe,xe,Ae,Se,At,Ee,be,Et,se,X,Dt,Ft,Z],encapsulation:2});let e=r;return e})();var ui=["MainContextMenu"],fi=["TargetContextMenu"],kt=(e,r)=>r.key,_i=(e,r)=>r.id,gi=(e,r)=>r.mid;function Ci(e,r){if(e&1&&u(0,"fa-icon",24),e&2){let i=d(3);c("icon",i.sortTable.sortParam.asc?i.icons.faArrowDown:i.icons.faArrowUp)("fixedWidth",!1)}}function hi(e,r){if(e&1){let i=N();n(0,"th",23),f("click",function(){v(i);let l=d().$implicit,t=d();return x(t.sortBy(l.key))}),m(1),g(2,Ci,1,2,"fa-icon",24),o()}if(e&2){let i=d().$implicit,s=d();V(i.value.class),Ue("width",i.value.width,"%"),E("text-align-center",i.value.textCenter)("cursor-pointer",i.value.sortable),a(),w(" ",i.value.label," "),a(),C(s.sortTable.sortParam.column===i.key?2:-1)}}function vi(e,r){if(e&1&&g(0,hi,3,10,"th",22),e&2){let i=r.$implicit;C(i.value.show?0:-1)}}function xi(e,r){if(e&1&&u(0,"fa-icon",32),e&2){let i=d(5);c("icon",i.icons.faKey)}}function bi(e,r){if(e&1&&(n(0,"div",27),u(1,"img",30),n(2,"div",28)(3,"span",31),m(4),g(5,xi,1,1,"fa-icon",32),o(),n(6,"span",33),m(7),o()()()),e&2){let i=d(3).$implicit;a(),c("src",i.avatarUrl,oe),a(3),w(" ",i.login," "),a(),C(i.isAdmin?5:-1),a(2),b(i.email)}}function Si(e,r){if(e&1&&(n(0,"span",34),m(1),o()),e&2){let i=d(4).$implicit;a(),b(i.userRoleText)}}function yi(e,r){if(e&1&&(n(0,"div",28)(1,"span",31),m(2),o(),g(3,Si,2,1,"span",34),o()),e&2){let i=d(3).$implicit;a(2),b(i.fullName),a(),C(i.isAdmin?3:-1)}}function Ti(e,r){if(e&1&&u(0,"app-user-avatar",35),e&2){let i=r.$implicit;c("user",i)("isMember",!0)}}function wi(e,r){if(e&1&&U(0,Ti,1,2,"app-user-avatar",35,gi),e&2){let i=d(3).$implicit;k(i.managers)}}function Ai(e,r){if(e&1&&u(0,"app-storage-usage",36),e&2){let i=d(4).$implicit;c("item",i)}}function Ei(e,r){if(e&1&&g(0,Ai,1,1,"app-storage-usage",36),e&2){let i=d(3).$implicit;C(i.storageUsage?0:-1)}}function Fi(e,r){if(e&1&&(n(0,"div",28)(1,"div"),m(2),o(),n(3,"div"),m(4),o()()),e&2){let i=d(3).$implicit;a(2),b(i.currentIp),a(2),b(i.lastIp)}}function Di(e,r){e&1&&m(0," too many login attempts ")}function Ui(e,r){if(e&1&&m(0),e&2){let i=d(4).$implicit;w(" ",i.userIsActiveText," ")}}function ki(e,r){if(e&1&&(n(0,"span",11),g(1,Di,1,0)(2,Ui,1,1),o()),e&2){let i=d(3).$implicit;V(i.isActive?"text-success":"text-danger"),a(),C(!i.isActive&&i.passwordAttempts?1:2)}}function Vi(e,r){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=d(5).$implicit;a(2),b(T(3,2,i.currentAccess)),a(3),b(T(6,4,i.lastAccess))}}function Ni(e,r){if(e&1&&m(0),e&2){let i=d(5).$implicit;w(" ",i.hTimeAgo," ")}}function Ii(e,r){if(e&1){let i=N();n(0,"div",38),f("mouseover",function(){v(i);let l=d(4).$implicit;return x(l.currentAccessHover=!0)})("focus",function(){v(i);let l=d(4).$implicit;return x(l.currentAccessHover=!0)})("mouseleave",function(){v(i);let l=d(4).$implicit;return x(l.currentAccessHover=!1)}),g(1,Vi,7,6,"div",28)(2,Ni,1,1),o()}if(e&2){let i=d(4).$implicit;a(),C(i.currentAccessHover?1:2)}}function Pi(e,r){e&1&&(n(0,"span",11),m(1,"never"),o())}function Mi(e,r){if(e&1&&g(0,Ii,3,1,"div",37)(1,Pi,2,0,"span",11),e&2){let i=d(3).$implicit;C(i.currentAccess?0:1)}}function Gi(e,r){if(e&1&&(n(0,"td"),g(1,bi,8,4,"div",27)(2,yi,4,2,"div",28)(3,wi,2,0)(4,Ei,1,1)(5,Fi,5,2,"div",28)(6,ki,3,3,"span",29)(7,Mi,2,1),o()),e&2){let i,s=d().$implicit,l=d().$implicit;V(Be("",s.value.class," ",s.value.newly?"prop-newly-"+l[s.value.newly]:"")),Ue("width",s.value.width,"%"),E("text-align-center",s.value.textCenter),a(),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 Ri(e,r){if(e&1&&g(0,Gi,8,9,"td",26),e&2){let i=r.$implicit;C(i.value.show?0:-1)}}function Li(e,r){if(e&1){let i=N();n(0,"tr",25),f("click",function(){let l=v(i).$implicit,t=d();return x(t.onSelect(l))})("contextmenu",function(l){let t=v(i).$implicit,p=d();return x(p.onTargetContextMenu(l,t))})("pressup",function(l){let t=v(i).$implicit,p=d();return x(p.onTargetContextMenu(l,t))})("tap",function(){v(i);let l=d();return x(l.openDialog())}),U(1,Ri,1,1,null,null,kt),h(3,"keyvalue"),o()}if(e&2){let i=r.$implicit,s=d();E("disabled",!i.isActive)("selected",i.id===(s.selected==null?null:s.selected.id)),a(),k(A(3,4,s.tableHeaders,s.originalOrderKeyValue))}}function Oi(e,r){if(e&1&&(n(0,"span",11),u(1,"fa-icon",5),m(2),o()),e&2){let i=d();a(),c("icon",i.icons.faUserPlus),a(),w("New ",i.guestsView?"guest":"user")}}function Bi(e,r){}function $i(e,r){if(e&1&&(n(0,"span",11),u(1,"fa-icon",5),m(2,"Refresh"),o()),e&2){let i=d();a(),c("icon",i.icons.faArrowRotateRight)}}function Hi(e,r){if(e&1&&(n(0,"span",11),u(1,"fa-icon",5),m(2),o()),e&2){let i=d();a(),c("icon",i.icons.faUserPen),a(),w("Edit ",i.guestsView?"guest":"user")}}function ji(e,r){}function qi(e,r){if(e&1&&(n(0,"span",11),u(1,"fa-icon",5),m(2,"Impersonate identity"),o()),e&2){let i=d();a(),c("icon",i.icons.faUserSecret)}}var Mo=(()=>{let r=class r{constructor(){this.locale=S(K),this.originalOrderKeyValue=vt,this.icons={faRotate:ze,faUserPlus:he,faUserPen:Ce,faArrowDown:mt,faArrowUp:et,faKey:Xe,faUserSecret:lt,faArrowRotateRight:st,faToggleOn:at,faToggleOff:Ke},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(je),this.activatedRoute=S(He),this.layout=S(J),this.adminService=S(H),this.userService=S(Y),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 St(this.constructor.name,this.sortSettings),this.layout.setBreadcrumbIcon(pt.USERS),this.activatedRoute.data.subscribe(s=>{this.guestsView=s.type===q.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([$.BASE,s?$.GUESTS:$.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(Me,"md").content.userChange.pipe(j(1)).subscribe(t=>{let[p,_]=t;p==="add"&&(this.sortBy(this.sortTable.sortParam.column,!1,[...this.users,_]),this.onSelect(_))}):this.adminService.getUser(this.selected.id).subscribe({next:l=>{this.layout.openDialog(Me,"md",{initialState:{user:l}}).content.userChange.pipe(j(1)).subscribe(p=>{let[_,y]=p;_==="update"?this.selected=Object.assign(this.selected,y):_==="delete"&&(this.onSelect(),this.sortBy(this.sortTable.sortParam.column,!1,this.users.filter(De=>De.id!==y.id)))})},error:l=>this.layout.sendNotification("error","Edit group",this.selected.login,l)})}openGuestDialog(s=!1){s?this.layout.openDialog(Pe,"md").content.guestChange.pipe(j(1)).subscribe(t=>{let[p,_]=t,y=new Tt(_);p==="add"&&(this.sortBy(this.sortTable.sortParam.column,!1,[...this.users,y]),this.onSelect(y))}):this.adminService.getUser(this.selected.id,!0).subscribe({next:l=>{this.layout.openDialog(Pe,"md",{initialState:{guest:l}}).content.guestChange.pipe(j(1)).subscribe(p=>{let[_,y]=p;_==="update"?this.selected=Object.assign(this.selected,y):_==="delete"&&(this.onSelect(),this.sortBy(this.sortTable.sortParam.column,!1,this.users.filter(De=>De.id!==y.id)))})},error:l=>this.layout.sendNotification("error","Guest error",this.selected.fullName,l)})}impersonateIdentity(){return P(this,null,function*(){let s=yield this.userService.auth2FaVerifyDialog(!0);s!==!1&&this.adminService.impersonateUser(this.selected.id,s).subscribe({next:l=>{setTimeout(()=>this.adminService.initImpersonateUser(l),500)},error:l=>this.layout.sendNotification("error","Impersonate identity",this.selected.login,l)})})}setEnv(){this.tableHeaders.managers.show=this.guestsView,this.tableHeaders.storage.show=!this.guestsView,this.loadUsersOrGuests(),this.layout.setBreadcrumbNav({url:this.guestsView?`/${$.BASE}/${$.GUESTS}/${ke.GUESTS}`:`/${$.BASE}/${$.USERS}/${ke.USERS}`,splicing:2,translating:!0,sameLink:!0})}};r.\u0275fac=function(l){return new(l||r)},r.\u0275cmp=M({type:r,selectors:[["app-admin-users"]],viewQuery:function(l,t){if(l&1&&(ee(Ne,5),ee(Ve,7),ee(ui,7),ee(fi,7)),l&2){let p;te(p=ie())&&(t.scrollView=p.first),te(p=ie())&&(t.inputFilter=p.first),te(p=ie())&&(t.mainContextMenu=p.first),te(p=ie())&&(t.targetContextMenu=p.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 p=N();n(0,"div",2)(1,"button",3),h(2,"translate"),f("click",function(){return v(p),x(t.loadUsersOrGuests())}),u(3,"fa-icon",4),o(),n(4,"button",3),h(5,"translate"),f("click",function(){return v(p),x(t.openDialog(!0))}),u(6,"fa-icon",5),o(),n(7,"button",6),h(8,"translate"),f("click",function(){return v(p),x(t.openDialog())}),u(9,"fa-icon",5),o(),n(10,"button",6),h(11,"translate"),f("click",function(){return v(p),x(t.impersonateIdentity())}),u(12,"fa-icon",5),o(),n(13,"div",7)(14,"button",8),f("ngModelChange",function(y){return v(p),x(t.onGuestsView(y))}),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"),U(24,vi,1,1,null,null,kt),h(26,"keyvalue"),o()()(),n(27,"app-virtual-scroll",15),h(28,"searchFilter"),f("contextmenu",function(y){return v(p),x(t.onContextMenu(y))}),n(29,"table",14)(30,"tbody",16),U(31,Li,4,7,"tr",17,_i),o()()(),n(33,"div",18)(34,"span",19),m(35),h(36,"translate"),o()(),n(37,"context-menu",null,0),D(39,Oi,3,2,"ng-template",20),f("execute",function(){return v(p),x(t.openDialog(!0))}),D(40,Bi,0,0,"ng-template",21)(41,$i,3,1,"ng-template",20),f("execute",function(){return v(p),x(t.loadUsersOrGuests())}),o(),n(42,"context-menu",null,1),D(44,Hi,3,2,"ng-template",20),f("execute",function(){return v(p),x(t.openDialog())}),D(45,ji,0,0,"ng-template",21)(46,qi,3,1,"ng-template",20),f("execute",function(){return v(p),x(t.impersonateIdentity())}),o()}l&2&&(a(),c("tooltip",A(2,19,"Refresh",t.locale.language)),a(2),c("icon",t.icons.faRotate)("animation",t.loading?"spin":null),a(),c("tooltip",A(5,22,t.guestsView?"New guest":"New user",t.locale.language)),a(2),c("icon",t.icons.faUserPlus),a(),c("disabled",!t.selected)("tooltip",A(8,25,t.guestsView?"Edit guest":"Edit user",t.locale.language)),a(2),c("icon",t.icons.faUserPen),a(),c("disabled",!t.selected)("tooltip",A(11,28,"Impersonate identity",t.locale.language)),a(2),c("icon",t.icons.faUserSecret),a(2),c("ngModel",t.guestsView),a(2),c("icon",t.guestsView?t.icons.faToggleOn:t.icons.faToggleOff),a(8),k(A(26,31,t.tableHeaders,t.originalOrderKeyValue)),a(3),c("bufferAmount",5)("items",A(28,34,t.users,t.inputFilter.search())),a(4),k(t.scrollView==null?null:t.scrollView.viewPortItems),a(4),G("",t.users.length," ",A(36,37,t.guestsView?"guests":"users",t.locale.language)),a(5),c("divider",!0),a(5),c("divider",!0))},dependencies:[L,Ve,We,B,Ne,Se,_t,ft,ut,xt,ge,O,ce,yt,X,$e,bt,Z],encapsulation:2});let e=r;return e})();export{Mo as AdminUsersComponent};
@@ -0,0 +1 @@
1
+ import{a as T,b as S,c as d,d as A,e as c,p as b}from"./chunk-IEUANP3Q.js";import{Da as U,V as N,Y as R,Ya as k,fb as h,nb as C,qa as O,ua as l,yb as H,zb as P}from"./chunk-2TZUZMCM.js";import{d as g}from"./chunk-RKNTQYMU.js";import{$ as _,G as a,O as f,Pc as I,Z as m,ca as x,ha as i,p as o,q as u,v as n}from"./chunk-6IRL673W.js";var F="Client token is expired";var E={BASE:"auth",LOGIN:"login"};var se=(()=>{let s=class s{constructor(){this.http=i(I),this.router=i(g),this.store=i(C),this.userService=i(b),this.layout=i(P),this.electron=i(H),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(T,{login:e,password:t}).pipe(n(r=>r.server.twoFaEnabled&&r.user.twoFaEnabled?(this.accessExpiration=r.token.access_2fa_expiration,this.refreshExpiration=this.accessExpiration,{success:!0,twoFaEnabled:!0,message:null}):(this.initUserFromResponse(r),{success:!0,message:null})),a(r=>(console.warn(r),o({success:!1,message:r.error.message||r.message}))))}loginElectron(){return this.electron.authenticate().pipe(m(e=>this.http.post(N,e).pipe(n(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(h.SERVER.AUTHENTICATION_TOKEN_UPDATE,t.client_token_update),!0)),a(t=>(console.warn(t),t.error.message===F?this.electron.send(h.SERVER.AUTHENTICATION_TOKEN_EXPIRED):this.electron.send(h.SERVER.AUTHENTICATION_FAILED),o(!1))))))}logout(e=!0,t=!1){if((e||t)&&this.store.userImpersonate()){this.logoutImpersonateUser();return}this.userService.disconnectWebSocket(),this.clearCookies().pipe(f(()=>{this.accessExpiration=0,this.refreshExpiration=0,this.layout.clean(),this.store.clean(),e&&this.router.navigate([E.BASE,E.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([l.BASE,l.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),this.setServerConfig(e.server))}isLogged(){return!this.refreshTokenHasExpired()}refreshToken(){return this.http.post(d,null).pipe(n(e=>(this.accessExpiration=e.access_expiration,this.refreshExpiration=e.refresh_expiration,!0)),a(e=>(console.debug("token has expired"),this.electron.enabled?(console.debug("login with app"),this.loginElectron()):(this.logout(!0,!0),u(()=>e)))))}checkUserAuthAndLoad(e){return this.refreshTokenHasExpired()?this.electron.enabled?this.loginElectron():(this.returnUrl=e.length>1?e:null,this.logout(),o(!1)):this.store.user.getValue()?o(!0):this.http.get(R).pipe(_(t=>{this.userService.initUser(t.user),this.setServerConfig(t.server)}),n(()=>!0),a(t=>(t.status===401?this.logout():console.warn(t),o(!1))))}checkCSRF(e){return e.headers.has(c)?e.clone({headers:e.headers.set(c,k(c))}):e}loginWith2Fa(e){return this.http.post(A,e)}setServerConfig(e){e&&this.store.server.set(e)}refreshTokenHasExpired(){return this.refreshExpiration===0||U()>=this.refreshExpiration}clearCookies(){return this.http.post(S,null)}};s.\u0275fac=function(t){return new(t||s)},s.\u0275prov=x({token:s,factory:s.\u0275fac,providedIn:"root"});let p=s;return p})();export{E as a,se as b};
@@ -1 +1 @@
1
- import{Pa as $}from"./chunk-4U5A2DEP.js";import{Ac as R,Eb as o,Fb as y,Gb as x,Lb as C,Ma as c,Mb as w,Nb as b,Pb as d,Qa as E,Qb as f,Ra as u,Sb as N,Xa as m,Ya as M,_a as j,ab as h,ca as I,da as S,dc as g,ec as U,gc as _,hc as T,ib as v,jb as F,kb as P,pb as s,qb as p,rb as l,va as D,ya as B,yb as k,zc as O}from"./chunk-HW2H3ISM.js";var V=["*"];function J(t,e){t&1&&k(0)}function K(t,e){if(t&1&&(p(0,"bar",3),x(1),l()),t&2){let a=o();s("type",a.type)("value",a._value)("max",a.max)("animate",a.animate)("striped",a.striped)}}function L(t,e){if(t&1&&(p(0,"bar",3),d(1),l()),t&2){let a=e.$implicit,i=o(2);s("type",a.type)("value",a.value)("max",a.max||i.max)("animate",i.animate)("striped",i.striped),c(),f(a.label)}}function W(t,e){if(t&1&&h(0,L,2,6,"bar",4),t&2){let a=o();s("ngForOf",a._values)}}var X=(()=>{let e=class e{constructor(i,n){this.el=i,this.renderer=n,this.max=100,this.value=0,this.animate=!1,this.striped=!1,this.type="info",this.percent=100}ngOnChanges(i){(i.value||i.max)&&(this.percent=100*(Number(i.value?.currentValue||this.value)/Number(i.max?.currentValue||this.max||100))),i.type&&this.applyTypeClasses()}applyTypeClasses(){if(this._prevType){let i=`progress-bar-${this._prevType}`,n=`bg-${this._prevType}`;this.renderer.removeClass(this.el.nativeElement,i),this.renderer.removeClass(this.el.nativeElement,n),this._prevType=void 0}if(this.type){let i=`progress-bar-${this.type}`,n=`bg-${this.type}`;this.renderer.addClass(this.el.nativeElement,i),this.renderer.addClass(this.el.nativeElement,n),this._prevType=this.type}}};e.\u0275fac=function(n){return new(n||e)(u(B),u(E))},e.\u0275cmp=m({type:e,selectors:[["bar"]],hostAttrs:["role","progressbar","aria-valuemin","0"],hostVars:13,hostBindings:function(n,r){n&2&&(v("aria-valuenow",r.value)("aria-valuetext",r.percent?r.percent.toFixed(0)+"%":"")("aria-valuemax",r.max),w("height","100","%")("width",r.percent,"%"),b("progress-bar",!0)("progress-bar-animated",r.animate)("progress-bar-striped",r.striped))},inputs:{max:"max",value:"value",animate:"animate",striped:"striped",type:"type"},features:[D],ngContentSelectors:V,decls:1,vars:0,template:function(n,r){n&1&&(y(),x(0))},encapsulation:2,changeDetection:0});let t=e;return t})(),Y=(()=>{let e=class e{constructor(){this.animate=!1,this.max=100}};e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=I({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})(),A=(()=>{let e=class e{set value(i){this.isStacked=Array.isArray(i),typeof i=="number"?(this._value=i,this._values=void 0):(this._value=void 0,this._values=i)}constructor(i){this.max=100,this.animate=!1,this.striped=!1,this.isStacked=!1,this._value=0,Object.assign(this,i)}};e.\u0275fac=function(n){return new(n||e)(u(Y))},e.\u0275cmp=m({type:e,selectors:[["progressbar"]],hostVars:3,hostBindings:function(n,r){n&2&&(v("max",r.max),b("progress",!0))},inputs:{max:"max",animate:"animate",striped:"striped",type:"type",value:"value"},ngContentSelectors:V,decls:5,vars:3,consts:[["NotStacked",""],["Stacked",""],[4,"ngIf","ngIfThen","ngIfElse"],[3,"type","value","max","animate","striped"],[3,"type","value","max","animate","striped",4,"ngFor","ngForOf"]],template:function(n,r){if(n&1&&(y(),h(0,J,1,0,"ng-container",2)(1,K,2,5,"ng-template",null,0,T)(3,W,1,1,"ng-template",null,1,T)),n&2){let z=C(2),G=C(4);s("ngIf",!r.isStacked)("ngIfThen",z)("ngIfElse",G)}},dependencies:[R,X,O],styles:["[_nghost-%COMP%]{width:100%;display:flex}"],changeDetection:0});let t=e;return t})(),H=(()=>{let e=class e{static forRoot(){return{ngModule:e,providers:[]}}};e.\u0275fac=function(n){return new(n||e)},e.\u0275mod=M({type:e}),e.\u0275inj=S({});let t=e;return t})();var q=(()=>{let e=class e{transform(i,n=0,r=!1){return $(i,n,r)}};e.\u0275fac=function(n){return new(n||e)},e.\u0275pipe=j({name:"toBytes",type:e,pure:!0});let t=e;return t})();function ee(t,e){if(t&1&&(p(0,"progressbar",0)(1,"span",1),d(2),g(3,"toBytes"),g(4,"toBytes"),l()()),t&2){let a=o();s("max",a.item.storageQuota)("value",a.item.storageUsage)("type",null),c(2),N("",_(3,5,a.item.storageUsage,2,!0)," / ",U(4,9,a.item.storageQuota))}}function te(t,e){if(t&1&&(p(0,"progressbar",0)(1,"span",1),d(2),g(3,"toBytes"),l()()),t&2){let a=o();s("max",a.item.storageUsage)("value",a.item.storageUsage)("type",null),c(2),f(_(3,4,a.item.storageUsage,2,!0))}}var oe=(()=>{let e=class e{constructor(){this.item={storageUsage:0,storageQuota:null}}};e.\u0275fac=function(n){return new(n||e)},e.\u0275cmp=m({type:e,selectors:[["app-storage-usage"]],inputs:{item:"item"},decls:2,vars:1,consts:[[1,"bg-black",3,"max","value","type"],[1,"ms-1","me-1"]],template:function(n,r){n&1&&F(0,ee,5,11,"progressbar",0)(1,te,4,8,"progressbar",0),n&2&&P(r.item.storageQuota>0?0:1)},dependencies:[H,A,q],encapsulation:2});let t=e;return t})();export{A as a,H as b,q as c,oe as d};
1
+ import{Sa as $}from"./chunk-2TZUZMCM.js";import{Ac as R,Eb as o,Fb as y,Gb as x,Lb as C,Ma as c,Mb as w,Nb as b,Pb as d,Qa as E,Qb as f,Ra as u,Sb as N,Xa as m,Ya as M,_a as j,ab as h,ca as I,da as S,dc as g,ec as U,gc as _,hc as T,ib as v,jb as F,kb as P,pb as s,qb as p,rb as l,va as D,ya as B,yb as k,zc as O}from"./chunk-6IRL673W.js";var V=["*"];function J(t,e){t&1&&k(0)}function K(t,e){if(t&1&&(p(0,"bar",3),x(1),l()),t&2){let a=o();s("type",a.type)("value",a._value)("max",a.max)("animate",a.animate)("striped",a.striped)}}function L(t,e){if(t&1&&(p(0,"bar",3),d(1),l()),t&2){let a=e.$implicit,i=o(2);s("type",a.type)("value",a.value)("max",a.max||i.max)("animate",i.animate)("striped",i.striped),c(),f(a.label)}}function W(t,e){if(t&1&&h(0,L,2,6,"bar",4),t&2){let a=o();s("ngForOf",a._values)}}var X=(()=>{let e=class e{constructor(i,n){this.el=i,this.renderer=n,this.max=100,this.value=0,this.animate=!1,this.striped=!1,this.type="info",this.percent=100}ngOnChanges(i){(i.value||i.max)&&(this.percent=100*(Number(i.value?.currentValue||this.value)/Number(i.max?.currentValue||this.max||100))),i.type&&this.applyTypeClasses()}applyTypeClasses(){if(this._prevType){let i=`progress-bar-${this._prevType}`,n=`bg-${this._prevType}`;this.renderer.removeClass(this.el.nativeElement,i),this.renderer.removeClass(this.el.nativeElement,n),this._prevType=void 0}if(this.type){let i=`progress-bar-${this.type}`,n=`bg-${this.type}`;this.renderer.addClass(this.el.nativeElement,i),this.renderer.addClass(this.el.nativeElement,n),this._prevType=this.type}}};e.\u0275fac=function(n){return new(n||e)(u(B),u(E))},e.\u0275cmp=m({type:e,selectors:[["bar"]],hostAttrs:["role","progressbar","aria-valuemin","0"],hostVars:13,hostBindings:function(n,r){n&2&&(v("aria-valuenow",r.value)("aria-valuetext",r.percent?r.percent.toFixed(0)+"%":"")("aria-valuemax",r.max),w("height","100","%")("width",r.percent,"%"),b("progress-bar",!0)("progress-bar-animated",r.animate)("progress-bar-striped",r.striped))},inputs:{max:"max",value:"value",animate:"animate",striped:"striped",type:"type"},features:[D],ngContentSelectors:V,decls:1,vars:0,template:function(n,r){n&1&&(y(),x(0))},encapsulation:2,changeDetection:0});let t=e;return t})(),Y=(()=>{let e=class e{constructor(){this.animate=!1,this.max=100}};e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=I({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})(),A=(()=>{let e=class e{set value(i){this.isStacked=Array.isArray(i),typeof i=="number"?(this._value=i,this._values=void 0):(this._value=void 0,this._values=i)}constructor(i){this.max=100,this.animate=!1,this.striped=!1,this.isStacked=!1,this._value=0,Object.assign(this,i)}};e.\u0275fac=function(n){return new(n||e)(u(Y))},e.\u0275cmp=m({type:e,selectors:[["progressbar"]],hostVars:3,hostBindings:function(n,r){n&2&&(v("max",r.max),b("progress",!0))},inputs:{max:"max",animate:"animate",striped:"striped",type:"type",value:"value"},ngContentSelectors:V,decls:5,vars:3,consts:[["NotStacked",""],["Stacked",""],[4,"ngIf","ngIfThen","ngIfElse"],[3,"type","value","max","animate","striped"],[3,"type","value","max","animate","striped",4,"ngFor","ngForOf"]],template:function(n,r){if(n&1&&(y(),h(0,J,1,0,"ng-container",2)(1,K,2,5,"ng-template",null,0,T)(3,W,1,1,"ng-template",null,1,T)),n&2){let z=C(2),G=C(4);s("ngIf",!r.isStacked)("ngIfThen",z)("ngIfElse",G)}},dependencies:[R,X,O],styles:["[_nghost-%COMP%]{width:100%;display:flex}"],changeDetection:0});let t=e;return t})(),H=(()=>{let e=class e{static forRoot(){return{ngModule:e,providers:[]}}};e.\u0275fac=function(n){return new(n||e)},e.\u0275mod=M({type:e}),e.\u0275inj=S({});let t=e;return t})();var q=(()=>{let e=class e{transform(i,n=0,r=!1){return $(i,n,r)}};e.\u0275fac=function(n){return new(n||e)},e.\u0275pipe=j({name:"toBytes",type:e,pure:!0});let t=e;return t})();function ee(t,e){if(t&1&&(p(0,"progressbar",0)(1,"span",1),d(2),g(3,"toBytes"),g(4,"toBytes"),l()()),t&2){let a=o();s("max",a.item.storageQuota)("value",a.item.storageUsage)("type",null),c(2),N("",_(3,5,a.item.storageUsage,2,!0)," / ",U(4,9,a.item.storageQuota))}}function te(t,e){if(t&1&&(p(0,"progressbar",0)(1,"span",1),d(2),g(3,"toBytes"),l()()),t&2){let a=o();s("max",a.item.storageUsage)("value",a.item.storageUsage)("type",null),c(2),f(_(3,4,a.item.storageUsage,2,!0))}}var oe=(()=>{let e=class e{constructor(){this.item={storageUsage:0,storageQuota:null}}};e.\u0275fac=function(n){return new(n||e)},e.\u0275cmp=m({type:e,selectors:[["app-storage-usage"]],inputs:{item:"item"},decls:2,vars:1,consts:[[1,"bg-black",3,"max","value","type"],[1,"ms-1","me-1"]],template:function(n,r){n&1&&F(0,ee,5,11,"progressbar",0)(1,te,4,8,"progressbar",0),n&2&&P(r.item.storageQuota>0?0:1)},dependencies:[H,A,q],encapsulation:2});let t=e;return t})();export{A as a,H as b,q as c,oe as d};
@@ -1 +1 @@
1
- import{Ad as f,_a as c,ha as a}from"./chunk-HW2H3ISM.js";var d=(()=>{let t=class t{constructor(){this.translate=a(f)}transform(e,i=[]){let n="";if(!e)return n;for(let[o,s]of Object.entries(e).filter(([l,p])=>i.indexOf(l)===-1))s&&(n+=`${s} ${this.translate.translate(s===1?o.slice(0,-1):o)}, `);return n.slice(0,-2)}};t.\u0275fac=function(i){return new(i||t)},t.\u0275pipe=c({name:"joinCounts",type:t,pure:!0});let r=t;return r})();export{d as a};
1
+ import{Cd as f,_a as c,ha as a}from"./chunk-6IRL673W.js";var d=(()=>{let t=class t{constructor(){this.translate=a(f)}transform(e,i=[]){let n="";if(!e)return n;for(let[o,s]of Object.entries(e).filter(([l,p])=>i.indexOf(l)===-1))s&&(n+=`${s} ${this.translate.translate(s===1?o.slice(0,-1):o)}, `);return n.slice(0,-2)}};t.\u0275fac=function(i){return new(i||t)},t.\u0275pipe=c({name:"joinCounts",type:t,pure:!0});let r=t;return r})();export{d as a};