@acorex/modules 19.2.17 → 19.2.20
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.
- package/common/lib/features/widget-wrapper/dashboard-widget-wrapper.d.ts +4 -3
- package/document-management/lib/document-management.module.d.ts +2 -1
- package/document-management/lib/entities/document/document.service.d.ts +0 -5
- package/document-management/lib/entities/document/document.types.d.ts +2 -0
- package/document-management/lib/entities/document-type/document-type.service.d.ts +2 -2
- package/document-management/lib/entities/document-type/document-type.types.d.ts +1 -0
- package/document-management/lib/entities/folder/folder.types.d.ts +4 -4
- package/document-management/lib/features/document-explorer/document-explorer.component.d.ts +141 -16
- package/document-management/lib/features/document-explorer/document-explorer.viewmodel.d.ts +66 -6
- package/document-management/lib/features/document-explorer/views/detail-panel/detail-panel.component.d.ts +119 -0
- package/document-management/lib/features/document-explorer/views/details/details-view.component.d.ts +119 -0
- package/document-management/lib/features/document-explorer/views/large-icons/large-icons-view.component.d.ts +119 -0
- package/document-management/lib/features/document-explorer/views/large-tiles/large-tiles-view.component.d.ts +119 -0
- package/document-management/lib/features/document-explorer/views/list/list-view.component.d.ts +119 -0
- package/document-management/lib/features/document-explorer/views/small-icons/small-icons-view.component.d.ts +119 -0
- package/document-management/lib/features/document-explorer/views/small-tiles/small-tiles-view.component.d.ts +119 -0
- package/document-management/lib/features/drive/drive.component.d.ts +97 -71
- package/document-management/lib/features/drive-choose/drive-choose.component.d.ts +72 -7
- package/document-management/lib/features/file-type/widgets/file-type-extension/file-type-extension-edit.component.d.ts +1 -0
- package/document-management/lib/features/shared/components/choose-document-type/choose-document-type.component.d.ts +21 -0
- package/document-management/lib/features/shared/components/folder-path-breadcrumbs/folder-path-breadcrumbs.component.d.ts +180 -0
- package/document-management/lib/features/shared/components/index.d.ts +3 -2
- package/document-management/lib/features/shared/document-manager.service.d.ts +32 -12
- package/document-management/lib/features/shared/document-manager.types.d.ts +7 -3
- package/document-management/lib/features/shared/index.d.ts +1 -0
- package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-edit.component.d.ts +64 -5
- package/document-management/lib/features/workflow/upload/upload.workflow.d.ts +17 -0
- package/fesm2022/{acorex-modules-application-management-module-designer.component-BSGSZi9T.mjs → acorex-modules-application-management-module-designer.component-Dd_lmV6C.mjs} +2 -2
- package/fesm2022/{acorex-modules-application-management-module-designer.component-BSGSZi9T.mjs.map → acorex-modules-application-management-module-designer.component-Dd_lmV6C.mjs.map} +1 -1
- package/fesm2022/acorex-modules-application-management.mjs +2 -2
- package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-Xcs9ViQv.mjs → acorex-modules-auth-acorex-modules-auth-DrcL7GCj.mjs} +12 -12
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-Xcs9ViQv.mjs.map → acorex-modules-auth-acorex-modules-auth-DrcL7GCj.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-app-chooser.component-0L9y_yn_.mjs → acorex-modules-auth-app-chooser.component-CbJb1P_k.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-app-chooser.component-0L9y_yn_.mjs.map → acorex-modules-auth-app-chooser.component-CbJb1P_k.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-login.module-CfO1IwH9.mjs → acorex-modules-auth-login.module-DFCB1l7W.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-login.module-CfO1IwH9.mjs.map → acorex-modules-auth-login.module-DFCB1l7W.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-master.layout-hLuHDgvl.mjs → acorex-modules-auth-master.layout-CuKXvY0o.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-master.layout-hLuHDgvl.mjs.map → acorex-modules-auth-master.layout-CuKXvY0o.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-CTVBARbz.mjs → acorex-modules-auth-password.component-5gwz30CZ.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-password.component-CTVBARbz.mjs.map → acorex-modules-auth-password.component-5gwz30CZ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-BztZ3DJd.mjs → acorex-modules-auth-password.component-DacOjakT.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-password.component-BztZ3DJd.mjs.map → acorex-modules-auth-password.component-DacOjakT.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-routes-CJz0CRlp.mjs → acorex-modules-auth-routes-D018Lg-b.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-CJz0CRlp.mjs.map → acorex-modules-auth-routes-D018Lg-b.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-kVFAR9t1.mjs → acorex-modules-auth-tenant-chooser.component-YZBKyJFH.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-kVFAR9t1.mjs.map → acorex-modules-auth-tenant-chooser.component-YZBKyJFH.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-_VYT-h-9.mjs → acorex-modules-auth-two-factor-code.component-B2ZYJOrN.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-_VYT-h-9.mjs.map → acorex-modules-auth-two-factor-code.component-B2ZYJOrN.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-BQfrnrd0.mjs → acorex-modules-auth-two-factor.module-DiEB7VWl.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-two-factor.module-BQfrnrd0.mjs.map → acorex-modules-auth-two-factor.module-DiEB7VWl.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/acorex-modules-common-index-D90SN6SH.mjs +507 -0
- package/fesm2022/acorex-modules-common-index-D90SN6SH.mjs.map +1 -0
- package/fesm2022/acorex-modules-common.mjs +1 -1
- package/fesm2022/acorex-modules-conversation.mjs +5 -5
- package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
- package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-BmLGtKDq.mjs → acorex-modules-document-management-acorex-modules-document-management-_BOVaDOq.mjs} +823 -421
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-_BOVaDOq.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-DqoWmtm7.mjs → acorex-modules-document-management-create-folder-dialog.component-D66KoQNb.mjs} +7 -6
- package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-D66KoQNb.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-details-view.component-BHcu_gYH.mjs +24 -0
- package/fesm2022/acorex-modules-document-management-details-view.component-BHcu_gYH.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-drive-choose.component-WoZfDyLK.mjs +163 -0
- package/fesm2022/acorex-modules-document-management-drive-choose.component-WoZfDyLK.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-drive.component-B3BCzdVv.mjs +305 -0
- package/fesm2022/acorex-modules-document-management-drive.component-B3BCzdVv.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-large-icons-view.component-DvriE0YR.mjs +20 -0
- package/fesm2022/acorex-modules-document-management-large-icons-view.component-DvriE0YR.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-large-tiles-view.component-ByWrKvZe.mjs +24 -0
- package/fesm2022/acorex-modules-document-management-large-tiles-view.component-ByWrKvZe.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-list-view.component-B6J6Tokv.mjs +20 -0
- package/fesm2022/acorex-modules-document-management-list-view.component-B6J6Tokv.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-BoODbM0H.mjs → acorex-modules-document-management-rename-node-dialog.component-Dae6RWb8.mjs} +6 -6
- package/fesm2022/acorex-modules-document-management-rename-node-dialog.component-Dae6RWb8.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-small-icons-view.component-TrYeB22e.mjs +20 -0
- package/fesm2022/acorex-modules-document-management-small-icons-view.component-TrYeB22e.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-small-tiles-view.component-DDKdWg8I.mjs +24 -0
- package/fesm2022/acorex-modules-document-management-small-tiles-view.component-DDKdWg8I.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management.mjs +1 -1
- package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-Qnh16t3Q.mjs → acorex-modules-form-template-management-acorex-modules-form-template-management-CJYrDtq6.mjs} +8 -8
- package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-Qnh16t3Q.mjs.map → acorex-modules-form-template-management-acorex-modules-form-template-management-CJYrDtq6.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-category.entity-BjmyIav9.mjs → acorex-modules-form-template-management-category.entity-BdiYytzK.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-category.entity-BjmyIav9.mjs.map → acorex-modules-form-template-management-category.entity-BdiYytzK.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-setting.provider-hkwaOGfL.mjs → acorex-modules-form-template-management-setting.provider-CoETMkEC.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-setting.provider-hkwaOGfL.mjs.map → acorex-modules-form-template-management-setting.provider-CoETMkEC.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template-picker.component-gdMTnjl-.mjs → acorex-modules-form-template-management-template-picker.component-0JfGxdMv.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-template-picker.component-gdMTnjl-.mjs.map → acorex-modules-form-template-management-template-picker.component-0JfGxdMv.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-CSShokqz.mjs → acorex-modules-form-template-management-template-widget-edit.component-BkJ3ieIg.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-CSShokqz.mjs.map → acorex-modules-form-template-management-template-widget-edit.component-BkJ3ieIg.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template.entity-_yMAqh35.mjs → acorex-modules-form-template-management-template.entity-ByE2p0Mu.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-template.entity-_yMAqh35.mjs.map → acorex-modules-form-template-management-template.entity-ByE2p0Mu.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-CbcSFEis.mjs → acorex-modules-form-template-management-viewer-popup.component-CThcXWpt.mjs} +3 -3
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-CbcSFEis.mjs.map → acorex-modules-form-template-management-viewer-popup.component-CThcXWpt.mjs.map} +1 -1
- package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
- package/fesm2022/acorex-modules-notification-management.mjs +2 -2
- package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-organization-management-add-item.component-Bsae9u-e.mjs → acorex-modules-organization-management-add-item.component-DW0TneoX.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-add-item.component-Bsae9u-e.mjs.map → acorex-modules-organization-management-add-item.component-DW0TneoX.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-aMPR3Oyw.mjs → acorex-modules-organization-management-org-chart-configuration.page-JKQwYEPq.mjs} +3 -3
- package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-aMPR3Oyw.mjs.map → acorex-modules-organization-management-org-chart-configuration.page-JKQwYEPq.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-CAgSSVON.mjs → acorex-modules-organization-management-org-chart.page-C2ZtUVKI.mjs} +4 -4
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-CAgSSVON.mjs.map → acorex-modules-organization-management-org-chart.page-C2ZtUVKI.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-setting.provider-CAU8Bve9.mjs → acorex-modules-organization-management-setting.provider-CMDpwkG2.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-setting.provider-CAU8Bve9.mjs.map → acorex-modules-organization-management-setting.provider-CMDpwkG2.mjs.map} +1 -1
- package/fesm2022/acorex-modules-organization-management.mjs +4 -4
- package/fesm2022/{acorex-modules-platform-management-list-version.component-DI1wKhRv.mjs → acorex-modules-platform-management-list-version.component-C9764yzu.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-list-version.component-DI1wKhRv.mjs.map → acorex-modules-platform-management-list-version.component-C9764yzu.mjs.map} +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +368 -15
- package/fesm2022/acorex-modules-platform-management.mjs.map +1 -1
- package/package.json +1 -1
- package/platform-management/lib/const.d.ts +6 -0
- package/platform-management/lib/entities/index.d.ts +1 -0
- package/platform-management/lib/entities/meta-data-definition/meta-data-definition.types.d.ts +1 -0
- package/platform-management/lib/entities/meta-data-definition-category/category.entity.d.ts +3 -0
- package/platform-management/lib/entities/meta-data-definition-category/category.service.d.ts +10 -0
- package/platform-management/lib/entities/meta-data-definition-category/category.types.d.ts +5 -0
- package/platform-management/lib/entities/meta-data-definition-category/index.d.ts +3 -0
- package/document-management/lib/features/shared/components/file-viewer-popup/index.d.ts +0 -1
- package/document-management/lib/features/shared/components/tree-folder-popup/index.d.ts +0 -1
- package/document-management/lib/features/shared/components/tree-folder-popup/tree-folder-popup.component.d.ts +0 -20
- package/fesm2022/acorex-modules-common-index-BAt02rnb.mjs +0 -472
- package/fesm2022/acorex-modules-common-index-BAt02rnb.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-BmLGtKDq.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-DqoWmtm7.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-drive-choose.component-CkS8s7zm.mjs +0 -152
- package/fesm2022/acorex-modules-document-management-drive-choose.component-CkS8s7zm.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-drive.component-B6az6-_w.mjs +0 -164
- package/fesm2022/acorex-modules-document-management-drive.component-B6az6-_w.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-file-viewer-popup.component-CaSagveT.mjs +0 -24
- package/fesm2022/acorex-modules-document-management-file-viewer-popup.component-CaSagveT.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-index-9l8D5iEE.mjs +0 -69
- package/fesm2022/acorex-modules-document-management-index-9l8D5iEE.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-rename-node-dialog.component-BoODbM0H.mjs.map +0 -1
@@ -2,8 +2,8 @@ import { AXPSessionService, AXPAuthGuard, AXP_PERMISSION_PROVIDER } from '@acore
|
|
2
2
|
import { AXPSearchCommandProvider, createAllQueryView, AXPEntityCommandScope, AXPEntityQueryType, AXPFileTypeProviderService, AXP_FILE_TYPE_INFO_PROVIDER, AXPFileStorageService, AXPSettingScope, AXPSettingService, AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER } from '@acorex/platform/common';
|
3
3
|
import { AXPEntityService, AXMEntityCrudServiceImpl, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';
|
4
4
|
import * as i0 from '@angular/core';
|
5
|
-
import { inject, Injector, Injectable, NgModule, ChangeDetectionStrategy, Component, signal, computed, viewChild, effect } from '@angular/core';
|
6
|
-
import { firstValueFrom
|
5
|
+
import { inject, Injector, Injectable, NgModule, ChangeDetectionStrategy, Component, signal, computed, viewChild, input, effect, ViewEncapsulation } from '@angular/core';
|
6
|
+
import { firstValueFrom } from 'rxjs';
|
7
7
|
import * as i6 from '@acorex/platform/layout/builder';
|
8
8
|
import { AXPWidgetsCatalog, AXPWidgetComponent, AXPLayoutBuilderModule, AXP_WIDGETS_ADVANCE_GROUP, AXP_WIDGETS_EDITOR_GROUP } from '@acorex/platform/layout/builder';
|
9
9
|
import { RouterModule, ROUTES } from '@angular/router';
|
@@ -13,11 +13,11 @@ import * as i1$1 from '@angular/common';
|
|
13
13
|
import { CommonModule } from '@angular/common';
|
14
14
|
import * as i7$1 from '@acorex/components/collapse';
|
15
15
|
import { AXCollapseModule } from '@acorex/components/collapse';
|
16
|
-
import * as
|
16
|
+
import * as i3 from '@acorex/components/decorators';
|
17
17
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
18
18
|
import * as i7 from '@acorex/components/form';
|
19
19
|
import { AXFormModule } from '@acorex/components/form';
|
20
|
-
import * as
|
20
|
+
import * as i4 from '@acorex/components/label';
|
21
21
|
import { AXLabelModule } from '@acorex/components/label';
|
22
22
|
import * as i1 from '@acorex/components/select-box';
|
23
23
|
import { AXSelectBoxModule } from '@acorex/components/select-box';
|
@@ -26,27 +26,31 @@ import { FormsModule } from '@angular/forms';
|
|
26
26
|
import get from 'lodash-es/get';
|
27
27
|
import set from 'lodash-es/set';
|
28
28
|
import { AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY } from '@acorex/platform/widgets';
|
29
|
+
import * as i3$2 from '@acorex/components/media-viewer';
|
30
|
+
import { AXMediaViewerModule } from '@acorex/components/media-viewer';
|
31
|
+
import * as i3$4 from '@acorex/platform/workflow';
|
32
|
+
import { AXPWorkflowService, AXPWorkflowAction, AXPWorkflowModule } from '@acorex/platform/workflow';
|
29
33
|
import * as i2$1 from '@acorex/components/button';
|
30
|
-
import {
|
34
|
+
import { AXButtonModule, AXButtonComponent } from '@acorex/components/button';
|
31
35
|
import { AXButtonGroupModule } from '@acorex/components/button-group';
|
32
|
-
import * as
|
36
|
+
import * as i2$2 from '@acorex/components/dropdown';
|
33
37
|
import { AXDropdownModule } from '@acorex/components/dropdown';
|
34
38
|
import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
|
35
|
-
import * as
|
39
|
+
import * as i3$3 from '@acorex/core/translation';
|
36
40
|
import { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
|
37
41
|
import { AXLoadingModule } from '@acorex/components/loading';
|
38
|
-
import * as
|
42
|
+
import * as i3$1 from '@acorex/components/menu';
|
39
43
|
import { AXMenuModule } from '@acorex/components/menu';
|
40
44
|
import { AXDateTimeModule } from '@acorex/core/date-time';
|
41
|
-
import * as i3 from '@acorex/core/format';
|
42
45
|
import { AXFormatModule } from '@acorex/core/format';
|
43
|
-
import {
|
44
|
-
import { get as get$1 } from 'lodash-es';
|
46
|
+
import { AXPLayoutThemeService } from '@acorex/platform/themes/shared';
|
47
|
+
import { get as get$1, set as set$1 } from 'lodash-es';
|
45
48
|
import { AXDialogService } from '@acorex/components/dialog';
|
46
49
|
import { AXPopupService } from '@acorex/components/popup';
|
50
|
+
import { AXFileService } from '@acorex/core/file';
|
47
51
|
import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';
|
48
|
-
import
|
49
|
-
import {
|
52
|
+
import { AXBasePageComponent } from '@acorex/components/page';
|
53
|
+
import { AXUploaderService } from '@acorex/components/uploader';
|
50
54
|
|
51
55
|
const config = {
|
52
56
|
i18n: 'document-management',
|
@@ -114,11 +118,11 @@ class AXMEntityProvider {
|
|
114
118
|
if (moduleName == RootConfig.module.name) {
|
115
119
|
switch (entityName) {
|
116
120
|
case RootConfig.entities.document.name:
|
117
|
-
return (await Promise.resolve().then(function () { return index; })).documentFactory(this.injector);
|
121
|
+
return (await Promise.resolve().then(function () { return index$1; })).documentFactory(this.injector);
|
118
122
|
case RootConfig.entities.documentType.name:
|
119
|
-
return (await Promise.resolve().then(function () { return index; })).documentTypeFactory(this.injector);
|
123
|
+
return (await Promise.resolve().then(function () { return index$1; })).documentTypeFactory(this.injector);
|
120
124
|
case RootConfig.entities.folder.name:
|
121
|
-
return (await Promise.resolve().then(function () { return index; })).folderFactory(this.injector);
|
125
|
+
return (await Promise.resolve().then(function () { return index$1; })).folderFactory(this.injector);
|
122
126
|
}
|
123
127
|
}
|
124
128
|
return null;
|
@@ -668,9 +672,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
668
672
|
}]
|
669
673
|
}] });
|
670
674
|
|
671
|
-
class
|
675
|
+
class AXMDocumentTypeService extends AXMEntityCrudServiceImpl {
|
672
676
|
}
|
673
|
-
class AXMDocumentManagementDocumentTypeEntityServiceImpl extends
|
677
|
+
class AXMDocumentManagementDocumentTypeEntityServiceImpl extends AXMDocumentTypeService {
|
674
678
|
constructor() {
|
675
679
|
super(`${RootConfig.module.name}.${RootConfig.entities.documentType.name}`);
|
676
680
|
}
|
@@ -682,7 +686,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
682
686
|
}], ctorParameters: () => [] });
|
683
687
|
|
684
688
|
async function documentTypeFactory(injector) {
|
685
|
-
const dataService = injector.get(
|
689
|
+
const dataService = injector.get(AXMDocumentTypeService);
|
686
690
|
const metaDefinitionService = injector.get(AXMMetaDataDefinitionService);
|
687
691
|
const i18n = RootConfig.config.i18n;
|
688
692
|
const entityDef = {
|
@@ -823,7 +827,7 @@ async function documentTypeFactory(injector) {
|
|
823
827
|
schema: {
|
824
828
|
dataType: 'object',
|
825
829
|
interface: {
|
826
|
-
type: AXPWidgetsCatalog.
|
830
|
+
type: AXPWidgetsCatalog.fileTypeExtension,
|
827
831
|
options: {},
|
828
832
|
},
|
829
833
|
},
|
@@ -851,9 +855,7 @@ async function documentTypeFactory(injector) {
|
|
851
855
|
queries: {
|
852
856
|
byKey: {
|
853
857
|
execute: async (id) => {
|
854
|
-
|
855
|
-
console.log(x);
|
856
|
-
return x;
|
858
|
+
return await dataService.getOne(id);
|
857
859
|
},
|
858
860
|
type: AXPEntityQueryType.Single,
|
859
861
|
},
|
@@ -1126,7 +1128,7 @@ class AXMDocumentManagementDocumentTypeEntityModule {
|
|
1126
1128
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.3", ngImport: i0, type: AXMDocumentManagementDocumentTypeEntityModule }); }
|
1127
1129
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDocumentManagementDocumentTypeEntityModule, providers: [
|
1128
1130
|
{
|
1129
|
-
provide:
|
1131
|
+
provide: AXMDocumentTypeService,
|
1130
1132
|
useClass: AXMDocumentManagementDocumentTypeEntityServiceImpl,
|
1131
1133
|
},
|
1132
1134
|
] }); }
|
@@ -1139,7 +1141,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
1139
1141
|
declarations: [],
|
1140
1142
|
providers: [
|
1141
1143
|
{
|
1142
|
-
provide:
|
1144
|
+
provide: AXMDocumentTypeService,
|
1143
1145
|
useClass: AXMDocumentManagementDocumentTypeEntityServiceImpl,
|
1144
1146
|
},
|
1145
1147
|
],
|
@@ -2203,11 +2205,10 @@ async function folderFactory(injector) {
|
|
2203
2205
|
return entityDef;
|
2204
2206
|
}
|
2205
2207
|
|
2206
|
-
var index = /*#__PURE__*/Object.freeze({
|
2208
|
+
var index$1 = /*#__PURE__*/Object.freeze({
|
2207
2209
|
__proto__: null,
|
2208
2210
|
AXMDocumentManagementDocumentEntityModule: AXMDocumentManagementDocumentEntityModule,
|
2209
2211
|
AXMDocumentManagementDocumentTypeEntityModule: AXMDocumentManagementDocumentTypeEntityModule,
|
2210
|
-
AXMDocumentManagementDocumentTypeEntityService: AXMDocumentManagementDocumentTypeEntityService,
|
2211
2212
|
AXMDocumentManagementDocumentTypeEntityServiceImpl: AXMDocumentManagementDocumentTypeEntityServiceImpl,
|
2212
2213
|
AXMDocumentManagementDocumentTypeMetaDefinitionEntityModule: AXMDocumentManagementDocumentTypeMetaDefinitionEntityModule,
|
2213
2214
|
AXMDocumentManagementDocumentTypeMetaDefinitionEntityService: AXMDocumentManagementDocumentTypeMetaDefinitionEntityService,
|
@@ -2220,6 +2221,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
2220
2221
|
AXMDocumentManagementDocumentTypeStatusDefinitionEntityServiceImpl: AXMDocumentManagementDocumentTypeStatusDefinitionEntityServiceImpl,
|
2221
2222
|
AXMDocumentService: AXMDocumentService,
|
2222
2223
|
AXMDocumentServiceImpl: AXMDocumentServiceImpl,
|
2224
|
+
AXMDocumentTypeService: AXMDocumentTypeService,
|
2223
2225
|
AXMFolderService: AXMFolderService,
|
2224
2226
|
AXMFolderServiceImpl: AXMFolderServiceImpl,
|
2225
2227
|
documentFactory: documentFactory,
|
@@ -2605,22 +2607,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
2605
2607
|
}]
|
2606
2608
|
}] });
|
2607
2609
|
|
2608
|
-
// @if(allowSearch()) {
|
2609
|
-
// <ax-search-box><ax-clear-button></ax-clear-button></ax-search-box>
|
2610
|
-
// } @if(hasClearButton()) {
|
2611
|
-
// <ax-clear-button></ax-clear-button>
|
2612
|
-
// } @for (validation of validationRules(); track $index) {
|
2613
|
-
// <ax-validation-rule
|
2614
|
-
// [rule]="validation.rule"
|
2615
|
-
// [message]="validation.options?.message"
|
2616
|
-
// [options]="validation.options"
|
2617
|
-
// ></ax-validation-rule>
|
2618
|
-
// } @for (validation of validationRules(); track $index) {
|
2619
|
-
// <ax-validation-rule
|
2620
|
-
// [rule]="validation.rule"
|
2621
|
-
// [message]="validation.options?.message"
|
2622
|
-
// [options]="validation.options"
|
2623
|
-
// ></ax-validation-rule>
|
2624
2610
|
class AXMFileTypeExtensionWidgetEditComponent extends AXPWidgetComponent {
|
2625
2611
|
constructor() {
|
2626
2612
|
super(...arguments);
|
@@ -2665,6 +2651,7 @@ class AXMFileTypeExtensionWidgetEditComponent extends AXPWidgetComponent {
|
|
2665
2651
|
super.ngOnInit();
|
2666
2652
|
this.selectedItems.set(this.getValue()?.selectedItems ?? []);
|
2667
2653
|
this.context.set(this.getValue()?.context ?? {});
|
2654
|
+
console.log(this.selectedItems());
|
2668
2655
|
}
|
2669
2656
|
outputs() {
|
2670
2657
|
return ['selectedItems', 'context'];
|
@@ -2723,137 +2710,143 @@ class AXMFileTypeExtensionWidgetEditComponent extends AXPWidgetComponent {
|
|
2723
2710
|
}
|
2724
2711
|
return false;
|
2725
2712
|
}
|
2713
|
+
hasMetaInExtensions(extensions) {
|
2714
|
+
return extensions.some((ext) => ext.meta && ext.meta.length > 0);
|
2715
|
+
}
|
2726
2716
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMFileTypeExtensionWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
2727
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXMFileTypeExtensionWidgetEditComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
2728
|
-
<
|
2729
|
-
|
2730
|
-
|
2731
|
-
|
2732
|
-
|
2733
|
-
|
2734
|
-
|
2735
|
-
|
2736
|
-
|
2737
|
-
|
2738
|
-
|
2739
|
-
|
2740
|
-
|
2741
|
-
|
2742
|
-
|
2743
|
-
|
2744
|
-
|
2745
|
-
|
2746
|
-
|
2747
|
-
|
2748
|
-
|
2749
|
-
|
2750
|
-
|
2751
|
-
|
2752
|
-
|
2753
|
-
|
2754
|
-
|
2755
|
-
|
2756
|
-
|
2757
|
-
|
2758
|
-
|
2759
|
-
|
2760
|
-
|
2761
|
-
|
2762
|
-
|
2763
|
-
|
2764
|
-
|
2765
|
-
|
2766
|
-
|
2767
|
-
|
2768
|
-
|
2769
|
-
|
2770
|
-
|
2771
|
-
|
2772
|
-
|
2773
|
-
|
2774
|
-
|
2775
|
-
|
2776
|
-
|
2777
|
-
}
|
2778
|
-
</div>
|
2779
|
-
<!-- End Extensions -->
|
2780
|
-
}
|
2781
|
-
</div>
|
2782
|
-
</ax-collapse>
|
2717
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXMFileTypeExtensionWidgetEditComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: ` <div>
|
2718
|
+
<ax-select-box
|
2719
|
+
#dd
|
2720
|
+
[dataSource]="dataSource"
|
2721
|
+
valueField="name"
|
2722
|
+
textField="title"
|
2723
|
+
[multiple]="true"
|
2724
|
+
[ngModel]="getValue()?.selectedItems"
|
2725
|
+
(onValueChanged)="handleValueChange($event)"
|
2726
|
+
>
|
2727
|
+
</ax-select-box>
|
2728
|
+
<div class="ax-py-3"></div>
|
2729
|
+
<axp-widgets-container (onContextChanged)="handleOnContextChange($event)" [context]="context()">
|
2730
|
+
@if (selectedItems().length > 0) {
|
2731
|
+
<ax-collapse-group look="fill">
|
2732
|
+
@for (item of selectedItems(); track item.name) {
|
2733
|
+
<!-- File Types -->
|
2734
|
+
<ax-collapse [caption]="item.title">
|
2735
|
+
<div class="ax-flex ax-flex-col ax-gap-5">
|
2736
|
+
@if (item.meta && item.meta.length > 0) {
|
2737
|
+
<div class="ax-flex ax-flex-col ax-gap-2">
|
2738
|
+
<ax-text [textContent]="'Global Meta Data'" class="ax-font-bold ax-text-sm"></ax-text>
|
2739
|
+
@for (metaFile of item.meta; track metaFile.name) {
|
2740
|
+
<!-- File Meta Data -->
|
2741
|
+
<ax-form-field>
|
2742
|
+
<ax-label [required]="filedIsRequired(metaFile)">{{ metaFile.title }}</ax-label>
|
2743
|
+
<ng-container axp-widget-renderer [node]="getNode(metaFile)" [mode]="'edit'"></ng-container>
|
2744
|
+
</ax-form-field>
|
2745
|
+
}
|
2746
|
+
</div>
|
2747
|
+
} @if (item.extensions && item.extensions.length > 0) {
|
2748
|
+
<div class="ax-flex ax-flex-col ax-gap-3">
|
2749
|
+
@for (ext of item.extensions; track ext.name) {
|
2750
|
+
<!-- Extensions -->
|
2751
|
+
@if (ext.meta && ext.meta.length > 0) {
|
2752
|
+
<ax-text [textContent]="ext.title" class="ax-font-bold ax-text-sm"></ax-text>
|
2753
|
+
<div class="ax-flex ax-flex-col ax-gap-2">
|
2754
|
+
@for (extMeta of ext.meta; track $index) {
|
2755
|
+
<!-- Extension Meta Data -->
|
2756
|
+
<ax-form-field>
|
2757
|
+
<ax-label [required]="filedIsRequired(extMeta)">{{ extMeta.title }}</ax-label>
|
2758
|
+
<ng-container axp-widget-renderer [node]="getNode(extMeta)" [mode]="'edit'"></ng-container>
|
2759
|
+
</ax-form-field>
|
2760
|
+
}
|
2761
|
+
</div>
|
2762
|
+
}
|
2763
|
+
<!-- End Extension Meta Data -->
|
2764
|
+
}
|
2765
|
+
</div>
|
2766
|
+
<!-- End Extensions -->
|
2783
2767
|
}
|
2784
|
-
|
2785
|
-
|
2786
|
-
|
2787
|
-
|
2788
|
-
|
2768
|
+
</div>
|
2769
|
+
</ax-collapse>
|
2770
|
+
}
|
2771
|
+
<!-- End File Types -->
|
2772
|
+
</ax-collapse-group>
|
2773
|
+
}
|
2774
|
+
</axp-widgets-container>
|
2775
|
+
</div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "component", type: i1.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i7.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i4.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { 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: AXPLayoutBuilderModule }, { kind: "component", type: i6.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i6.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXCollapseModule }, { kind: "component", type: i7$1.AXCollapseComponent, selector: "ax-collapse", inputs: ["disabled", "look", "isCollapsed", "showHeader", "caption", "icon", "isLoading", "headerTemplate"], outputs: ["onClick", "isCollapsedChange"] }, { kind: "component", type: i7$1.AXCollapseGroupComponent, selector: "ax-collapse-group", inputs: ["look", "accordion", "activeIndex"], outputs: ["accordionChange", "activeIndexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
2789
2776
|
}
|
2790
2777
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMFileTypeExtensionWidgetEditComponent, decorators: [{
|
2791
2778
|
type: Component,
|
2792
2779
|
args: [{
|
2793
|
-
template: `
|
2794
|
-
<
|
2795
|
-
|
2796
|
-
|
2797
|
-
|
2798
|
-
|
2799
|
-
|
2800
|
-
|
2801
|
-
|
2802
|
-
|
2803
|
-
|
2804
|
-
|
2805
|
-
|
2806
|
-
|
2807
|
-
|
2808
|
-
|
2809
|
-
|
2810
|
-
|
2811
|
-
|
2812
|
-
|
2813
|
-
|
2814
|
-
|
2815
|
-
|
2816
|
-
|
2817
|
-
|
2818
|
-
|
2819
|
-
|
2820
|
-
|
2821
|
-
|
2822
|
-
|
2823
|
-
|
2824
|
-
|
2825
|
-
|
2826
|
-
|
2827
|
-
|
2828
|
-
|
2829
|
-
|
2830
|
-
|
2831
|
-
|
2832
|
-
|
2833
|
-
|
2834
|
-
|
2835
|
-
|
2836
|
-
|
2837
|
-
|
2838
|
-
|
2839
|
-
|
2840
|
-
|
2841
|
-
|
2842
|
-
|
2843
|
-
}
|
2844
|
-
</div>
|
2845
|
-
<!-- End Extensions -->
|
2846
|
-
}
|
2847
|
-
</div>
|
2848
|
-
</ax-collapse>
|
2780
|
+
template: ` <div>
|
2781
|
+
<ax-select-box
|
2782
|
+
#dd
|
2783
|
+
[dataSource]="dataSource"
|
2784
|
+
valueField="name"
|
2785
|
+
textField="title"
|
2786
|
+
[multiple]="true"
|
2787
|
+
[ngModel]="getValue()?.selectedItems"
|
2788
|
+
(onValueChanged)="handleValueChange($event)"
|
2789
|
+
>
|
2790
|
+
</ax-select-box>
|
2791
|
+
<div class="ax-py-3"></div>
|
2792
|
+
<axp-widgets-container (onContextChanged)="handleOnContextChange($event)" [context]="context()">
|
2793
|
+
@if (selectedItems().length > 0) {
|
2794
|
+
<ax-collapse-group look="fill">
|
2795
|
+
@for (item of selectedItems(); track item.name) {
|
2796
|
+
<!-- File Types -->
|
2797
|
+
<ax-collapse [caption]="item.title">
|
2798
|
+
<div class="ax-flex ax-flex-col ax-gap-5">
|
2799
|
+
@if (item.meta && item.meta.length > 0) {
|
2800
|
+
<div class="ax-flex ax-flex-col ax-gap-2">
|
2801
|
+
<ax-text [textContent]="'Global Meta Data'" class="ax-font-bold ax-text-sm"></ax-text>
|
2802
|
+
@for (metaFile of item.meta; track metaFile.name) {
|
2803
|
+
<!-- File Meta Data -->
|
2804
|
+
<ax-form-field>
|
2805
|
+
<ax-label [required]="filedIsRequired(metaFile)">{{ metaFile.title }}</ax-label>
|
2806
|
+
<ng-container axp-widget-renderer [node]="getNode(metaFile)" [mode]="'edit'"></ng-container>
|
2807
|
+
</ax-form-field>
|
2808
|
+
}
|
2809
|
+
</div>
|
2810
|
+
} @if (item.extensions && item.extensions.length > 0) {
|
2811
|
+
<div class="ax-flex ax-flex-col ax-gap-3">
|
2812
|
+
@for (ext of item.extensions; track ext.name) {
|
2813
|
+
<!-- Extensions -->
|
2814
|
+
@if (ext.meta && ext.meta.length > 0) {
|
2815
|
+
<ax-text [textContent]="ext.title" class="ax-font-bold ax-text-sm"></ax-text>
|
2816
|
+
<div class="ax-flex ax-flex-col ax-gap-2">
|
2817
|
+
@for (extMeta of ext.meta; track $index) {
|
2818
|
+
<!-- Extension Meta Data -->
|
2819
|
+
<ax-form-field>
|
2820
|
+
<ax-label [required]="filedIsRequired(extMeta)">{{ extMeta.title }}</ax-label>
|
2821
|
+
<ng-container axp-widget-renderer [node]="getNode(extMeta)" [mode]="'edit'"></ng-container>
|
2822
|
+
</ax-form-field>
|
2823
|
+
}
|
2824
|
+
</div>
|
2825
|
+
}
|
2826
|
+
<!-- End Extension Meta Data -->
|
2827
|
+
}
|
2828
|
+
</div>
|
2829
|
+
<!-- End Extensions -->
|
2849
2830
|
}
|
2850
|
-
|
2851
|
-
|
2852
|
-
|
2853
|
-
|
2854
|
-
|
2831
|
+
</div>
|
2832
|
+
</ax-collapse>
|
2833
|
+
}
|
2834
|
+
<!-- End File Types -->
|
2835
|
+
</ax-collapse-group>
|
2836
|
+
}
|
2837
|
+
</axp-widgets-container>
|
2838
|
+
</div>`,
|
2855
2839
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
2856
|
-
imports: [
|
2840
|
+
imports: [
|
2841
|
+
CommonModule,
|
2842
|
+
AXSelectBoxModule,
|
2843
|
+
FormsModule,
|
2844
|
+
AXFormModule,
|
2845
|
+
AXLabelModule,
|
2846
|
+
AXDecoratorModule,
|
2847
|
+
AXPLayoutBuilderModule,
|
2848
|
+
AXCollapseModule,
|
2849
|
+
],
|
2857
2850
|
inputs: [],
|
2858
2851
|
}]
|
2859
2852
|
}] });
|
@@ -3023,6 +3016,8 @@ class AXMDocumentManagerService {
|
|
3023
3016
|
this.popupService = inject(AXPopupService);
|
3024
3017
|
this.dialogService = inject(AXDialogService);
|
3025
3018
|
this.fileService = inject(AXPFileStorageService);
|
3019
|
+
this.fileMangerService = inject(AXFileService);
|
3020
|
+
this.workflow = inject(AXPWorkflowService);
|
3026
3021
|
this.scopedDriveCache = new Map();
|
3027
3022
|
}
|
3028
3023
|
scope(scope, options) {
|
@@ -3121,24 +3116,32 @@ class AXMDocumentManagerService {
|
|
3121
3116
|
name: folder.name,
|
3122
3117
|
type: 'folder',
|
3123
3118
|
parentId: folder.parentId || null,
|
3124
|
-
|
3119
|
+
modifiedAt: folder.updatedAt,
|
3120
|
+
createdAt: folder.createdAt,
|
3121
|
+
description: folder.description,
|
3125
3122
|
childrenCount: folder.nodeCount,
|
3123
|
+
size: folder.size,
|
3126
3124
|
children: [
|
3127
3125
|
...(folder.folders?.map((child) => ({
|
3128
3126
|
id: child.id,
|
3129
3127
|
name: child.name,
|
3130
3128
|
type: 'folder',
|
3131
3129
|
parentId: child.parentId || null,
|
3132
|
-
|
3130
|
+
modifiedAt: child.updatedAt,
|
3131
|
+
createdAt: child.createdAt,
|
3133
3132
|
childrenCount: child.nodeCount,
|
3133
|
+
description: child.description,
|
3134
|
+
size: child.size,
|
3134
3135
|
})) || []),
|
3135
3136
|
...(folder.documents?.map((doc) => ({
|
3136
3137
|
id: doc.id,
|
3137
3138
|
name: doc.name,
|
3138
3139
|
type: 'file',
|
3139
3140
|
parentId: doc.parentId,
|
3140
|
-
|
3141
|
-
|
3141
|
+
modifiedAt: doc.updatedAt,
|
3142
|
+
createdAt: doc.createdAt,
|
3143
|
+
size: doc.size,
|
3144
|
+
description: doc.description,
|
3142
3145
|
})) || []),
|
3143
3146
|
],
|
3144
3147
|
};
|
@@ -3230,6 +3233,7 @@ class AXMDocumentManagerService {
|
|
3230
3233
|
isSystem: false,
|
3231
3234
|
isHidden: false,
|
3232
3235
|
isDeleted: false,
|
3236
|
+
size: 0,
|
3233
3237
|
};
|
3234
3238
|
const createdFolder = await this.folderService.insertOne(folderToCreate);
|
3235
3239
|
const folder = await this.folderService.getOne(createdFolder);
|
@@ -3260,8 +3264,9 @@ class AXMDocumentManagerService {
|
|
3260
3264
|
name: file.name,
|
3261
3265
|
type: 'file',
|
3262
3266
|
parentId: file.parentId,
|
3263
|
-
|
3264
|
-
|
3267
|
+
modifiedAt: file.updatedAt,
|
3268
|
+
createdAt: file.createdAt,
|
3269
|
+
size: file.size,
|
3265
3270
|
fileId: file.fileId,
|
3266
3271
|
};
|
3267
3272
|
}
|
@@ -3280,23 +3285,18 @@ class AXMDocumentManagerService {
|
|
3280
3285
|
async deleteFile(fileId) {
|
3281
3286
|
await this.documentService.deleteOne(fileId);
|
3282
3287
|
}
|
3283
|
-
async deleteNodes(
|
3284
|
-
for (const
|
3285
|
-
|
3286
|
-
await this.deleteFolder(
|
3288
|
+
async deleteNodes(nodes) {
|
3289
|
+
for (const node of nodes) {
|
3290
|
+
if (node.type == 'folder') {
|
3291
|
+
await this.deleteFolder(node.id);
|
3287
3292
|
}
|
3288
|
-
|
3289
|
-
|
3290
|
-
await this.deleteFile(nodeId);
|
3291
|
-
}
|
3292
|
-
catch (error) {
|
3293
|
-
console.error(`Failed to delete node with id ${nodeId}:`, error);
|
3294
|
-
}
|
3293
|
+
else {
|
3294
|
+
await this.deleteFile(node.id);
|
3295
3295
|
}
|
3296
3296
|
}
|
3297
3297
|
}
|
3298
3298
|
async showCreateFolderDialog(parentId) {
|
3299
|
-
const comp = (await import('./acorex-modules-document-management-create-folder-dialog.component-
|
3299
|
+
const comp = (await import('./acorex-modules-document-management-create-folder-dialog.component-D66KoQNb.mjs'))
|
3300
3300
|
.AXMCreateFolderDialog;
|
3301
3301
|
const popup = await this.popupService.open(comp, {
|
3302
3302
|
title: 't("actions.create-folder")',
|
@@ -3306,47 +3306,95 @@ class AXMDocumentManagerService {
|
|
3306
3306
|
});
|
3307
3307
|
return popup.data?.folder;
|
3308
3308
|
}
|
3309
|
-
|
3310
|
-
|
3311
|
-
|
3309
|
+
async moveTo(options) {
|
3310
|
+
const comp = (await import('./acorex-modules-document-management-drive-choose.component-WoZfDyLK.mjs')).AXMDocumentDriveChooseComponent;
|
3311
|
+
//
|
3312
3312
|
const popup = await this.popupService.open(comp, {
|
3313
|
-
title:
|
3313
|
+
title: `Choose ${options.browseMode == 'file' ? 'File' : 'Folder'}`,
|
3314
3314
|
data: {
|
3315
|
-
|
3315
|
+
selectionMode: options.multiple ? 'multiple' : 'single',
|
3316
|
+
browseMode: options.browseMode ?? 'file',
|
3316
3317
|
},
|
3317
3318
|
});
|
3318
|
-
|
3319
|
+
//
|
3320
|
+
const selectedFolders = popup.data.result ? popup.data?.items ?? [] : [];
|
3321
|
+
if (selectedFolders.length > 0) {
|
3322
|
+
const selectedFolder = selectedFolders[0];
|
3323
|
+
if (selectedFolder) {
|
3324
|
+
if (options.node.type === 'folder') {
|
3325
|
+
await this.updateFolder(options.node.id, { parentId: selectedFolder.id });
|
3326
|
+
}
|
3327
|
+
else {
|
3328
|
+
await this.updateFile(options.node.id, { parentId: selectedFolder.id });
|
3329
|
+
}
|
3330
|
+
return true;
|
3331
|
+
}
|
3332
|
+
else {
|
3333
|
+
return false;
|
3334
|
+
}
|
3335
|
+
}
|
3336
|
+
else {
|
3337
|
+
return false;
|
3338
|
+
}
|
3339
|
+
}
|
3340
|
+
async copyTo(options) {
|
3341
|
+
const comp = (await import('./acorex-modules-document-management-drive-choose.component-WoZfDyLK.mjs')).AXMDocumentDriveChooseComponent;
|
3342
|
+
//
|
3343
|
+
const popup = await this.popupService.open(comp, {
|
3344
|
+
title: `Choose ${options.browseMode == 'file' ? 'File' : 'Folder'}`,
|
3345
|
+
data: {
|
3346
|
+
selectionMode: options.multiple ? 'multiple' : 'single',
|
3347
|
+
browseMode: options.browseMode ?? 'file',
|
3348
|
+
},
|
3349
|
+
});
|
3350
|
+
//
|
3351
|
+
const selectedFolders = popup.data.result ? popup.data?.items ?? [] : [];
|
3352
|
+
if (selectedFolders.length > 0) {
|
3353
|
+
const selectedFolder = selectedFolders[0];
|
3354
|
+
if (selectedFolder) {
|
3355
|
+
if (options.node.type === 'folder') {
|
3356
|
+
await this.createFolder({
|
3357
|
+
name: options.node.name,
|
3358
|
+
parentId: selectedFolder.id,
|
3359
|
+
color: '#ffffff',
|
3360
|
+
size: options.node.size,
|
3361
|
+
});
|
3362
|
+
}
|
3363
|
+
else {
|
3364
|
+
await this.createFile({
|
3365
|
+
title: options.node.name,
|
3366
|
+
name: options.node.name,
|
3367
|
+
parentId: selectedFolder.id,
|
3368
|
+
//TODO upload file to file storage
|
3369
|
+
fileId: '',
|
3370
|
+
size: 0,
|
3371
|
+
});
|
3372
|
+
}
|
3373
|
+
return true;
|
3374
|
+
}
|
3375
|
+
else {
|
3376
|
+
return false;
|
3377
|
+
}
|
3378
|
+
}
|
3379
|
+
else {
|
3380
|
+
return false;
|
3381
|
+
}
|
3319
3382
|
}
|
3320
3383
|
async showFileViewerPopup(node) {
|
3321
3384
|
const parentFolder = await this.folderService.getOne(node.parentId);
|
3322
3385
|
const parentFolderName = parentFolder.name;
|
3323
3386
|
const nodes = await Promise.all(parentFolder.documents?.map(async (doc) => {
|
3324
|
-
const fileInfo = await this.fileService.getInfo(doc.fileId);
|
3325
|
-
// Convert mimeType to supported type
|
3326
|
-
let fileType = 'image';
|
3327
|
-
if (fileInfo.mimeType.startsWith('image/')) {
|
3328
|
-
fileType = 'image';
|
3329
|
-
}
|
3330
|
-
else if (fileInfo.mimeType.startsWith('audio/')) {
|
3331
|
-
fileType = 'audio';
|
3332
|
-
}
|
3333
|
-
else if (fileInfo.mimeType.startsWith('video/')) {
|
3334
|
-
fileType = 'video';
|
3335
|
-
}
|
3336
|
-
else if (fileInfo.mimeType === 'application/pdf') {
|
3337
|
-
fileType = 'pdf';
|
3338
|
-
}
|
3339
3387
|
return {
|
3340
3388
|
id: doc.id || '',
|
3341
3389
|
name: doc.name,
|
3342
|
-
type:
|
3343
|
-
url:
|
3344
|
-
size:
|
3345
|
-
thumbnail:
|
3390
|
+
type: doc.meta?.['type'],
|
3391
|
+
url: doc.fileId,
|
3392
|
+
size: doc.size.toString(),
|
3393
|
+
thumbnail: doc.fileId,
|
3346
3394
|
};
|
3347
3395
|
}) || []);
|
3348
3396
|
console.log(nodes);
|
3349
|
-
const comp = (await
|
3397
|
+
const comp = (await Promise.resolve().then(function () { return fileViewerPopup_component; }))
|
3350
3398
|
.AXMFileViewerPopupComponent;
|
3351
3399
|
await this.popupService.open(comp, {
|
3352
3400
|
title: `t("gallery" , ${RootConfig.module.name})` + ' - ' + parentFolderName,
|
@@ -3356,88 +3404,12 @@ class AXMDocumentManagerService {
|
|
3356
3404
|
});
|
3357
3405
|
}
|
3358
3406
|
async openFile(node) {
|
3407
|
+
console.log(node);
|
3359
3408
|
const file = await this.documentService.getOne(node.id);
|
3360
|
-
|
3361
|
-
const fileInfo = await this.fileService.getInfo(file.fileId);
|
3362
|
-
if (fileInfo.url) {
|
3363
|
-
try {
|
3364
|
-
// Check if the URL looks like base64 - only attempt decoding if it matches base64 pattern
|
3365
|
-
const isBase64 = /^[A-Za-z0-9+/]*={0,2}$/.test(fileInfo.url);
|
3366
|
-
let url = fileInfo.url;
|
3367
|
-
if (isBase64) {
|
3368
|
-
try {
|
3369
|
-
url = atob(fileInfo.url);
|
3370
|
-
console.log('Successfully decoded base64 URL:', url);
|
3371
|
-
}
|
3372
|
-
catch (e) {
|
3373
|
-
console.warn('Failed to decode as base64, using original URL:', e);
|
3374
|
-
}
|
3375
|
-
}
|
3376
|
-
// Make sure URL has a protocol, add https if missing
|
3377
|
-
let finalUrl = url.startsWith('http') ? url : `https://${url}`;
|
3378
|
-
console.log('Attempting to open URL:', finalUrl);
|
3379
|
-
// Try to open in a new window with a friendly message to copy URL if it fails
|
3380
|
-
this.showUrlDialog(finalUrl, file.name);
|
3381
|
-
}
|
3382
|
-
catch (error) {
|
3383
|
-
console.error('Error processing URL:', error);
|
3384
|
-
this.showUrlDialog(fileInfo.url, file.name, true);
|
3385
|
-
}
|
3386
|
-
}
|
3387
|
-
else {
|
3388
|
-
console.warn('No URL found for file:', file);
|
3389
|
-
this.dialogService.alert('No URL Available', 'No URL found for this file.', 'warning');
|
3390
|
-
}
|
3391
|
-
}
|
3392
|
-
else {
|
3393
|
-
console.warn('File not found or has no fileId:', node.id);
|
3394
|
-
this.dialogService.alert('File Not Found', 'File information could not be retrieved.', 'warning');
|
3395
|
-
}
|
3396
|
-
}
|
3397
|
-
/**
|
3398
|
-
* Shows a dialog with URL options including a copy button
|
3399
|
-
*/
|
3400
|
-
async showUrlDialog(url, fileName, isError = false) {
|
3401
|
-
const title = `Open "${fileName}"`;
|
3402
|
-
const message = isError
|
3403
|
-
? 'There was an issue processing the URL. You can try opening it manually:\n' + url
|
3404
|
-
: 'Click the button below to open the URL, or copy it to open manually:\n' + url;
|
3405
|
-
const result = await this.dialogService.confirm(title, message, 'primary');
|
3406
|
-
if (result) {
|
3407
|
-
try {
|
3408
|
-
window.open(url, '_blank', 'noopener,noreferrer');
|
3409
|
-
}
|
3410
|
-
catch (e) {
|
3411
|
-
console.error('Error opening URL from dialog:', e);
|
3412
|
-
this.dialogService.alert('Error', 'Could not open URL in browser', 'danger');
|
3413
|
-
}
|
3414
|
-
}
|
3415
|
-
else {
|
3416
|
-
// If user cancels, offer to copy the URL
|
3417
|
-
const copyResult = await this.dialogService.confirm('Copy URL', 'Would you like to copy the URL to clipboard?', 'primary');
|
3418
|
-
if (copyResult) {
|
3419
|
-
try {
|
3420
|
-
navigator.clipboard.writeText(url);
|
3421
|
-
this.dialogService.alert('Success', 'URL copied to clipboard', 'success');
|
3422
|
-
}
|
3423
|
-
catch (e) {
|
3424
|
-
console.error('Error copying URL to clipboard:', e);
|
3425
|
-
// Fallback for clipboard API not available
|
3426
|
-
const textArea = document.createElement('textarea');
|
3427
|
-
textArea.value = url;
|
3428
|
-
document.body.appendChild(textArea);
|
3429
|
-
textArea.focus();
|
3430
|
-
textArea.select();
|
3431
|
-
document.execCommand('copy');
|
3432
|
-
document.body.removeChild(textArea);
|
3433
|
-
this.dialogService.alert('Success', 'URL copied to clipboard', 'success');
|
3434
|
-
}
|
3435
|
-
}
|
3436
|
-
}
|
3437
|
-
return result;
|
3409
|
+
console.log(file);
|
3438
3410
|
}
|
3439
3411
|
async rename(node) {
|
3440
|
-
const comp = (await import('./acorex-modules-document-management-rename-node-dialog.component-
|
3412
|
+
const comp = (await import('./acorex-modules-document-management-rename-node-dialog.component-Dae6RWb8.mjs'))
|
3441
3413
|
.AXMRenameNodeDialog;
|
3442
3414
|
const popup = await this.popupService.open(comp, {
|
3443
3415
|
title: 't("actions.rename")',
|
@@ -3445,42 +3417,16 @@ class AXMDocumentManagerService {
|
|
3445
3417
|
node,
|
3446
3418
|
},
|
3447
3419
|
});
|
3448
|
-
return popup.data?.
|
3420
|
+
return popup.data?.result;
|
3449
3421
|
}
|
3450
3422
|
async showDeleteNodesDialog(nodeIds) {
|
3451
|
-
const
|
3452
|
-
|
3453
|
-
|
3454
|
-
|
3455
|
-
|
3456
|
-
content: 'Are you sure?',
|
3457
|
-
title: 'Delete',
|
3458
|
-
type: 'danger',
|
3459
|
-
buttons: [
|
3460
|
-
{
|
3461
|
-
text: 'Yes',
|
3462
|
-
color: 'danger',
|
3463
|
-
onClick: async (e) => {
|
3464
|
-
e.handled = true;
|
3465
|
-
e.source.text = 'Deleting...';
|
3466
|
-
e.source.disabled = true;
|
3467
|
-
e.source.loading = true;
|
3468
|
-
subject.next('Started');
|
3469
|
-
await this.deleteNodes(nodeIds);
|
3470
|
-
subject.complete();
|
3471
|
-
dialog.close();
|
3472
|
-
},
|
3473
|
-
},
|
3474
|
-
{
|
3475
|
-
text: 'No',
|
3476
|
-
color: 'default',
|
3477
|
-
autofocus: true,
|
3478
|
-
onClick: () => {
|
3479
|
-
dialog.close();
|
3480
|
-
},
|
3481
|
-
},
|
3482
|
-
],
|
3423
|
+
const result = await this.workflow.execute('delete-entity', {
|
3424
|
+
entities: nodeIds.map((node) => ({
|
3425
|
+
source: `${RootConfig.module.name}.${node.type == 'folder' ? RootConfig.entities.folder.name : RootConfig.entities.document.name}`,
|
3426
|
+
ids: [node.id],
|
3427
|
+
})),
|
3483
3428
|
});
|
3429
|
+
return result.getOutput('result') ?? false;
|
3484
3430
|
}
|
3485
3431
|
async searchFolders(searchTerm, scope, options) {
|
3486
3432
|
const { result: rootNode } = await this.getRoot(scope, options);
|
@@ -3511,7 +3457,7 @@ class AXMDocumentManagerService {
|
|
3511
3457
|
return [...(await this.getAllFolders()), ...(await this.getAllFiles())];
|
3512
3458
|
}
|
3513
3459
|
async showChooseFileDialog() {
|
3514
|
-
const comp = (await import('./acorex-modules-document-management-drive-choose.component-
|
3460
|
+
const comp = (await import('./acorex-modules-document-management-drive-choose.component-WoZfDyLK.mjs')).AXMDocumentDriveChooseComponent;
|
3515
3461
|
await this.popupService.open(comp);
|
3516
3462
|
}
|
3517
3463
|
async downloadFile(node) {
|
@@ -3592,6 +3538,32 @@ class AXMDocumentManagerService {
|
|
3592
3538
|
const extension = originalName.substring(lastDotIndex);
|
3593
3539
|
return `${nameWithoutExt} copy${extension}`;
|
3594
3540
|
}
|
3541
|
+
async uploadFile(folderId) {
|
3542
|
+
const folder = await this.folderService.getOne(folderId);
|
3543
|
+
var docTypes = folder.documentType;
|
3544
|
+
if (folder && docTypes == null) {
|
3545
|
+
const comp = (await Promise.resolve().then(function () { return index; })).AXMChooseDocumentTypeComponent;
|
3546
|
+
const result = await this.popupService.open(comp);
|
3547
|
+
if (result.data != null && result.data.documentType != null) {
|
3548
|
+
const { upload, ...metaContext } = result.data.context;
|
3549
|
+
//Todo
|
3550
|
+
const fileInfo = await this.fileService.getInfo(upload[0]);
|
3551
|
+
const file = await this.documentService.insertOne({
|
3552
|
+
fileId: upload[0],
|
3553
|
+
meta: metaContext,
|
3554
|
+
parentId: folderId,
|
3555
|
+
size: fileInfo.size,
|
3556
|
+
name: `test.${fileInfo.mimeType.split('/')[1]}`,
|
3557
|
+
title: 'Test',
|
3558
|
+
});
|
3559
|
+
return true;
|
3560
|
+
}
|
3561
|
+
else {
|
3562
|
+
return false;
|
3563
|
+
}
|
3564
|
+
}
|
3565
|
+
return false;
|
3566
|
+
}
|
3595
3567
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDocumentManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
3596
3568
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDocumentManagerService, providedIn: 'root' }); }
|
3597
3569
|
}
|
@@ -3677,13 +3649,19 @@ var AXPDocumentExplorerSettings;
|
|
3677
3649
|
|
3678
3650
|
const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withState(() => ({
|
3679
3651
|
// View State
|
3680
|
-
viewMode: '
|
3652
|
+
viewMode: 'large-tiles',
|
3681
3653
|
isLoading: false,
|
3682
3654
|
// Navigation State
|
3683
3655
|
currentPath: [],
|
3684
3656
|
currentNode: null,
|
3685
3657
|
loadingFolderId: null,
|
3686
3658
|
navigatingFolderId: null,
|
3659
|
+
backHistory: [],
|
3660
|
+
// Selection State
|
3661
|
+
selectionMode: 'none',
|
3662
|
+
selectedNodes: [],
|
3663
|
+
// Browse State
|
3664
|
+
browseMode: 'file',
|
3687
3665
|
// Sort State
|
3688
3666
|
sortField: 'name',
|
3689
3667
|
sortDirection: 'asc',
|
@@ -3696,36 +3674,49 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
|
|
3696
3674
|
currentDrive: null,
|
3697
3675
|
// File Type State
|
3698
3676
|
fileTypes: [],
|
3677
|
+
// Detail Panel State
|
3678
|
+
detailPanel: false,
|
3699
3679
|
})), withComputed((store) => ({
|
3700
3680
|
isRoot: computed(() => {
|
3701
3681
|
const node = store.currentNode();
|
3702
3682
|
return node?.id === 'root' || !node?.parentId;
|
3703
3683
|
}),
|
3704
|
-
breadcrumb: computed(() => store.currentPath()),
|
3705
3684
|
currentFolder: computed(() => store.currentNode()),
|
3706
3685
|
currentFolderContents: computed(() => ({
|
3707
3686
|
folders: store.folders(),
|
3708
3687
|
files: store.files(),
|
3709
3688
|
})),
|
3710
|
-
|
3711
|
-
|
3712
|
-
return currentNode?.parentId ? store.folders().find((folder) => folder.id === currentNode.parentId) : null;
|
3713
|
-
}),
|
3714
|
-
isGridView: computed(() => store.viewMode() === 'grid'),
|
3689
|
+
isLargeTilesView: computed(() => store.viewMode() === 'large-tiles'),
|
3690
|
+
isSmallTilesView: computed(() => store.viewMode() === 'small-tiles'),
|
3715
3691
|
isListView: computed(() => store.viewMode() === 'list'),
|
3716
|
-
|
3717
|
-
|
3692
|
+
isDetailsView: computed(() => store.viewMode() === 'details'),
|
3693
|
+
isLargeIconsView: computed(() => store.viewMode() === 'large-icons'),
|
3694
|
+
isSmallIconsView: computed(() => store.viewMode() === 'small-icons'),
|
3695
|
+
isBackAvailable: computed(() => store.backHistory().length > 0),
|
3696
|
+
isUpAvailable: computed(() => {
|
3697
|
+
const node = store.currentNode();
|
3698
|
+
return node?.parentId != null;
|
3699
|
+
}),
|
3700
|
+
selectedCount: computed(() => store.selectedNodes().length),
|
3701
|
+
hasSelectedItems: computed(() => store.selectedNodes().length > 0),
|
3702
|
+
hasMultipleSelectedItems: computed(() => store.selectedNodes().length > 1),
|
3703
|
+
isMultiSelect: computed(() => store.selectionMode() === 'multiple'),
|
3704
|
+
selectedNode: computed(() => store.selectedNodes()[0] ?? null),
|
3705
|
+
isDetailPanelOpen: computed(() => store.detailPanel()),
|
3706
|
+
})), withMethods((store, fileTypeService = inject(AXPFileTypeProviderService), documentTypeService = inject(AXMDocumentTypeService), driveService = inject(AXMDocumentManagerService), settingService = inject(AXPSettingService), translateService = inject(AXTranslationService)) => ({
|
3707
|
+
async initialize(options) {
|
3718
3708
|
// Load file types
|
3719
3709
|
const fileTypes = await fileTypeService.items();
|
3720
3710
|
patchState(store, { fileTypes });
|
3721
3711
|
// Load initial settings
|
3722
|
-
const viewMode = await settingService.get(AXPDocumentExplorerSettings.ViewMode);
|
3723
|
-
const sortField = await settingService.get(AXPDocumentExplorerSettings.SortField);
|
3724
|
-
const sortDirection = await settingService.get(AXPDocumentExplorerSettings.SortDirection);
|
3712
|
+
const viewMode = await settingService.scope(AXPSettingScope.User).get(AXPDocumentExplorerSettings.ViewMode);
|
3713
|
+
const sortField = await settingService.scope(AXPSettingScope.User).get(AXPDocumentExplorerSettings.SortField);
|
3714
|
+
const sortDirection = await settingService.scope(AXPSettingScope.User).get(AXPDocumentExplorerSettings.SortDirection);
|
3725
3715
|
patchState(store, {
|
3726
|
-
viewMode: viewMode || '
|
3716
|
+
viewMode: viewMode || 'large-tiles',
|
3727
3717
|
sortField: sortField || 'name',
|
3728
3718
|
sortDirection: sortDirection || 'asc',
|
3719
|
+
browseMode: options?.browseMode || 'file',
|
3729
3720
|
});
|
3730
3721
|
},
|
3731
3722
|
_load: async (folderId) => {
|
@@ -3737,7 +3728,7 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
|
|
3737
3728
|
currentNode: node.result,
|
3738
3729
|
currentPath: node.path,
|
3739
3730
|
folders: node.result.children?.filter((item) => item.type === 'folder') || [],
|
3740
|
-
files: node.result.children?.filter((item) => item.type === 'file') || [],
|
3731
|
+
files: node.result.children?.filter((item) => store.browseMode() == 'file' && item.type === 'file') || [],
|
3741
3732
|
itemsCount: node.result.children?.length || 0,
|
3742
3733
|
availableSpace: await driveService.getAvailableSpace(),
|
3743
3734
|
loadingFolderId: null,
|
@@ -3754,15 +3745,25 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
|
|
3754
3745
|
}
|
3755
3746
|
},
|
3756
3747
|
navigateToFolder(folderId) {
|
3748
|
+
const currentNode = store.currentNode();
|
3749
|
+
if (currentNode) {
|
3750
|
+
patchState(store, {
|
3751
|
+
backHistory: [...store.backHistory(), { folderId: currentNode.id, path: store.currentPath() }],
|
3752
|
+
});
|
3753
|
+
}
|
3757
3754
|
patchState(store, { navigatingFolderId: folderId });
|
3758
3755
|
},
|
3759
3756
|
async loadFolderContents(folderId) {
|
3760
3757
|
await this._load(folderId);
|
3758
|
+
this.deselectAll();
|
3761
3759
|
},
|
3762
3760
|
setViewMode(mode) {
|
3763
3761
|
patchState(store, { viewMode: mode });
|
3764
3762
|
settingService.scope(AXPSettingScope.User).set(AXPDocumentExplorerSettings.ViewMode, mode);
|
3765
3763
|
},
|
3764
|
+
isViewMode(mode) {
|
3765
|
+
return store.viewMode() === mode;
|
3766
|
+
},
|
3766
3767
|
setSortField(field) {
|
3767
3768
|
patchState(store, { sortField: field });
|
3768
3769
|
settingService.scope(AXPSettingScope.User).set(AXPDocumentExplorerSettings.SortField, field);
|
@@ -3771,6 +3772,9 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
|
|
3771
3772
|
patchState(store, { sortDirection: direction });
|
3772
3773
|
settingService.scope(AXPSettingScope.User).set(AXPDocumentExplorerSettings.SortDirection, direction);
|
3773
3774
|
},
|
3775
|
+
setSelectionMode(mode) {
|
3776
|
+
patchState(store, { selectionMode: mode });
|
3777
|
+
},
|
3774
3778
|
setDrive(scope) {
|
3775
3779
|
patchState(store, { currentDrive: scope });
|
3776
3780
|
},
|
@@ -3787,6 +3791,107 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
|
|
3787
3791
|
type: fileType?.name || 'Unknown',
|
3788
3792
|
};
|
3789
3793
|
},
|
3794
|
+
getNodeInfo(node) {
|
3795
|
+
// If no node, return a default object
|
3796
|
+
if (!node) {
|
3797
|
+
return {
|
3798
|
+
name: '---',
|
3799
|
+
icon: 'fa-light fa-folder',
|
3800
|
+
type: 'Folder',
|
3801
|
+
sections: [
|
3802
|
+
{
|
3803
|
+
title: 'Details',
|
3804
|
+
details: [],
|
3805
|
+
},
|
3806
|
+
],
|
3807
|
+
};
|
3808
|
+
}
|
3809
|
+
// If the node is a file, return the file info
|
3810
|
+
if (node.type === 'file') {
|
3811
|
+
const fileTypes = store.fileTypes();
|
3812
|
+
const extension = node.name.split('.').pop()?.toLowerCase() || '';
|
3813
|
+
const extensions = fileTypes.flatMap((type) => type.extensions);
|
3814
|
+
const fileType = extensions.find((e) => e.name === extension);
|
3815
|
+
return {
|
3816
|
+
name: node.name,
|
3817
|
+
icon: fileType?.icon || 'fa-light fa-file',
|
3818
|
+
type: 'File',
|
3819
|
+
sections: [
|
3820
|
+
{
|
3821
|
+
title: 'Details',
|
3822
|
+
details: [
|
3823
|
+
{
|
3824
|
+
title: 'Description',
|
3825
|
+
content: node.description,
|
3826
|
+
icon: 'fa-solid fa-file-lines',
|
3827
|
+
},
|
3828
|
+
{
|
3829
|
+
title: 'Size',
|
3830
|
+
content: node.size || 0,
|
3831
|
+
format: 'filesize',
|
3832
|
+
icon: 'fa-solid fa-file-lines',
|
3833
|
+
},
|
3834
|
+
{
|
3835
|
+
title: 'Created at',
|
3836
|
+
content: node.createdAt || new Date(),
|
3837
|
+
format: 'datetime',
|
3838
|
+
icon: 'fa-solid fa-calendar-days',
|
3839
|
+
},
|
3840
|
+
{
|
3841
|
+
title: 'Modified at',
|
3842
|
+
content: node.modifiedAt || new Date(),
|
3843
|
+
format: 'datetime',
|
3844
|
+
icon: 'fa-solid fa-calendar-days',
|
3845
|
+
}
|
3846
|
+
]
|
3847
|
+
}
|
3848
|
+
]
|
3849
|
+
};
|
3850
|
+
}
|
3851
|
+
// If the node is a folder, return the folder info
|
3852
|
+
else {
|
3853
|
+
return {
|
3854
|
+
name: node.name,
|
3855
|
+
icon: 'fa-light fa-folder ax-text-yellow-500',
|
3856
|
+
type: 'Folder',
|
3857
|
+
sections: [
|
3858
|
+
{
|
3859
|
+
title: 'Details',
|
3860
|
+
details: [
|
3861
|
+
{
|
3862
|
+
title: 'Description',
|
3863
|
+
content: node.description,
|
3864
|
+
icon: 'fa-solid fa-file-lines',
|
3865
|
+
},
|
3866
|
+
{
|
3867
|
+
title: 'Items',
|
3868
|
+
content: node.childrenCount,
|
3869
|
+
icon: 'fa-solid fa-file-lines',
|
3870
|
+
},
|
3871
|
+
{
|
3872
|
+
title: 'Size',
|
3873
|
+
content: node.size || 0,
|
3874
|
+
format: 'filesize',
|
3875
|
+
icon: 'fa-solid fa-file-lines',
|
3876
|
+
},
|
3877
|
+
{
|
3878
|
+
title: 'Created at',
|
3879
|
+
content: node.createdAt || new Date(),
|
3880
|
+
format: 'datetime',
|
3881
|
+
icon: 'fa-solid fa-calendar-days',
|
3882
|
+
},
|
3883
|
+
{
|
3884
|
+
title: 'Modified at',
|
3885
|
+
content: node.modifiedAt || new Date(),
|
3886
|
+
format: 'datetime',
|
3887
|
+
icon: 'fa-solid fa-calendar-days',
|
3888
|
+
}
|
3889
|
+
]
|
3890
|
+
}
|
3891
|
+
]
|
3892
|
+
};
|
3893
|
+
}
|
3894
|
+
},
|
3790
3895
|
sortItems(items) {
|
3791
3896
|
const field = store.sortField();
|
3792
3897
|
const direction = store.sortDirection();
|
@@ -3797,8 +3902,8 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
|
|
3797
3902
|
comparison = a.name.localeCompare(b.name);
|
3798
3903
|
break;
|
3799
3904
|
case 'modified':
|
3800
|
-
const aDate = a.
|
3801
|
-
const bDate = b.
|
3905
|
+
const aDate = a.modifiedAt ? new Date(a.modifiedAt) : new Date(0);
|
3906
|
+
const bDate = b.modifiedAt ? new Date(b.modifiedAt) : new Date(0);
|
3802
3907
|
comparison = aDate.getTime() - bDate.getTime();
|
3803
3908
|
break;
|
3804
3909
|
case 'size':
|
@@ -3814,6 +3919,115 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
|
|
3814
3919
|
await this._load(currentFolder.id);
|
3815
3920
|
}
|
3816
3921
|
},
|
3922
|
+
navigateToUp() {
|
3923
|
+
const currentNode = store.currentNode();
|
3924
|
+
const parentId = currentNode?.parentId;
|
3925
|
+
if (parentId && currentNode) {
|
3926
|
+
patchState(store, {
|
3927
|
+
backHistory: [...store.backHistory(), { folderId: currentNode.id, path: store.currentPath() }],
|
3928
|
+
});
|
3929
|
+
patchState(store, { navigatingFolderId: parentId });
|
3930
|
+
this.loadFolderContents(parentId);
|
3931
|
+
}
|
3932
|
+
},
|
3933
|
+
async navigateBack() {
|
3934
|
+
const history = store.backHistory();
|
3935
|
+
if (history.length === 0) {
|
3936
|
+
return;
|
3937
|
+
}
|
3938
|
+
const lastEntry = history[history.length - 1];
|
3939
|
+
patchState(store, { backHistory: history.slice(0, history.length - 1) });
|
3940
|
+
patchState(store, { navigatingFolderId: lastEntry.folderId });
|
3941
|
+
await this.loadFolderContents(lastEntry.folderId);
|
3942
|
+
},
|
3943
|
+
async openFile(file) {
|
3944
|
+
await driveService.openFile(file);
|
3945
|
+
},
|
3946
|
+
//TODO: Delete only one node at a time
|
3947
|
+
async deleteNodes(nodes = store.selectedNodes()) {
|
3948
|
+
const result = await driveService.showDeleteNodesDialog(nodes);
|
3949
|
+
if (result) {
|
3950
|
+
this.deselectAll();
|
3951
|
+
await this.refresh();
|
3952
|
+
}
|
3953
|
+
},
|
3954
|
+
toggleSelect(node) {
|
3955
|
+
if (store.selectionMode() === 'multiple') {
|
3956
|
+
patchState(store, { selectedNodes: store.selectedNodes().includes(node) ? store.selectedNodes().filter(n => n.id !== node.id) : [...store.selectedNodes(), node] });
|
3957
|
+
}
|
3958
|
+
else {
|
3959
|
+
patchState(store, { selectedNodes: [node] });
|
3960
|
+
}
|
3961
|
+
console.log(store.currentPath());
|
3962
|
+
},
|
3963
|
+
isItemSelected(node) {
|
3964
|
+
return store.selectedNodes().some(selectedNode => selectedNode.id === node.id);
|
3965
|
+
},
|
3966
|
+
selectAll() {
|
3967
|
+
patchState(store, { selectedNodes: [...store.folders(), ...store.files()] });
|
3968
|
+
},
|
3969
|
+
deselectAll() {
|
3970
|
+
patchState(store, { selectedNodes: [] });
|
3971
|
+
},
|
3972
|
+
openDetailPanel() {
|
3973
|
+
patchState(store, { detailPanel: true });
|
3974
|
+
},
|
3975
|
+
closeDetailPanel() {
|
3976
|
+
patchState(store, { detailPanel: false });
|
3977
|
+
},
|
3978
|
+
toggleDetailPanel() {
|
3979
|
+
patchState(store, { detailPanel: !store.detailPanel() });
|
3980
|
+
},
|
3981
|
+
//#region Menu Items
|
3982
|
+
async getFolderAddMenuItems() {
|
3983
|
+
const documentTypes = await documentTypeService.query();
|
3984
|
+
const items = documentTypes.items.map(item => ({
|
3985
|
+
name: item.name,
|
3986
|
+
title: item.title,
|
3987
|
+
})) ?? [];
|
3988
|
+
//
|
3989
|
+
const scope = RootConfig.config.i18n;
|
3990
|
+
return [
|
3991
|
+
{
|
3992
|
+
title: await translateService.translateAsync('actions.create-folder', { scope }),
|
3993
|
+
icon: 'fa-light fa-folder-plus',
|
3994
|
+
break: true,
|
3995
|
+
command: {
|
3996
|
+
name: 'new-folder',
|
3997
|
+
options: {
|
3998
|
+
folderId: store.currentFolder()?.id,
|
3999
|
+
}
|
4000
|
+
}
|
4001
|
+
},
|
4002
|
+
{
|
4003
|
+
title: await translateService.translateAsync('actions.upload-file', { scope }),
|
4004
|
+
icon: 'fa-light fa-file-arrow-up',
|
4005
|
+
items: items
|
4006
|
+
},
|
4007
|
+
];
|
4008
|
+
},
|
4009
|
+
async getFolderActionMenuItems() {
|
4010
|
+
return [
|
4011
|
+
{
|
4012
|
+
name: 'refresh',
|
4013
|
+
title: 'Refresh',
|
4014
|
+
icon: 'fa-light fa-rotate-right',
|
4015
|
+
break: true,
|
4016
|
+
},
|
4017
|
+
{
|
4018
|
+
name: 'delete',
|
4019
|
+
title: 'Delete',
|
4020
|
+
color: 'danger',
|
4021
|
+
icon: 'fa-light fa-trash',
|
4022
|
+
},
|
4023
|
+
];
|
4024
|
+
},
|
4025
|
+
//#endregion
|
4026
|
+
//#region Context Menu Items
|
4027
|
+
async getContextMenuItems() {
|
4028
|
+
return [...await this.getFolderAddMenuItems(), ...await this.getFolderActionMenuItems()];
|
4029
|
+
},
|
4030
|
+
//#endregion
|
3817
4031
|
})));
|
3818
4032
|
|
3819
4033
|
class AXMDocumentExplorerComponent {
|
@@ -3823,22 +4037,51 @@ class AXMDocumentExplorerComponent {
|
|
3823
4037
|
this.rootContextMenu = viewChild('rootContextMenu');
|
3824
4038
|
this.driveService = inject(AXMDocumentManagerService);
|
3825
4039
|
this.translateService = inject(AXTranslationService);
|
4040
|
+
this.layout = inject(AXPLayoutThemeService);
|
4041
|
+
this.browseMode = input('file');
|
4042
|
+
this.viewMode = input();
|
4043
|
+
this.selectionMode = input('none');
|
4044
|
+
this.showContextMenu = input(true);
|
4045
|
+
this.view = signal(null);
|
4046
|
+
this.viewMap = {
|
4047
|
+
list: async () => (await import('./acorex-modules-document-management-list-view.component-B6J6Tokv.mjs')).AXMDocumentExplorerListViewComponent,
|
4048
|
+
'small-tiles': async () => (await import('./acorex-modules-document-management-small-tiles-view.component-DDKdWg8I.mjs')).AXMDocumentExplorerSmallTilesViewComponent,
|
4049
|
+
'large-tiles': async () => (await import('./acorex-modules-document-management-large-tiles-view.component-ByWrKvZe.mjs')).AXMDocumentExplorerLargeTilesViewComponent,
|
4050
|
+
details: async () => (await import('./acorex-modules-document-management-details-view.component-BHcu_gYH.mjs')).AXMDocumentExplorerDetailsViewComponent,
|
4051
|
+
'large-icons': async () => (await import('./acorex-modules-document-management-large-icons-view.component-DvriE0YR.mjs')).AXMDocumentExplorerLargeIconsViewComponent,
|
4052
|
+
'small-icons': async () => (await import('./acorex-modules-document-management-small-icons-view.component-TrYeB22e.mjs')).AXMDocumentExplorerSmallIconsViewComponent,
|
4053
|
+
};
|
3826
4054
|
this.#effect = effect(() => {
|
3827
4055
|
const navigatingFolderId = this.vm.loadingFolderId();
|
3828
4056
|
if (!navigatingFolderId) {
|
3829
4057
|
setTimeout(() => {
|
3830
4058
|
this.contextMenu()?.refresh();
|
3831
4059
|
this.rootContextMenu()?.refresh();
|
3832
|
-
},
|
4060
|
+
}, 300);
|
4061
|
+
}
|
4062
|
+
});
|
4063
|
+
this.#effect2 = effect(() => {
|
4064
|
+
if (this.viewMode()) {
|
4065
|
+
this.vm.setViewMode(this.viewMode());
|
3833
4066
|
}
|
4067
|
+
if (this.selectionMode()) {
|
4068
|
+
this.vm.setSelectionMode(this.selectionMode());
|
4069
|
+
}
|
4070
|
+
});
|
4071
|
+
this.#effect3 = effect(async () => {
|
4072
|
+
const func = get$1(this.viewMap, this.vm.viewMode()) ?? this.viewMap['large-tiles'];
|
4073
|
+
const comp = await func();
|
4074
|
+
this.view.set(comp);
|
3834
4075
|
});
|
3835
4076
|
}
|
3836
4077
|
#effect;
|
4078
|
+
#effect2;
|
4079
|
+
#effect3;
|
3837
4080
|
handleNavigateToFolder(folderId) {
|
3838
4081
|
this.vm.navigateToFolder(folderId);
|
3839
4082
|
console.log(this.vm.currentFolder());
|
3840
4083
|
}
|
3841
|
-
|
4084
|
+
//#region Menu and Context Menu
|
3842
4085
|
async handleContextMenuOnOpening(e) {
|
3843
4086
|
const node = get$1(e.targetElement, '__data__');
|
3844
4087
|
if (!node) {
|
@@ -3973,37 +4216,17 @@ class AXMDocumentExplorerComponent {
|
|
3973
4216
|
},
|
3974
4217
|
];
|
3975
4218
|
if (node.type == 'file') {
|
3976
|
-
e.items.splice(
|
4219
|
+
e.items.splice(1, 0, openWith);
|
3977
4220
|
}
|
3978
4221
|
}
|
3979
|
-
handleContextMenuRootOnOpening(e) {
|
3980
|
-
//TODO: check async translate method in acorex
|
3981
|
-
const
|
3982
|
-
|
3983
|
-
|
3984
|
-
|
3985
|
-
|
3986
|
-
|
3987
|
-
},
|
3988
|
-
{
|
3989
|
-
name: 'upload-file',
|
3990
|
-
text: this.translateService.translateSync('actions.upload-file', { scope }),
|
3991
|
-
icon: 'fa-light fa-file-arrow-up',
|
3992
|
-
break: true,
|
3993
|
-
},
|
3994
|
-
{
|
3995
|
-
name: 'refresh',
|
3996
|
-
text: 'Refresh',
|
3997
|
-
icon: 'fa-light fa-rotate-right',
|
3998
|
-
break: true,
|
3999
|
-
},
|
4000
|
-
{
|
4001
|
-
name: 'delete',
|
4002
|
-
text: 'Delete',
|
4003
|
-
color: 'danger',
|
4004
|
-
icon: 'fa-light fa-trash',
|
4005
|
-
},
|
4006
|
-
];
|
4222
|
+
async handleContextMenuRootOnOpening(e) {
|
4223
|
+
//TODO: check async translate method in acorex
|
4224
|
+
const items = [...await this.vm.getFolderAddMenuItems(), ...await this.vm.getFolderActionMenuItems()];
|
4225
|
+
const mappedItems = items.map(m => ({
|
4226
|
+
...m,
|
4227
|
+
text: m.title,
|
4228
|
+
}));
|
4229
|
+
e.items.push(...mappedItems);
|
4007
4230
|
}
|
4008
4231
|
async handleContextMenuItemClick(e) {
|
4009
4232
|
const node = e.item.data;
|
@@ -4031,16 +4254,16 @@ class AXMDocumentExplorerComponent {
|
|
4031
4254
|
// Handle paste operation
|
4032
4255
|
break;
|
4033
4256
|
case 'move-to':
|
4034
|
-
this.
|
4257
|
+
this.moveTo(node);
|
4035
4258
|
break;
|
4036
4259
|
case 'copy-to':
|
4037
|
-
this.
|
4260
|
+
this.copyTo(node);
|
4038
4261
|
break;
|
4039
4262
|
case 'rename':
|
4040
4263
|
this.renameNode(node);
|
4041
4264
|
break;
|
4042
4265
|
case 'delete':
|
4043
|
-
this.
|
4266
|
+
this.vm.deleteNodes([node]);
|
4044
4267
|
break;
|
4045
4268
|
case 'refresh':
|
4046
4269
|
this.vm.refresh();
|
@@ -4050,6 +4273,7 @@ class AXMDocumentExplorerComponent {
|
|
4050
4273
|
break;
|
4051
4274
|
}
|
4052
4275
|
}
|
4276
|
+
//#endregion
|
4053
4277
|
async openGallery(node) {
|
4054
4278
|
await this.driveService.showFileViewerPopup(node);
|
4055
4279
|
}
|
@@ -4068,12 +4292,6 @@ class AXMDocumentExplorerComponent {
|
|
4068
4292
|
}
|
4069
4293
|
}
|
4070
4294
|
}
|
4071
|
-
async deleteNode(node) {
|
4072
|
-
if (node) {
|
4073
|
-
await this.driveService.showDeleteNodesDialog([node.id]);
|
4074
|
-
await this.vm.refresh();
|
4075
|
-
}
|
4076
|
-
}
|
4077
4295
|
async renameNode(node) {
|
4078
4296
|
if (node) {
|
4079
4297
|
const result = await this.driveService.rename(node);
|
@@ -4085,10 +4303,10 @@ class AXMDocumentExplorerComponent {
|
|
4085
4303
|
async uploadFile(node) {
|
4086
4304
|
const folderId = node?.id ?? this.vm.currentFolder()?.id;
|
4087
4305
|
if (folderId) {
|
4088
|
-
|
4089
|
-
|
4090
|
-
|
4091
|
-
|
4306
|
+
const res = await this.driveService.uploadFile(folderId);
|
4307
|
+
if (res) {
|
4308
|
+
await this.vm.refresh();
|
4309
|
+
}
|
4092
4310
|
}
|
4093
4311
|
}
|
4094
4312
|
async chooseFile() {
|
@@ -4106,50 +4324,28 @@ class AXMDocumentExplorerComponent {
|
|
4106
4324
|
}
|
4107
4325
|
}
|
4108
4326
|
}
|
4109
|
-
async
|
4327
|
+
async moveTo(node) {
|
4110
4328
|
if (node) {
|
4111
|
-
const result = await this.driveService.
|
4329
|
+
const result = await this.driveService.moveTo({ browseMode: 'folder', node: node });
|
4112
4330
|
if (result) {
|
4113
|
-
if (node.type === 'folder') {
|
4114
|
-
await this.driveService.updateFolder(node.id, { parentId: result });
|
4115
|
-
}
|
4116
|
-
else {
|
4117
|
-
await this.driveService.updateFile(node.id, { parentId: result });
|
4118
|
-
}
|
4119
4331
|
await this.vm.refresh();
|
4120
4332
|
}
|
4121
4333
|
}
|
4122
4334
|
}
|
4123
|
-
async
|
4335
|
+
async copyTo(node) {
|
4124
4336
|
if (node) {
|
4125
|
-
const result = await this.driveService.
|
4337
|
+
const result = await this.driveService.copyTo({ browseMode: 'folder', node: node });
|
4126
4338
|
if (result) {
|
4127
|
-
if (node.type === 'folder') {
|
4128
|
-
await this.driveService.createFolder({
|
4129
|
-
name: node.name,
|
4130
|
-
parentId: result,
|
4131
|
-
color: '#ffffff',
|
4132
|
-
});
|
4133
|
-
}
|
4134
|
-
else {
|
4135
|
-
await this.driveService.createFile({
|
4136
|
-
title: node.name,
|
4137
|
-
name: node.name,
|
4138
|
-
parentId: result,
|
4139
|
-
//TODO upload file to file storage
|
4140
|
-
fileId: '',
|
4141
|
-
});
|
4142
|
-
}
|
4143
4339
|
await this.vm.refresh();
|
4144
4340
|
}
|
4145
4341
|
}
|
4146
4342
|
}
|
4147
4343
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDocumentExplorerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
4148
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXMDocumentExplorerComponent, isStandalone: true, selector: "axm-document-explorer", viewQueries: [{ propertyName: "contextMenu", first: true, predicate: ["itemsContextMenu"], descendants: true, isSignal: true }, { propertyName: "rootContextMenu", first: true, predicate: ["rootContextMenu"], descendants: true, isSignal: true }], ngImport: i0, template: "<!-- Content -->\n<div class=\"content\">\n <!-- Empty State -->\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 <!-- Grid View -->\n @if (vm.isGridView()) {\n <!-- Folders Section -->\n @if (vm.folders().length > 0) {\n <div class=\"section\">\n <h3 class=\"section-title\">Folders</h3>\n <div class=\"items-grid\">\n @for (folder of vm.folders(); track folder.id) {\n <ng-container [ngTemplateOutlet]=\"gridFolderTemplate\" [ngTemplateOutletContext]=\"{ $implicit: folder }\">\n </ng-container>\n }\n </div>\n </div>\n }\n\n <!-- Files Section -->\n @if (vm.files().length > 0) {\n <div class=\"section\">\n <h3 class=\"section-title\">Files</h3>\n <div class=\"items-grid\">\n @for (file of vm.files(); track file.id) {\n <ng-container [ngTemplateOutlet]=\"gridFileTemplate\" [ngTemplateOutletContext]=\"{ $implicit: file }\">\n </ng-container>\n }\n </div>\n </div>\n }\n <!-- Grid View End -->\n }\n\n <!-- List View -->\n @if (vm.isListView()) {\n <div class=\"list-view\">\n <table class=\"items-table\">\n <thead>\n <tr>\n <th class=\"name-column\">Name</th>\n <th class=\"type-column\">Type</th>\n <th class=\"size-column\">Size</th>\n <th class=\"date-column\">Last Modified</th>\n </tr>\n </thead>\n <tbody>\n @for (folder of vm.folders(); track folder.id) {\n <ng-container [ngTemplateOutlet]=\"listFolderTemplate\" [ngTemplateOutletContext]=\"{ $implicit: folder }\">\n </ng-container>\n } @for (file of vm.files(); track file.id) {\n <ng-container [ngTemplateOutlet]=\"listFileTemplate\" [ngTemplateOutletContext]=\"{ $implicit: file }\">\n </ng-container>\n }\n </tbody>\n </table>\n </div>\n } }\n</div>\n\n<!-- Grid View Templates -->\n<ng-template #gridFolderTemplate let-folder>\n <div\n class=\"ax-group ax-cursor-pointer axp-explorer-item\"\n [axp-data]=\"folder\"\n (dblclick)=\"handleNavigateToFolder(folder.id)\"\n >\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-p-4 ax-rounded-lg ax-border ax-lighter-surface\">\n <div class=\"ax-text-yellow-400 fa-3x ax-mb-2\" style=\"--fa-animation-duration: 2s\">\n @if (vm.isLoadingFolder(folder.id)) {\n <ng-container [ngTemplateOutlet]=\"folderLoading\"> </ng-container>\n } @else {\n <ax-icon icon=\"fa-solid fa-folder-closed \"></ax-icon>\n }\n </div>\n <div class=\"ax-flex ax-justify-between ax-font-semibold ax-w-full\">\n <span class=\"ax-text-sm ax-truncate ax-text-start\">{{ folder.name }}</span>\n </div>\n <div class=\"ax-flex ax-justify-between ax-w-full ax-font-semibold ax-opacity-65\">\n <span class=\"ax-text-xs ax-text-neutral\">{{ folder.childrenCount }} items</span>\n <span class=\"ax-text-xs ax-text-neutral\">{{\n folder.lastModified | format : 'datetime' : { format: 'datetime' } | async\n }}</span>\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #gridFileTemplate let-file>\n @let fileInfo = vm.getFileInfo(file.name);\n <div class=\"ax-group ax-cursor-pointer axp-explorer-item\" [axp-data]=\"file\" (dblclick)=\"openFile(file)\">\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-p-4 ax-rounded-lg ax-border ax-lighter-surface\">\n <div class=\"ax-text-yellow-400 fa-3x ax-mb-2\" style=\"--fa-animation-duration: 2s\">\n <i class=\"fa-fw {{ fileInfo.icon }} fa-solid\"></i>\n </div>\n <div class=\"ax-flex ax-justify-between ax-font-semibold ax-w-full\">\n <span class=\"ax-text-sm ax-truncate ax-text-start\">{{ file.name }}</span>\n </div>\n <div class=\"ax-flex ax-justify-between ax-w-full ax-font-semibold ax-opacity-65\">\n <span class=\"ax-text-xs ax-text-neutral\">{{ file.size | format : 'filesize' | async }}</span>\n <span class=\"ax-text-xs ax-text-neutral\">{{\n file.lastModified | format : 'datetime' : { format: 'datetime' } | async\n }}</span>\n </div>\n </div>\n </div>\n</ng-template>\n\n<!-- List View Templates -->\n<ng-template #listFolderTemplate let-folder>\n <tr class=\"folder-row\" (dblclick)=\"handleNavigateToFolder(folder.id)\">\n <td class=\"name-column axp-explorer-item\" [axp-data]=\"folder\">\n <div class=\"item-name\">\n @if (vm.isLoadingFolder(folder.id)) {\n <ng-container [ngTemplateOutlet]=\"folderLoading\"> </ng-container>\n } @else {\n <i class=\"fas fa-folder-closed\"></i>\n }\n <span>{{ folder.name }}</span>\n </div>\n </td>\n <td class=\"type-column axp-explorer-item\" [axp-data]=\"folder\">Folder</td>\n <td class=\"size-column axp-explorer-item\" [axp-data]=\"folder\">{{ folder.size | format : 'filesize' | async }}</td>\n <td class=\"date-column axp-explorer-item\" [axp-data]=\"folder\">\n {{ folder.lastModified | format : 'datetime' : { format: 'datetime' } | async }}\n </td>\n </tr>\n</ng-template>\n\n<ng-template #listFileTemplate let-file>\n <tr class=\"file-row\">\n @let fileInfo = vm.getFileInfo(file.name);\n <td class=\"name-column axp-explorer-item\" [axp-data]=\"file\">\n <div class=\"item-name hover:ax-underline\">\n <i class=\"fa-fw {{ fileInfo.icon }} fa-solid\"></i>\n <span>{{ file.name }}</span>\n </div>\n </td>\n <td class=\"type-column axp-explorer-item\" [axp-data]=\"file\">{{ fileInfo.type }}</td>\n <td class=\"size-column axp-explorer-item\" [axp-data]=\"file\">{{ file.size | format : 'filesize' | async }}</td>\n <td class=\"date-column axp-explorer-item\" [axp-data]=\"file\">\n {{ file.lastModified | format : 'datetime' : { format: 'datetime' } | async }}\n </td>\n </tr>\n</ng-template>\n\n<ng-template #folderLoading>\n <i class=\"fa-light fa-spinner fa-spin-pulse ax-text-2xl\"></i>\n</ng-template>\n\n<!-- Context Menu-->\n<ax-context-menu\n #itemsContextMenu\n [target]=\"'.axp-explorer-item'\"\n [orientation]=\"'vertical'\"\n [closeOn]=\"'leave'\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n (onOpening)=\"handleContextMenuOnOpening($event)\"\n>\n</ax-context-menu>\n\n<ax-context-menu\n #rootContextMenu\n [target]=\"'axm-document-explorer'\"\n [orientation]=\"'vertical'\"\n [closeOn]=\"'leave'\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n (onOpening)=\"handleContextMenuRootOnOpening($event)\"\n>\n</ax-context-menu>\n", styles: [":host{display:flex;height:100%;flex:1 1 0%;flex-direction:column;gap:1rem}:host .content{flex:1 1 0%;-webkit-user-select:none;-moz-user-select:-moz-none;user-select:none;overflow-y:auto}:host .content .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem}:host .content .loading-state i{font-size:1.5rem;line-height:2rem}:host .content .section{margin-bottom:2rem}:host .content .section:last-child{margin-bottom:0}:host .content .section .section-title{margin-bottom:1rem;font-size:1.125rem;line-height:1.75rem;font-weight:500}:host .content .section .items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}:host .content .list-view .items-table{width:100%;border-collapse:collapse}:host .content .list-view .items-table th{border-bottom-width:1px;padding:.75rem;text-align:start;font-weight:500;background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host .content .list-view .items-table th.name-column{width:50%}:host .content .list-view .items-table th.type-column{width:20%}:host .content .list-view .items-table th.size-column{width:15%}:host .content .list-view .items-table th.date-column{width:15%}:host .content .list-view .items-table td{border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-surface),var(--tw-border-opacity, 1));padding:.75rem}:host .content .list-view .items-table td.name-column .item-name{display:flex;align-items:center;gap:.5rem}:host .content .list-view .items-table td.name-column .item-name i{font-size:1.25rem;line-height:1.75rem}:host .content .list-view .items-table tr{cursor:pointer;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:host .content .list-view .items-table tr:hover{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lighter-surface),var(--tw-bg-opacity, 1))}:host .content .list-view .items-table tr.folder-row td .item-name i{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.animation-duration-2s{--fa-animation-duration: 2s}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i5$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXFormatModule }, { kind: "pipe", type: i3.AXFormatPipe, name: "format" }, { kind: "ngmodule", type: AXDateTimeModule }, { kind: "ngmodule", type: AXMenuModule }, { kind: "component", type: i4.AXContextMenuComponent, selector: "ax-context-menu", inputs: ["orientation", "openOn", "closeOn", "items", "target"], outputs: ["onItemClick", "onOpening"] }, { kind: "directive", type: AXPElementDataDirective, selector: "[axp-data]", inputs: ["axp-data", "axp-data-path"] }] }); }
|
4344
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXMDocumentExplorerComponent, isStandalone: true, selector: "axm-document-explorer", inputs: { browseMode: { classPropertyName: "browseMode", publicName: "browseMode", isSignal: true, isRequired: false, transformFunction: null }, viewMode: { classPropertyName: "viewMode", publicName: "viewMode", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, showContextMenu: { classPropertyName: "showContextMenu", publicName: "showContextMenu", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "contextMenu", first: true, predicate: ["itemsContextMenu"], descendants: true, isSignal: true }, { propertyName: "rootContextMenu", first: true, predicate: ["rootContextMenu"], descendants: true, isSignal: true }], ngImport: i0, template: "<!-- 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", styles: ["axm-document-explorer{display:flex;height:max-content;min-height:100%;width:100%;flex-direction:row;gap:1rem;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))}axm-document-explorer>.view-container{display:flex;flex:1 1 0%;-webkit-user-select:none;-moz-user-select:-moz-none;user-select:none;flex-direction:column;gap:1rem}axm-document-explorer .animation-duration-2s{--fa-animation-duration: 2s}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXFormatModule }, { kind: "ngmodule", type: AXDateTimeModule }, { kind: "ngmodule", type: AXMenuModule }, { kind: "component", type: i3$1.AXContextMenuComponent, selector: "ax-context-menu", inputs: ["orientation", "openOn", "closeOn", "items", "target"], outputs: ["onItemClick", "onOpening"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
4149
4345
|
}
|
4150
4346
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDocumentExplorerComponent, decorators: [{
|
4151
4347
|
type: Component,
|
4152
|
-
args: [{ selector: 'axm-document-explorer', standalone: true, imports: [
|
4348
|
+
args: [{ selector: 'axm-document-explorer', standalone: true, encapsulation: ViewEncapsulation.None, imports: [
|
4153
4349
|
CommonModule,
|
4154
4350
|
RouterModule,
|
4155
4351
|
AXDecoratorModule,
|
@@ -4157,10 +4353,117 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
4157
4353
|
AXFormatModule,
|
4158
4354
|
AXDateTimeModule,
|
4159
4355
|
AXMenuModule,
|
4160
|
-
|
4161
|
-
|
4356
|
+
], template: "<!-- 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", styles: ["axm-document-explorer{display:flex;height:max-content;min-height:100%;width:100%;flex-direction:row;gap:1rem;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))}axm-document-explorer>.view-container{display:flex;flex:1 1 0%;-webkit-user-select:none;-moz-user-select:-moz-none;user-select:none;flex-direction:column;gap:1rem}axm-document-explorer .animation-duration-2s{--fa-animation-duration: 2s}\n"] }]
|
4357
|
+
}] });
|
4358
|
+
|
4359
|
+
class AXMChooseDocumentTypeComponent extends AXBasePageComponent {
|
4360
|
+
constructor() {
|
4361
|
+
super(...arguments);
|
4362
|
+
this.documentTypeService = inject(AXMDocumentTypeService);
|
4363
|
+
this.fileTypeService = inject(AXPFileTypeProviderService);
|
4364
|
+
this.documentTypeSelected = signal([]);
|
4365
|
+
this.context = signal({});
|
4366
|
+
this.documentTypesSource = new AXDataSource({
|
4367
|
+
load: async (_) => {
|
4368
|
+
return await this.documentTypeService.query();
|
4369
|
+
},
|
4370
|
+
pageSize: 10,
|
4371
|
+
key: 'id',
|
4372
|
+
});
|
4373
|
+
this.uploadNode = signal({
|
4374
|
+
name: 'upload',
|
4375
|
+
path: 'upload',
|
4376
|
+
type: 'file',
|
4377
|
+
options: {
|
4378
|
+
accept: '.pdf',
|
4379
|
+
multiple: false,
|
4380
|
+
},
|
4381
|
+
});
|
4382
|
+
}
|
4383
|
+
async handleChangeDocumentType(event) {
|
4384
|
+
const item = event.component.selectedItems[0];
|
4385
|
+
this.uploadNode.update((old) => {
|
4386
|
+
return {
|
4387
|
+
...old,
|
4388
|
+
options: {
|
4389
|
+
multiple: item.isMultiple,
|
4390
|
+
accept: item.name == 'any' ? '' : item.type.selectedItems.map((i) => `.${i.name.split('.')[1]}`).join(','),
|
4391
|
+
},
|
4392
|
+
};
|
4393
|
+
});
|
4394
|
+
for (const i of item.meta) {
|
4395
|
+
console.log(JSON.parse(i.interface)['children'][0]);
|
4396
|
+
if (!get(i, '__node__')) {
|
4397
|
+
set$1(i, '__node__', typeof i.interface == 'function' ? await i.interface() :
|
4398
|
+
JSON.parse(i.interface)['children'][0]['children'][0]);
|
4399
|
+
}
|
4400
|
+
}
|
4401
|
+
this.documentTypeSelected.set([item]);
|
4402
|
+
}
|
4403
|
+
handleContextChanged(e) {
|
4404
|
+
this.context.set(e.data);
|
4405
|
+
}
|
4406
|
+
handleCancel() {
|
4407
|
+
this.close();
|
4408
|
+
}
|
4409
|
+
handlesubmit() {
|
4410
|
+
this.close({
|
4411
|
+
documentType: this.documentTypeSelected(),
|
4412
|
+
context: this.context(),
|
4413
|
+
});
|
4414
|
+
}
|
4415
|
+
getNode(meta) {
|
4416
|
+
console.log(meta);
|
4417
|
+
return get(meta, '__node__');
|
4418
|
+
}
|
4419
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMChooseDocumentTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
4420
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXMChooseDocumentTypeComponent, isStandalone: true, selector: "axm-choose-document-type", usesInheritance: true, ngImport: i0, template: "<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\n <ng-container axp-widget-renderer [node]=\"uploadNode()\" mode=\"edit\"></ng-container>\n\n </ax-form>\n </axp-widgets-container>\n }\n </div>\n</ax-content>\n<ax-footer>\n <ax-suffix>\n <ax-button text=\"Cancel\" look=\"blank\" (onClick)=\"handleCancel()\"> </ax-button>\n <ax-button text=\"Next\" (onClick)=\"handlesubmit()\"> </ax-button>\n </ax-suffix>\n</ax-footer>\n", dependencies: [{ 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: AXDecoratorModule }, { 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: AXFormModule }, { kind: "component", type: i7.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "component", type: i7.AXFormComponent, selector: "ax-form", inputs: ["labelMode", "look", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i4.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "component", type: i1.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i6.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i6.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
4421
|
+
}
|
4422
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMChooseDocumentTypeComponent, decorators: [{
|
4423
|
+
type: Component,
|
4424
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'axm-choose-document-type', imports: [AXButtonModule, AXDecoratorModule, AXFormModule, AXLabelModule, AXSelectBoxModule, AXPLayoutBuilderModule], template: "<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\n <ng-container axp-widget-renderer [node]=\"uploadNode()\" mode=\"edit\"></ng-container>\n\n </ax-form>\n </axp-widgets-container>\n }\n </div>\n</ax-content>\n<ax-footer>\n <ax-suffix>\n <ax-button text=\"Cancel\" look=\"blank\" (onClick)=\"handleCancel()\"> </ax-button>\n <ax-button text=\"Next\" (onClick)=\"handlesubmit()\"> </ax-button>\n </ax-suffix>\n</ax-footer>\n" }]
|
4425
|
+
}] });
|
4426
|
+
|
4427
|
+
class AXMFileViewerPopupComponent extends AXBasePageComponent {
|
4428
|
+
onClose() {
|
4429
|
+
this.close();
|
4430
|
+
}
|
4431
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMFileViewerPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
4432
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXMFileViewerPopupComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div>\n <ax-content>\n <ax-media-viewer-container #c [dataArray]=\"nodes\">\n <ax-header>\n <ax-file-info></ax-file-info>\n </ax-header>\n\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\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\n <ax-footer>\n <ax-suffix>\n <ax-button [text]=\"'close'\" (click)=\"onClose()\" />\n </ax-suffix>\n </ax-footer>\n</div>\n", dependencies: [{ kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", 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: 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: AXMediaViewerModule }, { kind: "component", type: i3$2.AXMediaViewerContainerComponent, selector: "ax-media-viewer-container", inputs: ["dataArray", "thumbnail"] }, { kind: "component", type: i3$2.AXFileInfoComponent, selector: "ax-file-info" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
4433
|
+
}
|
4434
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMFileViewerPopupComponent, decorators: [{
|
4435
|
+
type: Component,
|
4436
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXDecoratorModule, AXButtonModule, AXMediaViewerModule], template: "<div>\n <ax-content>\n <ax-media-viewer-container #c [dataArray]=\"nodes\">\n <ax-header>\n <ax-file-info></ax-file-info>\n </ax-header>\n\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\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\n <ax-footer>\n <ax-suffix>\n <ax-button [text]=\"'close'\" (click)=\"onClose()\" />\n </ax-suffix>\n </ax-footer>\n</div>\n" }]
|
4162
4437
|
}] });
|
4163
4438
|
|
4439
|
+
var fileViewerPopup_component = /*#__PURE__*/Object.freeze({
|
4440
|
+
__proto__: null,
|
4441
|
+
AXMFileViewerPopupComponent: AXMFileViewerPopupComponent
|
4442
|
+
});
|
4443
|
+
|
4444
|
+
class AXMFolderPathBreadcrumbsComponent {
|
4445
|
+
constructor() {
|
4446
|
+
this.vm = inject(AXPDocumentExplorerViewModel);
|
4447
|
+
this.layout = inject(AXPLayoutThemeService);
|
4448
|
+
}
|
4449
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMFolderPathBreadcrumbsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
4450
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXMFolderPathBreadcrumbsComponent, isStandalone: true, selector: "axm-folder-path-breadcrumbs", ngImport: i0, template: "<!-- 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", styles: [":host{display:flex;width:100%;align-items:center}:host .__nav{display:flex;flex-direction:row;align-items:center;gap:.25rem;border-inline-end-width:1px;padding-inline-start:.25rem;padding-inline-end:.5rem}:host .__breadcrumb{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;padding-inline-start:.5rem;padding-inline-end:.25rem}:host .__breadcrumb .ax-state-disabled button,:host .__breadcrumb .ax-state-loading button{cursor:default!important}\n"], dependencies: [{ 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: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }] }); }
|
4451
|
+
}
|
4452
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMFolderPathBreadcrumbsComponent, decorators: [{
|
4453
|
+
type: Component,
|
4454
|
+
args: [{ selector: 'axm-folder-path-breadcrumbs', standalone: true, imports: [
|
4455
|
+
AXButtonModule,
|
4456
|
+
AXDecoratorModule,
|
4457
|
+
], template: "<!-- 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", styles: [":host{display:flex;width:100%;align-items:center}:host .__nav{display:flex;flex-direction:row;align-items:center;gap:.25rem;border-inline-end-width:1px;padding-inline-start:.25rem;padding-inline-end:.5rem}:host .__breadcrumb{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;padding-inline-start:.5rem;padding-inline-end:.25rem}:host .__breadcrumb .ax-state-disabled button,:host .__breadcrumb .ax-state-loading button{cursor:default!important}\n"] }]
|
4458
|
+
}] });
|
4459
|
+
|
4460
|
+
var index = /*#__PURE__*/Object.freeze({
|
4461
|
+
__proto__: null,
|
4462
|
+
AXMChooseDocumentTypeComponent: AXMChooseDocumentTypeComponent,
|
4463
|
+
AXMFileViewerPopupComponent: AXMFileViewerPopupComponent,
|
4464
|
+
AXMFolderPathBreadcrumbsComponent: AXMFolderPathBreadcrumbsComponent
|
4465
|
+
});
|
4466
|
+
|
4164
4467
|
class AXMDocumentAttachmentWidgetEditComponent extends AXPWidgetComponent {
|
4165
4468
|
constructor() {
|
4166
4469
|
super(...arguments);
|
@@ -4178,7 +4481,7 @@ class AXMDocumentAttachmentWidgetEditComponent extends AXPWidgetComponent {
|
|
4178
4481
|
#navigateEffect;
|
4179
4482
|
ngOnInit() {
|
4180
4483
|
super.ngOnInit();
|
4181
|
-
this.vm.initialize();
|
4484
|
+
this.vm.initialize({ browseMode: 'file' });
|
4182
4485
|
this.loadDrive();
|
4183
4486
|
}
|
4184
4487
|
async loadDrive(folderId) {
|
@@ -4196,7 +4499,7 @@ class AXMDocumentAttachmentWidgetEditComponent extends AXPWidgetComponent {
|
|
4196
4499
|
this.vm.navigateToFolder(folderId);
|
4197
4500
|
}
|
4198
4501
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDocumentAttachmentWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
4199
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.3", type: AXMDocumentAttachmentWidgetEditComponent, isStandalone: true, selector: "axm-document-attachment-edit-widget", providers: [AXPDocumentExplorerViewModel], viewQueries: [{ propertyName: "documentExplorer", first: true, predicate: AXMDocumentExplorerComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<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\">\n <ax-button\n (onClick)=\"handleNavigateToFolder(vm.currentFolder()?.parentId!)\"\n [ngClass]=\"{ 'ax-invisible': !vm.currentFolder()?.parentId }\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-arrow-left\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <!-- Primary Actions -->\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)=\"documentExplorer()?.chooseFile()\"\n [text]=\"(t('drive-types.platform-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-list>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n <axm-document-explorer></axm-document-explorer>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "component", type: AXMDocumentExplorerComponent, selector: "axm-document-explorer" }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type:
|
4502
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.3", type: AXMDocumentAttachmentWidgetEditComponent, isStandalone: true, selector: "axm-document-attachment-edit-widget", providers: [AXPDocumentExplorerViewModel], viewQueries: [{ propertyName: "documentExplorer", first: true, predicate: AXMDocumentExplorerComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<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\">\n <ax-button\n (onClick)=\"handleNavigateToFolder(vm.currentFolder()?.parentId!)\"\n [ngClass]=\"{ 'ax-invisible': !vm.currentFolder()?.parentId }\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-arrow-left\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <!-- Primary Actions -->\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)=\"documentExplorer()?.chooseFile()\"\n [text]=\"(t('drive-types.platform-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-list>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n <axm-document-explorer></axm-document-explorer>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "component", type: AXMDocumentExplorerComponent, selector: "axm-document-explorer", inputs: ["browseMode", "viewMode", "selectionMode", "showContextMenu"] }, { kind: "component", type: 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: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i2$2.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", 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: AXTranslationModule }, { kind: "directive", type: i3$3.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXButtonModule }, { 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 }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
4200
4503
|
}
|
4201
4504
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDocumentAttachmentWidgetEditComponent, decorators: [{
|
4202
4505
|
type: Component,
|
@@ -4307,6 +4610,85 @@ const AXMDocumentAttachmentWidget = {
|
|
4307
4610
|
},
|
4308
4611
|
};
|
4309
4612
|
|
4613
|
+
class AXMCheckDocumentTypeWorkflowAction extends AXPWorkflowAction {
|
4614
|
+
async execute(context) {
|
4615
|
+
const documentType = context.getVariable('documentType');
|
4616
|
+
if (documentType) {
|
4617
|
+
context.setOutput('need-choose-document-type', false);
|
4618
|
+
}
|
4619
|
+
else {
|
4620
|
+
context.setOutput('need-choose-document-type', true);
|
4621
|
+
}
|
4622
|
+
}
|
4623
|
+
}
|
4624
|
+
class AXMChooseDocumentTypeWorkflowAction extends AXPWorkflowAction {
|
4625
|
+
constructor() {
|
4626
|
+
super(...arguments);
|
4627
|
+
this.popupService = inject(AXPopupService);
|
4628
|
+
}
|
4629
|
+
async execute(context) {
|
4630
|
+
const comp = (await Promise.resolve().then(function () { return index; })).AXMChooseDocumentTypeComponent;
|
4631
|
+
const result = await this.popupService.open(comp);
|
4632
|
+
if (result.data != null && result.data.documentTypeId != null) {
|
4633
|
+
context.setVariable('documentTypeId', result.data.documentTypeId);
|
4634
|
+
context.setOutput('isCanceled', false);
|
4635
|
+
}
|
4636
|
+
else {
|
4637
|
+
context.setOutput('isCanceled', true);
|
4638
|
+
}
|
4639
|
+
}
|
4640
|
+
}
|
4641
|
+
class AXMChooseFileWorkflowAction extends AXPWorkflowAction {
|
4642
|
+
constructor() {
|
4643
|
+
super(...arguments);
|
4644
|
+
this.documentTypeService = inject(AXMDocumentTypeService);
|
4645
|
+
this.uploadService = inject(AXUploaderService);
|
4646
|
+
}
|
4647
|
+
async execute(context) {
|
4648
|
+
var doc = context.getVariable('documentType');
|
4649
|
+
if (!doc) {
|
4650
|
+
const docId = context.getVariable('documentTypeId');
|
4651
|
+
doc = await this.documentTypeService.getOne(docId);
|
4652
|
+
}
|
4653
|
+
this.uploadService.browse({
|
4654
|
+
//accept: doc.type,
|
4655
|
+
multiple: doc.isMultiple,
|
4656
|
+
});
|
4657
|
+
}
|
4658
|
+
}
|
4659
|
+
const AXMUploadWorkflow = {
|
4660
|
+
startStepId: 'check-document-type',
|
4661
|
+
steps: {
|
4662
|
+
'check-document-type': {
|
4663
|
+
action: 'AXMCheckDocumentTypeWorkflowAction',
|
4664
|
+
nextSteps: [
|
4665
|
+
{
|
4666
|
+
conditions: [{ type: 'SINGLE', expression: 'context.getOutput("need-choose-document-type") == true' }],
|
4667
|
+
nextStepId: 'choose-document-type',
|
4668
|
+
},
|
4669
|
+
],
|
4670
|
+
},
|
4671
|
+
'choose-document-type': {
|
4672
|
+
action: 'AXMChooseDocumentTypeWorkflowAction',
|
4673
|
+
nextSteps: [
|
4674
|
+
{
|
4675
|
+
conditions: [{ type: 'SINGLE', expression: 'context.getOutput("isCanceled") == false' }],
|
4676
|
+
nextStepId: 'file-browser',
|
4677
|
+
},
|
4678
|
+
],
|
4679
|
+
},
|
4680
|
+
'file-browser': {
|
4681
|
+
action: 'AXMChooseFileWorkflowAction',
|
4682
|
+
nextSteps: [
|
4683
|
+
{
|
4684
|
+
conditions: [],
|
4685
|
+
nextStepId: 'dispatch-event',
|
4686
|
+
},
|
4687
|
+
],
|
4688
|
+
},
|
4689
|
+
},
|
4690
|
+
};
|
4691
|
+
|
4310
4692
|
function routesFacory() {
|
4311
4693
|
const config = inject(AXP_ENTITY_CONFIG_TOKEN);
|
4312
4694
|
const routes = [
|
@@ -4320,11 +4702,11 @@ function routesFacory() {
|
|
4320
4702
|
children: [
|
4321
4703
|
{
|
4322
4704
|
path: '',
|
4323
|
-
loadComponent: () => import('./acorex-modules-document-management-drive.component-
|
4705
|
+
loadComponent: () => import('./acorex-modules-document-management-drive.component-B3BCzdVv.mjs').then((c) => c.AXMDocumentDriveComponent),
|
4324
4706
|
},
|
4325
4707
|
{
|
4326
4708
|
path: ':id',
|
4327
|
-
loadComponent: () => import('./acorex-modules-document-management-drive.component-
|
4709
|
+
loadComponent: () => import('./acorex-modules-document-management-drive.component-B3BCzdVv.mjs').then((c) => c.AXMDocumentDriveComponent),
|
4328
4710
|
},
|
4329
4711
|
],
|
4330
4712
|
},
|
@@ -4337,7 +4719,7 @@ class AXMDocumentManagementModule {
|
|
4337
4719
|
AXMDocumentManagementDocumentTypeMetaValueEntityModule,
|
4338
4720
|
AXMDocumentManagementDocumentTypeMetaDefinitionEntityModule,
|
4339
4721
|
AXMDocumentManagementDocumentTypeEntityModule,
|
4340
|
-
AXMDocumentManagementDocumentEntityModule, i6.AXPLayoutBuilderModule, AXMFileTypeModule, i3$2.AXMediaViewerModule] }); }
|
4722
|
+
AXMDocumentManagementDocumentEntityModule, i6.AXPLayoutBuilderModule, AXMFileTypeModule, i3$2.AXMediaViewerModule, i3$4.AXPWorkflowModule] }); }
|
4341
4723
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDocumentManagementModule, providers: [
|
4342
4724
|
{
|
4343
4725
|
provide: AXMFolderService,
|
@@ -4382,7 +4764,17 @@ class AXMDocumentManagementModule {
|
|
4382
4764
|
widgets: [AXmFileTypeExtensionWidget, AXMDocumentAttachmentWidget],
|
4383
4765
|
}),
|
4384
4766
|
AXMFileTypeModule,
|
4385
|
-
AXMediaViewerModule.forRoot()
|
4767
|
+
AXMediaViewerModule.forRoot(),
|
4768
|
+
AXPWorkflowModule.forChild({
|
4769
|
+
actions: {
|
4770
|
+
AXMCheckDocumentTypeWorkflowAction,
|
4771
|
+
AXMChooseDocumentTypeWorkflowAction,
|
4772
|
+
AXMChooseFileWorkflowAction,
|
4773
|
+
},
|
4774
|
+
workflows: {
|
4775
|
+
'upload-document': AXMUploadWorkflow,
|
4776
|
+
},
|
4777
|
+
})] }); }
|
4386
4778
|
}
|
4387
4779
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDocumentManagementModule, decorators: [{
|
4388
4780
|
type: NgModule,
|
@@ -4398,6 +4790,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
4398
4790
|
}),
|
4399
4791
|
AXMFileTypeModule,
|
4400
4792
|
AXMediaViewerModule.forRoot(),
|
4793
|
+
AXPWorkflowModule.forChild({
|
4794
|
+
actions: {
|
4795
|
+
AXMCheckDocumentTypeWorkflowAction,
|
4796
|
+
AXMChooseDocumentTypeWorkflowAction,
|
4797
|
+
AXMChooseFileWorkflowAction,
|
4798
|
+
},
|
4799
|
+
workflows: {
|
4800
|
+
'upload-document': AXMUploadWorkflow,
|
4801
|
+
},
|
4802
|
+
}),
|
4401
4803
|
],
|
4402
4804
|
exports: [],
|
4403
4805
|
providers: [
|
@@ -4443,5 +4845,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
4443
4845
|
* Generated bundle index. Do not edit.
|
4444
4846
|
*/
|
4445
4847
|
|
4446
|
-
export {
|
4447
|
-
//# sourceMappingURL=acorex-modules-document-management-acorex-modules-document-management-
|
4848
|
+
export { AXPDocumentExplorerViewModel as A, AXMFolderService as B, AXMFolderServiceImpl as C, AXMEntityProvider as D, AXMMenuProvider as E, AXMSearchCommandProvider as F, AXMSettingProvider as G, RootConfig as R, AXMDocumentManagerService as a, AXMDocumentExplorerComponent as b, AXMDriveScope as c, AXMFolderPathBreadcrumbsComponent as d, AXMDocumentManagementModule as e, documentFactory as f, AXMDocumentManagementDocumentEntityModule as g, AXMDocumentService as h, AXMDocumentServiceImpl as i, documentTypeFactory as j, AXMDocumentManagementDocumentTypeEntityModule as k, AXMDocumentTypeService as l, AXMDocumentManagementDocumentTypeEntityServiceImpl as m, documentTypeMetaDefinitionfactory as n, AXMDocumentManagementDocumentTypeMetaDefinitionEntityModule as o, AXMDocumentManagementDocumentTypeMetaDefinitionEntityService as p, AXMDocumentManagementDocumentTypeMetaDefinitionEntityServiceImpl as q, documentTypeMetaValueFactory as r, AXMDocumentManagementDocumentTypeMetaValueEntityModule as s, AXMDocumentManagementDocumentTypeMetaValueEntityService as t, AXMDocumentManagementDocumentTypeMetaValueEntityServiceImpl as u, documentTypeStatusDefinitionFactory as v, AXMDocumentManagementDocumentTypeStatusDefinitionEntityModule as w, AXMDocumentManagementDocumentTypeStatusDefinitionEntityService as x, AXMDocumentManagementDocumentTypeStatusDefinitionEntityServiceImpl as y, folderFactory as z };
|
4849
|
+
//# sourceMappingURL=acorex-modules-document-management-acorex-modules-document-management-_BOVaDOq.mjs.map
|