@acorex-platform/module-document-management-client 2.0.0-next.1 → 2.0.0-next.10

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 (61) hide show
  1. package/fesm2022/{acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-Dc3e3vuv.mjs → acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-i1lGkMQC.mjs} +160 -79
  2. package/fesm2022/acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-i1lGkMQC.mjs.map +1 -0
  3. package/fesm2022/{acorex-platform-module-document-management-client-attachment-view-skeleton.component-BSw5qPPj.mjs → acorex-platform-module-document-management-client-attachment-view-skeleton.component-D2EHMBEQ.mjs} +2 -2
  4. package/fesm2022/{acorex-platform-module-document-management-client-attachment-view-skeleton.component-BSw5qPPj.mjs.map → acorex-platform-module-document-management-client-attachment-view-skeleton.component-D2EHMBEQ.mjs.map} +1 -1
  5. package/fesm2022/acorex-platform-module-document-management-client-attachment-widget.component-DMZ_lnJb.mjs +37 -0
  6. package/fesm2022/acorex-platform-module-document-management-client-attachment-widget.component-DMZ_lnJb.mjs.map +1 -0
  7. package/fesm2022/acorex-platform-module-document-management-client-contracts.mjs +12 -1
  8. package/fesm2022/acorex-platform-module-document-management-client-contracts.mjs.map +1 -1
  9. package/fesm2022/{acorex-platform-module-document-management-client-details-view.component-DUl9ET3T.mjs → acorex-platform-module-document-management-client-details-view.component-D3Jx-JvU.mjs} +25 -6
  10. package/fesm2022/acorex-platform-module-document-management-client-details-view.component-D3Jx-JvU.mjs.map +1 -0
  11. package/fesm2022/{acorex-platform-module-document-management-client-distribute-document.command-DlpVqyIC.mjs → acorex-platform-module-document-management-client-distribute-document.command-L420ZbsM.mjs} +2 -2
  12. package/fesm2022/{acorex-platform-module-document-management-client-distribute-document.command-DlpVqyIC.mjs.map → acorex-platform-module-document-management-client-distribute-document.command-L420ZbsM.mjs.map} +1 -1
  13. package/fesm2022/{acorex-platform-module-document-management-client-drive-choose.component-B8MZYXNy.mjs → acorex-platform-module-document-management-client-drive-choose.component-DNNfdkr_.mjs} +2 -2
  14. package/fesm2022/{acorex-platform-module-document-management-client-drive-choose.component-B8MZYXNy.mjs.map → acorex-platform-module-document-management-client-drive-choose.component-DNNfdkr_.mjs.map} +1 -1
  15. package/fesm2022/{acorex-platform-module-document-management-client-large-icons-view-skeleton.component-BbhvEEHA.mjs → acorex-platform-module-document-management-client-large-icons-view-skeleton.component-DCSLExpX.mjs} +2 -2
  16. package/fesm2022/{acorex-platform-module-document-management-client-large-icons-view-skeleton.component-BbhvEEHA.mjs.map → acorex-platform-module-document-management-client-large-icons-view-skeleton.component-DCSLExpX.mjs.map} +1 -1
  17. package/fesm2022/acorex-platform-module-document-management-client-large-icons-view.component-2tP4TDuw.mjs +31 -0
  18. package/fesm2022/acorex-platform-module-document-management-client-large-icons-view.component-2tP4TDuw.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-module-document-management-client-large-tiles-view.component-CaKom515.mjs +36 -0
  20. package/fesm2022/acorex-platform-module-document-management-client-large-tiles-view.component-CaKom515.mjs.map +1 -0
  21. package/fesm2022/{acorex-platform-module-document-management-client-list-view-skeleton.component-DISl1_Oq.mjs → acorex-platform-module-document-management-client-list-view-skeleton.component-DgkPpiDD.mjs} +2 -2
  22. package/fesm2022/{acorex-platform-module-document-management-client-list-view-skeleton.component-DISl1_Oq.mjs.map → acorex-platform-module-document-management-client-list-view-skeleton.component-DgkPpiDD.mjs.map} +1 -1
  23. package/fesm2022/acorex-platform-module-document-management-client-list-view.component-CSOMxbq7.mjs +31 -0
  24. package/fesm2022/acorex-platform-module-document-management-client-list-view.component-CSOMxbq7.mjs.map +1 -0
  25. package/fesm2022/{acorex-platform-module-document-management-client-open-document.command-DHeVyOn1.mjs → acorex-platform-module-document-management-client-open-document.command-Byut3UdZ.mjs} +2 -2
  26. package/fesm2022/{acorex-platform-module-document-management-client-open-document.command-DHeVyOn1.mjs.map → acorex-platform-module-document-management-client-open-document.command-Byut3UdZ.mjs.map} +1 -1
  27. package/fesm2022/{acorex-platform-module-document-management-client-request-document-review.command-DN6CupYF.mjs → acorex-platform-module-document-management-client-request-document-review.command-C-x7A2x2.mjs} +2 -2
  28. package/fesm2022/{acorex-platform-module-document-management-client-request-document-review.command-DN6CupYF.mjs.map → acorex-platform-module-document-management-client-request-document-review.command-C-x7A2x2.mjs.map} +1 -1
  29. package/fesm2022/{acorex-platform-module-document-management-client-share-dialog.component-CFI4hK3T.mjs → acorex-platform-module-document-management-client-share-dialog.component-DmWwfHBl.mjs} +2 -2
  30. package/fesm2022/{acorex-platform-module-document-management-client-share-dialog.component-CFI4hK3T.mjs.map → acorex-platform-module-document-management-client-share-dialog.component-DmWwfHBl.mjs.map} +1 -1
  31. package/fesm2022/{acorex-platform-module-document-management-client-small-icons-view-skeleton.component-rFpvlGch.mjs → acorex-platform-module-document-management-client-small-icons-view-skeleton.component-Ds5v0XDc.mjs} +2 -2
  32. package/fesm2022/{acorex-platform-module-document-management-client-small-icons-view-skeleton.component-rFpvlGch.mjs.map → acorex-platform-module-document-management-client-small-icons-view-skeleton.component-Ds5v0XDc.mjs.map} +1 -1
  33. package/fesm2022/acorex-platform-module-document-management-client-small-icons-view.component-B5lM6scj.mjs +31 -0
  34. package/fesm2022/acorex-platform-module-document-management-client-small-icons-view.component-B5lM6scj.mjs.map +1 -0
  35. package/fesm2022/{acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-BAX3nQvQ.mjs → acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-BZAtrZvj.mjs} +2 -2
  36. package/fesm2022/{acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-BAX3nQvQ.mjs.map → acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-BZAtrZvj.mjs.map} +1 -1
  37. package/fesm2022/acorex-platform-module-document-management-client-small-tiles-view.component-DRDvcOMS.mjs +36 -0
  38. package/fesm2022/acorex-platform-module-document-management-client-small-tiles-view.component-DRDvcOMS.mjs.map +1 -0
  39. package/fesm2022/{acorex-platform-module-document-management-client-upload-document.command-SvlUanUP.mjs → acorex-platform-module-document-management-client-upload-document.command-CYeSpjOg.mjs} +2 -2
  40. package/fesm2022/{acorex-platform-module-document-management-client-upload-document.command-SvlUanUP.mjs.map → acorex-platform-module-document-management-client-upload-document.command-CYeSpjOg.mjs.map} +1 -1
  41. package/fesm2022/acorex-platform-module-document-management-client.mjs +1 -1
  42. package/i18n/en-AU/document-management.json +9 -0
  43. package/i18n/en-US/document-management.json +9 -0
  44. package/i18n/fa-IR/document-management.json +9 -0
  45. package/package.json +2 -2
  46. package/types/acorex-platform-module-document-management-client-contracts.d.ts +11 -3
  47. package/types/acorex-platform-module-document-management-client.d.ts +5 -0
  48. package/fesm2022/acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-Dc3e3vuv.mjs.map +0 -1
  49. package/fesm2022/acorex-platform-module-document-management-client-attachment-widget.component-D0F-BlKw.mjs +0 -37
  50. package/fesm2022/acorex-platform-module-document-management-client-attachment-widget.component-D0F-BlKw.mjs.map +0 -1
  51. package/fesm2022/acorex-platform-module-document-management-client-details-view.component-DUl9ET3T.mjs.map +0 -1
  52. package/fesm2022/acorex-platform-module-document-management-client-large-icons-view.component-CuHdwWeq.mjs +0 -31
  53. package/fesm2022/acorex-platform-module-document-management-client-large-icons-view.component-CuHdwWeq.mjs.map +0 -1
  54. package/fesm2022/acorex-platform-module-document-management-client-large-tiles-view.component-C39bX_XE.mjs +0 -36
  55. package/fesm2022/acorex-platform-module-document-management-client-large-tiles-view.component-C39bX_XE.mjs.map +0 -1
  56. package/fesm2022/acorex-platform-module-document-management-client-list-view.component-C7GAQTTr.mjs +0 -31
  57. package/fesm2022/acorex-platform-module-document-management-client-list-view.component-C7GAQTTr.mjs.map +0 -1
  58. package/fesm2022/acorex-platform-module-document-management-client-small-icons-view.component-jQDh6WgR.mjs +0 -31
  59. package/fesm2022/acorex-platform-module-document-management-client-small-icons-view.component-jQDh6WgR.mjs.map +0 -1
  60. package/fesm2022/acorex-platform-module-document-management-client-small-tiles-view.component-BpmwxphX.mjs +0 -36
  61. package/fesm2022/acorex-platform-module-document-management-client-small-tiles-view.component-BpmwxphX.mjs.map +0 -1
@@ -0,0 +1,36 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import { AXPElementDataDirective, AXPDblClickDirective } from '@acorex-platform/framework-client/core';
6
+ import { A as AXPDocumentExplorerViewModel, a as AXMDocumentExpirationBadgeComponent, b as AXMDocumentVersionBadgeComponent, c as AXMFolderExpirationBadgesComponent } from './acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-i1lGkMQC.mjs';
7
+ import * as i2 from '@acorex/core/format';
8
+ import { AXFormatModule } from '@acorex/core/format';
9
+ import { AXDateTimeModule } from '@acorex/core/date-time';
10
+ import * as i3 from '@acorex/core/translation';
11
+ import { AXTranslationModule } from '@acorex/core/translation';
12
+
13
+ class AXMDocumentExplorerSmallTilesViewComponent {
14
+ constructor() {
15
+ this.vm = inject(AXPDocumentExplorerViewModel);
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMDocumentExplorerSmallTilesViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMDocumentExplorerSmallTilesViewComponent, isStandalone: true, selector: "axm-document-explorer-small-tiles-view", ngImport: i0, template: "@if (vm.groupByType()) {\n @if (vm.filteredFolders().length > 0) {\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">\n {{ '@document-management:terms.common.folders' | translate | async }}\n </h3>\n </div>\n <div class=\"__content\">\n @for (folder of vm.filteredFolders(); track folder.id) {\n @let folderDisplay = vm.getNodeDisplayInfo(folder);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(folder)\"\n [axp-data]=\"folder\"\n (click)=\"vm.toggleSelect(folder)\"\n (onDblClick)=\"vm.navigateToFolder(folder.id)\"\n >\n <div\n class=\"__icon fa-2x\"\n [style.color]=\"vm.getFolderColor(folder)\"\n [class.__shortcut]=\"folderDisplay.isShortcut\"\n >\n @if (vm.isLoadingFolder(folder.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n } @else {\n <i class=\"fas fa-folder-closed\"></i>\n }\n @if (folderDisplay.isShortcut) {\n <i\n class=\"__shortcut-arrow fa-light fa-up-right-from-square\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n <div class=\"__details\">\n <div class=\"__name\">{{ folder.name }}</div>\n <div class=\"__info\">\n <div class=\"inline-flex items-center gap-1\">\n <span>{{ (folder.childrenCount ?? 0) + (folder.itemsCount ?? 0) }} items</span>\n <!-- ----- Expiration counts after item count ----- -->\n <axm-folder-expiration-badges [node]=\"folder\" />\n </div>\n <span>{{\n folder.modifiedAt\n | format: 'datetime' : { format: 'datetime' }\n | async\n }}</span>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n @if (vm.filteredFiles().length > 0) {\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">\n {{ '@document-management:terms.common.files' | translate | async }}\n </h3>\n </div>\n <div class=\"__content\">\n @for (file of vm.filteredFiles(); track file.id) {\n @let fileDisplay = vm.getNodeDisplayInfo(file);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(file)\"\n [axp-data]=\"file\"\n (click)=\"vm.toggleSelect(file)\"\n (onDblClick)=\"vm.openFileOnDoubleClick(file)\"\n >\n <axm-document-version-badge class=\"__version-badge\" [node]=\"file\" />\n <div\n class=\"__icon fa-2x\"\n [class.__shortcut]=\"fileDisplay.isShortcut\"\n >\n <i class=\"fa-fw {{ fileDisplay.icon }}\"></i>\n @if (fileDisplay.isShortcut) {\n <i\n class=\"__shortcut-arrow fa-light fa-up-right-from-square\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n <div class=\"__details\">\n <div class=\"flex min-w-0 items-center gap-1.5\">\n <div class=\"__name\">{{ file.title || file.name }}</div>\n <axm-document-expiration-badge [node]=\"file\" />\n </div>\n <div class=\"__info\">\n <span>{{ file.size | format: 'filesize' | async }}</span>\n <span>{{\n file.modifiedAt\n | format: 'datetime' : { format: 'datetime' }\n | async\n }}</span>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n} @else {\n <div class=\"__section\">\n <div class=\"__content\">\n @for (folder of vm.filteredFolders(); track folder.id) {\n @let folderDisplay = vm.getNodeDisplayInfo(folder);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(folder)\"\n [axp-data]=\"folder\"\n (click)=\"vm.toggleSelect(folder)\"\n (onDblClick)=\"vm.navigateToFolder(folder.id)\"\n >\n <div\n class=\"__icon fa-2x\"\n [style.color]=\"vm.getFolderColor(folder)\"\n [class.__shortcut]=\"folderDisplay.isShortcut\"\n >\n @if (vm.isLoadingFolder(folder.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n } @else {\n <i class=\"fas fa-folder-closed\"></i>\n }\n @if (folderDisplay.isShortcut) {\n <i\n class=\"__shortcut-arrow fa-light fa-up-right-from-square\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n <div class=\"__details\">\n <div class=\"__name\">{{ folder.name }}</div>\n <div class=\"__info\">\n <div class=\"inline-flex items-center gap-1\">\n <span>{{ (folder.childrenCount ?? 0) + (folder.itemsCount ?? 0) }} items</span>\n <!-- ----- Expiration counts after item count ----- -->\n <axm-folder-expiration-badges [node]=\"folder\" />\n </div>\n <span>{{\n folder.modifiedAt\n | format: 'datetime' : { format: 'datetime' }\n | async\n }}</span>\n </div>\n </div>\n </div>\n }\n @for (file of vm.filteredFiles(); track file.id) {\n @let fileDisplay = vm.getNodeDisplayInfo(file);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(file)\"\n [axp-data]=\"file\"\n (click)=\"vm.toggleSelect(file)\"\n (onDblClick)=\"vm.openFileOnDoubleClick(file)\"\n >\n <axm-document-version-badge class=\"__version-badge\" [node]=\"file\" />\n <div class=\"__icon fa-2x\" [class.__shortcut]=\"fileDisplay.isShortcut\">\n <i class=\"fa-fw {{ fileDisplay.icon }}\"></i>\n @if (fileDisplay.isShortcut) {\n <i\n class=\"__shortcut-arrow fa-light fa-up-right-from-square\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n <div class=\"__details\">\n <div class=\"flex min-w-0 items-center gap-1.5\">\n <div class=\"__name\">{{ file.title || file.name }}</div>\n <axm-document-expiration-badge [node]=\"file\" />\n </div>\n <div class=\"__info\">\n <span>{{ file.size | format: 'filesize' | async }}</span>\n <span>{{\n file.modifiedAt\n | format: 'datetime' : { format: 'datetime' }\n | async\n }}</span>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n}\n", styles: ["@layer properties;:host .__section{margin-bottom:calc(var(--spacing, .25rem) * 8)}:host .__section:last-child{margin-bottom:0}:host .__section .__header .__title{margin-bottom:calc(var(--spacing, .25rem) * 4);font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}:host .__section .__content{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:calc(var(--spacing, .25rem) * 2)}:host .__section .__content .__explorer-item{position:relative;display:flex;cursor:pointer;align-items:center;gap:calc(var(--spacing, .25rem) * 3);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;background-color:var(--color-lighter);color:var(--color-on-lighter);border-color:var(--color-border-lighter);padding:calc(var(--spacing, .25rem) * 2);padding-inline-end:calc(var(--spacing, .25rem) * 12)}:host .__section .__content .__explorer-item:hover{background-color:var(--color-light);color:var(--color-on-light);border-color:var(--color-border-light)}:host .__section .__content .__explorer-item .__version-badge{position:absolute;top:.35rem;inset-inline-end:.35rem;z-index:1}:host .__section .__content .__explorer-item .__icon.__shortcut .__shortcut-arrow{position:absolute;bottom:0;right:0;font-size:.5em;opacity:.9}:host .__section .__content .__explorer-item .__icon{position:relative;display:inline-flex;flex-shrink:0}:host .__section .__content .__explorer-item .__details{min-width:0px;flex:1}:host .__section .__content .__explorer-item .__details .__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:start;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}:host .__section .__content .__explorer-item .__details .__info{display:flex;width:100%;justify-content:space-between;--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);opacity:65%}:host .__section .__content .__explorer-item .__details .__info span{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)))}:host .__section .__content .__explorer-item.--selected{background-color:var(--color-darker);color:var(--color-on-darker);border-color:var(--color-border-darker)}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial;--tw-border-style: solid}}}\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: "directive", type: AXPDblClickDirective, selector: "[onDblClick]", outputs: ["onDblClick"] }, { kind: "ngmodule", type: AXFormatModule }, { kind: "ngmodule", type: AXDateTimeModule }, { kind: "ngmodule", type: AXTranslationModule }, { 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: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.AXFormatPipe, name: "format" }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMDocumentExplorerSmallTilesViewComponent, decorators: [{
21
+ type: Component,
22
+ args: [{ selector: 'axm-document-explorer-small-tiles-view', standalone: true, changeDetection: ChangeDetectionStrategy.Eager, imports: [
23
+ CommonModule,
24
+ AXPElementDataDirective,
25
+ AXPDblClickDirective,
26
+ AXFormatModule,
27
+ AXDateTimeModule,
28
+ AXTranslationModule,
29
+ AXMDocumentExpirationBadgeComponent,
30
+ AXMDocumentVersionBadgeComponent,
31
+ AXMFolderExpirationBadgesComponent,
32
+ ], template: "@if (vm.groupByType()) {\n @if (vm.filteredFolders().length > 0) {\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">\n {{ '@document-management:terms.common.folders' | translate | async }}\n </h3>\n </div>\n <div class=\"__content\">\n @for (folder of vm.filteredFolders(); track folder.id) {\n @let folderDisplay = vm.getNodeDisplayInfo(folder);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(folder)\"\n [axp-data]=\"folder\"\n (click)=\"vm.toggleSelect(folder)\"\n (onDblClick)=\"vm.navigateToFolder(folder.id)\"\n >\n <div\n class=\"__icon fa-2x\"\n [style.color]=\"vm.getFolderColor(folder)\"\n [class.__shortcut]=\"folderDisplay.isShortcut\"\n >\n @if (vm.isLoadingFolder(folder.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n } @else {\n <i class=\"fas fa-folder-closed\"></i>\n }\n @if (folderDisplay.isShortcut) {\n <i\n class=\"__shortcut-arrow fa-light fa-up-right-from-square\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n <div class=\"__details\">\n <div class=\"__name\">{{ folder.name }}</div>\n <div class=\"__info\">\n <div class=\"inline-flex items-center gap-1\">\n <span>{{ (folder.childrenCount ?? 0) + (folder.itemsCount ?? 0) }} items</span>\n <!-- ----- Expiration counts after item count ----- -->\n <axm-folder-expiration-badges [node]=\"folder\" />\n </div>\n <span>{{\n folder.modifiedAt\n | format: 'datetime' : { format: 'datetime' }\n | async\n }}</span>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n @if (vm.filteredFiles().length > 0) {\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">\n {{ '@document-management:terms.common.files' | translate | async }}\n </h3>\n </div>\n <div class=\"__content\">\n @for (file of vm.filteredFiles(); track file.id) {\n @let fileDisplay = vm.getNodeDisplayInfo(file);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(file)\"\n [axp-data]=\"file\"\n (click)=\"vm.toggleSelect(file)\"\n (onDblClick)=\"vm.openFileOnDoubleClick(file)\"\n >\n <axm-document-version-badge class=\"__version-badge\" [node]=\"file\" />\n <div\n class=\"__icon fa-2x\"\n [class.__shortcut]=\"fileDisplay.isShortcut\"\n >\n <i class=\"fa-fw {{ fileDisplay.icon }}\"></i>\n @if (fileDisplay.isShortcut) {\n <i\n class=\"__shortcut-arrow fa-light fa-up-right-from-square\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n <div class=\"__details\">\n <div class=\"flex min-w-0 items-center gap-1.5\">\n <div class=\"__name\">{{ file.title || file.name }}</div>\n <axm-document-expiration-badge [node]=\"file\" />\n </div>\n <div class=\"__info\">\n <span>{{ file.size | format: 'filesize' | async }}</span>\n <span>{{\n file.modifiedAt\n | format: 'datetime' : { format: 'datetime' }\n | async\n }}</span>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n} @else {\n <div class=\"__section\">\n <div class=\"__content\">\n @for (folder of vm.filteredFolders(); track folder.id) {\n @let folderDisplay = vm.getNodeDisplayInfo(folder);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(folder)\"\n [axp-data]=\"folder\"\n (click)=\"vm.toggleSelect(folder)\"\n (onDblClick)=\"vm.navigateToFolder(folder.id)\"\n >\n <div\n class=\"__icon fa-2x\"\n [style.color]=\"vm.getFolderColor(folder)\"\n [class.__shortcut]=\"folderDisplay.isShortcut\"\n >\n @if (vm.isLoadingFolder(folder.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n } @else {\n <i class=\"fas fa-folder-closed\"></i>\n }\n @if (folderDisplay.isShortcut) {\n <i\n class=\"__shortcut-arrow fa-light fa-up-right-from-square\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n <div class=\"__details\">\n <div class=\"__name\">{{ folder.name }}</div>\n <div class=\"__info\">\n <div class=\"inline-flex items-center gap-1\">\n <span>{{ (folder.childrenCount ?? 0) + (folder.itemsCount ?? 0) }} items</span>\n <!-- ----- Expiration counts after item count ----- -->\n <axm-folder-expiration-badges [node]=\"folder\" />\n </div>\n <span>{{\n folder.modifiedAt\n | format: 'datetime' : { format: 'datetime' }\n | async\n }}</span>\n </div>\n </div>\n </div>\n }\n @for (file of vm.filteredFiles(); track file.id) {\n @let fileDisplay = vm.getNodeDisplayInfo(file);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(file)\"\n [axp-data]=\"file\"\n (click)=\"vm.toggleSelect(file)\"\n (onDblClick)=\"vm.openFileOnDoubleClick(file)\"\n >\n <axm-document-version-badge class=\"__version-badge\" [node]=\"file\" />\n <div class=\"__icon fa-2x\" [class.__shortcut]=\"fileDisplay.isShortcut\">\n <i class=\"fa-fw {{ fileDisplay.icon }}\"></i>\n @if (fileDisplay.isShortcut) {\n <i\n class=\"__shortcut-arrow fa-light fa-up-right-from-square\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n <div class=\"__details\">\n <div class=\"flex min-w-0 items-center gap-1.5\">\n <div class=\"__name\">{{ file.title || file.name }}</div>\n <axm-document-expiration-badge [node]=\"file\" />\n </div>\n <div class=\"__info\">\n <span>{{ file.size | format: 'filesize' | async }}</span>\n <span>{{\n file.modifiedAt\n | format: 'datetime' : { format: 'datetime' }\n | async\n }}</span>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n}\n", styles: ["@layer properties;:host .__section{margin-bottom:calc(var(--spacing, .25rem) * 8)}:host .__section:last-child{margin-bottom:0}:host .__section .__header .__title{margin-bottom:calc(var(--spacing, .25rem) * 4);font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}:host .__section .__content{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:calc(var(--spacing, .25rem) * 2)}:host .__section .__content .__explorer-item{position:relative;display:flex;cursor:pointer;align-items:center;gap:calc(var(--spacing, .25rem) * 3);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;background-color:var(--color-lighter);color:var(--color-on-lighter);border-color:var(--color-border-lighter);padding:calc(var(--spacing, .25rem) * 2);padding-inline-end:calc(var(--spacing, .25rem) * 12)}:host .__section .__content .__explorer-item:hover{background-color:var(--color-light);color:var(--color-on-light);border-color:var(--color-border-light)}:host .__section .__content .__explorer-item .__version-badge{position:absolute;top:.35rem;inset-inline-end:.35rem;z-index:1}:host .__section .__content .__explorer-item .__icon.__shortcut .__shortcut-arrow{position:absolute;bottom:0;right:0;font-size:.5em;opacity:.9}:host .__section .__content .__explorer-item .__icon{position:relative;display:inline-flex;flex-shrink:0}:host .__section .__content .__explorer-item .__details{min-width:0px;flex:1}:host .__section .__content .__explorer-item .__details .__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:start;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}:host .__section .__content .__explorer-item .__details .__info{display:flex;width:100%;justify-content:space-between;--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);opacity:65%}:host .__section .__content .__explorer-item .__details .__info span{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)))}:host .__section .__content .__explorer-item.--selected{background-color:var(--color-darker);color:var(--color-on-darker);border-color:var(--color-border-darker)}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial;--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
33
+ }] });
34
+
35
+ export { AXMDocumentExplorerSmallTilesViewComponent };
36
+ //# sourceMappingURL=acorex-platform-module-document-management-client-small-tiles-view.component-DRDvcOMS.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-document-management-client-small-tiles-view.component-DRDvcOMS.mjs","sources":["../../../../libs/modules/document-management/client/src/lib/features/document-explorer/views/small-tiles/small-tiles-view.component.ts","../../../../libs/modules/document-management/client/src/lib/features/document-explorer/views/small-tiles/small-tiles-view.component.html"],"sourcesContent":["import { Component, inject, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXPElementDataDirective, AXPDblClickDirective } from '@acorex-platform/framework-client/core';\nimport { AXPDocumentExplorerViewModel } from '../../document-explorer.viewmodel';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXTranslationModule } from '@acorex/core/translation';\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';\n\n@Component({\n selector: 'axm-document-explorer-small-tiles-view',\n templateUrl: './small-tiles-view.component.html',\n styleUrls: ['./small-tiles-view.component.css'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [\n CommonModule,\n AXPElementDataDirective,\n AXPDblClickDirective,\n AXFormatModule,\n AXDateTimeModule,\n AXTranslationModule,\n AXMDocumentExpirationBadgeComponent,\n AXMDocumentVersionBadgeComponent,\n AXMFolderExpirationBadgesComponent,\n ],\n})\nexport class AXMDocumentExplorerSmallTilesViewComponent {\n protected vm = inject(AXPDocumentExplorerViewModel);\n} ","@if (vm.groupByType()) {\n @if (vm.filteredFolders().length > 0) {\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">\n {{ '@document-management:terms.common.folders' | translate | async }}\n </h3>\n </div>\n <div class=\"__content\">\n @for (folder of vm.filteredFolders(); track folder.id) {\n @let folderDisplay = vm.getNodeDisplayInfo(folder);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(folder)\"\n [axp-data]=\"folder\"\n (click)=\"vm.toggleSelect(folder)\"\n (onDblClick)=\"vm.navigateToFolder(folder.id)\"\n >\n <div\n class=\"__icon fa-2x\"\n [style.color]=\"vm.getFolderColor(folder)\"\n [class.__shortcut]=\"folderDisplay.isShortcut\"\n >\n @if (vm.isLoadingFolder(folder.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n } @else {\n <i class=\"fas fa-folder-closed\"></i>\n }\n @if (folderDisplay.isShortcut) {\n <i\n class=\"__shortcut-arrow fa-light fa-up-right-from-square\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n <div class=\"__details\">\n <div class=\"__name\">{{ folder.name }}</div>\n <div class=\"__info\">\n <div class=\"inline-flex items-center gap-1\">\n <span>{{ (folder.childrenCount ?? 0) + (folder.itemsCount ?? 0) }} items</span>\n <!-- ----- Expiration counts after item count ----- -->\n <axm-folder-expiration-badges [node]=\"folder\" />\n </div>\n <span>{{\n folder.modifiedAt\n | format: 'datetime' : { format: 'datetime' }\n | async\n }}</span>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n @if (vm.filteredFiles().length > 0) {\n <div class=\"__section\">\n <div class=\"__header\">\n <h3 class=\"__title\">\n {{ '@document-management:terms.common.files' | translate | async }}\n </h3>\n </div>\n <div class=\"__content\">\n @for (file of vm.filteredFiles(); track file.id) {\n @let fileDisplay = vm.getNodeDisplayInfo(file);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(file)\"\n [axp-data]=\"file\"\n (click)=\"vm.toggleSelect(file)\"\n (onDblClick)=\"vm.openFileOnDoubleClick(file)\"\n >\n <axm-document-version-badge class=\"__version-badge\" [node]=\"file\" />\n <div\n class=\"__icon fa-2x\"\n [class.__shortcut]=\"fileDisplay.isShortcut\"\n >\n <i class=\"fa-fw {{ fileDisplay.icon }}\"></i>\n @if (fileDisplay.isShortcut) {\n <i\n class=\"__shortcut-arrow fa-light fa-up-right-from-square\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n <div class=\"__details\">\n <div class=\"flex min-w-0 items-center gap-1.5\">\n <div class=\"__name\">{{ file.title || file.name }}</div>\n <axm-document-expiration-badge [node]=\"file\" />\n </div>\n <div class=\"__info\">\n <span>{{ file.size | format: 'filesize' | async }}</span>\n <span>{{\n file.modifiedAt\n | format: 'datetime' : { format: 'datetime' }\n | async\n }}</span>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n} @else {\n <div class=\"__section\">\n <div class=\"__content\">\n @for (folder of vm.filteredFolders(); track folder.id) {\n @let folderDisplay = vm.getNodeDisplayInfo(folder);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(folder)\"\n [axp-data]=\"folder\"\n (click)=\"vm.toggleSelect(folder)\"\n (onDblClick)=\"vm.navigateToFolder(folder.id)\"\n >\n <div\n class=\"__icon fa-2x\"\n [style.color]=\"vm.getFolderColor(folder)\"\n [class.__shortcut]=\"folderDisplay.isShortcut\"\n >\n @if (vm.isLoadingFolder(folder.id)) {\n <i class=\"fa-light fa-spinner fa-spin-pulse\"></i>\n } @else {\n <i class=\"fas fa-folder-closed\"></i>\n }\n @if (folderDisplay.isShortcut) {\n <i\n class=\"__shortcut-arrow fa-light fa-up-right-from-square\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n <div class=\"__details\">\n <div class=\"__name\">{{ folder.name }}</div>\n <div class=\"__info\">\n <div class=\"inline-flex items-center gap-1\">\n <span>{{ (folder.childrenCount ?? 0) + (folder.itemsCount ?? 0) }} items</span>\n <!-- ----- Expiration counts after item count ----- -->\n <axm-folder-expiration-badges [node]=\"folder\" />\n </div>\n <span>{{\n folder.modifiedAt\n | format: 'datetime' : { format: 'datetime' }\n | async\n }}</span>\n </div>\n </div>\n </div>\n }\n @for (file of vm.filteredFiles(); track file.id) {\n @let fileDisplay = vm.getNodeDisplayInfo(file);\n <div\n class=\"__explorer-item\"\n [class.--selected]=\"vm.isItemSelected(file)\"\n [axp-data]=\"file\"\n (click)=\"vm.toggleSelect(file)\"\n (onDblClick)=\"vm.openFileOnDoubleClick(file)\"\n >\n <axm-document-version-badge class=\"__version-badge\" [node]=\"file\" />\n <div class=\"__icon fa-2x\" [class.__shortcut]=\"fileDisplay.isShortcut\">\n <i class=\"fa-fw {{ fileDisplay.icon }}\"></i>\n @if (fileDisplay.isShortcut) {\n <i\n class=\"__shortcut-arrow fa-light fa-up-right-from-square\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n <div class=\"__details\">\n <div class=\"flex min-w-0 items-center gap-1.5\">\n <div class=\"__name\">{{ file.title || file.name }}</div>\n <axm-document-expiration-badge [node]=\"file\" />\n </div>\n <div class=\"__info\">\n <span>{{ file.size | format: 'filesize' | async }}</span>\n <span>{{\n file.modifiedAt\n | format: 'datetime' : { format: 'datetime' }\n | async\n }}</span>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n}\n"],"names":[],"mappings":";;;;;;;;;;;;MA6Ba,0CAA0C,CAAA;AAlBvD,IAAA,WAAA,GAAA;AAmBc,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,4BAA4B,CAAC;AACtD,IAAA;8GAFY,0CAA0C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0CAA0C,kGC7BvD,0jOA6LA,EAAA,MAAA,EAAA,CAAA,u4FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED3KM,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,uBAAuB,8FACvB,oBAAoB,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACpB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,gBAAgB,8BAChB,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,mCAAmC,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnC,gCAAgC,yFAChC,kCAAkC,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,CAAA,CAAA;;2FAG3B,0CAA0C,EAAA,UAAA,EAAA,CAAA;kBAlBtD,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wCAAwC,cAGtC,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,KAAK,EAAA,OAAA,EACrC;wBACP,YAAY;wBACZ,uBAAuB;wBACvB,oBAAoB;wBACpB,cAAc;wBACd,gBAAgB;wBAChB,mBAAmB;wBACnB,mCAAmC;wBACnC,gCAAgC;wBAChC,kCAAkC;AACnC,qBAAA,EAAA,QAAA,EAAA,0jOAAA,EAAA,MAAA,EAAA,CAAA,u4FAAA,CAAA,EAAA;;;"}
@@ -5,7 +5,7 @@ import { AXFileService } from '@acorex/core/file';
5
5
  import { RootConfig } from '@acorex-platform/module-document-management-client/contracts';
6
6
  import * as i0 from '@angular/core';
7
7
  import { inject, Injectable } from '@angular/core';
8
- import { k as AXMDocumentDialogService, l as buildFileChooserOptionsFromDocumentType } from './acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-Dc3e3vuv.mjs';
8
+ import { k as AXMDocumentDialogService, l as buildFileChooserOptionsFromDocumentType } from './acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-i1lGkMQC.mjs';
9
9
 
10
10
  //#region ---- Imports ----
11
11
  //#endregion
@@ -85,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
85
85
  }] });
86
86
 
87
87
  export { AXMUploadDocumentCommand };
88
- //# sourceMappingURL=acorex-platform-module-document-management-client-upload-document.command-SvlUanUP.mjs.map
88
+ //# sourceMappingURL=acorex-platform-module-document-management-client-upload-document.command-CYeSpjOg.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-document-management-client-upload-document.command-SvlUanUP.mjs","sources":["../../../../libs/modules/document-management/client/src/lib/features/commands/upload-document.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPFileChooserService } from '@acorex-platform/framework-client/layout/components';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult, AXPPlatformScope } from '@acorex-platform/framework-shared/core';\nimport { AXFileService } from '@acorex/core/file';\nimport { AXMDocumentDocDto } from '@acorex-platform/module-document-management-client/contracts';\nimport { RootConfig } from '@acorex-platform/module-document-management-client/contracts';\nimport { inject, Injectable } from '@angular/core';\n\nimport { buildFileChooserOptionsFromDocumentType } from '../shared/document-type-accept.util';\nimport { AXMDocumentDialogService } from '../shared/services/document-dialog.service';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXMUploadDocumentCommandInput {\n documentType?: AXMDocumentDocDto;\n documentTypeId?: string;\n data?: {\n documentType?: AXMDocumentDocDto;\n documentTypeId?: string;\n };\n options?: {\n documentType?: AXMDocumentDocDto;\n documentTypeId?: string;\n };\n}\n\n//#endregion\n\n//#region ---- Helpers ----\n\nfunction resolveUploadDocumentInput(input: AXMUploadDocumentCommandInput = {}) {\n const data = input.data ?? {};\n const options = input.options ?? {};\n\n return {\n documentType: input.documentType ?? data.documentType ?? options.documentType,\n documentTypeId: input.documentTypeId ?? data.documentTypeId ?? options.documentTypeId,\n };\n}\n\n//#endregion\n\n//#region ---- Upload document command ----\n\n/**\n * Resolves document type (optional picker), then opens the file chooser for drive upload.\n * Replaces the former upload-document workflow (check type → choose type → choose file).\n * Registered as DocumentManagement.Document:Upload.\n */\n@Injectable({ providedIn: 'root' })\nexport class AXMUploadDocumentCommand implements AXPCommand<AXMUploadDocumentCommandInput> {\n private readonly documentDialog = inject(AXMDocumentDialogService);\n private readonly entityService = inject(AXPEntityService);\n private readonly chooserService = inject(AXPFileChooserService);\n private readonly fileService = inject(AXFileService);\n\n private readonly documentTypeService = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.documentType.name)\n .data<string, AXMDocumentDocDto>();\n\n async execute(input: AXMUploadDocumentCommandInput = {}): AXPCommandExecuteResultPromise {\n let { documentType, documentTypeId } = resolveUploadDocumentInput(input);\n\n if (!documentType) {\n const chooseTypeResult = await this.documentDialog.chooseDocumentType();\n if (chooseTypeResult.cancelled) {\n return { success: true, kind: 'object', data: { cancelled: true } };\n }\n documentTypeId = chooseTypeResult.documentTypeId;\n }\n\n let resolvedDocumentType = documentType;\n if (!resolvedDocumentType && documentTypeId) {\n resolvedDocumentType = (await this.documentTypeService.byKey(documentTypeId)) ?? undefined;\n }\n\n if (!resolvedDocumentType) {\n return {\n success: false,\n message: { text: '@document-management:validation.upload.document-type-required' },\n };\n }\n\n const { accept, fileType } = await buildFileChooserOptionsFromDocumentType(\n resolvedDocumentType,\n this.fileService,\n );\n const chosen = await this.chooserService.promptChoose({\n options: {\n multiple: false,\n accept: accept || undefined,\n fileType: fileType.length ? fileType : undefined,\n scope: AXPPlatformScope.Tenant,\n browseMode: 'file',\n destination: 'drive',\n },\n items: [],\n });\n\n if (!chosen?.length) {\n return { success: true, kind: 'object', data: { cancelled: true } };\n }\n\n return { success: true, kind: 'object',\n data: {\n documentType: resolvedDocumentType,\n chosenFiles: chosen,\n },\n };\n }\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-module-document-management-client-upload-document.command-CYeSpjOg.mjs","sources":["../../../../libs/modules/document-management/client/src/lib/features/commands/upload-document.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPFileChooserService } from '@acorex-platform/framework-client/layout/components';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult, AXPPlatformScope } from '@acorex-platform/framework-shared/core';\nimport { AXFileService } from '@acorex/core/file';\nimport { AXMDocumentDocDto } from '@acorex-platform/module-document-management-client/contracts';\nimport { RootConfig } from '@acorex-platform/module-document-management-client/contracts';\nimport { inject, Injectable } from '@angular/core';\n\nimport { buildFileChooserOptionsFromDocumentType } from '../shared/document-type-accept.util';\nimport { AXMDocumentDialogService } from '../shared/services/document-dialog.service';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXMUploadDocumentCommandInput {\n documentType?: AXMDocumentDocDto;\n documentTypeId?: string;\n data?: {\n documentType?: AXMDocumentDocDto;\n documentTypeId?: string;\n };\n options?: {\n documentType?: AXMDocumentDocDto;\n documentTypeId?: string;\n };\n}\n\n//#endregion\n\n//#region ---- Helpers ----\n\nfunction resolveUploadDocumentInput(input: AXMUploadDocumentCommandInput = {}) {\n const data = input.data ?? {};\n const options = input.options ?? {};\n\n return {\n documentType: input.documentType ?? data.documentType ?? options.documentType,\n documentTypeId: input.documentTypeId ?? data.documentTypeId ?? options.documentTypeId,\n };\n}\n\n//#endregion\n\n//#region ---- Upload document command ----\n\n/**\n * Resolves document type (optional picker), then opens the file chooser for drive upload.\n * Replaces the former upload-document workflow (check type → choose type → choose file).\n * Registered as DocumentManagement.Document:Upload.\n */\n@Injectable({ providedIn: 'root' })\nexport class AXMUploadDocumentCommand implements AXPCommand<AXMUploadDocumentCommandInput> {\n private readonly documentDialog = inject(AXMDocumentDialogService);\n private readonly entityService = inject(AXPEntityService);\n private readonly chooserService = inject(AXPFileChooserService);\n private readonly fileService = inject(AXFileService);\n\n private readonly documentTypeService = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.documentType.name)\n .data<string, AXMDocumentDocDto>();\n\n async execute(input: AXMUploadDocumentCommandInput = {}): AXPCommandExecuteResultPromise {\n let { documentType, documentTypeId } = resolveUploadDocumentInput(input);\n\n if (!documentType) {\n const chooseTypeResult = await this.documentDialog.chooseDocumentType();\n if (chooseTypeResult.cancelled) {\n return { success: true, kind: 'object', data: { cancelled: true } };\n }\n documentTypeId = chooseTypeResult.documentTypeId;\n }\n\n let resolvedDocumentType = documentType;\n if (!resolvedDocumentType && documentTypeId) {\n resolvedDocumentType = (await this.documentTypeService.byKey(documentTypeId)) ?? undefined;\n }\n\n if (!resolvedDocumentType) {\n return {\n success: false,\n message: { text: '@document-management:validation.upload.document-type-required' },\n };\n }\n\n const { accept, fileType } = await buildFileChooserOptionsFromDocumentType(\n resolvedDocumentType,\n this.fileService,\n );\n const chosen = await this.chooserService.promptChoose({\n options: {\n multiple: false,\n accept: accept || undefined,\n fileType: fileType.length ? fileType : undefined,\n scope: AXPPlatformScope.Tenant,\n browseMode: 'file',\n destination: 'drive',\n },\n items: [],\n });\n\n if (!chosen?.length) {\n return { success: true, kind: 'object', data: { cancelled: true } };\n }\n\n return { success: true, kind: 'object',\n data: {\n documentType: resolvedDocumentType,\n chosenFiles: chosen,\n },\n };\n }\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- export { t as AXMDocumentDriveComponent, u as AXMDocumentDrivePageComponent, v as AXMDocumentDrivePageComponentProvider, a as AXMDocumentExpirationBadgeComponent, w as AXMDocumentExpirationStatusProvider, p as AXMDocumentExplorerComponent, x as AXMDocumentManagementApiService, y as AXMDocumentManagementFileTypeProvider, z as AXMDocumentManagementModule, j as AXMDocumentManagerService, B as AXMDocumentManagerServiceImpl, b as AXMDocumentVersionBadgeComponent, C as AXMFileTypeExtensionWidgetColumnComponent, D as AXMFileTypeExtensionWidgetDesignerComponent, E as AXMFileTypeExtensionWidgetEditComponent, F as AXMFileTypeExtensionWidgetViewComponent, G as AXMFileTypeModule, c as AXMFolderExpirationBadgesComponent, q as AXMFolderPathBreadcrumbsComponent, H as AXMMenuProvider, I as AXMSearchCommandProvider, J as AXM_DOCUMENT_ATTACHMENT_DIALOG_ON_ACTION_HOOK_KEY, K as AXM_DOCUMENT_DIALOG_SURFACE_ATTACHMENT, L as AXM_DOCUMENT_DIALOG_SURFACE_ATTACHMENT_NO_SAVE, M as AXM_DOCUMENT_EXPIRATION_STATUS, N as AXM_DOCUMENT_EXPIRATION_STATUS_DEFINITION_KEY, A as AXPDocumentExplorerViewModel, m as AXPDocumentManagementService, O as AXPDocumentManagementSettingProvider, P as AXmFileTypeExtensionWidget, Q as DM_AUDIO_EXTENSION_ICONS, R as DM_DOCUMENT_EXTENSION_ICONS, S as DM_FILE_EXTENSION_ICONS, T as DM_FILE_TYPE_ICONS, U as DM_VIDEO_EXTENSION_ICONS, V as DOCUMENT_DRIVE_PAGE_COMPONENT_KEY, W as ScopedDriveService, X as buildDocumentManagementFileTypeCatalog, Y as documentPlugin, Z as resolveDocumentExpirationBadge, _ as resolveDocumentVersionNumber, $ as resolveFolderExpirationCountBadges } from './acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-Dc3e3vuv.mjs';
1
+ export { t as AXMDocumentDriveComponent, u as AXMDocumentDrivePageComponent, v as AXMDocumentDrivePageComponentProvider, a as AXMDocumentExpirationBadgeComponent, w as AXMDocumentExpirationStatusProvider, p as AXMDocumentExplorerComponent, x as AXMDocumentManagementApiService, y as AXMDocumentManagementFileTypeProvider, z as AXMDocumentManagementModule, j as AXMDocumentManagerService, B as AXMDocumentManagerServiceImpl, b as AXMDocumentVersionBadgeComponent, C as AXMFileTypeExtensionWidgetColumnComponent, D as AXMFileTypeExtensionWidgetDesignerComponent, E as AXMFileTypeExtensionWidgetEditComponent, F as AXMFileTypeExtensionWidgetViewComponent, G as AXMFileTypeModule, c as AXMFolderExpirationBadgesComponent, q as AXMFolderPathBreadcrumbsComponent, H as AXMMenuProvider, I as AXMSearchCommandProvider, J as AXM_DOCUMENT_ATTACHMENT_DIALOG_ON_ACTION_HOOK_KEY, K as AXM_DOCUMENT_DIALOG_SURFACE_ATTACHMENT, L as AXM_DOCUMENT_DIALOG_SURFACE_ATTACHMENT_NO_SAVE, M as AXM_DOCUMENT_EXPIRATION_STATUS, N as AXM_DOCUMENT_EXPIRATION_STATUS_DEFINITION_KEY, A as AXPDocumentExplorerViewModel, m as AXPDocumentManagementService, O as AXPDocumentManagementSettingProvider, P as AXmFileTypeExtensionWidget, Q as DM_AUDIO_EXTENSION_ICONS, R as DM_DOCUMENT_EXTENSION_ICONS, S as DM_FILE_EXTENSION_ICONS, T as DM_FILE_TYPE_ICONS, U as DM_VIDEO_EXTENSION_ICONS, V as DOCUMENT_DRIVE_PAGE_COMPONENT_KEY, W as ScopedDriveService, X as buildDocumentManagementFileTypeCatalog, Y as documentPlugin, Z as resolveDocumentExpirationBadge, _ as resolveDocumentVersionNumber, $ as resolveFolderExpirationCountBadges } from './acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-i1lGkMQC.mjs';
2
2
  export { AXM_DOCUMENT_EXPIRATION_NEAR_DAYS, toDocumentExpirationDate } from '@acorex-platform/module-document-management-client/contracts';
3
3
  //# sourceMappingURL=acorex-platform-module-document-management-client.mjs.map
@@ -415,6 +415,15 @@
415
415
  "detail-panel-open": {
416
416
  "title": "Show Details Panel",
417
417
  "description": "Keep the side details panel open when browsing folders."
418
+ },
419
+ "file-double-click-action": {
420
+ "title": "Double-Click Action",
421
+ "description": "Choose whether double-clicking a file opens the file viewer, downloads the file, or opens the viewer only when the file can be previewed.",
422
+ "options": {
423
+ "gallery": "Open File Viewer",
424
+ "download": "Download",
425
+ "view-or-download": "View or Download"
426
+ }
418
427
  }
419
428
  }
420
429
  },
@@ -415,6 +415,15 @@
415
415
  "detail-panel-open": {
416
416
  "title": "Show Details Panel",
417
417
  "description": "Keep the side details panel open when browsing folders."
418
+ },
419
+ "file-double-click-action": {
420
+ "title": "Double-Click Action",
421
+ "description": "Choose whether double-clicking a file opens the file viewer, downloads the file, or opens the viewer only when the file can be previewed.",
422
+ "options": {
423
+ "gallery": "Open File Viewer",
424
+ "download": "Download",
425
+ "view-or-download": "View or Download"
426
+ }
418
427
  }
419
428
  }
420
429
  },
@@ -414,6 +414,15 @@
414
414
  "detail-panel-open": {
415
415
  "title": "نمایش پنل جزئیات",
416
416
  "description": "پنل جزئیات کناری هنگام مرور پوشه‌ها باز بماند."
417
+ },
418
+ "file-double-click-action": {
419
+ "title": "عمل دابل‌کلیک",
420
+ "description": "دابل‌کلیک فایل را در نمایشگر باز کند، دانلود کند، یا فقط فایل‌های قابل پیش‌نمایش (مثل تصویر و PDF) را باز کند و بقیه را دانلود کند.",
421
+ "options": {
422
+ "gallery": "باز کردن نمایشگر فایل",
423
+ "download": "دانلود",
424
+ "view-or-download": "نمایش یا دانلود"
425
+ }
417
426
  }
418
427
  }
419
428
  },
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@acorex-platform/module-document-management-client",
3
- "version": "2.0.0-next.1",
3
+ "version": "2.0.0-next.10",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
- "@acorex-platform/module-data-management-client": "2.0.0-next.1",
6
+ "@acorex-platform/module-data-management-client": "2.0.0-next.10",
7
7
  "@angular/common": "^21.0.0 || ^22.0.0",
8
8
  "@angular/core": "^21.0.0 || ^22.0.0"
9
9
  },
@@ -59,8 +59,16 @@ declare enum AXPDocumentManagementSettings {
59
59
  SortField = "DocumentManagement:Setting:DocumentExplorer.Layout.SortField",
60
60
  SortDirection = "DocumentManagement:Setting:DocumentExplorer.Layout.SortDirection",
61
61
  GroupByType = "DocumentManagement:Setting:DocumentExplorer.Layout.GroupByType",
62
- DetailPanelOpen = "DocumentManagement:Setting:DocumentExplorer.Layout.DetailPanelOpen"
62
+ DetailPanelOpen = "DocumentManagement:Setting:DocumentExplorer.Layout.DetailPanelOpen",
63
+ /** What a file double-click does in the document explorer. */
64
+ FileDoubleClickAction = "DocumentManagement:Setting:DocumentExplorer.Layout.FileDoubleClickAction"
63
65
  }
66
+ /** Stored values for {@link AXPDocumentManagementSettings.FileDoubleClickAction}. */
67
+ type AXPDocumentFileDoubleClickAction = 'gallery' | 'download' | 'view-or-download';
68
+ /**
69
+ * Unknown or missing values stay on the product default (open the file viewer).
70
+ */
71
+ declare function resolveDocumentFileDoubleClickAction(value: unknown): AXPDocumentFileDoubleClickAction;
64
72
 
65
73
  declare const AXMDocumentManagementCommandKeys: {
66
74
  readonly DocumentExpirationNotifyRun: "DocumentManagement:DocumentExpiration:NotifyRun";
@@ -563,5 +571,5 @@ interface AXMDocumentManagementFolderGetDto extends AXMDocumentManagementFolderE
563
571
  shortcuts?: AXMDocumentShortcutEntityModel[];
564
572
  }
565
573
 
566
- export { AXMDocumentManagementCommandKeys, AXMDocumentManagementDocumentStatusValues, AXMDocumentManagementQueryKeys, AXMDocumentVersioningStatusValues, AXMPermissionsKeys, AXM_DOCUMENT_DISTRIBUTION_FIELD_NAMES, AXM_DOCUMENT_DISTRIBUTION_SIGNED_AT_FIELD_NAME, AXM_DOCUMENT_DISTRIBUTION_VERSION_FIELD_NAME, AXM_DOCUMENT_DISTRIBUTION_VIEWED_AT_FIELD_NAME, AXM_DOCUMENT_EXPIRATION_NEAR_DAYS, AXM_DOCUMENT_EXPIRATION_NOTIFY_RUN_COMMAND_KEY, AXM_DOCUMENT_REVIEWED_BY_FIELD_NAME, AXM_DOCUMENT_REVIEW_DATE_FIELD_NAME, AXM_DOCUMENT_REVIEW_FIELD_NAMES, AXPContentDocumentsPermissionKeys, AXPDocumentManagementFeatureKeys, AXPDocumentManagementMenuKeys, AXPDocumentManagementSettings, DOCUMENT_DISTRIBUTION_WORKFLOW_NAME, DocumentManagementManifest, RootConfig, addDaysToDocumentExpirationDateKey, applyDocumentReviewMetadataIfRequired, classifyDocumentExpirationStatus, documentReviewReadonlyFieldNames, documentTypeAllowsDistributionForAppliesTo, documentTypeHasDistributionMetadata, documentTypeHasFolderScopedMetadata, documentTypeHasReviewMetadata, documentTypeHasReviewMetadataForAppliesTo, ensureDocumentDistributionTaskTypeMetadata, ensureDocumentReviewMetadata, extractDocumentTypeFileKindNames, getDocumentExpirationDateKey, getDocumentExpirationQueryBoundValues, getDocumentExpirationQueryBounds, getDocumentExpirationRemainingDays, getUtcDayBoundsForDateKey, hasDocumentDistributionMetadataValue, hasDocumentReviewMetadataValue, highestDocumentVersionNumber, isDocumentDistributionEnabled, isDocumentDistributionMetadataFieldName, isDocumentReviewMetadataComplete, isDocumentReviewMetadataFieldName, isDocumentReviewRequired, normalizeDocumentTypeFileKinds, resolveDocumentReviewAppliesTo, restoreDocumentReviewFormValues, stampDocumentDistributionFormValues, stampDocumentReviewFormValues, toDocumentExpirationDate, toDocumentExpirationStorageValue };
567
- export type { AXMDocumentAuditInfo, AXMDocumentDocDto, AXMDocumentDto, AXMDocumentExpirationStatus, AXMDocumentInheritanceType, AXMDocumentManagementDocumentStatus, AXMDocumentManagementDocumentTypeEntityModel, AXMDocumentManagementFolderCreateDto, AXMDocumentManagementFolderEntityModel, AXMDocumentManagementFolderGetDto, AXMDocumentShortcutEntityModel, AXMDocumentVersionDto, AXMDocumentVersioningStatus, AXPDriveBootstrapCatalog, AXPDriveBootstrapDocumentType, AXPDriveBootstrapFolderNode, DocumentTypeAllowedFileKinds, DocumentTypeFileKindName, DocumentTypeFileKindOption, DocumentTypeFileOutput };
574
+ export { AXMDocumentManagementCommandKeys, AXMDocumentManagementDocumentStatusValues, AXMDocumentManagementQueryKeys, AXMDocumentVersioningStatusValues, AXMPermissionsKeys, AXM_DOCUMENT_DISTRIBUTION_FIELD_NAMES, AXM_DOCUMENT_DISTRIBUTION_SIGNED_AT_FIELD_NAME, AXM_DOCUMENT_DISTRIBUTION_VERSION_FIELD_NAME, AXM_DOCUMENT_DISTRIBUTION_VIEWED_AT_FIELD_NAME, AXM_DOCUMENT_EXPIRATION_NEAR_DAYS, AXM_DOCUMENT_EXPIRATION_NOTIFY_RUN_COMMAND_KEY, AXM_DOCUMENT_REVIEWED_BY_FIELD_NAME, AXM_DOCUMENT_REVIEW_DATE_FIELD_NAME, AXM_DOCUMENT_REVIEW_FIELD_NAMES, AXPContentDocumentsPermissionKeys, AXPDocumentManagementFeatureKeys, AXPDocumentManagementMenuKeys, AXPDocumentManagementSettings, DOCUMENT_DISTRIBUTION_WORKFLOW_NAME, DocumentManagementManifest, RootConfig, addDaysToDocumentExpirationDateKey, applyDocumentReviewMetadataIfRequired, classifyDocumentExpirationStatus, documentReviewReadonlyFieldNames, documentTypeAllowsDistributionForAppliesTo, documentTypeHasDistributionMetadata, documentTypeHasFolderScopedMetadata, documentTypeHasReviewMetadata, documentTypeHasReviewMetadataForAppliesTo, ensureDocumentDistributionTaskTypeMetadata, ensureDocumentReviewMetadata, extractDocumentTypeFileKindNames, getDocumentExpirationDateKey, getDocumentExpirationQueryBoundValues, getDocumentExpirationQueryBounds, getDocumentExpirationRemainingDays, getUtcDayBoundsForDateKey, hasDocumentDistributionMetadataValue, hasDocumentReviewMetadataValue, highestDocumentVersionNumber, isDocumentDistributionEnabled, isDocumentDistributionMetadataFieldName, isDocumentReviewMetadataComplete, isDocumentReviewMetadataFieldName, isDocumentReviewRequired, normalizeDocumentTypeFileKinds, resolveDocumentFileDoubleClickAction, resolveDocumentReviewAppliesTo, restoreDocumentReviewFormValues, stampDocumentDistributionFormValues, stampDocumentReviewFormValues, toDocumentExpirationDate, toDocumentExpirationStorageValue };
575
+ export type { AXMDocumentAuditInfo, AXMDocumentDocDto, AXMDocumentDto, AXMDocumentExpirationStatus, AXMDocumentInheritanceType, AXMDocumentManagementDocumentStatus, AXMDocumentManagementDocumentTypeEntityModel, AXMDocumentManagementFolderCreateDto, AXMDocumentManagementFolderEntityModel, AXMDocumentManagementFolderGetDto, AXMDocumentShortcutEntityModel, AXMDocumentVersionDto, AXMDocumentVersioningStatus, AXPDocumentFileDoubleClickAction, AXPDriveBootstrapCatalog, AXPDriveBootstrapDocumentType, AXPDriveBootstrapFolderNode, DocumentTypeAllowedFileKinds, DocumentTypeFileKindName, DocumentTypeFileKindOption, DocumentTypeFileOutput };
@@ -984,6 +984,7 @@ declare class AXMDocumentExplorerComponent {
984
984
  openFile: (node: AXMDocumentExplorerNode) => Promise<void>;
985
985
  handleMenuItemClick: (name: string, data: any) => Promise<void>;
986
986
  downloadFile: (node: AXMDocumentExplorerNode) => void;
987
+ openFileOnDoubleClick: (node: AXMDocumentExplorerNode) => Promise<void>;
987
988
  openFileViewer: (node: AXMDocumentExplorerNode) => Promise<void>;
988
989
  showFolderProperty: (node: AXMDocumentExplorerNode) => Promise<void>;
989
990
  createFolder: (node?: AXMDocumentExplorerNode) => Promise<void>;
@@ -1286,6 +1287,7 @@ declare const AXPDocumentExplorerViewModel: _angular_core.Type<{
1286
1287
  openFile: (node: AXMDocumentExplorerNode) => Promise<void>;
1287
1288
  handleMenuItemClick: (name: string, data: any) => Promise<void>;
1288
1289
  downloadFile: (node: AXMDocumentExplorerNode) => void;
1290
+ openFileOnDoubleClick: (node: AXMDocumentExplorerNode) => Promise<void>;
1289
1291
  openFileViewer: (node: AXMDocumentExplorerNode) => Promise<void>;
1290
1292
  showFolderProperty: (node: AXMDocumentExplorerNode) => Promise<void>;
1291
1293
  createFolder: (node?: AXMDocumentExplorerNode) => Promise<void>;
@@ -1577,6 +1579,7 @@ declare class AXMDocumentDrivePageComponent extends AXPPageLayoutBaseComponent i
1577
1579
  openFile: (node: _acorex_platform_module_document_management_client.AXMDocumentExplorerNode) => Promise<void>;
1578
1580
  handleMenuItemClick: (name: string, data: any) => Promise<void>;
1579
1581
  downloadFile: (node: _acorex_platform_module_document_management_client.AXMDocumentExplorerNode) => void;
1582
+ openFileOnDoubleClick: (node: _acorex_platform_module_document_management_client.AXMDocumentExplorerNode) => Promise<void>;
1580
1583
  openFileViewer: (node: _acorex_platform_module_document_management_client.AXMDocumentExplorerNode) => Promise<void>;
1581
1584
  showFolderProperty: (node: _acorex_platform_module_document_management_client.AXMDocumentExplorerNode) => Promise<void>;
1582
1585
  createFolder: (node?: _acorex_platform_module_document_management_client.AXMDocumentExplorerNode) => Promise<void>;
@@ -1926,6 +1929,7 @@ declare class AXMDocumentDriveComponent extends AXPPageLayoutBaseComponent imple
1926
1929
  openFile: (node: _acorex_platform_module_document_management_client.AXMDocumentExplorerNode) => Promise<void>;
1927
1930
  handleMenuItemClick: (name: string, data: any) => Promise<void>;
1928
1931
  downloadFile: (node: _acorex_platform_module_document_management_client.AXMDocumentExplorerNode) => void;
1932
+ openFileOnDoubleClick: (node: _acorex_platform_module_document_management_client.AXMDocumentExplorerNode) => Promise<void>;
1929
1933
  openFileViewer: (node: _acorex_platform_module_document_management_client.AXMDocumentExplorerNode) => Promise<void>;
1930
1934
  showFolderProperty: (node: _acorex_platform_module_document_management_client.AXMDocumentExplorerNode) => Promise<void>;
1931
1935
  createFolder: (node?: _acorex_platform_module_document_management_client.AXMDocumentExplorerNode) => Promise<void>;
@@ -2415,6 +2419,7 @@ declare class AXMFolderPathBreadcrumbsComponent {
2415
2419
  openFile: (node: AXMDocumentExplorerNode) => Promise<void>;
2416
2420
  handleMenuItemClick: (name: string, data: any) => Promise<void>;
2417
2421
  downloadFile: (node: AXMDocumentExplorerNode) => void;
2422
+ openFileOnDoubleClick: (node: AXMDocumentExplorerNode) => Promise<void>;
2418
2423
  openFileViewer: (node: AXMDocumentExplorerNode) => Promise<void>;
2419
2424
  showFolderProperty: (node: AXMDocumentExplorerNode) => Promise<void>;
2420
2425
  createFolder: (node?: AXMDocumentExplorerNode) => Promise<void>;