@acorex-platform/module-document-management-client 0.0.30 → 0.0.33

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 (76) hide show
  1. package/fesm2022/{acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-LQjccofO.mjs → acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-Of1L93HC.mjs} +217 -93
  2. package/fesm2022/acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-Of1L93HC.mjs.map +1 -0
  3. package/fesm2022/{acorex-platform-module-document-management-client-attachment-view-skeleton.component-CEC9HdMa.mjs → acorex-platform-module-document-management-client-attachment-view-skeleton.component-BnPCZNr3.mjs} +2 -2
  4. package/fesm2022/{acorex-platform-module-document-management-client-attachment-view-skeleton.component-CEC9HdMa.mjs.map → acorex-platform-module-document-management-client-attachment-view-skeleton.component-BnPCZNr3.mjs.map} +1 -1
  5. package/fesm2022/{acorex-platform-module-document-management-client-attachment-widget.component-CBpWl_FH.mjs → acorex-platform-module-document-management-client-attachment-widget.component-B95uSss7.mjs} +2 -2
  6. package/fesm2022/{acorex-platform-module-document-management-client-attachment-widget.component-CBpWl_FH.mjs.map → acorex-platform-module-document-management-client-attachment-widget.component-B95uSss7.mjs.map} +1 -1
  7. package/fesm2022/acorex-platform-module-document-management-client-contracts-entities-document-shortcut.mjs +154 -0
  8. package/fesm2022/acorex-platform-module-document-management-client-contracts-entities-document-shortcut.mjs.map +1 -0
  9. package/fesm2022/acorex-platform-module-document-management-client-contracts-entities-document-type.mjs +321 -0
  10. package/fesm2022/acorex-platform-module-document-management-client-contracts-entities-document-type.mjs.map +1 -0
  11. package/fesm2022/acorex-platform-module-document-management-client-contracts-entities-document.mjs +244 -0
  12. package/fesm2022/acorex-platform-module-document-management-client-contracts-entities-document.mjs.map +1 -0
  13. package/fesm2022/acorex-platform-module-document-management-client-contracts-entities-folder.mjs +236 -0
  14. package/fesm2022/acorex-platform-module-document-management-client-contracts-entities-folder.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-module-document-management-client-contracts-entity-catalog-acorex-platform-module-document-management-client-contracts-entity-catalog-Bl6_lO9-.mjs +86 -0
  16. package/fesm2022/acorex-platform-module-document-management-client-contracts-entity-catalog-acorex-platform-module-document-management-client-contracts-entity-catalog-Bl6_lO9-.mjs.map +1 -0
  17. package/fesm2022/acorex-platform-module-document-management-client-contracts-entity-catalog-document-shortcut.entity-BpGBX1CD.mjs +90 -0
  18. package/fesm2022/acorex-platform-module-document-management-client-contracts-entity-catalog-document-shortcut.entity-BpGBX1CD.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-module-document-management-client-contracts-entity-catalog-document-type.entity-D0-wHSOd.mjs +257 -0
  20. package/fesm2022/acorex-platform-module-document-management-client-contracts-entity-catalog-document-type.entity-D0-wHSOd.mjs.map +1 -0
  21. package/fesm2022/acorex-platform-module-document-management-client-contracts-entity-catalog-document.entity-BB3250Gc.mjs +180 -0
  22. package/fesm2022/acorex-platform-module-document-management-client-contracts-entity-catalog-document.entity-BB3250Gc.mjs.map +1 -0
  23. package/fesm2022/acorex-platform-module-document-management-client-contracts-entity-catalog-folder.entity-BWplP1j6.mjs +172 -0
  24. package/fesm2022/acorex-platform-module-document-management-client-contracts-entity-catalog-folder.entity-BWplP1j6.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-module-document-management-client-contracts-entity-catalog.mjs +2 -0
  26. package/fesm2022/acorex-platform-module-document-management-client-contracts-entity-catalog.mjs.map +1 -0
  27. package/fesm2022/acorex-platform-module-document-management-client-contracts.mjs +5 -4
  28. package/fesm2022/acorex-platform-module-document-management-client-contracts.mjs.map +1 -1
  29. package/fesm2022/{acorex-platform-module-document-management-client-drive-choose.component-Deduhl99.mjs → acorex-platform-module-document-management-client-drive-choose.component-Bivzrex0.mjs} +4 -4
  30. package/fesm2022/{acorex-platform-module-document-management-client-drive-choose.component-Deduhl99.mjs.map → acorex-platform-module-document-management-client-drive-choose.component-Bivzrex0.mjs.map} +1 -1
  31. package/fesm2022/{acorex-platform-module-document-management-client-large-icons-view-skeleton.component-wZG913_E.mjs → acorex-platform-module-document-management-client-large-icons-view-skeleton.component-3C4LEllG.mjs} +2 -2
  32. package/fesm2022/{acorex-platform-module-document-management-client-large-icons-view-skeleton.component-wZG913_E.mjs.map → acorex-platform-module-document-management-client-large-icons-view-skeleton.component-3C4LEllG.mjs.map} +1 -1
  33. package/fesm2022/{acorex-platform-module-document-management-client-large-icons-view.component-Bv5JFRtL.mjs → acorex-platform-module-document-management-client-large-icons-view.component-BEZhcmxY.mjs} +2 -2
  34. package/fesm2022/{acorex-platform-module-document-management-client-large-icons-view.component-Bv5JFRtL.mjs.map → acorex-platform-module-document-management-client-large-icons-view.component-BEZhcmxY.mjs.map} +1 -1
  35. package/fesm2022/{acorex-platform-module-document-management-client-large-tiles-view.component-DTEIhPcT.mjs → acorex-platform-module-document-management-client-large-tiles-view.component-TjkSRbCp.mjs} +2 -2
  36. package/fesm2022/{acorex-platform-module-document-management-client-large-tiles-view.component-DTEIhPcT.mjs.map → acorex-platform-module-document-management-client-large-tiles-view.component-TjkSRbCp.mjs.map} +1 -1
  37. package/fesm2022/acorex-platform-module-document-management-client-link-dialog.component-BsXNSpO7.mjs +77 -0
  38. package/fesm2022/acorex-platform-module-document-management-client-link-dialog.component-BsXNSpO7.mjs.map +1 -0
  39. package/fesm2022/{acorex-platform-module-document-management-client-list-view-skeleton.component-C3-7rgTu.mjs → acorex-platform-module-document-management-client-list-view-skeleton.component-Bhispx1H.mjs} +2 -2
  40. package/fesm2022/{acorex-platform-module-document-management-client-list-view-skeleton.component-C3-7rgTu.mjs.map → acorex-platform-module-document-management-client-list-view-skeleton.component-Bhispx1H.mjs.map} +1 -1
  41. package/fesm2022/{acorex-platform-module-document-management-client-list-view.component-_r7VP4i8.mjs → acorex-platform-module-document-management-client-list-view.component-BW9FdY7r.mjs} +2 -2
  42. package/fesm2022/{acorex-platform-module-document-management-client-list-view.component-_r7VP4i8.mjs.map → acorex-platform-module-document-management-client-list-view.component-BW9FdY7r.mjs.map} +1 -1
  43. package/fesm2022/acorex-platform-module-document-management-client-local-entities.mjs +32 -0
  44. package/fesm2022/acorex-platform-module-document-management-client-local-entities.mjs.map +1 -0
  45. package/fesm2022/{acorex-platform-module-document-management-client-open-document.command-BbMZf6zo.mjs → acorex-platform-module-document-management-client-open-document.command-BdXRh2Td.mjs} +2 -2
  46. package/fesm2022/{acorex-platform-module-document-management-client-open-document.command-BbMZf6zo.mjs.map → acorex-platform-module-document-management-client-open-document.command-BdXRh2Td.mjs.map} +1 -1
  47. package/fesm2022/{acorex-platform-module-document-management-client-share-dialog.component-D0D75M7u.mjs → acorex-platform-module-document-management-client-share-dialog.component-C1x8iBn3.mjs} +33 -28
  48. package/fesm2022/acorex-platform-module-document-management-client-share-dialog.component-C1x8iBn3.mjs.map +1 -0
  49. package/fesm2022/acorex-platform-module-document-management-client-share-email-dialog.component-BxCoVC5Z.mjs +58 -0
  50. package/fesm2022/acorex-platform-module-document-management-client-share-email-dialog.component-BxCoVC5Z.mjs.map +1 -0
  51. package/fesm2022/{acorex-platform-module-document-management-client-small-icons-view-skeleton.component-Dskk_B96.mjs → acorex-platform-module-document-management-client-small-icons-view-skeleton.component-kf59BPe1.mjs} +2 -2
  52. package/fesm2022/{acorex-platform-module-document-management-client-small-icons-view-skeleton.component-Dskk_B96.mjs.map → acorex-platform-module-document-management-client-small-icons-view-skeleton.component-kf59BPe1.mjs.map} +1 -1
  53. package/fesm2022/{acorex-platform-module-document-management-client-small-icons-view.component-RMDX74O9.mjs → acorex-platform-module-document-management-client-small-icons-view.component-CyZZqSpn.mjs} +2 -2
  54. package/fesm2022/{acorex-platform-module-document-management-client-small-icons-view.component-RMDX74O9.mjs.map → acorex-platform-module-document-management-client-small-icons-view.component-CyZZqSpn.mjs.map} +1 -1
  55. package/fesm2022/{acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-DQW2VZJH.mjs → acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-nBejkXcV.mjs} +2 -2
  56. package/fesm2022/{acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-DQW2VZJH.mjs.map → acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-nBejkXcV.mjs.map} +1 -1
  57. package/fesm2022/{acorex-platform-module-document-management-client-small-tiles-view.component-BT6fRWVH.mjs → acorex-platform-module-document-management-client-small-tiles-view.component-CKgUbiLE.mjs} +2 -2
  58. package/fesm2022/{acorex-platform-module-document-management-client-small-tiles-view.component-BT6fRWVH.mjs.map → acorex-platform-module-document-management-client-small-tiles-view.component-CKgUbiLE.mjs.map} +1 -1
  59. package/fesm2022/{acorex-platform-module-document-management-client-upload-document.command-CFFOw4gM.mjs → acorex-platform-module-document-management-client-upload-document.command-gJuSuiz_.mjs} +2 -2
  60. package/fesm2022/{acorex-platform-module-document-management-client-upload-document.command-CFFOw4gM.mjs.map → acorex-platform-module-document-management-client-upload-document.command-gJuSuiz_.mjs.map} +1 -1
  61. package/fesm2022/acorex-platform-module-document-management-client.mjs +1 -1
  62. package/package.json +26 -2
  63. package/types/acorex-platform-module-document-management-client-contracts-entities-document-shortcut.d.ts +8 -0
  64. package/types/acorex-platform-module-document-management-client-contracts-entities-document-type.d.ts +5 -0
  65. package/types/acorex-platform-module-document-management-client-contracts-entities-document.d.ts +9 -0
  66. package/types/acorex-platform-module-document-management-client-contracts-entities-folder.d.ts +9 -0
  67. package/types/acorex-platform-module-document-management-client-contracts-entity-catalog.d.ts +10 -0
  68. package/types/acorex-platform-module-document-management-client-contracts.d.ts +5 -4
  69. package/types/acorex-platform-module-document-management-client-local-entities.d.ts +12 -0
  70. package/types/acorex-platform-module-document-management-client.d.ts +63 -8
  71. package/fesm2022/acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-LQjccofO.mjs.map +0 -1
  72. package/fesm2022/acorex-platform-module-document-management-client-link-dialog.component-DXwE55QU.mjs +0 -68
  73. package/fesm2022/acorex-platform-module-document-management-client-link-dialog.component-DXwE55QU.mjs.map +0 -1
  74. package/fesm2022/acorex-platform-module-document-management-client-share-dialog.component-D0D75M7u.mjs.map +0 -1
  75. package/fesm2022/acorex-platform-module-document-management-client-share-email-dialog.component-CTP-r-4w.mjs +0 -54
  76. package/fesm2022/acorex-platform-module-document-management-client-share-email-dialog.component-CTP-r-4w.mjs.map +0 -1
@@ -10,27 +10,26 @@ import { AXPCommonPermissionGroupKeys, AXPCommonMenuKeys, AXPCommonCommandKeys }
10
10
  import { firstValueFrom, combineLatest } from 'rxjs';
11
11
  import { AXPCommandEventsService, AXPCommandService, AXPQueryService, provideCommandSetups } from '@acorex-platform/framework-client/runtime';
12
12
  import { AXPWidgetsList, AXPSystemStatusType, AXPStatusProvider, systemStatusToDefinition, AXPPlatformScope, AXPDataGenerator, AXP_QUERY_QUICK_SEARCH_FIELD, runtimeCommandPayloadData, runtimeQueryPayloadData, runtimeQueryCollectionData, AXPRegionalSetting, getSmart, AXP_PLATFORM_ERROR_CODES, resolvePlatformScopeKey, resolvePlatformScopeName } from '@acorex-platform/framework-shared/core';
13
- import * as i7 from '@acorex-platform/framework-client/layout/widget-core';
13
+ import * as i6 from '@acorex-platform/framework-client/layout/widget-core';
14
14
  import { AXPValueWidgetComponent, AXPWidgetCoreModule, AXP_WIDGETS_ADVANCE_CATEGORY, AXP_WIDGET_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/layout/widget-core';
15
15
  import * as i1$1 from '@acorex/core/file';
16
16
  import { AX_FILE_TYPE_METADATA_PURPOSE, AX_DOCUMENT_FILE_TYPE, AX_FILE_FILE_TYPE, AX_IMAGE_FILE_TYPE, AX_VIDEO_FILE_TYPE, AX_AUDIO_FILE_TYPE, AXFileModule, AXFileService } from '@acorex/core/file';
17
17
  import { AXDataSource } from '@acorex/cdk/common';
18
18
  import * as i3$1 from '@acorex/components/decorators';
19
19
  import { AXDecoratorModule } from '@acorex/components/decorators';
20
- import * as i3 from '@acorex/components/form';
20
+ import * as i2 from '@acorex/components/form';
21
21
  import { AXFormModule } from '@acorex/components/form';
22
- import * as i4 from '@acorex/components/label';
22
+ import * as i3 from '@acorex/components/label';
23
23
  import { AXLabelModule } from '@acorex/components/label';
24
- import * as i6 from '@acorex/components/search-box';
24
+ import * as i5 from '@acorex/components/search-box';
25
25
  import { AXSearchBoxModule } from '@acorex/components/search-box';
26
- import * as i1 from '@acorex/components/select-box';
27
- import { AXSelectBoxModule } from '@acorex/components/select-box';
28
- import * as i2 from '@angular/forms';
26
+ import { AXLookupComponent } from '@acorex/components/lookup';
27
+ import * as i1 from '@angular/forms';
29
28
  import { FormsModule } from '@angular/forms';
30
29
  import get from 'lodash-es/get';
31
30
  import isEmpty from 'lodash-es/isEmpty';
32
31
  import isString from 'lodash-es/isString';
33
- import * as i8 from '@acorex/components/accordion';
32
+ import * as i7 from '@acorex/components/accordion';
34
33
  import { AXAccordionModule } from '@acorex/components/accordion';
35
34
  import { AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY } from '@acorex-platform/framework-client/layout/widgets';
36
35
  import * as i3$2 from '@acorex/core/translation';
@@ -41,7 +40,7 @@ import { RouterModule, ActivatedRoute, ROUTES } from '@angular/router';
41
40
  import { AXDialogService } from '@acorex/components/dialog';
42
41
  import { AXPopupService } from '@acorex/components/popup';
43
42
  import { AXPLayoutBuilderService } from '@acorex-platform/framework-client/layout/builder';
44
- import { unset, isArray, castArray, defaultTo, isEmpty as isEmpty$1, set, get as get$1, isString as isString$1 } from 'lodash';
43
+ import { unset, castArray, isArray, defaultTo, isEmpty as isEmpty$1, set, get as get$1, isString as isString$1 } from 'lodash';
45
44
  import { toDocumentExpirationDate, AXM_DOCUMENT_EXPIRATION_NEAR_DAYS, getDocumentExpirationRemainingDays, AXMDocumentManagementQueryKeys } from '@acorex-platform/module-document-management-client/contracts';
46
45
  import { AXToastService } from '@acorex/components/toast';
47
46
  import { AXPPageLayoutBaseComponent, AXPPageLayoutBase, AXPPageLayoutComponent } from '@acorex-platform/framework-client/layout/views';
@@ -708,8 +707,14 @@ class AXMFileTypeExtensionWidgetEditComponent extends AXPValueWidgetComponent {
708
707
  }
709
708
  return value.trim().toLowerCase();
710
709
  }
711
- async handleValueChange(e) {
712
- const selectItems = e.component.selectedItems;
710
+ async handleSelectionChanged(e) {
711
+ const selectItems = (e.items ?? []);
712
+ await this.applySelectedItems(selectItems);
713
+ }
714
+ async handleValueChange(_e) {
715
+ // Selection side-effects are handled in handleSelectionChanged.
716
+ }
717
+ async applySelectedItems(selectItems) {
713
718
  this.setValue({ ...this.getValue(), selectedItems: selectItems });
714
719
  const types = [];
715
720
  for (const item of selectItems) {
@@ -747,14 +752,16 @@ class AXMFileTypeExtensionWidgetEditComponent extends AXPValueWidgetComponent {
747
752
  }
748
753
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMFileTypeExtensionWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
749
754
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMFileTypeExtensionWidgetEditComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: ` <div>
750
- <ax-select-box
755
+ <ax-lookup
751
756
  #dd
757
+ mode="multi-select"
752
758
  [dataSource]="dataSource"
753
759
  valueField="name"
754
760
  textField="title"
755
- [multiple]="true"
761
+ [searchable]="true"
756
762
  [ngModel]="$safeNavigationMigration(getValue()?.selectedItems)"
757
763
  (onValueChanged)="handleValueChange($event)"
764
+ (onSelectionChanged)="handleSelectionChanged($event)"
758
765
  >
759
766
  <ax-search-box
760
767
  [autoSearch]="false"
@@ -764,7 +771,7 @@ class AXMFileTypeExtensionWidgetEditComponent extends AXPValueWidgetComponent {
764
771
  >
765
772
  <ax-clear-button></ax-clear-button>
766
773
  </ax-search-box>
767
- </ax-select-box>
774
+ </ax-lookup>
768
775
  <div class="py-3"></div>
769
776
  <axp-widgets-container (onContextChanged)="handleOnContextChange($event)" [context]="context()">
770
777
  @if (selectedItemsNotEmpty().length > 0) {
@@ -817,20 +824,22 @@ class AXMFileTypeExtensionWidgetEditComponent extends AXPValueWidgetComponent {
817
824
  </ax-accordion-group>
818
825
  }
819
826
  </axp-widgets-container>
820
- </div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXSelectBoxModule }, { kind: "component", type: i1.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i3.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i4.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: 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: i6.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: i7.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i7.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXAccordionModule }, { kind: "component", type: i8.AXAccordionItemComponent, selector: "ax-accordion-item", inputs: ["isCollapsed", "icon", "textdecoration", "caption", "isLoading", "headerTemplate", "look", "disabled"], outputs: ["isCollapsedChange", "isLoadingChange", "onClick"] }, { kind: "component", type: i8.AXAccordionGroupComponent, selector: "ax-accordion-group", inputs: ["accordion", "activeIndex", "look", "collapsedOnItemClick"], outputs: ["activeIndexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
827
+ </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", "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 }); }
821
828
  }
822
829
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMFileTypeExtensionWidgetEditComponent, decorators: [{
823
830
  type: Component,
824
831
  args: [{
825
832
  template: ` <div>
826
- <ax-select-box
833
+ <ax-lookup
827
834
  #dd
835
+ mode="multi-select"
828
836
  [dataSource]="dataSource"
829
837
  valueField="name"
830
838
  textField="title"
831
- [multiple]="true"
839
+ [searchable]="true"
832
840
  [ngModel]="$safeNavigationMigration(getValue()?.selectedItems)"
833
841
  (onValueChanged)="handleValueChange($event)"
842
+ (onSelectionChanged)="handleSelectionChanged($event)"
834
843
  >
835
844
  <ax-search-box
836
845
  [autoSearch]="false"
@@ -840,7 +849,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
840
849
  >
841
850
  <ax-clear-button></ax-clear-button>
842
851
  </ax-search-box>
843
- </ax-select-box>
852
+ </ax-lookup>
844
853
  <div class="py-3"></div>
845
854
  <axp-widgets-container (onContextChanged)="handleOnContextChange($event)" [context]="context()">
846
855
  @if (selectedItemsNotEmpty().length > 0) {
@@ -896,7 +905,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
896
905
  </div>`,
897
906
  changeDetection: ChangeDetectionStrategy.OnPush,
898
907
  imports: [
899
- AXSelectBoxModule,
908
+ AXLookupComponent,
900
909
  FormsModule,
901
910
  AXFormModule,
902
911
  AXLabelModule,
@@ -1010,8 +1019,8 @@ const AXmDocumentFileTypeFilterWidget = {
1010
1019
  class AXmDocumentFileTypeFilterWidgetEditComponent extends AXPValueWidgetComponent {
1011
1020
  constructor() {
1012
1021
  super(...arguments);
1013
- this.selectBox = viewChild('selectBox', /* @ts-ignore */
1014
- ...(ngDevMode ? [{ debugName: "selectBox" }] : /* istanbul ignore next */ []));
1022
+ this.lookup = viewChild('lookup', /* @ts-ignore */
1023
+ ...(ngDevMode ? [{ debugName: "lookup" }] : /* istanbul ignore next */ []));
1015
1024
  this.fileTypeService = inject(AXPFileTypeProviderService);
1016
1025
  this.translateService = inject(AXTranslationService);
1017
1026
  this.value = computed(() => this.getValue()?.value, /* @ts-ignore */
@@ -1059,16 +1068,18 @@ class AXmDocumentFileTypeFilterWidgetEditComponent extends AXPValueWidgetCompone
1059
1068
  }
1060
1069
  }
1061
1070
  focus() {
1062
- this.selectBox()?.focus();
1071
+ this.lookup()?.focus();
1063
1072
  }
1064
1073
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXmDocumentFileTypeFilterWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1065
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXmDocumentFileTypeFilterWidgetEditComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "selectBox", first: true, predicate: ["selectBox"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
1074
+ 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: `
1066
1075
  <div class="flex items-center w-full">
1067
- <ax-select-box
1068
- #selectBox
1076
+ <ax-lookup
1077
+ #lookup
1069
1078
  class="w-full"
1079
+ mode="drop-down-list"
1070
1080
  textField="title"
1071
1081
  valueField="name"
1082
+ [searchable]="false"
1072
1083
  [placeholder]="('@general:actions.select.title' | translate | async) ?? ''"
1073
1084
  [dataSource]="dataSource"
1074
1085
  [ngModel]="value()"
@@ -1076,9 +1087,8 @@ class AXmDocumentFileTypeFilterWidgetEditComponent extends AXPValueWidgetCompone
1076
1087
  [itemTemplate]="itemTemplate"
1077
1088
  >
1078
1089
  <ax-clear-button></ax-clear-button>
1079
- </ax-select-box>
1080
- <ng-template #itemTemplate let-context>
1081
- @let item = context.data ?? context;
1090
+ </ax-lookup>
1091
+ <ng-template #itemTemplate let-item>
1082
1092
  <div class="flex items-center gap-2 w-full">
1083
1093
  @if (item.icon) {
1084
1094
  <i [class]="item.icon"></i>
@@ -1087,18 +1097,20 @@ class AXmDocumentFileTypeFilterWidgetEditComponent extends AXPValueWidgetCompone
1087
1097
  </div>
1088
1098
  </ng-template>
1089
1099
  </div>
1090
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "component", type: i1.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$2.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1100
+ `, 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", "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 }); }
1091
1101
  }
1092
1102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXmDocumentFileTypeFilterWidgetEditComponent, decorators: [{
1093
1103
  type: Component,
1094
1104
  args: [{
1095
1105
  template: `
1096
1106
  <div class="flex items-center w-full">
1097
- <ax-select-box
1098
- #selectBox
1107
+ <ax-lookup
1108
+ #lookup
1099
1109
  class="w-full"
1110
+ mode="drop-down-list"
1100
1111
  textField="title"
1101
1112
  valueField="name"
1113
+ [searchable]="false"
1102
1114
  [placeholder]="('@general:actions.select.title' | translate | async) ?? ''"
1103
1115
  [dataSource]="dataSource"
1104
1116
  [ngModel]="value()"
@@ -1106,9 +1118,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
1106
1118
  [itemTemplate]="itemTemplate"
1107
1119
  >
1108
1120
  <ax-clear-button></ax-clear-button>
1109
- </ax-select-box>
1110
- <ng-template #itemTemplate let-context>
1111
- @let item = context.data ?? context;
1121
+ </ax-lookup>
1122
+ <ng-template #itemTemplate let-item>
1112
1123
  <div class="flex items-center gap-2 w-full">
1113
1124
  @if (item.icon) {
1114
1125
  <i [class]="item.icon"></i>
@@ -1120,9 +1131,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
1120
1131
  `,
1121
1132
  standalone: true,
1122
1133
  changeDetection: ChangeDetectionStrategy.OnPush,
1123
- imports: [CommonModule, FormsModule, AXDecoratorModule, AXSelectBoxModule, AXTranslationModule],
1134
+ imports: [CommonModule, FormsModule, AXDecoratorModule, AXLookupComponent, AXTranslationModule],
1124
1135
  }]
1125
- }], propDecorators: { selectBox: [{ type: i0.ViewChild, args: ['selectBox', { isSignal: true }] }] } });
1136
+ }], propDecorators: { lookup: [{ type: i0.ViewChild, args: ['lookup', { isSignal: true }] }] } });
1126
1137
 
1127
1138
  var documentFileTypeFilterWidgetEdit_component = /*#__PURE__*/Object.freeze({
1128
1139
  __proto__: null,
@@ -2681,7 +2692,7 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
2681
2692
  * Opens the drive picker popup with consistent layout (large dialog, optional embedded header).
2682
2693
  */
2683
2694
  async openDriveFolderPicker(options) {
2684
- const comp = (await import('./acorex-platform-module-document-management-client-drive-choose.component-Deduhl99.mjs')).AXMDocumentDriveChooseComponent;
2695
+ const comp = (await import('./acorex-platform-module-document-management-client-drive-choose.component-Bivzrex0.mjs')).AXMDocumentDriveChooseComponent;
2685
2696
  const popup = await this.popupService.open(comp, {
2686
2697
  title: await this.translate.translateAsync(options.titleKey),
2687
2698
  size: 'lg',
@@ -2916,7 +2927,7 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
2916
2927
  * Shows share dialog for a node
2917
2928
  */
2918
2929
  async showShareDialog(node) {
2919
- const comp = (await import('./acorex-platform-module-document-management-client-share-dialog.component-D0D75M7u.mjs')).AXMShareDialogComponent;
2930
+ const comp = (await import('./acorex-platform-module-document-management-client-share-dialog.component-C1x8iBn3.mjs')).AXMShareDialogComponent;
2920
2931
  const popup = await this.popupService.open(comp, {
2921
2932
  title: 'Share',
2922
2933
  data: {
@@ -2931,7 +2942,7 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
2931
2942
  * Shows share via email dialog for a node
2932
2943
  */
2933
2944
  async showShareWithEmailDialog(node) {
2934
- const comp = (await import('./acorex-platform-module-document-management-client-share-email-dialog.component-CTP-r-4w.mjs')).AXMShareEmailDialogComponent;
2945
+ const comp = (await import('./acorex-platform-module-document-management-client-share-email-dialog.component-BxCoVC5Z.mjs')).AXMShareEmailDialogComponent;
2935
2946
  const popup = await this.popupService.open(comp, {
2936
2947
  title: 'Share via Email',
2937
2948
  data: {
@@ -2946,7 +2957,7 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
2946
2957
  * Shows link dialog for a node
2947
2958
  */
2948
2959
  async showLinkDialog(node) {
2949
- const comp = (await import('./acorex-platform-module-document-management-client-link-dialog.component-DXwE55QU.mjs')).AXMLinkDialogComponent;
2960
+ const comp = (await import('./acorex-platform-module-document-management-client-link-dialog.component-BsXNSpO7.mjs')).AXMLinkDialogComponent;
2950
2961
  const popup = await this.popupService.open(comp, {
2951
2962
  title: 'Share Link',
2952
2963
  data: {
@@ -2978,49 +2989,139 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
2978
2989
  return runtimeCommandPayloadData(result)?.unlocked === true;
2979
2990
  }
2980
2991
  /**
2981
- * Document types picker: keeps current selection when non-empty; otherwise defaults to the
2982
- * catalog entry whose programmatic name is `any` (mock title "Document").
2992
+ * Builds the picker rows for the folder dialogs. Rows keep every backend field and add two
2993
+ * UI-only ones that are stripped again before saving:
2994
+ * - `pickerKey`: the select `valueField`. `name` alone is not reliable because backends may only
2995
+ * project `id` on a folder's assigned document types.
2996
+ * - `displayTitle`: the resolved select `textField` label.
2983
2997
  */
2984
- initialFolderDialogDocumentTypes(items, existing) {
2985
- if (Array.isArray(existing) && existing.length > 0) {
2986
- return existing.map((entry) => {
2987
- const name = typeof entry === 'object' && entry != null && 'name' in entry ? entry.name : String(entry);
2988
- return items.find((it) => it?.name === name) ?? entry;
2989
- });
2990
- }
2991
- const anyType = items.find((it) => it?.name === 'any');
2992
- return anyType ? [anyType] : [];
2993
- }
2994
2998
  mapDocumentTypesForPicker(items) {
2995
- return items.map((it) => ({
2996
- ...it,
2997
- displayTitle: this.resolveDocumentTypeLabel(it),
2998
- }));
2999
+ return castArray(items ?? []).map((it) => this.toDocumentTypePickerRow(it));
3000
+ }
3001
+ toDocumentTypePickerRow(item) {
3002
+ const row = (item != null && typeof item === 'object' ? item : { name: item, id: item });
3003
+ return {
3004
+ ...row,
3005
+ pickerKey: this.resolveDocumentTypeKey(row),
3006
+ displayTitle: this.resolveDocumentTypeLabel(row),
3007
+ };
3008
+ }
3009
+ /** Stable identity of a document type, preferring the programmatic name over the backend id. */
3010
+ resolveDocumentTypeKey(item) {
3011
+ const name = item['name'];
3012
+ if (typeof name === 'string' && name !== '') {
3013
+ return name;
3014
+ }
3015
+ const id = item['id'] ?? item['documentTypeId'];
3016
+ return id == null ? '' : String(id);
2999
3017
  }
3018
+ /** Falls through title -> name -> id so a chip never renders blank when a title resolves empty. */
3000
3019
  resolveDocumentTypeLabel(item) {
3001
- const value = item.title ?? item.name ?? item.id;
3002
- if (value == null || value === '') {
3003
- return '';
3020
+ for (const candidate of [item['title'], item['name'], item['id']]) {
3021
+ if (candidate == null || candidate === '') {
3022
+ continue;
3023
+ }
3024
+ const resolved = typeof candidate === 'object'
3025
+ ? this.translate.resolve(candidate)
3026
+ : this.translate.resolve(String(candidate));
3027
+ if (resolved != null && resolved !== '') {
3028
+ return resolved;
3029
+ }
3030
+ }
3031
+ return '';
3032
+ }
3033
+ /**
3034
+ * Resolves a folder's assigned document types against the picker catalog.
3035
+ *
3036
+ * Assignments are matched on key, then loosely on id, because a folder response and the document
3037
+ * type list are different backend projections (ids may be numeric in one and strings in the
3038
+ * other, and a folder's entry may carry no programmatic name at all). Assignments missing from
3039
+ * the catalog are appended to the data source so the select still shows them as selected instead
3040
+ * of silently dropping them.
3041
+ *
3042
+ * With no assignment (create dialog) the catalog entry named `any` is preselected when present.
3043
+ */
3044
+ resolveFolderDialogDocumentTypes(catalog, assigned) {
3045
+ if (!isArray(assigned) || assigned.length === 0) {
3046
+ const anyType = catalog.find((it) => it['name'] === 'any');
3047
+ return { selected: anyType ? [anyType] : [], dataSource: catalog };
3048
+ }
3049
+ const dataSource = [...catalog];
3050
+ const selected = assigned.map((entry) => {
3051
+ const row = this.toDocumentTypePickerRow(entry);
3052
+ const id = row['id'] ?? row['documentTypeId'];
3053
+ const match = dataSource.find((it) => (row.pickerKey !== '' && it.pickerKey === row.pickerKey) ||
3054
+ (id != null && it['id'] != null && String(it['id']) === String(id)));
3055
+ if (match) {
3056
+ return match;
3057
+ }
3058
+ dataSource.push(row);
3059
+ return row;
3060
+ });
3061
+ return { selected, dataSource };
3062
+ }
3063
+ /** Removes the picker-only fields so only backend-owned properties are persisted. */
3064
+ toDocumentTypePayload(value) {
3065
+ if (value == null || typeof value !== 'object') {
3066
+ return value;
3067
+ }
3068
+ const row = { ...value };
3069
+ delete row['pickerKey'];
3070
+ delete row['displayTitle'];
3071
+ return row;
3072
+ }
3073
+ /** Maps a select value (row object, or `pickerKey` when the app stores primitives) to its row. */
3074
+ resolveSelectedDocumentType(value, dataSource) {
3075
+ if (value != null && typeof value === 'object') {
3076
+ return this.toDocumentTypePayload(value);
3077
+ }
3078
+ const match = dataSource.find((it) => it.pickerKey === String(value));
3079
+ return this.toDocumentTypePayload(match ?? { name: value, title: value, id: value });
3080
+ }
3081
+ /**
3082
+ * Loads persisted folder metadata for edit dialogs.
3083
+ * Explorer child nodes from a parent's embedded `folders[]` are often shallow and omit
3084
+ * `inherit` / `documentTypes`; `byKey` returns the full stored row.
3085
+ */
3086
+ async resolveFolderNodeForEdit(node) {
3087
+ try {
3088
+ const folder = await this.folderData.byKey(node.id);
3089
+ if (folder) {
3090
+ return this.mapFolderDtoToFolderNode(folder);
3091
+ }
3092
+ }
3093
+ catch {
3094
+ // Fall back to the explorer node when storage is unavailable.
3004
3095
  }
3005
- return this.translate.resolve(value);
3096
+ return node;
3097
+ }
3098
+ /** Coerces backend/explorer inherit values to a supported selection-list option. */
3099
+ normalizeFolderInherit(inherit) {
3100
+ if (inherit === 'None' || inherit === 'Inherited' || inherit === 'Extends') {
3101
+ return inherit;
3102
+ }
3103
+ return 'None';
3006
3104
  }
3007
3105
  /**
3008
3106
  * Shows folder edit dialog
3009
3107
  */
3010
3108
  async showFolderEditDialog(node) {
3109
+ const source = await this.resolveFolderNodeForEdit(node);
3011
3110
  // Load document types for selection
3012
3111
  const res = await this.documentTypeService.query({ skip: 0, take: 1000 });
3013
- const items = this.mapDocumentTypesForPicker(res?.items ?? []);
3112
+ const catalog = this.mapDocumentTypesForPicker(res?.items ?? []);
3113
+ const { selected: initialDocumentTypes, dataSource: items } = this.resolveFolderDialogDocumentTypes(catalog, source.documentTypes);
3014
3114
  const result = await this.layoutBuilder
3015
3115
  .create()
3016
3116
  .dialog((dialog) => {
3017
3117
  dialog
3018
3118
  .setTitle('@document-management:actions.update-folder')
3019
3119
  .setContext({
3020
- name: node.name,
3021
- description: node.description ?? '',
3022
- documentTypes: this.initialFolderDialogDocumentTypes(items, node.documentTypes),
3023
- color: resolveFolderColor(node.color),
3120
+ name: source.name,
3121
+ description: source.description ?? '',
3122
+ inherit: this.normalizeFolderInherit(source.inherit),
3123
+ documentTypes: initialDocumentTypes,
3124
+ color: resolveFolderColor(source.color),
3024
3125
  })
3025
3126
  .content((flex) => {
3026
3127
  flex
@@ -3032,11 +3133,23 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
3032
3133
  .formField('@general:terms.common.description', (field) => {
3033
3134
  field.path('description');
3034
3135
  field.largeTextBox({});
3136
+ })
3137
+ .formField('@document-management:terms.common.inherited', (field) => {
3138
+ field.path('inherit');
3139
+ field.selectionList({
3140
+ valueField: 'value',
3141
+ textField: 'text',
3142
+ dataSource: [
3143
+ { value: 'None', text: 'None' },
3144
+ { value: 'Inherited', text: 'Inherited' },
3145
+ { value: 'Extends', text: 'Extends' },
3146
+ ],
3147
+ });
3035
3148
  })
3036
3149
  .formField('@document-management:entities.document-types.title-plural', (field) => {
3037
3150
  field.path('documentTypes');
3038
3151
  field.selectBox({
3039
- valueField: 'name',
3152
+ valueField: 'pickerKey',
3040
3153
  textField: 'displayTitle',
3041
3154
  dataSource: items,
3042
3155
  multiple: true,
@@ -3063,12 +3176,11 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
3063
3176
  if (selected.length === 0) {
3064
3177
  return false;
3065
3178
  }
3066
- const selectedTypes = selected.map((v) => (typeof v === 'object' ? v : items.find((it) => it.name === v) || { name: v, title: v, id: v }));
3179
+ const selectedTypes = selected.map((v) => this.resolveSelectedDocumentType(v, items));
3067
3180
  await this.updateFolder(node.id, {
3068
3181
  title: form.title ?? form.name,
3069
3182
  description: form.description,
3070
- // TODO: restore inherit UI (None / Inherited / Extends) when inheritance is redesigned
3071
- inherit: 'None',
3183
+ inherit: form.inherit,
3072
3184
  documentTypes: selectedTypes,
3073
3185
  color: resolveFolderColor(form.color),
3074
3186
  });
@@ -3093,10 +3205,10 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
3093
3205
  }
3094
3206
  else {
3095
3207
  const set = new Set(allowedNames);
3096
- items = items.filter((it) => it?.name && set.has(it.name));
3208
+ items = items.filter((it) => it.pickerKey !== '' && set.has(it.pickerKey));
3097
3209
  }
3098
3210
  }
3099
- const defaultDocumentTypes = this.initialFolderDialogDocumentTypes(items, []);
3211
+ const { selected: defaultDocumentTypes } = this.resolveFolderDialogDocumentTypes(items, []);
3100
3212
  const result = await this.layoutBuilder
3101
3213
  .create()
3102
3214
  .dialog((dialog) => {
@@ -3105,6 +3217,7 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
3105
3217
  .setContext({
3106
3218
  title: '',
3107
3219
  description: '',
3220
+ inherit: 'None',
3108
3221
  documentTypes: defaultDocumentTypes,
3109
3222
  color: AXM_DEFAULT_FOLDER_COLOR,
3110
3223
  })
@@ -3118,11 +3231,23 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
3118
3231
  .formField('@general:terms.common.description', (field) => {
3119
3232
  field.path('description');
3120
3233
  field.largeTextBox({});
3234
+ })
3235
+ .formField('@document-management:terms.common.inherited', (field) => {
3236
+ field.path('inherit');
3237
+ field.selectionList({
3238
+ valueField: 'value',
3239
+ textField: 'text',
3240
+ dataSource: [
3241
+ { value: 'None', text: 'None' },
3242
+ { value: 'Inherited', text: 'Inherited' },
3243
+ { value: 'Extends', text: 'Extends' },
3244
+ ],
3245
+ });
3121
3246
  })
3122
3247
  .formField('@document-management:entities.document-types.title-plural', (field) => {
3123
3248
  field.path('documentTypes');
3124
3249
  field.selectBox({
3125
- valueField: 'name',
3250
+ valueField: 'pickerKey',
3126
3251
  textField: 'displayTitle',
3127
3252
  dataSource: items,
3128
3253
  multiple: true,
@@ -3149,7 +3274,7 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
3149
3274
  if (selectedTypesRaw.length === 0) {
3150
3275
  return null;
3151
3276
  }
3152
- const selectedTypes = selectedTypesRaw.map((v) => (typeof v === 'object' ? v : items.find((it) => it.name === v) || { name: v, title: v, id: v }));
3277
+ const selectedTypes = selectedTypesRaw.map((v) => this.resolveSelectedDocumentType(v, items));
3153
3278
  try {
3154
3279
  const folder = await this.createFolder({
3155
3280
  title: form.title,
@@ -3158,8 +3283,7 @@ class AXMDocumentManagerServiceImpl extends AXMDocumentManagerService {
3158
3283
  description: form.description,
3159
3284
  documentTypes: selectedTypes,
3160
3285
  size: 0,
3161
- // TODO: restore inherit UI (None / Inherited / Extends) when inheritance is redesigned
3162
- inherit: 'None',
3286
+ inherit: form.inherit,
3163
3287
  });
3164
3288
  return folder;
3165
3289
  }
@@ -3579,7 +3703,7 @@ const AXM_DRIVE_FILE_CHOOSER_PROVIDER = {
3579
3703
  const scope = defaultTo(context.options['scope'], AXPPlatformScope.Tenant);
3580
3704
  const multiple = Boolean(context.options['multiple']);
3581
3705
  const browseMode = defaultTo(context.options['browseMode'], 'file');
3582
- const component = (await import('./acorex-platform-module-document-management-client-drive-choose.component-Deduhl99.mjs')).AXMDocumentDriveChooseComponent;
3706
+ const component = (await import('./acorex-platform-module-document-management-client-drive-choose.component-Bivzrex0.mjs')).AXMDocumentDriveChooseComponent;
3583
3707
  const popup = await popupService.open(component, {
3584
3708
  title: await translate.translateAsync('@document-management:actions.choose-from-drive'),
3585
3709
  size: 'lg',
@@ -5714,28 +5838,28 @@ class AXMDocumentExplorerComponent {
5714
5838
  /** Drops stale async open results when the user right-clicks again before items resolve. */
5715
5839
  this.contextMenuOpenToken = 0;
5716
5840
  this.viewMap = {
5717
- list: async () => (await import('./acorex-platform-module-document-management-client-list-view.component-_r7VP4i8.mjs')).AXMDocumentExplorerListViewComponent,
5718
- 'small-tiles': async () => (await import('./acorex-platform-module-document-management-client-small-tiles-view.component-BT6fRWVH.mjs')).AXMDocumentExplorerSmallTilesViewComponent,
5719
- 'large-tiles': async () => (await import('./acorex-platform-module-document-management-client-large-tiles-view.component-DTEIhPcT.mjs')).AXMDocumentExplorerLargeTilesViewComponent,
5841
+ list: async () => (await import('./acorex-platform-module-document-management-client-list-view.component-BW9FdY7r.mjs')).AXMDocumentExplorerListViewComponent,
5842
+ 'small-tiles': async () => (await import('./acorex-platform-module-document-management-client-small-tiles-view.component-CKgUbiLE.mjs')).AXMDocumentExplorerSmallTilesViewComponent,
5843
+ 'large-tiles': async () => (await import('./acorex-platform-module-document-management-client-large-tiles-view.component-TjkSRbCp.mjs')).AXMDocumentExplorerLargeTilesViewComponent,
5720
5844
  // details: async () =>
5721
5845
  // (await import('./views/details/details-view.component')).AXMDocumentExplorerDetailsViewComponent,
5722
- 'large-icons': async () => (await import('./acorex-platform-module-document-management-client-large-icons-view.component-Bv5JFRtL.mjs')).AXMDocumentExplorerLargeIconsViewComponent,
5723
- 'small-icons': async () => (await import('./acorex-platform-module-document-management-client-small-icons-view.component-RMDX74O9.mjs')).AXMDocumentExplorerSmallIconsViewComponent,
5724
- 'attachment': async () => (await import('./acorex-platform-module-document-management-client-attachment-widget.component-CBpWl_FH.mjs')).AXMDocumentExplorerAttachmentComponent,
5846
+ 'large-icons': async () => (await import('./acorex-platform-module-document-management-client-large-icons-view.component-BEZhcmxY.mjs')).AXMDocumentExplorerLargeIconsViewComponent,
5847
+ 'small-icons': async () => (await import('./acorex-platform-module-document-management-client-small-icons-view.component-CyZZqSpn.mjs')).AXMDocumentExplorerSmallIconsViewComponent,
5848
+ 'attachment': async () => (await import('./acorex-platform-module-document-management-client-attachment-widget.component-B95uSss7.mjs')).AXMDocumentExplorerAttachmentComponent,
5725
5849
  };
5726
5850
  this.skeletonViewMap = {
5727
- list: async () => (await import('./acorex-platform-module-document-management-client-list-view-skeleton.component-C3-7rgTu.mjs')).AXMDocumentExplorerListViewSkeletonComponent,
5728
- 'small-tiles': async () => (await import('./acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-DQW2VZJH.mjs'))
5851
+ list: async () => (await import('./acorex-platform-module-document-management-client-list-view-skeleton.component-Bhispx1H.mjs')).AXMDocumentExplorerListViewSkeletonComponent,
5852
+ 'small-tiles': async () => (await import('./acorex-platform-module-document-management-client-small-tiles-view-skeleton.component-nBejkXcV.mjs'))
5729
5853
  .AXMDocumentExplorerSmallTilesViewSkeletonComponent,
5730
5854
  'large-tiles': async () => (await Promise.resolve().then(function () { return largeTilesViewSkeleton_component; }))
5731
5855
  .AXMDocumentExplorerLargeTilesViewSkeletonComponent,
5732
5856
  // details: async () =>
5733
5857
  // (await import('./views/details/details-view-skeleton.component')).AXMDocumentExplorerDetailsViewSkeletonComponent,
5734
- 'large-icons': async () => (await import('./acorex-platform-module-document-management-client-large-icons-view-skeleton.component-wZG913_E.mjs'))
5858
+ 'large-icons': async () => (await import('./acorex-platform-module-document-management-client-large-icons-view-skeleton.component-3C4LEllG.mjs'))
5735
5859
  .AXMDocumentExplorerLargeIconsViewSkeletonComponent,
5736
- 'small-icons': async () => (await import('./acorex-platform-module-document-management-client-small-icons-view-skeleton.component-Dskk_B96.mjs'))
5860
+ 'small-icons': async () => (await import('./acorex-platform-module-document-management-client-small-icons-view-skeleton.component-kf59BPe1.mjs'))
5737
5861
  .AXMDocumentExplorerSmallIconsViewSkeletonComponent,
5738
- attachment: async () => (await import('./acorex-platform-module-document-management-client-attachment-view-skeleton.component-CEC9HdMa.mjs'))
5862
+ attachment: async () => (await import('./acorex-platform-module-document-management-client-attachment-view-skeleton.component-BnPCZNr3.mjs'))
5739
5863
  .AXMDocumentExplorerAttachmentViewSkeletonComponent,
5740
5864
  };
5741
5865
  this.#effect2 = effect(() => {
@@ -5984,7 +6108,7 @@ class AXMDocumentExplorerDetailPanelComponent {
5984
6108
  this.multiSelectLabel.set(`${this.vm.selectedCount()} ${itemsSelected}`);
5985
6109
  }
5986
6110
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMDocumentExplorerDetailPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5987
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMDocumentExplorerDetailPanelComponent, isStandalone: true, selector: "axm-document-explorer-detail-panel", ngImport: i0, template: "@if (vm.hasMultipleSelectedItems() && multiSelectLabel(); as multiLabel) {\n <axp-layout-side-detail-panel [multiSelectLabel]=\"multiLabel\" (panelClose)=\"onPanelClose()\" />\n} @else {\n <axp-layout-side-detail-panel\n [header]=\"panelHeader()\"\n [sections]=\"panelSections()\"\n (panelClose)=\"onPanelClose()\"\n >\n @if (metadataWidgetNode(); as widgetNode) {\n <ng-template axpLayoutSideDetailPanelSection=\"metadata\">\n <axp-widgets-container [context]=\"metadataContext()\">\n <ng-container axp-widget-renderer [node]=\"widgetNode\" [mode]=\"'view'\"></ng-container>\n </axp-widgets-container>\n </ng-template>\n }\n </axp-layout-side-detail-panel>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i7.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i7.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "component", type: AXPLayoutSideDetailPanelComponent, selector: "axp-layout-side-detail-panel", inputs: ["multiSelectLabel", "header", "sections", "rows", "rowsSectionTitle", "noRowsMessage", "emptyState"], outputs: ["panelClose"] }, { kind: "directive", type: AXPLayoutSideDetailPanelSectionDirective, selector: "[axpLayoutSideDetailPanelSection]", inputs: ["axpLayoutSideDetailPanelSection"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
6111
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMDocumentExplorerDetailPanelComponent, isStandalone: true, selector: "axm-document-explorer-detail-panel", ngImport: i0, template: "@if (vm.hasMultipleSelectedItems() && multiSelectLabel(); as multiLabel) {\n <axp-layout-side-detail-panel [multiSelectLabel]=\"multiLabel\" (panelClose)=\"onPanelClose()\" />\n} @else {\n <axp-layout-side-detail-panel\n [header]=\"panelHeader()\"\n [sections]=\"panelSections()\"\n (panelClose)=\"onPanelClose()\"\n >\n @if (metadataWidgetNode(); as widgetNode) {\n <ng-template axpLayoutSideDetailPanelSection=\"metadata\">\n <axp-widgets-container [context]=\"metadataContext()\">\n <ng-container axp-widget-renderer [node]=\"widgetNode\" [mode]=\"'view'\"></ng-container>\n </axp-widgets-container>\n </ng-template>\n }\n </axp-layout-side-detail-panel>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXTranslationModule }, { 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: "component", type: AXPLayoutSideDetailPanelComponent, selector: "axp-layout-side-detail-panel", inputs: ["multiSelectLabel", "header", "sections", "rows", "rowsSectionTitle", "noRowsMessage", "emptyState"], outputs: ["panelClose"] }, { kind: "directive", type: AXPLayoutSideDetailPanelSectionDirective, selector: "[axpLayoutSideDetailPanelSection]", inputs: ["axpLayoutSideDetailPanelSection"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
5988
6112
  }
5989
6113
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMDocumentExplorerDetailPanelComponent, decorators: [{
5990
6114
  type: Component,
@@ -6955,11 +7079,11 @@ class AXMDocumentManagementModule {
6955
7079
  provideCommandSetups([
6956
7080
  {
6957
7081
  key: 'DocumentManagement.Document:Upload',
6958
- command: () => import('./acorex-platform-module-document-management-client-upload-document.command-CFFOw4gM.mjs').then((c) => c.AXMUploadDocumentCommand),
7082
+ command: () => import('./acorex-platform-module-document-management-client-upload-document.command-gJuSuiz_.mjs').then((c) => c.AXMUploadDocumentCommand),
6959
7083
  },
6960
7084
  {
6961
7085
  key: 'DocumentManagement.Document:Open',
6962
- command: () => import('./acorex-platform-module-document-management-client-open-document.command-BbMZf6zo.mjs').then((c) => c.AXMOpenDocumentCommand),
7086
+ command: () => import('./acorex-platform-module-document-management-client-open-document.command-BdXRh2Td.mjs').then((c) => c.AXMOpenDocumentCommand),
6963
7087
  },
6964
7088
  ]),
6965
7089
  ], imports: [AXMDriveChooseModule,
@@ -7052,11 +7176,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
7052
7176
  provideCommandSetups([
7053
7177
  {
7054
7178
  key: 'DocumentManagement.Document:Upload',
7055
- command: () => import('./acorex-platform-module-document-management-client-upload-document.command-CFFOw4gM.mjs').then((c) => c.AXMUploadDocumentCommand),
7179
+ command: () => import('./acorex-platform-module-document-management-client-upload-document.command-gJuSuiz_.mjs').then((c) => c.AXMUploadDocumentCommand),
7056
7180
  },
7057
7181
  {
7058
7182
  key: 'DocumentManagement.Document:Open',
7059
- command: () => import('./acorex-platform-module-document-management-client-open-document.command-BbMZf6zo.mjs').then((c) => c.AXMOpenDocumentCommand),
7183
+ command: () => import('./acorex-platform-module-document-management-client-open-document.command-BdXRh2Td.mjs').then((c) => c.AXMOpenDocumentCommand),
7060
7184
  },
7061
7185
  ]),
7062
7186
  ],
@@ -7846,4 +7970,4 @@ var drive_component = /*#__PURE__*/Object.freeze({
7846
7970
  */
7847
7971
 
7848
7972
  export { AXPDocumentExplorerViewModel as A, AXM_DOCUMENT_EXPIRATION_STATUS_DEFINITION_KEY as B, AXPDocumentManagementService as C, AXPDocumentManagementSettingProvider as D, AXmFileTypeExtensionWidget as E, DM_AUDIO_EXTENSION_ICONS as F, DM_DOCUMENT_EXTENSION_ICONS as G, DM_FILE_EXTENSION_ICONS as H, DM_FILE_TYPE_ICONS as I, DM_VIDEO_EXTENSION_ICONS as J, DOCUMENT_DRIVE_PAGE_COMPONENT_KEY as K, buildDocumentManagementFileTypeCatalog as L, documentPlugin as M, resolveDocumentExpirationBadge as N, resolveFolderExpirationCountBadges as O, ScopedDriveService as S, AXMDocumentExpirationBadgeComponent as a, AXMFolderExpirationBadgesComponent as b, AXMDocumentManagerService as c, AXMDocumentDialogService as d, buildFileChooserOptionsFromDocumentType as e, AXMDocumentExplorerComponent as f, AXMFolderPathBreadcrumbsComponent as g, AXMDocumentDriveComponent as h, AXMDocumentDrivePageComponent as i, AXMDocumentDrivePageComponentProvider as j, AXMDocumentExpirationStatusProvider as k, AXMDocumentManagementApiService as l, AXMDocumentManagementFileTypeProvider as m, AXMDocumentManagementModule as n, AXMDocumentManagerServiceImpl as o, AXMFileTypeExtensionWidgetColumnComponent as p, AXMFileTypeExtensionWidgetDesignerComponent as q, AXMFileTypeExtensionWidgetEditComponent as r, AXMFileTypeExtensionWidgetViewComponent as s, AXMFileTypeModule as t, AXMMenuProvider as u, AXMSearchCommandProvider as v, AXM_DOCUMENT_ATTACHMENT_DIALOG_ON_ACTION_HOOK_KEY as w, AXM_DOCUMENT_DIALOG_SURFACE_ATTACHMENT as x, AXM_DOCUMENT_DIALOG_SURFACE_ATTACHMENT_NO_SAVE as y, AXM_DOCUMENT_EXPIRATION_STATUS as z };
7849
- //# sourceMappingURL=acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-LQjccofO.mjs.map
7973
+ //# sourceMappingURL=acorex-platform-module-document-management-client-acorex-platform-module-document-management-client-Of1L93HC.mjs.map