@acorex/modules 19.2.17-next.0 → 19.2.17
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/application-management/lib/layouts/module-entity-detail-view/module-entity-detail-view.component.d.ts +4 -0
- package/auth/lib/pages/login/password/password.component.d.ts +1 -0
- package/common/lib/entities/dashboard/dashboard.types.d.ts +2 -2
- package/common/lib/entities/index.d.ts +0 -1
- package/common/lib/features/dashboard-home/dashboard-home.d.ts +113 -0
- package/common/lib/features/dashboard-home/dashboard-home.store.d.ts +19 -0
- package/common/lib/features/dashboard-home/dashboard.type.d.ts +12 -0
- package/common/lib/features/dashboard-popups/add-dashboard-popup.d.ts +11 -0
- package/common/lib/features/dashboard-popups/dashboard-popup.service.d.ts +9 -0
- package/common/lib/features/widget-wrapper/dashboard-widget-wrapper.d.ts +9 -0
- package/document-management/lib/document-management.module.d.ts +2 -1
- package/document-management/lib/entities/document/document.types.d.ts +4 -0
- package/document-management/lib/entities/folder/folder.types.d.ts +1 -0
- package/document-management/lib/features/document-explorer/document-explorer.component.d.ts +7 -0
- package/document-management/lib/features/drive/drive.component.d.ts +4 -0
- package/document-management/lib/features/drive-choose/drive-choose.component.d.ts +200 -0
- package/document-management/lib/features/shared/components/file-viewer-popup/file-viewer-popup.component.d.ts +9 -0
- package/document-management/lib/features/shared/components/file-viewer-popup/index.d.ts +1 -0
- package/document-management/lib/features/shared/components/index.d.ts +2 -0
- package/document-management/lib/features/shared/components/tree-folder-popup/index.d.ts +1 -0
- package/document-management/lib/features/shared/components/tree-folder-popup/tree-folder-popup.component.d.ts +20 -0
- package/document-management/lib/features/shared/document-manager.service.d.ts +41 -49
- package/document-management/lib/features/shared/document-manager.types.d.ts +2 -0
- package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-edit.component.d.ts +113 -1
- package/fesm2022/{acorex-modules-application-management-module-designer.component-DPJ4qpK3.mjs → acorex-modules-application-management-module-designer.component-BSGSZi9T.mjs} +2 -2
- package/fesm2022/{acorex-modules-application-management-module-designer.component-DPJ4qpK3.mjs.map → acorex-modules-application-management-module-designer.component-BSGSZi9T.mjs.map} +1 -1
- package/fesm2022/acorex-modules-application-management.mjs +3 -3
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-DTje3YIv.mjs → acorex-modules-auth-acorex-modules-auth-Xcs9ViQv.mjs} +13 -13
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-Xcs9ViQv.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-app-chooser.component-CZxX5-T_.mjs → acorex-modules-auth-app-chooser.component-0L9y_yn_.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-app-chooser.component-CZxX5-T_.mjs.map → acorex-modules-auth-app-chooser.component-0L9y_yn_.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-login.module-B9P2XpfQ.mjs → acorex-modules-auth-login.module-CfO1IwH9.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-login.module-B9P2XpfQ.mjs.map → acorex-modules-auth-login.module-CfO1IwH9.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-master.layout-hLuHDgvl.mjs +23 -0
- package/fesm2022/acorex-modules-auth-master.layout-hLuHDgvl.mjs.map +1 -0
- package/fesm2022/acorex-modules-auth-password.component-BztZ3DJd.mjs +132 -0
- package/fesm2022/acorex-modules-auth-password.component-BztZ3DJd.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-password.component-C7Yp-ioT.mjs → acorex-modules-auth-password.component-CTVBARbz.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-password.component-C7Yp-ioT.mjs.map → acorex-modules-auth-password.component-CTVBARbz.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-routes-Bu-xB4O6.mjs → acorex-modules-auth-routes-CJz0CRlp.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-Bu-xB4O6.mjs.map → acorex-modules-auth-routes-CJz0CRlp.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-CKsbiOUX.mjs → acorex-modules-auth-tenant-chooser.component-kVFAR9t1.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-CKsbiOUX.mjs.map → acorex-modules-auth-tenant-chooser.component-kVFAR9t1.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-DrV3UBuT.mjs → acorex-modules-auth-two-factor-code.component-_VYT-h-9.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-DrV3UBuT.mjs.map → acorex-modules-auth-two-factor-code.component-_VYT-h-9.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-YRh6_YcG.mjs → acorex-modules-auth-two-factor.module-BQfrnrd0.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-two-factor.module-YRh6_YcG.mjs.map → acorex-modules-auth-two-factor.module-BQfrnrd0.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/acorex-modules-common-index-BAt02rnb.mjs +472 -0
- package/fesm2022/acorex-modules-common-index-BAt02rnb.mjs.map +1 -0
- package/fesm2022/acorex-modules-common.mjs +5 -505
- package/fesm2022/acorex-modules-common.mjs.map +1 -1
- package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-C9ZCejjs.mjs → acorex-modules-document-management-acorex-modules-document-management-BmLGtKDq.mjs} +415 -60
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-BmLGtKDq.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-BnRaCq_Q.mjs → acorex-modules-document-management-create-folder-dialog.component-DqoWmtm7.mjs} +4 -5
- package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-DqoWmtm7.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-drive-choose.component-CkS8s7zm.mjs +152 -0
- package/fesm2022/acorex-modules-document-management-drive-choose.component-CkS8s7zm.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-drive.component-B6az6-_w.mjs +164 -0
- package/fesm2022/acorex-modules-document-management-drive.component-B6az6-_w.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-file-viewer-popup.component-CaSagveT.mjs +24 -0
- package/fesm2022/acorex-modules-document-management-file-viewer-popup.component-CaSagveT.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-index-9l8D5iEE.mjs +69 -0
- package/fesm2022/acorex-modules-document-management-index-9l8D5iEE.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-EBf1XqU8.mjs → acorex-modules-document-management-rename-node-dialog.component-BoODbM0H.mjs} +4 -4
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-EBf1XqU8.mjs.map → acorex-modules-document-management-rename-node-dialog.component-BoODbM0H.mjs.map} +1 -1
- package/fesm2022/acorex-modules-document-management.mjs +1 -1
- package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-szDh56Bk.mjs → acorex-modules-form-template-management-acorex-modules-form-template-management-Qnh16t3Q.mjs} +10 -10
- package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-szDh56Bk.mjs.map → acorex-modules-form-template-management-acorex-modules-form-template-management-Qnh16t3Q.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-category.entity-BZXqnhwK.mjs → acorex-modules-form-template-management-category.entity-BjmyIav9.mjs} +3 -3
- package/fesm2022/{acorex-modules-form-template-management-category.entity-BZXqnhwK.mjs.map → acorex-modules-form-template-management-category.entity-BjmyIav9.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-setting.provider-o2_TSVfK.mjs → acorex-modules-form-template-management-setting.provider-hkwaOGfL.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-setting.provider-o2_TSVfK.mjs.map → acorex-modules-form-template-management-setting.provider-hkwaOGfL.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template-picker.component-BxOdV3y2.mjs → acorex-modules-form-template-management-template-picker.component-gdMTnjl-.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-template-picker.component-BxOdV3y2.mjs.map → acorex-modules-form-template-management-template-picker.component-gdMTnjl-.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component--MGoF75g.mjs → acorex-modules-form-template-management-template-widget-edit.component-CSShokqz.mjs} +3 -3
- package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component--MGoF75g.mjs.map → acorex-modules-form-template-management-template-widget-edit.component-CSShokqz.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template.entity-JvWcqjzi.mjs → acorex-modules-form-template-management-template.entity-_yMAqh35.mjs} +3 -3
- package/fesm2022/{acorex-modules-form-template-management-template.entity-JvWcqjzi.mjs.map → acorex-modules-form-template-management-template.entity-_yMAqh35.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-Bllb70Ih.mjs → acorex-modules-form-template-management-viewer-popup.component-CbcSFEis.mjs} +3 -3
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-Bllb70Ih.mjs.map → acorex-modules-form-template-management-viewer-popup.component-CbcSFEis.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-organization-management-add-item.component-Y-i6xDkl.mjs → acorex-modules-organization-management-add-item.component-Bsae9u-e.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-add-item.component-Y-i6xDkl.mjs.map → acorex-modules-organization-management-add-item.component-Bsae9u-e.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-branch.entity-DhObzxhh.mjs → acorex-modules-organization-management-branch.entity-e5pFx82N.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-branch.entity-DhObzxhh.mjs.map → acorex-modules-organization-management-branch.entity-e5pFx82N.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-chart.entity-Bk4WgsYr.mjs → acorex-modules-organization-management-chart.entity-DnmNyyD2.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-chart.entity-Bk4WgsYr.mjs.map → acorex-modules-organization-management-chart.entity-DnmNyyD2.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-company.entity-d7GaCVei.mjs → acorex-modules-organization-management-company.entity-BRkEcDNt.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-company.entity-d7GaCVei.mjs.map → acorex-modules-organization-management-company.entity-BRkEcDNt.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-department.entity-BxyeK3lU.mjs → acorex-modules-organization-management-department.entity-ChJXNpXn.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-department.entity-BxyeK3lU.mjs.map → acorex-modules-organization-management-department.entity-ChJXNpXn.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-division.entity-Dh54R4es.mjs → acorex-modules-organization-management-division.entity-qyDyhl-q.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-division.entity-Dh54R4es.mjs.map → acorex-modules-organization-management-division.entity-qyDyhl-q.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-employee.entity-DcJCJN3R.mjs → acorex-modules-organization-management-employee.entity-Cp5TejzT.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-employee.entity-DcJCJN3R.mjs.map → acorex-modules-organization-management-employee.entity-Cp5TejzT.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-employment-type.entity-aNkt-l_e.mjs → acorex-modules-organization-management-employment-type.entity-Ul10Mdwm.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-employment-type.entity-aNkt-l_e.mjs.map → acorex-modules-organization-management-employment-type.entity-Ul10Mdwm.mjs.map} +1 -1
- package/fesm2022/acorex-modules-organization-management-org-chart-configuration.page-aMPR3Oyw.mjs +92 -0
- package/fesm2022/acorex-modules-organization-management-org-chart-configuration.page-aMPR3Oyw.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-DXyAFXwE.mjs → acorex-modules-organization-management-org-chart.page-CAgSSVON.mjs} +15 -15
- package/fesm2022/acorex-modules-organization-management-org-chart.page-CAgSSVON.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-position.entity-D17Yembh.mjs → acorex-modules-organization-management-position.entity-BpQbwW-x.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-position.entity-D17Yembh.mjs.map → acorex-modules-organization-management-position.entity-BpQbwW-x.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-role.entity-Cmbyle8P.mjs → acorex-modules-organization-management-role.entity-B9N4qA_E.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-role.entity-Cmbyle8P.mjs.map → acorex-modules-organization-management-role.entity-B9N4qA_E.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-team.entity-DcurAtLd.mjs → acorex-modules-organization-management-team.entity-7q6Eg74A.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-team.entity-DcurAtLd.mjs.map → acorex-modules-organization-management-team.entity-7q6Eg74A.mjs.map} +1 -1
- package/fesm2022/acorex-modules-organization-management.mjs +15 -13
- package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-platform-management-list-version.component-CoZBz85x.mjs → acorex-modules-platform-management-list-version.component-DI1wKhRv.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-list-version.component-CoZBz85x.mjs.map → acorex-modules-platform-management-list-version.component-DI1wKhRv.mjs.map} +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +10 -8
- package/fesm2022/acorex-modules-platform-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-scheduler-job-management.mjs +1 -1
- package/fesm2022/acorex-modules-security-management.mjs +1 -1
- package/fesm2022/acorex-modules-text-template-management.mjs +1 -1
- package/organization-management/lib/features/organization-chart/org-chart-configuration.page.d.ts +4 -0
- package/organization-management/lib/features/organization-chart/org-chart.page.d.ts +4 -0
- package/package.json +1 -1
- package/common/lib/entities/dashboard-widget-data/dashboard-widget-data.entity.d.ts +0 -3
- package/common/lib/entities/dashboard-widget-data/dashboard-widget-data.service.d.ts +0 -10
- package/common/lib/entities/dashboard-widget-data/dashboard-widget-data.types.d.ts +0 -9
- package/common/lib/entities/dashboard-widget-data/index.d.ts +0 -3
- package/common/lib/features/home/dashboard-home.d.ts +0 -5
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-DTje3YIv.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-master.layout-BYC0FYq1.mjs +0 -23
- package/fesm2022/acorex-modules-auth-master.layout-BYC0FYq1.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-password.component-DzrYH4yM.mjs +0 -127
- package/fesm2022/acorex-modules-auth-password.component-DzrYH4yM.mjs.map +0 -1
- package/fesm2022/acorex-modules-common-index-zaFxpV8u.mjs +0 -14
- package/fesm2022/acorex-modules-common-index-zaFxpV8u.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-C9ZCejjs.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-BnRaCq_Q.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-drive.component-Sz198sA6.mjs +0 -165
- package/fesm2022/acorex-modules-document-management-drive.component-Sz198sA6.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-index--I8MGeDs.mjs +0 -2
- package/fesm2022/acorex-modules-document-management-index--I8MGeDs.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-org-chart-configuration.page-DO8wSZqZ.mjs +0 -92
- package/fesm2022/acorex-modules-organization-management-org-chart-configuration.page-DO8wSZqZ.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-org-chart.page-DXyAFXwE.mjs.map +0 -1
- /package/common/lib/features/{home → dashboard-home}/index.d.ts +0 -0
@@ -1,8 +1,8 @@
|
|
1
1
|
import { AXPSessionService, AXPAuthGuard, AXP_PERMISSION_PROVIDER } from '@acorex/platform/auth';
|
2
|
-
import { AXPSearchCommandProvider,
|
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,
|
5
|
+
import { inject, Injector, Injectable, NgModule, ChangeDetectionStrategy, Component, signal, computed, viewChild, effect } from '@angular/core';
|
6
6
|
import { firstValueFrom, Subject } 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';
|
@@ -26,18 +26,27 @@ 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 i2$1 from '@acorex/components/button';
|
30
|
+
import { AXButtonComponent, AXButtonModule } from '@acorex/components/button';
|
31
|
+
import { AXButtonGroupModule } from '@acorex/components/button-group';
|
32
|
+
import * as i3$1 from '@acorex/components/dropdown';
|
33
|
+
import { AXDropdownModule } from '@acorex/components/dropdown';
|
34
|
+
import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
|
35
|
+
import * as i4$1 from '@acorex/core/translation';
|
36
|
+
import { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
|
29
37
|
import { AXLoadingModule } from '@acorex/components/loading';
|
30
38
|
import * as i4 from '@acorex/components/menu';
|
31
39
|
import { AXMenuModule } from '@acorex/components/menu';
|
32
40
|
import { AXDateTimeModule } from '@acorex/core/date-time';
|
33
41
|
import * as i3 from '@acorex/core/format';
|
34
42
|
import { AXFormatModule } from '@acorex/core/format';
|
35
|
-
import {
|
36
|
-
import { AXPDataGenerator, AXPElementDataDirective } from '@acorex/platform/core';
|
43
|
+
import { AXPElementDataDirective } from '@acorex/platform/core';
|
37
44
|
import { get as get$1 } from 'lodash-es';
|
38
45
|
import { AXDialogService } from '@acorex/components/dialog';
|
39
46
|
import { AXPopupService } from '@acorex/components/popup';
|
40
47
|
import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';
|
48
|
+
import * as i3$2 from '@acorex/components/media-viewer';
|
49
|
+
import { AXMediaViewerModule } from '@acorex/components/media-viewer';
|
41
50
|
|
42
51
|
const config = {
|
43
52
|
i18n: 'document-management',
|
@@ -814,7 +823,7 @@ async function documentTypeFactory(injector) {
|
|
814
823
|
schema: {
|
815
824
|
dataType: 'object',
|
816
825
|
interface: {
|
817
|
-
type: AXPWidgetsCatalog.
|
826
|
+
type: AXPWidgetsCatalog.documentAttachment,
|
818
827
|
options: {},
|
819
828
|
},
|
820
829
|
},
|
@@ -3013,6 +3022,7 @@ class AXMDocumentManagerService {
|
|
3013
3022
|
this.documentService = inject(AXMDocumentService);
|
3014
3023
|
this.popupService = inject(AXPopupService);
|
3015
3024
|
this.dialogService = inject(AXDialogService);
|
3025
|
+
this.fileService = inject(AXPFileStorageService);
|
3016
3026
|
this.scopedDriveCache = new Map();
|
3017
3027
|
}
|
3018
3028
|
scope(scope, options) {
|
@@ -3023,7 +3033,6 @@ class AXMDocumentManagerService {
|
|
3023
3033
|
return this.scopedDriveCache.get(cacheKey);
|
3024
3034
|
}
|
3025
3035
|
getScopeCacheKey(scope, options) {
|
3026
|
-
// در آینده میتوان این را برای کش کردن بر اساس ترکیب scope و options گسترش داد
|
3027
3036
|
return scope;
|
3028
3037
|
}
|
3029
3038
|
/**
|
@@ -3113,6 +3122,7 @@ class AXMDocumentManagerService {
|
|
3113
3122
|
type: 'folder',
|
3114
3123
|
parentId: folder.parentId || null,
|
3115
3124
|
lastModified: folder.updatedAt,
|
3125
|
+
childrenCount: folder.nodeCount,
|
3116
3126
|
children: [
|
3117
3127
|
...(folder.folders?.map((child) => ({
|
3118
3128
|
id: child.id,
|
@@ -3120,15 +3130,15 @@ class AXMDocumentManagerService {
|
|
3120
3130
|
type: 'folder',
|
3121
3131
|
parentId: child.parentId || null,
|
3122
3132
|
lastModified: child.updatedAt,
|
3123
|
-
|
3133
|
+
childrenCount: child.nodeCount,
|
3124
3134
|
})) || []),
|
3125
3135
|
...(folder.documents?.map((doc) => ({
|
3126
3136
|
id: doc.id,
|
3127
3137
|
name: doc.name,
|
3128
3138
|
type: 'file',
|
3129
3139
|
parentId: doc.parentId,
|
3130
|
-
lastModified:
|
3131
|
-
size:
|
3140
|
+
lastModified: doc.meta?.['uploadedAt'],
|
3141
|
+
size: doc.meta?.['size'],
|
3132
3142
|
})) || []),
|
3133
3143
|
],
|
3134
3144
|
};
|
@@ -3251,6 +3261,8 @@ class AXMDocumentManagerService {
|
|
3251
3261
|
type: 'file',
|
3252
3262
|
parentId: file.parentId,
|
3253
3263
|
lastModified: new Date(),
|
3264
|
+
size: file.meta?.['size'],
|
3265
|
+
fileId: file.fileId,
|
3254
3266
|
};
|
3255
3267
|
}
|
3256
3268
|
async createFile(data) {
|
@@ -3284,7 +3296,8 @@ class AXMDocumentManagerService {
|
|
3284
3296
|
}
|
3285
3297
|
}
|
3286
3298
|
async showCreateFolderDialog(parentId) {
|
3287
|
-
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-DqoWmtm7.mjs'))
|
3300
|
+
.AXMCreateFolderDialog;
|
3288
3301
|
const popup = await this.popupService.open(comp, {
|
3289
3302
|
title: 't("actions.create-folder")',
|
3290
3303
|
data: {
|
@@ -3293,8 +3306,139 @@ class AXMDocumentManagerService {
|
|
3293
3306
|
});
|
3294
3307
|
return popup.data?.folder;
|
3295
3308
|
}
|
3309
|
+
//Todo beacuse id is String here return type is string and need dynamic type and wrong process
|
3310
|
+
async showTreeFolderPopup() {
|
3311
|
+
const comp = (await import('./acorex-modules-document-management-index-9l8D5iEE.mjs')).AXMTreeFolderPopupComponent;
|
3312
|
+
const popup = await this.popupService.open(comp, {
|
3313
|
+
title: 't("actions.create-folder")',
|
3314
|
+
data: {
|
3315
|
+
// parentId,
|
3316
|
+
},
|
3317
|
+
});
|
3318
|
+
return popup.data?.selectedNodeId;
|
3319
|
+
}
|
3320
|
+
async showFileViewerPopup(node) {
|
3321
|
+
const parentFolder = await this.folderService.getOne(node.parentId);
|
3322
|
+
const parentFolderName = parentFolder.name;
|
3323
|
+
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
|
+
return {
|
3340
|
+
id: doc.id || '',
|
3341
|
+
name: doc.name,
|
3342
|
+
type: fileType,
|
3343
|
+
url: fileInfo.url || '',
|
3344
|
+
size: String(fileInfo.size),
|
3345
|
+
thumbnail: fileInfo.url || '',
|
3346
|
+
};
|
3347
|
+
}) || []);
|
3348
|
+
console.log(nodes);
|
3349
|
+
const comp = (await import('./acorex-modules-document-management-file-viewer-popup.component-CaSagveT.mjs'))
|
3350
|
+
.AXMFileViewerPopupComponent;
|
3351
|
+
await this.popupService.open(comp, {
|
3352
|
+
title: `t("gallery" , ${RootConfig.module.name})` + ' - ' + parentFolderName,
|
3353
|
+
data: {
|
3354
|
+
nodes,
|
3355
|
+
},
|
3356
|
+
});
|
3357
|
+
}
|
3358
|
+
async openFile(node) {
|
3359
|
+
const file = await this.documentService.getOne(node.id);
|
3360
|
+
if (file && file.fileId) {
|
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;
|
3438
|
+
}
|
3296
3439
|
async rename(node) {
|
3297
|
-
const comp = (await import('./acorex-modules-document-management-rename-node-dialog.component-
|
3440
|
+
const comp = (await import('./acorex-modules-document-management-rename-node-dialog.component-BoODbM0H.mjs'))
|
3441
|
+
.AXMRenameNodeDialog;
|
3298
3442
|
const popup = await this.popupService.open(comp, {
|
3299
3443
|
title: 't("actions.rename")',
|
3300
3444
|
data: {
|
@@ -3338,34 +3482,16 @@ class AXMDocumentManagerService {
|
|
3338
3482
|
],
|
3339
3483
|
});
|
3340
3484
|
}
|
3341
|
-
/**
|
3342
|
-
* جستجوی فولدرها با نام مشخص شده در اسکوپ
|
3343
|
-
* @param searchTerm عبارت جستجو
|
3344
|
-
* @param scope اسکوپ جستجو
|
3345
|
-
* @param options گزینههای اضافی مانند tenantId و userId
|
3346
|
-
*/
|
3347
3485
|
async searchFolders(searchTerm, scope, options) {
|
3348
3486
|
const { result: rootNode } = await this.getRoot(scope, options);
|
3349
3487
|
const folders = await this.folderService.searchFolders(searchTerm, rootNode.id);
|
3350
3488
|
return folders.map((folder) => this.mapFolderDtoToFolderNode(folder));
|
3351
3489
|
}
|
3352
|
-
/**
|
3353
|
-
* جستجوی فایلها با نام مشخص شده در اسکوپ
|
3354
|
-
* @param searchTerm عبارت جستجو
|
3355
|
-
* @param scope اسکوپ جستجو
|
3356
|
-
* @param options گزینههای اضافی مانند tenantId و userId
|
3357
|
-
*/
|
3358
3490
|
async searchFiles(searchTerm, scope, options) {
|
3359
3491
|
const { result: rootNode } = await this.getRoot(scope, options);
|
3360
3492
|
const files = await this.documentService.searchFiles(searchTerm, rootNode.id);
|
3361
3493
|
return files.map((file) => this.mapFileToNode(file));
|
3362
3494
|
}
|
3363
|
-
/**
|
3364
|
-
* جستجوی تمام نودها (فولدرها و فایلها) با نام مشخص شده در اسکوپ
|
3365
|
-
* @param searchTerm عبارت جستجو
|
3366
|
-
* @param scope اسکوپ جستجو
|
3367
|
-
* @param options گزینههای اضافی مانند tenantId و userId
|
3368
|
-
*/
|
3369
3495
|
async searchNodes(searchTerm, scope, options) {
|
3370
3496
|
const [folders, files] = await Promise.all([
|
3371
3497
|
this.searchFolders(searchTerm, scope, options),
|
@@ -3373,6 +3499,99 @@ class AXMDocumentManagerService {
|
|
3373
3499
|
]);
|
3374
3500
|
return [...folders, ...files];
|
3375
3501
|
}
|
3502
|
+
async getAllFolders() {
|
3503
|
+
//TODO filter by scope
|
3504
|
+
return (await this.folderService.query()).items.map(this.mapFolderDtoToFolderNode);
|
3505
|
+
}
|
3506
|
+
async getAllFiles() {
|
3507
|
+
//TODO filter by scope
|
3508
|
+
return (await this.documentService.query()).items.map(this.mapFileToNode);
|
3509
|
+
}
|
3510
|
+
async getAllNodes() {
|
3511
|
+
return [...(await this.getAllFolders()), ...(await this.getAllFiles())];
|
3512
|
+
}
|
3513
|
+
async showChooseFileDialog() {
|
3514
|
+
const comp = (await import('./acorex-modules-document-management-drive-choose.component-CkS8s7zm.mjs')).AXMDocumentDriveChooseComponent;
|
3515
|
+
await this.popupService.open(comp);
|
3516
|
+
}
|
3517
|
+
async downloadFile(node) {
|
3518
|
+
const file = await this.documentService.getOne(node.id);
|
3519
|
+
if (file && file.fileId) {
|
3520
|
+
const fileInfo = await this.fileService.getInfo(file.fileId);
|
3521
|
+
const link = document.createElement('a');
|
3522
|
+
link.href = fileInfo.url ?? '';
|
3523
|
+
link.download = file.name; // Set the desired file name
|
3524
|
+
document.body.appendChild(link);
|
3525
|
+
link.click();
|
3526
|
+
document.body.removeChild(link);
|
3527
|
+
}
|
3528
|
+
else {
|
3529
|
+
console.log('id is null');
|
3530
|
+
}
|
3531
|
+
}
|
3532
|
+
/**
|
3533
|
+
* Creates a copy of a node (file or folder)
|
3534
|
+
* @param node The node to copy
|
3535
|
+
* @returns The newly created copied node
|
3536
|
+
*/
|
3537
|
+
async copy(node) {
|
3538
|
+
if (!node) {
|
3539
|
+
throw new Error('Node to copy cannot be null or undefined');
|
3540
|
+
}
|
3541
|
+
// Create a name with " copy" before the extension
|
3542
|
+
const newName = this.createCopyName(node.name);
|
3543
|
+
if (node.type === 'file') {
|
3544
|
+
// Get the original file to copy all its data
|
3545
|
+
const originalFile = await this.documentService.getOne(node.id);
|
3546
|
+
if (!originalFile) {
|
3547
|
+
throw new Error(`File with ID ${node.id} not found`);
|
3548
|
+
}
|
3549
|
+
// Create a document model from the original with the new name
|
3550
|
+
// Extract needed properties without id
|
3551
|
+
const { id, ...fileDataWithoutId } = originalFile;
|
3552
|
+
const fileData = {
|
3553
|
+
...fileDataWithoutId,
|
3554
|
+
name: newName,
|
3555
|
+
title: newName,
|
3556
|
+
};
|
3557
|
+
// Create the new file
|
3558
|
+
return await this.createFile(fileData);
|
3559
|
+
}
|
3560
|
+
else if (node.type === 'folder') {
|
3561
|
+
// Get the original folder to copy all its data
|
3562
|
+
const originalFolder = await this.folderService.getOne(node.id);
|
3563
|
+
if (!originalFolder) {
|
3564
|
+
throw new Error(`Folder with ID ${node.id} not found`);
|
3565
|
+
}
|
3566
|
+
// Create a folder model from the original with the new name
|
3567
|
+
// Extract needed properties without id
|
3568
|
+
const { id, ...folderDataWithoutId } = originalFolder;
|
3569
|
+
const folderData = {
|
3570
|
+
...folderDataWithoutId,
|
3571
|
+
name: newName,
|
3572
|
+
};
|
3573
|
+
// Create the new folder
|
3574
|
+
return await this.createFolder(folderData);
|
3575
|
+
}
|
3576
|
+
else {
|
3577
|
+
throw new Error(`Unsupported node type: ${node.type}`);
|
3578
|
+
}
|
3579
|
+
}
|
3580
|
+
/**
|
3581
|
+
* Creates a copy name by adding " copy" before the extension
|
3582
|
+
* @param originalName The original filename
|
3583
|
+
* @returns The new filename with " copy" added before the extension
|
3584
|
+
*/
|
3585
|
+
createCopyName(originalName) {
|
3586
|
+
const lastDotIndex = originalName.lastIndexOf('.');
|
3587
|
+
if (lastDotIndex === -1) {
|
3588
|
+
// No extension
|
3589
|
+
return `${originalName} copy`;
|
3590
|
+
}
|
3591
|
+
const nameWithoutExt = originalName.substring(0, lastDotIndex);
|
3592
|
+
const extension = originalName.substring(lastDotIndex);
|
3593
|
+
return `${nameWithoutExt} copy${extension}`;
|
3594
|
+
}
|
3376
3595
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDocumentManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
3377
3596
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDocumentManagerService, providedIn: 'root' }); }
|
3378
3597
|
}
|
@@ -3426,30 +3645,27 @@ class ScopedDriveService {
|
|
3426
3645
|
async getAvailableSpace() {
|
3427
3646
|
return this.parent.getAvailableSpace();
|
3428
3647
|
}
|
3429
|
-
/**
|
3430
|
-
* جستجوی فولدرها با نام مشخص شده در اسکوپ فعلی
|
3431
|
-
* @param searchTerm عبارت جستجو
|
3432
|
-
*/
|
3433
3648
|
async searchFolders(searchTerm) {
|
3434
3649
|
this.validateScopeOptions();
|
3435
3650
|
return this.parent.searchFolders(searchTerm, this.scope, this.options);
|
3436
3651
|
}
|
3437
|
-
/**
|
3438
|
-
* جستجوی فایلها با نام مشخص شده در اسکوپ فعلی
|
3439
|
-
* @param searchTerm عبارت جستجو
|
3440
|
-
*/
|
3441
3652
|
async searchFiles(searchTerm) {
|
3442
3653
|
this.validateScopeOptions();
|
3443
3654
|
return this.parent.searchFiles(searchTerm, this.scope, this.options);
|
3444
3655
|
}
|
3445
|
-
/**
|
3446
|
-
* جستجوی تمام نودها (فولدرها و فایلها) با نام مشخص شده در اسکوپ فعلی
|
3447
|
-
* @param searchTerm عبارت جستجو
|
3448
|
-
*/
|
3449
3656
|
async searchNodes(searchTerm) {
|
3450
3657
|
this.validateScopeOptions();
|
3451
3658
|
return this.parent.searchNodes(searchTerm, this.scope, this.options);
|
3452
3659
|
}
|
3660
|
+
/**
|
3661
|
+
* Creates a copy of a node (file or folder)
|
3662
|
+
* @param node The node to copy
|
3663
|
+
* @returns The newly created copied node
|
3664
|
+
*/
|
3665
|
+
async copy(node) {
|
3666
|
+
this.validateScopeOptions();
|
3667
|
+
return this.parent.copy(node);
|
3668
|
+
}
|
3453
3669
|
}
|
3454
3670
|
|
3455
3671
|
var AXPDocumentExplorerSettings;
|
@@ -3620,6 +3836,7 @@ class AXMDocumentExplorerComponent {
|
|
3620
3836
|
#effect;
|
3621
3837
|
handleNavigateToFolder(folderId) {
|
3622
3838
|
this.vm.navigateToFolder(folderId);
|
3839
|
+
console.log(this.vm.currentFolder());
|
3623
3840
|
}
|
3624
3841
|
// Context Menu Handlers
|
3625
3842
|
async handleContextMenuOnOpening(e) {
|
@@ -3688,6 +3905,20 @@ class AXMDocumentExplorerComponent {
|
|
3688
3905
|
],
|
3689
3906
|
break: true,
|
3690
3907
|
};
|
3908
|
+
const openWith = {
|
3909
|
+
name: 'open-with',
|
3910
|
+
text: 'Open with',
|
3911
|
+
icon: 'fa-light fa-circle-info',
|
3912
|
+
items: [
|
3913
|
+
{
|
3914
|
+
name: 'open-gallery',
|
3915
|
+
text: 'Gallery',
|
3916
|
+
icon: 'fa-light fa-images',
|
3917
|
+
data: node,
|
3918
|
+
},
|
3919
|
+
],
|
3920
|
+
break: true,
|
3921
|
+
};
|
3691
3922
|
e.items = [
|
3692
3923
|
...open,
|
3693
3924
|
{
|
@@ -3741,6 +3972,9 @@ class AXMDocumentExplorerComponent {
|
|
3741
3972
|
data: node,
|
3742
3973
|
},
|
3743
3974
|
];
|
3975
|
+
if (node.type == 'file') {
|
3976
|
+
e.items.splice(e.items.length - 1, 0, openWith);
|
3977
|
+
}
|
3744
3978
|
}
|
3745
3979
|
handleContextMenuRootOnOpening(e) {
|
3746
3980
|
//TODO: check async translate method in acorex
|
@@ -3777,6 +4011,15 @@ class AXMDocumentExplorerComponent {
|
|
3777
4011
|
case 'open-folder':
|
3778
4012
|
this.handleNavigateToFolder(node.id);
|
3779
4013
|
break;
|
4014
|
+
case 'open-file':
|
4015
|
+
this.openFile(node);
|
4016
|
+
break;
|
4017
|
+
case 'open-gallery':
|
4018
|
+
this.openGallery(node);
|
4019
|
+
break;
|
4020
|
+
case 'download':
|
4021
|
+
this.handleDownloadFile(node);
|
4022
|
+
break;
|
3780
4023
|
case 'new-folder':
|
3781
4024
|
await this.createFolder(node);
|
3782
4025
|
// Handle new folder creation
|
@@ -3787,6 +4030,12 @@ class AXMDocumentExplorerComponent {
|
|
3787
4030
|
case 'paste':
|
3788
4031
|
// Handle paste operation
|
3789
4032
|
break;
|
4033
|
+
case 'move-to':
|
4034
|
+
this.moveNode(node);
|
4035
|
+
break;
|
4036
|
+
case 'copy-to':
|
4037
|
+
this.copyNodeToNewPath(node);
|
4038
|
+
break;
|
3790
4039
|
case 'rename':
|
3791
4040
|
this.renameNode(node);
|
3792
4041
|
break;
|
@@ -3796,12 +4045,24 @@ class AXMDocumentExplorerComponent {
|
|
3796
4045
|
case 'refresh':
|
3797
4046
|
this.vm.refresh();
|
3798
4047
|
break;
|
4048
|
+
case 'copy':
|
4049
|
+
this.makeCopy(node);
|
4050
|
+
break;
|
3799
4051
|
}
|
3800
4052
|
}
|
4053
|
+
async openGallery(node) {
|
4054
|
+
await this.driveService.showFileViewerPopup(node);
|
4055
|
+
}
|
4056
|
+
async openFile(node) {
|
4057
|
+
await this.driveService.openFile(node);
|
4058
|
+
}
|
4059
|
+
handleDownloadFile(node) {
|
4060
|
+
this.driveService.downloadFile(node);
|
4061
|
+
}
|
3801
4062
|
async createFolder(node) {
|
3802
|
-
const
|
3803
|
-
if (
|
3804
|
-
const result = await this.driveService.showCreateFolderDialog(
|
4063
|
+
const parentId = node?.id ?? this.vm.currentFolder()?.id;
|
4064
|
+
if (parentId) {
|
4065
|
+
const result = await this.driveService.showCreateFolderDialog(parentId);
|
3805
4066
|
if (result) {
|
3806
4067
|
await this.vm.refresh();
|
3807
4068
|
}
|
@@ -3830,8 +4091,61 @@ class AXMDocumentExplorerComponent {
|
|
3830
4091
|
// }
|
3831
4092
|
}
|
3832
4093
|
}
|
4094
|
+
async chooseFile() {
|
4095
|
+
await this.driveService.showChooseFileDialog();
|
4096
|
+
await this.vm.refresh();
|
4097
|
+
}
|
4098
|
+
async makeCopy(node) {
|
4099
|
+
if (node) {
|
4100
|
+
try {
|
4101
|
+
const copiedNode = await this.driveService.copy(node);
|
4102
|
+
await this.vm.refresh();
|
4103
|
+
}
|
4104
|
+
catch (error) {
|
4105
|
+
console.error('Error copying node:', error);
|
4106
|
+
}
|
4107
|
+
}
|
4108
|
+
}
|
4109
|
+
async moveNode(node) {
|
4110
|
+
if (node) {
|
4111
|
+
const result = await this.driveService.showTreeFolderPopup();
|
4112
|
+
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
|
+
await this.vm.refresh();
|
4120
|
+
}
|
4121
|
+
}
|
4122
|
+
}
|
4123
|
+
async copyNodeToNewPath(node) {
|
4124
|
+
if (node) {
|
4125
|
+
const result = await this.driveService.showTreeFolderPopup();
|
4126
|
+
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
|
+
await this.vm.refresh();
|
4144
|
+
}
|
4145
|
+
}
|
4146
|
+
}
|
3833
4147
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDocumentExplorerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
3834
|
-
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 class=\"ax-group ax-cursor-pointer axp-explorer-item\" [axp-data]=\"folder\"\n (dblclick)=\"handleNavigateToFolder(folder.id)\">\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\">15 items</span>\n <span class=\"ax-text-xs ax-text-neutral\">{{ folder.lastModified | format : 'datetime' : { format: 'datetime' } |\n async }}</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\"\n (dblclick)=\"handleNavigateToFolder(file.id)\">\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\">{{ file.lastModified | format : 'datetime' : { format: 'datetime' } |\n async }}</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 #itemsContextMenu [target]=\"'.axp-explorer-item'\" [orientation]=\"'vertical'\" [closeOn]=\"'leave'\"\n (onItemClick)=\"handleContextMenuItemClick($event)\" (onOpening)=\"handleContextMenuOnOpening($event)\">\n</ax-context-menu>\n\n<ax-context-menu #rootContextMenu [target]=\"'axm-document-explorer'\" [orientation]=\"'vertical'\" [closeOn]=\"'leave'\"\n (onItemClick)=\"handleContextMenuItemClick($event)\" (onOpening)=\"handleContextMenuRootOnOpening($event)\">\n</ax-context-menu>", 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))}\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"] }] }); }
|
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"] }] }); }
|
3835
4149
|
}
|
3836
4150
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDocumentExplorerComponent, decorators: [{
|
3837
4151
|
type: Component,
|
@@ -3844,22 +4158,59 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
3844
4158
|
AXDateTimeModule,
|
3845
4159
|
AXMenuModule,
|
3846
4160
|
AXPElementDataDirective,
|
3847
|
-
], 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
|
4161
|
+
], 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"] }]
|
3848
4162
|
}] });
|
3849
4163
|
|
3850
4164
|
class AXMDocumentAttachmentWidgetEditComponent extends AXPWidgetComponent {
|
4165
|
+
constructor() {
|
4166
|
+
super(...arguments);
|
4167
|
+
this.driveService = inject(AXMDocumentManagerService);
|
4168
|
+
this.vm = inject(AXPDocumentExplorerViewModel);
|
4169
|
+
this.rootConfig = RootConfig;
|
4170
|
+
this.documentExplorer = viewChild(AXMDocumentExplorerComponent);
|
4171
|
+
this.#navigateEffect = effect(() => {
|
4172
|
+
const navigatingFolderId = this.vm.navigatingFolderId();
|
4173
|
+
if (navigatingFolderId) {
|
4174
|
+
this.loadDrive(navigatingFolderId);
|
4175
|
+
}
|
4176
|
+
});
|
4177
|
+
}
|
4178
|
+
#navigateEffect;
|
4179
|
+
ngOnInit() {
|
4180
|
+
super.ngOnInit();
|
4181
|
+
this.vm.initialize();
|
4182
|
+
this.loadDrive();
|
4183
|
+
}
|
4184
|
+
async loadDrive(folderId) {
|
4185
|
+
if (folderId) {
|
4186
|
+
await this.vm.loadFolderContents(folderId);
|
4187
|
+
}
|
4188
|
+
else {
|
4189
|
+
const root = await this.driveService.getRoot(AXMDriveScope.Platform);
|
4190
|
+
if (root.result) {
|
4191
|
+
await this.vm.loadFolderContents(root.result.id);
|
4192
|
+
}
|
4193
|
+
}
|
4194
|
+
}
|
4195
|
+
handleNavigateToFolder(folderId) {
|
4196
|
+
this.vm.navigateToFolder(folderId);
|
4197
|
+
}
|
3851
4198
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDocumentAttachmentWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
3852
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
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: i3$1.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i5$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i5$1.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: i4$1.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 }); }
|
3853
4200
|
}
|
3854
4201
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDocumentAttachmentWidgetEditComponent, decorators: [{
|
3855
4202
|
type: Component,
|
3856
|
-
args: [{
|
3857
|
-
|
3858
|
-
|
3859
|
-
|
3860
|
-
|
3861
|
-
|
3862
|
-
|
4203
|
+
args: [{ selector: 'axm-document-attachment-edit-widget', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
4204
|
+
CommonModule,
|
4205
|
+
AXMDocumentExplorerComponent,
|
4206
|
+
AXButtonComponent,
|
4207
|
+
AXDropdownButtonModule,
|
4208
|
+
AXDropdownModule,
|
4209
|
+
AXDecoratorModule,
|
4210
|
+
AXTranslationModule,
|
4211
|
+
AXButtonModule,
|
4212
|
+
AXButtonGroupModule,
|
4213
|
+
], inputs: [], providers: [AXPDocumentExplorerViewModel], 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" }]
|
3863
4214
|
}] });
|
3864
4215
|
|
3865
4216
|
var documentAttachmentWidgetEdit_component = /*#__PURE__*/Object.freeze({
|
@@ -3961,17 +4312,19 @@ function routesFacory() {
|
|
3961
4312
|
const routes = [
|
3962
4313
|
{
|
3963
4314
|
path: ':app/drive/:scope',
|
3964
|
-
|
4315
|
+
loadComponent: () => {
|
4316
|
+
return config.viewers.root();
|
4317
|
+
},
|
3965
4318
|
canActivate: [AXPAuthGuard],
|
3966
4319
|
data: { reuse: true },
|
3967
4320
|
children: [
|
3968
4321
|
{
|
3969
4322
|
path: '',
|
3970
|
-
loadComponent: () => import('./acorex-modules-document-management-drive.component-
|
4323
|
+
loadComponent: () => import('./acorex-modules-document-management-drive.component-B6az6-_w.mjs').then((c) => c.AXMDocumentDriveComponent),
|
3971
4324
|
},
|
3972
4325
|
{
|
3973
4326
|
path: ':id',
|
3974
|
-
loadComponent: () => import('./acorex-modules-document-management-drive.component-
|
4327
|
+
loadComponent: () => import('./acorex-modules-document-management-drive.component-B6az6-_w.mjs').then((c) => c.AXMDocumentDriveComponent),
|
3975
4328
|
},
|
3976
4329
|
],
|
3977
4330
|
},
|
@@ -3984,7 +4337,7 @@ class AXMDocumentManagementModule {
|
|
3984
4337
|
AXMDocumentManagementDocumentTypeMetaValueEntityModule,
|
3985
4338
|
AXMDocumentManagementDocumentTypeMetaDefinitionEntityModule,
|
3986
4339
|
AXMDocumentManagementDocumentTypeEntityModule,
|
3987
|
-
AXMDocumentManagementDocumentEntityModule, i6.AXPLayoutBuilderModule, AXMFileTypeModule] }); }
|
4340
|
+
AXMDocumentManagementDocumentEntityModule, i6.AXPLayoutBuilderModule, AXMFileTypeModule, i3$2.AXMediaViewerModule] }); }
|
3988
4341
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDocumentManagementModule, providers: [
|
3989
4342
|
{
|
3990
4343
|
provide: AXMFolderService,
|
@@ -4028,7 +4381,8 @@ class AXMDocumentManagementModule {
|
|
4028
4381
|
AXPLayoutBuilderModule.forChild({
|
4029
4382
|
widgets: [AXmFileTypeExtensionWidget, AXMDocumentAttachmentWidget],
|
4030
4383
|
}),
|
4031
|
-
AXMFileTypeModule
|
4384
|
+
AXMFileTypeModule,
|
4385
|
+
AXMediaViewerModule.forRoot()] }); }
|
4032
4386
|
}
|
4033
4387
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDocumentManagementModule, decorators: [{
|
4034
4388
|
type: NgModule,
|
@@ -4043,6 +4397,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
4043
4397
|
widgets: [AXmFileTypeExtensionWidget, AXMDocumentAttachmentWidget],
|
4044
4398
|
}),
|
4045
4399
|
AXMFileTypeModule,
|
4400
|
+
AXMediaViewerModule.forRoot(),
|
4046
4401
|
],
|
4047
4402
|
exports: [],
|
4048
4403
|
providers: [
|
@@ -4089,4 +4444,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
4089
4444
|
*/
|
4090
4445
|
|
4091
4446
|
export { AXMDocumentManagerService as A, AXMFolderServiceImpl as B, AXMEntityProvider as C, AXMMenuProvider as D, AXMSearchCommandProvider as E, AXMSettingProvider as F, RootConfig as R, AXPDocumentExplorerViewModel as a, AXMDocumentExplorerComponent as b, AXMDriveScope as c, AXMDocumentManagementModule as d, documentFactory as e, AXMDocumentManagementDocumentEntityModule as f, AXMDocumentService as g, AXMDocumentServiceImpl as h, documentTypeFactory as i, AXMDocumentManagementDocumentTypeEntityModule as j, AXMDocumentManagementDocumentTypeEntityService as k, AXMDocumentManagementDocumentTypeEntityServiceImpl as l, documentTypeMetaDefinitionfactory as m, AXMDocumentManagementDocumentTypeMetaDefinitionEntityModule as n, AXMDocumentManagementDocumentTypeMetaDefinitionEntityService as o, AXMDocumentManagementDocumentTypeMetaDefinitionEntityServiceImpl as p, documentTypeMetaValueFactory as q, AXMDocumentManagementDocumentTypeMetaValueEntityModule as r, AXMDocumentManagementDocumentTypeMetaValueEntityService as s, AXMDocumentManagementDocumentTypeMetaValueEntityServiceImpl as t, documentTypeStatusDefinitionFactory as u, AXMDocumentManagementDocumentTypeStatusDefinitionEntityModule as v, AXMDocumentManagementDocumentTypeStatusDefinitionEntityService as w, AXMDocumentManagementDocumentTypeStatusDefinitionEntityServiceImpl as x, folderFactory as y, AXMFolderService as z };
|
4092
|
-
//# sourceMappingURL=acorex-modules-document-management-acorex-modules-document-management-
|
4447
|
+
//# sourceMappingURL=acorex-modules-document-management-acorex-modules-document-management-BmLGtKDq.mjs.map
|