@acorex/modules 20.7.7 → 20.7.9
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/auth/index.d.ts +16 -2
- package/document-management/index.d.ts +33 -10
- package/fesm2022/acorex-modules-application-management.mjs +16 -1
- package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-CyabqFR8.mjs → acorex-modules-auth-acorex-modules-auth-Dg9sg98-.mjs} +32 -13
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-Dg9sg98-.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-app-chooser.component-CizgE3Bb.mjs → acorex-modules-auth-app-chooser.component-Dr8EZ7ZX.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-app-chooser.component-CizgE3Bb.mjs.map → acorex-modules-auth-app-chooser.component-Dr8EZ7ZX.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-login.module-DRVqUojm.mjs → acorex-modules-auth-login.module-C7Rt6tLk.mjs} +6 -4
- package/fesm2022/acorex-modules-auth-login.module-C7Rt6tLk.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-master.layout-C1zCbrQh.mjs → acorex-modules-auth-master.layout-CgD5kk65.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-master.layout-C1zCbrQh.mjs.map → acorex-modules-auth-master.layout-CgD5kk65.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-oauth-callback.component-DmNV6zL4.mjs → acorex-modules-auth-oauth-callback.component-CuGIGBVO.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-oauth-callback.component-DmNV6zL4.mjs.map → acorex-modules-auth-oauth-callback.component-CuGIGBVO.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-BmTCzp3t.mjs → acorex-modules-auth-password.component-C6TCAUm4.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-password.component-BmTCzp3t.mjs.map → acorex-modules-auth-password.component-C6TCAUm4.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-DSysOOu9.mjs → acorex-modules-auth-password.component-DmohsIxt.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-password.component-DSysOOu9.mjs.map → acorex-modules-auth-password.component-DmohsIxt.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-routes-oYfOJjLO.mjs → acorex-modules-auth-routes-C3162bwa.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-oYfOJjLO.mjs.map → acorex-modules-auth-routes-C3162bwa.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-DqrZiwp6.mjs → acorex-modules-auth-tenant-chooser.component-Ce-n3WC9.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-DqrZiwp6.mjs.map → acorex-modules-auth-tenant-chooser.component-Ce-n3WC9.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-Cc3x-76V.mjs → acorex-modules-auth-two-factor.module-B2nPzX-3.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-two-factor.module-Cc3x-76V.mjs.map → acorex-modules-auth-two-factor.module-B2nPzX-3.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-user-sessions.component-CiGEYKgb.mjs → acorex-modules-auth-user-sessions.component-wVKJ2KIm.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-user-sessions.component-CiGEYKgb.mjs.map → acorex-modules-auth-user-sessions.component-wVKJ2KIm.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/acorex-modules-content-management.mjs +3 -3
- package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-dashboard-management.mjs +24 -23
- package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-data-management.mjs +68 -61
- package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-CJRrn2XH.mjs → acorex-modules-document-management-drive-choose.component-ovwhHP2n.mjs} +4 -4
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-CJRrn2XH.mjs.map → acorex-modules-document-management-drive-choose.component-ovwhHP2n.mjs.map} +1 -1
- package/fesm2022/acorex-modules-document-management.mjs +363 -231
- package/fesm2022/acorex-modules-document-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-help-desk-acorex-modules-help-desk-DGgHWrL0.mjs → acorex-modules-help-desk-acorex-modules-help-desk-CydmGF5Q.mjs} +8 -4
- package/fesm2022/{acorex-modules-help-desk-acorex-modules-help-desk-DGgHWrL0.mjs.map → acorex-modules-help-desk-acorex-modules-help-desk-CydmGF5Q.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-help-desk-capture-screen.component-CAknGKEK.mjs → acorex-modules-help-desk-capture-screen.component-Bsq1FJId.mjs} +2 -2
- package/fesm2022/{acorex-modules-help-desk-capture-screen.component-CAknGKEK.mjs.map → acorex-modules-help-desk-capture-screen.component-Bsq1FJId.mjs.map} +1 -1
- package/fesm2022/acorex-modules-help-desk.mjs +1 -1
- package/fesm2022/acorex-modules-human-capital-management.mjs +41 -26
- package/fesm2022/acorex-modules-human-capital-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-C85uluWf.mjs → acorex-modules-organization-management-org-chart.page-Ca_aJDbu.mjs} +19 -13
- package/fesm2022/acorex-modules-organization-management-org-chart.page-Ca_aJDbu.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management.mjs +2 -2
- package/fesm2022/{acorex-modules-person-management-person.entity-BtaGNj8n.mjs → acorex-modules-person-management-person.entity-CaEVw1mL.mjs} +2 -2
- package/fesm2022/acorex-modules-person-management-person.entity-CaEVw1mL.mjs.map +1 -0
- package/fesm2022/acorex-modules-person-management.mjs +1 -1
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-DEx13GSy.mjs → acorex-modules-platform-management-acorex-modules-platform-management-DVkP3JKC.mjs} +1188 -341
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-DVkP3JKC.mjs.map +1 -0
- package/fesm2022/acorex-modules-platform-management-menu-list.component-C_mdsuRc.mjs +519 -0
- package/fesm2022/acorex-modules-platform-management-menu-list.component-C_mdsuRc.mjs.map +1 -0
- package/fesm2022/acorex-modules-platform-management.mjs +1 -1
- package/fesm2022/acorex-modules-report-management.mjs +27 -6
- package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management.mjs +15 -9
- package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
- package/package.json +2 -2
- package/platform-management/index.d.ts +12 -1
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-CyabqFR8.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-login.module-DRVqUojm.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-org-chart.page-C85uluWf.mjs.map +0 -1
- package/fesm2022/acorex-modules-person-management-person.entity-BtaGNj8n.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-DEx13GSy.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-menu-list.component-DLg61Nf8.mjs +0 -853
- package/fesm2022/acorex-modules-platform-management-menu-list.component-DLg61Nf8.mjs.map +0 -1
|
@@ -3,8 +3,8 @@ import { AXPEntityService, AXMEntityCrudServiceImpl, entityMasterCrudActions, en
|
|
|
3
3
|
import { AXPHookService, AXPPlatformScope, AXPDataGenerator, AXP_MODULE_MANIFEST_PROVIDER, AXP_FEATURE_DEFINITION_PROVIDER, AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, AXPDeviceService, resolvePlatformScopeKey, resolvePlatformScopeName } from '@acorex/platform/core';
|
|
4
4
|
import { AXPSearchCommandProvider, createAllQueryView, createQueryView, AXPEntityCommandScope, AXPEntityQueryType, AXPFileTypeProviderService, AXP_FILE_TYPE_INFO_PROVIDER, AXPFileStorageService, AXPFilterOperatorMiddlewareService, AXPSettingsService, AXPLockService, UploadFromComputerActionProvider, AXP_FILE_ACTION_PROVIDER, AXP_MENU_PROVIDER, AXP_SEARCH_PROVIDER } from '@acorex/platform/common';
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
|
-
import { Injectable, inject, Injector, NgModule, ChangeDetectionStrategy, Component, signal,
|
|
7
|
-
import * as i3$
|
|
6
|
+
import { Injectable, inject, Injector, NgModule, ChangeDetectionStrategy, Component, signal, computed, viewChild, input, effect, ViewEncapsulation, untracked, HostListener } from '@angular/core';
|
|
7
|
+
import * as i3$2 from '@acorex/core/translation';
|
|
8
8
|
import { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
|
|
9
9
|
import { firstValueFrom } from 'rxjs';
|
|
10
10
|
import * as i6 from '@acorex/platform/layout/widget-core';
|
|
@@ -14,7 +14,7 @@ import { set, castArray, get as get$1 } from 'lodash-es';
|
|
|
14
14
|
import { AXDataSource } from '@acorex/cdk/common';
|
|
15
15
|
import * as i7 from '@acorex/components/collapse';
|
|
16
16
|
import { AXCollapseModule } from '@acorex/components/collapse';
|
|
17
|
-
import * as
|
|
17
|
+
import * as i4$1 from '@acorex/components/decorators';
|
|
18
18
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
19
19
|
import * as i3 from '@acorex/components/form';
|
|
20
20
|
import { AXFormModule } from '@acorex/components/form';
|
|
@@ -27,25 +27,25 @@ import { FormsModule } from '@angular/forms';
|
|
|
27
27
|
import get from 'lodash-es/get';
|
|
28
28
|
import set$1 from 'lodash-es/set';
|
|
29
29
|
import { AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY } from '@acorex/platform/layout/widgets';
|
|
30
|
-
import * as
|
|
31
|
-
import {
|
|
32
|
-
import * as i1$
|
|
30
|
+
import * as i2$2 from '@acorex/components/media-viewer';
|
|
31
|
+
import { AXMediaViewerModule } from '@acorex/components/media-viewer';
|
|
32
|
+
import * as i1$1 from '@acorex/components/button';
|
|
33
33
|
import { AXButtonModule } from '@acorex/components/button';
|
|
34
34
|
import { AXBasePageComponent } from '@acorex/components/page';
|
|
35
35
|
import { AXLoadingModule } from '@acorex/components/loading';
|
|
36
36
|
import * as i2$1 from '@acorex/components/menu';
|
|
37
37
|
import { AXMenuModule } from '@acorex/components/menu';
|
|
38
38
|
import { AXDateTimeModule } from '@acorex/core/date-time';
|
|
39
|
-
import * as i2$
|
|
39
|
+
import * as i2$3 from '@acorex/core/format';
|
|
40
40
|
import { AXFormatModule } from '@acorex/core/format';
|
|
41
41
|
import { AXPStateMessageComponent, AXPThemeLayoutBlockComponent } from '@acorex/platform/layout/components';
|
|
42
42
|
import { AXPLayoutThemeService } from '@acorex/platform/themes/shared';
|
|
43
|
-
import * as i1$
|
|
43
|
+
import * as i1$2 from '@angular/common';
|
|
44
44
|
import { CommonModule } from '@angular/common';
|
|
45
45
|
import { AXDialogService } from '@acorex/components/dialog';
|
|
46
46
|
import { AXPopupService } from '@acorex/components/popup';
|
|
47
47
|
import { AXPLayoutBuilderService } from '@acorex/platform/layout/builder';
|
|
48
|
-
import * as i3$
|
|
48
|
+
import * as i3$1 from '@acorex/platform/workflow';
|
|
49
49
|
import { AXPWorkflowService, AXPWorkflowAction, AXPWorkflowModule } from '@acorex/platform/workflow';
|
|
50
50
|
import { AXFileService, AXFileModule } from '@acorex/core/file';
|
|
51
51
|
import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';
|
|
@@ -53,7 +53,7 @@ import { AXUploaderService } from '@acorex/cdk/uploader';
|
|
|
53
53
|
import { AXBadgeModule } from '@acorex/components/badge';
|
|
54
54
|
import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
|
|
55
55
|
import { AXButtonGroupModule } from '@acorex/components/button-group';
|
|
56
|
-
import * as i2$
|
|
56
|
+
import * as i2$4 from '@acorex/components/dropdown';
|
|
57
57
|
import { AXDropdownModule } from '@acorex/components/dropdown';
|
|
58
58
|
import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
|
|
59
59
|
import * as i5 from '@acorex/components/search-box';
|
|
@@ -1239,16 +1239,6 @@ async function documentTypeFactory(injector) {
|
|
|
1239
1239
|
},
|
|
1240
1240
|
},
|
|
1241
1241
|
},
|
|
1242
|
-
// {
|
|
1243
|
-
// name: 'meta',
|
|
1244
|
-
// layout: {
|
|
1245
|
-
// positions: {
|
|
1246
|
-
// lg: {
|
|
1247
|
-
// colSpan: 12,
|
|
1248
|
-
// },
|
|
1249
|
-
// },
|
|
1250
|
-
// },
|
|
1251
|
-
// },
|
|
1252
1242
|
{
|
|
1253
1243
|
name: 'type',
|
|
1254
1244
|
layout: {
|
|
@@ -1265,7 +1255,7 @@ async function documentTypeFactory(injector) {
|
|
|
1265
1255
|
title: '{{title}}',
|
|
1266
1256
|
sections: [
|
|
1267
1257
|
{
|
|
1268
|
-
id: '
|
|
1258
|
+
id: 'basic-info',
|
|
1269
1259
|
layout: {
|
|
1270
1260
|
positions: {
|
|
1271
1261
|
lg: {
|
|
@@ -3798,7 +3788,7 @@ class AXMFileTypeExtensionWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
3798
3788
|
</ax-collapse-group>
|
|
3799
3789
|
}
|
|
3800
3790
|
</axp-widgets-container>
|
|
3801
|
-
</div>`, isInline: true, dependencies: [{ 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", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { 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: i3.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:
|
|
3791
|
+
</div>`, isInline: true, dependencies: [{ 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", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { 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: i3.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: i4$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: AXPWidgetCoreModule }, { 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"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXCollapseModule }, { kind: "component", type: i7.AXCollapseComponent, selector: "ax-collapse", inputs: ["disabled", "look", "isCollapsed", "showHeader", "caption", "icon", "isLoading", "headerTemplate"], outputs: ["onClick", "isCollapsedChange"] }, { kind: "component", type: i7.AXCollapseGroupComponent, selector: "ax-collapse-group", inputs: ["look", "accordion", "activeIndex"], outputs: ["accordionChange", "activeIndexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3802
3792
|
}
|
|
3803
3793
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXMFileTypeExtensionWidgetEditComponent, decorators: [{
|
|
3804
3794
|
type: Component,
|
|
@@ -4009,29 +3999,83 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
4009
3999
|
}]
|
|
4010
4000
|
}] });
|
|
4011
4001
|
|
|
4012
|
-
|
|
4002
|
+
//#region ---- Imports ----
|
|
4003
|
+
//#endregion
|
|
4004
|
+
/**
|
|
4005
|
+
* File gallery popup component that displays files using the gallery widget.
|
|
4006
|
+
* This component replaces the old file-viewer-popup and uses the same
|
|
4007
|
+
* gallery widget pattern as test8.
|
|
4008
|
+
*/
|
|
4009
|
+
class AXMFileGalleryPopupComponent extends AXBasePageComponent {
|
|
4013
4010
|
constructor() {
|
|
4014
4011
|
super(...arguments);
|
|
4015
|
-
|
|
4016
|
-
|
|
4017
|
-
|
|
4018
|
-
|
|
4019
|
-
this.
|
|
4012
|
+
//#region ---- Class Properties ----
|
|
4013
|
+
/** File list items received from popup data */
|
|
4014
|
+
this.files = signal([], ...(ngDevMode ? [{ debugName: "files" }] : []));
|
|
4015
|
+
/** Starting index for the media viewer */
|
|
4016
|
+
this.startIndex = 0;
|
|
4017
|
+
/** Widget context for the gallery */
|
|
4018
|
+
this.context = signal({}, ...(ngDevMode ? [{ debugName: "context" }] : []));
|
|
4019
|
+
//#endregion
|
|
4020
|
+
//#region ---- Computed Properties ----
|
|
4021
|
+
/**
|
|
4022
|
+
* Gallery widget node configuration
|
|
4023
|
+
*/
|
|
4024
|
+
this.galleryNode = computed(() => ({
|
|
4025
|
+
type: 'gallery',
|
|
4026
|
+
path: 'galleryFiles',
|
|
4027
|
+
defaultValue: this.files(),
|
|
4028
|
+
options: {
|
|
4029
|
+
thumbnail: true,
|
|
4030
|
+
header: true,
|
|
4031
|
+
fileInfo: true,
|
|
4032
|
+
fullScreenButton: true,
|
|
4033
|
+
allowUpload: false,
|
|
4034
|
+
height: '100%',
|
|
4035
|
+
},
|
|
4036
|
+
}), ...(ngDevMode ? [{ debugName: "galleryNode" }] : []));
|
|
4020
4037
|
}
|
|
4038
|
+
//#endregion
|
|
4039
|
+
//#region ---- UI Handlers ----
|
|
4040
|
+
/**
|
|
4041
|
+
* Close the popup
|
|
4042
|
+
*/
|
|
4021
4043
|
onClose() {
|
|
4022
4044
|
this.close();
|
|
4023
4045
|
}
|
|
4024
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type:
|
|
4025
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
4046
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXMFileGalleryPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
4047
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: AXMFileGalleryPopupComponent, isStandalone: true, selector: "axm-file-gallery-popup", usesInheritance: true, ngImport: i0, template: `
|
|
4048
|
+
<ax-content>
|
|
4049
|
+
<axp-widgets-container class="ax-block ax-h-full" [context]="context()">
|
|
4050
|
+
<ng-container axp-widget-renderer [node]="galleryNode()" [mode]="'edit'"></ng-container>
|
|
4051
|
+
</axp-widgets-container>
|
|
4052
|
+
</ax-content>
|
|
4053
|
+
<ax-footer>
|
|
4054
|
+
<ax-suffix>
|
|
4055
|
+
<ax-button [text]="'close'" (click)="onClose()" />
|
|
4056
|
+
</ax-suffix>
|
|
4057
|
+
</ax-footer>
|
|
4058
|
+
`, isInline: true, styles: [":host{display:block;height:100%}ax-content{height:calc(100% - 60px)}\n"], dependencies: [{ kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4$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: AXButtonModule }, { kind: "component", type: i1$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: AXPWidgetCoreModule }, { 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"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4026
4059
|
}
|
|
4027
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type:
|
|
4060
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXMFileGalleryPopupComponent, decorators: [{
|
|
4028
4061
|
type: Component,
|
|
4029
|
-
args: [{
|
|
4030
|
-
|
|
4062
|
+
args: [{ selector: 'axm-file-gallery-popup', template: `
|
|
4063
|
+
<ax-content>
|
|
4064
|
+
<axp-widgets-container class="ax-block ax-h-full" [context]="context()">
|
|
4065
|
+
<ng-container axp-widget-renderer [node]="galleryNode()" [mode]="'edit'"></ng-container>
|
|
4066
|
+
</axp-widgets-container>
|
|
4067
|
+
</ax-content>
|
|
4068
|
+
<ax-footer>
|
|
4069
|
+
<ax-suffix>
|
|
4070
|
+
<ax-button [text]="'close'" (click)="onClose()" />
|
|
4071
|
+
</ax-suffix>
|
|
4072
|
+
</ax-footer>
|
|
4073
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXDecoratorModule, AXButtonModule, AXPWidgetCoreModule], styles: [":host{display:block;height:100%}ax-content{height:calc(100% - 60px)}\n"] }]
|
|
4074
|
+
}] });
|
|
4031
4075
|
|
|
4032
|
-
var
|
|
4076
|
+
var fileGalleryPopup_component = /*#__PURE__*/Object.freeze({
|
|
4033
4077
|
__proto__: null,
|
|
4034
|
-
|
|
4078
|
+
AXMFileGalleryPopupComponent: AXMFileGalleryPopupComponent
|
|
4035
4079
|
});
|
|
4036
4080
|
|
|
4037
4081
|
class AXPDocumentManagementService {
|
|
@@ -4061,7 +4105,7 @@ class AXMDocumentDialogService {
|
|
|
4061
4105
|
}
|
|
4062
4106
|
// Initialize files array context with default values
|
|
4063
4107
|
initialContext['files'] = fileList.map(item => ({ file: [item] }));
|
|
4064
|
-
const
|
|
4108
|
+
const result = await this.layoutBuilder
|
|
4065
4109
|
.create()
|
|
4066
4110
|
.dialog(dialog => {
|
|
4067
4111
|
dialog
|
|
@@ -4093,55 +4137,65 @@ class AXMDocumentDialogService {
|
|
|
4093
4137
|
.setActions(actions => {
|
|
4094
4138
|
actions.cancel('@general:actions.cancel.title');
|
|
4095
4139
|
actions.submit('@general:actions.submit.title');
|
|
4096
|
-
})
|
|
4140
|
+
})
|
|
4141
|
+
.setCloseButton(true)
|
|
4142
|
+
.onAction(async (dialogRef) => {
|
|
4143
|
+
const action = dialogRef.action();
|
|
4144
|
+
if (action === 'cancel') {
|
|
4145
|
+
return { data: { cancel: true } };
|
|
4146
|
+
}
|
|
4147
|
+
const ctx = dialogRef.context();
|
|
4148
|
+
if (documentId) {
|
|
4149
|
+
dialogRef.setLoading(true);
|
|
4150
|
+
try {
|
|
4151
|
+
const updatePayload = { version: (version ?? 0) + 1 };
|
|
4152
|
+
if (showMeta) {
|
|
4153
|
+
updatePayload.metaDataForm = ctx?.['file-0']?.['metaDataForm'];
|
|
4154
|
+
}
|
|
4155
|
+
await this.documentService.updateOne(documentId, updatePayload);
|
|
4156
|
+
return {
|
|
4157
|
+
data: {
|
|
4158
|
+
cancel: false,
|
|
4159
|
+
fileIds: [documentId],
|
|
4160
|
+
},
|
|
4161
|
+
};
|
|
4162
|
+
}
|
|
4163
|
+
finally {
|
|
4164
|
+
dialogRef.setLoading(false);
|
|
4165
|
+
}
|
|
4166
|
+
}
|
|
4167
|
+
dialogRef.setLoading(true);
|
|
4168
|
+
try {
|
|
4169
|
+
const promises = (ctx?.['files']).map(async (item, index) => {
|
|
4170
|
+
const f = fileList[index];
|
|
4171
|
+
const newId = await this.documentService.insertOne({
|
|
4172
|
+
fileId: f,
|
|
4173
|
+
name: f?.name,
|
|
4174
|
+
title: f?.name,
|
|
4175
|
+
documentType,
|
|
4176
|
+
parentId,
|
|
4177
|
+
size: f?.size || 0,
|
|
4178
|
+
status: 'Draft',
|
|
4179
|
+
version: (version ?? 0) + 1,
|
|
4180
|
+
metaDataForm: ctx?.[`file-${index}`]?.['metaDataForm'],
|
|
4181
|
+
});
|
|
4182
|
+
return newId;
|
|
4183
|
+
});
|
|
4184
|
+
const fileIds = await Promise.all(promises);
|
|
4185
|
+
return {
|
|
4186
|
+
data: {
|
|
4187
|
+
cancel: false,
|
|
4188
|
+
fileIds,
|
|
4189
|
+
},
|
|
4190
|
+
};
|
|
4191
|
+
}
|
|
4192
|
+
finally {
|
|
4193
|
+
dialogRef.setLoading(false);
|
|
4194
|
+
}
|
|
4195
|
+
});
|
|
4097
4196
|
})
|
|
4098
4197
|
.show();
|
|
4099
|
-
|
|
4100
|
-
if (action === 'cancel') {
|
|
4101
|
-
dialogRef.close();
|
|
4102
|
-
return { data: { cancel: true } };
|
|
4103
|
-
}
|
|
4104
|
-
const ctx = dialogRef.context();
|
|
4105
|
-
if (documentId) {
|
|
4106
|
-
dialogRef.setLoading(true);
|
|
4107
|
-
const updatePayload = { version: (version ?? 0) + 1 };
|
|
4108
|
-
if (showMeta) {
|
|
4109
|
-
updatePayload.metaDataForm = ctx?.['file-0']?.['metaDataForm'];
|
|
4110
|
-
}
|
|
4111
|
-
await this.documentService.updateOne(documentId, updatePayload);
|
|
4112
|
-
dialogRef.close();
|
|
4113
|
-
return {
|
|
4114
|
-
data: {
|
|
4115
|
-
cancel: false,
|
|
4116
|
-
fileIds: [documentId],
|
|
4117
|
-
},
|
|
4118
|
-
};
|
|
4119
|
-
}
|
|
4120
|
-
const promises = (ctx?.['files']).map(async (item, index) => {
|
|
4121
|
-
// Use original selected file item to preserve blob/source for storage
|
|
4122
|
-
const f = fileList[index];
|
|
4123
|
-
const newId = await this.documentService.insertOne({
|
|
4124
|
-
fileId: f,
|
|
4125
|
-
name: f?.name,
|
|
4126
|
-
title: f?.name,
|
|
4127
|
-
documentType,
|
|
4128
|
-
parentId,
|
|
4129
|
-
size: f?.size || 0,
|
|
4130
|
-
status: 'Draft',
|
|
4131
|
-
version: (version ?? 0) + 1,
|
|
4132
|
-
metaDataForm: ctx?.[`file-${index}`]?.['metaDataForm'],
|
|
4133
|
-
});
|
|
4134
|
-
return newId;
|
|
4135
|
-
});
|
|
4136
|
-
dialogRef.setLoading(true);
|
|
4137
|
-
const fileIds = await Promise.all(promises);
|
|
4138
|
-
dialogRef.close();
|
|
4139
|
-
return {
|
|
4140
|
-
data: {
|
|
4141
|
-
cancel: false,
|
|
4142
|
-
fileIds,
|
|
4143
|
-
},
|
|
4144
|
-
};
|
|
4198
|
+
return result;
|
|
4145
4199
|
}
|
|
4146
4200
|
async openAttachmentDialogWithoutSave(title, data) {
|
|
4147
4201
|
const { documentType, files, parentId, metaData, documentId, showMeta = true } = data ?? {};
|
|
@@ -4156,7 +4210,7 @@ class AXMDocumentDialogService {
|
|
|
4156
4210
|
}
|
|
4157
4211
|
// Initialize files array context with default values
|
|
4158
4212
|
initialContext['files'] = fileList.map(item => ({ file: [item] }));
|
|
4159
|
-
const
|
|
4213
|
+
const result = await this.layoutBuilder
|
|
4160
4214
|
.create()
|
|
4161
4215
|
.dialog(dialog => {
|
|
4162
4216
|
dialog
|
|
@@ -4187,34 +4241,35 @@ class AXMDocumentDialogService {
|
|
|
4187
4241
|
})
|
|
4188
4242
|
.setActions(actions => {
|
|
4189
4243
|
actions.cancel('@general:actions.cancel.title').submit('@general:actions.submit.title');
|
|
4244
|
+
})
|
|
4245
|
+
.onAction(async (dialogRef) => {
|
|
4246
|
+
const action = dialogRef.action();
|
|
4247
|
+
if (action === 'cancel') {
|
|
4248
|
+
return {
|
|
4249
|
+
data: {
|
|
4250
|
+
cancel: true,
|
|
4251
|
+
},
|
|
4252
|
+
};
|
|
4253
|
+
}
|
|
4254
|
+
const ctx = dialogRef.context();
|
|
4255
|
+
return {
|
|
4256
|
+
data: {
|
|
4257
|
+
cancel: false,
|
|
4258
|
+
files: (ctx?.['files']).map((item, index) => ({
|
|
4259
|
+
...item,
|
|
4260
|
+
...(showMeta ? { metaDataForm: ctx?.[`file-${index}`]?.['metaDataForm'] } : {}),
|
|
4261
|
+
})),
|
|
4262
|
+
},
|
|
4263
|
+
};
|
|
4190
4264
|
});
|
|
4191
4265
|
})
|
|
4192
4266
|
.show();
|
|
4193
|
-
|
|
4194
|
-
if (action === 'cancel') {
|
|
4195
|
-
dialogRef.close();
|
|
4196
|
-
return {
|
|
4197
|
-
data: {
|
|
4198
|
-
cancel: true,
|
|
4199
|
-
},
|
|
4200
|
-
};
|
|
4201
|
-
}
|
|
4202
|
-
const ctx = dialogRef.context();
|
|
4203
|
-
dialogRef.close();
|
|
4204
|
-
return {
|
|
4205
|
-
data: {
|
|
4206
|
-
cancel: false,
|
|
4207
|
-
files: (ctx?.['files']).map((item, index) => ({
|
|
4208
|
-
...item,
|
|
4209
|
-
...(showMeta ? { metaDataForm: ctx?.[`file-${index}`]?.['metaDataForm'] } : {}),
|
|
4210
|
-
})),
|
|
4211
|
-
},
|
|
4212
|
-
};
|
|
4267
|
+
return result;
|
|
4213
4268
|
}
|
|
4214
4269
|
async chooseDocumentType() {
|
|
4215
4270
|
const res = await this.documentTypeService.query({ skip: 0, take: 100 });
|
|
4216
4271
|
const items = (res?.items ?? []).map((x) => ({ value: x.id, text: x.title }));
|
|
4217
|
-
const
|
|
4272
|
+
const result = await this.layoutBuilder
|
|
4218
4273
|
.create()
|
|
4219
4274
|
.dialog(dialog => {
|
|
4220
4275
|
dialog
|
|
@@ -4230,16 +4285,18 @@ class AXMDocumentDialogService {
|
|
|
4230
4285
|
})
|
|
4231
4286
|
.setActions(actions => {
|
|
4232
4287
|
actions.cancel('@general:actions.cancel.title').submit('@general:actions.submit.title');
|
|
4288
|
+
})
|
|
4289
|
+
.onAction(async (dialogRef) => {
|
|
4290
|
+
const action = dialogRef.action();
|
|
4291
|
+
if (action === 'cancel') {
|
|
4292
|
+
return { cancelled: true };
|
|
4293
|
+
}
|
|
4294
|
+
const ctx = dialogRef.context();
|
|
4295
|
+
return { cancelled: false, documentTypeId: ctx?.documentTypeId };
|
|
4233
4296
|
});
|
|
4234
4297
|
})
|
|
4235
4298
|
.show();
|
|
4236
|
-
|
|
4237
|
-
if (action === 'cancel') {
|
|
4238
|
-
ref.close();
|
|
4239
|
-
return { cancelled: true };
|
|
4240
|
-
}
|
|
4241
|
-
const ctx = ref.context();
|
|
4242
|
-
return { cancelled: false, documentTypeId: ctx?.documentTypeId };
|
|
4299
|
+
return result;
|
|
4243
4300
|
}
|
|
4244
4301
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXMDocumentDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4245
4302
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXMDocumentDialogService, providedIn: 'root' }); }
|
|
@@ -5017,7 +5074,7 @@ class AXMDocumentManagerService {
|
|
|
5017
5074
|
* Moves a node to another location
|
|
5018
5075
|
*/
|
|
5019
5076
|
async moveTo(options) {
|
|
5020
|
-
const comp = (await import('./acorex-modules-document-management-drive-choose.component-
|
|
5077
|
+
const comp = (await import('./acorex-modules-document-management-drive-choose.component-ovwhHP2n.mjs')).AXMDocumentDriveChooseComponent;
|
|
5021
5078
|
const popup = await this.popupService.open(comp, {
|
|
5022
5079
|
title: `Choose ${options.browseMode == 'file' ? 'File' : 'Folder'}`,
|
|
5023
5080
|
data: {
|
|
@@ -5050,7 +5107,7 @@ class AXMDocumentManagerService {
|
|
|
5050
5107
|
* Copies a node to another location
|
|
5051
5108
|
*/
|
|
5052
5109
|
async copyTo(options) {
|
|
5053
|
-
const comp = (await import('./acorex-modules-document-management-drive-choose.component-
|
|
5110
|
+
const comp = (await import('./acorex-modules-document-management-drive-choose.component-ovwhHP2n.mjs')).AXMDocumentDriveChooseComponent;
|
|
5054
5111
|
const popup = await this.popupService.open(comp, {
|
|
5055
5112
|
title: `Choose ${options.browseMode == 'file' ? 'File' : 'Folder'}`,
|
|
5056
5113
|
data: {
|
|
@@ -5268,7 +5325,7 @@ class AXMDocumentManagerService {
|
|
|
5268
5325
|
// Load document types for selection
|
|
5269
5326
|
const res = await this.documentTypeService.query({ skip: 0, take: 1000 });
|
|
5270
5327
|
const items = res?.items ?? [];
|
|
5271
|
-
const
|
|
5328
|
+
const result = await this.layoutBuilder
|
|
5272
5329
|
.create()
|
|
5273
5330
|
.dialog((dialog) => {
|
|
5274
5331
|
dialog
|
|
@@ -5320,32 +5377,28 @@ class AXMDocumentManagerService {
|
|
|
5320
5377
|
})
|
|
5321
5378
|
.setActions((actions) => {
|
|
5322
5379
|
actions.cancel('@general:actions.cancel.title').submit('@general:actions.save.title');
|
|
5380
|
+
})
|
|
5381
|
+
.onAction(async (dialogRef) => {
|
|
5382
|
+
const context = dialogRef.context();
|
|
5383
|
+
const action = dialogRef.action();
|
|
5384
|
+
if (!context || action === 'cancel') {
|
|
5385
|
+
return false;
|
|
5386
|
+
}
|
|
5387
|
+
const form = context;
|
|
5388
|
+
const selected = Array.isArray(form.documentTypes) ? form.documentTypes : [];
|
|
5389
|
+
const selectedTypes = selected.map((v) => typeof v === 'object' ? v : items.find((it) => it.name === v) || { name: v, title: v, id: v });
|
|
5390
|
+
await this.updateFolder(node.id, {
|
|
5391
|
+
name: form.name,
|
|
5392
|
+
description: form.description,
|
|
5393
|
+
inherit: form.inherit,
|
|
5394
|
+
documentTypes: selectedTypes,
|
|
5395
|
+
color: form.color,
|
|
5396
|
+
});
|
|
5397
|
+
return true;
|
|
5323
5398
|
});
|
|
5324
5399
|
})
|
|
5325
5400
|
.show();
|
|
5326
|
-
|
|
5327
|
-
const action = dialogRef.action();
|
|
5328
|
-
if (action !== 'submit') {
|
|
5329
|
-
dialogRef.close();
|
|
5330
|
-
return false;
|
|
5331
|
-
}
|
|
5332
|
-
dialogRef.setLoading(true);
|
|
5333
|
-
try {
|
|
5334
|
-
const selected = Array.isArray(form.documentTypes) ? form.documentTypes : [];
|
|
5335
|
-
const selectedTypes = selected.map((v) => typeof v === 'object' ? v : items.find((it) => it.name === v) || { name: v, title: v, id: v });
|
|
5336
|
-
await this.updateFolder(node.id, {
|
|
5337
|
-
name: form.name,
|
|
5338
|
-
description: form.description,
|
|
5339
|
-
inherit: form.inherit,
|
|
5340
|
-
documentTypes: selectedTypes,
|
|
5341
|
-
color: form.color,
|
|
5342
|
-
});
|
|
5343
|
-
return true;
|
|
5344
|
-
}
|
|
5345
|
-
finally {
|
|
5346
|
-
dialogRef.setLoading(false);
|
|
5347
|
-
dialogRef.close();
|
|
5348
|
-
}
|
|
5401
|
+
return result;
|
|
5349
5402
|
}
|
|
5350
5403
|
/**
|
|
5351
5404
|
* Shows create folder dialog
|
|
@@ -5354,7 +5407,7 @@ class AXMDocumentManagerService {
|
|
|
5354
5407
|
// Load document types for selection
|
|
5355
5408
|
const res = await this.documentTypeService.query({ skip: 0, take: 1000 });
|
|
5356
5409
|
const items = res?.items ?? [];
|
|
5357
|
-
const
|
|
5410
|
+
const result = await this.layoutBuilder
|
|
5358
5411
|
.create()
|
|
5359
5412
|
.dialog((dialog) => {
|
|
5360
5413
|
dialog
|
|
@@ -5400,38 +5453,34 @@ class AXMDocumentManagerService {
|
|
|
5400
5453
|
})
|
|
5401
5454
|
.setActions((actions) => {
|
|
5402
5455
|
actions.cancel('@general:actions.cancel.title').submit('@general:actions.save.title');
|
|
5456
|
+
})
|
|
5457
|
+
.onAction(async (dialogRef) => {
|
|
5458
|
+
const context = dialogRef.context();
|
|
5459
|
+
const action = dialogRef.action();
|
|
5460
|
+
if (!context || action === 'cancel') {
|
|
5461
|
+
return null;
|
|
5462
|
+
}
|
|
5463
|
+
const form = context;
|
|
5464
|
+
const folder = await this.createFolder({
|
|
5465
|
+
name: form.name,
|
|
5466
|
+
color: form.color,
|
|
5467
|
+
parentId,
|
|
5468
|
+
description: form.description,
|
|
5469
|
+
documentTypes: form.documentTypes,
|
|
5470
|
+
size: 0,
|
|
5471
|
+
inherit: form.inherit,
|
|
5472
|
+
});
|
|
5473
|
+
return folder;
|
|
5403
5474
|
});
|
|
5404
5475
|
})
|
|
5405
5476
|
.show();
|
|
5406
|
-
|
|
5407
|
-
const action = dialogRef.action();
|
|
5408
|
-
if (action !== 'submit') {
|
|
5409
|
-
dialogRef.close();
|
|
5410
|
-
return null;
|
|
5411
|
-
}
|
|
5412
|
-
dialogRef.setLoading(true);
|
|
5413
|
-
try {
|
|
5414
|
-
const folder = await this.createFolder({
|
|
5415
|
-
name: form.name,
|
|
5416
|
-
color: form.color,
|
|
5417
|
-
parentId,
|
|
5418
|
-
description: form.description,
|
|
5419
|
-
documentTypes: form.documentTypes,
|
|
5420
|
-
size: 0,
|
|
5421
|
-
inherit: form.inherit,
|
|
5422
|
-
});
|
|
5423
|
-
return folder;
|
|
5424
|
-
}
|
|
5425
|
-
finally {
|
|
5426
|
-
dialogRef.setLoading(false);
|
|
5427
|
-
dialogRef.close();
|
|
5428
|
-
}
|
|
5477
|
+
return result;
|
|
5429
5478
|
}
|
|
5430
5479
|
/**
|
|
5431
5480
|
* Shows rename popup for a node using dynamic form builder
|
|
5432
5481
|
*/
|
|
5433
5482
|
async showRenamePopup(node) {
|
|
5434
|
-
const
|
|
5483
|
+
const result = await this.layoutBuilder
|
|
5435
5484
|
.create()
|
|
5436
5485
|
.dialog((dialog) => {
|
|
5437
5486
|
dialog
|
|
@@ -5448,42 +5497,32 @@ class AXMDocumentManagerService {
|
|
|
5448
5497
|
})
|
|
5449
5498
|
.setActions((actions) => {
|
|
5450
5499
|
actions.cancel().submit('@general:actions.save.title');
|
|
5451
|
-
})
|
|
5452
|
-
|
|
5453
|
-
|
|
5454
|
-
|
|
5455
|
-
|
|
5456
|
-
|
|
5457
|
-
if (action === 'submit' && formData?.name) {
|
|
5458
|
-
// Set loading state
|
|
5459
|
-
dialogRef.setLoading(true);
|
|
5460
|
-
try {
|
|
5461
|
-
let updatedNode;
|
|
5462
|
-
if (node.type === 'folder') {
|
|
5463
|
-
updatedNode = await this.updateFolder(node.id, {
|
|
5464
|
-
name: formData.name,
|
|
5465
|
-
});
|
|
5500
|
+
})
|
|
5501
|
+
.onAction(async (dialogRef) => {
|
|
5502
|
+
const context = dialogRef.context();
|
|
5503
|
+
const action = dialogRef.action();
|
|
5504
|
+
if (!context || action === 'cancel') {
|
|
5505
|
+
return undefined;
|
|
5466
5506
|
}
|
|
5467
|
-
|
|
5507
|
+
const formData = context;
|
|
5508
|
+
if (!formData?.name) {
|
|
5509
|
+
return undefined;
|
|
5510
|
+
}
|
|
5511
|
+
dialogRef.setLoading(true);
|
|
5512
|
+
try {
|
|
5513
|
+
if (node.type === 'folder') {
|
|
5514
|
+
return await this.updateFolder(node.id, { name: formData.name });
|
|
5515
|
+
}
|
|
5468
5516
|
await this.updateFileName(node, formData.name);
|
|
5469
|
-
|
|
5470
|
-
name: formData.name,
|
|
5471
|
-
});
|
|
5517
|
+
return await this.updateFile(node.id, { name: formData.name });
|
|
5472
5518
|
}
|
|
5473
|
-
|
|
5474
|
-
|
|
5475
|
-
|
|
5476
|
-
|
|
5477
|
-
|
|
5478
|
-
|
|
5479
|
-
|
|
5480
|
-
dialogRef.close();
|
|
5481
|
-
}
|
|
5482
|
-
}
|
|
5483
|
-
else {
|
|
5484
|
-
dialogRef.close();
|
|
5485
|
-
}
|
|
5486
|
-
return undefined;
|
|
5519
|
+
finally {
|
|
5520
|
+
dialogRef.setLoading(false);
|
|
5521
|
+
}
|
|
5522
|
+
});
|
|
5523
|
+
})
|
|
5524
|
+
.show();
|
|
5525
|
+
return result;
|
|
5487
5526
|
}
|
|
5488
5527
|
/**
|
|
5489
5528
|
* Shows delete nodes confirmation dialog
|
|
@@ -5501,7 +5540,7 @@ class AXMDocumentManagerService {
|
|
|
5501
5540
|
* Shows choose file dialog
|
|
5502
5541
|
*/
|
|
5503
5542
|
async showChooseFileDialog(scope) {
|
|
5504
|
-
const comp = (await import('./acorex-modules-document-management-drive-choose.component-
|
|
5543
|
+
const comp = (await import('./acorex-modules-document-management-drive-choose.component-ovwhHP2n.mjs')).AXMDocumentDriveChooseComponent;
|
|
5505
5544
|
const result = await this.popupService.open(comp, {
|
|
5506
5545
|
title: await this.translate.translateAsync('@document-management:actions.choose-from-drive'),
|
|
5507
5546
|
data: {
|
|
@@ -5513,8 +5552,21 @@ class AXMDocumentManagerService {
|
|
|
5513
5552
|
}
|
|
5514
5553
|
return [];
|
|
5515
5554
|
}
|
|
5555
|
+
/** File extensions supported by the gallery viewer (images + PDF). */
|
|
5556
|
+
static { this.GALLERY_EXTENSIONS = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'pdf']; }
|
|
5557
|
+
/**
|
|
5558
|
+
* Returns nodes that are supported by the gallery (image/pdf extensions).
|
|
5559
|
+
*/
|
|
5560
|
+
getGallerySupportedFiles(nodes) {
|
|
5561
|
+
return nodes.filter((item) => {
|
|
5562
|
+
if (!item.name || item.type !== 'file')
|
|
5563
|
+
return false;
|
|
5564
|
+
const ext = item.name.split('.').pop()?.toLowerCase();
|
|
5565
|
+
return ext && AXMDocumentManagerService.GALLERY_EXTENSIONS.includes(ext);
|
|
5566
|
+
});
|
|
5567
|
+
}
|
|
5516
5568
|
/**
|
|
5517
|
-
* Shows file viewer popup
|
|
5569
|
+
* Shows file viewer popup using the gallery widget
|
|
5518
5570
|
*/
|
|
5519
5571
|
async showFileViewerPopup(node, options) {
|
|
5520
5572
|
const isVirtualFolder = node.parentId === 'virtual';
|
|
@@ -5522,12 +5574,12 @@ class AXMDocumentManagerService {
|
|
|
5522
5574
|
const documents = isVirtualFolder
|
|
5523
5575
|
? (options?.folderVirtualFiles ?? [])
|
|
5524
5576
|
: ((await this.folderService.getOne(node.parentId)).documents ?? []);
|
|
5525
|
-
// Filter documents
|
|
5577
|
+
// Filter documents by gallery-supported extensions
|
|
5526
5578
|
const filteredDocuments = documents.filter((item) => {
|
|
5527
5579
|
if (!item.name)
|
|
5528
5580
|
return false;
|
|
5529
5581
|
const ext = item.name.split('.').pop()?.toLowerCase();
|
|
5530
|
-
return ext &&
|
|
5582
|
+
return ext && AXMDocumentManagerService.GALLERY_EXTENSIONS.includes(ext);
|
|
5531
5583
|
});
|
|
5532
5584
|
// Fetch documents with null fileId.source.value
|
|
5533
5585
|
const documentsWithNullFileId = filteredDocuments.filter((doc) => !doc.fileId.source.value);
|
|
@@ -5543,9 +5595,7 @@ class AXMDocumentManagerService {
|
|
|
5543
5595
|
});
|
|
5544
5596
|
}
|
|
5545
5597
|
// Collect all fileIds that need to be fetched
|
|
5546
|
-
const fileIds = filteredDocuments
|
|
5547
|
-
.filter((doc) => doc.fileId.source.value)
|
|
5548
|
-
.map((doc) => doc.fileId.source.value);
|
|
5598
|
+
const fileIds = filteredDocuments.filter((doc) => doc.fileId.source.value).map((doc) => doc.fileId.source.value);
|
|
5549
5599
|
// Fetch all file info at once (need URL for media viewer)
|
|
5550
5600
|
const fileInfosMap = new Map();
|
|
5551
5601
|
if (fileIds.length > 0) {
|
|
@@ -5556,16 +5606,37 @@ class AXMDocumentManagerService {
|
|
|
5556
5606
|
}
|
|
5557
5607
|
});
|
|
5558
5608
|
}
|
|
5559
|
-
|
|
5560
|
-
const
|
|
5561
|
-
|
|
5609
|
+
// Convert documents to AXPFileListItem[] format for the gallery widget
|
|
5610
|
+
const fileListItems = await Promise.all(filteredDocuments.map(async (doc) => {
|
|
5611
|
+
let url = '';
|
|
5612
|
+
if (doc.fileId?.source?.kind === 'fileId') {
|
|
5613
|
+
const fileId = doc.fileId.source.value;
|
|
5614
|
+
const fileInfo = fileInfosMap.get(fileId);
|
|
5615
|
+
url = fileInfo?.url ?? '';
|
|
5616
|
+
}
|
|
5617
|
+
return {
|
|
5618
|
+
id: doc.id ?? '',
|
|
5619
|
+
name: doc.name,
|
|
5620
|
+
size: doc.size,
|
|
5621
|
+
status: 'attached',
|
|
5622
|
+
source: {
|
|
5623
|
+
kind: 'url',
|
|
5624
|
+
value: url,
|
|
5625
|
+
},
|
|
5626
|
+
};
|
|
5627
|
+
}));
|
|
5628
|
+
// Calculate start index
|
|
5629
|
+
const startIndex = isVirtualFolder
|
|
5630
|
+
? (options?.folderVirtualFiles?.findIndex((f) => f.id === node.id) ?? 0)
|
|
5631
|
+
: (options?.index ?? 0);
|
|
5632
|
+
// Open popup using the gallery widget popup component
|
|
5633
|
+
const comp = (await Promise.resolve().then(function () { return fileGalleryPopup_component; }))
|
|
5634
|
+
.AXMFileGalleryPopupComponent;
|
|
5562
5635
|
await this.popupService.open(comp, {
|
|
5563
5636
|
title: parentFolderName,
|
|
5564
5637
|
data: {
|
|
5565
|
-
|
|
5566
|
-
|
|
5567
|
-
? (options?.folderVirtualFiles?.findIndex((f) => f.id === node.id) ?? 0)
|
|
5568
|
-
: (options?.index ?? 0),
|
|
5638
|
+
files: signal(fileListItems),
|
|
5639
|
+
startIndex,
|
|
5569
5640
|
},
|
|
5570
5641
|
});
|
|
5571
5642
|
}
|
|
@@ -6078,7 +6149,10 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
|
|
|
6078
6149
|
async openGalleryWithFolderId() {
|
|
6079
6150
|
const folder = store.currentNode();
|
|
6080
6151
|
const files = folder?.children?.filter((item) => item.type === 'file') || [];
|
|
6081
|
-
|
|
6152
|
+
const galleryFiles = driveService.getGallerySupportedFiles(files);
|
|
6153
|
+
if (galleryFiles.length > 0) {
|
|
6154
|
+
await driveService.showFileViewerPopup(galleryFiles[0]);
|
|
6155
|
+
}
|
|
6082
6156
|
},
|
|
6083
6157
|
//TODO: Delete only one node at a time
|
|
6084
6158
|
async deleteNodes(nodes = store.selectedNodes()) {
|
|
@@ -6128,6 +6202,23 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
|
|
|
6128
6202
|
},
|
|
6129
6203
|
//#region Menu Items
|
|
6130
6204
|
async getFolderAddMenuItems() {
|
|
6205
|
+
const files = store.currentFolder()?.children?.filter((item) => item.type === 'file') ?? [];
|
|
6206
|
+
const galleryFiles = driveService.getGallerySupportedFiles(files);
|
|
6207
|
+
const openGalleryItem = galleryFiles.length > 0
|
|
6208
|
+
? [
|
|
6209
|
+
{
|
|
6210
|
+
title: await translateService.translateAsync('@document-management:actions.open-gallery'),
|
|
6211
|
+
icon: 'fa-light fa-images',
|
|
6212
|
+
break: true,
|
|
6213
|
+
command: {
|
|
6214
|
+
name: 'open-gallery',
|
|
6215
|
+
options: {
|
|
6216
|
+
folderId: store.currentFolder()?.id,
|
|
6217
|
+
},
|
|
6218
|
+
},
|
|
6219
|
+
},
|
|
6220
|
+
]
|
|
6221
|
+
: [];
|
|
6131
6222
|
return [
|
|
6132
6223
|
{
|
|
6133
6224
|
title: await translateService.translateAsync('@document-management:actions.create-folder'),
|
|
@@ -6153,17 +6244,7 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
|
|
|
6153
6244
|
},
|
|
6154
6245
|
},
|
|
6155
6246
|
})) ?? []),
|
|
6156
|
-
|
|
6157
|
-
title: await translateService.translateAsync('@document-management:actions.open-gallery'),
|
|
6158
|
-
icon: 'fa-light fa-images',
|
|
6159
|
-
break: true,
|
|
6160
|
-
command: {
|
|
6161
|
-
name: 'open-gallery',
|
|
6162
|
-
options: {
|
|
6163
|
-
folderId: store.currentFolder()?.id,
|
|
6164
|
-
},
|
|
6165
|
-
},
|
|
6166
|
-
},
|
|
6247
|
+
...openGalleryItem,
|
|
6167
6248
|
];
|
|
6168
6249
|
},
|
|
6169
6250
|
async getFolderActionMenuItems() {
|
|
@@ -6756,7 +6837,7 @@ class AXMDocumentExplorerComponent {
|
|
|
6756
6837
|
}
|
|
6757
6838
|
}
|
|
6758
6839
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXMDocumentExplorerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6759
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", 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 <axp-state-message\n icon=\"fa-light fa-folder-open\"\n [title]=\"'@document-management:empty-states.no-items.title'\"\n [description]=\"'@document-management:empty-states.no-items.description'\"\n >\n </axp-state-message>\n } @else {\n <ng-container [ngComponentOutlet]=\"view()\"></ng-container>\n }\n</div>\n\n<!-- Context Menu -->\n@if (showContextMenu()) {\n <!-- Item Context Menu-->\n <ax-context-menu\n #itemsContextMenu\n [target]=\"'.__explorer-item'\"\n [orientation]=\"'vertical'\"\n [closeOn]=\"'leave'\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n (onOpening)=\"handleContextMenuOnOpening($event)\"\n >\n </ax-context-menu>\n <!-- Root Context Menu-->\n <ax-context-menu\n #rootContextMenu\n [target]=\"'.view-container'\"\n [orientation]=\"'vertical'\"\n [closeOn]=\"'leave'\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n (onOpening)=\"handleContextMenuRootOnOpening($event)\"\n >\n </ax-context-menu>\n}\n", styles: ["axm-document-explorer{display:flex;height:max-content;min-height:100%;width:100%;flex-direction:row;gap:1rem}axm-document-explorer>.view-container{display:flex;flex:1 1 0%;-webkit-user-select: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$
|
|
6840
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", 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 <axp-state-message\n icon=\"fa-light fa-folder-open\"\n [title]=\"'@document-management:empty-states.no-items.title'\"\n [description]=\"'@document-management:empty-states.no-items.description'\"\n >\n </axp-state-message>\n } @else {\n <ng-container [ngComponentOutlet]=\"view()\"></ng-container>\n }\n</div>\n\n<!-- Context Menu -->\n@if (showContextMenu()) {\n <!-- Item Context Menu-->\n <ax-context-menu\n #itemsContextMenu\n [target]=\"'.__explorer-item'\"\n [orientation]=\"'vertical'\"\n [closeOn]=\"'leave'\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n (onOpening)=\"handleContextMenuOnOpening($event)\"\n >\n </ax-context-menu>\n <!-- Root Context Menu-->\n <ax-context-menu\n #rootContextMenu\n [target]=\"'.view-container'\"\n [orientation]=\"'vertical'\"\n [closeOn]=\"'leave'\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n (onOpening)=\"handleContextMenuRootOnOpening($event)\"\n >\n </ax-context-menu>\n}\n", styles: ["axm-document-explorer{display:flex;height:max-content;min-height:100%;width:100%;flex-direction:row;gap:1rem}axm-document-explorer>.view-container{display:flex;flex:1 1 0%;-webkit-user-select: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$2.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXFormatModule }, { kind: "ngmodule", type: AXDateTimeModule }, { kind: "ngmodule", type: AXMenuModule }, { kind: "component", type: i2$1.AXContextMenuComponent, selector: "ax-context-menu", inputs: ["orientation", "openOn", "closeOn", "items", "target"], outputs: ["onItemClick", "onOpening"] }, { kind: "component", type: AXPStateMessageComponent, selector: "axp-state-message", inputs: ["mode", "icon", "title", "description", "variant"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
6760
6841
|
}
|
|
6761
6842
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXMDocumentExplorerComponent, decorators: [{
|
|
6762
6843
|
type: Component,
|
|
@@ -6778,7 +6859,7 @@ class AXMFolderPathBreadcrumbsComponent {
|
|
|
6778
6859
|
this.layout = inject(AXPLayoutThemeService);
|
|
6779
6860
|
}
|
|
6780
6861
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXMFolderPathBreadcrumbsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6781
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", 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: i1$
|
|
6862
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", 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: i1$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: i4$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }] }); }
|
|
6782
6863
|
}
|
|
6783
6864
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXMFolderPathBreadcrumbsComponent, decorators: [{
|
|
6784
6865
|
type: Component,
|
|
@@ -7128,11 +7209,21 @@ const DocumentFileUploaderBeforeFilesAddedProvider = {
|
|
|
7128
7209
|
key: 'file-uploader.beforeFilesAdded',
|
|
7129
7210
|
priority: 0,
|
|
7130
7211
|
async execute(payload) {
|
|
7212
|
+
// Debug: trace before-files-added hook entry
|
|
7213
|
+
// eslint-disable-next-line no-console
|
|
7214
|
+
console.log('[DocumentFileUploaderBeforeFilesAdded] payload', {
|
|
7215
|
+
plugins: payload.plugins,
|
|
7216
|
+
excludePlugins: payload.excludePlugins,
|
|
7217
|
+
newFiles: payload.newFiles,
|
|
7218
|
+
});
|
|
7131
7219
|
const isEnabled = Array.isArray(payload.plugins) && payload.plugins.some((p) => p.name === 'document');
|
|
7132
7220
|
const isExcluded = Array.isArray(payload.excludePlugins) && payload.excludePlugins.includes('document');
|
|
7133
7221
|
if (!isEnabled || isExcluded)
|
|
7134
7222
|
return payload;
|
|
7135
7223
|
const opts = (payload.plugins.find((p) => p.name === 'document')?.options ?? {});
|
|
7224
|
+
// Debug: trace resolved options
|
|
7225
|
+
// eslint-disable-next-line no-console
|
|
7226
|
+
console.log('[DocumentFileUploaderBeforeFilesAdded] options', opts);
|
|
7136
7227
|
if (!opts.docTypeName)
|
|
7137
7228
|
return payload;
|
|
7138
7229
|
const injector = inject(Injector);
|
|
@@ -7156,6 +7247,14 @@ const DocumentFileUploaderEditDialogAfterFormProvider = {
|
|
|
7156
7247
|
key: 'file-uploader.edit-dialog.groups.after-form',
|
|
7157
7248
|
priority: 0,
|
|
7158
7249
|
async execute(payload) {
|
|
7250
|
+
// Debug: trace edit-dialog hook entry
|
|
7251
|
+
// eslint-disable-next-line no-console
|
|
7252
|
+
console.log('[DocumentFileUploaderEditDialogAfterForm] payload (before)', {
|
|
7253
|
+
plugins: payload.plugins,
|
|
7254
|
+
excludePlugins: payload.excludePlugins,
|
|
7255
|
+
file: payload.file,
|
|
7256
|
+
groups: payload.groups,
|
|
7257
|
+
});
|
|
7159
7258
|
const isEnabled = Array.isArray(payload.plugins) && payload.plugins.some((p) => p.name === 'document');
|
|
7160
7259
|
const isExcluded = Array.isArray(payload.excludePlugins) && payload.excludePlugins.includes('document');
|
|
7161
7260
|
if (!isEnabled || isExcluded)
|
|
@@ -7163,11 +7262,24 @@ const DocumentFileUploaderEditDialogAfterFormProvider = {
|
|
|
7163
7262
|
const metaObj = payload.file?.metaDataForm;
|
|
7164
7263
|
// Load document type (similar to document-type-choose-file) when available via plugin options
|
|
7165
7264
|
const opts = (payload.plugins.find((p) => p.name === 'document')?.options ?? {});
|
|
7265
|
+
// Debug: trace resolved options and meta object
|
|
7266
|
+
// eslint-disable-next-line no-console
|
|
7267
|
+
console.log('[DocumentFileUploaderEditDialogAfterForm] options & meta', {
|
|
7268
|
+
options: opts,
|
|
7269
|
+
metaObj,
|
|
7270
|
+
});
|
|
7166
7271
|
const injector = inject(Injector);
|
|
7167
7272
|
const documentManagementService = injector.get(AXPDocumentManagementService);
|
|
7168
7273
|
const docType = opts.docTypeName
|
|
7169
7274
|
? await documentManagementService.getDocumentTypeByName(opts.docTypeName)
|
|
7170
7275
|
: undefined;
|
|
7276
|
+
// Debug: trace loaded document type and final decision
|
|
7277
|
+
// eslint-disable-next-line no-console
|
|
7278
|
+
console.log('[DocumentFileUploaderEditDialogAfterForm] loaded docType', {
|
|
7279
|
+
docTypeName: opts.docTypeName,
|
|
7280
|
+
hasMetaObj: !!metaObj && Object.keys(metaObj).length > 0,
|
|
7281
|
+
docType,
|
|
7282
|
+
});
|
|
7171
7283
|
if (!docType && (!metaObj || Object.keys(metaObj).length === 0))
|
|
7172
7284
|
return payload;
|
|
7173
7285
|
const fields = [
|
|
@@ -7177,6 +7289,10 @@ const DocumentFileUploaderEditDialogAfterFormProvider = {
|
|
|
7177
7289
|
widget: {
|
|
7178
7290
|
name: 'metaDataForm',
|
|
7179
7291
|
type: 'meta-data-form-editor',
|
|
7292
|
+
// NOTE:
|
|
7293
|
+
// - documentType.metaDataList structure is used directly in other dialogs:
|
|
7294
|
+
// AXMDocumentDialogService → field.customWidget('meta-data-form-editor', documentType?.metaDataList)
|
|
7295
|
+
// - So we pass the whole metaDataList object here as well for consistency.
|
|
7180
7296
|
options: { definitions: docType?.metaDataList },
|
|
7181
7297
|
defaultValue: metaObj,
|
|
7182
7298
|
},
|
|
@@ -7187,8 +7303,19 @@ const DocumentFileUploaderEditDialogAfterFormProvider = {
|
|
|
7187
7303
|
title: docType?.title ?? '@document-management:terms.common.meta-data',
|
|
7188
7304
|
parameters: fields,
|
|
7189
7305
|
};
|
|
7190
|
-
|
|
7306
|
+
// metaDataList is an object with a `groups` array; align condition with that structure
|
|
7307
|
+
const hasDefinitions = !!docType &&
|
|
7308
|
+
!!docType.metaDataList &&
|
|
7309
|
+
Array.isArray(docType.metaDataList.groups) &&
|
|
7310
|
+
docType.metaDataList.groups.length > 0;
|
|
7311
|
+
if (hasDefinitions) {
|
|
7191
7312
|
payload.groups = [...(payload.groups ?? []), group];
|
|
7313
|
+
// Debug: confirm metadata group injection
|
|
7314
|
+
// eslint-disable-next-line no-console
|
|
7315
|
+
console.log('[DocumentFileUploaderEditDialogAfterForm] metadata group injected', {
|
|
7316
|
+
group,
|
|
7317
|
+
groupsAfter: payload.groups,
|
|
7318
|
+
});
|
|
7192
7319
|
}
|
|
7193
7320
|
return payload;
|
|
7194
7321
|
},
|
|
@@ -7279,7 +7406,7 @@ class AXMDocumentManagementModule {
|
|
|
7279
7406
|
AXMDocumentManagementDocumentTypeEntityModule,
|
|
7280
7407
|
AXMDocumentManagementDocumentEntityModule,
|
|
7281
7408
|
AXMFolderEntityModule,
|
|
7282
|
-
AXMReviewEntityModule, i6.AXPWidgetCoreModule,
|
|
7409
|
+
AXMReviewEntityModule, i6.AXPWidgetCoreModule, i2$2.AXMediaViewerModule, i3$1.AXPWorkflowModule] }); }
|
|
7283
7410
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXMDocumentManagementModule, providers: [
|
|
7284
7411
|
// Module-specific providers (not part of manifest system)
|
|
7285
7412
|
{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: attachmentsPlugin },
|
|
@@ -7432,7 +7559,7 @@ class AXMDocumentExplorerDetailPanelComponent {
|
|
|
7432
7559
|
this.vm = inject(AXPDocumentExplorerViewModel);
|
|
7433
7560
|
}
|
|
7434
7561
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXMDocumentExplorerDetailPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7435
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AXMDocumentExplorerDetailPanelComponent, isStandalone: true, selector: "axm-document-explorer-detail-panel", ngImport: i0, template: "<!-- Multiple Selected -->\n@if (vm.hasMultipleSelectedItems()) {\n <div class=\"__header\" *translate=\"let t\">\n <div class=\"__title\">\n <i class=\"fa-fw fa-lg fa-solid\"></i>\n <span> {{ vm.selectedCount() }} {{ '@general:terms.items-selected' | translate | async }}</span>\n </div>\n <ax-button [look]=\"'blank'\" class=\"ax-sm ax-rounded-full\" (onClick)=\"vm.closeDetailPanel()\">\n <ax-icon icon=\"fa-solid fa-xmark\"></ax-icon>\n </ax-button>\n </div>\n <div class=\"__content\"></div>\n}\n<!-- Single Selected -->\n@else {\n <!-- Info -->\n @let nodeInfo = vm.getNodeInfo((vm.selectedNode() ?? vm.currentFolder())!);\n <div class=\"__header\">\n <div class=\"__title\">\n <i class=\"fa-fw fa-lg {{ nodeInfo.icon }} fa-solid\"></i>\n <span>{{ nodeInfo.name }}</span>\n </div>\n <ax-button [look]=\"'blank'\" class=\"ax-sm ax-rounded-full\" (onClick)=\"vm.closeDetailPanel()\">\n <ax-icon icon=\"fa-solid fa-xmark\"></ax-icon>\n </ax-button>\n </div>\n <div class=\"__content\">\n @for (section of nodeInfo.sections; track section.title) {\n <div class=\"__section\">\n <div class=\"__title\">\n <span>{{ section.title }}</span>\n </div>\n <div class=\"__content\">\n @for (detail of section.details; track detail.title) {\n <div class=\"__row\">\n <div class=\"__title\">\n <span>{{ detail.title }}</span>\n </div>\n <div class=\"__content\">\n @if (detail.format) {\n <span>{{ detail.content | format: detail.format | async }}</span>\n } @else {\n <span>{{ detail.content ?? '---' }}</span>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n </div>\n}\n", styles: ["axm-document-explorer-detail-panel{display:flex;flex-direction:column;border-radius:.5rem;border-width:1px;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}@media (min-width: 1024px){axm-document-explorer-detail-panel{min-width:20rem}}axm-document-explorer-detail-panel>.__header{display:flex;flex-direction:row;align-items:center;justify-content:space-between;border-bottom-width:1px;padding:1rem}axm-document-explorer-detail-panel>.__header>.__title{display:flex;width:90%;flex-direction:row;align-items:center;gap:.5rem}axm-document-explorer-detail-panel>.__header>.__title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:start;font-weight:600;line-height:1.625}axm-document-explorer-detail-panel>.__content{display:flex;flex-direction:column}axm-document-explorer-detail-panel>.__content>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}axm-document-explorer-detail-panel>.__content>.__section{display:flex;flex-direction:column;padding:1rem}axm-document-explorer-detail-panel>.__content>.__section>.__title{margin-bottom:1rem;font-size:.875rem;line-height:1.25rem;font-weight:700}axm-document-explorer-detail-panel>.__content>.__section>.__content{display:flex;flex-direction:column;gap:1rem}axm-document-explorer-detail-panel>.__content>.__section>.__content>.__row{display:flex;flex-direction:column;gap:.25rem}axm-document-explorer-detail-panel>.__content>.__section>.__content>.__row>.__title{display:flex;font-size:.875rem;line-height:1.25rem;font-weight:600;opacity:.9}axm-document-explorer-detail-panel>.__content>.__section>.__content>.__row>.__content{display:flex;flex-direction:row;align-items:center;gap:.5rem}axm-document-explorer-detail-panel>.__content>.__section>.__content>.__row>.__content span{opacity:.7}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type:
|
|
7562
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AXMDocumentExplorerDetailPanelComponent, isStandalone: true, selector: "axm-document-explorer-detail-panel", ngImport: i0, template: "<!-- Multiple Selected -->\n@if (vm.hasMultipleSelectedItems()) {\n <div class=\"__header\" *translate=\"let t\">\n <div class=\"__title\">\n <i class=\"fa-fw fa-lg fa-solid\"></i>\n <span> {{ vm.selectedCount() }} {{ '@general:terms.items-selected' | translate | async }}</span>\n </div>\n <ax-button [look]=\"'blank'\" class=\"ax-sm ax-rounded-full\" (onClick)=\"vm.closeDetailPanel()\">\n <ax-icon icon=\"fa-solid fa-xmark\"></ax-icon>\n </ax-button>\n </div>\n <div class=\"__content\"></div>\n}\n<!-- Single Selected -->\n@else {\n <!-- Info -->\n @let nodeInfo = vm.getNodeInfo((vm.selectedNode() ?? vm.currentFolder())!);\n <div class=\"__header\">\n <div class=\"__title\">\n <i class=\"fa-fw fa-lg {{ nodeInfo.icon }} fa-solid\"></i>\n <span>{{ nodeInfo.name }}</span>\n </div>\n <ax-button [look]=\"'blank'\" class=\"ax-sm ax-rounded-full\" (onClick)=\"vm.closeDetailPanel()\">\n <ax-icon icon=\"fa-solid fa-xmark\"></ax-icon>\n </ax-button>\n </div>\n <div class=\"__content\">\n @for (section of nodeInfo.sections; track section.title) {\n <div class=\"__section\">\n <div class=\"__title\">\n <span>{{ section.title }}</span>\n </div>\n <div class=\"__content\">\n @for (detail of section.details; track detail.title) {\n <div class=\"__row\">\n <div class=\"__title\">\n <span>{{ detail.title }}</span>\n </div>\n <div class=\"__content\">\n @if (detail.format) {\n <span>{{ detail.content | format: detail.format | async }}</span>\n } @else {\n <span>{{ detail.content ?? '---' }}</span>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n </div>\n}\n", styles: ["axm-document-explorer-detail-panel{display:flex;flex-direction:column;border-radius:.5rem;border-width:1px;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}@media (min-width: 1024px){axm-document-explorer-detail-panel{min-width:20rem}}axm-document-explorer-detail-panel>.__header{display:flex;flex-direction:row;align-items:center;justify-content:space-between;border-bottom-width:1px;padding:1rem}axm-document-explorer-detail-panel>.__header>.__title{display:flex;width:90%;flex-direction:row;align-items:center;gap:.5rem}axm-document-explorer-detail-panel>.__header>.__title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:start;font-weight:600;line-height:1.625}axm-document-explorer-detail-panel>.__content{display:flex;flex-direction:column}axm-document-explorer-detail-panel>.__content>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}axm-document-explorer-detail-panel>.__content>.__section{display:flex;flex-direction:column;padding:1rem}axm-document-explorer-detail-panel>.__content>.__section>.__title{margin-bottom:1rem;font-size:.875rem;line-height:1.25rem;font-weight:700}axm-document-explorer-detail-panel>.__content>.__section>.__content{display:flex;flex-direction:column;gap:1rem}axm-document-explorer-detail-panel>.__content>.__section>.__content>.__row{display:flex;flex-direction:column;gap:.25rem}axm-document-explorer-detail-panel>.__content>.__section>.__content>.__row>.__title{display:flex;font-size:.875rem;line-height:1.25rem;font-weight:600;opacity:.9}axm-document-explorer-detail-panel>.__content>.__section>.__content>.__row>.__content{display:flex;flex-direction:row;align-items:center;gap:.5rem}axm-document-explorer-detail-panel>.__content>.__section>.__content>.__row>.__content span{opacity:.7}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXFormatModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i3$2.AXTranslatorDirective, selector: "[translate]" }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2$3.AXFormatPipe, name: "format" }, { kind: "pipe", type: i3$2.AXTranslatorPipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
7436
7563
|
}
|
|
7437
7564
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXMDocumentExplorerDetailPanelComponent, decorators: [{
|
|
7438
7565
|
type: Component,
|
|
@@ -7807,7 +7934,12 @@ class AXMDocumentDriveComponent extends AXPPageLayoutBaseComponent {
|
|
|
7807
7934
|
break;
|
|
7808
7935
|
case 'open-gallery':
|
|
7809
7936
|
if (folderId) {
|
|
7810
|
-
|
|
7937
|
+
const folder = this.vm.currentFolder();
|
|
7938
|
+
const files = folder?.children?.filter((item) => item.type === 'file') ?? [];
|
|
7939
|
+
const galleryFiles = this.driveService.getGallerySupportedFiles(files);
|
|
7940
|
+
if (galleryFiles.length > 0) {
|
|
7941
|
+
await this.driveService.showFileViewerPopup(galleryFiles[0]);
|
|
7942
|
+
}
|
|
7811
7943
|
}
|
|
7812
7944
|
break;
|
|
7813
7945
|
default:
|
|
@@ -7827,11 +7959,11 @@ class AXMDocumentDriveComponent extends AXPPageLayoutBaseComponent {
|
|
|
7827
7959
|
},
|
|
7828
7960
|
], viewQueries: [{ propertyName: "documentExplorer", first: true, predicate: AXMDocumentExplorerComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<!-- Main Layout -->\n<axp-page-layout *translate=\"let t\">\n <axp-page-toolbar>\n <!-- Left Side Toolbar -->\n <axp-layout-prefix>\n @if (vm.hasMultipleSelectedItems()) {\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\">\n {{ vm.selectedCount() }} {{ '@general:terms.items-selected' | translate | async }}\n </span>\n <span (click)=\"vm.deselectAll()\" class=\"ax-text-sm ax-text-secondary ax-underline ax-cursor-pointer\">{{\n '@general:actions.unselect.title' | translate | async\n }}</span>\n </div>\n }\n <!---------->\n @else {\n <!-- Filter Dropdown -->\n <ax-button [text]=\"t(getFilterText(), { scope: rootConfig.config.i18n }) | async\">\n <ax-prefix>\n <ax-icon [icon]=\"getFilterIcon()\"></ax-icon>\n </ax-prefix>\n\n <ax-dropdown-panel>\n <ax-button-item-list class=\"ax-p-2\">\n @for (item of filterItems(); track item.key) {\n <ax-button-item\n (onClick)=\"setFilter(item.key)\"\n [text]=\"(t(item.textKey, { scope: rootConfig.config.i18n }) | async)!\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"item.icon\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n <!-- Search Box -->\n <ax-search-box\n [(value)]=\"searchQuery\"\n (onValueChanged)=\"handleSearchChange($event)\"\n class=\"ax-w-72 ax-hidden md:ax-flex\"\n [placeholder]=\"t('actions.search', { scope: rootConfig.config.i18n }) | async\"\n ><ax-clear-button></ax-clear-button\n ></ax-search-box>\n }\n </axp-layout-prefix>\n\n <!-- Right Side Toolbar -->\n <axp-layout-suffix>\n <!-- Sort Dropdown -->\n <ax-button>\n <ax-icon\n [icon]=\"'fa-light fa-arrow-' + (vm.sortDirection() === 'asc' ? 'up' : 'down') + '-wide-short'\"\n ></ax-icon>\n <ax-dropdown-panel>\n <ax-button-item-list>\n <!-- Sort By Options -->\n @for (item of sortItems(); track item.key) {\n <ax-button-item\n [text]=\"(t(item.textKey, { scope: rootConfig.config.i18n }) | async)!\"\n (onClick)=\"vm.setSortField(item.key)\"\n [selected]=\"vm.sortField() === item.key\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"item.icon\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n }\n <ax-divider></ax-divider>\n <!-- Sort Direction Options -->\n <ax-button-item\n [text]=\"(t('actions.sort-ascending', { scope: rootConfig.config.i18n }) | async)!\"\n [selected]=\"vm.sortDirection() === 'asc'\"\n (onClick)=\"vm.setSortDirection('asc')\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-arrow-up-wide-short\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item\n [text]=\"(t('actions.sort-descending', { scope: rootConfig.config.i18n }) | async)!\"\n [selected]=\"vm.sortDirection() === 'desc'\"\n (onClick)=\"vm.setSortDirection('desc')\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-arrow-down-wide-short\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <!-- View Mode Toggle -->\n <ax-button>\n <ax-icon icon=\"fa-light {{ selectedViewMode().icon }}\"></ax-icon>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for (item of viewsItems(); track item.key) {\n <!-- view mode items -->\n <ax-button-item\n [text]=\"(t('view-modes.' + item.key, { scope: rootConfig.config.i18n }) | async)!\"\n [selected]=\"vm.isViewMode(item.key)\"\n (onClick)=\"vm.setViewMode(item.key)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light {{ item.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n <!-- end of view mode items -->\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n @if (deviceService.isLarge()) {\n <!-- Detail Panel Toggle -->\n <ax-button (onClick)=\"vm.toggleDetailPanel()\">\n <ax-icon\n icon=\"{{ vm.isDetailPanelOpen() ? 'fa-solid fa-square-info' : 'fa-light fa-square-info' }}\"\n ></ax-icon>\n </ax-button>\n }\n </axp-layout-suffix>\n </axp-page-toolbar>\n\n <!-- Content Section -->\n <axp-page-content class=\"ax-overflow-auto ax-flex ax-flex-row ax-gap-4\">\n <axm-document-explorer [selectionMode]=\"selectionMode()\"></axm-document-explorer>\n @if (vm.isDetailPanelOpen() && deviceService.isLarge()) {\n <axm-document-explorer-detail-panel class=\"ax-sticky ax-top-0 ax-z-50\"></axm-document-explorer-detail-panel>\n }\n </axp-page-content>\n\n <!-- Footer Section removed: breadcrumbs are now provided via page-level breadcrumbs -->\n</axp-page-layout>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type:
|
|
7829
7961
|
//
|
|
7830
|
-
AXMenuModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$
|
|
7962
|
+
AXMenuModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i1$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i1$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items", "closeParentOnClick", "lockOnLoading"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXButtonGroupModule }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i2$4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i3$2.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i4$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: AXLoadingModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i5.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXFormatModule }, { kind: "ngmodule", type: AXFileModule }, { kind: "ngmodule", type: AXDateTimeModule }, { kind: "component", type:
|
|
7831
7963
|
//
|
|
7832
7964
|
AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type:
|
|
7833
7965
|
//
|
|
7834
|
-
AXMDocumentExplorerComponent, selector: "axm-document-explorer", inputs: ["browseMode", "viewMode", "selectionMode", "showContextMenu"] }, { kind: "component", type: AXMDocumentExplorerDetailPanelComponent, selector: "axm-document-explorer-detail-panel" }, { kind: "pipe", type: i1$
|
|
7966
|
+
AXMDocumentExplorerComponent, selector: "axm-document-explorer", inputs: ["browseMode", "viewMode", "selectionMode", "showContextMenu"] }, { kind: "component", type: AXMDocumentExplorerDetailPanelComponent, selector: "axm-document-explorer-detail-panel" }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$2.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
7835
7967
|
}
|
|
7836
7968
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXMDocumentDriveComponent, decorators: [{
|
|
7837
7969
|
type: Component,
|
|
@@ -7893,5 +8025,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
7893
8025
|
* Generated bundle index. Do not edit.
|
|
7894
8026
|
*/
|
|
7895
8027
|
|
|
7896
|
-
export { AXMArchiveFileTypeProvider, AXMAudioFileTypeProvider, AXMCodeFileTypeProvider, AXMDocumentDriveComponent, AXMDocumentExplorerComponent, AXMDocumentFileTypeProvider, AXMDocumentManagementDocumentEntityModule, AXMDocumentManagementDocumentTypeEntityModule, AXMDocumentManagementDocumentTypeMetaDefinitionEntityModule, AXMDocumentManagementDocumentTypeMetaDefinitionEntityService, AXMDocumentManagementDocumentTypeMetaDefinitionEntityServiceImpl, AXMDocumentManagementDocumentTypeMetaValueEntityModule, AXMDocumentManagementDocumentTypeMetaValueEntityService, AXMDocumentManagementDocumentTypeMetaValueEntityServiceImpl, AXMDocumentManagementDocumentTypeStatusDefinitionEntityModule, AXMDocumentManagementDocumentTypeStatusDefinitionEntityService, AXMDocumentManagementDocumentTypeStatusDefinitionEntityServiceImpl, AXMDocumentManagementModule, AXMDocumentManagerService, AXMDocumentReletedEntityModule, AXMDocumentService, AXMDocumentServiceImpl, AXMDocumentTypeService, AXMDocumentTypeServiceImpl, AXMEntityProvider, AXMFileTypeExtensionWidgetColumnComponent, AXMFileTypeExtensionWidgetDesignerComponent, AXMFileTypeExtensionWidgetEditComponent, AXMFileTypeExtensionWidgetViewComponent, AXMFileTypeModule,
|
|
8028
|
+
export { AXMArchiveFileTypeProvider, AXMAudioFileTypeProvider, AXMCodeFileTypeProvider, AXMDocumentDriveComponent, AXMDocumentExplorerComponent, AXMDocumentFileTypeProvider, AXMDocumentManagementDocumentEntityModule, AXMDocumentManagementDocumentTypeEntityModule, AXMDocumentManagementDocumentTypeMetaDefinitionEntityModule, AXMDocumentManagementDocumentTypeMetaDefinitionEntityService, AXMDocumentManagementDocumentTypeMetaDefinitionEntityServiceImpl, AXMDocumentManagementDocumentTypeMetaValueEntityModule, AXMDocumentManagementDocumentTypeMetaValueEntityService, AXMDocumentManagementDocumentTypeMetaValueEntityServiceImpl, AXMDocumentManagementDocumentTypeStatusDefinitionEntityModule, AXMDocumentManagementDocumentTypeStatusDefinitionEntityService, AXMDocumentManagementDocumentTypeStatusDefinitionEntityServiceImpl, AXMDocumentManagementModule, AXMDocumentManagerService, AXMDocumentReletedEntityModule, AXMDocumentService, AXMDocumentServiceImpl, AXMDocumentTypeService, AXMDocumentTypeServiceImpl, AXMEntityProvider, AXMFileGalleryPopupComponent, AXMFileTypeExtensionWidgetColumnComponent, AXMFileTypeExtensionWidgetDesignerComponent, AXMFileTypeExtensionWidgetEditComponent, AXMFileTypeExtensionWidgetViewComponent, AXMFileTypeModule, AXMFolderEntityModule, AXMFolderPathBreadcrumbsComponent, AXMFolderService, AXMFolderServiceImpl, AXMImageFileTypeProvider, AXMMenuProvider, AXMPermissionsKeys, AXMReviewEntityModule, AXMReviewService, AXMReviewServiceImpl, AXMSearchCommandProvider, AXMSettingProvider, AXMVideoFileTypeProvider, AXPDocumentExplorerSettings, AXPDocumentExplorerViewModel, AXPDocumentManagementFeatureKeys, AXPDocumentManagementMenuKeys, AXPDocumentManagementService, AXmFileTypeExtensionWidget, RootConfig, ScopedDriveService, canTransition, documentFactory, documentRelatedFactory, documentTypeFactory, documentTypeMetaDefinitionfactory, documentTypeMetaValueFactory, documentTypeStatusDefinitionFactory, folderFactory, getNextStatus, reviewFactory };
|
|
7897
8029
|
//# sourceMappingURL=acorex-modules-document-management.mjs.map
|