@acorex-platform/module-document-management-client 2.0.0-next.0 → 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
@@ -1,11 +1,11 @@
1
1
  import { AXPTaskBadgeProvider, resolveFileChooserExtension, AXPFileChooserService, AXPFileViewerService, AXPFileViewerFallbackContentComponent, AXP_FILE_CHOOSER_PROVIDERS, AXP_FILE_UPLOADER_PROVIDERS, isUnrestrictedFileAccept, fileNameMatchesAccept, AXPStateMessageComponent, AXPLayoutSideDetailPanelComponent, AXPLayoutSideDetailPanelSectionDirective, AXP_PAGE_COMPONENT_PROVIDER, AXP_TASK_BADGE_PROVIDERS, provideFileViewer, AXPThemeLayoutBlockComponent, AXPQueryFiltersComponent } from '@acorex-platform/framework-client/layout/components';
2
2
  import { AXPEntityService, resolveEntityPluginDetailPageOrder, ensureListActions, AXPEntityDefinitionRegistryService, AXPMiddlewareAbortError, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_STORAGE_MIDDLEWARE } from '@acorex-platform/framework-client/layout/entity';
3
3
  import { AXPEntityBroadcastService, AXPHookService, AXPDialogOpener as AXPDialogOpener$1, AXPDataGenerator as AXPDataGenerator$1, AXPDeviceService, AXPExpressionEvaluatorService, AXPDebugService, AXP_FEATURE_DEFINITION_PROVIDER, AXP_HOOK_PROVIDER } from '@acorex-platform/framework-client/core';
4
- import { AXPSearchCommandProvider, createEntitySearchCommand, AXPFileTypeProviderService, AXP_FILE_TYPE_INFO_PROVIDER, AXPFileStorageService, extractRequestErrorInfo, platformErrorI18nKey, resolveExplorerFileDisplayName, tryOpenFileByCatalogType, createFileTypeOpenContext, FILE_VIEWER_PREVIEW_EXTENSIONS, isFileNameShownInViewer, normalizeDocumentToFileListItem, UploadFromComputerActionProvider, AXP_FILE_ACTION_PROVIDER, hasFileTypeOpenHandler, resolveFileTypeDisplay, AXPSettingsService, AXPLockService, AXP_PROTECTED_ROUTE_GUARDS, AXP_STATUS_PROVIDERS, AXP_MENU_PROVIDER, AXP_SEARCH_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/common';
4
+ import { AXPSearchCommandProvider, createEntitySearchCommand, AXPFileTypeProviderService, AXP_FILE_TYPE_INFO_PROVIDER, AXPFileStorageService, extractRequestErrorInfo, platformErrorI18nKey, resolveExplorerFileDisplayName, tryOpenFileByCatalogType, createFileTypeOpenContext, FILE_VIEWER_PREVIEW_EXTENSIONS, isFileNameShownInViewer, normalizeDocumentToFileListItem, UploadFromComputerActionProvider, AXP_FILE_ACTION_PROVIDER, isFileViewerPreviewExtension, extractFileExtension, hasFileTypeOpenHandler, resolveFileTypeDisplay, AXPSettingsService, AXPLockService, AXP_PROTECTED_ROUTE_GUARDS, AXP_STATUS_PROVIDERS, AXP_MENU_PROVIDER, AXP_SEARCH_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/common';
5
5
  import { AXPSessionService, AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';
6
6
  import * as i0 from '@angular/core';
7
7
  import { Injectable, inject, DestroyRef, signal, ChangeDetectionStrategy, Component, NgModule, viewChild, computed, Injector, PLATFORM_ID, input, effect, ViewEncapsulation, untracked, HostListener } from '@angular/core';
8
- import { AXPDocumentManagementFeatureKeys, AXPContentDocumentsPermissionKeys, RootConfig, AXPDocumentManagementMenuKeys, AXPDocumentManagementSettings, documentReviewReadonlyFieldNames, documentTypeHasReviewMetadataForAppliesTo, documentTypeAllowsDistributionForAppliesTo, AXMDocumentManagementCommandKeys } from '@acorex-platform/module-document-management-client/contracts';
8
+ import { AXPDocumentManagementFeatureKeys, AXPContentDocumentsPermissionKeys, RootConfig, AXPDocumentManagementMenuKeys, AXPDocumentManagementSettings, documentReviewReadonlyFieldNames, documentTypeHasReviewMetadataForAppliesTo, documentTypeAllowsDistributionForAppliesTo, resolveDocumentFileDoubleClickAction, AXMDocumentManagementCommandKeys } from '@acorex-platform/module-document-management-client/contracts';
9
9
  import { AXPCommonPermissionGroupKeys, AXPCommonMenuKeys, AXP_VERSIONING_ERROR_I18N, AXPVersioningField, AXPVersioningStatus, AXPCommonCommandKeys, isMaintainVersioningPermissionGranted } from '@acorex-platform/module-common-client/contracts';
10
10
  import { firstValueFrom, combineLatest } from 'rxjs';
11
11
  import { AXPCommandEventsService, AXPCommandService, AXPQueryService, provideCommandSetups } from '@acorex-platform/framework-client/runtime';
@@ -324,6 +324,11 @@ const SORT_DIRECTION_OPTIONS = [
324
324
  { value: 'asc', text: `${I18N}.items.sort-direction.options.asc` },
325
325
  { value: 'desc', text: `${I18N}.items.sort-direction.options.desc` },
326
326
  ];
327
+ const FILE_DOUBLE_CLICK_OPTIONS = [
328
+ { value: 'gallery', text: `${I18N}.items.file-double-click-action.options.gallery` },
329
+ { value: 'download', text: `${I18N}.items.file-double-click-action.options.download` },
330
+ { value: 'view-or-download', text: `${I18N}.items.file-double-click-action.options.view-or-download` },
331
+ ];
327
332
  //#endregion
328
333
  /**
329
334
  * Registers document-management settings, including explorer layout prefs
@@ -411,6 +416,23 @@ class AXPDocumentManagementSettingProvider {
411
416
  type: AXPWidgetsList.Editors.ToggleSwitch,
412
417
  options: { label: null },
413
418
  },
419
+ })
420
+ .addSetting({
421
+ key: AXPDocumentManagementSettings.FileDoubleClickAction,
422
+ title: `${I18N}.items.file-double-click-action.title`,
423
+ description: `${I18N}.items.file-double-click-action.description`,
424
+ scope: 'U',
425
+ overridableAt: [],
426
+ isInherited: false,
427
+ defaultValue: 'gallery',
428
+ widget: {
429
+ type: AXPWidgetsList.Editors.SelectBox,
430
+ options: {
431
+ valueField: 'value',
432
+ textField: 'text',
433
+ dataSource: [...FILE_DOUBLE_CLICK_OPTIONS],
434
+ },
435
+ },
414
436
  })
415
437
  .endSection()
416
438
  .endGroup();
@@ -810,7 +832,7 @@ class AXMFileTypeExtensionWidgetEditComponent extends AXPValueWidgetComponent {
810
832
  </ax-accordion-group>
811
833
  }
812
834
  </axp-widgets-container>
813
- </div>`, isInline: true, dependencies: [{ kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "highlightSearch", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i2.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i3$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i5.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i6.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i6.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXAccordionModule }, { kind: "component", type: i7.AXAccordionItemComponent, selector: "ax-accordion-item", inputs: ["isCollapsed", "icon", "textdecoration", "caption", "isLoading", "headerTemplate", "look", "disabled"], outputs: ["isCollapsedChange", "isLoadingChange", "onClick"] }, { kind: "component", type: i7.AXAccordionGroupComponent, selector: "ax-accordion-group", inputs: ["accordion", "activeIndex", "look", "collapsedOnItemClick"], outputs: ["activeIndexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
835
+ </div>`, isInline: true, dependencies: [{ kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "highlightSearch", "allowSelectAll", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i2.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i3$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i5.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i6.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i6.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXAccordionModule }, { kind: "component", type: i7.AXAccordionItemComponent, selector: "ax-accordion-item", inputs: ["isCollapsed", "icon", "textdecoration", "caption", "isLoading", "headerTemplate", "look", "disabled"], outputs: ["isCollapsedChange", "isLoadingChange", "onClick"] }, { kind: "component", type: i7.AXAccordionGroupComponent, selector: "ax-accordion-group", inputs: ["accordion", "activeIndex", "look", "collapsedOnItemClick"], outputs: ["activeIndexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
814
836
  }
815
837
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMFileTypeExtensionWidgetEditComponent, decorators: [{
816
838
  type: Component,
@@ -989,11 +1011,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
989
1011
  }]
990
1012
  }] });
991
1013
 
1014
+ const AXP_DOCUMENT_FILE_TYPE_FILTER_DEFAULT_OPERATOR = 'equal';
992
1015
  const AXmDocumentFileTypeFilterWidget = {
993
1016
  name: 'document-file-type-filter',
994
1017
  title: '@document-management:widgets.file-type-filter.title',
995
1018
  type: 'filter',
996
- defaultFilterOperator: 'equal',
1019
+ defaultFilterOperator: AXP_DOCUMENT_FILE_TYPE_FILTER_DEFAULT_OPERATOR,
997
1020
  icon: 'fa-light fa-file',
998
1021
  properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
999
1022
  components: {
@@ -1003,60 +1026,95 @@ const AXmDocumentFileTypeFilterWidget = {
1003
1026
  },
1004
1027
  };
1005
1028
 
1029
+ //#endregion
1030
+ //#region ----- Component -----
1006
1031
  class AXmDocumentFileTypeFilterWidgetEditComponent extends AXPValueWidgetComponent {
1007
1032
  constructor() {
1008
1033
  super(...arguments);
1009
- this.lookup = viewChild('lookup', /* @ts-ignore */
1010
- ...(ngDevMode ? [{ debugName: "lookup" }] : /* istanbul ignore next */ []));
1034
+ //#region ----- Services & Dependencies -----
1011
1035
  this.fileTypeService = inject(AXPFileTypeProviderService);
1012
1036
  this.translateService = inject(AXTranslationService);
1037
+ //#endregion
1038
+ //#region ----- View Children -----
1039
+ this.lookup = viewChild('lookup', /* @ts-ignore */
1040
+ ...(ngDevMode ? [{ debugName: "lookup" }] : /* istanbul ignore next */ []));
1041
+ //#endregion
1042
+ //#region ----- Computed Properties -----
1013
1043
  this.value = computed(() => this.getValue()?.value, /* @ts-ignore */
1014
1044
  ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
1045
+ //#endregion
1046
+ //#region ----- Data Source -----
1047
+ this.loadedItems = [];
1015
1048
  this.dataSource = new AXDataSource({
1016
1049
  load: async () => {
1017
- const allTitle = await this.translateService.translateAsync('@document-management:drive.filters.file-types.all');
1018
- const types = await this.fileTypeService.items();
1019
- const items = [
1020
- { name: 'all', title: allTitle, icon: 'fa-light fa-folder-closed' },
1021
- ...types.map((t) => ({ name: t.name, title: t.title, icon: t.icon || 'fa-light fa-file' })),
1022
- ];
1023
- console.log('[DocumentFileTypeFilter] load items', items);
1050
+ const items = await this.loadItems();
1051
+ this.loadedItems = items;
1024
1052
  return { items, total: items.length };
1025
1053
  },
1026
1054
  byKey: async (id) => {
1027
- const key = String(id);
1028
- if (key === 'all') {
1029
- const allTitle = await this.translateService.translateAsync('@document-management:drive.filters.file-types.all');
1030
- const allItem = { name: 'all', title: allTitle, icon: 'fa-light fa-folder-closed' };
1031
- console.log('[DocumentFileTypeFilter] byKey all', allItem);
1032
- return allItem;
1033
- }
1034
- const types = await this.fileTypeService.items();
1035
- const found = types.find((t) => t.name === key);
1036
- if (found) {
1037
- const result = { name: found.name, title: found.title, icon: found.icon || 'fa-light fa-file' };
1038
- console.log('[DocumentFileTypeFilter] byKey found', key, result);
1039
- return result;
1055
+ const key = String(id ?? '');
1056
+ const cached = this.loadedItems.find((item) => item.name === key);
1057
+ if (cached) {
1058
+ return cached;
1040
1059
  }
1041
- const fallback = { name: key, title: key, icon: 'fa-light fa-file' };
1042
- console.log('[DocumentFileTypeFilter] byKey fallback', key, fallback);
1043
- return fallback;
1060
+ const items = await this.loadItems();
1061
+ this.loadedItems = items;
1062
+ return items.find((item) => item.name === key) ?? { name: key, title: key, icon: 'fa-light fa-file' };
1044
1063
  },
1045
1064
  pageSize: 100,
1046
1065
  key: 'name',
1047
1066
  });
1048
1067
  }
1049
- handleValueChange(e) {
1050
- if (e.isUserInteraction) {
1051
- this.setValue({
1052
- value: e.value,
1053
- operation: { type: 'equal' },
1054
- });
1068
+ //#endregion
1069
+ //#region ----- Event Handlers -----
1070
+ /**
1071
+ * Lookup may skip `onValueChanged` on the first pick (`#lastValue === undefined`).
1072
+ * `onItemSelected` always fires from `handleSinglePick`.
1073
+ */
1074
+ handleItemSelected(e) {
1075
+ const item = e.item;
1076
+ if (item == null) {
1077
+ return;
1055
1078
  }
1079
+ const text = item['title'] ?? item['text'];
1080
+ this.commitSelection(item['name'] ?? item['value'], typeof text === 'string' ? text : undefined);
1081
+ }
1082
+ handleValueChange(e) {
1083
+ this.commitSelection(e.value);
1056
1084
  }
1057
1085
  focus() {
1058
1086
  this.lookup()?.focus();
1059
1087
  }
1088
+ //#endregion
1089
+ //#region ----- Value Pipeline -----
1090
+ async loadItems() {
1091
+ const allTitle = await this.translateService.translateAsync('@document-management:drive.filters.file-types.all');
1092
+ const types = await this.fileTypeService.items();
1093
+ return [
1094
+ { name: 'all', title: allTitle, icon: 'fa-light fa-folder-closed' },
1095
+ ...types.map((type) => ({ name: type.name, title: type.title, icon: type.icon || 'fa-light fa-file' })),
1096
+ ];
1097
+ }
1098
+ commitSelection(value, displayText) {
1099
+ const resolved = this.resolveFileTypeValue(value);
1100
+ const text = displayText ??
1101
+ (typeof resolved === 'string' ? this.loadedItems.find((item) => item.name === resolved)?.title : undefined);
1102
+ this.setValue({
1103
+ operation: { type: AXP_DOCUMENT_FILE_TYPE_FILTER_DEFAULT_OPERATOR },
1104
+ value: resolved,
1105
+ ...(text ? { displayText: text } : {}),
1106
+ });
1107
+ }
1108
+ resolveFileTypeValue(value) {
1109
+ if (value == null || value === '') {
1110
+ return null;
1111
+ }
1112
+ if (typeof value === 'object' && 'name' in value) {
1113
+ const name = value.name;
1114
+ return name == null || name === '' ? null : String(name);
1115
+ }
1116
+ return String(value);
1117
+ }
1060
1118
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXmDocumentFileTypeFilterWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1061
1119
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXmDocumentFileTypeFilterWidgetEditComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "lookup", first: true, predicate: ["lookup"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
1062
1120
  <div class="flex items-center w-full">
@@ -1070,13 +1128,15 @@ class AXmDocumentFileTypeFilterWidgetEditComponent extends AXPValueWidgetCompone
1070
1128
  [placeholder]="('@general:actions.select.title' | translate | async) ?? ''"
1071
1129
  [dataSource]="dataSource"
1072
1130
  [ngModel]="value()"
1131
+ (onItemSelected)="handleItemSelected($event)"
1073
1132
  (onValueChanged)="handleValueChange($event)"
1074
1133
  [itemTemplate]="itemTemplate"
1075
1134
  >
1076
1135
  <ax-clear-button></ax-clear-button>
1077
1136
  </ax-lookup>
1078
1137
  <ng-template #itemTemplate let-item>
1079
- <div class="flex items-center gap-2 w-full">
1138
+ <div class="flex items-center gap-2 w-full ps-2">
1139
+ <!-- ----- File type icon when the item defines one ----- -->
1080
1140
  @if (item.icon) {
1081
1141
  <i [class]="item.icon"></i>
1082
1142
  }
@@ -1084,7 +1144,7 @@ class AXmDocumentFileTypeFilterWidgetEditComponent extends AXPValueWidgetCompone
1084
1144
  </div>
1085
1145
  </ng-template>
1086
1146
  </div>
1087
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "highlightSearch", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$2.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1147
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "highlightSearch", "allowSelectAll", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$2.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1088
1148
  }
1089
1149
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXmDocumentFileTypeFilterWidgetEditComponent, decorators: [{
1090
1150
  type: Component,
@@ -1101,13 +1161,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
1101
1161
  [placeholder]="('@general:actions.select.title' | translate | async) ?? ''"
1102
1162
  [dataSource]="dataSource"
1103
1163
  [ngModel]="value()"
1164
+ (onItemSelected)="handleItemSelected($event)"
1104
1165
  (onValueChanged)="handleValueChange($event)"
1105
1166
  [itemTemplate]="itemTemplate"
1106
1167
  >
1107
1168
  <ax-clear-button></ax-clear-button>
1108
1169
  </ax-lookup>
1109
1170
  <ng-template #itemTemplate let-item>
1110
- <div class="flex items-center gap-2 w-full">
1171
+ <div class="flex items-center gap-2 w-full ps-2">
1172
+ <!-- ----- File type icon when the item defines one ----- -->
1111
1173
  @if (item.icon) {
1112
1174
  <i [class]="item.icon"></i>
1113
1175
  }
@@ -2771,19 +2833,10 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
2771
2833
  try {
2772
2834
  const fileId = file.source.value.replace(/^file:/, '');
2773
2835
  const fileInfo = await this.fileService.getInfo(fileId);
2774
- if (fileInfo?.url) {
2775
- const link = document.createElement('a');
2776
- link.href = resolveClientAssetUrl(fileInfo.url);
2777
- link.download = file.name ?? targetNode.name ?? fileInfo.name ?? 'download';
2778
- link.target = '_blank';
2779
- document.body.appendChild(link);
2780
- link.click();
2781
- document.body.removeChild(link);
2782
- }
2783
- else {
2784
- const blob = await this.fileService.download(fileId);
2785
- triggerDownload(blob, file.name ?? targetNode.name ?? fileInfo?.name ?? 'download');
2786
- }
2836
+ const blob = fileInfo?.binary instanceof Blob
2837
+ ? fileInfo.binary
2838
+ : await this.fileService.download(fileId);
2839
+ triggerDownload(blob, file.name ?? targetNode.name ?? fileInfo?.name ?? 'download');
2787
2840
  }
2788
2841
  catch (error) {
2789
2842
  console.error('Error downloading file by fileId:', file.source.value, error);
@@ -3025,7 +3078,7 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
3025
3078
  async openDriveFolderPicker(options) {
3026
3079
  let title = '';
3027
3080
  const popup = await this.dialogOpener.openPopup({
3028
- load: () => import('./acorex-platform-module-document-management-client-drive-choose.component-B8MZYXNy.mjs').then((module) => module.AXMDocumentDriveChooseComponent),
3081
+ load: () => import('./acorex-platform-module-document-management-client-drive-choose.component-DNNfdkr_.mjs').then((module) => module.AXMDocumentDriveChooseComponent),
3029
3082
  data: {
3030
3083
  titleKey: options.titleKey,
3031
3084
  scope: options.scope,
@@ -3310,7 +3363,7 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
3310
3363
  async showShareDialog(node) {
3311
3364
  let title = '';
3312
3365
  const popup = await this.dialogOpener.openPopup({
3313
- load: () => import('./acorex-platform-module-document-management-client-share-dialog.component-CFI4hK3T.mjs').then((module) => module.AXMShareDialogComponent),
3366
+ load: () => import('./acorex-platform-module-document-management-client-share-dialog.component-DmWwfHBl.mjs').then((module) => module.AXMShareDialogComponent),
3314
3367
  data: { nodeId: node.id, dialog: 'share' },
3315
3368
  prepare: async () => {
3316
3369
  title = await this.translate.translateAsync('@document-management:dialogs.share-dialog.title');
@@ -4468,7 +4521,7 @@ const AXM_DRIVE_FILE_CHOOSER_PROVIDER = {
4468
4521
  const accept = context.options['accept'];
4469
4522
  let title = '';
4470
4523
  const popup = await dialogOpener.openPopup({
4471
- load: () => import('./acorex-platform-module-document-management-client-drive-choose.component-B8MZYXNy.mjs').then((module) => module.AXMDocumentDriveChooseComponent),
4524
+ load: () => import('./acorex-platform-module-document-management-client-drive-choose.component-DNNfdkr_.mjs').then((module) => module.AXMDocumentDriveChooseComponent),
4472
4525
  data: { scope, multiple, browseMode, accept: accept ?? '' },
4473
4526
  prepare: async () => {
4474
4527
  title = await translate.translateAsync('@document-management:actions.choose-from-drive');
@@ -5457,6 +5510,11 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
5457
5510
  .data();
5458
5511
  /** In-flight folder load; duplicate requests for the same folder reuse the same promise. */
5459
5512
  let inflightLoad = null;
5513
+ /** Image, PDF, video, and audio can render in the file viewer. Other types cannot. */
5514
+ const canPreviewFileInViewer = (node) => {
5515
+ const displayName = resolveExplorerFileDisplayName(node.name, node.fileId);
5516
+ return isFileViewerPreviewExtension(extractFileExtension(displayName));
5517
+ };
5460
5518
  const applyExplorerNode = (node) => {
5461
5519
  const sortField = store.sortField();
5462
5520
  const sortDirection = store.sortDirection();
@@ -6862,6 +6920,25 @@ const AXPDocumentExplorerViewModel = signalStore({ providedIn: 'root' }, withSta
6862
6920
  downloadFile(node) {
6863
6921
  driveService.downloadFile(node);
6864
6922
  },
6923
+ /**
6924
+ * File double-click in every explorer view.
6925
+ * Default opens the file viewer. The user setting can always download,
6926
+ * or open the viewer only when the file can be previewed.
6927
+ */
6928
+ async openFileOnDoubleClick(node) {
6929
+ if (node.type !== 'file') {
6930
+ return;
6931
+ }
6932
+ const saved = await settingsService
6933
+ .scope(DOCUMENT_EXPLORER_LAYOUT_SETTINGS_SCOPE)
6934
+ .get(AXPDocumentManagementSettings.FileDoubleClickAction);
6935
+ const action = resolveDocumentFileDoubleClickAction(saved);
6936
+ if (action === 'download' || (action === 'view-or-download' && !canPreviewFileInViewer(node))) {
6937
+ this.downloadFile(node);
6938
+ return;
6939
+ }
6940
+ await this.openFileViewer(node);
6941
+ },
6865
6942
  /**
6866
6943
  * Opens the file viewer for the current folder, starting at the selected file.
6867
6944
  */
@@ -7079,26 +7156,26 @@ class AXMDocumentExplorerComponent {
7079
7156
  /** Drops stale async open results when the user right-clicks again before items resolve. */
7080
7157
  this.contextMenuOpenToken = 0;
7081
7158
  this.viewMap = {
7082
- list: async () => (await import('./acorex-platform-module-document-management-client-list-view.component-C7GAQTTr.mjs')).AXMDocumentExplorerListViewComponent,
7083
- 'small-tiles': async () => (await import('./acorex-platform-module-document-management-client-small-tiles-view.component-BpmwxphX.mjs')).AXMDocumentExplorerSmallTilesViewComponent,
7084
- 'large-tiles': async () => (await import('./acorex-platform-module-document-management-client-large-tiles-view.component-C39bX_XE.mjs')).AXMDocumentExplorerLargeTilesViewComponent,
7085
- details: async () => (await import('./acorex-platform-module-document-management-client-details-view.component-DUl9ET3T.mjs')).AXMDocumentExplorerDetailsViewComponent,
7086
- 'large-icons': async () => (await import('./acorex-platform-module-document-management-client-large-icons-view.component-CuHdwWeq.mjs')).AXMDocumentExplorerLargeIconsViewComponent,
7087
- 'small-icons': async () => (await import('./acorex-platform-module-document-management-client-small-icons-view.component-jQDh6WgR.mjs')).AXMDocumentExplorerSmallIconsViewComponent,
7088
- 'attachment': async () => (await import('./acorex-platform-module-document-management-client-attachment-widget.component-D0F-BlKw.mjs')).AXMDocumentExplorerAttachmentComponent,
7159
+ list: async () => (await import('./acorex-platform-module-document-management-client-list-view.component-CSOMxbq7.mjs')).AXMDocumentExplorerListViewComponent,
7160
+ 'small-tiles': async () => (await import('./acorex-platform-module-document-management-client-small-tiles-view.component-DRDvcOMS.mjs')).AXMDocumentExplorerSmallTilesViewComponent,
7161
+ 'large-tiles': async () => (await import('./acorex-platform-module-document-management-client-large-tiles-view.component-CaKom515.mjs')).AXMDocumentExplorerLargeTilesViewComponent,
7162
+ details: async () => (await import('./acorex-platform-module-document-management-client-details-view.component-D3Jx-JvU.mjs')).AXMDocumentExplorerDetailsViewComponent,
7163
+ 'large-icons': async () => (await import('./acorex-platform-module-document-management-client-large-icons-view.component-2tP4TDuw.mjs')).AXMDocumentExplorerLargeIconsViewComponent,
7164
+ 'small-icons': async () => (await import('./acorex-platform-module-document-management-client-small-icons-view.component-B5lM6scj.mjs')).AXMDocumentExplorerSmallIconsViewComponent,
7165
+ 'attachment': async () => (await import('./acorex-platform-module-document-management-client-attachment-widget.component-DMZ_lnJb.mjs')).AXMDocumentExplorerAttachmentComponent,
7089
7166
  };
7090
7167
  this.skeletonViewMap = {
7091
- list: async () => (await import('./acorex-platform-module-document-management-client-list-view-skeleton.component-DISl1_Oq.mjs')).AXMDocumentExplorerListViewSkeletonComponent,
7092
- 'small-tiles': async () => (await import('./acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-BAX3nQvQ.mjs'))
7168
+ list: async () => (await import('./acorex-platform-module-document-management-client-list-view-skeleton.component-DgkPpiDD.mjs')).AXMDocumentExplorerListViewSkeletonComponent,
7169
+ 'small-tiles': async () => (await import('./acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-BZAtrZvj.mjs'))
7093
7170
  .AXMDocumentExplorerSmallTilesViewSkeletonComponent,
7094
7171
  'large-tiles': async () => (await Promise.resolve().then(function () { return largeTilesViewSkeleton_component; }))
7095
7172
  .AXMDocumentExplorerLargeTilesViewSkeletonComponent,
7096
7173
  details: async () => (await import('./acorex-platform-module-document-management-client-details-view-skeleton.component-BnRZrzCX.mjs')).AXMDocumentExplorerDetailsViewSkeletonComponent,
7097
- 'large-icons': async () => (await import('./acorex-platform-module-document-management-client-large-icons-view-skeleton.component-BbhvEEHA.mjs'))
7174
+ 'large-icons': async () => (await import('./acorex-platform-module-document-management-client-large-icons-view-skeleton.component-DCSLExpX.mjs'))
7098
7175
  .AXMDocumentExplorerLargeIconsViewSkeletonComponent,
7099
- 'small-icons': async () => (await import('./acorex-platform-module-document-management-client-small-icons-view-skeleton.component-rFpvlGch.mjs'))
7176
+ 'small-icons': async () => (await import('./acorex-platform-module-document-management-client-small-icons-view-skeleton.component-Ds5v0XDc.mjs'))
7100
7177
  .AXMDocumentExplorerSmallIconsViewSkeletonComponent,
7101
- attachment: async () => (await import('./acorex-platform-module-document-management-client-attachment-view-skeleton.component-BSw5qPPj.mjs'))
7178
+ attachment: async () => (await import('./acorex-platform-module-document-management-client-attachment-view-skeleton.component-D2EHMBEQ.mjs'))
7102
7179
  .AXMDocumentExplorerAttachmentViewSkeletonComponent,
7103
7180
  };
7104
7181
  this.#effect2 = effect(() => {
@@ -8457,15 +8534,15 @@ class AXMDocumentManagementModule {
8457
8534
  provideCommandSetups([
8458
8535
  {
8459
8536
  key: 'DocumentManagement.Document:Upload',
8460
- command: () => import('./acorex-platform-module-document-management-client-upload-document.command-SvlUanUP.mjs').then((c) => c.AXMUploadDocumentCommand),
8537
+ command: () => import('./acorex-platform-module-document-management-client-upload-document.command-CYeSpjOg.mjs').then((c) => c.AXMUploadDocumentCommand),
8461
8538
  },
8462
8539
  {
8463
8540
  key: 'DocumentManagement.Document:Open',
8464
- command: () => import('./acorex-platform-module-document-management-client-open-document.command-DHeVyOn1.mjs').then((c) => c.AXMOpenDocumentCommand),
8541
+ command: () => import('./acorex-platform-module-document-management-client-open-document.command-Byut3UdZ.mjs').then((c) => c.AXMOpenDocumentCommand),
8465
8542
  },
8466
8543
  {
8467
8544
  key: 'DocumentManagement.Document:Distribute',
8468
- command: () => import('./acorex-platform-module-document-management-client-distribute-document.command-DlpVqyIC.mjs').then((c) => c.AXMDistributeDocumentCommand),
8545
+ command: () => import('./acorex-platform-module-document-management-client-distribute-document.command-L420ZbsM.mjs').then((c) => c.AXMDistributeDocumentCommand),
8469
8546
  },
8470
8547
  {
8471
8548
  key: 'DocumentManagement.DocumentDistribution:SignOff',
@@ -8473,7 +8550,7 @@ class AXMDocumentManagementModule {
8473
8550
  },
8474
8551
  {
8475
8552
  key: 'DocumentManagement.Document:RequestReview',
8476
- command: () => import('./acorex-platform-module-document-management-client-request-document-review.command-DN6CupYF.mjs').then((c) => c.AXMRequestDocumentReviewCommand),
8553
+ command: () => import('./acorex-platform-module-document-management-client-request-document-review.command-C-x7A2x2.mjs').then((c) => c.AXMRequestDocumentReviewCommand),
8477
8554
  },
8478
8555
  {
8479
8556
  key: 'DocumentManagement.DocumentReview:SignOff',
@@ -8564,15 +8641,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
8564
8641
  provideCommandSetups([
8565
8642
  {
8566
8643
  key: 'DocumentManagement.Document:Upload',
8567
- command: () => import('./acorex-platform-module-document-management-client-upload-document.command-SvlUanUP.mjs').then((c) => c.AXMUploadDocumentCommand),
8644
+ command: () => import('./acorex-platform-module-document-management-client-upload-document.command-CYeSpjOg.mjs').then((c) => c.AXMUploadDocumentCommand),
8568
8645
  },
8569
8646
  {
8570
8647
  key: 'DocumentManagement.Document:Open',
8571
- command: () => import('./acorex-platform-module-document-management-client-open-document.command-DHeVyOn1.mjs').then((c) => c.AXMOpenDocumentCommand),
8648
+ command: () => import('./acorex-platform-module-document-management-client-open-document.command-Byut3UdZ.mjs').then((c) => c.AXMOpenDocumentCommand),
8572
8649
  },
8573
8650
  {
8574
8651
  key: 'DocumentManagement.Document:Distribute',
8575
- command: () => import('./acorex-platform-module-document-management-client-distribute-document.command-DlpVqyIC.mjs').then((c) => c.AXMDistributeDocumentCommand),
8652
+ command: () => import('./acorex-platform-module-document-management-client-distribute-document.command-L420ZbsM.mjs').then((c) => c.AXMDistributeDocumentCommand),
8576
8653
  },
8577
8654
  {
8578
8655
  key: 'DocumentManagement.DocumentDistribution:SignOff',
@@ -8580,7 +8657,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
8580
8657
  },
8581
8658
  {
8582
8659
  key: 'DocumentManagement.Document:RequestReview',
8583
- command: () => import('./acorex-platform-module-document-management-client-request-document-review.command-DN6CupYF.mjs').then((c) => c.AXMRequestDocumentReviewCommand),
8660
+ command: () => import('./acorex-platform-module-document-management-client-request-document-review.command-C-x7A2x2.mjs').then((c) => c.AXMRequestDocumentReviewCommand),
8584
8661
  },
8585
8662
  {
8586
8663
  key: 'DocumentManagement.DocumentReview:SignOff',
@@ -9091,9 +9168,10 @@ class AXMDocumentDriveComponent extends AXPPageLayoutBaseComponent {
9091
9168
  });
9092
9169
  const metadataFields = documentTypeIds.length > 0 ? await this.driveService.getUniqueMetadataFields(documentTypeIds) : [];
9093
9170
  for (const field of metadataFields) {
9171
+ const multiple = field.widgetOptions?.['multiple'] === true;
9094
9172
  definitions.push({
9095
- field: field.widgetPath,
9096
- operator: { type: this.getDefaultOperatorForEditor(field.widgetType) },
9173
+ field: field.widgetPath?.trim() || field.name,
9174
+ operator: { type: this.getDefaultOperatorForEditor(field.widgetType, multiple) },
9097
9175
  title: field.title,
9098
9176
  icon: this.getMetadataFieldIcon(field.widgetType),
9099
9177
  widget: {
@@ -9144,6 +9222,7 @@ class AXMDocumentDriveComponent extends AXPPageLayoutBaseComponent {
9144
9222
  case 'number-editor':
9145
9223
  return 'number-filter';
9146
9224
  case 'select-editor':
9225
+ case 'selection-list-editor':
9147
9226
  return 'select-filter';
9148
9227
  case 'date-time-editor':
9149
9228
  return 'date-filter';
@@ -9154,12 +9233,13 @@ class AXMDocumentDriveComponent extends AXPPageLayoutBaseComponent {
9154
9233
  }
9155
9234
  }
9156
9235
  /** Returns default operator type name for a given editor widget type. */
9157
- getDefaultOperatorForEditor(editorType) {
9236
+ getDefaultOperatorForEditor(editorType, multiple = false) {
9158
9237
  switch (editorType) {
9159
9238
  case 'number-editor':
9160
9239
  return 'equal';
9161
9240
  case 'select-editor':
9162
- return 'equal';
9241
+ case 'selection-list-editor':
9242
+ return multiple ? 'in' : 'equal';
9163
9243
  case 'date-time-editor':
9164
9244
  return 'equal';
9165
9245
  case 'text-editor':
@@ -9174,6 +9254,7 @@ class AXMDocumentDriveComponent extends AXPPageLayoutBaseComponent {
9174
9254
  case 'number-editor':
9175
9255
  return 'fa-hashtag';
9176
9256
  case 'select-editor':
9257
+ case 'selection-list-editor':
9177
9258
  return 'fa-list';
9178
9259
  case 'date-time-editor':
9179
9260
  return 'fa-calendar';
@@ -9383,4 +9464,4 @@ var drive_component = /*#__PURE__*/Object.freeze({
9383
9464
  */
9384
9465
 
9385
9466
  export { resolveFolderExpirationCountBadges as $, AXPDocumentExplorerViewModel as A, AXMDocumentManagerServiceImpl as B, AXMFileTypeExtensionWidgetColumnComponent as C, AXMFileTypeExtensionWidgetDesignerComponent as D, AXMFileTypeExtensionWidgetEditComponent as E, AXMFileTypeExtensionWidgetViewComponent as F, AXMFileTypeModule as G, AXMMenuProvider as H, AXMSearchCommandProvider as I, AXM_DOCUMENT_ATTACHMENT_DIALOG_ON_ACTION_HOOK_KEY as J, AXM_DOCUMENT_DIALOG_SURFACE_ATTACHMENT as K, AXM_DOCUMENT_DIALOG_SURFACE_ATTACHMENT_NO_SAVE as L, AXM_DOCUMENT_EXPIRATION_STATUS as M, AXM_DOCUMENT_EXPIRATION_STATUS_DEFINITION_KEY as N, AXPDocumentManagementSettingProvider as O, AXmFileTypeExtensionWidget as P, DM_AUDIO_EXTENSION_ICONS as Q, DM_DOCUMENT_EXTENSION_ICONS as R, DM_FILE_EXTENSION_ICONS as S, DM_FILE_TYPE_ICONS as T, DM_VIDEO_EXTENSION_ICONS as U, DOCUMENT_DRIVE_PAGE_COMPONENT_KEY as V, ScopedDriveService as W, buildDocumentManagementFileTypeCatalog as X, documentPlugin as Y, resolveDocumentExpirationBadge as Z, resolveDocumentVersionNumber as _, AXMDocumentExpirationBadgeComponent as a, AXMDocumentVersionBadgeComponent as b, AXMFolderExpirationBadgesComponent as c, collectFolderScopedMetaDataList as d, collectDocumentScopedMetaDataList as e, flattenMetaDataColumns as f, collectLookupKeys as g, collectDocumentTypeIds as h, collectDocumentTypeNames as i, AXMDocumentManagerService as j, AXMDocumentDialogService as k, buildFileChooserOptionsFromDocumentType as l, AXPDocumentManagementService as m, collectDocumentTypeKeys as n, sourcesAllowDocumentReview as o, AXMDocumentExplorerComponent as p, AXMFolderPathBreadcrumbsComponent as q, readNodeMetaDataValue as r, sourcesAllowDocumentDistribution as s, AXMDocumentDriveComponent as t, AXMDocumentDrivePageComponent as u, AXMDocumentDrivePageComponentProvider as v, AXMDocumentExpirationStatusProvider as w, AXMDocumentManagementApiService as x, AXMDocumentManagementFileTypeProvider as y, AXMDocumentManagementModule as z };
9386
- //# sourceMappingURL=acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-Dc3e3vuv.mjs.map
9467
+ //# sourceMappingURL=acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-i1lGkMQC.mjs.map