@acorex/modules 19.4.4 → 19.4.5

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 (141) hide show
  1. package/conversation/README.md +113 -2
  2. package/conversation/index.d.ts +2 -14
  3. package/conversation/lib/const.d.ts +25 -6
  4. package/conversation/lib/conversation.module.d.ts +32 -3
  5. package/conversation/lib/entities/index.d.ts +2 -0
  6. package/conversation/lib/entities/message/index.d.ts +3 -0
  7. package/conversation/lib/entities/message/message.entity.d.ts +3 -0
  8. package/conversation/lib/entities/message/message.service.d.ts +10 -0
  9. package/conversation/lib/entities/message/message.types.d.ts +20 -0
  10. package/conversation/lib/entities/room/index.d.ts +3 -0
  11. package/conversation/lib/entities/room/room.entity.d.ts +3 -0
  12. package/conversation/lib/entities/room/room.service.d.ts +10 -0
  13. package/conversation/lib/entities/room/room.types.d.ts +8 -0
  14. package/conversation/lib/entity.provider.d.ts +12 -0
  15. package/conversation/lib/features/chat/chat-preview.helper.d.ts +68 -0
  16. package/conversation/lib/features/chat/chat.component.d.ts +42 -0
  17. package/conversation/lib/features/chat/chat.service.d.ts +101 -0
  18. package/conversation/lib/features/chat/chat.type.d.ts +38 -0
  19. package/conversation/lib/{entities → features}/chat/components/chat-item/chat-item.component.d.ts +6 -1
  20. package/conversation/lib/{entities → features}/chat/components/chat-preview/chat-preview.component.d.ts +3 -0
  21. package/conversation/lib/features/chat/index.d.ts +5 -0
  22. package/conversation/lib/{entities/comments/pages → features/comment}/comment-list-view.component.d.ts +12 -12
  23. package/conversation/lib/features/comment/comment.service.d.ts +66 -0
  24. package/conversation/lib/features/comment/comment.type.d.ts +45 -0
  25. package/conversation/lib/features/comment/index.d.ts +4 -0
  26. package/conversation/lib/features/index.d.ts +2 -0
  27. package/document-management/lib/entities/folder/folder.types.d.ts +3 -2
  28. package/document-management/lib/features/document-explorer/components/create-folder-dialog/create-folder-dialog.component.d.ts +5 -2
  29. package/document-management/lib/features/document-explorer/document-explorer.component.d.ts +22 -20
  30. package/document-management/lib/features/document-explorer/document-explorer.viewmodel.d.ts +22 -2
  31. package/document-management/lib/features/document-explorer/views/attachement-widget/attachment-widget.component.d.ts +52 -33
  32. package/document-management/lib/features/document-explorer/views/detail-panel/detail-panel.component.d.ts +52 -33
  33. package/document-management/lib/features/document-explorer/views/details/details-view.component.d.ts +52 -33
  34. package/document-management/lib/features/document-explorer/views/large-icons/large-icons-view.component.d.ts +52 -33
  35. package/document-management/lib/features/document-explorer/views/large-tiles/large-tiles-view.component.d.ts +52 -33
  36. package/document-management/lib/features/document-explorer/views/list/list-view.component.d.ts +52 -33
  37. package/document-management/lib/features/document-explorer/views/small-icons/small-icons-view.component.d.ts +52 -33
  38. package/document-management/lib/features/document-explorer/views/small-tiles/small-tiles-view.component.d.ts +52 -33
  39. package/document-management/lib/features/drive/drive.component.d.ts +52 -31
  40. package/document-management/lib/features/drive-choose/drive-choose.component.d.ts +49 -28
  41. package/document-management/lib/features/shared/components/document-type-choose-file/document-type-choose-file.component.d.ts +6 -6
  42. package/document-management/lib/features/shared/components/folder-path-breadcrumbs/folder-path-breadcrumbs.component.d.ts +21 -2
  43. package/document-management/lib/features/shared/document-manager.service.d.ts +177 -45
  44. package/document-management/lib/features/shared/document-manager.types.d.ts +2 -1
  45. package/document-management/lib/features/shared/index.d.ts +1 -0
  46. package/fesm2022/acorex-modules-common.mjs +7 -0
  47. package/fesm2022/acorex-modules-common.mjs.map +1 -1
  48. package/fesm2022/acorex-modules-conversation.mjs +2382 -820
  49. package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
  50. package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-BpmG6Dyx.mjs → acorex-modules-document-management-acorex-modules-document-management-BATdoqJi.mjs} +1679 -2019
  51. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-BATdoqJi.mjs.map +1 -0
  52. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-DIF_t4fE.mjs → acorex-modules-document-management-attachment-widget.component-C1-gQepw.mjs} +2 -2
  53. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-DIF_t4fE.mjs.map → acorex-modules-document-management-attachment-widget.component-C1-gQepw.mjs.map} +1 -1
  54. package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-ZMvsadWt.mjs +144 -0
  55. package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-ZMvsadWt.mjs.map +1 -0
  56. package/fesm2022/{acorex-modules-document-management-details-view.component-D0RIYrHB.mjs → acorex-modules-document-management-details-view.component-CvHIETNf.mjs} +2 -2
  57. package/fesm2022/{acorex-modules-document-management-details-view.component-D0RIYrHB.mjs.map → acorex-modules-document-management-details-view.component-CvHIETNf.mjs.map} +1 -1
  58. package/fesm2022/{acorex-modules-document-management-drive-choose.component-DMAQr0nK.mjs → acorex-modules-document-management-drive-choose.component-UTy9OISj.mjs} +29 -9
  59. package/fesm2022/acorex-modules-document-management-drive-choose.component-UTy9OISj.mjs.map +1 -0
  60. package/fesm2022/acorex-modules-document-management-drive.component-Crh10Z5J.mjs +363 -0
  61. package/fesm2022/acorex-modules-document-management-drive.component-Crh10Z5J.mjs.map +1 -0
  62. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-C686Ec7s.mjs → acorex-modules-document-management-large-icons-view.component-BuV7MPG5.mjs} +2 -2
  63. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-C686Ec7s.mjs.map → acorex-modules-document-management-large-icons-view.component-BuV7MPG5.mjs.map} +1 -1
  64. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-0GpMVYv5.mjs → acorex-modules-document-management-large-tiles-view.component-CwYwVxoG.mjs} +2 -2
  65. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-0GpMVYv5.mjs.map → acorex-modules-document-management-large-tiles-view.component-CwYwVxoG.mjs.map} +1 -1
  66. package/fesm2022/{acorex-modules-document-management-list-view.component-C1inszTC.mjs → acorex-modules-document-management-list-view.component-BHEwRA3m.mjs} +2 -2
  67. package/fesm2022/{acorex-modules-document-management-list-view.component-C1inszTC.mjs.map → acorex-modules-document-management-list-view.component-BHEwRA3m.mjs.map} +1 -1
  68. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-B7lgRLHi.mjs → acorex-modules-document-management-permission-definition.provider-B3qaYwRL.mjs} +2 -2
  69. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-B7lgRLHi.mjs.map → acorex-modules-document-management-permission-definition.provider-B3qaYwRL.mjs.map} +1 -1
  70. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-C9k8WgDG.mjs → acorex-modules-document-management-rename-node-dialog.component-CrcJm9jP.mjs} +5 -5
  71. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-C9k8WgDG.mjs.map → acorex-modules-document-management-rename-node-dialog.component-CrcJm9jP.mjs.map} +1 -1
  72. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-BGcUzNCv.mjs → acorex-modules-document-management-small-icons-view.component-CD5UORaq.mjs} +2 -2
  73. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-BGcUzNCv.mjs.map → acorex-modules-document-management-small-icons-view.component-CD5UORaq.mjs.map} +1 -1
  74. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-CumumWvO.mjs → acorex-modules-document-management-small-tiles-view.component-cpc_xfbT.mjs} +2 -2
  75. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-CumumWvO.mjs.map → acorex-modules-document-management-small-tiles-view.component-cpc_xfbT.mjs.map} +1 -1
  76. package/fesm2022/acorex-modules-document-management.mjs +1 -1
  77. package/fesm2022/{acorex-modules-issue-management-acorex-modules-issue-management-ErtEMU89.mjs → acorex-modules-issue-management-acorex-modules-issue-management-DbVfrgVX.mjs} +5 -5
  78. package/fesm2022/acorex-modules-issue-management-acorex-modules-issue-management-DbVfrgVX.mjs.map +1 -0
  79. package/fesm2022/{acorex-modules-issue-management-capture-screen.component-B6k0Zn9C.mjs → acorex-modules-issue-management-capture-screen.component-_9mwJVkz.mjs} +2 -2
  80. package/fesm2022/{acorex-modules-issue-management-capture-screen.component-B6k0Zn9C.mjs.map → acorex-modules-issue-management-capture-screen.component-_9mwJVkz.mjs.map} +1 -1
  81. package/fesm2022/acorex-modules-issue-management.mjs +1 -1
  82. package/fesm2022/acorex-modules-notification-management.mjs +5 -5
  83. package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
  84. package/fesm2022/{acorex-modules-organization-management-org-chart.page-CP8zz-Bc.mjs → acorex-modules-organization-management-org-chart.page-CrOUUr4c.mjs} +1 -2
  85. package/fesm2022/acorex-modules-organization-management-org-chart.page-CrOUUr4c.mjs.map +1 -0
  86. package/fesm2022/acorex-modules-organization-management.mjs +2 -2
  87. package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-C9ZApxct.mjs → acorex-modules-platform-management-acorex-modules-platform-management-DtXOjIIK.mjs} +326 -87
  88. package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-DtXOjIIK.mjs.map +1 -0
  89. package/fesm2022/{acorex-modules-platform-management-list-version.component-D50Xundj.mjs → acorex-modules-platform-management-list-version.component-DY4yMd8n.mjs} +2 -2
  90. package/fesm2022/{acorex-modules-platform-management-list-version.component-D50Xundj.mjs.map → acorex-modules-platform-management-list-version.component-DY4yMd8n.mjs.map} +1 -1
  91. package/fesm2022/{acorex-modules-platform-management-settings.provider-DsHGn3AZ.mjs → acorex-modules-platform-management-settings.provider-BO-1dmVc.mjs} +2 -2
  92. package/fesm2022/{acorex-modules-platform-management-settings.provider-DsHGn3AZ.mjs.map → acorex-modules-platform-management-settings.provider-BO-1dmVc.mjs.map} +1 -1
  93. package/fesm2022/acorex-modules-platform-management.mjs +1 -1
  94. package/fesm2022/acorex-modules-project-management.mjs +108 -0
  95. package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
  96. package/fesm2022/acorex-modules-settings-management.mjs +20 -21
  97. package/fesm2022/acorex-modules-settings-management.mjs.map +1 -1
  98. package/fesm2022/acorex-modules-workflow-management-task-board.page-3_Tn2GeA.mjs +305 -0
  99. package/fesm2022/acorex-modules-workflow-management-task-board.page-3_Tn2GeA.mjs.map +1 -0
  100. package/fesm2022/acorex-modules-workflow-management.mjs +123 -0
  101. package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -0
  102. package/package.json +18 -14
  103. package/platform-management/lib/task-board.provider.d.ts +14 -0
  104. package/project-management/lib/task-board.provider.d.ts +14 -0
  105. package/settings-management/lib/settings-management.module.d.ts +1 -1
  106. package/workflow-management/README.md +3 -0
  107. package/workflow-management/index.d.ts +2 -0
  108. package/workflow-management/lib/const.d.ts +11 -0
  109. package/workflow-management/lib/features/task-board/index.d.ts +2 -0
  110. package/workflow-management/lib/features/task-board/settings.keys.d.ts +5 -0
  111. package/workflow-management/lib/features/task-board/task-board.module.d.ts +6 -0
  112. package/workflow-management/lib/features/task-board/task-board.page.d.ts +76 -0
  113. package/workflow-management/lib/features/task-board/task-board.service.d.ts +13 -0
  114. package/workflow-management/lib/features/task-board/task-board.viewmodel.d.ts +20 -0
  115. package/workflow-management/lib/features/task-board/views/task-board-calendar-view/task-board-calendar-view.page.d.ts +25 -0
  116. package/workflow-management/lib/workflow-management.module.d.ts +8 -0
  117. package/conversation/lib/entities/chat/chat.module.d.ts +0 -28
  118. package/conversation/lib/entities/chat/chat.service.d.ts +0 -14
  119. package/conversation/lib/entities/chat/chat.type.d.ts +0 -22
  120. package/conversation/lib/entities/chat/components/chat-item-footer/chat-item-footer.component.d.ts +0 -5
  121. package/conversation/lib/entities/chat/components/chat-item-header/chat-item-header.component.d.ts +0 -12
  122. package/conversation/lib/entities/chat/components/chat-preview-header/chat-preview-header.component.d.ts +0 -7
  123. package/conversation/lib/entities/chat/pages/chat/chat.component.d.ts +0 -23
  124. package/conversation/lib/entities/comments/comment.module.d.ts +0 -26
  125. package/conversation/lib/entities/comments/comments.service.d.ts +0 -13
  126. package/conversation/lib/entities/comments/comments.type.d.ts +0 -74
  127. package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-column.component.d.ts +0 -6
  128. package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-edit.component.d.ts +0 -212
  129. package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-print.component.d.ts +0 -6
  130. package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-view.component.d.ts +0 -6
  131. package/document-management/lib/features/widgets/document-attachment/document-attachment-widget.config.d.ts +0 -7
  132. package/document-management/lib/features/widgets/document-attachment/index.d.ts +0 -5
  133. package/document-management/lib/features/widgets/index.d.ts +0 -1
  134. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-BpmG6Dyx.mjs.map +0 -1
  135. package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-CCvKUDsw.mjs +0 -141
  136. package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-CCvKUDsw.mjs.map +0 -1
  137. package/fesm2022/acorex-modules-document-management-drive-choose.component-DMAQr0nK.mjs.map +0 -1
  138. package/fesm2022/acorex-modules-issue-management-acorex-modules-issue-management-ErtEMU89.mjs.map +0 -1
  139. package/fesm2022/acorex-modules-organization-management-org-chart.page-CP8zz-Bc.mjs.map +0 -1
  140. package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-C9ZApxct.mjs.map +0 -1
  141. /package/conversation/lib/{entities/comments/pages → features/comment}/comment-lookup-popup.component.d.ts +0 -0
@@ -0,0 +1,363 @@
1
+ import * as i1 from '@angular/common';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from '@angular/core';
4
+ import { inject, ViewEncapsulation, Component, signal, computed, viewChild, effect, untracked, HostListener, ChangeDetectionStrategy } from '@angular/core';
5
+ import { AXBadgeModule } from '@acorex/components/badge';
6
+ import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
7
+ import * as i2$1 from '@acorex/components/button';
8
+ import { AXButtonModule } from '@acorex/components/button';
9
+ import { AXButtonGroupModule } from '@acorex/components/button-group';
10
+ import * as i3 from '@acorex/components/decorators';
11
+ import { AXDecoratorModule } from '@acorex/components/decorators';
12
+ import * as i3$2 from '@acorex/components/dropdown';
13
+ import { AXDropdownModule } from '@acorex/components/dropdown';
14
+ import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
15
+ import { AXLoadingModule } from '@acorex/components/loading';
16
+ import { AXMenuModule } from '@acorex/components/menu';
17
+ import * as i5 from '@acorex/components/search-box';
18
+ import { AXSearchBoxModule } from '@acorex/components/search-box';
19
+ import { AXDateTimeModule } from '@acorex/core/date-time';
20
+ import { AXFileModule } from '@acorex/core/file';
21
+ import * as i2 from '@acorex/core/format';
22
+ import { AXFormatModule } from '@acorex/core/format';
23
+ import * as i3$1 from '@acorex/core/translation';
24
+ import { AXTranslationModule } from '@acorex/core/translation';
25
+ import { AXPFileTypeProviderService } from '@acorex/platform/common';
26
+ import { AXPThemeLayoutBlockComponent } from '@acorex/platform/layout/components';
27
+ import { AXPPageLayoutBaseComponent, AXPPageLayoutComponent, AXPPageLayoutBase } from '@acorex/platform/layout/views';
28
+ import { resolvePlatformScopeKey, resolvePlatformScopeName } from '@acorex/platform/core';
29
+ import { Router, ActivatedRoute, RouterModule } from '@angular/router';
30
+ import { A as AXPDocumentExplorerViewModel, R as RootConfig, a as AXMDocumentManagerService, b as AXMDocumentExplorerComponent, c as AXMFolderPathBreadcrumbsComponent } from './acorex-modules-document-management-acorex-modules-document-management-BATdoqJi.mjs';
31
+
32
+ class AXMDocumentExplorerDetailPanelComponent {
33
+ constructor() {
34
+ this.vm = inject(AXPDocumentExplorerViewModel);
35
+ }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMDocumentExplorerDetailPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: AXMDocumentExplorerDetailPanelComponent, isStandalone: true, selector: "axm-document-explorer-detail-panel", ngImport: i0, template: "<!-- 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", styles: ["axm-document-explorer-detail-panel{display:flex;flex-direction:column;border-radius:.5rem;border-width:1px;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}@media (min-width: 1024px){axm-document-explorer-detail-panel{min-width:20rem}}axm-document-explorer-detail-panel>.__header{display:flex;flex-direction:row;align-items:center;justify-content:space-between;border-bottom-width:1px;padding:1rem}axm-document-explorer-detail-panel>.__header>.__title{display:flex;width:90%;flex-direction:row;align-items:center;gap:.5rem}axm-document-explorer-detail-panel>.__header>.__title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:start;font-weight:600;line-height:1.625}axm-document-explorer-detail-panel>.__content{display:flex;flex-direction:column}axm-document-explorer-detail-panel>.__content>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}axm-document-explorer-detail-panel>.__content>.__section{display:flex;flex-direction:column;padding:1rem}axm-document-explorer-detail-panel>.__content>.__section>.__title{margin-bottom:1rem;font-size:.875rem;line-height:1.25rem;font-weight:700}axm-document-explorer-detail-panel>.__content>.__section>.__content{display:flex;flex-direction:column;gap:1rem}axm-document-explorer-detail-panel>.__content>.__section>.__content>.__row{display:flex;flex-direction:column;gap:.25rem}axm-document-explorer-detail-panel>.__content>.__section>.__content>.__row>.__title{display:flex;font-size:.875rem;line-height:1.25rem;font-weight:600;opacity:.9}axm-document-explorer-detail-panel>.__content>.__section>.__content>.__row>.__content{display:flex;flex-direction:row;align-items:center;gap:.5rem}axm-document-explorer-detail-panel>.__content>.__section>.__content>.__row>.__content span{opacity:.7}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXFormatModule }, { kind: "pipe", type: i2.AXFormatPipe, name: "format" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i3$1.AXTranslatorDirective, selector: "[translate]" }], encapsulation: i0.ViewEncapsulation.None }); }
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMDocumentExplorerDetailPanelComponent, decorators: [{
40
+ type: Component,
41
+ args: [{ selector: 'axm-document-explorer-detail-panel', standalone: true, encapsulation: ViewEncapsulation.None, imports: [
42
+ CommonModule,
43
+ AXDecoratorModule,
44
+ AXFormatModule,
45
+ AXButtonModule,
46
+ AXTranslationModule
47
+ ], template: "<!-- 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", styles: ["axm-document-explorer-detail-panel{display:flex;flex-direction:column;border-radius:.5rem;border-width:1px;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}@media (min-width: 1024px){axm-document-explorer-detail-panel{min-width:20rem}}axm-document-explorer-detail-panel>.__header{display:flex;flex-direction:row;align-items:center;justify-content:space-between;border-bottom-width:1px;padding:1rem}axm-document-explorer-detail-panel>.__header>.__title{display:flex;width:90%;flex-direction:row;align-items:center;gap:.5rem}axm-document-explorer-detail-panel>.__header>.__title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:start;font-weight:600;line-height:1.625}axm-document-explorer-detail-panel>.__content{display:flex;flex-direction:column}axm-document-explorer-detail-panel>.__content>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}axm-document-explorer-detail-panel>.__content>.__section{display:flex;flex-direction:column;padding:1rem}axm-document-explorer-detail-panel>.__content>.__section>.__title{margin-bottom:1rem;font-size:.875rem;line-height:1.25rem;font-weight:700}axm-document-explorer-detail-panel>.__content>.__section>.__content{display:flex;flex-direction:column;gap:1rem}axm-document-explorer-detail-panel>.__content>.__section>.__content>.__row{display:flex;flex-direction:column;gap:.25rem}axm-document-explorer-detail-panel>.__content>.__section>.__content>.__row>.__title{display:flex;font-size:.875rem;line-height:1.25rem;font-weight:600;opacity:.9}axm-document-explorer-detail-panel>.__content>.__section>.__content>.__row>.__content{display:flex;flex-direction:row;align-items:center;gap:.5rem}axm-document-explorer-detail-panel>.__content>.__section>.__content>.__row>.__content span{opacity:.7}\n"] }]
48
+ }] });
49
+
50
+ class AXMDocumentDriveComponent extends AXPPageLayoutBaseComponent {
51
+ constructor() {
52
+ super(...arguments);
53
+ //#region ---------------- Services & Dependencies ----------------
54
+ this.rootConfig = RootConfig;
55
+ this.fileTypeService = inject(AXPFileTypeProviderService);
56
+ this.driveService = inject(AXMDocumentManagerService);
57
+ this.vm = inject(AXPDocumentExplorerViewModel);
58
+ this.router = inject(Router);
59
+ this.activatedRoute = inject(ActivatedRoute);
60
+ //#endregion
61
+ //#region ---------------- View Properties ----------------
62
+ this.filterItems = signal([]);
63
+ this.selectedFilter = signal('all');
64
+ this.searchQuery = '';
65
+ this.sortItems = signal([
66
+ { key: 'name', textKey: 'actions.sort-by-name', icon: 'fa-light fa-font' },
67
+ { key: 'modified', textKey: 'actions.sort-by-date', icon: 'fa-light fa-calendar' },
68
+ { key: 'size', textKey: 'actions.sort-by-size', icon: 'fa-light fa-weight-hanging' },
69
+ ]);
70
+ this.viewsItems = signal([
71
+ { key: 'large-icons', icon: 'fa-light fa-grid' },
72
+ { key: 'small-icons', icon: 'fa-light fa-grid', break: true },
73
+ { key: 'large-tiles', icon: 'fa-grid-2' },
74
+ { key: 'small-tiles', icon: 'fa-grid-2', break: true },
75
+ { key: 'details', icon: 'fa-bars', break: true },
76
+ { key: 'list', icon: 'fa-list' },
77
+ ]);
78
+ this.selectedViewMode = computed(() => this.viewsItems().find((item) => item.key === this.vm.viewMode()) || this.viewsItems()[0]);
79
+ this.selectionMode = signal('single');
80
+ this.documentExplorer = viewChild(AXMDocumentExplorerComponent);
81
+ //#endregion
82
+ //#region ---------------- Computed Properties ----------------
83
+ this.selectedSort = computed(() => {
84
+ const items = this.sortItems();
85
+ return items.find((item) => item.key === this.vm.sortField()) || items[0];
86
+ });
87
+ //#endregion
88
+ //#region ---------------- Effects ----------------
89
+ this.#navigateEffect = effect(() => {
90
+ const navigatingFolderId = this.vm.navigatingFolderId();
91
+ if (navigatingFolderId) {
92
+ this.handleNavigateToFolder(navigatingFolderId);
93
+ }
94
+ });
95
+ this.#loadingEffect = effect(() => {
96
+ const isLoading = this.vm.isLoading();
97
+ untracked(() => {
98
+ this.layoutService.setNavigationLoading(isLoading);
99
+ });
100
+ });
101
+ }
102
+ //#endregion
103
+ //#region ---------------- Effects ----------------
104
+ #navigateEffect;
105
+ #loadingEffect;
106
+ //#endregion
107
+ //#region ---------------- Lifecycle Hooks ----------------
108
+ async ngOnInit() {
109
+ super.ngOnInit();
110
+ await this.loadFilterItems();
111
+ const snapshot = this.activatedRoute.snapshot;
112
+ const routerScope = resolvePlatformScopeKey(snapshot.parent?.paramMap.get('scope')?.trim()?.toLowerCase());
113
+ await this.vm.initialize({ browseMode: 'file', scope: routerScope });
114
+ this.activatedRoute.paramMap.subscribe(async () => {
115
+ this.loadDrive();
116
+ });
117
+ }
118
+ //#endregion
119
+ //#region ---------------- Event Handlers ----------------
120
+ async handleSearchChange(event) {
121
+ if (event.value == null) {
122
+ return;
123
+ }
124
+ if (event.value?.length > 0) {
125
+ const result = await this.driveService.searchNodes(event.value, this.vm.scope(), {
126
+ tenantId: this.sessionService.tenant?.id,
127
+ userId: this.sessionService.user?.id,
128
+ });
129
+ this.vm.virtualFolder(result, {
130
+ name: 'Search Result',
131
+ parentId: this.vm.currentNode()?.id == 'virtual' ?
132
+ this.vm.currentNode()?.parentId ?? undefined : this.vm.currentNode()?.id,
133
+ });
134
+ }
135
+ else {
136
+ this.vm.navigateToUp();
137
+ }
138
+ }
139
+ handleCtrlKey(e) {
140
+ this.selectionMode.set('multiple');
141
+ }
142
+ handleCtrlKeyUp(e) {
143
+ this.selectionMode.set('single');
144
+ }
145
+ handleNavigateToFolder(folderId) {
146
+ this.router.navigate([
147
+ `${this.sessionService.application?.name}/drive/${resolvePlatformScopeName(this.vm.scope())}/${folderId}`,
148
+ ]);
149
+ setTimeout(() => {
150
+ this.searchQuery = null;
151
+ }, 200);
152
+ }
153
+ //#endregion
154
+ //#region ---------------- Data Loading Methods ----------------
155
+ async loadDrive() {
156
+ const folderId = this.activatedRoute.snapshot.paramMap.get('id');
157
+ if (folderId) {
158
+ await this.vm.loadFolderContents(folderId);
159
+ }
160
+ else {
161
+ // TODO: get root from tenant or user by scope
162
+ const root = await this.driveService.getRoot(this.vm.scope(), {
163
+ tenantId: this.sessionService.tenant?.id,
164
+ userId: this.sessionService.user?.id,
165
+ });
166
+ if (root.result) {
167
+ await this.router.navigate([
168
+ `${this.sessionService.application?.name}/drive/${resolvePlatformScopeName(this.vm.scope())}/${root.result.id}`,
169
+ ], {
170
+ replaceUrl: true,
171
+ });
172
+ }
173
+ }
174
+ //
175
+ this.recompute();
176
+ }
177
+ async loadFilterItems() {
178
+ const types = await this.fileTypeService.items();
179
+ const items = [
180
+ { key: 'all', textKey: 'file-types.all', icon: 'fa-light fa-folder-closed' },
181
+ ...types.map((type) => ({
182
+ key: type.name,
183
+ textKey: `file-types.${type.name}`,
184
+ icon: type.icon || 'fa-light fa-file',
185
+ })),
186
+ ];
187
+ this.filterItems.set(items);
188
+ }
189
+ //#endregion
190
+ //#region ---------------- Filter Methods ----------------
191
+ setFilter(key) {
192
+ this.selectedFilter.set(key);
193
+ }
194
+ getFilterIcon() {
195
+ if (this.selectedFilter() === 'all') {
196
+ return 'fa-light fa-folder-closed';
197
+ }
198
+ const item = this.filterItems().find((item) => item.key === this.selectedFilter());
199
+ return item?.icon || 'fa-light fa-file';
200
+ }
201
+ getFilterText() {
202
+ if (this.selectedFilter() === 'all') {
203
+ return 'file-types.all';
204
+ }
205
+ const item = this.filterItems().find((item) => item.key === this.selectedFilter());
206
+ return item?.textKey || 'file-types.all';
207
+ }
208
+ //#endregion
209
+ //#region ---------------- Page Configuration Overrides ----------------
210
+ async getPrimaryMenuItems() {
211
+ if (this.vm.hasMultipleSelectedItems()) {
212
+ return [
213
+ {
214
+ name: 'deleteItems',
215
+ title: 't("deleteItems")',
216
+ icon: 'fa-light fa-trash-can',
217
+ color: 'danger',
218
+ },
219
+ ];
220
+ }
221
+ const addItemItems = await this.vm.getFolderAddMenuItems();
222
+ addItemItems[addItemItems.length - 1].break = false;
223
+ return [
224
+ {
225
+ title: 't("add-item")',
226
+ icon: 'fa-light fa-plus',
227
+ color: 'primary',
228
+ items: addItemItems,
229
+ },
230
+ ];
231
+ }
232
+ async getSecondaryMenuItems() {
233
+ if (this.vm.hasMultipleSelectedItems()) {
234
+ return [
235
+ {
236
+ name: 'delete',
237
+ title: 't("delete")',
238
+ icon: 'fa-light fa-trash-can',
239
+ color: 'danger',
240
+ },
241
+ ];
242
+ }
243
+ return this.vm.getFolderActionMenuItems();
244
+ }
245
+ async getPageTitle() {
246
+ if (this.vm.isRoot()) {
247
+ return this.translateService.translateAsync(`scope.${resolvePlatformScopeName(this.vm.scope())}.title`, { scope: this.rootConfig.config.i18n });
248
+ }
249
+ return this.vm.currentFolder()?.name || '';
250
+ }
251
+ async getPageDescription() {
252
+ const count = await this.vm.itemsCount();
253
+ const size = await this.vm.availableSpace();
254
+ const formattedSize = await this.formatService.format(size, 'filesize');
255
+ return this.translateService.translateAsync(`scope.${resolvePlatformScopeName(this.vm.scope())}.description`, {
256
+ scope: this.rootConfig.config.i18n,
257
+ params: {
258
+ count,
259
+ size: formattedSize,
260
+ },
261
+ });
262
+ }
263
+ getBackButton() {
264
+ if (this.vm.isUpAvailable() && this.vm.currentPath().length > 1) {
265
+ return {
266
+ title: this.vm.currentPath()[this.vm.currentPath().length - 2].name,
267
+ };
268
+ }
269
+ return null;
270
+ }
271
+ onBackButtonClick() {
272
+ if (this.vm.isUpAvailable()) {
273
+ this.vm.navigateToUp();
274
+ }
275
+ }
276
+ async getPageBreadcrumbs() {
277
+ return [
278
+ {
279
+ title: await this.translateService.translateAsync(`scope.${resolvePlatformScopeName(this.vm.scope())}.title`, { scope: this.rootConfig.config.i18n }),
280
+ },
281
+ ];
282
+ }
283
+ async execute(command) {
284
+ const folderId = command.options?.['folderId'];
285
+ switch (command.name) {
286
+ case 'new-folder':
287
+ if (folderId) {
288
+ await this.driveService.showCreateFolderDialog(folderId);
289
+ this.vm.refresh();
290
+ }
291
+ break;
292
+ case 'open-gallery':
293
+ if (folderId) {
294
+ await this.driveService.showFileViewerPopup(this.vm.currentFolder().children[0]);
295
+ }
296
+ break;
297
+ default:
298
+ if (command.name.startsWith('upload.')) {
299
+ await this.driveService.uploadFileByType(folderId, command.options?.['documentType']?.id);
300
+ this.vm.refresh();
301
+ }
302
+ break;
303
+ }
304
+ }
305
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMDocumentDriveComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
306
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: AXMDocumentDriveComponent, isStandalone: true, selector: "axp-document-drive", host: { listeners: { "document:keydown.control": "handleCtrlKey($event)", "document:keyup.control": "handleCtrlKeyUp($event)" } }, providers: [
307
+ AXPDocumentExplorerViewModel,
308
+ {
309
+ provide: AXPPageLayoutBase,
310
+ useExisting: AXMDocumentDriveComponent,
311
+ },
312
+ ], viewQueries: [{ propertyName: "documentExplorer", first: true, predicate: AXMDocumentExplorerComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<!-- 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 [(value)]=\"searchQuery\"\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", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type:
313
+ //
314
+ AXMenuModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i2$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i2$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXButtonGroupModule }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i3$2.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i3$1.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i5.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXFormatModule }, { kind: "ngmodule", type: AXFileModule }, { kind: "ngmodule", type: AXDateTimeModule }, { kind: "component", type:
315
+ //
316
+ AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type:
317
+ //
318
+ AXMDocumentExplorerComponent, selector: "axm-document-explorer", inputs: ["browseMode", "viewMode", "selectionMode", "showContextMenu"] }, { kind: "component", type: AXMFolderPathBreadcrumbsComponent, selector: "axm-folder-path-breadcrumbs" }, { kind: "component", type: AXMDocumentExplorerDetailPanelComponent, selector: "axm-document-explorer-detail-panel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
319
+ }
320
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMDocumentDriveComponent, decorators: [{
321
+ type: Component,
322
+ args: [{ selector: 'axp-document-drive', standalone: true, imports: [
323
+ CommonModule,
324
+ RouterModule,
325
+ //
326
+ AXMenuModule,
327
+ AXButtonModule,
328
+ AXButtonGroupModule,
329
+ AXDropdownButtonModule,
330
+ AXDropdownModule,
331
+ AXTranslationModule,
332
+ AXDecoratorModule,
333
+ AXLoadingModule,
334
+ AXBreadcrumbsModule,
335
+ AXBadgeModule,
336
+ AXSearchBoxModule,
337
+ AXFormatModule,
338
+ AXFileModule,
339
+ AXDateTimeModule,
340
+ //
341
+ AXPPageLayoutComponent,
342
+ AXPThemeLayoutBlockComponent,
343
+ //
344
+ AXMDocumentExplorerComponent,
345
+ AXMFolderPathBreadcrumbsComponent,
346
+ AXMDocumentExplorerDetailPanelComponent,
347
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
348
+ AXPDocumentExplorerViewModel,
349
+ {
350
+ provide: AXPPageLayoutBase,
351
+ useExisting: AXMDocumentDriveComponent,
352
+ },
353
+ ], template: "<!-- 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 [(value)]=\"searchQuery\"\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" }]
354
+ }], propDecorators: { handleCtrlKey: [{
355
+ type: HostListener,
356
+ args: ['document:keydown.control', ['$event']]
357
+ }], handleCtrlKeyUp: [{
358
+ type: HostListener,
359
+ args: ['document:keyup.control', ['$event']]
360
+ }] } });
361
+
362
+ export { AXMDocumentDriveComponent };
363
+ //# sourceMappingURL=acorex-modules-document-management-drive.component-Crh10Z5J.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-modules-document-management-drive.component-Crh10Z5J.mjs","sources":["../../../../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"],"sourcesContent":["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 { AXPThemeLayoutBlockComponent } from '@acorex/platform/layout/components';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent } from '@acorex/platform/layout/views';\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 { AXMDocumentExplorerDetailPanelComponent } from '../document-explorer/views/detail-panel/detail-panel.component';\nimport { AXMDocumentManagerService, AXMFolderPathBreadcrumbsComponent } from '../shared';\nimport { AXMDocumentSelectionMode } from '../shared/document-manager.types';\nimport { AXValueChangedEvent } from '@acorex/cdk/common';\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: AXPPageLayoutBase,\n useExisting: AXMDocumentDriveComponent,\n },\n ],\n})\nexport class AXMDocumentDriveComponent extends AXPPageLayoutBaseComponent 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 searchQuery: string | null = '';\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: AXValueChangedEvent) {\n if(event.value == null) {\n return;\n }\n \n if (event.value?.length > 0) {\n const result = await this.driveService.searchNodes(event.value, this.vm.scope(),\n {\n tenantId: this.sessionService.tenant?.id,\n userId: this.sessionService.user?.id,\n }\n );\n this.vm.virtualFolder(result, {\n name: 'Search Result',\n parentId: this.vm.currentNode()?.id == 'virtual' ?\n this.vm.currentNode()?.parentId ?? undefined : this.vm.currentNode()?.id,\n });\n } else {\n this.vm.navigateToUp();\n }\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 setTimeout(() => {\n this.searchQuery = null;\n }, 200);\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())}/${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() && this.vm.currentPath().length > 1) {\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 [(value)]=\"searchQuery\"\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"],"names":["i2","i3","i4","i5","i6"],"mappings":"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"}
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { inject, Component } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import { AXPElementDataDirective, AXPDblClickDirective } from '@acorex/platform/core';
5
- import { c as AXPDocumentExplorerViewModel } from './acorex-modules-document-management-acorex-modules-document-management-BpmG6Dyx.mjs';
5
+ import { A as AXPDocumentExplorerViewModel } from './acorex-modules-document-management-acorex-modules-document-management-BATdoqJi.mjs';
6
6
 
7
7
  class AXMDocumentExplorerLargeIconsViewComponent {
8
8
  constructor() {
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
17
17
  }] });
18
18
 
19
19
  export { AXMDocumentExplorerLargeIconsViewComponent };
20
- //# sourceMappingURL=acorex-modules-document-management-large-icons-view.component-C686Ec7s.mjs.map
20
+ //# sourceMappingURL=acorex-modules-document-management-large-icons-view.component-BuV7MPG5.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-modules-document-management-large-icons-view.component-C686Ec7s.mjs","sources":["../../../../libs/modules/document-management/src/lib/features/document-explorer/views/large-icons/large-icons-view.component.ts","../../../../libs/modules/document-management/src/lib/features/document-explorer/views/large-icons/large-icons-view.component.html"],"sourcesContent":["import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXPDblClickDirective, AXPElementDataDirective } from '@acorex/platform/core';\nimport { AXPDocumentExplorerViewModel } from '../../document-explorer.viewmodel';\n\n@Component({\n selector: 'axm-document-explorer-large-icons-view',\n templateUrl: './large-icons-view.component.html',\n styleUrls: ['./large-icons-view.component.scss'],\n standalone: true,\n imports: [CommonModule, AXPElementDataDirective, AXPDblClickDirective],\n})\nexport class AXMDocumentExplorerLargeIconsViewComponent {\n protected vm = inject(AXPDocumentExplorerViewModel);\n} ","<!-- Large Icons View -->\n<div class=\"__content fa-4x\">\n @for (folder of vm.folders(); track folder.id) {\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(folder)\"\n [axp-data]=\"folder\"\n (click)=\"vm.toggleSelect(folder)\"\n (onDblClick)=\"vm.navigateToFolder(folder.id)\"\n >\n <div class=\"__icon ax-text-yellow-400\">\n @if (vm.isLoadingFolder(folder.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n } @else {\n <i class=\"fas fa-folder-closed\"></i>\n }\n </div>\n <div class=\"__name\">{{ folder.name }}</div>\n </div>\n } @for (file of vm.files(); track file.id) { @let fileInfo = vm.getFileInfo(file.name);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(file)\"\n [axp-data]=\"file\"\n (click)=\"vm.toggleSelect(file)\"\n (onDblClick)=\"vm.openFile(file)\"\n >\n <div class=\"__icon\">\n <i class=\"fa-fw {{ fileInfo.icon }} fa-solid\"></i>\n </div>\n <div class=\"__name\">{{ file.name }}</div>\n </div>\n }\n</div>\n"],"names":[],"mappings":";;;;;;MAYa,0CAA0C,CAAA;AAPvD,IAAA,WAAA,GAAA;AAQc,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,4BAA4B,CAAC;AACtD;+GAFY,0CAA0C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0CAA0C,kGCZvD,okCAkCA,EAAA,MAAA,EAAA,CAAA,m8BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDxBc,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,uBAAuB,8FAAE,oBAAoB,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAE5D,0CAA0C,EAAA,UAAA,EAAA,CAAA;kBAPtD,SAAS;+BACI,wCAAwC,EAAA,UAAA,EAGtC,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,uBAAuB,EAAE,oBAAoB,CAAC,EAAA,QAAA,EAAA,okCAAA,EAAA,MAAA,EAAA,CAAA,m8BAAA,CAAA,EAAA;;;;;"}
1
+ {"version":3,"file":"acorex-modules-document-management-large-icons-view.component-BuV7MPG5.mjs","sources":["../../../../libs/modules/document-management/src/lib/features/document-explorer/views/large-icons/large-icons-view.component.ts","../../../../libs/modules/document-management/src/lib/features/document-explorer/views/large-icons/large-icons-view.component.html"],"sourcesContent":["import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXPDblClickDirective, AXPElementDataDirective } from '@acorex/platform/core';\nimport { AXPDocumentExplorerViewModel } from '../../document-explorer.viewmodel';\n\n@Component({\n selector: 'axm-document-explorer-large-icons-view',\n templateUrl: './large-icons-view.component.html',\n styleUrls: ['./large-icons-view.component.scss'],\n standalone: true,\n imports: [CommonModule, AXPElementDataDirective, AXPDblClickDirective],\n})\nexport class AXMDocumentExplorerLargeIconsViewComponent {\n protected vm = inject(AXPDocumentExplorerViewModel);\n} ","<!-- Large Icons View -->\n<div class=\"__content fa-4x\">\n @for (folder of vm.folders(); track folder.id) {\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(folder)\"\n [axp-data]=\"folder\"\n (click)=\"vm.toggleSelect(folder)\"\n (onDblClick)=\"vm.navigateToFolder(folder.id)\"\n >\n <div class=\"__icon ax-text-yellow-400\">\n @if (vm.isLoadingFolder(folder.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n } @else {\n <i class=\"fas fa-folder-closed\"></i>\n }\n </div>\n <div class=\"__name\">{{ folder.name }}</div>\n </div>\n } @for (file of vm.files(); track file.id) { @let fileInfo = vm.getFileInfo(file.name);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(file)\"\n [axp-data]=\"file\"\n (click)=\"vm.toggleSelect(file)\"\n (onDblClick)=\"vm.openFile(file)\"\n >\n <div class=\"__icon\">\n <i class=\"fa-fw {{ fileInfo.icon }} fa-solid\"></i>\n </div>\n <div class=\"__name\">{{ file.name }}</div>\n </div>\n }\n</div>\n"],"names":[],"mappings":";;;;;;MAYa,0CAA0C,CAAA;AAPvD,IAAA,WAAA,GAAA;AAQc,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,4BAA4B,CAAC;AACtD;+GAFY,0CAA0C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0CAA0C,kGCZvD,okCAkCA,EAAA,MAAA,EAAA,CAAA,m8BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDxBc,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,uBAAuB,8FAAE,oBAAoB,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAE5D,0CAA0C,EAAA,UAAA,EAAA,CAAA;kBAPtD,SAAS;+BACI,wCAAwC,EAAA,UAAA,EAGtC,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,uBAAuB,EAAE,oBAAoB,CAAC,EAAA,QAAA,EAAA,okCAAA,EAAA,MAAA,EAAA,CAAA,m8BAAA,CAAA,EAAA;;;;;"}
@@ -3,7 +3,7 @@ import { inject, Component } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import { AXPElementDataDirective, AXPDblClickDirective } from '@acorex/platform/core';
6
- import { c as AXPDocumentExplorerViewModel } from './acorex-modules-document-management-acorex-modules-document-management-BpmG6Dyx.mjs';
6
+ import { A as AXPDocumentExplorerViewModel } from './acorex-modules-document-management-acorex-modules-document-management-BATdoqJi.mjs';
7
7
  import * as i2 from '@acorex/core/format';
8
8
  import { AXFormatModule } from '@acorex/core/format';
9
9
  import { AXDateTimeModule } from '@acorex/core/date-time';
@@ -21,4 +21,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
21
21
  }] });
22
22
 
23
23
  export { AXMDocumentExplorerLargeTilesViewComponent };
24
- //# sourceMappingURL=acorex-modules-document-management-large-tiles-view.component-0GpMVYv5.mjs.map
24
+ //# sourceMappingURL=acorex-modules-document-management-large-tiles-view.component-CwYwVxoG.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-modules-document-management-large-tiles-view.component-0GpMVYv5.mjs","sources":["../../../../libs/modules/document-management/src/lib/features/document-explorer/views/large-tiles/large-tiles-view.component.ts","../../../../libs/modules/document-management/src/lib/features/document-explorer/views/large-tiles/large-tiles-view.component.html"],"sourcesContent":["import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXPDblClickDirective, AXPElementDataDirective } from '@acorex/platform/core';\nimport { AXPDocumentExplorerViewModel } from '../../document-explorer.viewmodel';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\n\n@Component({\n selector: 'axm-document-explorer-large-tiles-view',\n templateUrl: './large-tiles-view.component.html',\n styleUrls: ['./large-tiles-view.component.scss'],\n standalone: true,\n imports: [CommonModule, AXPElementDataDirective, AXPDblClickDirective, AXFormatModule, AXDateTimeModule],\n})\nexport class AXMDocumentExplorerLargeTilesViewComponent {\n protected vm = inject(AXPDocumentExplorerViewModel);\n} ","<!-- Folders Section -->\n@if (vm.folders().length > 0) {\n<div class=\"__section fa-3x\">\n <div class=\"__header\">\n <h3 class=\"__title\">Folders</h3>\n </div>\n <div class=\"__content\">\n @for (folder of vm.folders(); track folder.id) {\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(folder)\"\n [axp-data]=\"folder\"\n (click)=\"vm.toggleSelect(folder)\"\n (onDblClick)=\"vm.navigateToFolder(folder.id)\"\n >\n <div class=\"__icon ax-text-yellow-400\">\n @if (vm.isLoadingFolder(folder.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n } @else {\n <i class=\"fas fa-folder-closed\"></i>\n }\n </div>\n <span class=\"__name\">{{ folder.name }}</span>\n <div class=\"__info\">\n <span>{{ folder.childrenCount }} items</span>\n <span>{{ folder.modifiedAt | format : 'datetime' : { format: 'datetime' } | async }}</span>\n </div>\n </div>\n }\n </div>\n</div>\n}\n\n<!-- Files Section -->\n@if (vm.files().length > 0) {\n<div class=\"__section fa-3x\">\n <div class=\"__header\">\n <h3 class=\"__title\">Files</h3>\n </div>\n <div class=\"__content\">\n @for (file of vm.files(); track file.id) { @let fileInfo = vm.getFileInfo(file.name);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(file)\"\n [axp-data]=\"file\"\n (click)=\"vm.toggleSelect(file)\"\n (dblclick)=\"vm.openFile(file)\"\n >\n <div class=\"__icon\">\n <i class=\"fa-fw {{ fileInfo.icon }} fa-solid\"></i>\n </div>\n <span class=\"__name\">{{ file.name }}</span>\n <div class=\"__info\">\n <span>{{ file.size | format : 'filesize' | async }}</span>\n <span>{{ file.modifiedAt | format : 'datetime' : { format: 'datetime' } | async }}</span>\n </div>\n </div>\n }\n </div>\n</div>\n}\n"],"names":[],"mappings":";;;;;;;;;;MAca,0CAA0C,CAAA;AAPvD,IAAA,WAAA,GAAA;AAQc,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,4BAA4B,CAAC;AACtD;+GAFY,0CAA0C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA1C,0CAA0C,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdvD,o5DA6DA,EAAA,MAAA,EAAA,CAAA,ygDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDjDc,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,uBAAuB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAE9F,0CAA0C,EAAA,UAAA,EAAA,CAAA;kBAPtD,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wCAAwC,EAGtC,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,o5DAAA,EAAA,MAAA,EAAA,CAAA,ygDAAA,CAAA,EAAA;;;;;"}
1
+ {"version":3,"file":"acorex-modules-document-management-large-tiles-view.component-CwYwVxoG.mjs","sources":["../../../../libs/modules/document-management/src/lib/features/document-explorer/views/large-tiles/large-tiles-view.component.ts","../../../../libs/modules/document-management/src/lib/features/document-explorer/views/large-tiles/large-tiles-view.component.html"],"sourcesContent":["import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXPDblClickDirective, AXPElementDataDirective } from '@acorex/platform/core';\nimport { AXPDocumentExplorerViewModel } from '../../document-explorer.viewmodel';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\n\n@Component({\n selector: 'axm-document-explorer-large-tiles-view',\n templateUrl: './large-tiles-view.component.html',\n styleUrls: ['./large-tiles-view.component.scss'],\n standalone: true,\n imports: [CommonModule, AXPElementDataDirective, AXPDblClickDirective, AXFormatModule, AXDateTimeModule],\n})\nexport class AXMDocumentExplorerLargeTilesViewComponent {\n protected vm = inject(AXPDocumentExplorerViewModel);\n} ","<!-- Folders Section -->\n@if (vm.folders().length > 0) {\n<div class=\"__section fa-3x\">\n <div class=\"__header\">\n <h3 class=\"__title\">Folders</h3>\n </div>\n <div class=\"__content\">\n @for (folder of vm.folders(); track folder.id) {\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(folder)\"\n [axp-data]=\"folder\"\n (click)=\"vm.toggleSelect(folder)\"\n (onDblClick)=\"vm.navigateToFolder(folder.id)\"\n >\n <div class=\"__icon ax-text-yellow-400\">\n @if (vm.isLoadingFolder(folder.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n } @else {\n <i class=\"fas fa-folder-closed\"></i>\n }\n </div>\n <span class=\"__name\">{{ folder.name }}</span>\n <div class=\"__info\">\n <span>{{ folder.childrenCount }} items</span>\n <span>{{ folder.modifiedAt | format : 'datetime' : { format: 'datetime' } | async }}</span>\n </div>\n </div>\n }\n </div>\n</div>\n}\n\n<!-- Files Section -->\n@if (vm.files().length > 0) {\n<div class=\"__section fa-3x\">\n <div class=\"__header\">\n <h3 class=\"__title\">Files</h3>\n </div>\n <div class=\"__content\">\n @for (file of vm.files(); track file.id) { @let fileInfo = vm.getFileInfo(file.name);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(file)\"\n [axp-data]=\"file\"\n (click)=\"vm.toggleSelect(file)\"\n (dblclick)=\"vm.openFile(file)\"\n >\n <div class=\"__icon\">\n <i class=\"fa-fw {{ fileInfo.icon }} fa-solid\"></i>\n </div>\n <span class=\"__name\">{{ file.name }}</span>\n <div class=\"__info\">\n <span>{{ file.size | format : 'filesize' | async }}</span>\n <span>{{ file.modifiedAt | format : 'datetime' : { format: 'datetime' } | async }}</span>\n </div>\n </div>\n }\n </div>\n</div>\n}\n"],"names":[],"mappings":";;;;;;;;;;MAca,0CAA0C,CAAA;AAPvD,IAAA,WAAA,GAAA;AAQc,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,4BAA4B,CAAC;AACtD;+GAFY,0CAA0C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA1C,0CAA0C,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdvD,o5DA6DA,EAAA,MAAA,EAAA,CAAA,ygDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDjDc,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,uBAAuB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAE9F,0CAA0C,EAAA,UAAA,EAAA,CAAA;kBAPtD,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wCAAwC,EAGtC,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,o5DAAA,EAAA,MAAA,EAAA,CAAA,ygDAAA,CAAA,EAAA;;;;;"}
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { inject, Component } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import { AXPElementDataDirective, AXPDblClickDirective } from '@acorex/platform/core';
5
- import { c as AXPDocumentExplorerViewModel } from './acorex-modules-document-management-acorex-modules-document-management-BpmG6Dyx.mjs';
5
+ import { A as AXPDocumentExplorerViewModel } from './acorex-modules-document-management-acorex-modules-document-management-BATdoqJi.mjs';
6
6
 
7
7
  class AXMDocumentExplorerListViewComponent {
8
8
  constructor() {
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
17
17
  }] });
18
18
 
19
19
  export { AXMDocumentExplorerListViewComponent };
20
- //# sourceMappingURL=acorex-modules-document-management-list-view.component-C1inszTC.mjs.map
20
+ //# sourceMappingURL=acorex-modules-document-management-list-view.component-BHEwRA3m.mjs.map