@acorex-platform/module-document-management-client 0.0.54 → 0.0.57

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.
Files changed (88) hide show
  1. package/fesm2022/{acorex-platform-module-document-management-client-acorex-platform-module-document-management-client--0oIEHPI.mjs → acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-qhcOFKFu.mjs} +1068 -436
  2. package/fesm2022/acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-qhcOFKFu.mjs.map +1 -0
  3. package/fesm2022/{acorex-platform-module-document-management-client-attachment-view-skeleton.component-CP6yjHx7.mjs → acorex-platform-module-document-management-client-attachment-view-skeleton.component-BeQSbax5.mjs} +2 -2
  4. package/fesm2022/{acorex-platform-module-document-management-client-attachment-view-skeleton.component-CP6yjHx7.mjs.map → acorex-platform-module-document-management-client-attachment-view-skeleton.component-BeQSbax5.mjs.map} +1 -1
  5. package/fesm2022/acorex-platform-module-document-management-client-attachment-widget.component-CsrcMMC9.mjs +37 -0
  6. package/fesm2022/acorex-platform-module-document-management-client-attachment-widget.component-CsrcMMC9.mjs.map +1 -0
  7. package/fesm2022/acorex-platform-module-document-management-client-contracts-entities-document-type.mjs +1 -0
  8. package/fesm2022/acorex-platform-module-document-management-client-contracts-entities-document-type.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-module-document-management-client-contracts-entities-document.mjs +15 -0
  10. package/fesm2022/acorex-platform-module-document-management-client-contracts-entities-document.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-module-document-management-client-contracts-entities-folder.mjs +27 -0
  12. package/fesm2022/acorex-platform-module-document-management-client-contracts-entities-folder.mjs.map +1 -1
  13. package/fesm2022/{acorex-platform-module-document-management-client-contracts-entity-catalog-acorex-platform-module-document-management-client-contracts-entity-catalog-BxwUMlCE.mjs → acorex-platform-module-document-management-client-contracts-entity-catalog-acorex-platform-module-document-management-client-contracts-entity-catalog-qzPWMiWF.mjs} +6 -6
  14. package/fesm2022/{acorex-platform-module-document-management-client-contracts-entity-catalog-acorex-platform-module-document-management-client-contracts-entity-catalog-BxwUMlCE.mjs.map → acorex-platform-module-document-management-client-contracts-entity-catalog-acorex-platform-module-document-management-client-contracts-entity-catalog-qzPWMiWF.mjs.map} +1 -1
  15. package/fesm2022/{acorex-platform-module-document-management-client-contracts-entity-catalog-document-shortcut.entity-D-hEBLFT.mjs → acorex-platform-module-document-management-client-contracts-entity-catalog-document-shortcut.entity-BELnXED1.mjs} +2 -2
  16. package/fesm2022/{acorex-platform-module-document-management-client-contracts-entity-catalog-document-shortcut.entity-D-hEBLFT.mjs.map → acorex-platform-module-document-management-client-contracts-entity-catalog-document-shortcut.entity-BELnXED1.mjs.map} +1 -1
  17. package/fesm2022/{acorex-platform-module-document-management-client-contracts-entity-catalog-document-type.entity-CBMUwrc-.mjs → acorex-platform-module-document-management-client-contracts-entity-catalog-document-type.entity-BSphQjSb.mjs} +3 -2
  18. package/fesm2022/acorex-platform-module-document-management-client-contracts-entity-catalog-document-type.entity-BSphQjSb.mjs.map +1 -0
  19. package/fesm2022/{acorex-platform-module-document-management-client-contracts-entity-catalog-document-version.entity-hATC_iAQ.mjs → acorex-platform-module-document-management-client-contracts-entity-catalog-document-version.entity-B9vWDzsE.mjs} +2 -2
  20. package/fesm2022/{acorex-platform-module-document-management-client-contracts-entity-catalog-document-version.entity-hATC_iAQ.mjs.map → acorex-platform-module-document-management-client-contracts-entity-catalog-document-version.entity-B9vWDzsE.mjs.map} +1 -1
  21. package/fesm2022/{acorex-platform-module-document-management-client-contracts-entity-catalog-document.entity-DOvhTOtO.mjs → acorex-platform-module-document-management-client-contracts-entity-catalog-document.entity-oFmhqAWA.mjs} +17 -2
  22. package/fesm2022/acorex-platform-module-document-management-client-contracts-entity-catalog-document.entity-oFmhqAWA.mjs.map +1 -0
  23. package/fesm2022/{acorex-platform-module-document-management-client-contracts-entity-catalog-folder.entity-cNSFyJoY.mjs → acorex-platform-module-document-management-client-contracts-entity-catalog-folder.entity-BqKpRAiP.mjs} +29 -2
  24. package/fesm2022/acorex-platform-module-document-management-client-contracts-entity-catalog-folder.entity-BqKpRAiP.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-module-document-management-client-contracts-entity-catalog.mjs +1 -1
  26. package/fesm2022/acorex-platform-module-document-management-client-contracts.mjs +2 -0
  27. package/fesm2022/acorex-platform-module-document-management-client-contracts.mjs.map +1 -1
  28. package/fesm2022/acorex-platform-module-document-management-client-details-view-skeleton.component-BnRZrzCX.mjs +19 -0
  29. package/fesm2022/acorex-platform-module-document-management-client-details-view-skeleton.component-BnRZrzCX.mjs.map +1 -0
  30. package/fesm2022/acorex-platform-module-document-management-client-details-view.component-DkCD8RSd.mjs +472 -0
  31. package/fesm2022/acorex-platform-module-document-management-client-details-view.component-DkCD8RSd.mjs.map +1 -0
  32. package/fesm2022/{acorex-platform-module-document-management-client-distribute-document.command-CCLwJcFb.mjs → acorex-platform-module-document-management-client-distribute-document.command-BaCdm2YF.mjs} +2 -2
  33. package/fesm2022/{acorex-platform-module-document-management-client-distribute-document.command-CCLwJcFb.mjs.map → acorex-platform-module-document-management-client-distribute-document.command-BaCdm2YF.mjs.map} +1 -1
  34. package/fesm2022/{acorex-platform-module-document-management-client-drive-choose.component-Bq4semJF.mjs → acorex-platform-module-document-management-client-drive-choose.component-up9sAsei.mjs} +2 -2
  35. package/fesm2022/{acorex-platform-module-document-management-client-drive-choose.component-Bq4semJF.mjs.map → acorex-platform-module-document-management-client-drive-choose.component-up9sAsei.mjs.map} +1 -1
  36. package/fesm2022/{acorex-platform-module-document-management-client-large-icons-view-skeleton.component-CXDBviff.mjs → acorex-platform-module-document-management-client-large-icons-view-skeleton.component-C_VbFRKl.mjs} +2 -2
  37. package/fesm2022/{acorex-platform-module-document-management-client-large-icons-view-skeleton.component-CXDBviff.mjs.map → acorex-platform-module-document-management-client-large-icons-view-skeleton.component-C_VbFRKl.mjs.map} +1 -1
  38. package/fesm2022/acorex-platform-module-document-management-client-large-icons-view.component-Cece4n22.mjs +31 -0
  39. package/fesm2022/{acorex-platform-module-document-management-client-large-icons-view.component-COT_8z2S.mjs.map → acorex-platform-module-document-management-client-large-icons-view.component-Cece4n22.mjs.map} +1 -1
  40. package/fesm2022/acorex-platform-module-document-management-client-large-tiles-view.component-DzWIUZtv.mjs +36 -0
  41. package/fesm2022/{acorex-platform-module-document-management-client-large-tiles-view.component-Dm-MSIUn.mjs.map → acorex-platform-module-document-management-client-large-tiles-view.component-DzWIUZtv.mjs.map} +1 -1
  42. package/fesm2022/acorex-platform-module-document-management-client-link-dialog.component-EYoimqRD.mjs +119 -0
  43. package/fesm2022/acorex-platform-module-document-management-client-link-dialog.component-EYoimqRD.mjs.map +1 -0
  44. package/fesm2022/{acorex-platform-module-document-management-client-list-view-skeleton.component-D-QA5J07.mjs → acorex-platform-module-document-management-client-list-view-skeleton.component-Dgx8lVyN.mjs} +2 -2
  45. package/fesm2022/{acorex-platform-module-document-management-client-list-view-skeleton.component-D-QA5J07.mjs.map → acorex-platform-module-document-management-client-list-view-skeleton.component-Dgx8lVyN.mjs.map} +1 -1
  46. package/fesm2022/acorex-platform-module-document-management-client-list-view.component-DVUfHWHB.mjs +31 -0
  47. package/fesm2022/{acorex-platform-module-document-management-client-list-view.component-CDldLoV-.mjs.map → acorex-platform-module-document-management-client-list-view.component-DVUfHWHB.mjs.map} +1 -1
  48. package/fesm2022/{acorex-platform-module-document-management-client-open-document.command--tM4SRV7.mjs → acorex-platform-module-document-management-client-open-document.command-Bimm2bzt.mjs} +3 -2
  49. package/fesm2022/acorex-platform-module-document-management-client-open-document.command-Bimm2bzt.mjs.map +1 -0
  50. package/fesm2022/acorex-platform-module-document-management-client-share-dialog.component-CFI4hK3T.mjs +89 -0
  51. package/fesm2022/acorex-platform-module-document-management-client-share-dialog.component-CFI4hK3T.mjs.map +1 -0
  52. package/fesm2022/acorex-platform-module-document-management-client-share-email-dialog.component-CUvlAcp6.mjs +84 -0
  53. package/fesm2022/acorex-platform-module-document-management-client-share-email-dialog.component-CUvlAcp6.mjs.map +1 -0
  54. package/fesm2022/{acorex-platform-module-document-management-client-small-icons-view-skeleton.component-Cmgqsr4e.mjs → acorex-platform-module-document-management-client-small-icons-view-skeleton.component-CU2MiVUi.mjs} +2 -2
  55. package/fesm2022/{acorex-platform-module-document-management-client-small-icons-view-skeleton.component-Cmgqsr4e.mjs.map → acorex-platform-module-document-management-client-small-icons-view-skeleton.component-CU2MiVUi.mjs.map} +1 -1
  56. package/fesm2022/acorex-platform-module-document-management-client-small-icons-view.component-CL5cNRtI.mjs +31 -0
  57. package/fesm2022/{acorex-platform-module-document-management-client-small-icons-view.component-IC5bdYey.mjs.map → acorex-platform-module-document-management-client-small-icons-view.component-CL5cNRtI.mjs.map} +1 -1
  58. package/fesm2022/{acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-DzDonT_e.mjs → acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-DBJldDaS.mjs} +2 -2
  59. package/fesm2022/{acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-DzDonT_e.mjs.map → acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-DBJldDaS.mjs.map} +1 -1
  60. package/fesm2022/acorex-platform-module-document-management-client-small-tiles-view.component-DtsBSVCq.mjs +36 -0
  61. package/fesm2022/{acorex-platform-module-document-management-client-small-tiles-view.component-NUNfAl3M.mjs.map → acorex-platform-module-document-management-client-small-tiles-view.component-DtsBSVCq.mjs.map} +1 -1
  62. package/fesm2022/{acorex-platform-module-document-management-client-upload-document.command-CCRAgI9w.mjs → acorex-platform-module-document-management-client-upload-document.command-D3L6x6CQ.mjs} +3 -3
  63. package/fesm2022/{acorex-platform-module-document-management-client-upload-document.command-CCRAgI9w.mjs.map → acorex-platform-module-document-management-client-upload-document.command-D3L6x6CQ.mjs.map} +1 -1
  64. package/fesm2022/acorex-platform-module-document-management-client.mjs +1 -1
  65. package/i18n/en-AU/document-management.json +664 -0
  66. package/i18n/en-US/document-management.json +664 -0
  67. package/i18n/fa-IR/document-management.json +664 -0
  68. package/package.json +2 -2
  69. package/types/acorex-platform-module-document-management-client-contracts.d.ts +59 -3
  70. package/types/acorex-platform-module-document-management-client.d.ts +92 -7
  71. package/fesm2022/acorex-platform-module-document-management-client-acorex-platform-module-document-management-client--0oIEHPI.mjs.map +0 -1
  72. package/fesm2022/acorex-platform-module-document-management-client-attachment-widget.component-DmgzUrWY.mjs +0 -37
  73. package/fesm2022/acorex-platform-module-document-management-client-attachment-widget.component-DmgzUrWY.mjs.map +0 -1
  74. package/fesm2022/acorex-platform-module-document-management-client-contracts-entity-catalog-document-type.entity-CBMUwrc-.mjs.map +0 -1
  75. package/fesm2022/acorex-platform-module-document-management-client-contracts-entity-catalog-document.entity-DOvhTOtO.mjs.map +0 -1
  76. package/fesm2022/acorex-platform-module-document-management-client-contracts-entity-catalog-folder.entity-cNSFyJoY.mjs.map +0 -1
  77. package/fesm2022/acorex-platform-module-document-management-client-large-icons-view.component-COT_8z2S.mjs +0 -31
  78. package/fesm2022/acorex-platform-module-document-management-client-large-tiles-view.component-Dm-MSIUn.mjs +0 -36
  79. package/fesm2022/acorex-platform-module-document-management-client-link-dialog.component-CUFgI0_q.mjs +0 -77
  80. package/fesm2022/acorex-platform-module-document-management-client-link-dialog.component-CUFgI0_q.mjs.map +0 -1
  81. package/fesm2022/acorex-platform-module-document-management-client-list-view.component-CDldLoV-.mjs +0 -31
  82. package/fesm2022/acorex-platform-module-document-management-client-open-document.command--tM4SRV7.mjs.map +0 -1
  83. package/fesm2022/acorex-platform-module-document-management-client-share-dialog.component-CyO_2Ppm.mjs +0 -148
  84. package/fesm2022/acorex-platform-module-document-management-client-share-dialog.component-CyO_2Ppm.mjs.map +0 -1
  85. package/fesm2022/acorex-platform-module-document-management-client-share-email-dialog.component-6B0KXT1Z.mjs +0 -58
  86. package/fesm2022/acorex-platform-module-document-management-client-share-email-dialog.component-6B0KXT1Z.mjs.map +0 -1
  87. package/fesm2022/acorex-platform-module-document-management-client-small-icons-view.component-IC5bdYey.mjs +0 -31
  88. package/fesm2022/acorex-platform-module-document-management-client-small-tiles-view.component-NUNfAl3M.mjs +0 -36
@@ -0,0 +1,472 @@
1
+ import { RootConfig } from '@acorex-platform/module-document-management-client/contracts';
2
+ import { AXPSettingsService, AXPCommonSettings } from '@acorex-platform/framework-client/common';
3
+ import { AXPElementDataDirective } from '@acorex-platform/framework-client/core';
4
+ import { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';
5
+ import { AXDataSource } from '@acorex/cdk/common';
6
+ import * as i1 from '@acorex/components/data-table';
7
+ import { AXDataTableModule } from '@acorex/components/data-table';
8
+ import * as i2 from '@acorex/core/format';
9
+ import { AXFormatModule } from '@acorex/core/format';
10
+ import { AXDateTimeModule } from '@acorex/core/date-time';
11
+ import * as i3 from '@acorex/core/translation';
12
+ import { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
13
+ import * as i1$1 from '@angular/common';
14
+ import { CommonModule } from '@angular/common';
15
+ import * as i0 from '@angular/core';
16
+ import { inject, DestroyRef, signal, computed, effect, ChangeDetectionStrategy, Component } from '@angular/core';
17
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
18
+ import { isEqual } from 'lodash-es';
19
+ import { A as AXPDocumentExplorerViewModel, r as readNodeMetaDataValue, d as collectFolderScopedMetaDataList, e as collectDocumentScopedMetaDataList, f as flattenMetaDataColumns, g as collectDocumentTypeIds, h as collectDocumentTypeNames, a as AXMDocumentExpirationBadgeComponent, b as AXMDocumentVersionBadgeComponent, c as AXMFolderExpirationBadgesComponent } from './acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-qhcOFKFu.mjs';
20
+ import { mergeMetaDataLists } from '@acorex-platform/module-data-management-client/contracts';
21
+
22
+ //#region ----- Imports -----
23
+ //#endregion
24
+ //#region ----- Component -----
25
+ class AXMDocumentExplorerDetailsViewComponent {
26
+ //#endregion
27
+ //#region ----- Lifecycle -----
28
+ constructor() {
29
+ //#region ----- Services & Dependencies -----
30
+ this.vm = inject(AXPDocumentExplorerViewModel);
31
+ this.entityService = inject(AXPEntityService);
32
+ this.translationService = inject(AXTranslationService);
33
+ this.settingsService = inject(AXPSettingsService);
34
+ this.destroyRef = inject(DestroyRef);
35
+ this.documentTypeData = this.entityService
36
+ .withEntity(RootConfig.module.name, RootConfig.entities.documentType.name)
37
+ .data();
38
+ //#endregion
39
+ //#region ----- State Signals -----
40
+ this.metadataColumns = signal([], /* @ts-ignore */
41
+ ...(ngDevMode ? [{ debugName: "metadataColumns" }] : /* istanbul ignore next */ []));
42
+ this.showRowIndexColumnEnabled = signal(false, /* @ts-ignore */
43
+ ...(ngDevMode ? [{ debugName: "showRowIndexColumnEnabled" }] : /* istanbul ignore next */ []));
44
+ //#endregion
45
+ //#region ----- Computed Properties -----
46
+ this.showIndexColumn = computed(() => this.showRowIndexColumnEnabled(), /* @ts-ignore */
47
+ ...(ngDevMode ? [{ debugName: "showIndexColumn" }] : /* istanbul ignore next */ []));
48
+ this.attributeColumns = computed(() => {
49
+ const kind = this.vm.homogeneousGrid()?.kind;
50
+ if (kind === 'folder') {
51
+ return [
52
+ { name: 'name', title: '@general:terms.common.name', kind: 'attribute' },
53
+ { name: 'description', title: '@general:terms.common.description', kind: 'attribute' },
54
+ { name: 'items', title: '@document-management:explorer.grid.columns.items', kind: 'attribute', format: 'number' },
55
+ { name: 'size', title: '@document-management:terms.common.size', kind: 'attribute', format: 'filesize' },
56
+ { name: 'modifiedAt', title: '@document-management:terms.timestamps.modified-at', kind: 'attribute', format: 'datetime' },
57
+ ];
58
+ }
59
+ return [
60
+ { name: 'name', title: '@general:terms.common.title', kind: 'attribute' },
61
+ { name: 'description', title: '@general:terms.common.description', kind: 'attribute' },
62
+ { name: 'size', title: '@document-management:terms.common.size', kind: 'attribute', format: 'filesize' },
63
+ { name: 'expirationDate', title: '@document-management:terms.document.expire-date', kind: 'attribute', format: 'date' },
64
+ { name: 'version', title: '@document-management:terms.common.version', kind: 'attribute' },
65
+ { name: 'modifiedAt', title: '@document-management:terms.timestamps.modified-at', kind: 'attribute', format: 'datetime' },
66
+ ];
67
+ }, /* @ts-ignore */
68
+ ...(ngDevMode ? [{ debugName: "attributeColumns" }] : /* istanbul ignore next */ []));
69
+ this.columns = computed(() => [...this.attributeColumns(), ...this.metadataColumns()], /* @ts-ignore */
70
+ ...(ngDevMode ? [{ debugName: "columns" }] : /* istanbul ignore next */ []));
71
+ this.gridNodes = computed(() => {
72
+ const kind = this.vm.homogeneousGrid()?.kind;
73
+ if (kind === 'folder') {
74
+ return this.vm.filteredFolders();
75
+ }
76
+ if (kind === 'document') {
77
+ return this.vm.filteredFiles();
78
+ }
79
+ return [...this.vm.filteredFolders(), ...this.vm.filteredFiles()];
80
+ }, /* @ts-ignore */
81
+ ...(ngDevMode ? [{ debugName: "gridNodes" }] : /* istanbul ignore next */ []));
82
+ this.gridRows = computed(() => {
83
+ const columns = this.columns();
84
+ return this.gridNodes().map((node) => {
85
+ const row = {
86
+ ...this.flattenForm(node.metaDataForm),
87
+ id: node.id,
88
+ node,
89
+ };
90
+ for (const column of columns) {
91
+ const raw = column.kind === 'metadata'
92
+ ? (this.metadataValue(node, column) ?? row[column.name])
93
+ : this.attributeValue(node, column);
94
+ row[column.name] = this.sortableValue(raw, column);
95
+ }
96
+ return row;
97
+ });
98
+ }, /* @ts-ignore */
99
+ ...(ngDevMode ? [{ debugName: "gridRows" }] : /* istanbul ignore next */ []));
100
+ this.selectedRows = computed(() => {
101
+ const selectedIds = new Set(this.vm.selectedNodes().map((node) => node.id));
102
+ return this.gridRows().filter((row) => selectedIds.has(row.id));
103
+ }, /* @ts-ignore */
104
+ ...(ngDevMode ? [{ debugName: "selectedRows" }] : /* istanbul ignore next */ []));
105
+ this.allowSelection = computed(() => this.vm.selectionMode() !== 'none', /* @ts-ignore */
106
+ ...(ngDevMode ? [{ debugName: "allowSelection" }] : /* istanbul ignore next */ []));
107
+ //#endregion
108
+ //#region ----- Data Source -----
109
+ this.dataSource = new AXDataSource({
110
+ key: 'id',
111
+ pageSize: 20,
112
+ load: async (query) => {
113
+ let rows = [...this.gridRows()];
114
+ const search = this.extractSearchText(query.filter);
115
+ if (search) {
116
+ const needle = search.toLowerCase();
117
+ rows = rows.filter((row) => this.columns().some((column) => String(row[column.name] ?? '').toLowerCase().includes(needle)));
118
+ }
119
+ const sort = query.sort?.[0];
120
+ if (sort?.field) {
121
+ const field = sort.field;
122
+ const direction = sort.dir === 'desc' ? -1 : 1;
123
+ rows.sort((left, right) => this.compareValues(left[field], right[field]) * direction);
124
+ }
125
+ const skip = query.skip ?? 0;
126
+ const take = query.take ?? 20;
127
+ return { items: rows.slice(skip, skip + take), total: rows.length };
128
+ },
129
+ });
130
+ this.getDropdownRowItems = async (rowData) => {
131
+ const node = this.asGridRow(rowData)?.node ??
132
+ this.gridRow(rowData)?.node ??
133
+ this.nodeById(this.readRowId(rowData));
134
+ if (!node) {
135
+ return [];
136
+ }
137
+ const items = await this.vm.getNodeContextMenuItems(node);
138
+ return this.mapMenuItemsToRowCommands(items);
139
+ };
140
+ void this.syncShowRowIndexColumnSetting();
141
+ this.settingsService.onLoaded.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
142
+ void this.syncShowRowIndexColumnSetting();
143
+ });
144
+ this.settingsService.onChanged.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
145
+ void this.syncShowRowIndexColumnSetting();
146
+ });
147
+ effect(() => {
148
+ const match = this.vm.homogeneousGrid();
149
+ const nodes = this.gridNodes();
150
+ void this.loadMetadataColumns(match?.kind ?? null, nodes);
151
+ });
152
+ effect(() => {
153
+ this.gridRows();
154
+ this.dataSource.refresh();
155
+ });
156
+ }
157
+ //#endregion
158
+ //#region ----- Event Handlers -----
159
+ handleSelectedRowsChange(rows) {
160
+ const next = (rows ?? [])
161
+ .map((row) => this.asGridRow(row)?.node ?? this.gridRow(row)?.node ?? this.nodeById(this.readRowId(row)))
162
+ .filter((node) => node != null);
163
+ const current = this.vm.selectedNodes();
164
+ if (isEqual(current.map((node) => node.id), next.map((node) => node.id))) {
165
+ return;
166
+ }
167
+ this.vm.setSelectedNodes(next);
168
+ }
169
+ handleRowDbClick(event) {
170
+ this.openNode(this.nodeFromTableEvent(event));
171
+ }
172
+ openNode(node) {
173
+ if (!node) {
174
+ return;
175
+ }
176
+ if (node.type === 'folder') {
177
+ this.vm.navigateToFolder(node.id);
178
+ return;
179
+ }
180
+ void this.vm.openFileViewer(node);
181
+ }
182
+ handleRowCommandClick(event) {
183
+ const node = this.nodeFromTableEvent(event) ?? event.data?.node;
184
+ if (!node || !event.name) {
185
+ return;
186
+ }
187
+ void this.vm.handleMenuItemClick(event.name, node);
188
+ }
189
+ //#endregion
190
+ //#region ----- Display -----
191
+ gridRow(item) {
192
+ if (item == null || typeof item !== 'object') {
193
+ return null;
194
+ }
195
+ const wrapped = item;
196
+ return this.asGridRow(wrapped.data) ?? this.asGridRow(item);
197
+ }
198
+ cellValue(item, column) {
199
+ const row = this.gridRow(item);
200
+ if (row && Object.prototype.hasOwnProperty.call(row, column.name)) {
201
+ return row[column.name];
202
+ }
203
+ if (item == null || typeof item !== 'object') {
204
+ return undefined;
205
+ }
206
+ const wrapped = item;
207
+ if (wrapped.data && typeof wrapped.data === 'object' && Object.prototype.hasOwnProperty.call(wrapped.data, column.name)) {
208
+ return wrapped.data[column.name];
209
+ }
210
+ if (Object.prototype.hasOwnProperty.call(item, column.name)) {
211
+ return item[column.name];
212
+ }
213
+ if ('value' in wrapped) {
214
+ return wrapped.value;
215
+ }
216
+ return undefined;
217
+ }
218
+ attributeValue(node, column) {
219
+ switch (column.name) {
220
+ case 'name':
221
+ return node.type === 'file' ? node.title || node.name : node.name;
222
+ case 'description':
223
+ return node.description;
224
+ case 'items':
225
+ return node.itemsCount ?? node.childrenCount ?? node.children?.length ?? 0;
226
+ case 'size':
227
+ return node.size || 0;
228
+ case 'expirationDate':
229
+ return node.expirationDate;
230
+ case 'version':
231
+ return node.version;
232
+ case 'modifiedAt':
233
+ return node.modifiedAt ?? this.auditAt(node, 'updated') ?? this.auditAt(node, 'created');
234
+ default:
235
+ return undefined;
236
+ }
237
+ }
238
+ metadataValue(node, column) {
239
+ return readNodeMetaDataValue(node, column.name);
240
+ }
241
+ displayText(value) {
242
+ if (value == null || value === '') {
243
+ return '';
244
+ }
245
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
246
+ return String(value);
247
+ }
248
+ if (Array.isArray(value)) {
249
+ return value.map((item) => this.displayText(item)).filter(Boolean).join(', ');
250
+ }
251
+ if (typeof value === 'object') {
252
+ const row = value;
253
+ const title = row['title'] ?? row['displayTitle'] ?? row['name'] ?? row['text'];
254
+ if (title != null) {
255
+ return this.translationService.resolve(title) ?? this.displayText(title);
256
+ }
257
+ return this.translationService.resolve(value) ?? '';
258
+ }
259
+ return String(value);
260
+ }
261
+ //#endregion
262
+ //#region ----- Data Loading -----
263
+ async loadMetadataColumns(kind, nodes) {
264
+ if (!kind || nodes.length === 0) {
265
+ this.metadataColumns.set([]);
266
+ return;
267
+ }
268
+ try {
269
+ const types = await this.loadDocumentTypes(nodes);
270
+ if (types.length === 0) {
271
+ this.metadataColumns.set([]);
272
+ return;
273
+ }
274
+ const list = kind === 'folder'
275
+ ? collectFolderScopedMetaDataList(types)
276
+ : mergeMetaDataLists(types.map((type) => collectDocumentScopedMetaDataList(type?.metaDataList)));
277
+ this.metadataColumns.set(flattenMetaDataColumns(list, (title) => this.translationService.resolve(title) ?? ''));
278
+ }
279
+ catch {
280
+ this.metadataColumns.set([]);
281
+ }
282
+ }
283
+ //#endregion
284
+ //#region ----- Helpers -----
285
+ async loadDocumentTypes(nodes) {
286
+ const loaded = [];
287
+ const seen = new Set();
288
+ const remember = (type) => {
289
+ if (!type) {
290
+ return;
291
+ }
292
+ const key = String(type.id ?? type.name ?? '').trim();
293
+ if (!key || seen.has(key)) {
294
+ return;
295
+ }
296
+ seen.add(key);
297
+ if (type.name) {
298
+ seen.add(type.name);
299
+ }
300
+ loaded.push(type);
301
+ };
302
+ for (const id of collectDocumentTypeIds(nodes)) {
303
+ try {
304
+ remember(await this.documentTypeData.byKey(id));
305
+ }
306
+ catch {
307
+ /* keep looking by name */
308
+ }
309
+ }
310
+ const missingNames = collectDocumentTypeNames(nodes).filter((name) => !seen.has(name));
311
+ if (missingNames.length === 0) {
312
+ return loaded;
313
+ }
314
+ const res = await this.documentTypeData.query({
315
+ skip: 0,
316
+ take: 1000,
317
+ filter: {
318
+ field: 'name',
319
+ operator: { type: 'in' },
320
+ value: missingNames,
321
+ },
322
+ });
323
+ for (const type of res?.items ?? []) {
324
+ remember(type);
325
+ }
326
+ return loaded;
327
+ }
328
+ flattenForm(form) {
329
+ const out = {};
330
+ const visit = (value) => {
331
+ if (value == null || typeof value !== 'object' || Array.isArray(value)) {
332
+ return;
333
+ }
334
+ for (const [key, nested] of Object.entries(value)) {
335
+ if (!(key in out)) {
336
+ out[key] = nested;
337
+ }
338
+ visit(nested);
339
+ }
340
+ };
341
+ visit(form);
342
+ return out;
343
+ }
344
+ auditAt(node, kind) {
345
+ const row = node;
346
+ return row[kind]?.at ?? row.auditInfo?.[kind]?.at;
347
+ }
348
+ sortableValue(value, column) {
349
+ if (column.format === 'date' || column.format === 'datetime') {
350
+ return value ?? null;
351
+ }
352
+ if (column.format === 'filesize' || column.format === 'number') {
353
+ return typeof value === 'number' ? value : Number(value ?? 0);
354
+ }
355
+ return this.displayText(value);
356
+ }
357
+ compareValues(left, right) {
358
+ if (left == null && right == null) {
359
+ return 0;
360
+ }
361
+ if (left == null) {
362
+ return -1;
363
+ }
364
+ if (right == null) {
365
+ return 1;
366
+ }
367
+ if (left instanceof Date || right instanceof Date) {
368
+ return new Date(left).getTime() - new Date(right).getTime();
369
+ }
370
+ if (typeof left === 'number' && typeof right === 'number') {
371
+ return left - right;
372
+ }
373
+ return String(left).localeCompare(String(right), undefined, { numeric: true, sensitivity: 'base' });
374
+ }
375
+ extractSearchText(filter) {
376
+ if (!filter || typeof filter !== 'object') {
377
+ return '';
378
+ }
379
+ const row = filter;
380
+ if (row.operator?.type === 'contains' && typeof row.value === 'string') {
381
+ return row.value;
382
+ }
383
+ if (Array.isArray(row.filters)) {
384
+ for (const child of row.filters) {
385
+ const found = this.extractSearchText(child);
386
+ if (found) {
387
+ return found;
388
+ }
389
+ }
390
+ }
391
+ return '';
392
+ }
393
+ nodeFromTableEvent(event) {
394
+ if (event == null || typeof event !== 'object') {
395
+ return null;
396
+ }
397
+ const payload = event;
398
+ return (this.asGridRow(payload.data)?.node ??
399
+ this.asGridRow(payload.row)?.node ??
400
+ this.gridRow(payload.data)?.node ??
401
+ this.gridRow(payload.row)?.node ??
402
+ this.nodeById(this.readRowId(payload.data) ?? this.readRowId(payload.row) ?? this.readRowId(event)));
403
+ }
404
+ readRowId(value) {
405
+ if (value == null || typeof value !== 'object') {
406
+ return null;
407
+ }
408
+ const id = value.id;
409
+ return typeof id === 'string' && id.trim() ? id : null;
410
+ }
411
+ nodeById(id) {
412
+ if (!id) {
413
+ return null;
414
+ }
415
+ return this.gridRows().find((row) => row.id === id)?.node ?? null;
416
+ }
417
+ asGridRow(value) {
418
+ if (value == null || typeof value !== 'object') {
419
+ return null;
420
+ }
421
+ const row = value;
422
+ if (!row.id || row.node == null) {
423
+ return null;
424
+ }
425
+ return row;
426
+ }
427
+ mapMenuItemsToRowCommands(items) {
428
+ return items.map((item) => {
429
+ const command = {
430
+ name: item.name ?? '',
431
+ text: item.text,
432
+ icon: typeof item.icon === 'string' ? item.icon : '',
433
+ disabled: item.disabled,
434
+ };
435
+ if (item.break) {
436
+ command.break = true;
437
+ }
438
+ if (item.items?.length) {
439
+ command.items = this.mapMenuItemsToRowCommands(item.items);
440
+ }
441
+ return command;
442
+ });
443
+ }
444
+ async syncShowRowIndexColumnSetting() {
445
+ try {
446
+ const value = await this.settingsService.get(AXPCommonSettings.ShowRowIndexColumn);
447
+ this.showRowIndexColumnEnabled.set(value ?? false);
448
+ }
449
+ catch {
450
+ this.showRowIndexColumnEnabled.set(false);
451
+ }
452
+ }
453
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMDocumentExplorerDetailsViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
454
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMDocumentExplorerDetailsViewComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<!-- ----- Platform data table for homogeneous folder or document rows ----- -->\n<div class=\"details-view\">\n <ax-data-table\n class=\"details-grid\"\n [dataSource]=\"dataSource\"\n [paging]=\"true\"\n [showFooter]=\"false\"\n [fixedHeader]=\"true\"\n [allowReordering]=\"true\"\n [loading]=\"{ enabled: true, animation: true }\"\n [selectedRows]=\"selectedRows()\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n >\n <!-- ----- Row number when Experience Show Row Index Column is enabled ----- -->\n @if (showIndexColumn()) {\n <ax-index-column\n [caption]=\"('@general:terms.common.row-number' | translate | async)!\"\n fixed=\"start\"\n [width]=\"'80px'\"\n [padZero]=\"false\"\n ></ax-index-column>\n }\n <!-- ----- Row selection when the explorer allows it ----- -->\n @if (allowSelection()) {\n <ax-select-column fixed=\"start\" [width]=\"'60px'\"></ax-select-column>\n }\n @for (column of columns(); track column.name) {\n <ax-text-column\n [dataField]=\"column.name\"\n [caption]=\"(column.title | translate | async)!\"\n [allowResizing]=\"true\"\n [allowSorting]=\"true\"\n [width]=\"column.name === 'name' ? '280px' : '160px'\"\n [fixed]=\"column.name === 'name' ? 'start' : null\"\n [cellTemplate]=\"columnCellTpl\"\n ></ax-text-column>\n <ng-template #columnCellTpl let-item>\n <!---->\n @if (column.name === 'name') {\n <!-- ----- Folder or document name with icon and expiration badges ----- -->\n <!---->\n @if (gridRow(item); as row) {\n <!---->\n @if (row.node; as node) {\n @let nodeDisplay = vm.getNodeDisplayInfo(node);\n <div class=\"item-name __explorer-item\" [axp-data]=\"node\" (dblclick)=\"$event.stopPropagation(); openNode(node)\">\n <!---->\n <!-- ----- Folder loading spinner ----- -->\n @if (node.type === 'folder' && vm.isLoadingFolder(node.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n }\n <!-- ----- Folder or file icon ----- -->\n @else {\n <span\n class=\"item-icon\"\n [class.item-icon--shortcut]=\"nodeDisplay.isShortcut\"\n [style.color]=\"node.type === 'folder' ? vm.getFolderColor(node) : null\"\n >\n <i [class]=\"node.type === 'folder' ? 'fas fa-folder-closed' : ('fa-fw ' + nodeDisplay.icon)\"></i>\n <!---->\n <!-- ----- Shortcut overlay ----- -->\n @if (nodeDisplay.isShortcut) {\n <i class=\"fa-light fa-up-right-from-square item-icon__shortcut-arrow\" aria-hidden=\"true\"></i>\n }\n </span>\n }\n <span>{{ displayText(cellValue(item, column)) }}</span>\n <!---->\n <!-- ----- Folder expiration badges ----- -->\n @if (node.type === 'folder') {\n <axm-folder-expiration-badges [node]=\"node\" />\n }\n <!-- ----- Document expiration badge ----- -->\n @else {\n <axm-document-expiration-badge [node]=\"node\" />\n }\n </div>\n }\n }\n }\n <!-- ----- Document version badge ----- -->\n @else if (column.name === 'version') {\n <!---->\n @if (gridRow(item)?.node; as node) {\n <axm-document-version-badge [node]=\"node\" />\n }\n }\n <!-- ----- File or folder size ----- -->\n @else if (column.format === 'filesize') {\n {{ cellValue(item, column) | format : 'filesize' | async }}\n }\n <!-- ----- Date-only metadata or attribute ----- -->\n @else if (column.format === 'date') {\n <!---->\n @if (cellValue(item, column); as value) {\n {{ value | format : 'date' : { format: 'date' } | async }}\n }\n }\n <!-- ----- Date and time metadata or attribute ----- -->\n @else if (column.format === 'datetime') {\n <!---->\n @if (cellValue(item, column); as value) {\n {{ value | format : 'datetime' : { format: 'datetime' } | async }}\n }\n }\n <!-- ----- Plain text, number, and lookup metadata ----- -->\n @else {\n {{ displayText(cellValue(item, column)) }}\n }\n </ng-template>\n }\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n </ax-data-table>\n</div>\n\n", styles: [":host{display:flex;height:100%;min-height:0px;width:100%;max-width:100%;min-width:0px;flex-direction:column}.details-view{display:flex;min-height:0px;width:100%;max-width:100%;min-width:0px;flex:1;flex-direction:column}.details-grid{height:100%;min-height:0px;max-width:100%;min-width:0px;flex:1;overflow:auto}.item-name{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.item-name i{font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)))}.item-name .item-icon{position:relative;display:inline-flex}.item-name .item-icon--shortcut .item-icon__shortcut-arrow{position:absolute;bottom:-2px;right:-2px;font-size:.45em;opacity:.9}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: AXPElementDataDirective, selector: "[axp-data]", inputs: ["axp-data", "axp-data-path"] }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i1.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "selectedRows", "parentField", "hasChildrenField", "rowDetailsTemplate", "rowCssClass", "cellCssClass", "highlightText", "look", "rowTemplate", "emptyTemplate", "noDataTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged", "onPageChanged"] }, { kind: "component", type: i1.AXDataTableTextColumnComponent, selector: "ax-text-column", inputs: ["width", "caption", "allowSorting", "allowResizing", "fixed", "hasTitle", "customExpandIcon", "customCollapseIcon", "dataField", "expandHandler", "wrapText", "translate", "cellTemplate", "footerTemplate", "headerTemplate", "format", "formatOptions"] }, { kind: "component", type: i1.AXRowIndexColumnComponent, selector: "ax-index-column", inputs: ["width", "caption", "fixed", "footerTemplate", "padZero"] }, { kind: "component", type: i1.AXRowSelectColumnComponent, selector: "ax-select-column", inputs: ["width", "caption", "fixed", "advanceSelect"] }, { kind: "component", type: i1.AXRowDropdownCommandColumnComponent, selector: "ax-dropdown-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "emptyStateTemplate", "emptyStateText", "items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXFormatModule }, { kind: "ngmodule", type: AXDateTimeModule }, { kind: "component", type: AXMDocumentExpirationBadgeComponent, selector: "axm-document-expiration-badge", inputs: ["node"] }, { kind: "component", type: AXMDocumentVersionBadgeComponent, selector: "axm-document-version-badge", inputs: ["node"] }, { kind: "component", type: AXMFolderExpirationBadgesComponent, selector: "axm-folder-expiration-badges", inputs: ["node"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.AXFormatPipe, name: "format" }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
455
+ }
456
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMDocumentExplorerDetailsViewComponent, decorators: [{
457
+ type: Component,
458
+ args: [{ standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
459
+ CommonModule,
460
+ AXPElementDataDirective,
461
+ AXDataTableModule,
462
+ AXFormatModule,
463
+ AXDateTimeModule,
464
+ AXMDocumentExpirationBadgeComponent,
465
+ AXMDocumentVersionBadgeComponent,
466
+ AXMFolderExpirationBadgesComponent,
467
+ AXTranslationModule,
468
+ ], template: "<!-- ----- Platform data table for homogeneous folder or document rows ----- -->\n<div class=\"details-view\">\n <ax-data-table\n class=\"details-grid\"\n [dataSource]=\"dataSource\"\n [paging]=\"true\"\n [showFooter]=\"false\"\n [fixedHeader]=\"true\"\n [allowReordering]=\"true\"\n [loading]=\"{ enabled: true, animation: true }\"\n [selectedRows]=\"selectedRows()\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n >\n <!-- ----- Row number when Experience Show Row Index Column is enabled ----- -->\n @if (showIndexColumn()) {\n <ax-index-column\n [caption]=\"('@general:terms.common.row-number' | translate | async)!\"\n fixed=\"start\"\n [width]=\"'80px'\"\n [padZero]=\"false\"\n ></ax-index-column>\n }\n <!-- ----- Row selection when the explorer allows it ----- -->\n @if (allowSelection()) {\n <ax-select-column fixed=\"start\" [width]=\"'60px'\"></ax-select-column>\n }\n @for (column of columns(); track column.name) {\n <ax-text-column\n [dataField]=\"column.name\"\n [caption]=\"(column.title | translate | async)!\"\n [allowResizing]=\"true\"\n [allowSorting]=\"true\"\n [width]=\"column.name === 'name' ? '280px' : '160px'\"\n [fixed]=\"column.name === 'name' ? 'start' : null\"\n [cellTemplate]=\"columnCellTpl\"\n ></ax-text-column>\n <ng-template #columnCellTpl let-item>\n <!---->\n @if (column.name === 'name') {\n <!-- ----- Folder or document name with icon and expiration badges ----- -->\n <!---->\n @if (gridRow(item); as row) {\n <!---->\n @if (row.node; as node) {\n @let nodeDisplay = vm.getNodeDisplayInfo(node);\n <div class=\"item-name __explorer-item\" [axp-data]=\"node\" (dblclick)=\"$event.stopPropagation(); openNode(node)\">\n <!---->\n <!-- ----- Folder loading spinner ----- -->\n @if (node.type === 'folder' && vm.isLoadingFolder(node.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n }\n <!-- ----- Folder or file icon ----- -->\n @else {\n <span\n class=\"item-icon\"\n [class.item-icon--shortcut]=\"nodeDisplay.isShortcut\"\n [style.color]=\"node.type === 'folder' ? vm.getFolderColor(node) : null\"\n >\n <i [class]=\"node.type === 'folder' ? 'fas fa-folder-closed' : ('fa-fw ' + nodeDisplay.icon)\"></i>\n <!---->\n <!-- ----- Shortcut overlay ----- -->\n @if (nodeDisplay.isShortcut) {\n <i class=\"fa-light fa-up-right-from-square item-icon__shortcut-arrow\" aria-hidden=\"true\"></i>\n }\n </span>\n }\n <span>{{ displayText(cellValue(item, column)) }}</span>\n <!---->\n <!-- ----- Folder expiration badges ----- -->\n @if (node.type === 'folder') {\n <axm-folder-expiration-badges [node]=\"node\" />\n }\n <!-- ----- Document expiration badge ----- -->\n @else {\n <axm-document-expiration-badge [node]=\"node\" />\n }\n </div>\n }\n }\n }\n <!-- ----- Document version badge ----- -->\n @else if (column.name === 'version') {\n <!---->\n @if (gridRow(item)?.node; as node) {\n <axm-document-version-badge [node]=\"node\" />\n }\n }\n <!-- ----- File or folder size ----- -->\n @else if (column.format === 'filesize') {\n {{ cellValue(item, column) | format : 'filesize' | async }}\n }\n <!-- ----- Date-only metadata or attribute ----- -->\n @else if (column.format === 'date') {\n <!---->\n @if (cellValue(item, column); as value) {\n {{ value | format : 'date' : { format: 'date' } | async }}\n }\n }\n <!-- ----- Date and time metadata or attribute ----- -->\n @else if (column.format === 'datetime') {\n <!---->\n @if (cellValue(item, column); as value) {\n {{ value | format : 'datetime' : { format: 'datetime' } | async }}\n }\n }\n <!-- ----- Plain text, number, and lookup metadata ----- -->\n @else {\n {{ displayText(cellValue(item, column)) }}\n }\n </ng-template>\n }\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n </ax-data-table>\n</div>\n\n", styles: [":host{display:flex;height:100%;min-height:0px;width:100%;max-width:100%;min-width:0px;flex-direction:column}.details-view{display:flex;min-height:0px;width:100%;max-width:100%;min-width:0px;flex:1;flex-direction:column}.details-grid{height:100%;min-height:0px;max-width:100%;min-width:0px;flex:1;overflow:auto}.item-name{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.item-name i{font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)))}.item-name .item-icon{position:relative;display:inline-flex}.item-name .item-icon--shortcut .item-icon__shortcut-arrow{position:absolute;bottom:-2px;right:-2px;font-size:.45em;opacity:.9}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
469
+ }], ctorParameters: () => [] });
470
+
471
+ export { AXMDocumentExplorerDetailsViewComponent };
472
+ //# sourceMappingURL=acorex-platform-module-document-management-client-details-view.component-DkCD8RSd.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-document-management-client-details-view.component-DkCD8RSd.mjs","sources":["../../../../libs/modules/document-management/client/src/lib/features/document-explorer/views/details/details-view.component.ts","../../../../libs/modules/document-management/client/src/lib/features/document-explorer/views/details/details-view.component.html"],"sourcesContent":["//#region ----- Imports -----\n\nimport { RootConfig } from '@acorex-platform/module-document-management-client/contracts';\nimport { AXPCommonSettings, AXPSettingsService } from '@acorex-platform/framework-client/common';\nimport { AXPElementDataDirective } from '@acorex-platform/framework-client/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXDataSource, AXDataSourceQuery } from '@acorex/cdk/common';\nimport {\n AXDataTableModule,\n AXDataTableRowDbClick,\n AXRowCommandItem,\n AXRowCommandItemClickEvent,\n} from '@acorex/components/data-table';\nimport { AXMenuItem } from '@acorex/components/menu';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport type { AXMMetaDataBuilderValue } from '@acorex-platform/module-data-management-client/contracts';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { isEqual } from 'lodash-es';\nimport { AXMDocumentExpirationBadgeComponent } from '../../../shared/components/document-expiration-badge/document-expiration-badge.component';\nimport { AXMDocumentVersionBadgeComponent } from '../../../shared/components/document-version-badge/document-version-badge.component';\nimport { AXMFolderExpirationBadgesComponent } from '../../../shared/components/folder-expiration-badges/folder-expiration-badges.component';\nimport { AXMDocumentExplorerNode } from '../../../shared/document-manager.types';\nimport {\n collectDocumentScopedMetaDataList,\n collectFolderScopedMetaDataList,\n mergeMetaDataLists,\n} from '../../../shared/folder-metadata.util';\nimport {\n collectDocumentTypeIds,\n collectDocumentTypeNames,\n flattenMetaDataColumns,\n readNodeMetaDataValue,\n type HomogeneousGridColumn,\n} from '../../../shared/homogeneous-folder-grid.util';\nimport { AXPDocumentExplorerViewModel } from '../../document-explorer.viewmodel';\n\n//#endregion\n\n//#region ----- Types -----\n\ntype ExplorerGridRow = Record<string, unknown> & {\n id: string;\n node: AXMDocumentExplorerNode;\n};\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n templateUrl: './details-view.component.html',\n styleUrls: ['./details-view.component.css'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n AXPElementDataDirective,\n AXDataTableModule,\n AXFormatModule,\n AXDateTimeModule,\n AXMDocumentExpirationBadgeComponent,\n AXMDocumentVersionBadgeComponent,\n AXMFolderExpirationBadgesComponent,\n AXTranslationModule,\n ],\n})\nexport class AXMDocumentExplorerDetailsViewComponent {\n //#region ----- Services & Dependencies -----\n\n protected readonly vm = inject(AXPDocumentExplorerViewModel);\n private readonly entityService = inject(AXPEntityService);\n private readonly translationService = inject(AXTranslationService);\n private readonly settingsService = inject(AXPSettingsService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly documentTypeData = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.documentType.name)\n .data<string, { id: string; name?: string; metaDataList?: AXMMetaDataBuilderValue }>();\n\n //#endregion\n\n //#region ----- State Signals -----\n\n private readonly metadataColumns = signal<HomogeneousGridColumn[]>([]);\n private readonly showRowIndexColumnEnabled = signal(false);\n\n //#endregion\n\n //#region ----- Computed Properties -----\n\n protected readonly showIndexColumn = computed(() => this.showRowIndexColumnEnabled());\n\n protected readonly attributeColumns = computed<HomogeneousGridColumn[]>(() => {\n const kind = this.vm.homogeneousGrid()?.kind;\n if (kind === 'folder') {\n return [\n { name: 'name', title: '@general:terms.common.name', kind: 'attribute' },\n { name: 'description', title: '@general:terms.common.description', kind: 'attribute' },\n { name: 'items', title: '@document-management:explorer.grid.columns.items', kind: 'attribute', format: 'number' },\n { name: 'size', title: '@document-management:terms.common.size', kind: 'attribute', format: 'filesize' },\n { name: 'modifiedAt', title: '@document-management:terms.timestamps.modified-at', kind: 'attribute', format: 'datetime' },\n ];\n }\n return [\n { name: 'name', title: '@general:terms.common.title', kind: 'attribute' },\n { name: 'description', title: '@general:terms.common.description', kind: 'attribute' },\n { name: 'size', title: '@document-management:terms.common.size', kind: 'attribute', format: 'filesize' },\n { name: 'expirationDate', title: '@document-management:terms.document.expire-date', kind: 'attribute', format: 'date' },\n { name: 'version', title: '@document-management:terms.common.version', kind: 'attribute' },\n { name: 'modifiedAt', title: '@document-management:terms.timestamps.modified-at', kind: 'attribute', format: 'datetime' },\n ];\n });\n\n protected readonly columns = computed(() => [...this.attributeColumns(), ...this.metadataColumns()]);\n\n protected readonly gridNodes = computed<AXMDocumentExplorerNode[]>(() => {\n const kind = this.vm.homogeneousGrid()?.kind;\n if (kind === 'folder') {\n return this.vm.filteredFolders();\n }\n if (kind === 'document') {\n return this.vm.filteredFiles();\n }\n return [...this.vm.filteredFolders(), ...this.vm.filteredFiles()];\n });\n\n protected readonly gridRows = computed<ExplorerGridRow[]>(() => {\n const columns = this.columns();\n return this.gridNodes().map((node) => {\n const row: ExplorerGridRow = {\n ...this.flattenForm(node.metaDataForm),\n id: node.id,\n node,\n };\n for (const column of columns) {\n const raw =\n column.kind === 'metadata'\n ? (this.metadataValue(node, column) ?? row[column.name])\n : this.attributeValue(node, column);\n row[column.name] = this.sortableValue(raw, column);\n }\n return row;\n });\n });\n\n protected readonly selectedRows = computed(() => {\n const selectedIds = new Set(this.vm.selectedNodes().map((node) => node.id));\n return this.gridRows().filter((row) => selectedIds.has(row.id));\n });\n\n protected readonly allowSelection = computed(() => this.vm.selectionMode() !== 'none');\n\n //#endregion\n\n //#region ----- Data Source -----\n\n protected readonly dataSource = new AXDataSource<ExplorerGridRow>({\n key: 'id',\n pageSize: 20,\n load: async (query: AXDataSourceQuery) => {\n let rows = [...this.gridRows()];\n const search = this.extractSearchText(query.filter);\n if (search) {\n const needle = search.toLowerCase();\n rows = rows.filter((row) =>\n this.columns().some((column) => String(row[column.name] ?? '').toLowerCase().includes(needle)),\n );\n }\n const sort = (query.sort as Array<{ field?: string; dir?: string }> | undefined)?.[0];\n if (sort?.field) {\n const field = sort.field;\n const direction = sort.dir === 'desc' ? -1 : 1;\n rows.sort((left, right) => this.compareValues(left[field], right[field]) * direction);\n }\n const skip = query.skip ?? 0;\n const take = query.take ?? 20;\n return { items: rows.slice(skip, skip + take), total: rows.length };\n },\n });\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n constructor() {\n void this.syncShowRowIndexColumnSetting();\n this.settingsService.onLoaded.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n void this.syncShowRowIndexColumnSetting();\n });\n this.settingsService.onChanged.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n void this.syncShowRowIndexColumnSetting();\n });\n\n effect(() => {\n const match = this.vm.homogeneousGrid();\n const nodes = this.gridNodes();\n void this.loadMetadataColumns(match?.kind ?? null, nodes);\n });\n\n effect(() => {\n this.gridRows();\n this.dataSource.refresh();\n });\n }\n\n //#endregion\n\n //#region ----- Event Handlers -----\n\n protected handleSelectedRowsChange(rows: unknown[]): void {\n const next = (rows ?? [])\n .map(\n (row) =>\n this.asGridRow(row)?.node ?? this.gridRow(row)?.node ?? this.nodeById(this.readRowId(row)),\n )\n .filter((node): node is AXMDocumentExplorerNode => node != null);\n const current = this.vm.selectedNodes();\n if (isEqual(current.map((node) => node.id), next.map((node) => node.id))) {\n return;\n }\n this.vm.setSelectedNodes(next);\n }\n\n protected handleRowDbClick(event: AXDataTableRowDbClick): void {\n this.openNode(this.nodeFromTableEvent(event));\n }\n\n protected openNode(node: AXMDocumentExplorerNode | null | undefined): void {\n if (!node) {\n return;\n }\n if (node.type === 'folder') {\n this.vm.navigateToFolder(node.id);\n return;\n }\n void this.vm.openFileViewer(node);\n }\n\n protected handleRowCommandClick(event: AXRowCommandItemClickEvent): void {\n const node = this.nodeFromTableEvent(event) ?? (event.data as ExplorerGridRow | undefined)?.node;\n if (!node || !event.name) {\n return;\n }\n void this.vm.handleMenuItemClick(event.name, node);\n }\n\n protected getDropdownRowItems = async (rowData: unknown): Promise<AXRowCommandItem[]> => {\n const node =\n this.asGridRow(rowData)?.node ??\n this.gridRow(rowData)?.node ??\n this.nodeById(this.readRowId(rowData));\n if (!node) {\n return [];\n }\n const items = await this.vm.getNodeContextMenuItems(node);\n return this.mapMenuItemsToRowCommands(items);\n };\n\n //#endregion\n\n //#region ----- Display -----\n\n protected gridRow(item: unknown): ExplorerGridRow | null {\n if (item == null || typeof item !== 'object') {\n return null;\n }\n const wrapped = item as { data?: unknown };\n return this.asGridRow(wrapped.data) ?? this.asGridRow(item);\n }\n\n protected cellValue(item: unknown, column: HomogeneousGridColumn): unknown {\n const row = this.gridRow(item);\n if (row && Object.prototype.hasOwnProperty.call(row, column.name)) {\n return row[column.name];\n }\n if (item == null || typeof item !== 'object') {\n return undefined;\n }\n const wrapped = item as { data?: Record<string, unknown>; value?: unknown };\n if (wrapped.data && typeof wrapped.data === 'object' && Object.prototype.hasOwnProperty.call(wrapped.data, column.name)) {\n return wrapped.data[column.name];\n }\n if (Object.prototype.hasOwnProperty.call(item, column.name)) {\n return (item as Record<string, unknown>)[column.name];\n }\n if ('value' in wrapped) {\n return wrapped.value;\n }\n return undefined;\n }\n\n protected attributeValue(node: AXMDocumentExplorerNode, column: HomogeneousGridColumn): unknown {\n switch (column.name) {\n case 'name':\n return node.type === 'file' ? node.title || node.name : node.name;\n case 'description':\n return node.description;\n case 'items':\n return node.itemsCount ?? node.childrenCount ?? node.children?.length ?? 0;\n case 'size':\n return node.size || 0;\n case 'expirationDate':\n return node.expirationDate;\n case 'version':\n return node.version;\n case 'modifiedAt':\n return node.modifiedAt ?? this.auditAt(node, 'updated') ?? this.auditAt(node, 'created');\n default:\n return undefined;\n }\n }\n\n protected metadataValue(node: AXMDocumentExplorerNode, column: HomogeneousGridColumn): unknown {\n return readNodeMetaDataValue(node, column.name);\n }\n\n protected displayText(value: unknown): string {\n if (value == null || value === '') {\n return '';\n }\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n return String(value);\n }\n if (Array.isArray(value)) {\n return value.map((item) => this.displayText(item)).filter(Boolean).join(', ');\n }\n if (typeof value === 'object') {\n const row = value as Record<string, unknown>;\n const title = row['title'] ?? row['displayTitle'] ?? row['name'] ?? row['text'];\n if (title != null) {\n return this.translationService.resolve(title as never) ?? this.displayText(title);\n }\n return this.translationService.resolve(value as never) ?? '';\n }\n return String(value);\n }\n\n //#endregion\n\n //#region ----- Data Loading -----\n\n private async loadMetadataColumns(\n kind: 'folder' | 'document' | null,\n nodes: AXMDocumentExplorerNode[],\n ): Promise<void> {\n if (!kind || nodes.length === 0) {\n this.metadataColumns.set([]);\n return;\n }\n try {\n const types = await this.loadDocumentTypes(nodes);\n if (types.length === 0) {\n this.metadataColumns.set([]);\n return;\n }\n const list =\n kind === 'folder'\n ? collectFolderScopedMetaDataList(types)\n : mergeMetaDataLists(types.map((type) => collectDocumentScopedMetaDataList(type?.metaDataList)));\n this.metadataColumns.set(\n flattenMetaDataColumns(list, (title) => this.translationService.resolve(title as never) ?? ''),\n );\n } catch {\n this.metadataColumns.set([]);\n }\n }\n\n //#endregion\n\n //#region ----- Helpers -----\n\n private async loadDocumentTypes(\n nodes: AXMDocumentExplorerNode[],\n ): Promise<Array<{ id?: string; name?: string; metaDataList?: AXMMetaDataBuilderValue }>> {\n const loaded: Array<{ id?: string; name?: string; metaDataList?: AXMMetaDataBuilderValue }> = [];\n const seen = new Set<string>();\n const remember = (type: { id?: string; name?: string; metaDataList?: AXMMetaDataBuilderValue } | null | undefined) => {\n if (!type) {\n return;\n }\n const key = String(type.id ?? type.name ?? '').trim();\n if (!key || seen.has(key)) {\n return;\n }\n seen.add(key);\n if (type.name) {\n seen.add(type.name);\n }\n loaded.push(type);\n };\n\n for (const id of collectDocumentTypeIds(nodes)) {\n try {\n remember(await this.documentTypeData.byKey(id));\n } catch {\n /* keep looking by name */\n }\n }\n\n const missingNames = collectDocumentTypeNames(nodes).filter((name) => !seen.has(name));\n if (missingNames.length === 0) {\n return loaded;\n }\n\n const res = await this.documentTypeData.query({\n skip: 0,\n take: 1000,\n filter: {\n field: 'name',\n operator: { type: 'in' },\n value: missingNames,\n },\n });\n for (const type of res?.items ?? []) {\n remember(type);\n }\n return loaded;\n }\n\n private flattenForm(form: unknown): Record<string, unknown> {\n const out: Record<string, unknown> = {};\n const visit = (value: unknown) => {\n if (value == null || typeof value !== 'object' || Array.isArray(value)) {\n return;\n }\n for (const [key, nested] of Object.entries(value as Record<string, unknown>)) {\n if (!(key in out)) {\n out[key] = nested;\n }\n visit(nested);\n }\n };\n visit(form);\n return out;\n }\n\n private auditAt(node: AXMDocumentExplorerNode, kind: 'updated' | 'created'): unknown {\n const row = node as AXMDocumentExplorerNode & {\n updated?: { at?: unknown };\n created?: { at?: unknown };\n auditInfo?: { updated?: { at?: unknown }; created?: { at?: unknown } };\n };\n return row[kind]?.at ?? row.auditInfo?.[kind]?.at;\n }\n\n private sortableValue(value: unknown, column: HomogeneousGridColumn): unknown {\n if (column.format === 'date' || column.format === 'datetime') {\n return value ?? null;\n }\n if (column.format === 'filesize' || column.format === 'number') {\n return typeof value === 'number' ? value : Number(value ?? 0);\n }\n return this.displayText(value);\n }\n\n private compareValues(left: unknown, right: unknown): number {\n if (left == null && right == null) {\n return 0;\n }\n if (left == null) {\n return -1;\n }\n if (right == null) {\n return 1;\n }\n if (left instanceof Date || right instanceof Date) {\n return new Date(left as never).getTime() - new Date(right as never).getTime();\n }\n if (typeof left === 'number' && typeof right === 'number') {\n return left - right;\n }\n return String(left).localeCompare(String(right), undefined, { numeric: true, sensitivity: 'base' });\n }\n\n private extractSearchText(filter: unknown): string {\n if (!filter || typeof filter !== 'object') {\n return '';\n }\n const row = filter as { operator?: { type?: string }; value?: unknown; filters?: unknown[] };\n if (row.operator?.type === 'contains' && typeof row.value === 'string') {\n return row.value;\n }\n if (Array.isArray(row.filters)) {\n for (const child of row.filters) {\n const found = this.extractSearchText(child);\n if (found) {\n return found;\n }\n }\n }\n return '';\n }\n\n private nodeFromTableEvent(event: unknown): AXMDocumentExplorerNode | null {\n if (event == null || typeof event !== 'object') {\n return null;\n }\n const payload = event as { data?: unknown; row?: unknown };\n return (\n this.asGridRow(payload.data)?.node ??\n this.asGridRow(payload.row)?.node ??\n this.gridRow(payload.data)?.node ??\n this.gridRow(payload.row)?.node ??\n this.nodeById(this.readRowId(payload.data) ?? this.readRowId(payload.row) ?? this.readRowId(event))\n );\n }\n\n private readRowId(value: unknown): string | null {\n if (value == null || typeof value !== 'object') {\n return null;\n }\n const id = (value as { id?: unknown }).id;\n return typeof id === 'string' && id.trim() ? id : null;\n }\n\n private nodeById(id: string | null): AXMDocumentExplorerNode | null {\n if (!id) {\n return null;\n }\n return this.gridRows().find((row) => row.id === id)?.node ?? null;\n }\n\n private asGridRow(value: unknown): ExplorerGridRow | null {\n if (value == null || typeof value !== 'object') {\n return null;\n }\n const row = value as Partial<ExplorerGridRow>;\n if (!row.id || row.node == null) {\n return null;\n }\n return row as ExplorerGridRow;\n }\n\n private mapMenuItemsToRowCommands(items: AXMenuItem[]): AXRowCommandItem[] {\n return items.map((item) => {\n const command: AXRowCommandItem & { break?: boolean; items?: AXRowCommandItem[] } = {\n name: item.name ?? '',\n text: item.text,\n icon: typeof item.icon === 'string' ? item.icon : '',\n disabled: item.disabled,\n };\n if (item.break) {\n command.break = true;\n }\n if (item.items?.length) {\n command.items = this.mapMenuItemsToRowCommands(item.items);\n }\n return command;\n });\n }\n\n private async syncShowRowIndexColumnSetting(): Promise<void> {\n try {\n const value = await this.settingsService.get<boolean>(AXPCommonSettings.ShowRowIndexColumn);\n this.showRowIndexColumnEnabled.set(value ?? false);\n } catch {\n this.showRowIndexColumnEnabled.set(false);\n }\n }\n\n //#endregion\n}\n\n//#endregion\n","<!-- ----- Platform data table for homogeneous folder or document rows ----- -->\n<div class=\"details-view\">\n <ax-data-table\n class=\"details-grid\"\n [dataSource]=\"dataSource\"\n [paging]=\"true\"\n [showFooter]=\"false\"\n [fixedHeader]=\"true\"\n [allowReordering]=\"true\"\n [loading]=\"{ enabled: true, animation: true }\"\n [selectedRows]=\"selectedRows()\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n >\n <!-- ----- Row number when Experience Show Row Index Column is enabled ----- -->\n @if (showIndexColumn()) {\n <ax-index-column\n [caption]=\"('@general:terms.common.row-number' | translate | async)!\"\n fixed=\"start\"\n [width]=\"'80px'\"\n [padZero]=\"false\"\n ></ax-index-column>\n }\n <!-- ----- Row selection when the explorer allows it ----- -->\n @if (allowSelection()) {\n <ax-select-column fixed=\"start\" [width]=\"'60px'\"></ax-select-column>\n }\n @for (column of columns(); track column.name) {\n <ax-text-column\n [dataField]=\"column.name\"\n [caption]=\"(column.title | translate | async)!\"\n [allowResizing]=\"true\"\n [allowSorting]=\"true\"\n [width]=\"column.name === 'name' ? '280px' : '160px'\"\n [fixed]=\"column.name === 'name' ? 'start' : null\"\n [cellTemplate]=\"columnCellTpl\"\n ></ax-text-column>\n <ng-template #columnCellTpl let-item>\n <!---->\n @if (column.name === 'name') {\n <!-- ----- Folder or document name with icon and expiration badges ----- -->\n <!---->\n @if (gridRow(item); as row) {\n <!---->\n @if (row.node; as node) {\n @let nodeDisplay = vm.getNodeDisplayInfo(node);\n <div class=\"item-name __explorer-item\" [axp-data]=\"node\" (dblclick)=\"$event.stopPropagation(); openNode(node)\">\n <!---->\n <!-- ----- Folder loading spinner ----- -->\n @if (node.type === 'folder' && vm.isLoadingFolder(node.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n }\n <!-- ----- Folder or file icon ----- -->\n @else {\n <span\n class=\"item-icon\"\n [class.item-icon--shortcut]=\"nodeDisplay.isShortcut\"\n [style.color]=\"node.type === 'folder' ? vm.getFolderColor(node) : null\"\n >\n <i [class]=\"node.type === 'folder' ? 'fas fa-folder-closed' : ('fa-fw ' + nodeDisplay.icon)\"></i>\n <!---->\n <!-- ----- Shortcut overlay ----- -->\n @if (nodeDisplay.isShortcut) {\n <i class=\"fa-light fa-up-right-from-square item-icon__shortcut-arrow\" aria-hidden=\"true\"></i>\n }\n </span>\n }\n <span>{{ displayText(cellValue(item, column)) }}</span>\n <!---->\n <!-- ----- Folder expiration badges ----- -->\n @if (node.type === 'folder') {\n <axm-folder-expiration-badges [node]=\"node\" />\n }\n <!-- ----- Document expiration badge ----- -->\n @else {\n <axm-document-expiration-badge [node]=\"node\" />\n }\n </div>\n }\n }\n }\n <!-- ----- Document version badge ----- -->\n @else if (column.name === 'version') {\n <!---->\n @if (gridRow(item)?.node; as node) {\n <axm-document-version-badge [node]=\"node\" />\n }\n }\n <!-- ----- File or folder size ----- -->\n @else if (column.format === 'filesize') {\n {{ cellValue(item, column) | format : 'filesize' | async }}\n }\n <!-- ----- Date-only metadata or attribute ----- -->\n @else if (column.format === 'date') {\n <!---->\n @if (cellValue(item, column); as value) {\n {{ value | format : 'date' : { format: 'date' } | async }}\n }\n }\n <!-- ----- Date and time metadata or attribute ----- -->\n @else if (column.format === 'datetime') {\n <!---->\n @if (cellValue(item, column); as value) {\n {{ value | format : 'datetime' : { format: 'datetime' } | async }}\n }\n }\n <!-- ----- Plain text, number, and lookup metadata ----- -->\n @else {\n {{ displayText(cellValue(item, column)) }}\n }\n </ng-template>\n }\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n </ax-data-table>\n</div>\n\n"],"names":["i2","i3","i4"],"mappings":"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"}
@@ -9,7 +9,7 @@ import { buildAXPRecordWorkflowInfo } from '@acorex-platform/framework-shared/en
9
9
  import { RootConfig, AXPContentDocumentsPermissionKeys } from '@acorex-platform/module-document-management-client/contracts';
10
10
  import * as i0 from '@angular/core';
11
11
  import { inject, Injectable } from '@angular/core';
12
- import { d as AXMDocumentManagerService } from './acorex-platform-module-document-management-client-acorex-platform-module-document-management-client--0oIEHPI.mjs';
12
+ import { i as AXMDocumentManagerService } from './acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-qhcOFKFu.mjs';
13
13
  import { a as asTrimmedId, i as isTruthyFlag, b as asDisplayName, m as mapWithConcurrency, c as asUserIds, r as resolveCreatedEntityId } from './acorex-platform-module-document-management-client-distribute-document.command.util-Bnw0rh94.mjs';
14
14
 
15
15
  //#region ----- Imports -----
@@ -442,4 +442,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
442
442
  }] });
443
443
 
444
444
  export { AXMDistributeDocumentCommand };
445
- //# sourceMappingURL=acorex-platform-module-document-management-client-distribute-document.command-CCLwJcFb.mjs.map
445
+ //# sourceMappingURL=acorex-platform-module-document-management-client-distribute-document.command-BaCdm2YF.mjs.map