@acorex-platform/module-document-management-client 0.0.57 → 0.0.58
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/fesm2022/{acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-qhcOFKFu.mjs → acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-BAlV-t9L.mjs} +411 -141
- package/fesm2022/acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-BAlV-t9L.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-document-management-client-attachment-view-skeleton.component-BeQSbax5.mjs → acorex-platform-module-document-management-client-attachment-view-skeleton.component-CriADt_T.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-document-management-client-attachment-view-skeleton.component-BeQSbax5.mjs.map → acorex-platform-module-document-management-client-attachment-view-skeleton.component-CriADt_T.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-document-management-client-attachment-widget.component-CsrcMMC9.mjs → acorex-platform-module-document-management-client-attachment-widget.component-DqM2ltmp.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-document-management-client-attachment-widget.component-CsrcMMC9.mjs.map → acorex-platform-module-document-management-client-attachment-widget.component-DqM2ltmp.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-document-management-client-contracts.mjs +161 -1
- package/fesm2022/acorex-platform-module-document-management-client-contracts.mjs.map +1 -1
- package/fesm2022/{acorex-platform-module-document-management-client-details-view.component-DkCD8RSd.mjs → acorex-platform-module-document-management-client-details-view.component-BQrDE1DN.mjs} +111 -37
- package/fesm2022/acorex-platform-module-document-management-client-details-view.component-BQrDE1DN.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-document-management-client-distribute-document.command-BaCdm2YF.mjs → acorex-platform-module-document-management-client-distribute-document.command-u3nQHky9.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-document-management-client-distribute-document.command-BaCdm2YF.mjs.map → acorex-platform-module-document-management-client-distribute-document.command-u3nQHky9.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-document-management-client-drive-choose.component-up9sAsei.mjs → acorex-platform-module-document-management-client-drive-choose.component-D7B9fi6_.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-document-management-client-drive-choose.component-up9sAsei.mjs.map → acorex-platform-module-document-management-client-drive-choose.component-D7B9fi6_.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-document-management-client-large-icons-view-skeleton.component-C_VbFRKl.mjs → acorex-platform-module-document-management-client-large-icons-view-skeleton.component-C0P-zEpf.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-document-management-client-large-icons-view-skeleton.component-C_VbFRKl.mjs.map → acorex-platform-module-document-management-client-large-icons-view-skeleton.component-C0P-zEpf.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-document-management-client-large-icons-view.component-Cece4n22.mjs → acorex-platform-module-document-management-client-large-icons-view.component-QvwN7k9l.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-document-management-client-large-icons-view.component-Cece4n22.mjs.map → acorex-platform-module-document-management-client-large-icons-view.component-QvwN7k9l.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-document-management-client-large-tiles-view.component-DzWIUZtv.mjs → acorex-platform-module-document-management-client-large-tiles-view.component--HbrSK06.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-document-management-client-large-tiles-view.component-DzWIUZtv.mjs.map → acorex-platform-module-document-management-client-large-tiles-view.component--HbrSK06.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-document-management-client-list-view-skeleton.component-Dgx8lVyN.mjs → acorex-platform-module-document-management-client-list-view-skeleton.component-D_tOw89k.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-document-management-client-list-view-skeleton.component-Dgx8lVyN.mjs.map → acorex-platform-module-document-management-client-list-view-skeleton.component-D_tOw89k.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-document-management-client-list-view.component-DVUfHWHB.mjs → acorex-platform-module-document-management-client-list-view.component-4lKV7vLI.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-document-management-client-list-view.component-DVUfHWHB.mjs.map → acorex-platform-module-document-management-client-list-view.component-4lKV7vLI.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-document-management-client-open-document.command-Bimm2bzt.mjs → acorex-platform-module-document-management-client-open-document.command-ChUbCmwI.mjs} +83 -14
- package/fesm2022/acorex-platform-module-document-management-client-open-document.command-ChUbCmwI.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-document-management-client-request-document-review.command-DUTxOir5.mjs +456 -0
- package/fesm2022/acorex-platform-module-document-management-client-request-document-review.command-DUTxOir5.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-document-management-client-sign-document-review.command-B08sgrRi.mjs +121 -0
- package/fesm2022/acorex-platform-module-document-management-client-sign-document-review.command-B08sgrRi.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-document-management-client-small-icons-view-skeleton.component-CU2MiVUi.mjs → acorex-platform-module-document-management-client-small-icons-view-skeleton.component-9tV5qpUV.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-document-management-client-small-icons-view-skeleton.component-CU2MiVUi.mjs.map → acorex-platform-module-document-management-client-small-icons-view-skeleton.component-9tV5qpUV.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-document-management-client-small-icons-view.component-CL5cNRtI.mjs → acorex-platform-module-document-management-client-small-icons-view.component-BxGk3N37.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-document-management-client-small-icons-view.component-CL5cNRtI.mjs.map → acorex-platform-module-document-management-client-small-icons-view.component-BxGk3N37.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-DBJldDaS.mjs → acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-DYhUCJLg.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-DBJldDaS.mjs.map → acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-DYhUCJLg.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-document-management-client-small-tiles-view.component-DtsBSVCq.mjs → acorex-platform-module-document-management-client-small-tiles-view.component-Dmyzdd5g.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-document-management-client-small-tiles-view.component-DtsBSVCq.mjs.map → acorex-platform-module-document-management-client-small-tiles-view.component-Dmyzdd5g.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-document-management-client-upload-document.command-D3L6x6CQ.mjs → acorex-platform-module-document-management-client-upload-document.command-CPcrmNAp.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-document-management-client-upload-document.command-D3L6x6CQ.mjs.map → acorex-platform-module-document-management-client-upload-document.command-CPcrmNAp.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-document-management-client.mjs +1 -1
- package/i18n/en-AU/document-management.json +63 -2
- package/i18n/en-US/document-management.json +63 -2
- package/i18n/fa-IR/document-management.json +63 -2
- package/package.json +2 -2
- package/types/acorex-platform-module-document-management-client-contracts.d.ts +34 -2
- package/types/acorex-platform-module-document-management-client.d.ts +8 -1
- package/fesm2022/acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-qhcOFKFu.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-document-management-client-details-view.component-DkCD8RSd.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-document-management-client-open-document.command-Bimm2bzt.mjs.map +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { AXPTaskBadgeProvider, resolveFileChooserExtension, AXPFileChooserService, AXPFileViewerService, AXPFileViewerFallbackContentComponent, AXP_FILE_CHOOSER_PROVIDERS, AXP_FILE_UPLOADER_PROVIDERS, isUnrestrictedFileAccept, fileNameMatchesAccept, AXPStateMessageComponent, AXPLayoutSideDetailPanelComponent, AXPLayoutSideDetailPanelSectionDirective, AXP_PAGE_COMPONENT_PROVIDER, AXP_TASK_BADGE_PROVIDERS, provideFileViewer, AXPThemeLayoutBlockComponent, AXPQueryFiltersComponent } from '@acorex-platform/framework-client/layout/components';
|
|
2
2
|
import { AXPEntityService, resolveEntityPluginDetailPageOrder, ensureListActions, AXPEntityDefinitionRegistryService, AXPMiddlewareAbortError, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_STORAGE_MIDDLEWARE } from '@acorex-platform/framework-client/layout/entity';
|
|
3
|
-
import { AXPEntityBroadcastService, AXPHookService, AXPDataGenerator as AXPDataGenerator$1, AXPDeviceService, AXPExpressionEvaluatorService, AXPDebugService, AXP_FEATURE_DEFINITION_PROVIDER, AXP_HOOK_PROVIDER } from '@acorex-platform/framework-client/core';
|
|
3
|
+
import { AXPEntityBroadcastService, AXPHookService, AXPDialogOpener as AXPDialogOpener$1, AXPDataGenerator as AXPDataGenerator$1, AXPDeviceService, AXPExpressionEvaluatorService, AXPDebugService, AXP_FEATURE_DEFINITION_PROVIDER, AXP_HOOK_PROVIDER } from '@acorex-platform/framework-client/core';
|
|
4
4
|
import { AXPSearchCommandProvider, createEntitySearchCommand, AXPFileTypeProviderService, AXP_FILE_TYPE_INFO_PROVIDER, AXPFileStorageService, extractRequestErrorInfo, platformErrorI18nKey, resolveExplorerFileDisplayName, tryOpenFileByCatalogType, createFileTypeOpenContext, FILE_VIEWER_PREVIEW_EXTENSIONS, isFileNameShownInViewer, normalizeDocumentToFileListItem, UploadFromComputerActionProvider, AXP_FILE_ACTION_PROVIDER, hasFileTypeOpenHandler, resolveFileTypeDisplay, AXPSettingsService, AXPLockService, AXP_PROTECTED_ROUTE_GUARDS, AXP_STATUS_PROVIDERS, AXP_MENU_PROVIDER, AXP_SEARCH_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/common';
|
|
5
5
|
import { AXPSessionService, AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';
|
|
6
6
|
import * as i0 from '@angular/core';
|
|
7
7
|
import { Injectable, inject, DestroyRef, signal, ChangeDetectionStrategy, Component, NgModule, viewChild, computed, Injector, PLATFORM_ID, input, effect, ViewEncapsulation, untracked, HostListener } from '@angular/core';
|
|
8
|
-
import { AXPDocumentManagementFeatureKeys, AXPContentDocumentsPermissionKeys, RootConfig, AXPDocumentManagementMenuKeys, AXPDocumentManagementSettings, AXMDocumentManagementCommandKeys } from '@acorex-platform/module-document-management-client/contracts';
|
|
8
|
+
import { AXPDocumentManagementFeatureKeys, AXPContentDocumentsPermissionKeys, RootConfig, AXPDocumentManagementMenuKeys, AXPDocumentManagementSettings, documentReviewReadonlyFieldNames, documentTypeHasReviewMetadataForAppliesTo, AXMDocumentManagementCommandKeys } from '@acorex-platform/module-document-management-client/contracts';
|
|
9
9
|
import { AXPCommonPermissionGroupKeys, AXPCommonMenuKeys, AXP_VERSIONING_ERROR_I18N, AXPVersioningField, AXPVersioningStatus, AXPCommonCommandKeys, isMaintainVersioningPermissionGranted } from '@acorex-platform/module-common-client/contracts';
|
|
10
10
|
import { firstValueFrom, combineLatest } from 'rxjs';
|
|
11
11
|
import { AXPCommandEventsService, AXPCommandService, AXPQueryService, provideCommandSetups } from '@acorex-platform/framework-client/runtime';
|
|
@@ -39,7 +39,7 @@ import { CommonModule, AsyncPipe } from '@angular/common';
|
|
|
39
39
|
import { RouterModule, ActivatedRoute, ROUTES } from '@angular/router';
|
|
40
40
|
import { AXDialogService } from '@acorex/components/dialog';
|
|
41
41
|
import { AXPopupService } from '@acorex/components/popup';
|
|
42
|
-
import { AXPLayoutBuilderService, resolveLayoutBuilderDialogResult } from '@acorex-platform/framework-client/layout/builder';
|
|
42
|
+
import { AXPLayoutBuilderService, AXPDialogOpener, resolveLayoutBuilderDialogResult } from '@acorex-platform/framework-client/layout/builder';
|
|
43
43
|
import { unset, castArray, isArray, defaultTo, isEmpty as isEmpty$1, set, get as get$1, isString as isString$1 } from 'lodash';
|
|
44
44
|
import { toDocumentExpirationDate, AXM_DOCUMENT_EXPIRATION_NEAR_DAYS, getDocumentExpirationRemainingDays, extractDocumentTypeFileKindNames, AXMDocumentManagementQueryKeys } from '@acorex-platform/module-document-management-client/contracts';
|
|
45
45
|
import { mergeMetaDataLists, filterMetaDataListByAppliesTo, hasMetaDataListFields } from '@acorex-platform/module-data-management-client/contracts';
|
|
@@ -119,6 +119,8 @@ class AXMPermissionDefinitionProvider {
|
|
|
119
119
|
.endPermission()
|
|
120
120
|
.addPermission(keys.DistributeDocuments, `${P}.distribute-documents.title`, `${P}.distribute-documents.description`)
|
|
121
121
|
.endPermission()
|
|
122
|
+
.addPermission(keys.ManageDocumentReview, `${P}.manage-document-review.title`, `${P}.manage-document-review.description`)
|
|
123
|
+
.endPermission()
|
|
122
124
|
.addPermission(keys.Setup, `${P}.setup.title`, `${P}.setup.description`)
|
|
123
125
|
.endPermission()
|
|
124
126
|
.endGroup();
|
|
@@ -306,11 +308,12 @@ class AXMSearchCommandProvider extends AXPSearchCommandProvider {
|
|
|
306
308
|
//#region ---- Module Constants ----
|
|
307
309
|
const I18N = '@document-management:settings';
|
|
308
310
|
const VIEW_MODE_OPTIONS = [
|
|
311
|
+
{ value: 'large-icons', text: `${I18N}.items.view-mode.options.large-icons` },
|
|
312
|
+
{ value: 'small-icons', text: `${I18N}.items.view-mode.options.small-icons` },
|
|
309
313
|
{ value: 'large-tiles', text: `${I18N}.items.view-mode.options.large-tiles` },
|
|
310
314
|
{ value: 'small-tiles', text: `${I18N}.items.view-mode.options.small-tiles` },
|
|
311
315
|
{ value: 'list', text: `${I18N}.items.view-mode.options.list` },
|
|
312
|
-
{ value: '
|
|
313
|
-
{ value: 'small-icons', text: `${I18N}.items.view-mode.options.small-icons` },
|
|
316
|
+
{ value: 'details', text: `${I18N}.items.view-mode.options.details` },
|
|
314
317
|
];
|
|
315
318
|
const SORT_FIELD_OPTIONS = [
|
|
316
319
|
{ value: 'name', text: `${I18N}.items.sort-field.options.name` },
|
|
@@ -339,7 +342,7 @@ class AXPDocumentManagementSettingProvider {
|
|
|
339
342
|
scope: 'U',
|
|
340
343
|
overridableAt: [],
|
|
341
344
|
isInherited: false,
|
|
342
|
-
defaultValue: 'large-
|
|
345
|
+
defaultValue: 'large-icons',
|
|
343
346
|
widget: {
|
|
344
347
|
type: AXPWidgetsList.Editors.SelectBox,
|
|
345
348
|
options: {
|
|
@@ -1254,8 +1257,13 @@ function resolveDocumentStorageFileId(fileInfo) {
|
|
|
1254
1257
|
const storedId = item.source.value.replace(/^file:/, '').trim();
|
|
1255
1258
|
return storedId || undefined;
|
|
1256
1259
|
}
|
|
1257
|
-
//
|
|
1258
|
-
|
|
1260
|
+
// Blob, URL, and reference items are not file-storage records. Seeded documents use
|
|
1261
|
+
// `source.kind === 'url'` with a mock row `id` — that id must not be sent to storage.
|
|
1262
|
+
if (item.source?.kind === 'blob' ||
|
|
1263
|
+
item.source?.kind === 'url' ||
|
|
1264
|
+
item.source?.kind === 'preview' ||
|
|
1265
|
+
item.source?.kind === 'reference' ||
|
|
1266
|
+
item.source?.kind === 'none') {
|
|
1259
1267
|
return undefined;
|
|
1260
1268
|
}
|
|
1261
1269
|
if (typeof item.id === 'string' && item.id.trim() !== '') {
|
|
@@ -1352,17 +1360,21 @@ function folderColorToRgbChannels(color) {
|
|
|
1352
1360
|
//#region ----- Imports -----
|
|
1353
1361
|
//#endregion
|
|
1354
1362
|
//#region ----- Schema helpers -----
|
|
1355
|
-
function toEditableMetaDataList(list) {
|
|
1363
|
+
function toEditableMetaDataList(list, readonlyFieldNames = []) {
|
|
1364
|
+
const readonly = new Set(readonlyFieldNames);
|
|
1356
1365
|
return {
|
|
1357
1366
|
groups: (list?.groups ?? []).map((group) => ({
|
|
1358
1367
|
...group,
|
|
1359
1368
|
fields: (group.fields ?? []).map((field) => ({
|
|
1360
1369
|
...field,
|
|
1361
|
-
mode: 'edit',
|
|
1370
|
+
mode: readonly.has(String(field.name ?? '')) ? 'view' : 'edit',
|
|
1362
1371
|
})),
|
|
1363
1372
|
})),
|
|
1364
1373
|
};
|
|
1365
1374
|
}
|
|
1375
|
+
function reviewReadonlyFieldNames(canManageReview) {
|
|
1376
|
+
return documentReviewReadonlyFieldNames(canManageReview);
|
|
1377
|
+
}
|
|
1366
1378
|
function toViewMetaDataList(list) {
|
|
1367
1379
|
return {
|
|
1368
1380
|
groups: (list?.groups ?? []).map((group) => ({
|
|
@@ -1508,6 +1520,7 @@ class AXMDocumentDialogService {
|
|
|
1508
1520
|
constructor() {
|
|
1509
1521
|
//#region ---- Services & Dependencies ----
|
|
1510
1522
|
this.layoutBuilder = inject(AXPLayoutBuilderService);
|
|
1523
|
+
this.sessionService = inject(AXPSessionService);
|
|
1511
1524
|
this.translateService = inject(AXTranslationService);
|
|
1512
1525
|
this.toastService = inject(AXToastService);
|
|
1513
1526
|
this.entityService = inject(AXPEntityService);
|
|
@@ -1528,7 +1541,8 @@ class AXMDocumentDialogService {
|
|
|
1528
1541
|
const { accept } = await buildFileChooserOptionsFromDocumentType(documentType, this.fileService);
|
|
1529
1542
|
const fileList = Array.isArray(files) ? files : [];
|
|
1530
1543
|
const enableExpiration = !!documentType?.enableExpiration;
|
|
1531
|
-
const
|
|
1544
|
+
const reviewReadonly = this.reviewReadonlyNames();
|
|
1545
|
+
const editableMetaDataList = toEditableMetaDataList(collectDocumentScopedMetaDataList(documentType?.metaDataList), reviewReadonly);
|
|
1532
1546
|
const hasMetaFields = (editableMetaDataList.groups ?? []).some((g) => (g.fields?.length ?? 0) > 0);
|
|
1533
1547
|
const initialContext = {};
|
|
1534
1548
|
fileList.forEach((item, index) => {
|
|
@@ -1590,7 +1604,7 @@ class AXMDocumentDialogService {
|
|
|
1590
1604
|
if (showMeta && hasMetaFields) {
|
|
1591
1605
|
flex.customWidget('meta-data-form-editor', (widget) => {
|
|
1592
1606
|
widget.path(`file-${index}.metaDataForm`);
|
|
1593
|
-
widget.options(editableMetaDataList);
|
|
1607
|
+
widget.options({ ...editableMetaDataList, readonlyFieldNames: reviewReadonly });
|
|
1594
1608
|
});
|
|
1595
1609
|
}
|
|
1596
1610
|
flex.formField('@document-management:terms.common.file', (field) => {
|
|
@@ -1624,11 +1638,12 @@ class AXMDocumentDialogService {
|
|
|
1624
1638
|
});
|
|
1625
1639
|
const sourceFile = fileList[0];
|
|
1626
1640
|
const synced = fileInfoWithTitle(sourceFile, userFields.title);
|
|
1627
|
-
|
|
1641
|
+
if (replaceFile) {
|
|
1642
|
+
await this.syncStoredFileName(sourceFile, synced.name);
|
|
1643
|
+
}
|
|
1628
1644
|
const identity = {
|
|
1629
1645
|
title: userFields.title,
|
|
1630
1646
|
name: synced.name,
|
|
1631
|
-
...(!replaceFile && synced.file ? { fileInfo: synced.file } : {}),
|
|
1632
1647
|
};
|
|
1633
1648
|
const content = {
|
|
1634
1649
|
description: userFields.description,
|
|
@@ -1722,7 +1737,8 @@ class AXMDocumentDialogService {
|
|
|
1722
1737
|
const enableExpiration = !!documentType?.enableExpiration;
|
|
1723
1738
|
/** Get metaDataForm from a file item (widget may store under meta or metaDataForm). */
|
|
1724
1739
|
const getFileMeta = (item) => item?.metaDataForm ?? (item?.meta && typeof item.meta === 'object' && !Array.isArray(item.meta) ? item.meta : undefined);
|
|
1725
|
-
const
|
|
1740
|
+
const reviewReadonly = this.reviewReadonlyNames();
|
|
1741
|
+
const editableMetaDataList = toEditableMetaDataList(collectDocumentScopedMetaDataList(documentType?.metaDataList), reviewReadonly);
|
|
1726
1742
|
const hasMetaFields = (editableMetaDataList.groups ?? []).some((g) => (g.fields?.length ?? 0) > 0);
|
|
1727
1743
|
const initialContext = {};
|
|
1728
1744
|
fileList.forEach((item, index) => {
|
|
@@ -1780,7 +1796,7 @@ class AXMDocumentDialogService {
|
|
|
1780
1796
|
if (showMeta && hasMetaFields) {
|
|
1781
1797
|
flex.customWidget('meta-data-form-editor', (widget) => {
|
|
1782
1798
|
widget.path(`file-${index}.metaDataForm`);
|
|
1783
|
-
widget.options(editableMetaDataList);
|
|
1799
|
+
widget.options({ ...editableMetaDataList, readonlyFieldNames: reviewReadonly });
|
|
1784
1800
|
});
|
|
1785
1801
|
}
|
|
1786
1802
|
flex.formField('@document-management:terms.common.file', (field) => {
|
|
@@ -1869,7 +1885,10 @@ class AXMDocumentDialogService {
|
|
|
1869
1885
|
//#region ---- Private helpers ----
|
|
1870
1886
|
async syncStoredFileName(file, nextName) {
|
|
1871
1887
|
const storageId = resolveDocumentStorageFileId(file);
|
|
1872
|
-
|
|
1888
|
+
const currentName = file && typeof file === 'object' && typeof file.name === 'string'
|
|
1889
|
+
? file.name.trim()
|
|
1890
|
+
: '';
|
|
1891
|
+
if (!storageId || !nextName || nextName === currentName) {
|
|
1873
1892
|
return;
|
|
1874
1893
|
}
|
|
1875
1894
|
try {
|
|
@@ -1893,6 +1912,9 @@ class AXMDocumentDialogService {
|
|
|
1893
1912
|
: undefined;
|
|
1894
1913
|
return { title, description, metaDataForm: meta, expirationDate };
|
|
1895
1914
|
}
|
|
1915
|
+
reviewReadonlyNames() {
|
|
1916
|
+
return reviewReadonlyFieldNames(this.sessionService.authorize(AXPContentDocumentsPermissionKeys.ManageDocumentReview));
|
|
1917
|
+
}
|
|
1896
1918
|
async notifyAttachFailed(error) {
|
|
1897
1919
|
const info = extractRequestErrorInfo(error);
|
|
1898
1920
|
const contentKey = (info?.code ? AXP_VERSIONING_ERROR_I18N[info.code] : undefined) ??
|
|
@@ -1910,6 +1932,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
1910
1932
|
args: [{ providedIn: 'root' }]
|
|
1911
1933
|
}] });
|
|
1912
1934
|
|
|
1935
|
+
function cloneDocumentFileInfo(fileInfo) {
|
|
1936
|
+
if (!fileInfo || typeof fileInfo !== 'object') {
|
|
1937
|
+
return fileInfo;
|
|
1938
|
+
}
|
|
1939
|
+
return { ...fileInfo };
|
|
1940
|
+
}
|
|
1913
1941
|
class DocumentAttachmentsService {
|
|
1914
1942
|
constructor() {
|
|
1915
1943
|
this.fileChooserService = inject(AXPFileChooserService);
|
|
@@ -1952,7 +1980,7 @@ class DocumentAttachmentsService {
|
|
|
1952
1980
|
const documentTypeEntity = await this.resolveFileType(file.documentType);
|
|
1953
1981
|
const popupData = {
|
|
1954
1982
|
documentType: documentTypeEntity,
|
|
1955
|
-
files: [file.fileInfo],
|
|
1983
|
+
files: [cloneDocumentFileInfo(file.fileInfo)],
|
|
1956
1984
|
parentId: options?.folderId ?? '',
|
|
1957
1985
|
metaData: file.metaDataForm,
|
|
1958
1986
|
documentId: fileId,
|
|
@@ -2094,6 +2122,7 @@ class AXMFolderMetadataDialogService {
|
|
|
2094
2122
|
constructor() {
|
|
2095
2123
|
//#region ----- Services & Dependencies -----
|
|
2096
2124
|
this.entityService = inject(AXPEntityService);
|
|
2125
|
+
this.sessionService = inject(AXPSessionService);
|
|
2097
2126
|
this.documentTypeData = this.entityService
|
|
2098
2127
|
.withEntity(RootConfig.module.name, RootConfig.entities.documentType.name)
|
|
2099
2128
|
.data();
|
|
@@ -2138,6 +2167,9 @@ class AXMFolderMetadataDialogService {
|
|
|
2138
2167
|
appliesTo: 'folder',
|
|
2139
2168
|
hideEmpty: true,
|
|
2140
2169
|
sourceCatalog: catalog,
|
|
2170
|
+
readonlyFieldNames: [
|
|
2171
|
+
...reviewReadonlyFieldNames(this.sessionService.authorize(AXPContentDocumentsPermissionKeys.ManageDocumentReview)),
|
|
2172
|
+
],
|
|
2141
2173
|
});
|
|
2142
2174
|
});
|
|
2143
2175
|
}
|
|
@@ -2179,6 +2211,7 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
|
|
|
2179
2211
|
this.documentTypeService = this.entityService.withEntity(RootConfig.module.name, RootConfig.entities.documentType.name).data();
|
|
2180
2212
|
this.documentManagementService = inject(AXPDocumentManagementService);
|
|
2181
2213
|
this.popupService = inject(AXPopupService);
|
|
2214
|
+
this.dialogOpener = inject(AXPDialogOpener);
|
|
2182
2215
|
this.dialogService = inject(AXDialogService);
|
|
2183
2216
|
this.fileService = inject(AXPFileStorageService);
|
|
2184
2217
|
this.fileManagerService = inject(AXFileService);
|
|
@@ -2990,20 +3023,32 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
|
|
|
2990
3023
|
* Opens the drive picker popup with consistent layout (large dialog, optional embedded header).
|
|
2991
3024
|
*/
|
|
2992
3025
|
async openDriveFolderPicker(options) {
|
|
2993
|
-
|
|
2994
|
-
const popup = await this.
|
|
2995
|
-
|
|
2996
|
-
size: 'lg',
|
|
3026
|
+
let title = '';
|
|
3027
|
+
const popup = await this.dialogOpener.openPopup({
|
|
3028
|
+
load: () => import('./acorex-platform-module-document-management-client-drive-choose.component-D7B9fi6_.mjs').then((module) => module.AXMDocumentDriveChooseComponent),
|
|
2997
3029
|
data: {
|
|
3030
|
+
titleKey: options.titleKey,
|
|
2998
3031
|
scope: options.scope,
|
|
2999
3032
|
selectionMode: options.selectionMode ?? 'single',
|
|
3000
3033
|
browseMode: options.browseMode ?? 'folder',
|
|
3001
|
-
hideHeader: options.hideHeader ?? true,
|
|
3002
3034
|
},
|
|
3035
|
+
prepare: async () => {
|
|
3036
|
+
title = await this.translate.translateAsync(options.titleKey);
|
|
3037
|
+
},
|
|
3038
|
+
show: (component) => this.popupService.open(component, {
|
|
3039
|
+
title,
|
|
3040
|
+
size: 'lg',
|
|
3041
|
+
data: {
|
|
3042
|
+
scope: options.scope,
|
|
3043
|
+
selectionMode: options.selectionMode ?? 'single',
|
|
3044
|
+
browseMode: options.browseMode ?? 'folder',
|
|
3045
|
+
hideHeader: options.hideHeader ?? true,
|
|
3046
|
+
},
|
|
3047
|
+
}),
|
|
3003
3048
|
});
|
|
3004
3049
|
return {
|
|
3005
|
-
result: Boolean(popup
|
|
3006
|
-
items: popup
|
|
3050
|
+
result: Boolean(popup?.data?.result),
|
|
3051
|
+
items: popup?.data?.result ? (popup.data?.items ?? []) : [],
|
|
3007
3052
|
};
|
|
3008
3053
|
}
|
|
3009
3054
|
/**
|
|
@@ -3263,14 +3308,21 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
|
|
|
3263
3308
|
* Shows share dialog for a node
|
|
3264
3309
|
*/
|
|
3265
3310
|
async showShareDialog(node) {
|
|
3266
|
-
|
|
3267
|
-
const popup = await this.
|
|
3268
|
-
|
|
3269
|
-
data: {
|
|
3270
|
-
|
|
3311
|
+
let title = '';
|
|
3312
|
+
const popup = await this.dialogOpener.openPopup({
|
|
3313
|
+
load: () => import('./acorex-platform-module-document-management-client-share-dialog.component-CFI4hK3T.mjs').then((module) => module.AXMShareDialogComponent),
|
|
3314
|
+
data: { nodeId: node.id, dialog: 'share' },
|
|
3315
|
+
prepare: async () => {
|
|
3316
|
+
title = await this.translate.translateAsync('@document-management:dialogs.share-dialog.title');
|
|
3271
3317
|
},
|
|
3318
|
+
show: (component) => this.popupService.open(component, {
|
|
3319
|
+
title,
|
|
3320
|
+
data: {
|
|
3321
|
+
node,
|
|
3322
|
+
},
|
|
3323
|
+
}),
|
|
3272
3324
|
});
|
|
3273
|
-
if (popup
|
|
3325
|
+
if (popup?.data?.result) {
|
|
3274
3326
|
// Handle the share action with popup.data.data
|
|
3275
3327
|
}
|
|
3276
3328
|
}
|
|
@@ -3278,14 +3330,21 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
|
|
|
3278
3330
|
* Shows share via email dialog for a node
|
|
3279
3331
|
*/
|
|
3280
3332
|
async showShareWithEmailDialog(node) {
|
|
3281
|
-
|
|
3282
|
-
const popup = await this.
|
|
3283
|
-
|
|
3284
|
-
data: {
|
|
3285
|
-
|
|
3333
|
+
let title = '';
|
|
3334
|
+
const popup = await this.dialogOpener.openPopup({
|
|
3335
|
+
load: () => import('./acorex-platform-module-document-management-client-share-email-dialog.component-CUvlAcp6.mjs').then((module) => module.AXMShareEmailDialogComponent),
|
|
3336
|
+
data: { nodeId: node.id, dialog: 'share-email' },
|
|
3337
|
+
prepare: async () => {
|
|
3338
|
+
title = await this.translate.translateAsync('@document-management:dialogs.share-email-dialog.title');
|
|
3286
3339
|
},
|
|
3340
|
+
show: (component) => this.popupService.open(component, {
|
|
3341
|
+
title,
|
|
3342
|
+
data: {
|
|
3343
|
+
node,
|
|
3344
|
+
},
|
|
3345
|
+
}),
|
|
3287
3346
|
});
|
|
3288
|
-
if (popup
|
|
3347
|
+
if (popup?.data?.result) {
|
|
3289
3348
|
// Handle the share via email action with popup.data.data
|
|
3290
3349
|
}
|
|
3291
3350
|
}
|
|
@@ -3293,14 +3352,21 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
|
|
|
3293
3352
|
* Shows link dialog for a node
|
|
3294
3353
|
*/
|
|
3295
3354
|
async showLinkDialog(node) {
|
|
3296
|
-
|
|
3297
|
-
const popup = await this.
|
|
3298
|
-
|
|
3299
|
-
data: {
|
|
3300
|
-
|
|
3355
|
+
let title = '';
|
|
3356
|
+
const popup = await this.dialogOpener.openPopup({
|
|
3357
|
+
load: () => import('./acorex-platform-module-document-management-client-link-dialog.component-EYoimqRD.mjs').then((module) => module.AXMLinkDialogComponent),
|
|
3358
|
+
data: { nodeId: node.id, dialog: 'link' },
|
|
3359
|
+
prepare: async () => {
|
|
3360
|
+
title = await this.translate.translateAsync('@document-management:dialogs.share-link-dialog.title');
|
|
3301
3361
|
},
|
|
3362
|
+
show: (component) => this.popupService.open(component, {
|
|
3363
|
+
title,
|
|
3364
|
+
data: {
|
|
3365
|
+
node,
|
|
3366
|
+
},
|
|
3367
|
+
}),
|
|
3302
3368
|
});
|
|
3303
|
-
if (popup
|
|
3369
|
+
if (popup?.data?.result) {
|
|
3304
3370
|
// Handle the link generation with popup.data.data
|
|
3305
3371
|
}
|
|
3306
3372
|
}
|
|
@@ -4086,6 +4152,12 @@ class AXMDocumentManagementApiService extends AXPDocumentManagementService {
|
|
|
4086
4152
|
options,
|
|
4087
4153
|
});
|
|
4088
4154
|
}
|
|
4155
|
+
listFolderReviewDocuments(folderId, taskId) {
|
|
4156
|
+
return this.fetchArray(AXMDocumentManagementQueryKeys.DocumentReview.ListFolderDocuments, {
|
|
4157
|
+
folderId,
|
|
4158
|
+
taskId,
|
|
4159
|
+
});
|
|
4160
|
+
}
|
|
4089
4161
|
findManyDocuments(ids) {
|
|
4090
4162
|
return this.fetchArray(AXMDocumentManagementQueryKeys.Document.FindMany, { ids });
|
|
4091
4163
|
}
|
|
@@ -4177,27 +4249,36 @@ const AXM_DRIVE_FILE_CHOOSER_PROVIDER = {
|
|
|
4177
4249
|
order: 2,
|
|
4178
4250
|
choose: async (context) => {
|
|
4179
4251
|
const popupService = inject(AXPopupService);
|
|
4252
|
+
const dialogOpener = inject(AXPDialogOpener$1);
|
|
4180
4253
|
const translate = inject(AXTranslationService);
|
|
4181
4254
|
const scope = defaultTo(context.options['scope'], AXPPlatformScope.Tenant);
|
|
4182
4255
|
const multiple = Boolean(context.options['multiple']);
|
|
4183
4256
|
const browseMode = defaultTo(context.options['browseMode'], 'file');
|
|
4184
4257
|
const accept = context.options['accept'];
|
|
4185
|
-
|
|
4186
|
-
const popup = await
|
|
4187
|
-
|
|
4188
|
-
|
|
4189
|
-
|
|
4190
|
-
|
|
4191
|
-
selectionMode: multiple ? 'multiple' : 'single',
|
|
4192
|
-
browseMode,
|
|
4193
|
-
hideHeader: true,
|
|
4194
|
-
accept,
|
|
4258
|
+
let title = '';
|
|
4259
|
+
const popup = await dialogOpener.openPopup({
|
|
4260
|
+
load: () => import('./acorex-platform-module-document-management-client-drive-choose.component-D7B9fi6_.mjs').then((module) => module.AXMDocumentDriveChooseComponent),
|
|
4261
|
+
data: { scope, multiple, browseMode, accept: accept ?? '' },
|
|
4262
|
+
prepare: async () => {
|
|
4263
|
+
title = await translate.translateAsync('@document-management:actions.choose-from-drive');
|
|
4195
4264
|
},
|
|
4265
|
+
show: (component) => popupService.open(component, {
|
|
4266
|
+
title,
|
|
4267
|
+
size: 'lg',
|
|
4268
|
+
data: {
|
|
4269
|
+
scope,
|
|
4270
|
+
selectionMode: multiple ? 'multiple' : 'single',
|
|
4271
|
+
browseMode,
|
|
4272
|
+
hideHeader: true,
|
|
4273
|
+
accept,
|
|
4274
|
+
},
|
|
4275
|
+
}),
|
|
4196
4276
|
});
|
|
4197
|
-
|
|
4277
|
+
const picked = popup?.data;
|
|
4278
|
+
if (!picked?.result) {
|
|
4198
4279
|
return undefined;
|
|
4199
4280
|
}
|
|
4200
|
-
const selected = castArray(
|
|
4281
|
+
const selected = castArray(picked.items ?? []);
|
|
4201
4282
|
if (isEmpty$1(selected)) {
|
|
4202
4283
|
return undefined;
|
|
4203
4284
|
}
|
|
@@ -4687,7 +4768,11 @@ const DocumentFileUploaderEditDialogAfterFormProvider = {
|
|
|
4687
4768
|
: undefined;
|
|
4688
4769
|
if (!docType && (!metaObj || Object.keys(metaObj).length === 0))
|
|
4689
4770
|
return payload;
|
|
4690
|
-
const
|
|
4771
|
+
const sessionService = injector.get(AXPSessionService);
|
|
4772
|
+
const reviewReadonly = [
|
|
4773
|
+
...reviewReadonlyFieldNames(sessionService.authorize(AXPContentDocumentsPermissionKeys.ManageDocumentReview)),
|
|
4774
|
+
];
|
|
4775
|
+
const metaDataList = toEditableMetaDataList(collectDocumentScopedMetaDataList(docType?.metaDataList), reviewReadonly);
|
|
4691
4776
|
const hasDefinitions = Array.isArray(metaDataList.groups) && metaDataList.groups.length > 0;
|
|
4692
4777
|
const fields = [
|
|
4693
4778
|
{
|
|
@@ -4696,7 +4781,7 @@ const DocumentFileUploaderEditDialogAfterFormProvider = {
|
|
|
4696
4781
|
widget: {
|
|
4697
4782
|
name: 'metaDataForm',
|
|
4698
4783
|
type: 'meta-data-form-editor',
|
|
4699
|
-
options: metaDataList,
|
|
4784
|
+
options: { ...metaDataList, readonlyFieldNames: reviewReadonly },
|
|
4700
4785
|
defaultValue: metaObj,
|
|
4701
4786
|
},
|
|
4702
4787
|
},
|
|
@@ -4817,6 +4902,105 @@ const documentPlugin = {
|
|
|
4817
4902
|
},
|
|
4818
4903
|
};
|
|
4819
4904
|
|
|
4905
|
+
//#endregion
|
|
4906
|
+
//#region ----- Explorer review eligibility -----
|
|
4907
|
+
function asRecord(value) {
|
|
4908
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
4909
|
+
return null;
|
|
4910
|
+
}
|
|
4911
|
+
return value;
|
|
4912
|
+
}
|
|
4913
|
+
function rememberId(target, value) {
|
|
4914
|
+
const id = typeof value === 'string' ? value.trim() : '';
|
|
4915
|
+
if (id && !target.includes(id)) {
|
|
4916
|
+
target.push(id);
|
|
4917
|
+
}
|
|
4918
|
+
}
|
|
4919
|
+
function rememberType(ids, names, type) {
|
|
4920
|
+
const row = asRecord(type);
|
|
4921
|
+
if (!row) {
|
|
4922
|
+
return;
|
|
4923
|
+
}
|
|
4924
|
+
rememberId(ids, row['id']);
|
|
4925
|
+
const name = typeof row['name'] === 'string' ? row['name'].trim() : '';
|
|
4926
|
+
if (name && !names.includes(name)) {
|
|
4927
|
+
names.push(name);
|
|
4928
|
+
}
|
|
4929
|
+
}
|
|
4930
|
+
function collectDocumentTypeKeys(...sources) {
|
|
4931
|
+
const ids = [];
|
|
4932
|
+
const names = [];
|
|
4933
|
+
for (const source of sources) {
|
|
4934
|
+
const row = asRecord(source);
|
|
4935
|
+
if (!row) {
|
|
4936
|
+
continue;
|
|
4937
|
+
}
|
|
4938
|
+
rememberType(ids, names, row['documentType']);
|
|
4939
|
+
const types = row['documentTypes'];
|
|
4940
|
+
if (Array.isArray(types)) {
|
|
4941
|
+
for (const type of types) {
|
|
4942
|
+
rememberType(ids, names, type);
|
|
4943
|
+
}
|
|
4944
|
+
}
|
|
4945
|
+
}
|
|
4946
|
+
return { ids, names };
|
|
4947
|
+
}
|
|
4948
|
+
function isReviewEnabledDocumentType(type, appliesTo) {
|
|
4949
|
+
if (!type) {
|
|
4950
|
+
return false;
|
|
4951
|
+
}
|
|
4952
|
+
return documentTypeHasReviewMetadataForAppliesTo(type.metaDataList, appliesTo);
|
|
4953
|
+
}
|
|
4954
|
+
function sourceHasReviewEnabledType(source, appliesTo) {
|
|
4955
|
+
const row = asRecord(source);
|
|
4956
|
+
if (!row) {
|
|
4957
|
+
return false;
|
|
4958
|
+
}
|
|
4959
|
+
if (isReviewEnabledDocumentType(row, appliesTo)) {
|
|
4960
|
+
return true;
|
|
4961
|
+
}
|
|
4962
|
+
if (isReviewEnabledDocumentType(asRecord(row['documentType']), appliesTo)) {
|
|
4963
|
+
return true;
|
|
4964
|
+
}
|
|
4965
|
+
const types = row['documentTypes'];
|
|
4966
|
+
return (Array.isArray(types) &&
|
|
4967
|
+
types.some((type) => isReviewEnabledDocumentType(asRecord(type), appliesTo)));
|
|
4968
|
+
}
|
|
4969
|
+
async function sourcesAllowDocumentReview(sources, load, appliesTo) {
|
|
4970
|
+
if (sources.some((source) => sourceHasReviewEnabledType(source, appliesTo))) {
|
|
4971
|
+
return true;
|
|
4972
|
+
}
|
|
4973
|
+
const keys = collectDocumentTypeKeys(...sources);
|
|
4974
|
+
if (load.byKey) {
|
|
4975
|
+
for (const id of keys.ids) {
|
|
4976
|
+
try {
|
|
4977
|
+
const type = await load.byKey(id);
|
|
4978
|
+
if (isReviewEnabledDocumentType(type, appliesTo)) {
|
|
4979
|
+
return true;
|
|
4980
|
+
}
|
|
4981
|
+
}
|
|
4982
|
+
catch {
|
|
4983
|
+
// Keep checking remaining types when one lookup misses.
|
|
4984
|
+
}
|
|
4985
|
+
}
|
|
4986
|
+
}
|
|
4987
|
+
if (keys.names.length) {
|
|
4988
|
+
const types = await load.byNames(keys.names);
|
|
4989
|
+
if (types.some((type) => isReviewEnabledDocumentType(type, appliesTo))) {
|
|
4990
|
+
return true;
|
|
4991
|
+
}
|
|
4992
|
+
}
|
|
4993
|
+
return false;
|
|
4994
|
+
}
|
|
4995
|
+
async function explorerNodeAllowsDocumentReview(node, load) {
|
|
4996
|
+
if (!node || node.storageType === 'shortcut' || node.isShortcut) {
|
|
4997
|
+
return false;
|
|
4998
|
+
}
|
|
4999
|
+
const appliesTo = node.type === 'folder' ? 'folder' : 'document';
|
|
5000
|
+
return sourcesAllowDocumentReview([node], load, appliesTo);
|
|
5001
|
+
}
|
|
5002
|
+
//#endregion
|
|
5003
|
+
|
|
4820
5004
|
//#region ----- Types -----
|
|
4821
5005
|
//#endregion
|
|
4822
5006
|
//#region ----- Public API -----
|
|
@@ -4913,26 +5097,57 @@ function collectDocumentTypeNames(nodes) {
|
|
|
4913
5097
|
}
|
|
4914
5098
|
//#endregion
|
|
4915
5099
|
//#region ----- Columns -----
|
|
4916
|
-
function
|
|
5100
|
+
function asInterfaceObject(interfaceValue) {
|
|
4917
5101
|
if (interfaceValue == null) {
|
|
4918
|
-
return
|
|
5102
|
+
return null;
|
|
4919
5103
|
}
|
|
4920
5104
|
if (typeof interfaceValue === 'string') {
|
|
4921
5105
|
try {
|
|
4922
5106
|
const parsed = JSON.parse(interfaceValue);
|
|
4923
|
-
return
|
|
5107
|
+
return parsed && typeof parsed === 'object' ? parsed : null;
|
|
4924
5108
|
}
|
|
4925
5109
|
catch {
|
|
4926
|
-
return interfaceValue;
|
|
5110
|
+
return { type: interfaceValue };
|
|
4927
5111
|
}
|
|
4928
5112
|
}
|
|
4929
5113
|
if (typeof interfaceValue === 'object') {
|
|
4930
|
-
|
|
4931
|
-
return String(row.type ?? row.name ?? '');
|
|
5114
|
+
return interfaceValue;
|
|
4932
5115
|
}
|
|
4933
|
-
return
|
|
5116
|
+
return null;
|
|
5117
|
+
}
|
|
5118
|
+
function parseInterfaceType(interfaceValue) {
|
|
5119
|
+
const iface = asInterfaceObject(interfaceValue);
|
|
5120
|
+
if (!iface) {
|
|
5121
|
+
return '';
|
|
5122
|
+
}
|
|
5123
|
+
return String(iface.type ?? iface.name ?? '');
|
|
5124
|
+
}
|
|
5125
|
+
function lookupFromInterface(interfaceValue) {
|
|
5126
|
+
const iface = asInterfaceObject(interfaceValue);
|
|
5127
|
+
if (!iface) {
|
|
5128
|
+
return undefined;
|
|
5129
|
+
}
|
|
5130
|
+
const type = String(iface.type ?? iface.name ?? '').toLowerCase();
|
|
5131
|
+
if (!type.includes('lookup')) {
|
|
5132
|
+
return undefined;
|
|
5133
|
+
}
|
|
5134
|
+
const options = iface.options ?? {};
|
|
5135
|
+
const entity = typeof options['entity'] === 'string' ? options['entity'].trim() : '';
|
|
5136
|
+
if (!entity) {
|
|
5137
|
+
return undefined;
|
|
5138
|
+
}
|
|
5139
|
+
const valueField = typeof options['valueField'] === 'string' && options['valueField'].trim()
|
|
5140
|
+
? options['valueField'].trim()
|
|
5141
|
+
: 'id';
|
|
5142
|
+
const textField = typeof options['textField'] === 'string' && options['textField'].trim()
|
|
5143
|
+
? options['textField'].trim()
|
|
5144
|
+
: 'displayName';
|
|
5145
|
+
return { entity, valueField, textField };
|
|
4934
5146
|
}
|
|
4935
5147
|
function formatFromInterface(interfaceValue) {
|
|
5148
|
+
if (lookupFromInterface(interfaceValue)) {
|
|
5149
|
+
return 'lookup';
|
|
5150
|
+
}
|
|
4936
5151
|
const type = parseInterfaceType(interfaceValue).toLowerCase();
|
|
4937
5152
|
if (type.includes('date-time') || type.includes('datetime')) {
|
|
4938
5153
|
return 'datetime';
|
|
@@ -4960,6 +5175,7 @@ function flattenMetaDataColumns(list, resolveTitle) {
|
|
|
4960
5175
|
title: resolveTitle(field.title) || name,
|
|
4961
5176
|
kind: 'metadata',
|
|
4962
5177
|
format: formatFromInterface(field.interface),
|
|
5178
|
+
lookup: lookupFromInterface(field.interface),
|
|
4963
5179
|
});
|
|
4964
5180
|
}
|
|
4965
5181
|
}
|
|
@@ -4968,6 +5184,23 @@ function flattenMetaDataColumns(list, resolveTitle) {
|
|
|
4968
5184
|
function readNodeMetaDataValue(node, fieldName) {
|
|
4969
5185
|
return readMetaDataFormValue(node.metaDataForm, fieldName);
|
|
4970
5186
|
}
|
|
5187
|
+
function collectLookupKeys(value, valueField = 'id') {
|
|
5188
|
+
if (value == null || value === '') {
|
|
5189
|
+
return [];
|
|
5190
|
+
}
|
|
5191
|
+
if (Array.isArray(value)) {
|
|
5192
|
+
return value.flatMap((item) => collectLookupKeys(item, valueField));
|
|
5193
|
+
}
|
|
5194
|
+
if (typeof value === 'object') {
|
|
5195
|
+
const row = value;
|
|
5196
|
+
const id = row[valueField] ?? row['id'];
|
|
5197
|
+
return typeof id === 'string' && id.trim() ? [id.trim()] : [];
|
|
5198
|
+
}
|
|
5199
|
+
if (typeof value === 'string' && value.trim()) {
|
|
5200
|
+
return [value.trim()];
|
|
5201
|
+
}
|
|
5202
|
+
return [];
|
|
5203
|
+
}
|
|
4971
5204
|
function readMetaDataFormValue(form, fieldName) {
|
|
4972
5205
|
if (form == null || typeof form !== 'object' || Array.isArray(form)) {
|
|
4973
5206
|
return undefined;
|
|
@@ -5028,8 +5261,8 @@ function canCreateFolderUnder(folder, scopeRootId, parentFolder) {
|
|
|
5028
5261
|
const DOCUMENT_EXPLORER_LAYOUT_SETTINGS_SCOPE = AXPPlatformScope.User;
|
|
5029
5262
|
const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withState(() => ({
|
|
5030
5263
|
// View State
|
|
5031
|
-
viewMode: 'large-
|
|
5032
|
-
preferredViewMode: 'large-
|
|
5264
|
+
viewMode: 'large-icons',
|
|
5265
|
+
preferredViewMode: 'large-icons',
|
|
5033
5266
|
viewModeLocked: false,
|
|
5034
5267
|
homogeneousGrid: null,
|
|
5035
5268
|
isLoading: false,
|
|
@@ -5126,7 +5359,10 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
|
|
|
5126
5359
|
selectedNode: computed(() => store.selectedNodes()[0] ?? null),
|
|
5127
5360
|
isDetailPanelOpen: computed(() => store.detailPanel()),
|
|
5128
5361
|
// groupByType: computed(() => store.groupByType()),
|
|
5129
|
-
})), withMethods((store, fileTypeService = inject(AXPFileTypeProviderService), fileService = inject(AXFileService), driveService = inject(AXMDocumentManagerService), commandService = inject(AXPCommandService), settingsService = inject(AXPSettingsService), translateService = inject(AXTranslationService), lockService = inject(AXPLockService), sessionService = inject(AXPSessionService)) => {
|
|
5362
|
+
})), withMethods((store, fileTypeService = inject(AXPFileTypeProviderService), fileService = inject(AXFileService), driveService = inject(AXMDocumentManagerService), commandService = inject(AXPCommandService), entityService = inject(AXPEntityService), settingsService = inject(AXPSettingsService), translateService = inject(AXTranslationService), lockService = inject(AXPLockService), sessionService = inject(AXPSessionService)) => {
|
|
5363
|
+
const documentTypeData = entityService
|
|
5364
|
+
.withEntity(RootConfig.module.name, RootConfig.entities.documentType.name)
|
|
5365
|
+
.data();
|
|
5130
5366
|
/** In-flight folder load; duplicate requests for the same folder reuse the same promise. */
|
|
5131
5367
|
let inflightLoad = null;
|
|
5132
5368
|
const applyExplorerNode = (node) => {
|
|
@@ -5164,18 +5400,8 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
|
|
|
5164
5400
|
};
|
|
5165
5401
|
const resolveHomogeneousGridViewState = (folders, files) => {
|
|
5166
5402
|
const homogeneousGrid = resolveHomogeneousExplorerGrid(folders, files);
|
|
5167
|
-
|
|
5168
|
-
|
|
5169
|
-
}
|
|
5170
|
-
if (homogeneousGrid) {
|
|
5171
|
-
return { homogeneousGrid, viewMode: 'details' };
|
|
5172
|
-
}
|
|
5173
|
-
const preferred = store.preferredViewMode();
|
|
5174
|
-
const fallback = preferred !== 'details' ? preferred : 'large-tiles';
|
|
5175
|
-
return {
|
|
5176
|
-
homogeneousGrid: null,
|
|
5177
|
-
viewMode: store.viewMode() === 'details' ? fallback : store.viewMode(),
|
|
5178
|
-
};
|
|
5403
|
+
const viewMode = store.viewModeLocked() ? store.viewMode() : store.preferredViewMode();
|
|
5404
|
+
return { homogeneousGrid, viewMode };
|
|
5179
5405
|
};
|
|
5180
5406
|
return {
|
|
5181
5407
|
setAllowedDocumentTypeNames(names) {
|
|
@@ -5216,7 +5442,7 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
|
|
|
5216
5442
|
const sortDirection = await layoutSettings.get(AXPDocumentManagementSettings.SortDirection);
|
|
5217
5443
|
const groupByType = await layoutSettings.get(AXPDocumentManagementSettings.GroupByType);
|
|
5218
5444
|
const detailPanel = await layoutSettings.get(AXPDocumentManagementSettings.DetailPanelOpen);
|
|
5219
|
-
const savedViewMode = viewMode
|
|
5445
|
+
const savedViewMode = viewMode || 'large-icons';
|
|
5220
5446
|
patchState(store, {
|
|
5221
5447
|
viewMode: savedViewMode,
|
|
5222
5448
|
preferredViewMode: savedViewMode,
|
|
@@ -5309,15 +5535,17 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
|
|
|
5309
5535
|
},
|
|
5310
5536
|
setViewMode(mode) {
|
|
5311
5537
|
const nextMode = mode;
|
|
5538
|
+
const locked = store.viewModeLocked();
|
|
5312
5539
|
patchState(store, {
|
|
5313
5540
|
viewMode: nextMode,
|
|
5314
|
-
...(
|
|
5541
|
+
...(!locked ? { preferredViewMode: nextMode } : {}),
|
|
5315
5542
|
});
|
|
5316
|
-
if (
|
|
5317
|
-
|
|
5318
|
-
.scope(DOCUMENT_EXPLORER_LAYOUT_SETTINGS_SCOPE)
|
|
5319
|
-
.set(AXPDocumentManagementSettings.ViewMode, nextMode);
|
|
5543
|
+
if (locked) {
|
|
5544
|
+
return;
|
|
5320
5545
|
}
|
|
5546
|
+
void settingsService
|
|
5547
|
+
.scope(DOCUMENT_EXPLORER_LAYOUT_SETTINGS_SCOPE)
|
|
5548
|
+
.set(AXPDocumentManagementSettings.ViewMode, nextMode);
|
|
5321
5549
|
},
|
|
5322
5550
|
isViewMode(mode) {
|
|
5323
5551
|
return store.viewMode() === mode;
|
|
@@ -5851,16 +6079,12 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
|
|
|
5851
6079
|
text: await trans('view-modes.list'),
|
|
5852
6080
|
icon: 'fa-light fa-list',
|
|
5853
6081
|
}, store.viewMode() === 'list'),
|
|
5854
|
-
|
|
5855
|
-
|
|
5856
|
-
|
|
5857
|
-
|
|
5858
|
-
|
|
5859
|
-
|
|
5860
|
-
break: true,
|
|
5861
|
-
}, store.viewMode() === 'details'),
|
|
5862
|
-
]
|
|
5863
|
-
: []),
|
|
6082
|
+
withMenuItemCheck({
|
|
6083
|
+
name: 'view.details',
|
|
6084
|
+
text: await trans('view-modes.details'),
|
|
6085
|
+
icon: 'fa-light fa-table',
|
|
6086
|
+
break: true,
|
|
6087
|
+
}, store.viewMode() === 'details'),
|
|
5864
6088
|
];
|
|
5865
6089
|
const groupByItems = [
|
|
5866
6090
|
withMenuItemCheck({
|
|
@@ -6051,6 +6275,11 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
|
|
|
6051
6275
|
node.storageType !== 'shortcut' &&
|
|
6052
6276
|
!node.isShortcut &&
|
|
6053
6277
|
sessionService.authorize(AXPContentDocumentsPermissionKeys.DistributeDocuments);
|
|
6278
|
+
const canRequestReview = sessionService.authorize(AXPContentDocumentsPermissionKeys.ManageDocumentReview) &&
|
|
6279
|
+
(await explorerNodeAllowsDocumentReview(node, {
|
|
6280
|
+
byNames: (names) => driveService.getDocumentTypesByNames(names),
|
|
6281
|
+
byKey: (id) => documentTypeData.byKey(id),
|
|
6282
|
+
}));
|
|
6054
6283
|
const actionItems = [];
|
|
6055
6284
|
if (canDistribute) {
|
|
6056
6285
|
actionItems.push({
|
|
@@ -6060,6 +6289,14 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
|
|
|
6060
6289
|
data: node,
|
|
6061
6290
|
});
|
|
6062
6291
|
}
|
|
6292
|
+
if (canRequestReview) {
|
|
6293
|
+
actionItems.push({
|
|
6294
|
+
name: 'request-review',
|
|
6295
|
+
text: await trans('menus.context.request-review'),
|
|
6296
|
+
icon: 'fa-light fa-file-check',
|
|
6297
|
+
data: node,
|
|
6298
|
+
});
|
|
6299
|
+
}
|
|
6063
6300
|
const menuItems = [
|
|
6064
6301
|
...(canOpen
|
|
6065
6302
|
? [
|
|
@@ -6217,6 +6454,26 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
|
|
|
6217
6454
|
data: node,
|
|
6218
6455
|
},
|
|
6219
6456
|
];
|
|
6457
|
+
const canRequestReview = sessionService.authorize(AXPContentDocumentsPermissionKeys.ManageDocumentReview) &&
|
|
6458
|
+
(await explorerNodeAllowsDocumentReview(node, {
|
|
6459
|
+
byNames: (names) => driveService.getDocumentTypesByNames(names),
|
|
6460
|
+
byKey: (id) => documentTypeData.byKey(id),
|
|
6461
|
+
}));
|
|
6462
|
+
if (canRequestReview) {
|
|
6463
|
+
items.push({
|
|
6464
|
+
name: 'actions',
|
|
6465
|
+
text: await trans('menus.context.actions'),
|
|
6466
|
+
icon: 'fa-light fa-bolt',
|
|
6467
|
+
items: [
|
|
6468
|
+
{
|
|
6469
|
+
name: 'request-review',
|
|
6470
|
+
text: await trans('menus.context.request-review'),
|
|
6471
|
+
icon: 'fa-light fa-file-check',
|
|
6472
|
+
data: node,
|
|
6473
|
+
},
|
|
6474
|
+
],
|
|
6475
|
+
});
|
|
6476
|
+
}
|
|
6220
6477
|
// Add upload menu only if not locked
|
|
6221
6478
|
if (!isNodeLocked && node?.documentTypes?.length && !node.childFolderDocumentTypes?.length) {
|
|
6222
6479
|
items.push({
|
|
@@ -6453,6 +6710,13 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
|
|
|
6453
6710
|
documentId: node.id,
|
|
6454
6711
|
});
|
|
6455
6712
|
break;
|
|
6713
|
+
case 'request-review':
|
|
6714
|
+
await commandService.execute(AXMDocumentManagementCommandKeys.DocumentReviewRequest, {
|
|
6715
|
+
data: node,
|
|
6716
|
+
documentId: node.type === 'file' ? node.id : undefined,
|
|
6717
|
+
folderId: node.type === 'folder' ? node.id : undefined,
|
|
6718
|
+
});
|
|
6719
|
+
break;
|
|
6456
6720
|
case 'show-version-history':
|
|
6457
6721
|
await driveService.showVersionHistory(node);
|
|
6458
6722
|
break;
|
|
@@ -6706,26 +6970,26 @@ class AXMDocumentExplorerComponent {
|
|
|
6706
6970
|
/** Drops stale async open results when the user right-clicks again before items resolve. */
|
|
6707
6971
|
this.contextMenuOpenToken = 0;
|
|
6708
6972
|
this.viewMap = {
|
|
6709
|
-
list: async () => (await import('./acorex-platform-module-document-management-client-list-view.component-
|
|
6710
|
-
'small-tiles': async () => (await import('./acorex-platform-module-document-management-client-small-tiles-view.component-
|
|
6711
|
-
'large-tiles': async () => (await import('./acorex-platform-module-document-management-client-large-tiles-view.component
|
|
6712
|
-
details: async () => (await import('./acorex-platform-module-document-management-client-details-view.component-
|
|
6713
|
-
'large-icons': async () => (await import('./acorex-platform-module-document-management-client-large-icons-view.component-
|
|
6714
|
-
'small-icons': async () => (await import('./acorex-platform-module-document-management-client-small-icons-view.component-
|
|
6715
|
-
'attachment': async () => (await import('./acorex-platform-module-document-management-client-attachment-widget.component-
|
|
6973
|
+
list: async () => (await import('./acorex-platform-module-document-management-client-list-view.component-4lKV7vLI.mjs')).AXMDocumentExplorerListViewComponent,
|
|
6974
|
+
'small-tiles': async () => (await import('./acorex-platform-module-document-management-client-small-tiles-view.component-Dmyzdd5g.mjs')).AXMDocumentExplorerSmallTilesViewComponent,
|
|
6975
|
+
'large-tiles': async () => (await import('./acorex-platform-module-document-management-client-large-tiles-view.component--HbrSK06.mjs')).AXMDocumentExplorerLargeTilesViewComponent,
|
|
6976
|
+
details: async () => (await import('./acorex-platform-module-document-management-client-details-view.component-BQrDE1DN.mjs')).AXMDocumentExplorerDetailsViewComponent,
|
|
6977
|
+
'large-icons': async () => (await import('./acorex-platform-module-document-management-client-large-icons-view.component-QvwN7k9l.mjs')).AXMDocumentExplorerLargeIconsViewComponent,
|
|
6978
|
+
'small-icons': async () => (await import('./acorex-platform-module-document-management-client-small-icons-view.component-BxGk3N37.mjs')).AXMDocumentExplorerSmallIconsViewComponent,
|
|
6979
|
+
'attachment': async () => (await import('./acorex-platform-module-document-management-client-attachment-widget.component-DqM2ltmp.mjs')).AXMDocumentExplorerAttachmentComponent,
|
|
6716
6980
|
};
|
|
6717
6981
|
this.skeletonViewMap = {
|
|
6718
|
-
list: async () => (await import('./acorex-platform-module-document-management-client-list-view-skeleton.component-
|
|
6719
|
-
'small-tiles': async () => (await import('./acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-
|
|
6982
|
+
list: async () => (await import('./acorex-platform-module-document-management-client-list-view-skeleton.component-D_tOw89k.mjs')).AXMDocumentExplorerListViewSkeletonComponent,
|
|
6983
|
+
'small-tiles': async () => (await import('./acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-DYhUCJLg.mjs'))
|
|
6720
6984
|
.AXMDocumentExplorerSmallTilesViewSkeletonComponent,
|
|
6721
6985
|
'large-tiles': async () => (await Promise.resolve().then(function () { return largeTilesViewSkeleton_component; }))
|
|
6722
6986
|
.AXMDocumentExplorerLargeTilesViewSkeletonComponent,
|
|
6723
6987
|
details: async () => (await import('./acorex-platform-module-document-management-client-details-view-skeleton.component-BnRZrzCX.mjs')).AXMDocumentExplorerDetailsViewSkeletonComponent,
|
|
6724
|
-
'large-icons': async () => (await import('./acorex-platform-module-document-management-client-large-icons-view-skeleton.component-
|
|
6988
|
+
'large-icons': async () => (await import('./acorex-platform-module-document-management-client-large-icons-view-skeleton.component-C0P-zEpf.mjs'))
|
|
6725
6989
|
.AXMDocumentExplorerLargeIconsViewSkeletonComponent,
|
|
6726
|
-
'small-icons': async () => (await import('./acorex-platform-module-document-management-client-small-icons-view-skeleton.component-
|
|
6990
|
+
'small-icons': async () => (await import('./acorex-platform-module-document-management-client-small-icons-view-skeleton.component-9tV5qpUV.mjs'))
|
|
6727
6991
|
.AXMDocumentExplorerSmallIconsViewSkeletonComponent,
|
|
6728
|
-
attachment: async () => (await import('./acorex-platform-module-document-management-client-attachment-view-skeleton.component-
|
|
6992
|
+
attachment: async () => (await import('./acorex-platform-module-document-management-client-attachment-view-skeleton.component-CriADt_T.mjs'))
|
|
6729
6993
|
.AXMDocumentExplorerAttachmentViewSkeletonComponent,
|
|
6730
6994
|
};
|
|
6731
6995
|
this.#effect2 = effect(() => {
|
|
@@ -7241,19 +7505,14 @@ class AXMDocumentDrivePageComponent extends AXPPageLayoutBaseComponent {
|
|
|
7241
7505
|
{ key: 'size', textKey: 'actions.sort-by-size', icon: 'fa-light fa-weight-hanging' },
|
|
7242
7506
|
], /* @ts-ignore */
|
|
7243
7507
|
...(ngDevMode ? [{ debugName: "sortItems" }] : /* istanbul ignore next */ []));
|
|
7244
|
-
this.viewsItems = computed(() =>
|
|
7245
|
-
|
|
7246
|
-
|
|
7247
|
-
|
|
7248
|
-
|
|
7249
|
-
|
|
7250
|
-
|
|
7251
|
-
|
|
7252
|
-
if (this.vm.canUseHomogeneousGrid()) {
|
|
7253
|
-
items.splice(items.length - 1, 0, { key: 'details', icon: 'fa-light fa-table', break: true });
|
|
7254
|
-
}
|
|
7255
|
-
return items;
|
|
7256
|
-
}, /* @ts-ignore */
|
|
7508
|
+
this.viewsItems = computed(() => [
|
|
7509
|
+
{ key: 'large-icons', icon: 'fa-light fa-grid' },
|
|
7510
|
+
{ key: 'small-icons', icon: 'fa-light fa-grid', break: true },
|
|
7511
|
+
{ key: 'large-tiles', icon: 'fa-grid-2' },
|
|
7512
|
+
{ key: 'small-tiles', icon: 'fa-grid-2', break: true },
|
|
7513
|
+
{ key: 'list', icon: 'fa-list' },
|
|
7514
|
+
{ key: 'details', icon: 'fa-light fa-table', break: true },
|
|
7515
|
+
], /* @ts-ignore */
|
|
7257
7516
|
...(ngDevMode ? [{ debugName: "viewsItems" }] : /* istanbul ignore next */ []));
|
|
7258
7517
|
this.selectedViewMode = computed(() => this.viewsItems().find((item) => item.key === this.vm.viewMode()) ?? this.viewsItems()[0], /* @ts-ignore */
|
|
7259
7518
|
...(ngDevMode ? [{ debugName: "selectedViewMode" }] : /* istanbul ignore next */ []));
|
|
@@ -8005,20 +8264,28 @@ class AXMDocumentManagementModule {
|
|
|
8005
8264
|
provideCommandSetups([
|
|
8006
8265
|
{
|
|
8007
8266
|
key: 'DocumentManagement.Document:Upload',
|
|
8008
|
-
command: () => import('./acorex-platform-module-document-management-client-upload-document.command-
|
|
8267
|
+
command: () => import('./acorex-platform-module-document-management-client-upload-document.command-CPcrmNAp.mjs').then((c) => c.AXMUploadDocumentCommand),
|
|
8009
8268
|
},
|
|
8010
8269
|
{
|
|
8011
8270
|
key: 'DocumentManagement.Document:Open',
|
|
8012
|
-
command: () => import('./acorex-platform-module-document-management-client-open-document.command-
|
|
8271
|
+
command: () => import('./acorex-platform-module-document-management-client-open-document.command-ChUbCmwI.mjs').then((c) => c.AXMOpenDocumentCommand),
|
|
8013
8272
|
},
|
|
8014
8273
|
{
|
|
8015
8274
|
key: 'DocumentManagement.Document:Distribute',
|
|
8016
|
-
command: () => import('./acorex-platform-module-document-management-client-distribute-document.command-
|
|
8275
|
+
command: () => import('./acorex-platform-module-document-management-client-distribute-document.command-u3nQHky9.mjs').then((c) => c.AXMDistributeDocumentCommand),
|
|
8017
8276
|
},
|
|
8018
8277
|
{
|
|
8019
8278
|
key: 'DocumentManagement.DocumentDistribution:SignOff',
|
|
8020
8279
|
command: () => import('./acorex-platform-module-document-management-client-sign-distributed-document.command-DpQ-Un7q.mjs').then((c) => c.AXMSignDistributedDocumentCommand),
|
|
8021
8280
|
},
|
|
8281
|
+
{
|
|
8282
|
+
key: 'DocumentManagement.Document:RequestReview',
|
|
8283
|
+
command: () => import('./acorex-platform-module-document-management-client-request-document-review.command-DUTxOir5.mjs').then((c) => c.AXMRequestDocumentReviewCommand),
|
|
8284
|
+
},
|
|
8285
|
+
{
|
|
8286
|
+
key: 'DocumentManagement.DocumentReview:SignOff',
|
|
8287
|
+
command: () => import('./acorex-platform-module-document-management-client-sign-document-review.command-B08sgrRi.mjs').then((c) => c.AXMSignDocumentReviewCommand),
|
|
8288
|
+
},
|
|
8022
8289
|
]),
|
|
8023
8290
|
], imports: [AXMDriveChooseModule,
|
|
8024
8291
|
AXMFileTypeModule,
|
|
@@ -8104,20 +8371,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
8104
8371
|
provideCommandSetups([
|
|
8105
8372
|
{
|
|
8106
8373
|
key: 'DocumentManagement.Document:Upload',
|
|
8107
|
-
command: () => import('./acorex-platform-module-document-management-client-upload-document.command-
|
|
8374
|
+
command: () => import('./acorex-platform-module-document-management-client-upload-document.command-CPcrmNAp.mjs').then((c) => c.AXMUploadDocumentCommand),
|
|
8108
8375
|
},
|
|
8109
8376
|
{
|
|
8110
8377
|
key: 'DocumentManagement.Document:Open',
|
|
8111
|
-
command: () => import('./acorex-platform-module-document-management-client-open-document.command-
|
|
8378
|
+
command: () => import('./acorex-platform-module-document-management-client-open-document.command-ChUbCmwI.mjs').then((c) => c.AXMOpenDocumentCommand),
|
|
8112
8379
|
},
|
|
8113
8380
|
{
|
|
8114
8381
|
key: 'DocumentManagement.Document:Distribute',
|
|
8115
|
-
command: () => import('./acorex-platform-module-document-management-client-distribute-document.command-
|
|
8382
|
+
command: () => import('./acorex-platform-module-document-management-client-distribute-document.command-u3nQHky9.mjs').then((c) => c.AXMDistributeDocumentCommand),
|
|
8116
8383
|
},
|
|
8117
8384
|
{
|
|
8118
8385
|
key: 'DocumentManagement.DocumentDistribution:SignOff',
|
|
8119
8386
|
command: () => import('./acorex-platform-module-document-management-client-sign-distributed-document.command-DpQ-Un7q.mjs').then((c) => c.AXMSignDistributedDocumentCommand),
|
|
8120
8387
|
},
|
|
8388
|
+
{
|
|
8389
|
+
key: 'DocumentManagement.Document:RequestReview',
|
|
8390
|
+
command: () => import('./acorex-platform-module-document-management-client-request-document-review.command-DUTxOir5.mjs').then((c) => c.AXMRequestDocumentReviewCommand),
|
|
8391
|
+
},
|
|
8392
|
+
{
|
|
8393
|
+
key: 'DocumentManagement.DocumentReview:SignOff',
|
|
8394
|
+
command: () => import('./acorex-platform-module-document-management-client-sign-document-review.command-B08sgrRi.mjs').then((c) => c.AXMSignDocumentReviewCommand),
|
|
8395
|
+
},
|
|
8121
8396
|
]),
|
|
8122
8397
|
],
|
|
8123
8398
|
}]
|
|
@@ -8200,19 +8475,14 @@ class AXMDocumentDriveComponent extends AXPPageLayoutBaseComponent {
|
|
|
8200
8475
|
{ key: 'size', textKey: 'actions.sort-by-size', icon: 'fa-light fa-weight-hanging' },
|
|
8201
8476
|
], /* @ts-ignore */
|
|
8202
8477
|
...(ngDevMode ? [{ debugName: "sortItems" }] : /* istanbul ignore next */ []));
|
|
8203
|
-
this.viewsItems = computed(() =>
|
|
8204
|
-
|
|
8205
|
-
|
|
8206
|
-
|
|
8207
|
-
|
|
8208
|
-
|
|
8209
|
-
|
|
8210
|
-
|
|
8211
|
-
if (this.vm.canUseHomogeneousGrid()) {
|
|
8212
|
-
items.splice(items.length - 1, 0, { key: 'details', icon: 'fa-light fa-table', break: true });
|
|
8213
|
-
}
|
|
8214
|
-
return items;
|
|
8215
|
-
}, /* @ts-ignore */
|
|
8478
|
+
this.viewsItems = computed(() => [
|
|
8479
|
+
{ key: 'large-icons', icon: 'fa-light fa-grid' },
|
|
8480
|
+
{ key: 'small-icons', icon: 'fa-light fa-grid', break: true },
|
|
8481
|
+
{ key: 'large-tiles', icon: 'fa-grid-2' },
|
|
8482
|
+
{ key: 'small-tiles', icon: 'fa-grid-2', break: true },
|
|
8483
|
+
{ key: 'list', icon: 'fa-list' },
|
|
8484
|
+
{ key: 'details', icon: 'fa-light fa-table', break: true },
|
|
8485
|
+
], /* @ts-ignore */
|
|
8216
8486
|
...(ngDevMode ? [{ debugName: "viewsItems" }] : /* istanbul ignore next */ []));
|
|
8217
8487
|
this.selectedViewMode = computed(() => this.viewsItems().find((item) => item.key === this.vm.viewMode()) || this.viewsItems()[0], /* @ts-ignore */
|
|
8218
8488
|
...(ngDevMode ? [{ debugName: "selectedViewMode" }] : /* istanbul ignore next */ []));
|
|
@@ -8919,5 +9189,5 @@ var drive_component = /*#__PURE__*/Object.freeze({
|
|
|
8919
9189
|
* Generated bundle index. Do not edit.
|
|
8920
9190
|
*/
|
|
8921
9191
|
|
|
8922
|
-
export { AXPDocumentExplorerViewModel as A,
|
|
8923
|
-
//# sourceMappingURL=acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-
|
|
9192
|
+
export { AXPDocumentExplorerViewModel as A, AXMFileTypeExtensionWidgetDesignerComponent as B, AXMFileTypeExtensionWidgetEditComponent as C, AXMFileTypeExtensionWidgetViewComponent as D, AXMFileTypeModule as E, AXMMenuProvider as F, AXMSearchCommandProvider as G, AXM_DOCUMENT_ATTACHMENT_DIALOG_ON_ACTION_HOOK_KEY as H, AXM_DOCUMENT_DIALOG_SURFACE_ATTACHMENT as I, AXM_DOCUMENT_DIALOG_SURFACE_ATTACHMENT_NO_SAVE as J, AXM_DOCUMENT_EXPIRATION_STATUS as K, AXM_DOCUMENT_EXPIRATION_STATUS_DEFINITION_KEY as L, AXPDocumentManagementSettingProvider as M, AXmFileTypeExtensionWidget as N, DM_AUDIO_EXTENSION_ICONS as O, DM_DOCUMENT_EXTENSION_ICONS as P, DM_FILE_EXTENSION_ICONS as Q, DM_FILE_TYPE_ICONS as R, DM_VIDEO_EXTENSION_ICONS as S, DOCUMENT_DRIVE_PAGE_COMPONENT_KEY as T, ScopedDriveService as U, buildDocumentManagementFileTypeCatalog as V, documentPlugin as W, resolveDocumentExpirationBadge as X, resolveDocumentVersionNumber as Y, resolveFolderExpirationCountBadges as Z, AXMDocumentExpirationBadgeComponent as a, AXMDocumentVersionBadgeComponent as b, AXMFolderExpirationBadgesComponent as c, collectFolderScopedMetaDataList as d, collectDocumentScopedMetaDataList as e, flattenMetaDataColumns as f, collectLookupKeys as g, collectDocumentTypeIds as h, collectDocumentTypeNames as i, AXMDocumentManagerService as j, AXMDocumentDialogService as k, buildFileChooserOptionsFromDocumentType as l, AXPDocumentManagementService as m, AXMDocumentExplorerComponent as n, AXMFolderPathBreadcrumbsComponent as o, AXMDocumentDriveComponent as p, AXMDocumentDrivePageComponent as q, readNodeMetaDataValue as r, sourcesAllowDocumentReview as s, AXMDocumentDrivePageComponentProvider as t, AXMDocumentExpirationStatusProvider as u, AXMDocumentManagementApiService as v, AXMDocumentManagementFileTypeProvider as w, AXMDocumentManagementModule as x, AXMDocumentManagerServiceImpl as y, AXMFileTypeExtensionWidgetColumnComponent as z };
|
|
9193
|
+
//# sourceMappingURL=acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-BAlV-t9L.mjs.map
|