@acorex/modules 19.2.17 → 19.2.19
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 +139 -15
- package/document-management/lib/features/document-explorer/document-explorer.viewmodel.d.ts +65 -6
- package/document-management/lib/features/document-explorer/views/detail-panel/detail-panel.component.d.ts +118 -0
- package/document-management/lib/features/document-explorer/views/details/details-view.component.d.ts +118 -0
- package/document-management/lib/features/document-explorer/views/large-icons/large-icons-view.component.d.ts +118 -0
- package/document-management/lib/features/document-explorer/views/large-tiles/large-tiles-view.component.d.ts +118 -0
- package/document-management/lib/features/document-explorer/views/list/list-view.component.d.ts +118 -0
- package/document-management/lib/features/document-explorer/views/small-icons/small-icons-view.component.d.ts +118 -0
- package/document-management/lib/features/document-explorer/views/small-tiles/small-tiles-view.component.d.ts +118 -0
- package/document-management/lib/features/drive/drive.component.d.ts +111 -90
- package/document-management/lib/features/drive-choose/drive-choose.component.d.ts +71 -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 +179 -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 +63 -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-B3u5feXf.mjs +507 -0
- package/fesm2022/acorex-modules-common-index-B3u5feXf.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-CpoLrul7.mjs} +803 -419
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-CpoLrul7.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-DqoWmtm7.mjs → acorex-modules-document-management-create-folder-dialog.component-Cp26sAs9.mjs} +7 -6
- package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-Cp26sAs9.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-details-view.component-CZyOdjEl.mjs +24 -0
- package/fesm2022/acorex-modules-document-management-details-view.component-CZyOdjEl.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-drive-choose.component-HSZ-b7-z.mjs +163 -0
- package/fesm2022/acorex-modules-document-management-drive-choose.component-HSZ-b7-z.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-drive.component-CZR-optD.mjs +246 -0
- package/fesm2022/acorex-modules-document-management-drive.component-CZR-optD.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-large-icons-view.component-C5pB5bc2.mjs +20 -0
- package/fesm2022/acorex-modules-document-management-large-icons-view.component-C5pB5bc2.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-large-tiles-view.component-D9PFgzMQ.mjs +24 -0
- package/fesm2022/acorex-modules-document-management-large-tiles-view.component-D9PFgzMQ.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-list-view.component-DjULM8Me.mjs +20 -0
- package/fesm2022/acorex-modules-document-management-list-view.component-DjULM8Me.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-BoODbM0H.mjs → acorex-modules-document-management-rename-node-dialog.component-D3Cg9_5d.mjs} +6 -6
- package/fesm2022/acorex-modules-document-management-rename-node-dialog.component-D3Cg9_5d.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-small-icons-view.component-4M8c_1Dt.mjs +20 -0
- package/fesm2022/acorex-modules-document-management-small-icons-view.component-4M8c_1Dt.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-small-tiles-view.component-CXPXrH4g.mjs +24 -0
- package/fesm2022/acorex-modules-document-management-small-tiles-view.component-CXPXrH4g.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-D1tWlJqL.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-aMPR3Oyw.mjs.map → acorex-modules-organization-management-org-chart-configuration.page-D1tWlJqL.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-CAgSSVON.mjs → acorex-modules-organization-management-org-chart.page-bzbCuF-w.mjs} +3 -3
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-CAgSSVON.mjs.map → acorex-modules-organization-management-org-chart.page-bzbCuF-w.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 +367 -14
- 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-Cp26sAs9.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-HSZ-b7-z.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-HSZ-b7-z.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-D3Cg9_5d.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-HSZ-b7-z.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), 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,99 @@ 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
|
+
getFolderAddMenuItems() {
|
3983
|
+
const scope = RootConfig.config.i18n;
|
3984
|
+
return [
|
3985
|
+
{
|
3986
|
+
name: 'new-folder',
|
3987
|
+
title: `t("actions.create-folder",{scope:"${scope}"})`,
|
3988
|
+
icon: 'fa-light fa-folder-plus',
|
3989
|
+
break: true,
|
3990
|
+
},
|
3991
|
+
{
|
3992
|
+
name: 'upload-file',
|
3993
|
+
title: `t("actions.upload-file",{scope:"${scope}"})`,
|
3994
|
+
icon: 'fa-light fa-file-arrow-up',
|
3995
|
+
},
|
3996
|
+
];
|
3997
|
+
},
|
3998
|
+
getFolderActionMenuItems() {
|
3999
|
+
return [
|
4000
|
+
{
|
4001
|
+
name: 'refresh',
|
4002
|
+
title: 'Refresh',
|
4003
|
+
icon: 'fa-light fa-rotate-right',
|
4004
|
+
break: true,
|
4005
|
+
},
|
4006
|
+
{
|
4007
|
+
name: 'delete',
|
4008
|
+
title: 'Delete',
|
4009
|
+
color: 'danger',
|
4010
|
+
icon: 'fa-light fa-trash',
|
4011
|
+
},
|
4012
|
+
];
|
4013
|
+
}
|
4014
|
+
//#endregion
|
3817
4015
|
})));
|
3818
4016
|
|
3819
4017
|
class AXMDocumentExplorerComponent {
|
@@ -3823,22 +4021,51 @@ class AXMDocumentExplorerComponent {
|
|
3823
4021
|
this.rootContextMenu = viewChild('rootContextMenu');
|
3824
4022
|
this.driveService = inject(AXMDocumentManagerService);
|
3825
4023
|
this.translateService = inject(AXTranslationService);
|
4024
|
+
this.layout = inject(AXPLayoutThemeService);
|
4025
|
+
this.browseMode = input('file');
|
4026
|
+
this.viewMode = input();
|
4027
|
+
this.selectionMode = input('none');
|
4028
|
+
this.showContextMenu = input(true);
|
4029
|
+
this.view = signal(null);
|
4030
|
+
this.viewMap = {
|
4031
|
+
list: async () => (await import('./acorex-modules-document-management-list-view.component-DjULM8Me.mjs')).AXMDocumentExplorerListViewComponent,
|
4032
|
+
'small-tiles': async () => (await import('./acorex-modules-document-management-small-tiles-view.component-CXPXrH4g.mjs')).AXMDocumentExplorerSmallTilesViewComponent,
|
4033
|
+
'large-tiles': async () => (await import('./acorex-modules-document-management-large-tiles-view.component-D9PFgzMQ.mjs')).AXMDocumentExplorerLargeTilesViewComponent,
|
4034
|
+
details: async () => (await import('./acorex-modules-document-management-details-view.component-CZyOdjEl.mjs')).AXMDocumentExplorerDetailsViewComponent,
|
4035
|
+
'large-icons': async () => (await import('./acorex-modules-document-management-large-icons-view.component-C5pB5bc2.mjs')).AXMDocumentExplorerLargeIconsViewComponent,
|
4036
|
+
'small-icons': async () => (await import('./acorex-modules-document-management-small-icons-view.component-4M8c_1Dt.mjs')).AXMDocumentExplorerSmallIconsViewComponent,
|
4037
|
+
};
|
3826
4038
|
this.#effect = effect(() => {
|
3827
4039
|
const navigatingFolderId = this.vm.loadingFolderId();
|
3828
4040
|
if (!navigatingFolderId) {
|
3829
4041
|
setTimeout(() => {
|
3830
4042
|
this.contextMenu()?.refresh();
|
3831
4043
|
this.rootContextMenu()?.refresh();
|
3832
|
-
},
|
4044
|
+
}, 300);
|
4045
|
+
}
|
4046
|
+
});
|
4047
|
+
this.#effect2 = effect(() => {
|
4048
|
+
if (this.viewMode()) {
|
4049
|
+
this.vm.setViewMode(this.viewMode());
|
3833
4050
|
}
|
4051
|
+
if (this.selectionMode()) {
|
4052
|
+
this.vm.setSelectionMode(this.selectionMode());
|
4053
|
+
}
|
4054
|
+
});
|
4055
|
+
this.#effect3 = effect(async () => {
|
4056
|
+
const func = get$1(this.viewMap, this.vm.viewMode()) ?? this.viewMap['large-tiles'];
|
4057
|
+
const comp = await func();
|
4058
|
+
this.view.set(comp);
|
3834
4059
|
});
|
3835
4060
|
}
|
3836
4061
|
#effect;
|
4062
|
+
#effect2;
|
4063
|
+
#effect3;
|
3837
4064
|
handleNavigateToFolder(folderId) {
|
3838
4065
|
this.vm.navigateToFolder(folderId);
|
3839
4066
|
console.log(this.vm.currentFolder());
|
3840
4067
|
}
|
3841
|
-
|
4068
|
+
//#region Menu and Context Menu
|
3842
4069
|
async handleContextMenuOnOpening(e) {
|
3843
4070
|
const node = get$1(e.targetElement, '__data__');
|
3844
4071
|
if (!node) {
|
@@ -3973,37 +4200,15 @@ class AXMDocumentExplorerComponent {
|
|
3973
4200
|
},
|
3974
4201
|
];
|
3975
4202
|
if (node.type == 'file') {
|
3976
|
-
e.items.splice(
|
4203
|
+
e.items.splice(1, 0, openWith);
|
3977
4204
|
}
|
3978
4205
|
}
|
3979
4206
|
handleContextMenuRootOnOpening(e) {
|
3980
4207
|
//TODO: check async translate method in acorex
|
3981
|
-
|
3982
|
-
|
3983
|
-
{
|
3984
|
-
|
3985
|
-
text: this.translateService.translateSync('actions.create-folder', { scope }),
|
3986
|
-
icon: 'fa-light fa-folder-plus',
|
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
|
-
];
|
4208
|
+
e.items = [...this.vm.getFolderAddMenuItems(), ...this.vm.getFolderActionMenuItems()].map(m => ({
|
4209
|
+
...m,
|
4210
|
+
text: `t("${m.name}")`,
|
4211
|
+
}));
|
4007
4212
|
}
|
4008
4213
|
async handleContextMenuItemClick(e) {
|
4009
4214
|
const node = e.item.data;
|
@@ -4031,16 +4236,16 @@ class AXMDocumentExplorerComponent {
|
|
4031
4236
|
// Handle paste operation
|
4032
4237
|
break;
|
4033
4238
|
case 'move-to':
|
4034
|
-
this.
|
4239
|
+
this.moveTo(node);
|
4035
4240
|
break;
|
4036
4241
|
case 'copy-to':
|
4037
|
-
this.
|
4242
|
+
this.copyTo(node);
|
4038
4243
|
break;
|
4039
4244
|
case 'rename':
|
4040
4245
|
this.renameNode(node);
|
4041
4246
|
break;
|
4042
4247
|
case 'delete':
|
4043
|
-
this.
|
4248
|
+
this.vm.deleteNodes([node]);
|
4044
4249
|
break;
|
4045
4250
|
case 'refresh':
|
4046
4251
|
this.vm.refresh();
|
@@ -4050,6 +4255,7 @@ class AXMDocumentExplorerComponent {
|
|
4050
4255
|
break;
|
4051
4256
|
}
|
4052
4257
|
}
|
4258
|
+
//#endregion
|
4053
4259
|
async openGallery(node) {
|
4054
4260
|
await this.driveService.showFileViewerPopup(node);
|
4055
4261
|
}
|
@@ -4068,12 +4274,6 @@ class AXMDocumentExplorerComponent {
|
|
4068
4274
|
}
|
4069
4275
|
}
|
4070
4276
|
}
|
4071
|
-
async deleteNode(node) {
|
4072
|
-
if (node) {
|
4073
|
-
await this.driveService.showDeleteNodesDialog([node.id]);
|
4074
|
-
await this.vm.refresh();
|
4075
|
-
}
|
4076
|
-
}
|
4077
4277
|
async renameNode(node) {
|
4078
4278
|
if (node) {
|
4079
4279
|
const result = await this.driveService.rename(node);
|
@@ -4085,10 +4285,10 @@ class AXMDocumentExplorerComponent {
|
|
4085
4285
|
async uploadFile(node) {
|
4086
4286
|
const folderId = node?.id ?? this.vm.currentFolder()?.id;
|
4087
4287
|
if (folderId) {
|
4088
|
-
|
4089
|
-
|
4090
|
-
|
4091
|
-
|
4288
|
+
const res = await this.driveService.uploadFile(folderId);
|
4289
|
+
if (res) {
|
4290
|
+
await this.vm.refresh();
|
4291
|
+
}
|
4092
4292
|
}
|
4093
4293
|
}
|
4094
4294
|
async chooseFile() {
|
@@ -4106,50 +4306,28 @@ class AXMDocumentExplorerComponent {
|
|
4106
4306
|
}
|
4107
4307
|
}
|
4108
4308
|
}
|
4109
|
-
async
|
4309
|
+
async moveTo(node) {
|
4110
4310
|
if (node) {
|
4111
|
-
const result = await this.driveService.
|
4311
|
+
const result = await this.driveService.moveTo({ browseMode: 'folder', node: node });
|
4112
4312
|
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
4313
|
await this.vm.refresh();
|
4120
4314
|
}
|
4121
4315
|
}
|
4122
4316
|
}
|
4123
|
-
async
|
4317
|
+
async copyTo(node) {
|
4124
4318
|
if (node) {
|
4125
|
-
const result = await this.driveService.
|
4319
|
+
const result = await this.driveService.copyTo({ browseMode: 'folder', node: node });
|
4126
4320
|
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
4321
|
await this.vm.refresh();
|
4144
4322
|
}
|
4145
4323
|
}
|
4146
4324
|
}
|
4147
4325
|
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"] }] }); }
|
4326
|
+
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: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
4327
|
}
|
4150
4328
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDocumentExplorerComponent, decorators: [{
|
4151
4329
|
type: Component,
|
4152
|
-
args: [{ selector: 'axm-document-explorer', standalone: true, imports: [
|
4330
|
+
args: [{ selector: 'axm-document-explorer', standalone: true, encapsulation: ViewEncapsulation.None, imports: [
|
4153
4331
|
CommonModule,
|
4154
4332
|
RouterModule,
|
4155
4333
|
AXDecoratorModule,
|
@@ -4157,10 +4335,117 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
4157
4335
|
AXFormatModule,
|
4158
4336
|
AXDateTimeModule,
|
4159
4337
|
AXMenuModule,
|
4160
|
-
|
4161
|
-
|
4338
|
+
], 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: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"] }]
|
4339
|
+
}] });
|
4340
|
+
|
4341
|
+
class AXMChooseDocumentTypeComponent extends AXBasePageComponent {
|
4342
|
+
constructor() {
|
4343
|
+
super(...arguments);
|
4344
|
+
this.documentTypeService = inject(AXMDocumentTypeService);
|
4345
|
+
this.fileTypeService = inject(AXPFileTypeProviderService);
|
4346
|
+
this.documentTypeSelected = signal([]);
|
4347
|
+
this.context = signal({});
|
4348
|
+
this.documentTypesSource = new AXDataSource({
|
4349
|
+
load: async (_) => {
|
4350
|
+
return await this.documentTypeService.query();
|
4351
|
+
},
|
4352
|
+
pageSize: 10,
|
4353
|
+
key: 'id',
|
4354
|
+
});
|
4355
|
+
this.uploadNode = signal({
|
4356
|
+
name: 'upload',
|
4357
|
+
path: 'upload',
|
4358
|
+
type: 'file',
|
4359
|
+
options: {
|
4360
|
+
accept: '.pdf',
|
4361
|
+
multiple: false,
|
4362
|
+
},
|
4363
|
+
});
|
4364
|
+
}
|
4365
|
+
async handleChangeDocumentType(event) {
|
4366
|
+
const item = event.component.selectedItems[0];
|
4367
|
+
this.uploadNode.update((old) => {
|
4368
|
+
return {
|
4369
|
+
...old,
|
4370
|
+
options: {
|
4371
|
+
multiple: item.isMultiple,
|
4372
|
+
accept: item.name == 'any' ? '' : item.type.selectedItems.map((i) => `.${i.name.split('.')[1]}`).join(','),
|
4373
|
+
},
|
4374
|
+
};
|
4375
|
+
});
|
4376
|
+
for (const i of item.meta) {
|
4377
|
+
console.log(JSON.parse(i.interface)['children'][0]);
|
4378
|
+
if (!get(i, '__node__')) {
|
4379
|
+
set$1(i, '__node__', typeof i.interface == 'function' ? await i.interface() :
|
4380
|
+
JSON.parse(i.interface)['children'][0]['children'][0]);
|
4381
|
+
}
|
4382
|
+
}
|
4383
|
+
this.documentTypeSelected.set([item]);
|
4384
|
+
}
|
4385
|
+
handleContextChanged(e) {
|
4386
|
+
this.context.set(e.data);
|
4387
|
+
}
|
4388
|
+
handleCancel() {
|
4389
|
+
this.close();
|
4390
|
+
}
|
4391
|
+
handlesubmit() {
|
4392
|
+
this.close({
|
4393
|
+
documentType: this.documentTypeSelected(),
|
4394
|
+
context: this.context(),
|
4395
|
+
});
|
4396
|
+
}
|
4397
|
+
getNode(meta) {
|
4398
|
+
console.log(meta);
|
4399
|
+
return get(meta, '__node__');
|
4400
|
+
}
|
4401
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMChooseDocumentTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
4402
|
+
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 }); }
|
4403
|
+
}
|
4404
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMChooseDocumentTypeComponent, decorators: [{
|
4405
|
+
type: Component,
|
4406
|
+
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" }]
|
4407
|
+
}] });
|
4408
|
+
|
4409
|
+
class AXMFileViewerPopupComponent extends AXBasePageComponent {
|
4410
|
+
onClose() {
|
4411
|
+
this.close();
|
4412
|
+
}
|
4413
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMFileViewerPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
4414
|
+
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 }); }
|
4415
|
+
}
|
4416
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMFileViewerPopupComponent, decorators: [{
|
4417
|
+
type: Component,
|
4418
|
+
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
4419
|
}] });
|
4163
4420
|
|
4421
|
+
var fileViewerPopup_component = /*#__PURE__*/Object.freeze({
|
4422
|
+
__proto__: null,
|
4423
|
+
AXMFileViewerPopupComponent: AXMFileViewerPopupComponent
|
4424
|
+
});
|
4425
|
+
|
4426
|
+
class AXMFolderPathBreadcrumbsComponent {
|
4427
|
+
constructor() {
|
4428
|
+
this.vm = inject(AXPDocumentExplorerViewModel);
|
4429
|
+
this.layout = inject(AXPLayoutThemeService);
|
4430
|
+
}
|
4431
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMFolderPathBreadcrumbsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
4432
|
+
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"] }] }); }
|
4433
|
+
}
|
4434
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMFolderPathBreadcrumbsComponent, decorators: [{
|
4435
|
+
type: Component,
|
4436
|
+
args: [{ selector: 'axm-folder-path-breadcrumbs', standalone: true, imports: [
|
4437
|
+
AXButtonModule,
|
4438
|
+
AXDecoratorModule,
|
4439
|
+
], 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"] }]
|
4440
|
+
}] });
|
4441
|
+
|
4442
|
+
var index = /*#__PURE__*/Object.freeze({
|
4443
|
+
__proto__: null,
|
4444
|
+
AXMChooseDocumentTypeComponent: AXMChooseDocumentTypeComponent,
|
4445
|
+
AXMFileViewerPopupComponent: AXMFileViewerPopupComponent,
|
4446
|
+
AXMFolderPathBreadcrumbsComponent: AXMFolderPathBreadcrumbsComponent
|
4447
|
+
});
|
4448
|
+
|
4164
4449
|
class AXMDocumentAttachmentWidgetEditComponent extends AXPWidgetComponent {
|
4165
4450
|
constructor() {
|
4166
4451
|
super(...arguments);
|
@@ -4178,7 +4463,7 @@ class AXMDocumentAttachmentWidgetEditComponent extends AXPWidgetComponent {
|
|
4178
4463
|
#navigateEffect;
|
4179
4464
|
ngOnInit() {
|
4180
4465
|
super.ngOnInit();
|
4181
|
-
this.vm.initialize();
|
4466
|
+
this.vm.initialize({ browseMode: 'file' });
|
4182
4467
|
this.loadDrive();
|
4183
4468
|
}
|
4184
4469
|
async loadDrive(folderId) {
|
@@ -4196,7 +4481,7 @@ class AXMDocumentAttachmentWidgetEditComponent extends AXPWidgetComponent {
|
|
4196
4481
|
this.vm.navigateToFolder(folderId);
|
4197
4482
|
}
|
4198
4483
|
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:
|
4484
|
+
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
4485
|
}
|
4201
4486
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDocumentAttachmentWidgetEditComponent, decorators: [{
|
4202
4487
|
type: Component,
|
@@ -4307,6 +4592,85 @@ const AXMDocumentAttachmentWidget = {
|
|
4307
4592
|
},
|
4308
4593
|
};
|
4309
4594
|
|
4595
|
+
class AXMCheckDocumentTypeWorkflowAction extends AXPWorkflowAction {
|
4596
|
+
async execute(context) {
|
4597
|
+
const documentType = context.getVariable('documentType');
|
4598
|
+
if (documentType) {
|
4599
|
+
context.setOutput('need-choose-document-type', false);
|
4600
|
+
}
|
4601
|
+
else {
|
4602
|
+
context.setOutput('need-choose-document-type', true);
|
4603
|
+
}
|
4604
|
+
}
|
4605
|
+
}
|
4606
|
+
class AXMChooseDocumentTypeWorkflowAction extends AXPWorkflowAction {
|
4607
|
+
constructor() {
|
4608
|
+
super(...arguments);
|
4609
|
+
this.popupService = inject(AXPopupService);
|
4610
|
+
}
|
4611
|
+
async execute(context) {
|
4612
|
+
const comp = (await Promise.resolve().then(function () { return index; })).AXMChooseDocumentTypeComponent;
|
4613
|
+
const result = await this.popupService.open(comp);
|
4614
|
+
if (result.data != null && result.data.documentTypeId != null) {
|
4615
|
+
context.setVariable('documentTypeId', result.data.documentTypeId);
|
4616
|
+
context.setOutput('isCanceled', false);
|
4617
|
+
}
|
4618
|
+
else {
|
4619
|
+
context.setOutput('isCanceled', true);
|
4620
|
+
}
|
4621
|
+
}
|
4622
|
+
}
|
4623
|
+
class AXMChooseFileWorkflowAction extends AXPWorkflowAction {
|
4624
|
+
constructor() {
|
4625
|
+
super(...arguments);
|
4626
|
+
this.documentTypeService = inject(AXMDocumentTypeService);
|
4627
|
+
this.uploadService = inject(AXUploaderService);
|
4628
|
+
}
|
4629
|
+
async execute(context) {
|
4630
|
+
var doc = context.getVariable('documentType');
|
4631
|
+
if (!doc) {
|
4632
|
+
const docId = context.getVariable('documentTypeId');
|
4633
|
+
doc = await this.documentTypeService.getOne(docId);
|
4634
|
+
}
|
4635
|
+
this.uploadService.browse({
|
4636
|
+
//accept: doc.type,
|
4637
|
+
multiple: doc.isMultiple,
|
4638
|
+
});
|
4639
|
+
}
|
4640
|
+
}
|
4641
|
+
const AXMUploadWorkflow = {
|
4642
|
+
startStepId: 'check-document-type',
|
4643
|
+
steps: {
|
4644
|
+
'check-document-type': {
|
4645
|
+
action: 'AXMCheckDocumentTypeWorkflowAction',
|
4646
|
+
nextSteps: [
|
4647
|
+
{
|
4648
|
+
conditions: [{ type: 'SINGLE', expression: 'context.getOutput("need-choose-document-type") == true' }],
|
4649
|
+
nextStepId: 'choose-document-type',
|
4650
|
+
},
|
4651
|
+
],
|
4652
|
+
},
|
4653
|
+
'choose-document-type': {
|
4654
|
+
action: 'AXMChooseDocumentTypeWorkflowAction',
|
4655
|
+
nextSteps: [
|
4656
|
+
{
|
4657
|
+
conditions: [{ type: 'SINGLE', expression: 'context.getOutput("isCanceled") == false' }],
|
4658
|
+
nextStepId: 'file-browser',
|
4659
|
+
},
|
4660
|
+
],
|
4661
|
+
},
|
4662
|
+
'file-browser': {
|
4663
|
+
action: 'AXMChooseFileWorkflowAction',
|
4664
|
+
nextSteps: [
|
4665
|
+
{
|
4666
|
+
conditions: [],
|
4667
|
+
nextStepId: 'dispatch-event',
|
4668
|
+
},
|
4669
|
+
],
|
4670
|
+
},
|
4671
|
+
},
|
4672
|
+
};
|
4673
|
+
|
4310
4674
|
function routesFacory() {
|
4311
4675
|
const config = inject(AXP_ENTITY_CONFIG_TOKEN);
|
4312
4676
|
const routes = [
|
@@ -4320,11 +4684,11 @@ function routesFacory() {
|
|
4320
4684
|
children: [
|
4321
4685
|
{
|
4322
4686
|
path: '',
|
4323
|
-
loadComponent: () => import('./acorex-modules-document-management-drive.component-
|
4687
|
+
loadComponent: () => import('./acorex-modules-document-management-drive.component-CZR-optD.mjs').then((c) => c.AXMDocumentDriveComponent),
|
4324
4688
|
},
|
4325
4689
|
{
|
4326
4690
|
path: ':id',
|
4327
|
-
loadComponent: () => import('./acorex-modules-document-management-drive.component-
|
4691
|
+
loadComponent: () => import('./acorex-modules-document-management-drive.component-CZR-optD.mjs').then((c) => c.AXMDocumentDriveComponent),
|
4328
4692
|
},
|
4329
4693
|
],
|
4330
4694
|
},
|
@@ -4337,7 +4701,7 @@ class AXMDocumentManagementModule {
|
|
4337
4701
|
AXMDocumentManagementDocumentTypeMetaValueEntityModule,
|
4338
4702
|
AXMDocumentManagementDocumentTypeMetaDefinitionEntityModule,
|
4339
4703
|
AXMDocumentManagementDocumentTypeEntityModule,
|
4340
|
-
AXMDocumentManagementDocumentEntityModule, i6.AXPLayoutBuilderModule, AXMFileTypeModule, i3$2.AXMediaViewerModule] }); }
|
4704
|
+
AXMDocumentManagementDocumentEntityModule, i6.AXPLayoutBuilderModule, AXMFileTypeModule, i3$2.AXMediaViewerModule, i3$4.AXPWorkflowModule] }); }
|
4341
4705
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDocumentManagementModule, providers: [
|
4342
4706
|
{
|
4343
4707
|
provide: AXMFolderService,
|
@@ -4382,7 +4746,17 @@ class AXMDocumentManagementModule {
|
|
4382
4746
|
widgets: [AXmFileTypeExtensionWidget, AXMDocumentAttachmentWidget],
|
4383
4747
|
}),
|
4384
4748
|
AXMFileTypeModule,
|
4385
|
-
AXMediaViewerModule.forRoot()
|
4749
|
+
AXMediaViewerModule.forRoot(),
|
4750
|
+
AXPWorkflowModule.forChild({
|
4751
|
+
actions: {
|
4752
|
+
AXMCheckDocumentTypeWorkflowAction,
|
4753
|
+
AXMChooseDocumentTypeWorkflowAction,
|
4754
|
+
AXMChooseFileWorkflowAction,
|
4755
|
+
},
|
4756
|
+
workflows: {
|
4757
|
+
'upload-document': AXMUploadWorkflow,
|
4758
|
+
},
|
4759
|
+
})] }); }
|
4386
4760
|
}
|
4387
4761
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDocumentManagementModule, decorators: [{
|
4388
4762
|
type: NgModule,
|
@@ -4398,6 +4772,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
4398
4772
|
}),
|
4399
4773
|
AXMFileTypeModule,
|
4400
4774
|
AXMediaViewerModule.forRoot(),
|
4775
|
+
AXPWorkflowModule.forChild({
|
4776
|
+
actions: {
|
4777
|
+
AXMCheckDocumentTypeWorkflowAction,
|
4778
|
+
AXMChooseDocumentTypeWorkflowAction,
|
4779
|
+
AXMChooseFileWorkflowAction,
|
4780
|
+
},
|
4781
|
+
workflows: {
|
4782
|
+
'upload-document': AXMUploadWorkflow,
|
4783
|
+
},
|
4784
|
+
}),
|
4401
4785
|
],
|
4402
4786
|
exports: [],
|
4403
4787
|
providers: [
|
@@ -4443,5 +4827,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
4443
4827
|
* Generated bundle index. Do not edit.
|
4444
4828
|
*/
|
4445
4829
|
|
4446
|
-
export {
|
4447
|
-
//# sourceMappingURL=acorex-modules-document-management-acorex-modules-document-management-
|
4830
|
+
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 };
|
4831
|
+
//# sourceMappingURL=acorex-modules-document-management-acorex-modules-document-management-CpoLrul7.mjs.map
|