@acorex/modules 19.3.6 → 19.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/auth/lib/pages/account/account.module.d.ts +1 -1
  2. package/common/lib/features/global-search/search.module.d.ts +1 -1
  3. package/dashboard-management/lib/features/home-dashboard/dashboard-home/home-dashboard.d.ts +38 -5
  4. package/dashboard-management/lib/features/home-dashboard/dashboard-home/home-dashboard.store.d.ts +40 -1
  5. package/dashboard-management/lib/features/home-dashboard/dashboard-popups/add-dashboard-popup.d.ts +7 -7
  6. package/dashboard-management/lib/features/shared/widgets/bar-chart/bar-chart-widget.component.d.ts +4 -3
  7. package/dashboard-management/lib/features/shared/widgets/donut-chart/donut-chart-widget.component.d.ts +4 -3
  8. package/dashboard-management/lib/features/shared/widgets/gauge-chart/gauge-chart-widget.component.d.ts +3 -2
  9. package/dashboard-management/lib/features/shared/widgets/line-chart/line-chart-widget.component.d.ts +1 -0
  10. package/document-management/lib/badge.provider.d.ts +1 -1
  11. package/document-management/lib/features/drive/drive.component.d.ts +2 -2
  12. package/document-management/lib/features/shared/document-manager.service.d.ts +2 -1
  13. package/document-management/lib/features/shared/document-manager.types.d.ts +3 -0
  14. package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-edit.component.d.ts +5 -4
  15. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-bj5xztse.mjs → acorex-modules-auth-acorex-modules-auth-BhTLWa3y.mjs} +14 -13
  16. package/fesm2022/acorex-modules-auth-acorex-modules-auth-BhTLWa3y.mjs.map +1 -0
  17. package/fesm2022/{acorex-modules-auth-app-chooser.component-BOL3VzC1.mjs → acorex-modules-auth-app-chooser.component-J5vGfv56.mjs} +2 -2
  18. package/fesm2022/{acorex-modules-auth-app-chooser.component-BOL3VzC1.mjs.map → acorex-modules-auth-app-chooser.component-J5vGfv56.mjs.map} +1 -1
  19. package/fesm2022/{acorex-modules-auth-login.module-C1AoXhCI.mjs → acorex-modules-auth-login.module-DUlctvyx.mjs} +4 -4
  20. package/fesm2022/{acorex-modules-auth-login.module-C1AoXhCI.mjs.map → acorex-modules-auth-login.module-DUlctvyx.mjs.map} +1 -1
  21. package/fesm2022/{acorex-modules-auth-master.layout-vuHfrDxu.mjs → acorex-modules-auth-master.layout-BFCxBj8H.mjs} +6 -5
  22. package/fesm2022/acorex-modules-auth-master.layout-BFCxBj8H.mjs.map +1 -0
  23. package/fesm2022/{acorex-modules-auth-password.component-Dtcz95NV.mjs → acorex-modules-auth-password.component-CPpJug_X.mjs} +2 -2
  24. package/fesm2022/{acorex-modules-auth-password.component-Dtcz95NV.mjs.map → acorex-modules-auth-password.component-CPpJug_X.mjs.map} +1 -1
  25. package/fesm2022/{acorex-modules-auth-password.component-C71v2x71.mjs → acorex-modules-auth-password.component-CSE7_3Ey.mjs} +2 -2
  26. package/fesm2022/{acorex-modules-auth-password.component-C71v2x71.mjs.map → acorex-modules-auth-password.component-CSE7_3Ey.mjs.map} +1 -1
  27. package/fesm2022/{acorex-modules-auth-routes-lJgHFaQR.mjs → acorex-modules-auth-routes-BSk5njsU.mjs} +2 -2
  28. package/fesm2022/{acorex-modules-auth-routes-lJgHFaQR.mjs.map → acorex-modules-auth-routes-BSk5njsU.mjs.map} +1 -1
  29. package/fesm2022/{acorex-modules-auth-two-factor.module-C9SfEHF7.mjs → acorex-modules-auth-two-factor.module-D3mhXLXx.mjs} +2 -2
  30. package/fesm2022/{acorex-modules-auth-two-factor.module-C9SfEHF7.mjs.map → acorex-modules-auth-two-factor.module-D3mhXLXx.mjs.map} +1 -1
  31. package/fesm2022/{acorex-modules-auth-user-sessions.component-CCsoLecU.mjs → acorex-modules-auth-user-sessions.component-COeH4jjg.mjs} +2 -2
  32. package/fesm2022/{acorex-modules-auth-user-sessions.component-CCsoLecU.mjs.map → acorex-modules-auth-user-sessions.component-COeH4jjg.mjs.map} +1 -1
  33. package/fesm2022/acorex-modules-auth.mjs +1 -1
  34. package/fesm2022/{acorex-modules-common-search-popup.component-D1Ddwc_U.mjs → acorex-modules-common-search-popup.component-tUvSQpDP.mjs} +5 -5
  35. package/fesm2022/acorex-modules-common-search-popup.component-tUvSQpDP.mjs.map +1 -0
  36. package/fesm2022/acorex-modules-common.mjs +5 -4
  37. package/fesm2022/acorex-modules-common.mjs.map +1 -1
  38. package/fesm2022/acorex-modules-dashboard-management.mjs +1136 -1231
  39. package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
  40. package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-k2QMxYk9.mjs → acorex-modules-document-management-acorex-modules-document-management-BcgxVPuR.mjs} +120 -61
  41. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-BcgxVPuR.mjs.map +1 -0
  42. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-BHCuKbmu.mjs → acorex-modules-document-management-attachment-widget.component-Cwa7HuUo.mjs} +4 -4
  43. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-BHCuKbmu.mjs.map → acorex-modules-document-management-attachment-widget.component-Cwa7HuUo.mjs.map} +1 -1
  44. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-CNvlm2Va.mjs → acorex-modules-document-management-create-folder-dialog.component-BN0pWX7a.mjs} +2 -2
  45. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-CNvlm2Va.mjs.map → acorex-modules-document-management-create-folder-dialog.component-BN0pWX7a.mjs.map} +1 -1
  46. package/fesm2022/{acorex-modules-document-management-details-view.component-DE84Itc_.mjs → acorex-modules-document-management-details-view.component-DXn54h2g.mjs} +2 -2
  47. package/fesm2022/{acorex-modules-document-management-details-view.component-DE84Itc_.mjs.map → acorex-modules-document-management-details-view.component-DXn54h2g.mjs.map} +1 -1
  48. package/fesm2022/{acorex-modules-document-management-drive-choose.component-CKMI_oKM.mjs → acorex-modules-document-management-drive-choose.component-CTrPj9t3.mjs} +2 -2
  49. package/fesm2022/{acorex-modules-document-management-drive-choose.component-CKMI_oKM.mjs.map → acorex-modules-document-management-drive-choose.component-CTrPj9t3.mjs.map} +1 -1
  50. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-BPY3z02r.mjs → acorex-modules-document-management-large-icons-view.component-DwAyEZUU.mjs} +2 -2
  51. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-BPY3z02r.mjs.map → acorex-modules-document-management-large-icons-view.component-DwAyEZUU.mjs.map} +1 -1
  52. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-eymKR4xY.mjs → acorex-modules-document-management-large-tiles-view.component-B0n1rs-g.mjs} +2 -2
  53. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-eymKR4xY.mjs.map → acorex-modules-document-management-large-tiles-view.component-B0n1rs-g.mjs.map} +1 -1
  54. package/fesm2022/{acorex-modules-document-management-list-view.component-CGSls2hG.mjs → acorex-modules-document-management-list-view.component-CIAQBAcy.mjs} +2 -2
  55. package/fesm2022/{acorex-modules-document-management-list-view.component-CGSls2hG.mjs.map → acorex-modules-document-management-list-view.component-CIAQBAcy.mjs.map} +1 -1
  56. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-DROTONyx.mjs → acorex-modules-document-management-permission-definition.provider-BBXmMuIh.mjs} +3 -3
  57. package/fesm2022/acorex-modules-document-management-permission-definition.provider-BBXmMuIh.mjs.map +1 -0
  58. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-BPU5NKy8.mjs → acorex-modules-document-management-rename-node-dialog.component-D28zKZqZ.mjs} +2 -2
  59. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-BPU5NKy8.mjs.map → acorex-modules-document-management-rename-node-dialog.component-D28zKZqZ.mjs.map} +1 -1
  60. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-CYjLGCUJ.mjs → acorex-modules-document-management-small-icons-view.component-Dg5nb2yW.mjs} +2 -2
  61. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-CYjLGCUJ.mjs.map → acorex-modules-document-management-small-icons-view.component-Dg5nb2yW.mjs.map} +1 -1
  62. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-BnXo0uWh.mjs → acorex-modules-document-management-small-tiles-view.component-BCaQYHQF.mjs} +2 -2
  63. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-BnXo0uWh.mjs.map → acorex-modules-document-management-small-tiles-view.component-BCaQYHQF.mjs.map} +1 -1
  64. package/fesm2022/acorex-modules-document-management.mjs +1 -1
  65. package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-Bh0D44Yv.mjs → acorex-modules-form-template-management-acorex-modules-form-template-management-KTKkPz-B.mjs} +9 -9
  66. package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-Bh0D44Yv.mjs.map → acorex-modules-form-template-management-acorex-modules-form-template-management-KTKkPz-B.mjs.map} +1 -1
  67. package/fesm2022/{acorex-modules-form-template-management-category.entity-CMez7XCT.mjs → acorex-modules-form-template-management-category.entity-DxgqHkjI.mjs} +2 -2
  68. package/fesm2022/{acorex-modules-form-template-management-category.entity-CMez7XCT.mjs.map → acorex-modules-form-template-management-category.entity-DxgqHkjI.mjs.map} +1 -1
  69. package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-D_VOBOyf.mjs → acorex-modules-form-template-management-permission-definition.provider-6czJEo8f.mjs} +13 -13
  70. package/fesm2022/acorex-modules-form-template-management-permission-definition.provider-6czJEo8f.mjs.map +1 -0
  71. package/fesm2022/{acorex-modules-form-template-management-settings.provider-CzvnYncE.mjs → acorex-modules-form-template-management-settings.provider-D3nbUDMw.mjs} +2 -2
  72. package/fesm2022/{acorex-modules-form-template-management-settings.provider-CzvnYncE.mjs.map → acorex-modules-form-template-management-settings.provider-D3nbUDMw.mjs.map} +1 -1
  73. package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-CJqwkNDn.mjs → acorex-modules-form-template-management-template-widget-edit.component-BLobMX4C.mjs} +2 -2
  74. package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-CJqwkNDn.mjs.map → acorex-modules-form-template-management-template-widget-edit.component-BLobMX4C.mjs.map} +1 -1
  75. package/fesm2022/{acorex-modules-form-template-management-template.entity-CSUgPKlG.mjs → acorex-modules-form-template-management-template.entity-Ci6QzE16.mjs} +2 -2
  76. package/fesm2022/{acorex-modules-form-template-management-template.entity-CSUgPKlG.mjs.map → acorex-modules-form-template-management-template.entity-Ci6QzE16.mjs.map} +1 -1
  77. package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-DDFNie66.mjs → acorex-modules-form-template-management-viewer-popup.component-DIzlC6tX.mjs} +2 -2
  78. package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-DDFNie66.mjs.map → acorex-modules-form-template-management-viewer-popup.component-DIzlC6tX.mjs.map} +1 -1
  79. package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
  80. package/fesm2022/acorex-modules-notification-management.mjs +3 -3
  81. package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
  82. package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-CaNP3qwK.mjs → acorex-modules-organization-management-org-chart-configuration.page-DNzhGz5G.mjs} +7 -7
  83. package/fesm2022/acorex-modules-organization-management-org-chart-configuration.page-DNzhGz5G.mjs.map +1 -0
  84. package/fesm2022/{acorex-modules-organization-management-org-chart.page-1UgQCqvl.mjs → acorex-modules-organization-management-org-chart.page-CP8zz-Bc.mjs} +22 -10
  85. package/fesm2022/acorex-modules-organization-management-org-chart.page-CP8zz-Bc.mjs.map +1 -0
  86. package/fesm2022/acorex-modules-organization-management.mjs +117 -5
  87. package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
  88. package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-Bh6NW7UJ.mjs → acorex-modules-platform-management-acorex-modules-platform-management-CO8rzxOh.mjs} +16 -15
  89. package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-CO8rzxOh.mjs.map +1 -0
  90. package/fesm2022/{acorex-modules-platform-management-list-version.component-Ctqr4YiY.mjs → acorex-modules-platform-management-list-version.component-gWnz7cp6.mjs} +2 -2
  91. package/fesm2022/{acorex-modules-platform-management-list-version.component-Ctqr4YiY.mjs.map → acorex-modules-platform-management-list-version.component-gWnz7cp6.mjs.map} +1 -1
  92. package/fesm2022/{acorex-modules-platform-management-settings.provider-Bz3Npk_t.mjs → acorex-modules-platform-management-settings.provider-JEwENvqy.mjs} +2 -2
  93. package/fesm2022/{acorex-modules-platform-management-settings.provider-Bz3Npk_t.mjs.map → acorex-modules-platform-management-settings.provider-JEwENvqy.mjs.map} +1 -1
  94. package/fesm2022/acorex-modules-platform-management.mjs +1 -1
  95. package/fesm2022/acorex-modules-security-management-permissions-editor.component-Ccx0_9L_.mjs +218 -0
  96. package/fesm2022/acorex-modules-security-management-permissions-editor.component-Ccx0_9L_.mjs.map +1 -0
  97. package/fesm2022/acorex-modules-security-management-permissions-widget-column.component-P2buwWAw.mjs +41 -0
  98. package/fesm2022/acorex-modules-security-management-permissions-widget-column.component-P2buwWAw.mjs.map +1 -0
  99. package/fesm2022/acorex-modules-security-management-permissions-widget-designer.component-CoqOAn_m.mjs +21 -0
  100. package/fesm2022/acorex-modules-security-management-permissions-widget-designer.component-CoqOAn_m.mjs.map +1 -0
  101. package/fesm2022/acorex-modules-security-management-permissions-widget-edit.component-P3adQ1xt.mjs +51 -0
  102. package/fesm2022/acorex-modules-security-management-permissions-widget-edit.component-P3adQ1xt.mjs.map +1 -0
  103. package/fesm2022/acorex-modules-security-management-permissions-widget-print.component-D4lk67fE.mjs +22 -0
  104. package/fesm2022/acorex-modules-security-management-permissions-widget-print.component-D4lk67fE.mjs.map +1 -0
  105. package/fesm2022/acorex-modules-security-management-permissions-widget-view.component-Cz32ewum.mjs +21 -0
  106. package/fesm2022/acorex-modules-security-management-permissions-widget-view.component-Cz32ewum.mjs.map +1 -0
  107. package/fesm2022/acorex-modules-security-management.mjs +185 -18
  108. package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
  109. package/fesm2022/{acorex-modules-settings-management-setting-page.component-X33xeQrg.mjs → acorex-modules-settings-management-setting-page.component-BgQoPRy_.mjs} +7 -7
  110. package/fesm2022/acorex-modules-settings-management-setting-page.component-BgQoPRy_.mjs.map +1 -0
  111. package/fesm2022/{acorex-modules-settings-management-setting-view.component-DryghOjs.mjs → acorex-modules-settings-management-setting-view.component-CX_FKIxI.mjs} +4 -3
  112. package/fesm2022/acorex-modules-settings-management-setting-view.component-CX_FKIxI.mjs.map +1 -0
  113. package/fesm2022/acorex-modules-settings-management.mjs +3 -3
  114. package/fesm2022/acorex-modules-settings-management.mjs.map +1 -1
  115. package/fesm2022/acorex-modules-training-management.mjs +2 -2
  116. package/fesm2022/acorex-modules-training-management.mjs.map +1 -1
  117. package/form-template-management/index.d.ts +1 -0
  118. package/notification-management/lib/notification-management.module.d.ts +1 -1
  119. package/organization-management/lib/features/employee/employee-feature.module.d.ts +9 -0
  120. package/organization-management/lib/features/organization-chart/org-chart-configuration.page.d.ts +2 -2
  121. package/organization-management/lib/features/organization-chart/org-chart.page.d.ts +3 -2
  122. package/organization-management/lib/organization-management.module.d.ts +2 -1
  123. package/package.json +9 -9
  124. package/platform-management/lib/entities/data-source/data-source.service.d.ts +1 -1
  125. package/platform-management/lib/entities/data-source/data-source.types.d.ts +2 -2
  126. package/platform-management/lib/entities/data-source/datasource-provider.dynamic.d.ts +1 -1
  127. package/platform-management/lib/entities/meta-data-definition/meta-data-definition.service.d.ts +2 -2
  128. package/platform-management/lib/entities/meta-data-definition/meta-data-definition.types.d.ts +2 -2
  129. package/platform-management/lib/entities/meta-data-definition-category/category.service.d.ts +1 -1
  130. package/platform-management/lib/entities/meta-data-definition-category/category.types.d.ts +2 -2
  131. package/platform-management/lib/features/app-terms/pages/list/list-terms.component.d.ts +2 -2
  132. package/platform-management/lib/features/common/common.module.d.ts +1 -1
  133. package/platform-management/lib/platform-management.module.d.ts +1 -1
  134. package/security-management/lib/features/permissions/permissions-editor/permissions-editor.component.d.ts +70 -0
  135. package/security-management/lib/features/permissions/permissions-widget/permissions-widget-column.component.d.ts +10 -0
  136. package/security-management/lib/features/permissions/permissions-widget/permissions-widget-designer.component.d.ts +6 -0
  137. package/security-management/lib/features/permissions/permissions-widget/permissions-widget-edit.component.d.ts +8 -0
  138. package/security-management/lib/features/permissions/permissions-widget/permissions-widget-print.component.d.ts +6 -0
  139. package/security-management/lib/features/permissions/permissions-widget/permissions-widget-view.component.d.ts +6 -0
  140. package/security-management/lib/features/permissions/permissions-widget/permissions-widget.config.d.ts +2 -0
  141. package/security-management/lib/features/permissions/permissions.module.d.ts +8 -0
  142. package/security-management/lib/features/permissions/workflows/assign-permissions.workflow.d.ts +10 -0
  143. package/security-management/lib/security-management.module.d.ts +3 -2
  144. package/settings-management/lib/features/settings/setting-page/setting-page.component.d.ts +2 -2
  145. package/fesm2022/acorex-modules-auth-acorex-modules-auth-bj5xztse.mjs.map +0 -1
  146. package/fesm2022/acorex-modules-auth-master.layout-vuHfrDxu.mjs.map +0 -1
  147. package/fesm2022/acorex-modules-common-search-popup.component-D1Ddwc_U.mjs.map +0 -1
  148. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-k2QMxYk9.mjs.map +0 -1
  149. package/fesm2022/acorex-modules-document-management-permission-definition.provider-DROTONyx.mjs.map +0 -1
  150. package/fesm2022/acorex-modules-form-template-management-permission-definition.provider-D_VOBOyf.mjs.map +0 -1
  151. package/fesm2022/acorex-modules-organization-management-org-chart-configuration.page-CaNP3qwK.mjs.map +0 -1
  152. package/fesm2022/acorex-modules-organization-management-org-chart.page-1UgQCqvl.mjs.map +0 -1
  153. package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-Bh6NW7UJ.mjs.map +0 -1
  154. package/fesm2022/acorex-modules-settings-management-setting-page.component-X33xeQrg.mjs.map +0 -1
  155. package/fesm2022/acorex-modules-settings-management-setting-view.component-DryghOjs.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-modules-document-management-acorex-modules-document-management-k2QMxYk9.mjs","sources":["../../../../libs/modules/document-management/src/lib/const.ts","../../../../libs/modules/document-management/src/lib/entity.provider.ts","../../../../libs/modules/document-management/src/lib/permission.keys.ts","../../../../libs/modules/document-management/src/lib/menu.provider.ts","../../../../libs/modules/document-management/src/lib/search-command.provider.ts","../../../../libs/modules/document-management/src/lib/settings.provider.ts","../../../../libs/modules/document-management/src/lib/entities/document/document.service.ts","../../../../libs/modules/document-management/src/lib/entities/document/document.entity.ts","../../../../libs/modules/document-management/src/lib/entities/document/document.module.ts","../../../../libs/modules/document-management/src/lib/entities/document-type/document-type.service.ts","../../../../libs/modules/document-management/src/lib/entities/document-type/document-type.entity.ts","../../../../libs/modules/document-management/src/lib/entities/document-type/document-type.module.ts","../../../../libs/modules/document-management/src/lib/entities/document-type-meta-definition/document-type-meta-definition.service.ts","../../../../libs/modules/document-management/src/lib/entities/document-type-meta-definition/document-type-meta-definition.entity.ts","../../../../libs/modules/document-management/src/lib/entities/document-type-meta-definition/document-type-meta-definition.module.ts","../../../../libs/modules/document-management/src/lib/entities/document-type-meta-value/document-type-meta-value.service.ts","../../../../libs/modules/document-management/src/lib/entities/document-type-meta-value/document-type-meta-value.entity.ts","../../../../libs/modules/document-management/src/lib/entities/document-type-meta-value/document-type-meta-value.module.ts","../../../../libs/modules/document-management/src/lib/entities/document-type-status-definition/document-type-status-definition.service.ts","../../../../libs/modules/document-management/src/lib/entities/document-type-status-definition/document-type-status-definition.entity.ts","../../../../libs/modules/document-management/src/lib/entities/document-type-status-definition/document-type-status-definition.module.ts","../../../../libs/modules/document-management/src/lib/entities/folder/folder.service.ts","../../../../libs/modules/document-management/src/lib/entities/folder/folder.entity.ts","../../../../libs/modules/document-management/src/lib/features/file-type/providers/image.file.ts","../../../../libs/modules/document-management/src/lib/features/file-type/providers/video.file.ts","../../../../libs/modules/document-management/src/lib/features/file-type/providers/document.file.ts","../../../../libs/modules/document-management/src/lib/features/file-type/providers/audio.file.ts","../../../../libs/modules/document-management/src/lib/features/file-type/providers/archive.file.ts","../../../../libs/modules/document-management/src/lib/features/file-type/providers/code.file.ts","../../../../libs/modules/document-management/src/lib/features/file-type/widgets/file-type-extension/file-type-extension-column.component.ts","../../../../libs/modules/document-management/src/lib/features/file-type/widgets/file-type-extension/file-type-extension-designer.component.ts","../../../../libs/modules/document-management/src/lib/features/file-type/widgets/file-type-extension/file-type-extension-edit.component.ts","../../../../libs/modules/document-management/src/lib/features/file-type/widgets/file-type-extension/file-type-extension-view.component.ts","../../../../libs/modules/document-management/src/lib/features/file-type/widgets/file-type-extension/file-type-extension-widget.config.ts","../../../../libs/modules/document-management/src/lib/features/file-type/file-type.module.ts","../../../../libs/modules/document-management/src/lib/features/widgets/document-attachment/document-attachment-widget-column.component.ts","../../../../libs/modules/document-management/src/lib/features/shared/document-manager.service.ts","../../../../libs/modules/document-management/src/lib/features/document-explorer/settings.keys.ts","../../../../libs/modules/document-management/src/lib/features/document-explorer/document-explorer.viewmodel.ts","../../../../libs/modules/document-management/src/lib/features/document-explorer/document-explorer.component.ts","../../../../libs/modules/document-management/src/lib/features/document-explorer/document-explorer.component.html","../../../../libs/modules/document-management/src/lib/features/shared/components/choose-document-type/choose-document-type.component.ts","../../../../libs/modules/document-management/src/lib/features/shared/components/choose-document-type/choose-document-type.component.html","../../../../libs/modules/document-management/src/lib/features/shared/components/document-type-choose-file/document-type-choose-file.component.ts","../../../../libs/modules/document-management/src/lib/features/shared/components/document-type-choose-file/document-type-choose-file.component.html","../../../../libs/modules/document-management/src/lib/features/shared/components/file-viewer-popup/file-viewer-popup.component.ts","../../../../libs/modules/document-management/src/lib/features/shared/components/file-viewer-popup/file-viewer-popup.component.html","../../../../libs/modules/document-management/src/lib/features/shared/components/folder-path-breadcrumbs/folder-path-breadcrumbs.component.ts","../../../../libs/modules/document-management/src/lib/features/shared/components/folder-path-breadcrumbs/folder-path-breadcrumbs.component.html","../../../../libs/modules/document-management/src/lib/features/document-explorer/views/detail-panel/detail-panel.component.ts","../../../../libs/modules/document-management/src/lib/features/document-explorer/views/detail-panel/detail-panel.component.html","../../../../libs/modules/document-management/src/lib/features/drive/drive.component.ts","../../../../libs/modules/document-management/src/lib/features/drive/drive.component.html","../../../../libs/modules/document-management/src/lib/features/widgets/document-attachment/document-attachment-widget-edit.component.ts","../../../../libs/modules/document-management/src/lib/features/widgets/document-attachment/document-attachment-widget-edit.component.html","../../../../libs/modules/document-management/src/lib/features/widgets/document-attachment/document-attachment-widget-print.component.ts","../../../../libs/modules/document-management/src/lib/features/widgets/document-attachment/document-attachment-widget-view.component.ts","../../../../libs/modules/document-management/src/lib/features/widgets/document-attachment/document-attachment-widget.config.ts","../../../../libs/modules/document-management/src/lib/features/workflow/upload/upload.workflow.ts","../../../../libs/modules/document-management/src/lib/badge.provider.ts","../../../../libs/modules/document-management/src/lib/document-management.module.ts","../../../../libs/modules/document-management/src/acorex-modules-document-management.ts"],"sourcesContent":["const config = {\n i18n: 'document-management',\n};\nexport const RootConfig = {\n config,\n module: {\n module: 'DocumentManagement',\n name: 'DocumentManagement',\n title: `t('documentManagement', {scope:\"${config.i18n}\"})`,\n icon: 'fa-light fa-books',\n },\n entities: {\n folder: {\n name: 'Folder',\n title: `t(\"folder\", { scope: \"${config.i18n}\" })`,\n titlePlural: `t(\"folderPlural\", { scope: \"${config.i18n}\" })`,\n icon: 'fa-light fa-folder',\n },\n document: {\n name: 'Document',\n title: `t(\"document\", { scope: \"${config.i18n}\" })`,\n titlePlural: `t(\"documentPlural\", { scope: \"${config.i18n}\" })`,\n icon: 'fa-light fa-file',\n },\n documentType: {\n name: 'DocumentType',\n title: `t(\"documentType\", { scope: \"${config.i18n}\" })`,\n titlePlural: `t(\"documentTypePlural\", { scope: \"${config.i18n}\" })`,\n icon: 'fa-light fa-books',\n },\n documentTypeMetaDefinition: {\n name: 'documentTypeMeta',\n title: `t(\"documentTypeMeta\", { scope: \"${config.i18n}\" })`,\n titlePlural: `t(\"documentTypeMetaPlural\", { scope: \"${config.i18n}\" })`,\n icon: 'fa-light fa-meta',\n },\n documentTypeMetaValue: {\n name: 'documentTypeMetaValue',\n title: `t(\"documentTypeMetaValue\", { scope: \"${config.i18n}\" })`,\n titlePlural: `t(\"documentTypeMetaValuePlural\", { scope: \"${config.i18n}\" })`,\n icon: 'fa-light fa-meta',\n },\n documentTypeStatus: {\n name: 'documentTypeStatus',\n title: `t(\"documentTypeStatus\", { scope: \"${config.i18n}\" })`,\n titlePlural: `t(\"documentTypeStatusPlural\", { scope: \"${config.i18n}\" })`,\n icon: 'fa-light fa-status',\n },\n },\n};\n","import { AXPEntity } from '@acorex/platform/common';\nimport {\n AXPEntityDefinitionLoader,\n AXPEntityDefinitionPreloader,\n AXPEntityPreloadEntity,\n} from '@acorex/platform/layout/entity';\nimport { Injectable, Injector, inject } from '@angular/core';\nimport { RootConfig } from './const';\n\n@Injectable()\nexport class AXMEntityProvider implements AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader {\n private injector = inject(Injector);\n\n public preload(): AXPEntityPreloadEntity[] {\n const module = RootConfig.module.name;\n return Array.from(Object.values(RootConfig.entities)).map((entity: any) => ({\n module: module,\n entity: entity.name,\n }));\n }\n\n async get(moduleName: string, entityName: string): Promise<AXPEntity | null> {\n if (moduleName == RootConfig.module.name) {\n switch (entityName) {\n case RootConfig.entities.document.name:\n return (await import('./entities')).documentFactory(this.injector);\n case RootConfig.entities.documentType.name:\n return (await import('./entities')).documentTypeFactory(this.injector);\n case RootConfig.entities.folder.name:\n return (await import('./entities')).folderFactory(this.injector);\n }\n }\n return null;\n }\n}\n","export const AXMPermissionsKeys = {\n DocumentManagement: {\n Management: 'document-management:manage',\n DocumentType: {\n Management: 'document-management:document-type:manage',\n View: 'document-management:document-type:view',\n Edit: 'document-management:document-type:edit',\n Delete: 'document-management:document-type:delete',\n Create: 'document-management:document-type:create',\n },\n Driver: {\n Management: 'document-management:driver:manage',\n View: 'document-management:driver:view',\n Edit: 'document-management:driver:edit',\n Delete: 'document-management:driver:delete',\n Create: 'document-management:driver:create',\n },\n },\n};\n","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex/platform/common';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { inject } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { RootConfig } from './const';\nimport { AXMPermissionsKeys } from './permission.keys';\n\nexport class AXMMenuProvider implements AXPMenuProvider {\n private entityService = inject(AXPEntityService);\n private sessionService = inject(AXPSessionService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const isAuthorized = await firstValueFrom(this.sessionService.isAuthorized$);\n if (!isAuthorized) {\n return;\n }\n //\n context.addItems([\n {\n priority: 9001,\n text: RootConfig.module.title,\n icon: RootConfig.module.icon,\n data: {\n requiredPermission: [AXMPermissionsKeys.DocumentManagement.Management]\n },\n children: [\n {\n text: RootConfig.entities.documentType.title,\n path: this.entityService.createPath(RootConfig.module.name, RootConfig.entities.documentType.name),\n icon: RootConfig.entities.documentType.icon,\n data: {\n requiredPermission: [AXMPermissionsKeys.DocumentManagement.DocumentType.Management]\n },\n badgeKey: 'badge-1',\n priority: 2,\n },\n {\n text: `t('scope.tenant.title', {scope: \"${RootConfig.config.i18n}\"})`,\n path: `${this.sessionService.application?.name}/drive/tenant`,\n icon: RootConfig.entities.document.icon,\n data: {\n requiredPermission: [AXMPermissionsKeys.DocumentManagement.Driver.Management],\n scope: 'tenant',\n },\n badgeKey: 'badge-2',\n priority: 1,\n },\n ],\n },\n ]);\n //\n context.find('user-profile').addItems([\n {\n name: 'my-notifications',\n text: `t('scope.user.title', {scope: \"${RootConfig.config.i18n}\"})`,\n icon: 'fa-light fa-folder-open',\n path: `${this.sessionService.application?.name}/drive/user`,\n data: {\n scope: 'user',\n requiredPermission: [AXMPermissionsKeys.DocumentManagement.Driver.Management]\n },\n },\n ]);\n }\n}\n","import { AXPSearchCommandProvider, AXPSearchResult } from '@acorex/platform/common';\n\nexport class AXMSearchCommandProvider extends AXPSearchCommandProvider {\n commands: AXPSearchResult[] = [\n // {\n // group: 'command',\n // title: 'New Form Template',\n // icon: RootConfig.entities.template.icon,\n // description: 'Create a new form template for designing reusable forms.', // Added description\n // commands: {\n // 'create-entity': {\n // entity: `${RootConfig.module.name}.${RootConfig.entities.template.name}`,\n // },\n // },\n // }\n ];\n}\n","import { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex/platform/common';\n\nexport class AXMSettingProvider implements AXPSettingDefinitionProvider {\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n\n }\n}\n","import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMDocumentManagementFolderEntityModel } from '../folder';\nimport { AXMDocumentManagementDocumentEntityModel } from './document.types';\n\nexport abstract class AXMDocumentService extends AXMEntityCrudServiceImpl<\n string,\n AXMDocumentManagementDocumentEntityModel\n> {\n abstract getPath(documentId: string, stopFolderId?: string): Promise<AXMDocumentManagementFolderEntityModel[]>;\n\n abstract searchFiles(searchTerm: string, rootFolderId: string): Promise<AXMDocumentManagementDocumentEntityModel[]>;\n}\n\n@Injectable()\nexport class AXMDocumentServiceImpl extends AXMDocumentService {\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.document.name}`);\n }\n\n override async getPath(_: string): Promise<AXMDocumentManagementFolderEntityModel[]> {\n throw new Error('Not implemented');\n }\n\n override async searchFiles(\n _searchTerm: string,\n _rootFolderId: string\n ): Promise<AXMDocumentManagementDocumentEntityModel[]> {\n throw new Error('Not implemented');\n }\n}\n","import { AXPEntity, AXPEntityCommandScope, AXPEntityQueryType, createAllQueryView } from '@acorex/platform/common';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';\nimport { Injector } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMDocumentService } from './document.service';\n\nexport async function documentFactory(injector: Injector): Promise<AXPEntity | null> {\n const dataService = injector.get(AXMDocumentService);\n const i18n = RootConfig.config.i18n;\n\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.document.name,\n source: '',\n title: RootConfig.entities.document.title,\n formats: {\n individual: RootConfig.entities.document.title,\n plural: RootConfig.entities.document.titlePlural,\n searchResult: {\n title: '{{ title }}',\n description: RootConfig.module.title,\n },\n },\n relatedEntities: [],\n groups: [\n {\n id: 'section',\n title: RootConfig.entities.document.title,\n },\n ],\n properties: [\n {\n name: 'name',\n title: 't(\"name\", { scope: \"common\" })',\n groupId: 'section',\n options: {\n sort: {\n enabled: true,\n },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n options: {\n placeholder: 't(\"name\", { scope: \"common\" })',\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'title',\n title: 't(\"title\", { scope: \"common\" })',\n groupId: 'section',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'type',\n title: 't(\"type\", { scope: \"common\" })',\n groupId: 'section',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.lookup,\n options: {\n entity: `${RootConfig.module.name}.${RootConfig.entities.documentType.name}`,\n expose: 'type',\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'metaData',\n title: 't(\"metaData\", { scope: \"common\" })',\n groupId: 'section',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.metaData,\n options: {\n listMeta: ` {{context.eval(\"type.meta\")}} `,\n },\n triggers: [\n {\n event: `{{ events.context(\"type\") }}`,\n action: `{{ console.log(context.eval(\"type\")); }}`,\n },\n ],\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'file',\n title: `t(\"file\", { scope: \"${i18n}\" })`,\n groupId: 'section',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.file,\n options: {\n maxFileSize: ` {{context.eval(\"type.maxSize\")}} `,\n multiple: ` {{context.eval(\"type.multiple\")}} `,\n accept: ` {{context.eval(\"type.multiple\")}} `,\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n ],\n columns: [{ name: 'name' }, { name: 'title' }],\n commands: {\n create: {\n execute: async (data: any) => {\n const res = await dataService.insertOne(data);\n return { id: res };\n },\n },\n delete: {\n execute: async (id: any) => {\n return await dataService.deleteOne(id);\n },\n },\n update: {\n execute: async (data: any) => {\n return await dataService.updateOne(data.id, data);\n },\n },\n },\n queries: {\n byKey: {\n execute: async (id: string) => {\n return await dataService.getOne(id);\n },\n type: AXPEntityQueryType.Single,\n },\n list: {\n execute: async (e: any) => {\n return await dataService.query({ skip: e.skip, take: e.take, filter: e.filter });\n },\n type: AXPEntityQueryType.List,\n },\n },\n interfaces: {\n master: {\n create: {\n sections: [\n {\n id: 'section',\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'type',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'metaData',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'file',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n },\n update: {\n sections: [\n {\n id: 'section',\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'type',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'metaData',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'file',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n },\n single: {\n title: '{{title}}',\n sections: [\n {\n id: 'section',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'type',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'metaData',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'file',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n actions: [],\n },\n list: {\n actions: [\n {\n title: `t(\"create\", { scope: \"common\" })`,\n command: 'create-entity',\n priority: 'primary',\n type: 'create',\n scope: AXPEntityCommandScope.TypeLevel,\n },\n {\n title: 't(\"deleteItems\", { scope: \"common\" })',\n command: 'delete-entity',\n priority: 'primary',\n type: 'delete',\n scope: AXPEntityCommandScope.Selected,\n },\n {\n title: 't(\"detail\", { scope: \"common\" })',\n command: 'open-entity',\n priority: 'secondary',\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n },\n {\n title: 't(\"delete\", { scope: \"common\" })',\n command: 'delete-entity',\n priority: 'secondary',\n type: 'delete',\n scope: AXPEntityCommandScope.Individual,\n },\n ],\n views: [createAllQueryView({ sorts: [{ name: 'title', dir: 'asc' }] })],\n },\n },\n },\n };\n\n return entityDef;\n}\n","import { NgModule } from '@angular/core';\nimport { AXMDocumentService, AXMDocumentServiceImpl } from './document.service';\n\n@NgModule({\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXMDocumentService,\n useClass: AXMDocumentServiceImpl,\n },\n ],\n})\nexport class AXMDocumentManagementDocumentEntityModule {}\n","import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMDocumentManagementDocumentTypeEntityModel } from './document-type.types';\n\nexport abstract class AXMDocumentTypeService extends AXMEntityCrudServiceImpl<\n string,\n AXMDocumentManagementDocumentTypeEntityModel\n> {}\n\n@Injectable()\nexport class AXMDocumentTypeServiceImpl extends AXMDocumentTypeService {\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.documentType.name}`);\n }\n}\n","import { AXDataSource } from '@acorex/cdk/common';\nimport { AXMMetaDataDefinitionService } from '@acorex/modules/platform-management';\nimport { AXPEntity, AXPEntityCommandScope, AXPEntityQueryType, createAllQueryView } from '@acorex/platform/common';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';\nimport { Injector } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMDocumentTypeService } from './document-type.service';\n\nexport async function documentTypeFactory(injector: Injector): Promise<AXPEntity | null> {\n const dataService = injector.get(AXMDocumentTypeService);\n const metaDefinitionService = injector.get(AXMMetaDataDefinitionService);\n const i18n = RootConfig.config.i18n;\n\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.documentType.name,\n source: '',\n title: RootConfig.entities.documentType.title,\n formats: {\n individual: RootConfig.entities.documentType.title,\n plural: RootConfig.entities.documentType.titlePlural,\n searchResult: {\n title: '{{ title }}',\n description: RootConfig.module.title,\n },\n },\n relatedEntities: [],\n groups: [\n {\n id: 'section',\n title: RootConfig.entities.documentType.title,\n },\n ],\n properties: [\n {\n name: 'name',\n title: 't(\"name\", { scope: \"common\" })',\n groupId: 'section',\n options: {\n sort: {\n enabled: true,\n },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'title',\n title: 't(\"title\", { scope: \"common\" })',\n groupId: 'section',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'maxSize',\n title: `t(\"maxSize\", { scope: \"${i18n}\" })`,\n groupId: 'section',\n schema: {\n dataType: 'number',\n interface: {\n type: AXPWidgetsCatalog.numberUnit,\n options: {\n textField: 'name',\n valueField: 'value',\n dataSource: [\n {\n name: 'kb',\n value: 'KB',\n calUnit: 1,\n },\n {\n name: 'mb',\n value: 'MB',\n calUnit: 1024,\n },\n {\n name: 'gb',\n value: 'GB',\n calUnit: 1024 * 1024,\n },\n ],\n mainUnit: 'kb',\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'isEncrypted',\n title: `t(\"isEncrypted\", { scope: \"${i18n}\" })`,\n groupId: 'section',\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsCatalog.checkbox,\n },\n },\n },\n {\n name: 'meta',\n title: `t(\"meta\", { scope: \"${i18n}\" })`,\n groupId: 'section',\n schema: {\n dataType: 'object',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'id',\n textField: 'title',\n //defaultValue: AXMFormTemplateTypes.Form,\n dataSource: new AXDataSource({\n load: async (_) => {\n const metaData = await metaDefinitionService.query();\n return metaData;\n },\n pageSize: 100,\n }),\n multiple: true,\n },\n },\n },\n },\n {\n name: 'type',\n title: `t(\"type\", { scope: \"${i18n}\" })`,\n groupId: 'section',\n schema: {\n dataType: 'object',\n interface: {\n type: AXPWidgetsCatalog.fileTypeExtension,\n options: {},\n },\n },\n },\n ],\n columns: [{ name: 'name' }, { name: 'title' }],\n commands: {\n create: {\n execute: async (data: any) => {\n const res = await dataService.insertOne(data);\n return { id: res };\n },\n },\n delete: {\n execute: async (id: any) => {\n return await dataService.deleteOne(id);\n },\n },\n update: {\n execute: async (data: any) => {\n return await dataService.updateOne(data.id, data);\n },\n },\n },\n queries: {\n byKey: {\n execute: async (id: string) => {\n return await dataService.getOne(id);\n },\n type: AXPEntityQueryType.Single,\n },\n list: {\n execute: async (e: any) => {\n return await dataService.query({ skip: e.skip, take: e.take, filter: e.filter });\n },\n type: AXPEntityQueryType.List,\n },\n },\n interfaces: {\n master: {\n create: {\n sections: [\n {\n id: 'section',\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'maxSize',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'isEncrypted',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'meta',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'type',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n },\n update: {\n sections: [\n {\n id: 'section',\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'maxSize',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'isEncrypted',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'meta',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'type',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n },\n single: {\n title: '{{title}}',\n sections: [\n {\n id: 'section',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'maxSize',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'isEncrypted',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'meta',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'type',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n actions: [],\n },\n list: {\n actions: [\n {\n title: `t(\"create\", { scope: \"common\" })`,\n command: 'create-entity',\n priority: 'primary',\n type: 'create',\n scope: AXPEntityCommandScope.TypeLevel,\n },\n {\n title: 't(\"deleteItems\", { scope: \"common\" })',\n command: 'delete-entity',\n priority: 'primary',\n type: 'delete',\n scope: AXPEntityCommandScope.Selected,\n },\n {\n title: 't(\"detail\", { scope: \"common\" })',\n command: 'open-entity',\n priority: 'secondary',\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n },\n {\n title: 't(\"delete\", { scope: \"common\" })',\n command: 'delete-entity',\n priority: 'secondary',\n type: 'delete',\n scope: AXPEntityCommandScope.Individual,\n },\n ],\n views: [createAllQueryView()],\n },\n },\n },\n };\n\n return entityDef;\n}\n","import { NgModule } from '@angular/core';\nimport { AXMDocumentTypeService, AXMDocumentTypeServiceImpl } from './document-type.service';\n\n@NgModule({\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXMDocumentTypeService,\n useClass: AXMDocumentTypeServiceImpl,\n },\n ],\n})\nexport class AXMDocumentManagementDocumentTypeEntityModule {}\n","import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMDocumentManagementDocumentTypeMetaDefinitionEntityModel } from './document-type-meta-definition.types';\n\nexport abstract class AXMDocumentManagementDocumentTypeMetaDefinitionEntityService extends AXMEntityCrudServiceImpl<\n string,\n AXMDocumentManagementDocumentTypeMetaDefinitionEntityModel\n> {}\n\n@Injectable()\nexport class AXMDocumentManagementDocumentTypeMetaDefinitionEntityServiceImpl extends AXMDocumentManagementDocumentTypeMetaDefinitionEntityService {\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.documentTypeMetaDefinition}`);\n }\n}\n","import { AXPEntity, AXPEntityCommandScope, AXPEntityQueryType, createAllQueryView } from '@acorex/platform/common';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';\nimport { Injector } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMDocumentManagementDocumentTypeMetaDefinitionEntityService } from './document-type-meta-definition.service';\n\nexport async function documentTypeMetaDefinitionfactory(injector: Injector): Promise<AXPEntity | null> {\n const dataService = injector.get(AXMDocumentManagementDocumentTypeMetaDefinitionEntityService);\n\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.document.name,\n source: '',\n title: RootConfig.entities.document.title,\n formats: {\n individual: RootConfig.entities.document.title,\n plural: RootConfig.entities.document.titlePlural,\n searchResult: {\n title: '{{ title }}',\n description: RootConfig.module.title,\n },\n },\n relatedEntities: [],\n groups: [\n {\n id: 'section',\n title: RootConfig.entities.document.title,\n },\n ],\n properties: [\n {\n name: 'name',\n title: 't(\"name\", { scope: \"common\" })',\n groupId: 'section',\n options: {\n sort: {\n enabled: true,\n },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'title',\n title: 't(\"title\", { scope: \"common\" })',\n groupId: 'section',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n ],\n columns: [{ name: 'name' }, { name: 'title' }],\n commands: {\n create: {\n execute: async (data: any) => {\n const res = await dataService.insertOne(data);\n return { id: res };\n },\n },\n delete: {\n execute: async (id: any) => {\n return await dataService.deleteOne(id);\n },\n },\n update: {\n execute: async (data: any) => {\n return await dataService.updateOne(data.id, data);\n },\n },\n },\n queries: {\n byKey: {\n execute: async (id: string) => {\n return await dataService.getOne(id);\n },\n type: AXPEntityQueryType.Single,\n },\n list: {\n execute: async (e: any) => {\n return await dataService.query({ skip: e.skip, take: e.take, filter: e.filter });\n },\n type: AXPEntityQueryType.List,\n },\n },\n interfaces: {\n master: {\n create: {\n sections: [\n {\n id: 'section',\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n ],\n },\n update: {\n sections: [\n {\n id: 'section',\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n ],\n },\n single: {\n title: '{{title}}',\n sections: [\n {\n id: 'section',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n ],\n actions: [],\n },\n list: {\n actions: [\n {\n title: `t(\"create\", { scope: \"common\" })`,\n command: 'create-entity',\n priority: 'primary',\n type: 'create',\n scope: AXPEntityCommandScope.TypeLevel,\n },\n {\n title: 't(\"deleteItems\", { scope: \"common\" })',\n command: 'delete-entity',\n priority: 'primary',\n type: 'delete',\n scope: AXPEntityCommandScope.Selected,\n },\n {\n title: 't(\"detail\", { scope: \"common\" })',\n command: 'open-entity',\n priority: 'secondary',\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n },\n {\n title: 't(\"delete\", { scope: \"common\" })',\n command: 'delete-entity',\n priority: 'secondary',\n type: 'delete',\n scope: AXPEntityCommandScope.Individual,\n },\n ],\n views: [createAllQueryView({ sorts: [{ name: 'title', dir: 'asc' }] })],\n },\n },\n },\n };\n\n return entityDef;\n}\n","import { NgModule } from '@angular/core';\nimport {\n AXMDocumentManagementDocumentTypeMetaDefinitionEntityService,\n AXMDocumentManagementDocumentTypeMetaDefinitionEntityServiceImpl\n} from './document-type-meta-definition.service';\n\n@NgModule({\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXMDocumentManagementDocumentTypeMetaDefinitionEntityService,\n useClass: AXMDocumentManagementDocumentTypeMetaDefinitionEntityServiceImpl,\n },\n ],\n})\nexport class AXMDocumentManagementDocumentTypeMetaDefinitionEntityModule {}","import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMDocumentManagementDocumentTypeMetaValueEntityModel } from './document-type-meta-value.types';\n\nexport abstract class AXMDocumentManagementDocumentTypeMetaValueEntityService extends AXMEntityCrudServiceImpl<\n string,\n AXMDocumentManagementDocumentTypeMetaValueEntityModel\n> {}\n\n@Injectable()\nexport class AXMDocumentManagementDocumentTypeMetaValueEntityServiceImpl extends AXMDocumentManagementDocumentTypeMetaValueEntityService {\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.documentTypeMetaValue}`);\n }\n}\n","import { AXPEntity, AXPEntityCommandScope, AXPEntityQueryType, createAllQueryView } from '@acorex/platform/common';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';\nimport { Injector } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMDocumentManagementDocumentTypeMetaValueEntityService } from './document-type-meta-value.service';\n\nexport async function documentTypeMetaValueFactory(injector: Injector): Promise<AXPEntity | null> {\n const dataService = injector.get(AXMDocumentManagementDocumentTypeMetaValueEntityService);\n\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.document.name,\n source: '',\n title: RootConfig.entities.document.title,\n formats: {\n individual: RootConfig.entities.document.title,\n plural: RootConfig.entities.document.titlePlural,\n searchResult: {\n title: '{{ title }}',\n description: RootConfig.module.title,\n },\n },\n relatedEntities: [],\n groups: [\n {\n id: 'section',\n title: RootConfig.entities.document.title,\n },\n ],\n properties: [\n {\n name: 'name',\n title: 't(\"name\", { scope: \"common\" })',\n groupId: 'section',\n options: {\n sort: {\n enabled: true,\n },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'title',\n title: 't(\"title\", { scope: \"common\" })',\n groupId: 'section',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n ],\n columns: [{ name: 'name' }, { name: 'title' }],\n commands: {\n create: {\n execute: async (data: any) => {\n const res = await dataService.insertOne(data);\n return { id: res };\n },\n },\n delete: {\n execute: async (id: any) => {\n return await dataService.deleteOne(id);\n },\n },\n update: {\n execute: async (data: any) => {\n return await dataService.updateOne(data.id, data);\n },\n },\n },\n queries: {\n byKey: {\n execute: async (id: string) => {\n return await dataService.getOne(id);\n },\n type: AXPEntityQueryType.Single,\n },\n list: {\n execute: async (e: any) => {\n return await dataService.query({ skip: e.skip, take: e.take, filter: e.filter });\n },\n type: AXPEntityQueryType.List,\n },\n },\n interfaces: {\n master: {\n create: {\n sections: [\n {\n id: 'section',\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n ],\n },\n update: {\n sections: [\n {\n id: 'section',\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n ],\n },\n single: {\n title: '{{title}}',\n sections: [\n {\n id: 'section',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n ],\n actions: [],\n },\n list: {\n actions: [\n {\n title: `t(\"create\", { scope: \"common\" })`,\n command: 'create-entity',\n priority: 'primary',\n type: 'create',\n scope: AXPEntityCommandScope.TypeLevel,\n },\n {\n title: 't(\"deleteItems\", { scope: \"common\" })',\n command: 'delete-entity',\n priority: 'primary',\n type: 'delete',\n scope: AXPEntityCommandScope.Selected,\n },\n {\n title: 't(\"detail\", { scope: \"common\" })',\n command: 'open-entity',\n priority: 'secondary',\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n },\n {\n title: 't(\"delete\", { scope: \"common\" })',\n command: 'delete-entity',\n priority: 'secondary',\n type: 'delete',\n scope: AXPEntityCommandScope.Individual,\n },\n ],\n views: [createAllQueryView({ sorts: [{ name: 'title', dir: 'asc' }] })],\n },\n },\n },\n };\n\n return entityDef;\n}\n","import { NgModule } from '@angular/core';\nimport {\n AXMDocumentManagementDocumentTypeMetaValueEntityService,\n AXMDocumentManagementDocumentTypeMetaValueEntityServiceImpl\n} from './document-type-meta-value.service';\n\n@NgModule({\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXMDocumentManagementDocumentTypeMetaValueEntityService,\n useClass: AXMDocumentManagementDocumentTypeMetaValueEntityServiceImpl,\n },\n ],\n})\nexport class AXMDocumentManagementDocumentTypeMetaValueEntityModule {}","import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMDocumentManagementDocumentTypeStatusDefinitionEntityModel } from './document-type-status-definition.types';\n\nexport abstract class AXMDocumentManagementDocumentTypeStatusDefinitionEntityService extends AXMEntityCrudServiceImpl<\n string,\n AXMDocumentManagementDocumentTypeStatusDefinitionEntityModel\n> {}\n\n@Injectable()\nexport class AXMDocumentManagementDocumentTypeStatusDefinitionEntityServiceImpl extends AXMDocumentManagementDocumentTypeStatusDefinitionEntityService {\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.documentTypeStatus}`);\n }\n}\n","import { AXPEntity, AXPEntityCommandScope, AXPEntityQueryType, createAllQueryView } from '@acorex/platform/common';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';\nimport { Injector } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMDocumentManagementDocumentTypeStatusDefinitionEntityService } from './document-type-status-definition.service';\n\nexport async function documentTypeStatusDefinitionFactory(injector: Injector): Promise<AXPEntity | null> {\n const dataService = injector.get(AXMDocumentManagementDocumentTypeStatusDefinitionEntityService);\n\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.document.name,\n source: '',\n title: RootConfig.entities.document.title,\n formats: {\n individual: RootConfig.entities.document.title,\n plural: RootConfig.entities.document.titlePlural,\n searchResult: {\n title: '{{ title }}',\n description: RootConfig.module.title,\n },\n },\n relatedEntities: [],\n groups: [\n {\n id: 'section',\n title: RootConfig.entities.document.title,\n },\n ],\n properties: [\n {\n name: 'name',\n title: 't(\"name\", { scope: \"common\" })',\n groupId: 'section',\n options: {\n sort: {\n enabled: true,\n },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'title',\n title: 't(\"title\", { scope: \"common\" })',\n groupId: 'section',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n ],\n columns: [{ name: 'name' }, { name: 'title' }],\n commands: {\n create: {\n execute: async (data: any) => {\n const res = await dataService.insertOne(data);\n return { id: res };\n },\n },\n delete: {\n execute: async (id: any) => {\n return await dataService.deleteOne(id);\n },\n },\n update: {\n execute: async (data: any) => {\n return await dataService.updateOne(data.id, data);\n },\n },\n },\n queries: {\n byKey: {\n execute: async (id: string) => {\n return await dataService.getOne(id);\n },\n type: AXPEntityQueryType.Single,\n },\n list: {\n execute: async (e: any) => {\n return await dataService.query({ skip: e.skip, take: e.take, filter: e.filter });\n },\n type: AXPEntityQueryType.List,\n },\n },\n interfaces: {\n master: {\n create: {\n sections: [\n {\n id: 'section',\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n ],\n },\n update: {\n sections: [\n {\n id: 'section',\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n ],\n },\n single: {\n title: '{{title}}',\n sections: [\n {\n id: 'section',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n ],\n actions: [],\n },\n list: {\n actions: [\n {\n title: `t(\"create\", { scope: \"common\" })`,\n command: 'create-entity',\n priority: 'primary',\n type: 'create',\n scope: AXPEntityCommandScope.TypeLevel,\n },\n {\n title: 't(\"deleteItems\", { scope: \"common\" })',\n command: 'delete-entity',\n priority: 'primary',\n type: 'delete',\n scope: AXPEntityCommandScope.Selected,\n },\n {\n title: 't(\"detail\", { scope: \"common\" })',\n command: 'open-entity',\n priority: 'secondary',\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n },\n {\n title: 't(\"delete\", { scope: \"common\" })',\n command: 'delete-entity',\n priority: 'secondary',\n type: 'delete',\n scope: AXPEntityCommandScope.Individual,\n },\n ],\n views: [createAllQueryView({ sorts: [{ name: 'title', dir: 'asc' }] })],\n },\n },\n },\n };\n\n return entityDef;\n}\n","import { NgModule } from '@angular/core';\nimport {\n AXMDocumentManagementDocumentTypeStatusDefinitionEntityService,\n AXMDocumentManagementDocumentTypeStatusDefinitionEntityServiceImpl\n} from './document-type-status-definition.service';\n\n@NgModule({\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXMDocumentManagementDocumentTypeStatusDefinitionEntityService,\n useClass: AXMDocumentManagementDocumentTypeStatusDefinitionEntityServiceImpl,\n },\n ],\n})\nexport class AXMDocumentManagementDocumentTypeStatusDefinitionEntityModule {}","import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMDocumentManagementFolderCreateDto, AXMDocumentManagementFolderEntityModel } from './folder.types';\n\nexport abstract class AXMFolderService extends AXMEntityCrudServiceImpl<\n string,\n AXMDocumentManagementFolderEntityModel,\n AXMDocumentManagementFolderEntityModel,\n AXMDocumentManagementFolderCreateDto\n//AXMDocumentManagementFolderGetDto\n> {\n abstract getPath(folderId: string, stopFolderId?: string): Promise<AXMDocumentManagementFolderEntityModel[]>;\n\n abstract searchFolders(searchTerm: string, rootFolderId: string): Promise<AXMDocumentManagementFolderEntityModel[]>;\n}\n\n@Injectable()\nexport class AXMFolderServiceImpl extends AXMFolderService {\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.folder.name}`);\n }\n\n override async getPath(_: string): Promise<AXMDocumentManagementFolderEntityModel[]> {\n throw new Error('Not implemented');\n }\n\n override async searchFolders(\n _searchTerm: string,\n _rootFolderId: string\n ): Promise<AXMDocumentManagementFolderEntityModel[]> {\n throw new Error('Not implemented');\n }\n}\n","import { AXPEntity, AXPEntityCommandScope, AXPEntityQueryType, createAllQueryView } from '@acorex/platform/common';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';\nimport { Injector } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMFolderService } from './folder.service';\n\nexport async function folderFactory(injector: Injector): Promise<AXPEntity | null> {\n const dataService = injector.get(AXMFolderService);\n\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.folder.name,\n source: '',\n title: RootConfig.entities.folder.title,\n formats: {\n individual: RootConfig.entities.folder.title,\n plural: RootConfig.entities.folder.titlePlural,\n searchResult: {\n title: '{{ title }}',\n description: RootConfig.module.title,\n },\n },\n relatedEntities: [],\n groups: [\n {\n id: 'section',\n title: RootConfig.entities.folder.title,\n },\n ],\n properties: [\n {\n name: 'name',\n title: 't(\"name\", { scope: \"common\" })',\n groupId: 'section',\n options: {\n sort: {\n enabled: true,\n },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'title',\n title: 't(\"title\", { scope: \"common\" })',\n groupId: 'section',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n ],\n columns: [{ name: 'name' }, { name: 'title' }],\n commands: {\n create: {\n execute: async (data: any) => {\n const res = await dataService.insertOne(data);\n return { id: res };\n },\n },\n delete: {\n execute: async (id: any) => {\n return await dataService.deleteOne(id);\n },\n },\n update: {\n execute: async (data: any) => {\n return await dataService.updateOne(data.id, data);\n },\n },\n },\n queries: {\n byKey: {\n execute: async (id: string) => {\n return await dataService.getOne(id);\n },\n type: AXPEntityQueryType.Single,\n },\n list: {\n execute: async (e: any) => {\n return await dataService.query({ skip: e.skip, take: e.take, filter: e.filter });\n },\n type: AXPEntityQueryType.List,\n },\n },\n interfaces: {\n master: {\n create: {\n sections: [\n {\n id: 'section',\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n ],\n },\n update: {\n sections: [\n {\n id: 'section',\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n ],\n },\n single: {\n title: '{{title}}',\n sections: [\n {\n id: 'section',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n ],\n actions: [],\n },\n list: {\n actions: [\n {\n title: `t(\"create\", { scope: \"common\" })`,\n command: 'create-entity',\n priority: 'primary',\n type: 'create',\n scope: AXPEntityCommandScope.TypeLevel,\n },\n {\n title: 't(\"deleteItems\", { scope: \"common\" })',\n command: 'delete-entity',\n priority: 'primary',\n type: 'delete',\n scope: AXPEntityCommandScope.Selected,\n },\n {\n title: 't(\"detail\", { scope: \"common\" })',\n command: 'open-entity',\n priority: 'secondary',\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n },\n {\n title: 't(\"delete\", { scope: \"common\" })',\n command: 'delete-entity',\n priority: 'secondary',\n type: 'delete',\n scope: AXPEntityCommandScope.Individual,\n },\n ],\n views: [createAllQueryView({ sorts: [{ name: 'title', dir: 'asc' }] })],\n },\n },\n },\n };\n\n return entityDef;\n}\n","import { AXPFileTypeInfoProvider, AXPFileType } from '@acorex/platform/common';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';\n\nexport class AXMImageFileTypeProvider implements AXPFileTypeInfoProvider {\n\n\n\n async items(): Promise<AXPFileType[]> {\n return [\n {\n name: 'image',\n title: 'Image',\n icon: 'fa-light fa-image ax-text-purple-500',\n extensions: [\n {\n name: 'jpg',\n title: 'JPEG',\n icon: 'fa-light fa-image ax-text-purple-500',\n meta: [],\n },\n {\n name: 'png',\n title: 'PNG',\n icon: 'fa-light fa-image ax-text-purple-500',\n meta: [],\n },\n {\n name: 'gif',\n title: 'GIF',\n icon: 'fa-light fa-image ax-text-purple-500',\n meta: [\n {\n name: 'duration',\n title: 'Duration',\n interface: async () => {\n return {\n type: AXPWidgetsCatalog.text,\n options: {\n validations: [\n {\n rule: \"required\"\n }\n ]\n },\n path: 'gift.duration',\n };\n },\n },\n ],\n },\n ],\n meta: [\n {\n name: 'width',\n title: 'Width',\n interface: async () => {\n return {\n type: AXPWidgetsCatalog.text,\n options: {\n validations: [\n {\n rule: \"required\"\n }\n ]\n },\n path: 'image.width',\n };\n },\n },\n {\n name: 'height',\n title: 'Height',\n interface: async () => {\n return {\n type: AXPWidgetsCatalog.text,\n options: {},\n path: 'image.height',\n };\n },\n },\n ],\n },\n ];\n }\n}\n","import { AXPFileTypeInfoProvider, AXPFileType } from '@acorex/platform/common';\n\nexport class AXMVideoFileTypeProvider implements AXPFileTypeInfoProvider {\n async items(): Promise<AXPFileType[]> {\n return [\n {\n name: 'video',\n title: 'Video',\n icon: 'fa-light fa-video ax-text-red-500',\n extensions: [\n {\n name: 'mp4',\n title: 'MP4',\n icon: 'fa-light fa-video ax-text-red-500',\n meta: [],\n },\n {\n name: 'avi',\n title: 'AVI',\n icon: 'fa-light fa-video ax-text-red-500',\n meta: [],\n },\n {\n name: 'mkv',\n title: 'MKV',\n icon: 'fa-light fa-video ax-text-red-500',\n meta: [],\n },\n ],\n },\n ];\n }\n}\n","import { AXPFileTypeInfoProvider, AXPFileType } from '@acorex/platform/common';\n\nexport class AXMDocumentFileTypeProvider implements AXPFileTypeInfoProvider {\n async items(): Promise<AXPFileType[]> {\n return [\n {\n name: 'document',\n title: 'Document',\n icon: 'fa-light fa-file-lines ax-text-blue-600',\n extensions: [\n {\n name: 'pdf',\n title: 'PDF',\n icon: 'fa-light fa-file-pdf ax-text-red-600',\n meta: [],\n },\n {\n name: 'doc',\n title: 'Word',\n icon: 'fa-light fa-file-word ax-text-blue-700',\n meta: [],\n },\n {\n name: 'docx',\n title: 'Word',\n icon: 'fa-light fa-file-word ax-text-blue-700',\n meta: [],\n },\n {\n name: 'xls',\n title: 'Excel',\n icon: 'fa-light fa-file-excel ax-text-green-700',\n meta: [],\n },\n {\n name: 'xlsx',\n title: 'Excel',\n icon: 'fa-light fa-file-excel ax-text-green-700',\n meta: [],\n },\n {\n name: 'ppt',\n title: 'PowerPoint',\n icon: 'fa-light fa-file-powerpoint ax-text-orange-700',\n meta: [],\n },\n {\n name: 'pptx',\n title: 'PowerPoint',\n icon: 'fa-light fa-file-powerpoint ax-text-orange-700',\n meta: [],\n },\n {\n name: 'txt',\n title: 'Text',\n icon: 'fa-light fa-file-lines ax-text-blue-600',\n meta: [],\n },\n {\n name: 'rtf',\n title: 'Rich Text',\n icon: 'fa-light fa-file-lines ax-text-blue-600',\n meta: [],\n },\n ],\n },\n ];\n }\n} ","import { AXPFileTypeInfoProvider, AXPFileType } from '@acorex/platform/common';\n\nexport class AXMAudioFileTypeProvider implements AXPFileTypeInfoProvider {\n async items(): Promise<AXPFileType[]> {\n return [\n {\n name: 'audio',\n title: 'Audio',\n icon: 'fa-light fa-file-audio ax-text-green-500',\n extensions: [\n {\n name: 'mp3',\n title: 'MP3',\n icon: 'fa-light fa-file-audio ax-text-green-500',\n meta: [],\n },\n {\n name: 'wav',\n title: 'WAV',\n icon: 'fa-light fa-file-audio ax-text-green-500',\n meta: [],\n },\n {\n name: 'ogg',\n title: 'OGG',\n icon: 'fa-light fa-file-audio ax-text-green-500',\n meta: [],\n },\n {\n name: 'm4a',\n title: 'M4A',\n icon: 'fa-light fa-file-audio ax-text-green-500',\n meta: [],\n },\n {\n name: 'flac',\n title: 'FLAC',\n icon: 'fa-light fa-file-audio ax-text-green-500',\n meta: [],\n },\n ],\n },\n ];\n }\n} ","import { AXPFileTypeInfoProvider, AXPFileType } from '@acorex/platform/common';\n\nexport class AXMArchiveFileTypeProvider implements AXPFileTypeInfoProvider {\n async items(): Promise<AXPFileType[]> {\n return [\n {\n name: 'archive',\n title: 'Archive',\n icon: 'fa-light fa-file-zipper ax-text-orange-500',\n extensions: [\n {\n name: 'zip',\n title: 'ZIP',\n icon: 'fa-light fa-file-zipper ax-text-orange-500',\n meta: [],\n },\n {\n name: 'rar',\n title: 'RAR',\n icon: 'fa-light fa-file-zipper ax-text-orange-500',\n meta: [],\n },\n {\n name: '7z',\n title: '7-Zip',\n icon: 'fa-light fa-file-zipper ax-text-orange-500',\n meta: [],\n },\n {\n name: 'tar',\n title: 'TAR',\n icon: 'fa-light fa-file-zipper ax-text-orange-500',\n meta: [],\n },\n {\n name: 'gz',\n title: 'GZIP',\n icon: 'fa-light fa-file-zipper ax-text-orange-500',\n meta: [],\n },\n ],\n },\n ];\n }\n} ","import { AXPFileTypeInfoProvider, AXPFileType } from '@acorex/platform/common';\n\nexport class AXMCodeFileTypeProvider implements AXPFileTypeInfoProvider {\n async items(): Promise<AXPFileType[]> {\n return [\n {\n name: 'code',\n title: 'Code',\n icon: 'fa-light fa-file-code ax-text-blue-500',\n extensions: [\n {\n name: 'js',\n title: 'JavaScript',\n icon: 'fa-light fa-file-code ax-text-yellow-500',\n meta: [],\n },\n {\n name: 'ts',\n title: 'TypeScript',\n icon: 'fa-light fa-file-code ax-text-blue-600',\n meta: [],\n },\n {\n name: 'html',\n title: 'HTML',\n icon: 'fa-light fa-file-code ax-text-orange-600',\n meta: [],\n },\n {\n name: 'css',\n title: 'CSS',\n icon: 'fa-light fa-file-code ax-text-pink-500',\n meta: [],\n },\n {\n name: 'json',\n title: 'JSON',\n icon: 'fa-light fa-file-code ax-text-green-500',\n meta: [],\n },\n {\n name: 'xml',\n title: 'XML',\n icon: 'fa-light fa-file-code ax-text-green-500',\n meta: [],\n },\n {\n name: 'py',\n title: 'Python',\n icon: 'fa-light fa-file-code ax-text-yellow-500',\n meta: [],\n },\n {\n name: 'java',\n title: 'Java',\n icon: 'fa-light fa-file-code ax-text-red-500',\n meta: [],\n },\n {\n name: 'cpp',\n title: 'C++',\n icon: 'fa-light fa-file-code ax-text-blue-500',\n meta: [],\n },\n {\n name: 'cs',\n title: 'C#',\n icon: 'fa-light fa-file-code ax-text-blue-500',\n meta: [],\n },\n ],\n },\n ];\n }\n} ","import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n inputs: ['rawValue'],\n})\nexport class AXMFileTypeExtensionWidgetColumnComponent extends AXPValueWidgetComponent<any> { }\n","import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n inputs: ['rawValue'],\n})\nexport class AXMFileTypeExtensionWidgetDesignerComponent extends AXPValueWidgetComponent<any> { }\n","import { AXCollapseModule } from '@acorex/components/collapse';\nimport { AXDataSource, AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXSelectBoxComponent, AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXPFileType, AXPFileTypeProviderService } from '@acorex/platform/common';\nimport {\n AXPLayoutBuilderModule,\n AXPLayoutContextChangeEvent,\n AXPValueWidgetComponent,\n AXPWidgetNode,\n} from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport get from 'lodash-es/get';\nimport set from 'lodash-es/set';\n\n@Component({\n template: ` <div>\n <ax-select-box\n #dd\n [dataSource]=\"dataSource\"\n valueField=\"name\"\n textField=\"title\"\n [multiple]=\"true\"\n [ngModel]=\"getValue()?.selectedItems\"\n (onValueChanged)=\"handleValueChange($event)\"\n >\n </ax-select-box>\n <div class=\"ax-py-3\"></div>\n <axp-widgets-container (onContextChanged)=\"handleOnContextChange($event)\" [context]=\"context()\">\n @if (selectedItems().length > 0) {\n <ax-collapse-group look=\"fill\">\n @for (item of selectedItems(); track item.name) {\n <!-- File Types -->\n <ax-collapse [caption]=\"item.title\">\n <div class=\"ax-flex ax-flex-col ax-gap-5\">\n @if (item.meta && item.meta.length > 0) {\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\n <ax-text [textContent]=\"'Global Meta Data'\" class=\"ax-font-bold ax-text-sm\"></ax-text>\n @for (metaFile of item.meta; track metaFile.name) {\n <!-- File Meta Data -->\n <ax-form-field>\n <ax-label [required]=\"filedIsRequired(metaFile)\">{{ metaFile.title }}</ax-label>\n <ng-container axp-widget-renderer [node]=\"getNode(metaFile)\" [mode]=\"'edit'\"></ng-container>\n </ax-form-field>\n }\n </div>\n }\n @if (item.extensions && item.extensions.length > 0) {\n <div class=\"ax-flex ax-flex-col ax-gap-3\">\n @for (ext of item.extensions; track ext.name) {\n <!-- Extensions -->\n @if (ext.meta && ext.meta.length > 0) {\n <ax-text [textContent]=\"ext.title\" class=\"ax-font-bold ax-text-sm\"></ax-text>\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\n @for (extMeta of ext.meta; track $index) {\n <!-- Extension Meta Data -->\n <ax-form-field>\n <ax-label [required]=\"filedIsRequired(extMeta)\">{{ extMeta.title }}</ax-label>\n <ng-container\n axp-widget-renderer\n [node]=\"getNode(extMeta)\"\n [mode]=\"'edit'\"\n ></ng-container>\n </ax-form-field>\n }\n </div>\n }\n <!-- End Extension Meta Data -->\n }\n </div>\n <!-- End Extensions -->\n }\n </div>\n </ax-collapse>\n }\n <!-- End File Types -->\n </ax-collapse-group>\n }\n </axp-widgets-container>\n </div>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n AXSelectBoxModule,\n FormsModule,\n AXFormModule,\n AXLabelModule,\n AXDecoratorModule,\n AXPLayoutBuilderModule,\n AXCollapseModule,\n ],\n inputs: [],\n})\nexport class AXMFileTypeExtensionWidgetEditComponent extends AXPValueWidgetComponent<any> {\n protected fileTypeService = inject(AXPFileTypeProviderService);\n protected dataSource = new AXDataSource<unknown>({\n load: async (_) => {\n try {\n const res = await this.fileTypeService.items();\n const types = res\n .map((item) => {\n const { meta, extensions, ...rest } = item;\n return extensions.map((ext) => {\n const { meta, ...extRest } = ext;\n return {\n ...rest,\n ...extRest,\n name: `${item.name}.${ext.name}`,\n title: `${item.title}/${ext.title}`,\n };\n });\n })\n .flat();\n\n return {\n items: types,\n total: types.length,\n };\n } catch (e) {\n console.log(e);\n }\n return {\n items: [],\n total: 0,\n };\n },\n pageSize: 100,\n });\n\n public selectedItems = signal<AXPFileType[]>(this.getValue()?.selectedItems ?? []);\n public context = signal<any>(this.getValue()?.context ?? {});\n\n override ngOnInit() {\n super.ngOnInit();\n this.selectedItems.set(this.getValue()?.selectedItems ?? []);\n this.context.set(this.getValue()?.context ?? {});\n }\n\n protected override outputs(): string[] {\n return ['selectedItems', 'context'];\n }\n\n protected handleOnContextChange(e: AXPLayoutContextChangeEvent) {\n this.context.set(e.data);\n this.setValue({ ...this.getValue(), context: e.data });\n }\n\n protected async handleValueChange(e: AXValueChangedEvent) {\n const selectItems = (e.component as AXSelectBoxComponent).selectedItems as AXPFileType[];\n this.setValue({ ...this.getValue(), selectedItems: selectItems });\n\n const result: { [key: string]: AXPFileType } = {};\n for (const item of selectItems) {\n const type = item.name.split('.')[0];\n const ext = item.name.split('.')[1];\n var fileType = await this.fileTypeService.get(type);\n if (fileType != undefined) {\n const extension = fileType.extensions.find((extension) => extension.name == ext) || { name: ext, title: '' };\n if (extension.meta) {\n for (const meta of extension.meta) {\n if (!get(meta, '__node__')) {\n set(meta, '__node__', typeof meta.interface == 'function' ? await meta.interface() : meta.interface);\n }\n }\n }\n if (fileType.meta) {\n for (const meta of fileType.meta) {\n if (!get(meta, '__node__')) {\n set(meta, '__node__', typeof meta.interface == 'function' ? await meta.interface() : meta.interface);\n }\n }\n }\n if (result[type]) {\n result[type] = {\n ...fileType,\n extensions: [...result[type].extensions, extension],\n };\n } else {\n result[type] = {\n ...fileType,\n extensions: [extension],\n };\n }\n }\n }\n\n this.selectedItems.set(Object.values(result));\n }\n\n protected getNode(meta: any): AXPWidgetNode {\n return get(meta, '__node__');\n }\n\n protected filedIsRequired(meta: any): boolean {\n const node = get(meta, '__node__');\n if (node && node.options && node.options.validations) {\n return node.options.validations.some((validation: any) => validation.rule === 'required');\n }\n return false;\n }\n\n protected hasMetaInExtensions(extensions: any[]): boolean {\n return extensions.some((ext) => ext.meta && ext.meta.length > 0);\n }\n}\n","import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n inputs: ['rawValue'],\n})\nexport class AXMFileTypeExtensionWidgetViewComponent extends AXPValueWidgetComponent<any> { }\n","import { AXP_WIDGETS_ADVANCE_CATEGORY, AXPWidgetConfig } from '@acorex/platform/layout/builder';\nimport { AXP_DATA_PATH_PROPERTY, AXP_NAME_PROPERTY } from '@acorex/platform/widgets';\n\nexport const AXmFileTypeExtensionWidget: AXPWidgetConfig = {\n name: 'file-type-extension',\n title: 'File Type Extension',\n description: 'Uploads and manages files',\n icon: 'fa-light fa-files',\n categories: AXP_WIDGETS_ADVANCE_CATEGORY,\n type: 'editor',\n properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY],\n components: {\n view: {\n component: () =>\n import('./file-type-extension-view.component').then((c) => c.AXMFileTypeExtensionWidgetViewComponent),\n },\n edit: {\n component: () =>\n import('./file-type-extension-edit.component').then((c) => c.AXMFileTypeExtensionWidgetEditComponent),\n },\n // filter: {\n // component: () => import('./file-type-extension-filter.component').then((c) => c.AXPFileBoxWidgetFilterComponent),\n // },\n column: {\n component: () =>\n import('./file-type-extension-column.component').then((c) => c.AXMFileTypeExtensionWidgetColumnComponent),\n },\n // print: {\n // component: () => import('./file-type-extension-print.component').then((c) => c.AXPFileBoxWidgetPrintComponent),\n // },\n designer: {\n component: () =>\n import('./file-type-extension-edit.component').then((c) => c.AXMFileTypeExtensionWidgetEditComponent),\n },\n },\n};\n\ndeclare module '@acorex/platform/layout/builder' {\n interface AXPWidgetTypesMap {\n fileTypeExtension: 'file-type-extension';\n }\n}\n","import { AXP_FILE_TYPE_INFO_PROVIDER } from '@acorex/platform/common';\nimport { NgModule } from '@angular/core';\nimport {\n AXMArchiveFileTypeProvider,\n AXMAudioFileTypeProvider,\n AXMCodeFileTypeProvider,\n AXMDocumentFileTypeProvider,\n AXMImageFileTypeProvider,\n AXMVideoFileTypeProvider,\n} from './providers';\n\n@NgModule({\n providers: [\n {\n provide: AXP_FILE_TYPE_INFO_PROVIDER,\n useClass: AXMImageFileTypeProvider,\n multi: true,\n },\n {\n provide: AXP_FILE_TYPE_INFO_PROVIDER,\n useClass: AXMVideoFileTypeProvider,\n multi: true,\n },\n {\n provide: AXP_FILE_TYPE_INFO_PROVIDER,\n useClass: AXMDocumentFileTypeProvider,\n multi: true,\n },\n {\n provide: AXP_FILE_TYPE_INFO_PROVIDER,\n useClass: AXMAudioFileTypeProvider,\n multi: true,\n },\n {\n provide: AXP_FILE_TYPE_INFO_PROVIDER,\n useClass: AXMCodeFileTypeProvider,\n multi: true,\n },\n {\n provide: AXP_FILE_TYPE_INFO_PROVIDER,\n useClass: AXMArchiveFileTypeProvider,\n multi: true,\n },\n ],\n})\nexport class AXMFileTypeModule { } ","import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n inputs: [],\n})\nexport class AXMDocumentAttachmentWidgetColumnComponent extends AXPValueWidgetComponent<void> { }\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXMediaViewerData } from '@acorex/components/media-viewer';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPFileStorageInfo, AXPFileStorageService } from '@acorex/platform/common';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { inject, Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\n\nimport { AXFileService } from '@acorex/core/file';\nimport { AXPPlatformScope, AXPQueryRequest } from '@acorex/platform/core';\nimport { castArray } from 'lodash-es';\nimport {\n AXMDocumentManagementDocumentEntityModel,\n AXMDocumentManagementFolderCreateDto,\n AXMDocumentManagementFolderEntityModel,\n AXMDocumentService,\n AXMFolderService,\n} from '../../entities';\nimport {\n AXMDocumentExplorerBrowseMode,\n AXMDocumentExplorerNode,\n CreateFileDto,\n UpdateFileDto,\n UpdateFolderDto,\n} from './document-manager.types';\n\n/**\n * Interface defining the contract for document drive service\n */\nexport interface AXMDocumentManagerServiceInterface {\n scope(scope: AXPPlatformScope, options?: { tenantId?: string; userId?: string }): ScopedDriveService;\n getRoot(\n scope: AXPPlatformScope,\n options?: { tenantId?: string; userId?: string }\n ): Promise<{\n path: AXMDocumentExplorerNode[];\n result: AXMDocumentExplorerNode;\n }>;\n getFolder(\n scope: AXPPlatformScope,\n folderId: string\n ): Promise<{\n path: AXMDocumentExplorerNode[];\n result: AXMDocumentExplorerNode;\n }>;\n createFolder(data: AXMDocumentManagementFolderCreateDto): Promise<AXMDocumentExplorerNode>;\n updateFolder(folderId: string, data: UpdateFolderDto): Promise<AXMDocumentExplorerNode>;\n deleteFolder(folderId: string): Promise<void>;\n getAvailableSpace(): Promise<number>;\n\n createFile(data: CreateFileDto): Promise<AXMDocumentExplorerNode>;\n updateFile(fileId: string, data: UpdateFileDto): Promise<AXMDocumentExplorerNode>;\n deleteFile(fileId: string): Promise<void>;\n\n deleteNodes(nodeIds: AXMDocumentExplorerNode[]): Promise<void>;\n\n showCreateFolderDialog(parentId?: string): Promise<AXMDocumentExplorerNode | null>;\n showDeleteNodesDialog(nodeIds: AXMDocumentExplorerNode[]): Promise<boolean>;\n showRenamePopup(node: AXMDocumentExplorerNode): Promise<AXMDocumentExplorerNode | undefined>;\n\n copy(node: AXMDocumentExplorerNode): Promise<AXMDocumentExplorerNode>;\n\n searchFolders(\n searchTerm: string,\n scope: AXPPlatformScope,\n options?: { tenantId?: string; userId?: string }\n ): Promise<AXMDocumentExplorerNode[]>;\n\n searchFiles(\n searchTerm: string,\n scope: AXPPlatformScope,\n options?: { tenantId?: string; userId?: string }\n ): Promise<AXMDocumentExplorerNode[]>;\n\n searchNodes(\n searchTerm: string,\n scope: AXPPlatformScope,\n options?: { tenantId?: string; userId?: string }\n ): Promise<AXMDocumentExplorerNode[]>;\n\n showChooseFileDialog(root: string): Promise<AXMDocumentExplorerNode[]>;\n\n moveTo(options: {\n node: AXMDocumentExplorerNode;\n browseMode?: AXMDocumentExplorerBrowseMode;\n multiple?: boolean;\n }): Promise<boolean>;\n\n copyTo(options: {\n node: AXMDocumentExplorerNode;\n browseMode?: AXMDocumentExplorerBrowseMode;\n multiple?: boolean;\n }): Promise<boolean>;\n\n showFileViewerPopup(node: AXMDocumentExplorerNode): Promise<void>;\n\n openFile(node: AXMDocumentExplorerNode): Promise<void>;\n\n getAllFolders(): Promise<AXMDocumentExplorerNode[]>;\n getAllFiles(request?: AXPQueryRequest): Promise<AXMDocumentExplorerNode[]>;\n getAllNodes(): Promise<AXMDocumentExplorerNode[]>;\n\n downloadFile(node: AXMDocumentExplorerNode): Promise<void>;\n\n uploadFile(folderId: string): Promise<boolean>;\n\n showShareDialog(node: AXMDocumentExplorerNode): Promise<void>;\n showShareWithEmailDialog(node: AXMDocumentExplorerNode): Promise<void>;\n showLinkDialog(node: AXMDocumentExplorerNode): Promise<void>;\n showLockDialog(node: AXMDocumentExplorerNode): Promise<void>;\n showUnlockDialog(node: AXMDocumentExplorerNode): Promise<void>;\n\n showFolderEditDialog(node: AXMDocumentExplorerNode): Promise<boolean>;\n\n updateFileName(node: AXMDocumentExplorerNode, name: string): Promise<AXMDocumentExplorerNode>;\n}\n\n/**\n * Service for handling document drive operations\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMDocumentManagerService implements AXMDocumentManagerServiceInterface {\n protected folderService = inject(AXMFolderService);\n protected sessionService = inject(AXPSessionService);\n protected documentService = inject(AXMDocumentService);\n protected popupService = inject(AXPopupService);\n protected dialogService = inject(AXDialogService);\n protected fileService = inject(AXPFileStorageService);\n protected fileManagerService = inject(AXFileService);\n protected workflow = inject(AXPWorkflowService);\n private scopedDriveCache: Map<AXPPlatformScope, ScopedDriveService> = new Map();\n\n scope(scope: AXPPlatformScope, options?: { tenantId?: string; userId?: string }): ScopedDriveService {\n const cacheKey = this.getScopeCacheKey(scope, options);\n if (!this.scopedDriveCache.has(cacheKey)) {\n this.scopedDriveCache.set(cacheKey, new ScopedDriveService(this, scope, options));\n }\n return this.scopedDriveCache.get(cacheKey)!;\n }\n\n private getScopeCacheKey(\n scope: AXPPlatformScope,\n options?: { tenantId?: string; userId?: string }\n ): AXPPlatformScope {\n return scope;\n }\n\n /**\n * Gets the platform root folder (top-level folder)\n * @returns Root folder for the platform\n */\n private async getPlatformRootFolder(): Promise<AXMDocumentManagementFolderEntityModel> {\n const result = await this.folderService.query({\n skip: 0,\n take: 1,\n filter: {\n operator: null!,\n logic: 'and',\n filters: [\n { field: 'parentId', operator: { type: 'isNull' } },\n { field: 'tenantId', operator: { type: 'isNull' } },\n { field: 'userId', operator: { type: 'isNull' } },\n ],\n },\n });\n\n if (result.items.length === 0) {\n throw new Error('Platform root folder not found');\n }\n\n return result.items[0];\n }\n\n /**\n * Gets the tenant root folder\n * @param rootFolderId The platform root folder ID\n * @param tenantId The tenant ID\n * @returns Tenant root folder\n */\n private async getTenantRootFolder(\n rootFolder: AXMDocumentManagementFolderEntityModel,\n tenantId: string\n ): Promise<AXMDocumentManagementFolderEntityModel> {\n if (!tenantId) {\n throw new Error('Tenant ID is required');\n }\n\n const result = await this.folderService.query({\n skip: 0,\n take: 1,\n filter: {\n operator: null!,\n logic: 'and',\n filters: [\n {\n field: 'parentId',\n operator: { type: 'equal' },\n value: rootFolder.folders?.find((f) => f.name === 'Tenants')?.id,\n },\n { field: 'tenantId', operator: { type: 'equal' }, value: tenantId },\n { field: 'userId', operator: { type: 'isNull' } },\n ],\n },\n });\n\n if (result.items.length === 0) {\n throw new Error('Tenant root folder not found');\n }\n\n return result.items[0];\n }\n\n /**\n * Gets the user root folder\n * @param tenantFolderId The tenant folder ID\n * @param tenantId The tenant ID\n * @param userId The user ID\n * @returns User root folder\n */\n private async getUserRootFolder(\n tenantFolderId: string,\n tenantId: string,\n userId: string\n ): Promise<AXMDocumentManagementFolderEntityModel> {\n if (!tenantId || !userId) {\n throw new Error('Both Tenant ID and User ID are required');\n }\n\n const result = await this.folderService.query({\n skip: 0,\n take: 1,\n filter: {\n operator: null!,\n logic: 'and',\n filters: [\n { field: 'parentId', operator: { type: 'equal' }, value: tenantFolderId },\n { field: 'tenantId', operator: { type: 'equal' }, value: tenantId },\n { field: 'userId', operator: { type: 'equal' }, value: userId },\n ],\n },\n });\n\n if (result.items.length === 0) {\n throw new Error('User root folder not found');\n }\n\n return result.items[0];\n }\n\n private mapFolderDtoToFolderNode = (folder: AXMDocumentManagementFolderEntityModel): AXMDocumentExplorerNode => {\n return {\n id: folder.id!,\n name: folder.name,\n type: 'folder',\n parentId: folder.parentId || null,\n modifiedAt: folder.updatedAt,\n createdAt: folder.createdAt,\n description: folder.description,\n childrenCount: folder.nodeCount,\n size: folder.size,\n documentTypes: folder.documentTypes,\n storageType: 'physical',\n children: [\n ...(folder.folders?.map(this.mapFolderDtoToFolderNode) || []),\n ...(folder.documents?.map(this.mapFileToNode) || []),\n ],\n };\n };\n\n private async buildPath(node: AXMDocumentExplorerNode, stopFolderId?: string): Promise<AXMDocumentExplorerNode[]> {\n if (node.type === 'file') {\n return (await this.documentService.getPath(node.id, stopFolderId)).map(this.mapFolderDtoToFolderNode);\n } else {\n return (await this.folderService.getPath(node.id, stopFolderId)).map(this.mapFolderDtoToFolderNode);\n }\n }\n\n async showShareDialog(node: AXMDocumentExplorerNode): Promise<void> {\n const comp = (await import('./components/share-dialog/share-dialog.component')).AXMShareDialogComponent;\n const popup = await this.popupService.open(comp, {\n title: 'Share',\n data: {\n node,\n },\n });\n\n if (popup.data?.result) {\n // Handle the share action with popup.data.data\n }\n }\n\n async showShareWithEmailDialog(node: AXMDocumentExplorerNode): Promise<void> {\n const comp = (await import('./components/share-email-dialog/share-email-dialog.component'))\n .AXMShareEmailDialogComponent;\n const popup = await this.popupService.open(comp, {\n title: 'Share via Email',\n data: {\n node,\n },\n });\n\n if (popup.data?.result) {\n // Handle the share via email action with popup.data.data\n }\n }\n\n async showLinkDialog(node: AXMDocumentExplorerNode): Promise<void> {\n const comp = (await import('./components/link-dialog/link-dialog.component')).AXMLinkDialogComponent;\n const popup = await this.popupService.open(comp, {\n title: 'Share Link',\n data: {\n node,\n },\n });\n\n if (popup.data?.result) {\n // Handle the link generation with popup.data.data\n }\n }\n\n async showLockDialog(node: AXMDocumentExplorerNode): Promise<void> {\n const comp = (await import('./components/lock-dialog/lock-dialog.component')).AXMLockDialogComponent;\n const popup = await this.popupService.open(comp, {\n title: 'Lock Document',\n data: {\n node,\n },\n });\n\n if (popup.data?.result) {\n // Handle the lock action with popup.data.data\n }\n }\n\n async showUnlockDialog(node: AXMDocumentExplorerNode): Promise<void> {\n const comp = (await import('./components/unlock-dialog/unlock-dialog.component')).AXMUnlockDialogComponent;\n const popup = await this.popupService.open(comp, {\n title: 'Unlock Document',\n data: {\n node,\n },\n });\n\n if (popup.data?.result) {\n // Handle the unlock action with popup.data.data\n }\n }\n\n async showFolderEditDialog(node: AXMDocumentExplorerNode): Promise<boolean> {\n const comp = (await import('../document-explorer/components/create-folder-dialog/create-folder-dialog.component'))\n .AXMCreateFolderDialog;\n const popup = await this.popupService.open(comp, {\n title: 't(\"actions.update-folder\")',\n data: {\n defaultValue: node,\n },\n });\n\n return popup.data?.result;\n }\n\n async updateFileName(node: AXMDocumentExplorerNode, name: string): Promise<AXMDocumentExplorerNode> {\n if (node.storageType == 'physical') {\n return this.mapFileToNode(await this.documentService.updateOne(node.id, { name }));\n } else {\n node.name = name;\n return node;\n }\n }\n\n /**\n * Gets the root folder based on the specified scope\n * @param scope The drive scope (Platform, Tenant, User)\n * @param options Optional parameters for tenant and user IDs\n * @returns Root folder for the specified scope\n */\n async getRoot(\n scope: AXPPlatformScope,\n options?: { tenantId?: string; userId?: string }\n ): Promise<{\n path: AXMDocumentExplorerNode[];\n result: AXMDocumentExplorerNode;\n }> {\n const rootFolder = await this.getPlatformRootFolder();\n let result: AXMDocumentExplorerNode;\n let path: AXMDocumentExplorerNode[] = [];\n\n switch (scope) {\n case AXPPlatformScope.Platform:\n result = this.mapFolderDtoToFolderNode(rootFolder);\n path = await this.buildPath(result);\n break;\n\n case AXPPlatformScope.Tenant: {\n if (!options?.tenantId) {\n throw new Error('Tenant ID is required for tenant scope');\n }\n const tenantRoot = await this.getTenantRootFolder(rootFolder, options.tenantId);\n result = this.mapFolderDtoToFolderNode(tenantRoot);\n path = await this.buildPath(result, tenantRoot.id);\n break;\n }\n\n case AXPPlatformScope.User: {\n if (!options?.tenantId || !options?.userId) {\n throw new Error('Both Tenant ID and User ID are required for user scope');\n }\n const tenantFolder = await this.getTenantRootFolder(rootFolder, options.tenantId);\n const userRoot = await this.getUserRootFolder(\n tenantFolder.folders?.find((f) => f.name === 'Users')?.id!,\n options.tenantId,\n options.userId\n );\n result = this.mapFolderDtoToFolderNode(userRoot);\n path = await this.buildPath(result, userRoot.id);\n break;\n }\n\n default:\n throw new Error(`Invalid scope: ${scope}`);\n }\n\n return { path, result };\n }\n\n /**\n * Gets a specific folder by ID\n * @param folderId The folder ID to retrieve\n * @returns The requested folder\n */\n async getFolder(\n scope: AXPPlatformScope,\n folderId: string,\n options?: { tenantId?: string; userId?: string }\n ): Promise<{\n path: AXMDocumentExplorerNode[];\n result: AXMDocumentExplorerNode;\n }> {\n if (!folderId) {\n throw new Error('Folder ID is required');\n }\n\n const folder = await this.folderService.getOne(folderId);\n if (!folder) {\n throw new Error('Folder not found');\n }\n\n const result = this.mapFolderDtoToFolderNode(folder);\n const path = await this.buildPath(result, (await this.getRoot(scope, options)).result.id);\n\n return { path, result };\n }\n\n async createFolder(data: AXMDocumentManagementFolderCreateDto): Promise<AXMDocumentExplorerNode> {\n const now = new Date();\n const currentUser = this.sessionService.user;\n\n const folderToCreate: Omit<AXMDocumentManagementFolderEntityModel, 'id'> = {\n ...data,\n createdAt: now,\n updatedAt: now,\n createdBy: currentUser?.id?.toString() ?? 'system',\n updatedBy: currentUser?.id?.toString() ?? 'system',\n isSystem: false,\n isHidden: false,\n isDeleted: false,\n size: 0,\n };\n\n const createdFolder = await this.folderService.insertOne(folderToCreate);\n const folder = await this.folderService.getOne(createdFolder);\n return this.mapFolderDtoToFolderNode(folder);\n }\n\n async updateFolder(folderId: string, data: UpdateFolderDto): Promise<AXMDocumentExplorerNode> {\n const currentUser = this.sessionService.user;\n const updateData = {\n ...data,\n updatedBy: currentUser?.id?.toString() ?? 'system',\n updatedAt: new Date(),\n };\n await this.folderService.updateOne(folderId, updateData);\n const updatedFolder = await this.folderService.getOne(folderId);\n return this.mapFolderDtoToFolderNode(updatedFolder);\n }\n\n async deleteFolder(folderId: string): Promise<void> {\n await this.folderService.deleteOne(folderId);\n }\n\n async getAvailableSpace(): Promise<number> {\n // For now, return a fixed value of 100GB (56 * 1024 * 1024 * 1024 bytes)\n // This should be replaced with actual storage quota logic when implemented\n return 56 * 1024 * 1024 * 1024;\n }\n\n private mapFileToNode(file: AXMDocumentManagementDocumentEntityModel): AXMDocumentExplorerNode {\n return {\n id: file.id!,\n name: file.name,\n type: 'file',\n parentId: file.parentId,\n modifiedAt: file.updatedAt,\n createdAt: file.createdAt,\n size: file.size,\n fileId: file.fileId,\n storageType: 'physical',\n };\n }\n\n async createFile(data: CreateFileDto): Promise<AXMDocumentExplorerNode> {\n const fileId = await this.documentService.insertOne(data);\n const file = await this.documentService.getOne(fileId);\n return this.mapFileToNode(file);\n }\n\n async updateFile(fileId: string, data: UpdateFileDto): Promise<AXMDocumentExplorerNode> {\n const updatedFile = await this.documentService.updateOne(fileId, data);\n return this.mapFileToNode(updatedFile);\n }\n\n async deleteFile(fileId: string): Promise<void> {\n await this.documentService.deleteOne(fileId);\n }\n\n async deleteNodes(nodes: AXMDocumentExplorerNode[]): Promise<void> {\n for (const node of nodes) {\n if (node.type == 'folder') {\n await this.deleteFolder(node.id);\n } else {\n await this.deleteFile(node.id);\n }\n }\n }\n\n async showCreateFolderDialog(parentId?: string): Promise<AXMDocumentExplorerNode | null> {\n const comp = (await import('../document-explorer/components/create-folder-dialog/create-folder-dialog.component'))\n .AXMCreateFolderDialog;\n const popup = await this.popupService.open(comp, {\n title: 't(\"actions.create-folder\")',\n data: {\n parentId,\n },\n });\n return popup.data?.folder as AXMDocumentExplorerNode;\n }\n\n async moveTo(options: {\n node: AXMDocumentExplorerNode;\n browseMode?: AXMDocumentExplorerBrowseMode;\n multiple?: boolean;\n }): Promise<boolean> {\n const comp = (await import('../drive-choose/drive-choose.component')).AXMDocumentDriveChooseComponent;\n //\n const popup = await this.popupService.open(comp, {\n title: `Choose ${options.browseMode == 'file' ? 'File' : 'Folder'}`,\n data: {\n selectionMode: options.multiple ? 'multiple' : 'single',\n browseMode: options.browseMode ?? 'file',\n },\n });\n //\n const selectedFolders = popup.data.result ? popup.data?.items ?? [] : [];\n if (selectedFolders.length > 0) {\n const selectedFolder = selectedFolders[0];\n if (selectedFolder) {\n if (options.node.type === 'folder') {\n await this.updateFolder(options.node.id, { parentId: selectedFolder.id });\n } else {\n await this.updateFile(options.node.id, { parentId: selectedFolder.id });\n }\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n }\n\n async copyTo(options: {\n node: AXMDocumentExplorerNode;\n browseMode?: AXMDocumentExplorerBrowseMode;\n multiple?: boolean;\n }): Promise<boolean> {\n const comp = (await import('../drive-choose/drive-choose.component')).AXMDocumentDriveChooseComponent;\n //\n const popup = await this.popupService.open(comp, {\n title: `Choose ${options.browseMode == 'file' ? 'File' : 'Folder'}`,\n data: {\n selectionMode: options.multiple ? 'multiple' : 'single',\n browseMode: options.browseMode ?? 'file',\n },\n });\n //\n const selectedFolders = popup.data.result ? popup.data?.items ?? [] : [];\n if (selectedFolders.length > 0) {\n const selectedFolder = selectedFolders[0];\n if (selectedFolder) {\n if (options.node.type === 'folder') {\n await this.createFolder({\n name: options.node.name,\n parentId: selectedFolder.id,\n color: '#ffffff',\n size: options.node.size,\n });\n } else {\n await this.createFile({\n title: options.node.name,\n name: options.node.name,\n parentId: selectedFolder.id,\n //TODO upload file to file storage\n fileId: '',\n size: 0,\n });\n }\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n }\n\n private async mapDocumentToMediaViewerData(\n doc: AXMDocumentManagementDocumentEntityModel | AXMDocumentExplorerNode\n ): Promise<AXMediaViewerData> {\n if (!doc.fileId?.startsWith('http')) {\n const fileInfo = await this.fileService.getInfo(doc.fileId!);\n return {\n id: doc.id ?? '',\n name: doc.name,\n type: doc.name.endsWith('.pdf') ? 'pdf' : 'image',\n url: fileInfo.url ?? '',\n size: doc.size.toString(),\n thumbnail: fileInfo.url ?? '',\n };\n }\n\n return {\n id: doc.id ?? '',\n name: doc.name,\n type: (doc as any).meta?.['type'] ?? 'image',\n url: doc.fileId ?? '',\n size: doc.size.toString(),\n thumbnail: doc.fileId ?? '',\n };\n }\n\n async showFileViewerPopup(\n node: AXMDocumentExplorerNode,\n options?: { index?: number; folderVituralfiles?: AXMDocumentExplorerNode[] }\n ): Promise<void> {\n const isVirtualFolder = node.parentId === 'virtual';\n const parentFolderName = isVirtualFolder ? 'Virtual' : (await this.folderService.getOne(node.parentId!)).name;\n\n const documents = isVirtualFolder\n ? options?.folderVituralfiles ?? []\n : (await this.folderService.getOne(node.parentId!)).documents ?? [];\n\n const nodes = await Promise.all(\n documents\n .filter((item) => {\n if (!item.name) return false;\n const ext = item.name.split('.').pop()?.toLowerCase();\n return ext && ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'pdf'].includes(ext);\n })\n .map((doc) => this.mapDocumentToMediaViewerData(doc))\n );\n\n const comp = (await import('./components/file-viewer-popup/file-viewer-popup.component'))\n .AXMFileViewerPopupComponent;\n\n await this.popupService.open(comp, {\n title: parentFolderName,\n data: {\n nodes,\n index: isVirtualFolder\n ? options?.folderVituralfiles?.findIndex((f) => f.id === node.id) ?? 0\n : options?.index ?? 0,\n },\n });\n }\n\n async openFile(node: AXMDocumentExplorerNode) {\n const file = await this.documentService.getOne(node.id);\n }\n\n async showRenamePopup(node: AXMDocumentExplorerNode): Promise<AXMDocumentExplorerNode | undefined> {\n const comp = (await import('../document-explorer/components/rename-node-dialog/rename-node-dialog.component'))\n .AXMRenameNodeDialog;\n const popup = await this.popupService.open(comp, {\n title: 't(\"actions.rename\")',\n data: {\n node,\n },\n });\n\n return popup.data?.result;\n }\n\n async showDeleteNodesDialog(nodeIds: AXMDocumentExplorerNode[]): Promise<boolean> {\n const result = await this.workflow.execute('delete-entity', {\n entities: nodeIds.map((node) => ({\n source: `${RootConfig.module.name}.${\n node.type == 'folder' ? RootConfig.entities.folder.name : RootConfig.entities.document.name\n }`,\n ids: [node.id],\n })),\n });\n return (result.getOutput('result') as boolean) ?? false;\n }\n\n async searchFolders(\n searchTerm: string,\n scope: AXPPlatformScope,\n options?: { tenantId?: string; userId?: string }\n ): Promise<AXMDocumentExplorerNode[]> {\n const { result: rootNode } = await this.getRoot(scope, options);\n\n const folders = await this.folderService.searchFolders(searchTerm, rootNode.id);\n\n return folders.map((folder) => this.mapFolderDtoToFolderNode(folder));\n }\n\n async searchFiles(\n searchTerm: string,\n scope: AXPPlatformScope,\n options?: { tenantId?: string; userId?: string }\n ): Promise<AXMDocumentExplorerNode[]> {\n const { result: rootNode } = await this.getRoot(scope, options);\n\n const files = await this.documentService.searchFiles(searchTerm, rootNode.id);\n\n return files.map((file) => this.mapFileToNode(file));\n }\n\n async searchNodes(\n searchTerm: string,\n scope: AXPPlatformScope,\n options?: { tenantId?: string; userId?: string }\n ): Promise<AXMDocumentExplorerNode[]> {\n const [folders, files] = await Promise.all([\n this.searchFolders(searchTerm, scope, options),\n this.searchFiles(searchTerm, scope, options),\n ]);\n\n return [...folders, ...files];\n }\n\n async getAllFolders(): Promise<AXMDocumentExplorerNode[]> {\n //TODO filter by scope\n return (await this.folderService.query()).items.map(this.mapFolderDtoToFolderNode);\n }\n\n async getAllFiles(request?: AXPQueryRequest): Promise<AXMDocumentExplorerNode[]> {\n //TODO filter by scope\n return (await this.documentService.query(request)).items.map(this.mapFileToNode);\n }\n\n async getAllNodes(): Promise<AXMDocumentExplorerNode[]> {\n return [...(await this.getAllFolders()), ...(await this.getAllFiles())];\n }\n\n async showChooseFileDialog(scope: AXPPlatformScope): Promise<AXMDocumentExplorerNode[]> {\n const comp = (await import('../drive-choose/drive-choose.component')).AXMDocumentDriveChooseComponent;\n const result = await this.popupService.open(comp, {\n title: `t(\"actions.choose-from-drive\" , scope: {\"${RootConfig.config.i18n}\"})`,\n data: {\n scope: scope,\n },\n });\n if (result.data?.result) {\n return castArray(result.data.items);\n }\n return [];\n }\n\n async downloadFile(node: AXMDocumentExplorerNode): Promise<void> {\n // const file = await this.documentService.getOne(node.id);\n if (node.fileId) {\n if (node.fileId.startsWith('http')) {\n const link = document.createElement('a');\n link.href = node.fileId;\n link.download = node.name;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n return;\n }\n const fileInfo = await this.fileService.getInfo(node.fileId);\n\n const link = document.createElement('a');\n link.href = fileInfo.url ?? '';\n link.download = node.name; // Set the desired file name\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n } else {\n console.log('id is null');\n }\n }\n\n /**\n * Creates a copy of a node (file or folder)\n * @param node The node to copy\n * @returns The newly created copied node\n */\n async copy(node: AXMDocumentExplorerNode): Promise<AXMDocumentExplorerNode> {\n if (!node) {\n throw new Error('Node to copy cannot be null or undefined');\n }\n\n // Create a name with \" copy\" before the extension\n const newName = this.createCopyName(node.name);\n\n if (node.type === 'file') {\n // Get the original file to copy all its data\n const originalFile = await this.documentService.getOne(node.id);\n if (!originalFile) {\n throw new Error(`File with ID ${node.id} not found`);\n }\n\n // Create a document model from the original with the new name\n // Extract needed properties without id\n const { id, ...fileDataWithoutId } = originalFile;\n const fileData: CreateFileDto = {\n ...fileDataWithoutId,\n name: newName,\n title: newName,\n };\n\n // Create the new file\n return await this.createFile(fileData);\n } else if (node.type === 'folder') {\n // Get the original folder to copy all its data\n const originalFolder = await this.folderService.getOne(node.id);\n if (!originalFolder) {\n throw new Error(`Folder with ID ${node.id} not found`);\n }\n\n // Create a folder model from the original with the new name\n // Extract needed properties without id\n const { id, ...folderDataWithoutId } = originalFolder;\n const folderData: AXMDocumentManagementFolderCreateDto = {\n ...folderDataWithoutId,\n name: newName,\n };\n\n // Create the new folder\n return await this.createFolder(folderData);\n } else {\n throw new Error(`Unsupported node type: ${node.type}`);\n }\n }\n\n /**\n * Creates a copy name by adding \" copy\" before the extension\n * @param originalName The original filename\n * @returns The new filename with \" copy\" added before the extension\n */\n private createCopyName(originalName: string): string {\n const lastDotIndex = originalName.lastIndexOf('.');\n\n if (lastDotIndex === -1) {\n // No extension\n return `${originalName} copy`;\n }\n\n const nameWithoutExt = originalName.substring(0, lastDotIndex);\n const extension = originalName.substring(lastDotIndex);\n\n return `${nameWithoutExt} copy${extension}`;\n }\n\n async uploadFile(folderId: string): Promise<boolean> {\n const folder = await this.folderService.getOne(folderId);\n var docTypes = folder.documentTypes;\n if (folder && docTypes == null) {\n const comp = (await import('./components')).AXMChooseDocumentTypeComponent;\n const result = await this.popupService.open(comp);\n if (result.data != null && result.data.documentType != null) {\n const { upload, ...metaContext } = result.data.context;\n //Todo\n const fileInfo = await this.fileService.getInfo(upload[0]);\n const file = await this.documentService.insertOne({\n fileId: upload[0],\n meta: metaContext,\n parentId: folderId,\n size: fileInfo.size,\n name: `test.${fileInfo.mimeType.split('/')[1]}`,\n title: 'Test',\n });\n return true;\n } else {\n return false;\n }\n }\n return false;\n }\n\n async uploadFileByType(folderId: string, docTypeId: string): Promise<boolean> {\n const folder = await this.folderService.getOne(folderId);\n var docType = folder.documentTypes?.find((dt) => dt.id === docTypeId);\n\n if (folder && docType != null) {\n const comp = (await import('./components')).AXMDocumentTypeChooseFileComponent;\n const result = await this.popupService.open(comp, {\n title: `Select ${docType.title}`,\n data: {\n documentType: docType,\n },\n });\n if (result.data != null) {\n const { uploads, ...metaContext } = result.data.context;\n\n for (const u of uploads) {\n const fileInfo: AXPFileStorageInfo = u;\n await this.fileService.commit(u.fileId);\n const file = await this.documentService.insertOne({\n fileId: fileInfo.fileId,\n meta: metaContext,\n parentId: folderId,\n size: fileInfo.size,\n name: fileInfo.name ?? '',\n title: fileInfo.name ?? '',\n });\n }\n return true;\n } else {\n return false;\n }\n }\n return false;\n }\n}\n\nexport class ScopedDriveService {\n constructor(\n private parent: AXMDocumentManagerService,\n private scope: AXPPlatformScope,\n private options?: { tenantId?: string; userId?: string }\n ) {\n this.validateScopeOptions();\n }\n\n private validateScopeOptions(): void {\n switch (this.scope) {\n case AXPPlatformScope.Tenant:\n if (!this.options?.tenantId) {\n throw new Error('Tenant ID is required for tenant scope');\n }\n break;\n case AXPPlatformScope.User:\n if (!this.options?.tenantId || !this.options?.userId) {\n throw new Error('Both Tenant ID and User ID are required for user scope');\n }\n break;\n }\n }\n\n async getRoot(): Promise<{\n path: AXMDocumentExplorerNode[];\n result: AXMDocumentExplorerNode;\n }> {\n return this.parent.getRoot(this.scope, this.options);\n }\n\n async getFolder(folderId: string): Promise<{\n path: AXMDocumentExplorerNode[];\n result: AXMDocumentExplorerNode;\n }> {\n return this.parent.getFolder(this.scope, folderId, this.options);\n }\n\n async createFolder(\n data: Omit<AXMDocumentManagementFolderCreateDto, 'tenantId' | 'userId'>\n ): Promise<AXMDocumentExplorerNode> {\n const folderData: AXMDocumentManagementFolderCreateDto = {\n ...data,\n tenantId: this.options?.tenantId,\n userId: this.options?.userId,\n };\n return this.parent.createFolder(folderData);\n }\n\n async updateFolder(folderId: string, data: UpdateFolderDto): Promise<AXMDocumentExplorerNode> {\n return this.parent.updateFolder(folderId, data);\n }\n\n async deleteFolder(folderId: string): Promise<void> {\n return this.parent.deleteFolder(folderId);\n }\n\n async getAvailableSpace(): Promise<number> {\n return this.parent.getAvailableSpace();\n }\n\n async searchFolders(searchTerm: string): Promise<AXMDocumentExplorerNode[]> {\n this.validateScopeOptions();\n return this.parent.searchFolders(searchTerm, this.scope, this.options);\n }\n\n async searchFiles(searchTerm: string): Promise<AXMDocumentExplorerNode[]> {\n this.validateScopeOptions();\n return this.parent.searchFiles(searchTerm, this.scope, this.options);\n }\n\n async searchNodes(searchTerm: string): Promise<AXMDocumentExplorerNode[]> {\n this.validateScopeOptions();\n return this.parent.searchNodes(searchTerm, this.scope, this.options);\n }\n\n /**\n * Creates a copy of a node (file or folder)\n * @param node The node to copy\n * @returns The newly created copied node\n */\n async copy(node: AXMDocumentExplorerNode): Promise<AXMDocumentExplorerNode> {\n this.validateScopeOptions();\n return this.parent.copy(node);\n }\n}\n","export enum AXPDocumentExplorerSettings {\n ViewMode = 'document-explorer:layout:view-mode',\n SortField = 'document-explorer:layout:sort-field',\n SortDirection = 'document-explorer:layout:sort-direction'\n}\n\n","import { AXTranslationService } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPFileType, AXPFileTypeProviderService, AXPSettingService } from '@acorex/platform/common';\nimport { AXPActionMenuItem, AXPPlatformScope } from '@acorex/platform/core';\nimport { computed, inject } from '@angular/core';\nimport { patchState, signalStore, withComputed, withMethods, withState } from '@ngrx/signals';\nimport { RootConfig } from '../../const';\nimport { AXMDocumentTypeService } from '../../entities';\nimport { AXMDocumentManagerService } from '../shared/document-manager.service';\nimport {\n AXMDocumentExplorerBrowseMode,\n AXMDocumentExplorerNode,\n AXMDocumentSelectionMode,\n AXPDocumentExplorerViewMode,\n} from '../shared/document-manager.types';\nimport { AXPDocumentExplorerSettings } from './settings.keys';\n\nexport const AXPDocumentExplorerViewModel = signalStore(\n { providedIn: 'root' },\n\n withState(() => ({\n // View State\n viewMode: 'large-tiles' as AXPDocumentExplorerViewMode,\n isLoading: false,\n scope: AXPPlatformScope.User,\n\n // Navigation State\n currentPath: [] as AXMDocumentExplorerNode[],\n currentNode: null as AXMDocumentExplorerNode | null,\n loadingFolderId: null as string | null,\n navigatingFolderId: null as string | null,\n backHistory: [] as { folderId: string; path: AXMDocumentExplorerNode[] }[],\n\n // Selection State\n selectionMode: 'none' as AXMDocumentSelectionMode,\n selectedNodes: [] as AXMDocumentExplorerNode[],\n\n // Browse State\n browseMode: 'file' as AXMDocumentExplorerBrowseMode,\n\n // Sort State\n sortField: 'name',\n sortDirection: 'asc',\n\n // Content State\n folders: [] as AXMDocumentExplorerNode[],\n files: [] as AXMDocumentExplorerNode[],\n itemsCount: 0,\n availableSpace: 0,\n\n // Drive State\n currentDrive: null as AXPPlatformScope | null,\n\n // File Type State\n fileTypes: [] as AXPFileType[],\n // Detail Panel State\n detailPanel: false,\n })),\n\n withComputed((store) => ({\n isRoot: computed(() => {\n const path = store.currentPath();\n return path.length === 1;\n }),\n\n isVirtual: computed(() => {\n const node = store.currentNode();\n return node?.storageType === 'virtual';\n }),\n\n currentFolder: computed(() => store.currentNode()),\n\n currentFolderContents: computed(() => ({\n folders: store.folders(),\n files: store.files(),\n })),\n\n isLargeTilesView: computed(() => store.viewMode() === 'large-tiles'),\n isSmallTilesView: computed(() => store.viewMode() === 'small-tiles'),\n isListView: computed(() => store.viewMode() === 'list'),\n isDetailsView: computed(() => store.viewMode() === 'details'),\n isLargeIconsView: computed(() => store.viewMode() === 'large-icons'),\n isSmallIconsView: computed(() => store.viewMode() === 'small-icons'),\n\n isBackAvailable: computed(() => store.backHistory().length > 0),\n isUpAvailable: computed(() => {\n const node = store.currentNode();\n return node?.parentId != null;\n }),\n\n selectedCount: computed(() => store.selectedNodes().length),\n hasSelectedItems: computed(() => store.selectedNodes().length > 0),\n hasMultipleSelectedItems: computed(() => store.selectedNodes().length > 1),\n isMultiSelect: computed(() => store.selectionMode() === 'multiple'),\n selectedNode: computed<AXMDocumentExplorerNode | null>(() => store.selectedNodes()[0] ?? null),\n\n isDetailPanelOpen: computed(() => store.detailPanel()),\n })),\n\n withMethods(\n (\n store,\n fileTypeService = inject(AXPFileTypeProviderService),\n documentTypeService = inject(AXMDocumentTypeService),\n driveService = inject(AXMDocumentManagerService),\n settingService = inject(AXPSettingService),\n sessionService = inject(AXPSessionService),\n translateService = inject(AXTranslationService)\n ) => ({\n async initialize(options?: { scope?: AXPPlatformScope; browseMode?: AXMDocumentExplorerBrowseMode ,\n filter?:any\n }) {\n // Load file types\n const fileTypes = await fileTypeService.items();\n patchState(store, { fileTypes });\n // Load initial settings\n const viewMode = await settingService\n .scope(options?.scope || AXPPlatformScope.User)\n .get(AXPDocumentExplorerSettings.ViewMode);\n const sortField = await settingService\n .scope(options?.scope || AXPPlatformScope.User)\n .get(AXPDocumentExplorerSettings.SortField);\n const sortDirection = await settingService\n .scope(options?.scope || AXPPlatformScope.User)\n .get(AXPDocumentExplorerSettings.SortDirection);\n\n patchState(store, {\n viewMode: viewMode || 'list',\n sortField: sortField || 'name',\n sortDirection: sortDirection || 'asc',\n browseMode: options?.browseMode || 'file',\n scope: options?.scope || AXPPlatformScope.User,\n });\n },\n\n _load: async (folderId: string) => {\n patchState(store, { loadingFolderId: folderId, isLoading: true });\n\n await new Promise((resolve) => setTimeout(resolve, 100));\n\n try {\n const node = await driveService.getFolder(store.scope(), folderId, {\n tenantId: sessionService.tenant?.id,\n userId: sessionService.user?.id,\n });\n\n patchState(store, {\n currentNode: node.result,\n currentPath: node.path,\n\n folders: node.result.children?.filter((item: AXMDocumentExplorerNode) => item.type === 'folder') || [],\n files:\n node.result.children?.filter(\n (item: AXMDocumentExplorerNode) => store.browseMode() == 'file' && item.type === 'file'\n ) || [],\n itemsCount: node.result.children?.length || 0,\n availableSpace: await driveService.getAvailableSpace(),\n loadingFolderId: null,\n isLoading: false,\n navigatingFolderId: null,\n });\n } catch (error) {\n patchState(store, {\n loadingFolderId: null,\n isLoading: false,\n });\n throw error;\n }\n },\n\n navigateToFolder(folderId: string) {\n const currentNode = store.currentNode();\n if (currentNode) {\n patchState(store, {\n backHistory: [...store.backHistory(), { folderId: currentNode.id, path: store.currentPath() }],\n });\n }\n patchState(store, { navigatingFolderId: folderId });\n },\n\n async loadFolderContents(folderId: string) {\n await this._load(folderId);\n this.deselectAll();\n },\n\n async virtualFolder(files: AXMDocumentExplorerNode[] = []) {\n const id = 'virtual';\n patchState(store, {\n loadingFolderId: id,\n isLoading: true,\n });\n await new Promise((resolve) => setTimeout(resolve, 100));\n\n const node: AXMDocumentExplorerNode = {\n id: id,\n name: 'virtual',\n type: 'folder',\n children: files,\n parentId: null,\n size: 0,\n storageType: 'virtual',\n };\n patchState(store, {\n currentNode: node,\n currentPath: [],\n folders: [],\n files: files,\n itemsCount: node.children?.length || 0,\n availableSpace: await driveService.getAvailableSpace(),\n loadingFolderId: null,\n isLoading: false,\n navigatingFolderId: null,\n });\n },\n\n setViewMode(mode: AXPDocumentExplorerViewMode | string) {\n patchState(store, { viewMode: mode as AXPDocumentExplorerViewMode });\n settingService.scope(AXPPlatformScope.User).set(AXPDocumentExplorerSettings.ViewMode, mode);\n },\n isViewMode(mode: AXPDocumentExplorerViewMode | string) {\n return store.viewMode() === mode;\n },\n\n setSortField(field: string) {\n patchState(store, { sortField: field });\n settingService.scope(AXPPlatformScope.User).set(AXPDocumentExplorerSettings.SortField, field);\n },\n\n setSortDirection(direction: string) {\n patchState(store, { sortDirection: direction });\n settingService.scope(AXPPlatformScope.User).set(AXPDocumentExplorerSettings.SortDirection, direction);\n },\n setSelectionMode(mode: AXMDocumentSelectionMode | string) {\n patchState(store, { selectionMode: mode as AXMDocumentSelectionMode });\n },\n\n setDrive(scope: AXPPlatformScope) {\n patchState(store, { currentDrive: scope });\n },\n\n isLoadingFolder(folderId: string): boolean {\n return store.loadingFolderId() === folderId;\n },\n\n getFileInfo(fileName: string): { icon: string; type: string } {\n const fileTypes = store.fileTypes();\n const extension = fileName.split('.').pop()?.toLowerCase() || '';\n const extensions = fileTypes.flatMap((type) => type.extensions);\n const fileType = extensions.find((e) => e.name === extension);\n\n return {\n icon: fileType?.icon || 'fa-light fa-file',\n type: fileType?.name || 'Unknown',\n };\n },\n\n getNodeInfo(node: AXMDocumentExplorerNode): {\n name: string;\n icon: string;\n type: string;\n sections: [\n {\n title: string;\n details: {\n title: string;\n content?: any;\n icon?: string;\n format?: 'datetime' | 'filesize' | 'number' | 'string';\n }[];\n }\n ];\n } {\n // If no node, return a default object\n if (!node) {\n return {\n name: '---',\n icon: 'fa-light fa-folder',\n type: 'Folder',\n sections: [\n {\n title: 'Details',\n details: [],\n },\n ],\n };\n }\n\n // If the node is a file, return the file info\n if (node.type === 'file') {\n const fileTypes = store.fileTypes();\n const extension = node.name.split('.').pop()?.toLowerCase() || '';\n const extensions = fileTypes.flatMap((type) => type.extensions);\n const fileType = extensions.find((e) => e.name === extension);\n return {\n name: node.name,\n icon: fileType?.icon || 'fa-light fa-file',\n type: 'File',\n sections: [\n {\n title: 'Details',\n details: [\n {\n title: 'Description',\n content: node.description,\n icon: 'fa-solid fa-file-lines',\n },\n {\n title: 'Size',\n content: node.size || 0,\n format: 'filesize',\n icon: 'fa-solid fa-file-lines',\n },\n {\n title: 'Created at',\n content: node.createdAt || new Date(),\n format: 'datetime',\n icon: 'fa-solid fa-calendar-days',\n },\n {\n title: 'Modified at',\n content: node.modifiedAt || new Date(),\n format: 'datetime',\n icon: 'fa-solid fa-calendar-days',\n },\n ],\n },\n ],\n };\n }\n // If the node is a folder, return the folder info\n else {\n return {\n name: node.name,\n icon: 'fa-light fa-folder ax-text-yellow-500',\n type: 'Folder',\n sections: [\n {\n title: 'Details',\n details: [\n {\n title: 'Description',\n content: node.description,\n icon: 'fa-solid fa-file-lines',\n },\n {\n title: 'Items',\n content: node.childrenCount,\n icon: 'fa-solid fa-file-lines',\n },\n {\n title: 'Size',\n content: node.size || 0,\n format: 'filesize',\n icon: 'fa-solid fa-file-lines',\n },\n {\n title: 'Created at',\n content: node.createdAt || new Date(),\n format: 'datetime',\n icon: 'fa-solid fa-calendar-days',\n },\n {\n title: 'Modified at',\n content: node.modifiedAt || new Date(),\n format: 'datetime',\n icon: 'fa-solid fa-calendar-days',\n },\n ],\n },\n ],\n };\n }\n },\n\n sortItems(items: AXMDocumentExplorerNode[]): AXMDocumentExplorerNode[] {\n const field = store.sortField();\n const direction = store.sortDirection();\n\n return [...items].sort((a, b) => {\n let comparison = 0;\n\n switch (field) {\n case 'name':\n comparison = a.name.localeCompare(b.name);\n break;\n case 'modified':\n const aDate = a.modifiedAt ? new Date(a.modifiedAt) : new Date(0);\n const bDate = b.modifiedAt ? new Date(b.modifiedAt) : new Date(0);\n comparison = aDate.getTime() - bDate.getTime();\n break;\n case 'size':\n comparison = (a.size || 0) - (b.size || 0);\n break;\n }\n\n return direction === 'asc' ? comparison : -comparison;\n });\n },\n\n async refresh() {\n if (!store.isVirtual()) {\n const currentFolder = store.currentNode();\n if (currentFolder) {\n await this._load(currentFolder.id);\n }\n } else {\n patchState(store, { loadingFolderId: 'fake' });\n patchState(store, { loadingFolderId: null });\n }\n },\n\n navigateToUp() {\n const currentNode = store.currentNode();\n const parentId = currentNode?.parentId;\n if (parentId && currentNode) {\n patchState(store, {\n backHistory: [...store.backHistory(), { folderId: currentNode.id, path: store.currentPath() }],\n });\n patchState(store, { navigatingFolderId: parentId });\n this.loadFolderContents(parentId);\n }\n },\n\n async navigateBack() {\n const history = store.backHistory();\n if (history.length === 0) {\n return;\n }\n const lastEntry = history[history.length - 1];\n patchState(store, { backHistory: history.slice(0, history.length - 1) });\n patchState(store, { navigatingFolderId: lastEntry.folderId });\n await this.loadFolderContents(lastEntry.folderId);\n },\n\n async openFile(file: AXMDocumentExplorerNode) {\n await driveService.openFile(file);\n },\n\n //TODO: Delete only one node at a time\n async deleteNodes(nodes: AXMDocumentExplorerNode[] = store.selectedNodes()) {\n if (store.isVirtual()) {\n patchState(store, {\n files: store.currentFolderContents().files.filter((file) => !nodes.some((node) => node.name === file.name)),\n });\n } else {\n const result = await driveService.showDeleteNodesDialog(nodes);\n if (result) {\n this.deselectAll();\n await this.refresh();\n }\n }\n },\n\n toggleSelect(node: AXMDocumentExplorerNode) {\n if (store.selectionMode() === 'multiple') {\n patchState(store, {\n selectedNodes: store.selectedNodes().includes(node)\n ? store.selectedNodes().filter((n) => n.id !== node.id)\n : [...store.selectedNodes(), node],\n });\n } else {\n patchState(store, { selectedNodes: [node] });\n }\n },\n\n isItemSelected(node: AXMDocumentExplorerNode): boolean {\n return store.selectedNodes().some((selectedNode) => selectedNode.id === node.id);\n },\n\n selectAll() {\n patchState(store, { selectedNodes: [...store.folders(), ...store.files()] });\n },\n\n deselectAll() {\n patchState(store, { selectedNodes: [] });\n },\n\n openDetailPanel() {\n patchState(store, { detailPanel: true });\n },\n\n closeDetailPanel() {\n patchState(store, { detailPanel: false });\n },\n\n toggleDetailPanel() {\n patchState(store, { detailPanel: !store.detailPanel() });\n },\n\n //#region Menu Items\n\n async getFolderAddMenuItems(): Promise<AXPActionMenuItem[]> {\n const scope = RootConfig.config.i18n;\n\n return [\n {\n title: await translateService.translateAsync('actions.create-folder', { scope }),\n icon: 'fa-light fa-folder-plus',\n break: true,\n command: {\n name: 'new-folder',\n options: {\n folderId: store.currentFolder()?.id,\n },\n },\n },\n ...(store.currentFolder()?.documentTypes?.map((type) => ({\n title: type.title,\n //icon: type.icon,\n icon: 'fa-light fa-file-arrow-up',\n break: true,\n command: {\n name: `upload.${type.name}`,\n options: {\n folderId: store.currentFolder()?.id,\n documentType: type,\n },\n },\n })) ?? []),\n {\n title: await translateService.translateAsync('actions.open-gallery', { scope }),\n icon: 'fa-light fa-images',\n break: true,\n command: {\n name: 'open-gallery',\n options: {\n folderId: store.currentFolder()?.id,\n },\n },\n },\n ];\n },\n async getFolderActionMenuItems(): Promise<AXPActionMenuItem[]> {\n return [\n {\n name: 'refresh',\n title: await translateService.translateAsync('refresh'),\n icon: 'fa-light fa-rotate-right',\n // break: true,\n },\n // {\n // name: 'delete',\n // title: await translateService.translateAsync('delete'),\n // color: 'danger',\n // icon: 'fa-light fa-trash',\n // },\n ];\n },\n\n //#endregion\n\n //#region Context Menu Items\n\n async getContextMenuItems(): Promise<AXPActionMenuItem[]> {\n return [...(await this.getFolderAddMenuItems()), ...(await this.getFolderActionMenuItems())];\n },\n\n //#endregion\n })\n )\n);\n","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport {\n AXContextMenuComponent,\n AXContextMenuItemsClickEvent,\n AXContextMenuOpeningEvent,\n AXMenuItem,\n AXMenuModule,\n} from '@acorex/components/menu';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPPlatformScope } from '@acorex/platform/core';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { CommonModule } from '@angular/common';\nimport { Component, effect, inject, input, signal, Type, viewChild, ViewEncapsulation } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { get } from 'lodash-es';\nimport { AXMDocumentManagerService } from '../shared/document-manager.service';\nimport {\n AXMDocumentExplorerBrowseMode,\n AXMDocumentExplorerNode,\n AXMDocumentSelectionMode,\n AXPDocumentExplorerViewMode,\n} from '../shared/document-manager.types';\nimport { AXPDocumentExplorerViewModel } from './document-explorer.viewmodel';\n@Component({\n selector: 'axm-document-explorer',\n templateUrl: './document-explorer.component.html',\n styleUrls: ['./document-explorer.component.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n imports: [\n CommonModule,\n RouterModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXFormatModule,\n AXDateTimeModule,\n AXMenuModule,\n ],\n})\nexport class AXMDocumentExplorerComponent {\n protected vm = inject(AXPDocumentExplorerViewModel);\n protected contextMenu = viewChild<AXContextMenuComponent>('itemsContextMenu');\n protected rootContextMenu = viewChild<AXContextMenuComponent>('rootContextMenu');\n protected driveService = inject(AXMDocumentManagerService);\n protected translateService = inject(AXTranslationService);\n protected readonly layout = inject(AXPLayoutThemeService);\n\n browseMode = input<AXMDocumentExplorerBrowseMode>('file');\n viewMode = input<AXPDocumentExplorerViewMode>();\n selectionMode = input<AXMDocumentSelectionMode>('none');\n showContextMenu = input<boolean>(true);\n\n protected view = signal<Type<any> | null>(null);\n\n private viewMap = {\n list: async () => (await import('./views/list/list-view.component')).AXMDocumentExplorerListViewComponent,\n 'small-tiles': async () =>\n (await import('./views/small-tiles/small-tiles-view.component')).AXMDocumentExplorerSmallTilesViewComponent,\n 'large-tiles': async () =>\n (await import('./views/large-tiles/large-tiles-view.component')).AXMDocumentExplorerLargeTilesViewComponent,\n details: async () =>\n (await import('./views/details/details-view.component')).AXMDocumentExplorerDetailsViewComponent,\n 'large-icons': async () =>\n (await import('./views/large-icons/large-icons-view.component')).AXMDocumentExplorerLargeIconsViewComponent,\n 'small-icons': async () =>\n (await import('./views/small-icons/small-icons-view.component')).AXMDocumentExplorerSmallIconsViewComponent,\n 'attachment': async () =>\n (await import('./views/attachement-widget/attachment-widget.component')).AXMDocumentExplorerAttachmentComponent,\n };\n\n #effect = effect(() => {\n if (this.vm.loadingFolderId() == null) {\n setTimeout(() => {\n this.contextMenu()?.refresh();\n this.rootContextMenu()?.refresh();\n }, 300);\n }\n });\n\n #effect2 = effect(() => {\n if (this.viewMode()) {\n this.vm.setViewMode(this.viewMode()!);\n }\n if (this.selectionMode()) {\n this.vm.setSelectionMode(this.selectionMode()!);\n }\n });\n\n #effect3 = effect(async () => {\n const func = get(this.viewMap, this.vm.viewMode() as string) ?? this.viewMap['large-tiles'];\n const comp = await func();\n this.view.set(comp);\n });\n\n protected handleNavigateToFolder(folderId: string) {\n this.vm.navigateToFolder(folderId);\n }\n\n //#region Menu and Context Menu\n\n protected async handleContextMenuOnOpening(e: AXContextMenuOpeningEvent) {\n const node = get(e.targetElement, '__data__') as any as AXMDocumentExplorerNode;\n if (!node) {\n return;\n }\n\n const allowedAddItems = node.type === 'folder';\n const allowDelete = true;\n const isPasteAvailable = true;\n const allowPaste = false;\n\n const open =\n node.type == 'file'\n ? [\n {\n name: 'open-file',\n text: 'Open',\n icon: this.vm.getFileInfo(node.name).icon,\n data: node,\n },\n {\n name: 'download',\n text: 'Download',\n icon: 'fa-light fa-download',\n data: node,\n },\n ]\n : [\n {\n name: 'open-folder',\n text: 'Open',\n icon: 'fa-light fa-folder-open',\n data: node,\n },\n {\n name: 'upload-file-33',\n text: 'Upload',\n icon: 'fa-light fa-file-arrow-up',\n break: true,\n items:\n node?.documentTypes?.map((type, index, array) => ({\n name: `upload.${type.name}`,\n text: type.title,\n // icon: type.icon,\n icon: 'fa-light fa-file-arrow-up',\n break: index !== array.length - 1,\n data: {\n node,\n documentType: type,\n },\n })) ?? [],\n },\n ];\n\n const info = {\n name: node.type == 'file' ? 'file-info' : 'folder-info',\n text: 'Information',\n icon: 'fa-light fa-circle-info',\n items: [\n {\n name: 'rename',\n text: 'Rename',\n icon: 'fa-light fa-pencil',\n data: node,\n },\n {\n name: 'properties',\n text: 'Properties',\n icon: 'fa-light fa-memo-circle-info',\n break: true,\n data: node,\n },\n {\n name: 'lock ',\n text: 'Lock',\n icon: 'fa-light fa-lock',\n data: node,\n },\n ],\n break: true,\n };\n\n const openWith = {\n name: 'open-with',\n text: 'Open with',\n icon: 'fa-light fa-circle-info',\n items: [\n {\n name: 'open-gallery',\n text: 'Gallery',\n icon: 'fa-light fa-images',\n data: node,\n },\n ],\n break: true,\n };\n\n e.items = [\n ...open,\n\n {\n name: 'share',\n text: 'Share',\n icon: 'fa-light fa-share-nodes',\n items: [\n {\n name: 'share',\n text: 'Share',\n icon: 'fa-light fa-users',\n },\n {\n name: 'share-with-email',\n text: 'Share with email',\n icon: 'fa-light fa-envelope',\n },\n {\n name: 'link',\n text: 'Link',\n icon: 'fa-light fa-link',\n },\n ],\n break: true,\n },\n info,\n {\n name: 'copy',\n text: 'Make a copy',\n icon: 'fa-light fa-copy',\n data: node,\n },\n {\n name: 'copy-to',\n text: 'Copy to',\n icon: 'fa-light fa-copy',\n data: node,\n },\n {\n name: 'move-to',\n text: 'Move to',\n icon: 'fa-light fa-arrow-right-arrow-left',\n break: true,\n data: node,\n },\n {\n name: 'delete',\n text: 'Delete',\n color: 'danger',\n icon: 'fa-light fa-trash',\n data: node,\n },\n ];\n\n if (node.type == 'file') {\n e.items.splice(1, 0, openWith);\n }\n }\n\n protected async handleContextMenuRootOnOpening(e: AXContextMenuOpeningEvent) {\n //TODO: check async translate method in acorex\n const items = [\n ...(await this.vm.getFolderAddMenuItems()).map((m) => ({\n ...m,\n name: m.command?.name,\n data: m.command?.options,\n })),\n ...(await this.vm.getFolderActionMenuItems()),\n ];\n const mappedItems = items.map((m) => ({\n ...m,\n text: m.title,\n })) as AXMenuItem[];\n e.items.push(...mappedItems);\n\n e.items[e.items.length - 1].break = false;\n }\n\n protected async handleContextMenuItemClick(e: AXContextMenuItemsClickEvent) {\n const node = e.item.data as AXMDocumentExplorerNode;\n switch (e.item.name) {\n case 'open-folder':\n this.handleNavigateToFolder(node.id);\n break;\n case 'open-file':\n this.openFile(node);\n break;\n case 'open-gallery':\n if (e.item.data.folderId != null) {\n this.openGalleryWithFolderId();\n } else {\n this.openGallery(node);\n }\n break;\n case 'download':\n this.handleDownloadFile(node);\n break;\n case 'new-folder':\n await this.createFolder(node);\n // Handle new folder creation\n break;\n // case 'upload-file':\n // await this.uploadFile(node);\n // break;\n case 'paste':\n // Handle paste operation\n break;\n case 'move-to':\n this.moveTo(node);\n break;\n case 'copy-to':\n this.copyTo(node);\n break;\n case 'rename':\n this.renameNode(node);\n break;\n case 'properties':\n this.showFolderProperty(node);\n break;\n case 'delete':\n this.vm.deleteNodes([node]);\n break;\n case 'refresh':\n this.vm.refresh();\n break;\n case 'copy':\n this.makeCopy(node);\n break;\n case 'share':\n this.share(node);\n break;\n case 'share-with-email':\n this.shareWithEmail(node);\n break;\n case 'link':\n this.link(node);\n break;\n case 'lock':\n this.lock(node);\n break;\n case 'unlock':\n this.unlock(node);\n break;\n default:\n if (e.item.name?.startsWith('upload.')) {\n await this.driveService.uploadFileByType(\n e.item.data.node?.id ?? this.vm.currentFolder()?.id,\n e.item.data.documentType.id\n );\n this.vm.refresh();\n }\n break;\n }\n }\n\n //#endregion\n\n protected async showFolderProperty(node: AXMDocumentExplorerNode) {\n if (await this.driveService.showFolderEditDialog(node)) {\n await this.vm.refresh();\n }\n }\n\n protected async share(node: AXMDocumentExplorerNode) {\n await this.driveService.showShareDialog(node);\n }\n\n protected async shareWithEmail(node: AXMDocumentExplorerNode) {\n await this.driveService.showShareWithEmailDialog(node);\n }\n\n protected async link(node: AXMDocumentExplorerNode) {\n await this.driveService.showLinkDialog(node);\n }\n\n protected async lock(node: AXMDocumentExplorerNode) {\n await this.driveService.showLockDialog(node);\n }\n\n protected async unlock(node: AXMDocumentExplorerNode) {\n await this.driveService.showUnlockDialog(node);\n }\n\n protected async openGalleryWithFolderId() {\n const folder = this.vm.currentFolder()!;\n const files = folder.children!.filter((item) => item.type === 'file');\n await this.driveService.showFileViewerPopup(files[0]);\n }\n\n protected async openGallery(node: AXMDocumentExplorerNode) {\n await this.driveService.showFileViewerPopup(node, {\n folderVituralfiles: this.vm.currentFolderContents().files,\n index: this.vm.currentFolderContents().files.findIndex((f) => f.id === node.id),\n });\n }\n protected async openFile(node: AXMDocumentExplorerNode) {\n await this.driveService.openFile(node);\n }\n\n protected handleDownloadFile(node: AXMDocumentExplorerNode) {\n this.driveService.downloadFile(node);\n }\n\n public async createFolder(node?: AXMDocumentExplorerNode) {\n const parentId = node?.id ?? this.vm.currentFolder()?.id;\n if (parentId) {\n const result = await this.driveService.showCreateFolderDialog(parentId);\n if (result) {\n await this.vm.refresh();\n }\n }\n }\n\n public async renameNode(node?: AXMDocumentExplorerNode) {\n if (node) {\n const result = await this.driveService.showRenamePopup(node);\n if (result) {\n if (node.storageType == 'virtual') {\n const files = this.vm.files();\n const updatedFiles = files.map((file) => {\n if (file.id === result.id) {\n return result;\n }\n return file;\n });\n this.vm.virtualFolder(updatedFiles);\n }\n await this.vm.refresh();\n }\n return result;\n }\n return;\n }\n\n public async uploadFile(node?: AXMDocumentExplorerNode) {\n const folderId = node?.id ?? this.vm.currentFolder()?.id;\n if (folderId) {\n const res = await this.driveService.uploadFile(folderId);\n if (res) {\n await this.vm.refresh();\n }\n }\n }\n\n public async chooseFile(scope: AXPPlatformScope = this.vm.scope()): Promise<AXMDocumentExplorerNode[]> {\n return await this.driveService.showChooseFileDialog(scope);\n //await this.vm.refresh();\n }\n\n public async makeCopy(node?: AXMDocumentExplorerNode): Promise<void> {\n if (node) {\n try {\n const copiedNode = await this.driveService.copy(node);\n await this.vm.refresh();\n } catch (error) {\n console.error('Error copying node:', error);\n }\n }\n }\n\n public async moveTo(node?: AXMDocumentExplorerNode) {\n if (node) {\n const result = await this.driveService.moveTo({ browseMode: 'folder', node: node });\n if (result) {\n await this.vm.refresh();\n }\n }\n }\n\n public async copyTo(node?: AXMDocumentExplorerNode) {\n if (node) {\n const result = await this.driveService.copyTo({ browseMode: 'folder', node: node });\n if (result) {\n await this.vm.refresh();\n }\n }\n }\n}\n","<!-- Empty State -->\n<div class=\"view-container\">\n @if (vm.folders().length === 0 && vm.files().length === 0) {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-py-16 ax-h-full\">\n <ax-icon icon=\"fa-light fa-folder-open\" class=\"ax-text-6xl ax-mb-4\"></ax-icon>\n <h3 class=\"ax-text-xl ax-font-medium ax-mb-2\">No Items Found</h3>\n <p class=\"\">This folder is empty. Add some files or folders to get started.</p>\n </div>\n } @else {\n <ng-container [ngComponentOutlet]=\"view()\"></ng-container>\n }\n</div>\n\n<!-- Context Menu -->\n@if (showContextMenu()) {\n<!-- Item Context Menu-->\n<ax-context-menu\n #itemsContextMenu\n [target]=\"'.__explorer-item'\"\n [orientation]=\"'vertical'\"\n [closeOn]=\"'leave'\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n (onOpening)=\"handleContextMenuOnOpening($event)\"\n>\n</ax-context-menu>\n<!-- Root Context Menu-->\n<ax-context-menu\n #rootContextMenu\n [target]=\"'.view-container'\"\n [orientation]=\"'vertical'\"\n [closeOn]=\"'leave'\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n (onOpening)=\"handleContextMenuRootOnOpening($event)\"\n>\n</ax-context-menu>\n}\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDataSource } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { ChangeDetectionStrategy, Component, inject, signal } from '@angular/core';\nimport { AXMDocumentManagementDocumentTypeEntityModel, AXMDocumentTypeService } from '../../../../entities';\nimport { AXPLayoutBuilderModule, AXPLayoutContextChangeEvent, AXPWidgetNode } from '@acorex/platform/layout/builder';\nimport get from 'lodash-es/get';\nimport { AXPFileTypeProviderService } from '@acorex/platform/common';\nimport { set } from 'lodash-es';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'axm-choose-document-type',\n templateUrl: './choose-document-type.component.html',\n imports: [AXButtonModule, AXDecoratorModule, AXFormModule, AXLabelModule, AXSelectBoxModule, AXPLayoutBuilderModule],\n})\nexport class AXMChooseDocumentTypeComponent extends AXBasePageComponent {\n documentTypeService = inject(AXMDocumentTypeService);\n fileTypeService = inject(AXPFileTypeProviderService);\n documentTypeSelected = signal<AXMDocumentManagementDocumentTypeEntityModel[]>([]);\n context = signal({});\n\n documentTypesSource = new AXDataSource({\n load: async (_) => {\n return await this.documentTypeService.query();\n },\n pageSize: 10,\n key: 'id',\n });\n\n uploadNode = signal<AXPWidgetNode>({\n name: 'upload',\n path: 'upload',\n type: 'file',\n options: {\n accept: '.pdf',\n multiple: false,\n },\n });\n\n async handleChangeDocumentType(event: any) {\n const item: AXMDocumentManagementDocumentTypeEntityModel = event.component.selectedItems[0];\n this.uploadNode.update((old) => {\n return {\n ...old,\n options: {\n multiple: item.isMultiple,\n accept: item.name == 'any' ? '' : item.type.selectedItems.map((i) => `.${i.name.split('.')[1]}`).join(','),\n },\n };\n });\n\n for (const i of item.meta) {\n if (!get(i, '__node__')) {\n set(\n i,\n '__node__',\n typeof i.interface == 'function'\n ? await i.interface()\n : JSON.parse(i.interface as string)['children'][0]['children'][0],\n );\n }\n }\n this.documentTypeSelected.set([item]);\n }\n\n handleContextChanged(e: AXPLayoutContextChangeEvent) {\n this.context.set(e.data);\n }\n\n handleCancel() {\n this.close();\n }\n\n handlesubmit() {\n this.close({\n documentType: this.documentTypeSelected(),\n context: this.context(),\n });\n }\n\n getNode(meta: any): AXPWidgetNode {\n return get(meta, '__node__');\n }\n}\n","<ax-header> </ax-header>\n<ax-content>\n <div class=\"ax-flex ax-flex-col ax-py-4 ax-px-6\">\n <ax-label> Select Document Type </ax-label>\n <ax-select-box\n [dataSource]=\"documentTypesSource\"\n textField=\"title\"\n valueField=\"id\"\n (onValueChanged)=\"handleChangeDocumentType($event)\"\n >\n </ax-select-box>\n @if (documentTypeSelected().length > 0) {\n <axp-widgets-container [context]=\"context()\" (onContextChanged)=\"handleContextChanged($event)\">\n <ax-form>\n @for(doc of documentTypeSelected()[0].meta; track doc.name) {\n <ax-form-field>\n <ax-label>{{ doc.title }}</ax-label>\n <ng-container axp-widget-renderer [node]=\"getNode(doc)\" [mode]=\"'edit'\"></ng-container>\n </ax-form-field>\n }\n <ng-container axp-widget-renderer [node]=\"uploadNode()\" mode=\"edit\"></ng-container>\n </ax-form>\n </axp-widgets-container>\n }\n </div>\n</ax-content>\n<ax-footer>\n <ax-suffix>\n <ax-button text=\"Cancel\" (onClick)=\"handleCancel()\"> </ax-button>\n <ax-button text=\"Next\" look=\"solid\" color=\"primary\" (onClick)=\"handlesubmit()\"> </ax-button>\n </ax-suffix>\n</ax-footer>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXPLayoutBuilderModule, AXPLayoutContextChangeEvent, AXPWidgetNode } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component, signal } from '@angular/core';\nimport { set } from 'lodash-es';\nimport get from 'lodash-es/get';\nimport { AXMDocumentManagementDocumentTypeEntityModel } from '../../../../entities';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'axm-choose-document-type',\n templateUrl: './document-type-choose-file.component.html',\n imports: [AXButtonModule, AXDecoratorModule, AXFormModule, AXLabelModule, AXSelectBoxModule, AXPLayoutBuilderModule],\n})\nexport class AXMDocumentTypeChooseFileComponent extends AXBasePageComponent {\n documentType!: AXMDocumentManagementDocumentTypeEntityModel;\n context = signal({});\n\n uploadNode = signal<AXPWidgetNode>({\n name: 'uploads',\n path: 'uploads',\n type: 'file',\n options: {\n accept: '.pdf',\n multiple: false,\n },\n });\n\n protected override async ngOnInit(): Promise<void> {\n this.uploadNode.update((old) => {\n return {\n ...old,\n options: {\n multiple: this.documentType.isMultiple,\n accept:\n this.documentType.name == 'any'\n ? ''\n : this.documentType.type.selectedItems.map((i) => `.${i.name.split('.')[1]}`).join(','),\n },\n };\n });\n for (const i of this.documentType.meta) {\n if (!get(i, '__node__')) {\n set(\n i,\n '__node__',\n typeof i.interface == 'function'\n ? await i.interface()\n : JSON.parse(i.interface as string)['children'][0]['children'][0]\n );\n }\n }\n }\n\n handleContextChanged(e: AXPLayoutContextChangeEvent) {\n console.log(e.data);\n\n this.context.set(e.data);\n }\n\n handleCancel() {\n this.close();\n }\n\n handlesubmit() {\n this.close({\n context: this.context(),\n });\n }\n\n getNode(meta: any): AXPWidgetNode {\n return get(meta, '__node__');\n }\n}\n","<ax-content>\n <div class=\"ax-flex ax-flex-col ax-py-4 ax-px-6\">\n <axp-widgets-container [context]=\"context()\" (onContextChanged)=\"handleContextChanged($event)\">\n <ax-form>\n @for(doc of documentType.meta; track doc.name) {\n <ax-form-field>\n <ax-label>{{ doc.title }}</ax-label>\n <ng-container axp-widget-renderer [node]=\"getNode(doc)\" [mode]=\"'edit'\"></ng-container>\n </ax-form-field>\n }\n <ng-container axp-widget-renderer [node]=\"uploadNode()\" mode=\"edit\"></ng-container>\n </ax-form>\n </axp-widgets-container>\n </div>\n</ax-content>\n<ax-footer>\n <ax-suffix>\n <ax-button text=\"Cancel\" (onClick)=\"handleCancel()\"> </ax-button>\n <ax-button text=\"Submit\" look=\"solid\" color=\"primary\" (onClick)=\"handlesubmit()\"> </ax-button>\n </ax-suffix>\n</ax-footer>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport {\n AXMediaViewerContainerComponent,\n AXMediaViewerData,\n AXMediaViewerModule,\n} from '@acorex/components/media-viewer';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { afterNextRender, ChangeDetectionStrategy, Component, viewChild } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './file-viewer-popup.component.html',\n styleUrl: './file-viewer-popup.scss',\n imports: [AXDecoratorModule, AXButtonModule, AXMediaViewerModule],\n})\nexport class AXMFileViewerPopupComponent extends AXBasePageComponent {\n index: number = 0;\n mediaViewer = viewChild(AXMediaViewerContainerComponent);\n\n f = afterNextRender(() => {\n setTimeout(() => {\n this.mediaViewer()?.goToIndex(this.index, 0);\n });\n });\n\n ngAfterViewInit(): void {\n console.log(this.index);\n\n //Called after ngAfterContentInit when the component's view has been initialized. Applies to components only.\n //Add 'implements AfterViewInit' to the class.\n this.mediaViewer()?.goToIndex(this.index, 0);\n }\n\n onClose() {\n this.close();\n }\n\n nodes!: AXMediaViewerData[];\n}\n","<ax-content>\n <ax-media-viewer-container [thumbnail]=\"true\" #c [dataArray]=\"nodes\">\n <ax-header>\n <ax-prefix>\n <ax-file-info></ax-file-info>\n </ax-prefix>\n <ax-suffix>\n <ax-fullscreen-button></ax-fullscreen-button>\n </ax-suffix>\n </ax-header>\n <ax-prefix>\n <ax-button (click)=\"c.next()\">\n <ax-icon class=\"ax-icon ax-icon-chevron-right\"> </ax-icon>\n </ax-button>\n </ax-prefix>\n <ax-suffix>\n <ax-button (click)=\"c.prev()\">\n <ax-icon class=\"ax-icon ax-icon-chevron-left\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-media-viewer-container>\n</ax-content>\n<ax-footer>\n <ax-suffix>\n <ax-button [text]=\"'close'\" (click)=\"onClose()\" />\n </ax-suffix>\n</ax-footer>\n","import { AXButtonModule } from \"@acorex/components/button\";\nimport { AXDecoratorModule } from \"@acorex/components/decorators\";\nimport { AXPDocumentExplorerViewModel } from \"../../../document-explorer\";\nimport { AXMDocumentExplorerNode } from \"../../document-manager.types\";\nimport { Component, inject } from \"@angular/core\";\nimport { AXPLayoutThemeService } from \"@acorex/platform/themes/shared\";\n\n\n@Component({\n selector: 'axm-folder-path-breadcrumbs',\n templateUrl: './folder-path-breadcrumbs.component.html',\n styleUrls: ['./folder-path-breadcrumbs.component.scss'],\n standalone: true,\n imports: [\n AXButtonModule,\n AXDecoratorModule,\n ],\n})\nexport class AXMFolderPathBreadcrumbsComponent {\n protected vm = inject(AXPDocumentExplorerViewModel);\n protected layout = inject(AXPLayoutThemeService);\n}\n","<!-- Breadcrumbs Section -->\n<div class=\"__breadcrumb ax-xs\">\n <!-- Desktop Breadcrumb -->\n @for (item of vm.currentPath(); track item.id; let i = $index;let last = $last) {\n <!-- Navigation Button -->\n <ax-button look=\"blank\" (onClick)=\"vm.navigateToFolder(item.id)\" [text]=\"item.name\" [disabled]=\"last\">\n @if(i === 0) {\n <ax-icon icon=\"fa-light fa-cloud\"></ax-icon>\n }@else {\n <ax-icon icon=\"fa-light fa-folder-closed\"></ax-icon>\n }\n </ax-button>\n <!-- Separator -->\n @if(!last) {\n <i class=\"far fa-chevron-right rtl:ax-rotate-180 fa-fw fa-xs ax-me-2\"></i>\n }\n <!-- End Navigation Button -->\n }\n</div>\n","import { Component, inject, ViewEncapsulation } from \"@angular/core\";\nimport { AXPDocumentExplorerViewModel } from \"../../document-explorer.viewmodel\";\nimport { AXDecoratorModule } from \"@acorex/components/decorators\";\nimport { AXFormatModule } from \"@acorex/core/format\";\nimport { CommonModule } from \"@angular/common\";\nimport { AXButtonModule } from \"@acorex/components/button\";\nimport { AXTranslationModule } from \"@acorex/core/translation\";\n\n@Component({\n selector: 'axm-document-explorer-detail-panel',\n templateUrl: './detail-panel.component.html',\n styleUrls: ['./detail-panel.component.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n imports: [\n CommonModule,\n AXDecoratorModule,\n AXFormatModule,\n AXButtonModule,\n AXTranslationModule\n ]\n})\nexport class AXMDocumentExplorerDetailPanelComponent {\n protected vm = inject(AXPDocumentExplorerViewModel);\n}\n","<!-- Multiple Selected -->\n@if(vm.hasMultipleSelectedItems()) {\n<div class=\"__header\" *translate=\"let t\">\n <div class=\"__title\">\n <i class=\"fa-fw fa-lg fa-solid\"></i>\n <span> {{ vm.selectedCount() }} {{ t('itemsSelected', { scope: 'common' }) | async }}</span>\n </div>\n <ax-button [look]=\"'blank'\" class=\"ax-sm ax-rounded-full\" (onClick)=\"vm.closeDetailPanel()\">\n <ax-icon icon=\"fa-solid fa-xmark\"></ax-icon>\n </ax-button>\n</div>\n<div class=\"__content\"></div>\n}\n<!-- Single Selected -->\n@else {\n<!-- Info -->\n@let nodeInfo = vm.getNodeInfo((vm.selectedNode() ?? vm.currentFolder())!);\n<div class=\"__header\">\n <div class=\"__title\">\n <i class=\"fa-fw fa-lg {{ nodeInfo.icon }} fa-solid\"></i>\n <span>{{ nodeInfo.name }}</span>\n </div>\n <ax-button [look]=\"'blank'\" class=\"ax-sm ax-rounded-full\" (onClick)=\"vm.closeDetailPanel()\">\n <ax-icon icon=\"fa-solid fa-xmark\"></ax-icon>\n </ax-button>\n</div>\n<div class=\"__content\">\n @for(section of nodeInfo.sections; track section.title) {\n <div class=\"__section\">\n <div class=\"__title\">\n <span>{{ section.title }}</span>\n </div>\n <div class=\"__content\">\n @for(detail of section.details; track detail.title) {\n <div class=\"__row\">\n <div class=\"__title\">\n <span>{{ detail.title }}</span>\n </div>\n <div class=\"__content\">\n @if(detail.format) {\n <span>{{ detail.content | format : detail.format | async }}</span>\n } @else {\n <span>{{ detail.content ?? '---' }}</span>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n</div>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n HostListener,\n inject,\n OnInit,\n signal,\n untracked,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXButtonGroupModule } from '@acorex/components/button-group';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXMenuModule } from '@acorex/components/menu';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXFileModule } from '@acorex/core/file';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPFileTypeProviderService } from '@acorex/platform/common';\nimport { AXPBasePage, AXPBasePageComponent, AXPPageLayoutComponent } from '@acorex/platform/themes/default';\nimport { AXPThemeLayoutBlockComponent } from '@acorex/platform/themes/shared';\n\nimport {\n AXPActionMenuItem,\n AXPBackButton,\n AXPBreadcrumbItem,\n AXPExecuteCommand,\n AXPPlatformScope,\n resolvePlatformScopeKey,\n resolvePlatformScopeName,\n} from '@acorex/platform/core';\nimport { ActivatedRoute, Router, RouterModule } from '@angular/router';\nimport { RootConfig } from '../../const';\nimport { AXMDocumentExplorerComponent, AXPDocumentExplorerViewModel } from '../document-explorer';\nimport { AXMDocumentExplorerAttachmentComponent } from '../document-explorer/views/attachement-widget/attachment-widget.component';\nimport { AXMDocumentManagerService, AXMFolderPathBreadcrumbsComponent } from '../shared';\nimport { AXMDocumentSelectionMode } from '../shared/document-manager.types';\nimport { AXMDocumentExplorerDetailPanelComponent } from \"../document-explorer/views/detail-panel/detail-panel.component\";\n\n@Component({\n selector: 'axp-document-drive',\n templateUrl: './drive.component.html',\n styleUrls: ['./drive.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n RouterModule,\n //\n AXMenuModule,\n AXButtonModule,\n AXButtonGroupModule,\n AXDropdownButtonModule,\n AXDropdownModule,\n AXTranslationModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXBreadcrumbsModule,\n AXBadgeModule,\n AXSearchBoxModule,\n AXFormatModule,\n AXFileModule,\n AXDateTimeModule,\n //\n AXPPageLayoutComponent,\n AXPThemeLayoutBlockComponent,\n //\n AXMDocumentExplorerComponent,\n AXMFolderPathBreadcrumbsComponent,\n AXMDocumentExplorerDetailPanelComponent\n],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n AXPDocumentExplorerViewModel,\n {\n provide: AXPBasePage,\n useExisting: AXMDocumentDriveComponent,\n },\n ],\n})\nexport class AXMDocumentDriveComponent extends AXPBasePageComponent implements OnInit {\n //#region ---------------- Services & Dependencies ----------------\n\n protected readonly rootConfig = RootConfig;\n private readonly fileTypeService = inject(AXPFileTypeProviderService);\n private readonly driveService = inject(AXMDocumentManagerService);\n protected readonly vm = inject(AXPDocumentExplorerViewModel);\n protected readonly router = inject(Router);\n protected readonly activatedRoute = inject(ActivatedRoute);\n\n //#endregion\n\n //#region ---------------- View Properties ----------------\n\n protected readonly filterItems = signal<Array<{ key: string; textKey: string; icon: string }>>([]);\n public selectedFilter = signal<string>('all');\n\n protected readonly sortItems = signal([\n { key: 'name', textKey: 'actions.sort-by-name', icon: 'fa-light fa-font' },\n { key: 'modified', textKey: 'actions.sort-by-date', icon: 'fa-light fa-calendar' },\n { key: 'size', textKey: 'actions.sort-by-size', icon: 'fa-light fa-weight-hanging' },\n ]);\n\n protected readonly viewsItems = signal([\n { key: 'large-icons', icon: 'fa-light fa-grid' },\n { key: 'small-icons', icon: 'fa-light fa-grid', break: true },\n { key: 'large-tiles', icon: 'fa-grid-2' },\n { key: 'small-tiles', icon: 'fa-grid-2', break: true },\n { key: 'details', icon: 'fa-bars', break: true },\n { key: 'list', icon: 'fa-list' },\n ]);\n\n protected readonly selectedViewMode = computed(\n () => this.viewsItems().find((item) => item.key === this.vm.viewMode()) || this.viewsItems()[0]\n );\n protected readonly selectionMode = signal<AXMDocumentSelectionMode>('single');\n protected documentExplorer = viewChild(AXMDocumentExplorerComponent);\n\n //#endregion\n\n //#region ---------------- Computed Properties ----------------\n\n protected readonly selectedSort = computed(() => {\n const items = this.sortItems();\n return items.find((item) => item.key === this.vm.sortField()) || items[0];\n });\n\n //#endregion\n\n //#region ---------------- Effects ----------------\n\n #navigateEffect = effect(() => {\n const navigatingFolderId = this.vm.navigatingFolderId();\n if (navigatingFolderId) {\n this.handleNavigateToFolder(navigatingFolderId);\n }\n });\n\n #loadingEffect = effect(() => {\n const isLoading = this.vm.isLoading();\n untracked(() => {\n this.layoutService.setNavigationLoading(isLoading);\n });\n });\n\n //#endregion\n\n //#region ---------------- Lifecycle Hooks ----------------\n\n override async ngOnInit() {\n super.ngOnInit();\n await this.loadFilterItems();\n const snapshot = this.activatedRoute.snapshot;\n const routerScope = resolvePlatformScopeKey(snapshot.parent?.paramMap.get('scope')?.trim()?.toLowerCase()!);\n await this.vm.initialize({ browseMode: 'file', scope: routerScope as AXPPlatformScope });\n this.activatedRoute.paramMap.subscribe(async () => {\n this.loadDrive();\n });\n }\n\n //#endregion\n\n //#region ---------------- Event Handlers ----------------\n\n async handleSearchChange(event: any) {\n const result = await this.driveService.searchNodes(event.value, AXPPlatformScope.Tenant);\n }\n\n @HostListener('document:keydown.control', ['$event'])\n handleCtrlKey(e: KeyboardEvent) {\n this.selectionMode.set('multiple');\n }\n\n @HostListener('document:keyup.control', ['$event'])\n handleCtrlKeyUp(e: KeyboardEvent) {\n this.selectionMode.set('single');\n }\n\n protected handleNavigateToFolder(folderId: string) {\n this.router.navigate([\n `${this.sessionService.application?.name}/drive/${resolvePlatformScopeName(this.vm.scope())}/${folderId}`,\n ]);\n }\n\n //#endregion\n\n //#region ---------------- Data Loading Methods ----------------\n\n private async loadDrive() {\n const folderId = this.activatedRoute.snapshot.paramMap.get('id');\n if (folderId) {\n await this.vm.loadFolderContents(folderId);\n } else {\n // TODO: get root from tenant or user by scope\n const root = await this.driveService.getRoot(this.vm.scope(), {\n tenantId: this.sessionService.tenant?.id,\n userId: this.sessionService.user?.id,\n });\n if (root.result) {\n await this.router.navigate(\n [\n `${this.sessionService.application?.name}/drive/${resolvePlatformScopeName(this.vm.scope())}/${\n root.result.id\n }`,\n ],\n {\n replaceUrl: true,\n }\n );\n }\n }\n //\n this.recompute();\n }\n\n async loadFilterItems() {\n const types = await this.fileTypeService.items();\n const items = [\n { key: 'all', textKey: 'file-types.all', icon: 'fa-light fa-folder-closed' },\n ...types.map((type) => ({\n key: type.name,\n textKey: `file-types.${type.name}`,\n icon: type.icon || 'fa-light fa-file',\n })),\n ];\n this.filterItems.set(items);\n }\n\n //#endregion\n\n //#region ---------------- Filter Methods ----------------\n\n protected setFilter(key: string): void {\n this.selectedFilter.set(key);\n }\n\n protected getFilterIcon(): string {\n if (this.selectedFilter() === 'all') {\n return 'fa-light fa-folder-closed';\n }\n const item = this.filterItems().find((item) => item.key === this.selectedFilter());\n return item?.icon || 'fa-light fa-file';\n }\n\n protected getFilterText(): string {\n if (this.selectedFilter() === 'all') {\n return 'file-types.all';\n }\n const item = this.filterItems().find((item) => item.key === this.selectedFilter());\n return item?.textKey || 'file-types.all';\n }\n\n //#endregion\n\n //#region ---------------- Page Configuration Overrides ----------------\n\n override async getPrimaryMenuItems(): Promise<AXPActionMenuItem[]> {\n if (this.vm.hasMultipleSelectedItems()) {\n return [\n {\n name: 'deleteItems',\n title: 't(\"deleteItems\")',\n icon: 'fa-light fa-trash-can',\n color: 'danger',\n },\n ];\n }\n const addItemItems = await this.vm.getFolderAddMenuItems();\n addItemItems[addItemItems.length - 1].break = false;\n return [\n {\n title: 't(\"add-item\")',\n icon: 'fa-light fa-plus',\n color: 'primary',\n items: addItemItems,\n },\n ];\n }\n\n override async getSecondaryMenuItems(): Promise<AXPActionMenuItem[]> {\n if (this.vm.hasMultipleSelectedItems()) {\n return [\n {\n name: 'delete',\n title: 't(\"delete\")',\n icon: 'fa-light fa-trash-can',\n color: 'danger',\n },\n ];\n }\n return this.vm.getFolderActionMenuItems();\n }\n\n override async getPageTitle(): Promise<string> {\n if (this.vm.isRoot()) {\n return this.translateService.translateAsync(\n `scope.${resolvePlatformScopeName(this.vm.scope() as AXPPlatformScope)}.title`,\n { scope: this.rootConfig.config.i18n }\n );\n }\n return this.vm.currentFolder()?.name || '';\n }\n\n override async getPageDescription(): Promise<string> {\n const count = await this.vm.itemsCount();\n const size = await this.vm.availableSpace();\n const formattedSize = await this.formatService.format(size, 'filesize');\n return this.translateService.translateAsync(\n `scope.${resolvePlatformScopeName(this.vm.scope() as AXPPlatformScope)}.description`,\n {\n scope: this.rootConfig.config.i18n,\n params: {\n count,\n size: formattedSize,\n },\n }\n );\n }\n\n override getBackButton(): AXPBackButton | null {\n if (this.vm.isUpAvailable()) {\n return {\n title: this.vm.currentPath()[this.vm.currentPath().length - 2].name,\n };\n }\n return null;\n }\n\n override onBackButtonClick(): void | Promise<void> {\n if (this.vm.isUpAvailable()) {\n this.vm.navigateToUp();\n }\n }\n\n override async getPageBreadcrumbs(): Promise<AXPBreadcrumbItem[]> {\n return [\n {\n title: await this.translateService.translateAsync(\n `scope.${resolvePlatformScopeName(this.vm.scope() as AXPPlatformScope)}.title`,\n { scope: this.rootConfig.config.i18n }\n ),\n },\n ];\n }\n\n override async execute(command: AXPExecuteCommand): Promise<void> {\n const folderId = command.options?.['folderId'] as string;\n switch (command.name) {\n case 'new-folder':\n if (folderId) {\n await this.driveService.showCreateFolderDialog(folderId);\n this.vm.refresh();\n }\n break;\n case 'open-gallery':\n if (folderId) {\n await this.driveService.showFileViewerPopup(this.vm.currentFolder()!.children![0]);\n }\n break;\n default:\n if (command.name.startsWith('upload.')) {\n await this.driveService.uploadFileByType(folderId, command.options?.['documentType']?.id);\n this.vm.refresh();\n }\n break;\n }\n }\n\n //#endregion\n}\n","<!-- Main Layout -->\n<axp-page-layout *translate=\"let t\">\n <axp-page-toolbar>\n <!-- Left Side Toolbar -->\n <axp-layout-prefix>\n @if(vm.hasMultipleSelectedItems() ) {\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\">\n {{ vm.selectedCount() }} {{ t('itemsSelected', { scope: 'common' }) | async }}\n </span>\n <span (click)=\"vm.deselectAll()\" class=\"ax-text-sm ax-text-secondary ax-underline ax-cursor-pointer\">{{\n t('unselect', { scope: 'common' }) | async\n }}</span>\n </div>\n }\n <!---------->\n @else {\n <!-- Filter Dropdown -->\n <ax-button [text]=\"t(getFilterText(), { scope: rootConfig.config.i18n }) | async\">\n <ax-prefix>\n <ax-icon [icon]=\"getFilterIcon()\"></ax-icon>\n </ax-prefix>\n\n <ax-dropdown-panel>\n <ax-button-item-list class=\"ax-p-2\">\n @for(item of filterItems(); track item.key) {\n <ax-button-item\n (onClick)=\"setFilter(item.key)\"\n [text]=\"(t(item.textKey, { scope: rootConfig.config.i18n }) | async)!\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"item.icon\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n <!-- Search Box -->\n <ax-search-box\n (onValueChanged)=\"handleSearchChange($event)\"\n class=\"ax-w-72 ax-hidden md:ax-flex\"\n [placeholder]=\"t('actions.search', { scope: rootConfig.config.i18n }) | async\"\n ><ax-clear-button></ax-clear-button\n ></ax-search-box>\n }\n </axp-layout-prefix>\n\n <!-- Right Side Toolbar -->\n <axp-layout-suffix>\n <!-- Sort Dropdown -->\n <ax-button>\n <ax-icon\n [icon]=\"'fa-light fa-arrow-' + (vm.sortDirection() === 'asc' ? 'up' : 'down') + '-wide-short'\"\n ></ax-icon>\n <ax-dropdown-panel>\n <ax-button-item-list>\n <!-- Sort By Options -->\n @for(item of sortItems(); track item.key) {\n <ax-button-item\n [text]=\"(t(item.textKey, { scope: rootConfig.config.i18n }) | async)!\"\n (onClick)=\"vm.setSortField(item.key)\"\n [selected]=\"vm.sortField() === item.key\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"item.icon\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n }\n <ax-divider></ax-divider>\n <!-- Sort Direction Options -->\n <ax-button-item\n [text]=\"(t('actions.sort-ascending', { scope: rootConfig.config.i18n }) | async)!\"\n [selected]=\"vm.sortDirection() === 'asc'\"\n (onClick)=\"vm.setSortDirection('asc')\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-arrow-up-wide-short\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item\n [text]=\"(t('actions.sort-descending', { scope: rootConfig.config.i18n }) | async)!\"\n [selected]=\"vm.sortDirection() === 'desc'\"\n (onClick)=\"vm.setSortDirection('desc')\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-arrow-down-wide-short\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <!-- View Mode Toggle -->\n <ax-button>\n <ax-icon icon=\"fa-light {{ selectedViewMode().icon }}\"></ax-icon>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(item of viewsItems(); track item.key) {\n <!-- view mode items -->\n <ax-button-item\n [text]=\"(t('view-modes.' + item.key, { scope: rootConfig.config.i18n }) | async)!\"\n [selected]=\"vm.isViewMode(item.key)\"\n (onClick)=\"vm.setViewMode(item.key)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light {{ item.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n @if(item.break) {\n <ax-divider></ax-divider>\n }\n <!-- end of view mode items -->\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n @if(layoutService.isLarge()) {\n <!-- Detail Panel Toggle -->\n <ax-button (onClick)=\"vm.toggleDetailPanel()\">\n <ax-icon icon=\"{{ vm.isDetailPanelOpen() ? 'fa-solid fa-square-info' : 'fa-light fa-square-info' }}\"></ax-icon>\n </ax-button>\n }\n </axp-layout-suffix>\n </axp-page-toolbar>\n\n <!-- Content Section -->\n <axp-page-content class=\"ax-overflow-auto ax-flex ax-flex-row ax-gap-4\">\n <axm-document-explorer [selectionMode]=\"selectionMode()\"></axm-document-explorer>\n @if (vm.isDetailPanelOpen() && layoutService.isLarge()) {\n <axm-document-explorer-detail-panel class=\"ax-sticky ax-top-0 ax-z-50\"></axm-document-explorer-detail-panel>\n }\n </axp-page-content>\n\n <!-- Footer Section -->\n @if(!layoutService.isSmall()) {\n <axp-page-footer>\n <axp-layout-prefix>\n <axm-folder-path-breadcrumbs></axm-folder-path-breadcrumbs>\n </axp-layout-prefix>\n </axp-page-footer>\n }\n</axp-page-layout>\n","import { AXButtonComponent, AXButtonModule } from '@acorex/components/button';\nimport { AXButtonGroupModule } from '@acorex/components/button-group';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXFileService } from '@acorex/core/file';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPFileStorageService } from '@acorex/platform/common';\nimport { AXPDataGenerator, AXPPlatformScope } from '@acorex/platform/core';\nimport { AXPPageStatus, AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, HostBinding, inject, viewChild } from '@angular/core';\nimport { RootConfig } from '../../../const';\nimport { AXMDocumentExplorerComponent, AXPDocumentExplorerViewModel } from '../../document-explorer';\nimport { AXMDocumentExplorerNode, AXMDocumentManagerService } from '../../drive';\nimport { AXMDocumentManagementDocumentTypeEntityModel } from '../../../entities';\n\nexport interface AXMDocumentAttachment {\n fileId: string;\n name: string;\n size: number;\n extension: string;\n}\n\nexport interface AXMDocumentAction {\n name: string;\n icon: string;\n title: string;\n callback: () => Promise<File | undefined>;\n}\n\n\n\n@Component({\n selector: 'axm-document-attachment-edit-widget',\n templateUrl: './document-attachment-widget-edit.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n AXMDocumentExplorerComponent,\n AXButtonComponent,\n AXDropdownButtonModule,\n AXDropdownModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXButtonModule,\n AXButtonGroupModule,\n ],\n providers: [AXPDocumentExplorerViewModel],\n})\nexport class AXMDocumentAttachmentWidgetEditComponent extends AXPValueWidgetComponent<AXMDocumentExplorerNode[]> {\n protected readonly vm = inject(AXPDocumentExplorerViewModel);\n protected readonly rootConfig = RootConfig;\n protected readonly sessionService = inject(AXPSessionService);\n protected readonly fileService = inject(AXFileService);\n protected readonly fileStorageService = inject(AXPFileStorageService);\n protected readonly driveService = inject(AXMDocumentManagerService);\n\n protected documentExplorer = viewChild(AXMDocumentExplorerComponent);\n\n protected scopes = AXPPlatformScope;\n\n protected actions = computed<AXMDocumentAction[]>(() => (this.options()['actions'] as AXMDocumentAction[]) ?? []);\n\n protected multiple = computed<boolean>(() => this.options()['multiple'] as boolean);\n protected entity = computed<string>(() => this.options()['entity'] as string);\n protected entityRecordId = computed<string>(() => this.options()['record'] as string);\n\n protected documentTypes = computed<AXMDocumentManagementDocumentTypeEntityModel[]>(\n () => (this.options()['types'] as AXMDocumentManagementDocumentTypeEntityModel[])\n )\n\n async ngOnDestroy(): Promise<void> {\n const status = this.layoutService.status();\n if (status == AXPPageStatus.Submitted) {\n const oldFiles = await this.driveService.getAllFiles({\n skip: 0,\n take: 1000,\n filter: {\n logic: 'and',\n filters: [\n {\n field: 'refRecordId',\n operator: {\n type: 'equal',\n },\n value: this.entityRecordId() ?? (this.contextService.data() as any)?.id,\n },\n {\n field: 'refEntity',\n operator: {\n type: 'equal',\n },\n value: this.entity(),\n },\n ],\n },\n });\n const filesToDelete = oldFiles.filter((file) => !this.vm.files().some((f) => f.id === file.id));\n this.driveService.deleteNodes(filesToDelete);\n\n const files = this.vm.files();\n for (const file of files) {\n if (file.fileId && file.storageType == 'virtual') {\n //TODO: Check logic if correct or not\n if (file.fileId && file.fileId.startsWith('http')) {\n this.fileStorageService.commit(file.fileId);\n }\n this.driveService.createFile({\n fileId: file.fileId,\n name: file.name,\n parentId: '123',\n size: file.size,\n title: file.name,\n refEntity: this.entity(),\n refRecordId: this.entityRecordId(),\n });\n }\n }\n }\n }\n\n override async ngOnInit() {\n console.log('entityRecordId: ', this.entityRecordId());\n\n super.ngOnInit();\n const files = await this.driveService.getAllFiles({\n skip: 0,\n take: 1000,\n filter: {\n logic: 'and',\n filters: [\n {\n field: 'refRecordId',\n operator: {\n type: 'equal',\n },\n value: this.entityRecordId(),\n },\n {\n field: 'refEntity',\n operator: {\n type: 'equal',\n },\n value: this.entity(),\n },\n ],\n },\n });\n\n this.vm.initialize({ browseMode: 'file' });\n this.vm.virtualFolder([...files, this.defaultValue()]);\n this.setValue([...files, this.defaultValue()]);\n }\n\n protected async chooseFromDrive(scope: AXPPlatformScope) {\n const result = ((await this.documentExplorer()?.chooseFile(scope)) ?? []).map<AXMDocumentExplorerNode>((item) => ({\n ...item,\n id: AXPDataGenerator.uuid(),\n storageType: 'virtual',\n parentId: 'virtual',\n }));\n const exists = this.vm.files();\n await this.updateContents([...exists, ...result]);\n }\n\n protected async uploadFromComputer() {\n const files = await this.fileService.choose();\n const allFiles: AXMDocumentExplorerNode[] = this.vm.files();\n for await (const file of files) {\n const f = await this.fileStorageService.save({\n file: file,\n category: '',\n refId: this.entityRecordId(),\n refType: this.entity(),\n });\n allFiles.push({\n id: f.fileId,\n fileId: f.fileId,\n // name: `test.${f.mimeType.split('/')[1]}`,\n name: file.name,\n size: f.size,\n parentId: 'virtual',\n type: 'file',\n storageType: 'virtual',\n });\n }\n await this.updateContents(allFiles);\n }\n\n protected async updateContents(files: AXMDocumentExplorerNode[]) {\n if (this.multiple()) {\n await this.vm.virtualFolder(files);\n this.setValue(files)\n } else {\n await this.vm.virtualFolder([files[files.length - 1]]);\n this.setValue([files[files.length - 1]])\n }\n }\n\n protected async handleActionCallback(action: AXMDocumentAction) {\n try {\n const result = await action.callback();\n if (result) {\n\n const allFiles: AXMDocumentExplorerNode[] = this.vm.files();\n const f = await this.fileStorageService.save({\n file: result,\n category: '',\n refId: this.entityRecordId(),\n refType: this.entity(),\n });\n\n allFiles.push({\n id: f.fileId,\n fileId: f.fileId,\n // name: `test.${f.mimeType.split('/')[1]}`,\n name: result.name,\n size: f.size,\n parentId: 'virtual',\n type: 'file',\n storageType: 'virtual',\n });\n await this.updateContents(allFiles);\n\n setTimeout(() => console.log(this.vm.files()), 10);\n }\n } catch (error) {\n console.error('Error in action callback:', error);\n }\n }\n\n @HostBinding('class')\n private get __class() {\n const cls: any = {};\n cls[`ax-rounded-md`] = true;\n cls[`ax-border-2`] = true;\n cls[`ax-border-2`] = true;\n cls[`ax-p-4`] = true;\n return cls;\n }\n}\n","<div class=\"ax-flex ax-flex-col ax-gap-3\" *translate=\"let t\">\n <!-- Header Section -->\n <div class=\"ax-flex ax-flex-row ax-justify-between ax-items-center\">\n <!-- Selection Actions -->\n @if(vm.hasMultipleSelectedItems() ) {\n <div class=\"ax-flex ax-gap-3 ax-items-center\">\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\">\n {{ vm.selectedCount() }} {{ t('itemsSelected', { scope: 'common' }) | async }}\n </span>\n <span (click)=\"vm.deselectAll()\" class=\"ax-text-sm ax-text-secondary ax-underline ax-cursor-pointer\">{{\n t('unselect', { scope: 'common' }) | async\n }}</span>\n </div>\n <ax-button (onClick)=\"vm.deleteNodes(vm.selectedNodes())\" [text]=\"'delete'\" [color]=\"'danger'\"></ax-button>\n </div>\n } @else {\n <div></div>\n }\n <!-- Primary Actions -->\n <div class=\"ax-flex ax-justify-end\">\n <ax-button [text]=\"t('actions.add-item', { scope: rootConfig.config.i18n }) | async\" [color]=\"'primary'\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-prefix>\n <ax-dropdown-panel>\n <!-- Upload Dropdown -->\n <ax-button-item-list>\n <ax-button-item\n (onClick)=\"uploadFromComputer()\"\n [text]=\"(t('actions.upload-from-device', { scope: rootConfig.config.i18n }) | async)!\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-file-arrow-up\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n\n <ax-divider></ax-divider>\n\n <ax-button-item\n (onClick)=\"chooseFromDrive(scopes.User)\"\n [text]=\"(t('actions.choose-from-drive', { scope: rootConfig.config.i18n }) | async)!\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-file-arrow-up\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item\n (onClick)=\"chooseFromDrive(scopes.Tenant)\"\n [text]=\"(t('actions.choose-from-organization', { scope: rootConfig.config.i18n }) | async)!\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-file-arrow-up\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n\n @for (action of actions(); track action.name) {\n <ax-button-item (onClick)=\"handleActionCallback(action)\" [text]=\"action.title\">\n <ax-prefix>\n <ax-icon [icon]=\"action.icon\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n </div>\n <axm-document-explorer\n [showContextMenu]=\"false\"\n [viewMode]=\"'attachment'\"\n [selectionMode]=\"'multiple'\"\n ></axm-document-explorer>\n</div>\n","import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n inputs: [],\n})\nexport class AXMDocumentAttachmentWidgetPrintComponent extends AXPValueWidgetComponent<void> { }\n","import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'axp-document-attachment-widget',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n inputs: [],\n})\nexport class AXMDocumentAttachmentWidgetViewComponent extends AXPValueWidgetComponent<void> { }\n","import { AXP_WIDGETS_EDITOR_CATEGORY, AXPWidgetConfig } from '@acorex/platform/layout/builder';\nimport { AXP_DATA_PATH_PROPERTY, AXP_NAME_PROPERTY } from '@acorex/platform/widgets';\n\nexport const AXMDocumentAttachmentWidget: AXPWidgetConfig = {\n name: 'document-attachment-editor',\n title: 'DocumentAttachment',\n icon: 'fa-light fa-gallery',\n description: 'My custom widget',\n categories: AXP_WIDGETS_EDITOR_CATEGORY,\n type: 'editor',\n defaultFilterWidgetName: 'string-filter',\n properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY],\n components: {\n view: {\n component: () =>\n import('./document-attachment-widget-edit.component').then((c) => c.AXMDocumentAttachmentWidgetEditComponent),\n },\n edit: {\n component: () =>\n import('./document-attachment-widget-edit.component').then((c) => c.AXMDocumentAttachmentWidgetEditComponent),\n },\n column: {\n component: () =>\n import('./document-attachment-widget-column.component').then(\n (c) => c.AXMDocumentAttachmentWidgetColumnComponent\n ),\n },\n print: {\n component: () =>\n import('./document-attachment-widget-print.component').then((c) => c.AXMDocumentAttachmentWidgetPrintComponent),\n },\n designer: {\n component: () =>\n import('./document-attachment-widget-edit.component').then((c) => c.AXMDocumentAttachmentWidgetEditComponent),\n },\n },\n};\ndeclare module '@acorex/platform/layout/builder' {\n interface AXPWidgetTypesMap {\n documentAttachment: 'document-attachment-editor';\n }\n}\n","import { AXPopupService } from '@acorex/components/popup';\nimport { AXUploaderService } from '@acorex/components/uploader';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext } from '@acorex/platform/workflow';\nimport { inject } from '@angular/core';\nimport { AXMDocumentManagementDocumentTypeEntityModel, AXMDocumentTypeService } from '../../../entities';\nexport class AXMCheckDocumentTypeWorkflowAction extends AXPWorkflowAction {\n override async execute(context: AXPWorkflowContext): Promise<void> {\n const documentType = context.getVariable('documentType');\n if (documentType) {\n context.setOutput('need-choose-document-type', false);\n } else {\n context.setOutput('need-choose-document-type', true);\n }\n }\n}\n\nexport class AXMChooseDocumentTypeWorkflowAction extends AXPWorkflowAction {\n popupService = inject(AXPopupService);\n\n override async execute(context: AXPWorkflowContext): Promise<void> {\n const comp = (await import('../../shared/components')).AXMChooseDocumentTypeComponent;\n const result = await this.popupService.open(comp);\n if (result.data != null && result.data.documentTypeId != null) {\n context.setVariable('documentTypeId', result.data.documentTypeId);\n context.setOutput('isCanceled', false);\n } else {\n context.setOutput('isCanceled', true);\n }\n }\n}\n\nexport class AXMChooseFileWorkflowAction extends AXPWorkflowAction {\n documentTypeService = inject(AXMDocumentTypeService);\n uploadService = inject(AXUploaderService);\n\n override async execute(context: AXPWorkflowContext): Promise<void> {\n var doc: AXMDocumentManagementDocumentTypeEntityModel = context.getVariable('documentType');\n if (!doc) {\n const docId = context.getVariable('documentTypeId');\n doc = await this.documentTypeService.getOne(docId);\n }\n\n this.uploadService.browse({\n //accept: doc.type,\n multiple: doc.isMultiple,\n });\n }\n}\n\nexport const AXMUploadWorkflow: AXPWorkflow = {\n startStepId: 'check-document-type',\n steps: {\n 'check-document-type': {\n action: 'AXMCheckDocumentTypeWorkflowAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"need-choose-document-type\") == true' }],\n nextStepId: 'choose-document-type',\n },\n ],\n },\n 'choose-document-type': {\n action: 'AXMChooseDocumentTypeWorkflowAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"isCanceled\") == false' }],\n nextStepId: 'file-browser',\n },\n ],\n },\n 'file-browser': {\n action: 'AXMChooseFileWorkflowAction',\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'dispatch-event',\n },\n ],\n },\n },\n};\n","import { AXPTaskBadgeProvider } from \"@acorex/platform/common\";\nimport { signal } from \"@angular/core\";\n\nexport class AXMTaskBadgeProviderSample1 implements AXPTaskBadgeProvider {\n count = signal(0);\n key = 'badge-1';\n\n constructor() {\n this.count.set(10);\n }\n\n}\n\n\n\nexport class AXMTaskBadgeProviderSample2 implements AXPTaskBadgeProvider {\n count = signal(5);\n key = 'badge-2';\n\n constructor() {\n setInterval(() => {\n this.count.update(c => c + 1);\n }, 30000);\n }\n\n}\n","import { AXP_PERMISSION_DEFINITION_PROVIDER, AXPAuthGuard } from '@acorex/platform/auth';\nimport { AXP_TASK_BADGE_PROVIDERS, AXP_MENU_PROVIDER, AXP_SEARCH_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex/platform/common';\nimport { AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';\nimport { inject, Injector, NgModule } from '@angular/core';\nimport { AXMEntityProvider } from './entity.provider';\nimport { AXMMenuProvider } from './menu.provider';\nimport { AXMSearchCommandProvider } from './search-command.provider';\nimport { AXMSettingProvider } from './settings.provider';\n\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\nimport { ROUTES, Routes } from '@angular/router';\nimport {\n AXMDocumentManagementDocumentEntityModule,\n AXMDocumentManagementDocumentTypeEntityModule,\n AXMDocumentManagementDocumentTypeMetaDefinitionEntityModule,\n AXMDocumentManagementDocumentTypeMetaValueEntityModule,\n AXMDocumentManagementDocumentTypeStatusDefinitionEntityModule,\n} from './entities';\nimport { AXmFileTypeExtensionWidget } from './features/file-type';\nimport { AXMFileTypeModule } from './features/file-type/file-type.module';\n\nimport { AXMediaViewerModule } from '@acorex/components/media-viewer';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { AXMFolderService, AXMFolderServiceImpl } from './entities';\nimport { AXMDocumentAttachmentWidget } from './features/widgets';\nimport {\n AXMCheckDocumentTypeWorkflowAction,\n AXMChooseDocumentTypeWorkflowAction,\n AXMChooseFileWorkflowAction,\n AXMUploadWorkflow,\n} from './features/workflow/upload/upload.workflow';\nimport { AXMTaskBadgeProviderSample1, AXMTaskBadgeProviderSample2 } from './badge.provider';\nimport { AXMPermissionDefinitionProvider } from './permission-definition.provider';\n\nfunction routesFacory() {\n const config = inject(AXP_ENTITY_CONFIG_TOKEN);\n const routes: Routes = [\n {\n path: ':app/drive/:scope',\n loadComponent: () => {\n return config.viewers.root();\n },\n canActivate: [AXPAuthGuard],\n data: { reuse: true },\n children: [\n {\n path: '',\n loadComponent: () => import('./features/drive/drive.component').then((c) => c.AXMDocumentDriveComponent),\n },\n {\n path: ':id',\n loadComponent: () => import('./features/drive/drive.component').then((c) => c.AXMDocumentDriveComponent),\n },\n ],\n },\n ];\n return routes;\n}\n\n@NgModule({\n imports: [\n AXMDocumentManagementDocumentTypeStatusDefinitionEntityModule,\n AXMDocumentManagementDocumentTypeMetaValueEntityModule,\n AXMDocumentManagementDocumentTypeMetaDefinitionEntityModule,\n AXMDocumentManagementDocumentTypeEntityModule,\n AXMDocumentManagementDocumentEntityModule,\n AXPLayoutBuilderModule.forChild({\n widgets: [AXmFileTypeExtensionWidget, AXMDocumentAttachmentWidget],\n }),\n AXMFileTypeModule,\n AXMediaViewerModule.forRoot(),\n AXPWorkflowModule.forChild({\n actions: {\n AXMCheckDocumentTypeWorkflowAction,\n AXMChooseDocumentTypeWorkflowAction,\n AXMChooseFileWorkflowAction,\n },\n workflows: {\n 'upload-document': AXMUploadWorkflow,\n },\n }),\n ],\n exports: [],\n\n providers: [\n {\n provide: AXMFolderService,\n useClass: AXMFolderServiceImpl,\n },\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMMenuProvider,\n multi: true,\n },\n {\n provide: AXP_ENTITY_DEFINITION_LOADER,\n useClass: AXMEntityProvider,\n multi: true,\n },\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXMSettingProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_PROVIDER,\n useClass: AXMSearchCommandProvider,\n multi: true,\n },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useFactory: async () => {\n const injector = inject(Injector);\n const provider = (await import('./permission-definition.provider')).AXMPermissionDefinitionProvider;\n return new provider(injector);\n } ,\n multi: true,\n },\n {\n provide: AXP_TASK_BADGE_PROVIDERS,\n useClass: AXMTaskBadgeProviderSample1,\n multi: true,\n },\n {\n provide: AXP_TASK_BADGE_PROVIDERS,\n useClass: AXMTaskBadgeProviderSample2,\n multi: true,\n },\n {\n provide: ROUTES,\n multi: true,\n useFactory: routesFacory,\n },\n ],\n})\nexport class AXMDocumentManagementModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i5","get","i2","i3","set","i1","i4","i6"],"mappings":"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"}