@acorex/platform 21.0.0-next.37 → 21.0.0-next.39

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 (37) hide show
  1. package/fesm2022/acorex-platform-common.mjs +19 -1
  2. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  3. package/fesm2022/acorex-platform-core.mjs +11 -172
  4. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-layout-builder.mjs +7 -8
  6. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-layout-components.mjs +39 -29
  8. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-layout-designer.mjs +8 -9
  10. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-entity.mjs +468 -255
  12. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-views.mjs +171 -86
  14. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-layout-widget-core.mjs +36 -13
  16. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  17. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs → acorex-platform-layout-widgets-file-list-popup.component-CDYAGBku.mjs} +5 -60
  18. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CDYAGBku.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-layout-widgets.mjs +101 -128
  20. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-themes-default.mjs +16 -4
  22. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-workflow.mjs +25 -5
  24. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  25. package/package.json +1 -1
  26. package/types/acorex-platform-common.d.ts +11 -6
  27. package/types/acorex-platform-core.d.ts +56 -101
  28. package/types/acorex-platform-layout-builder.d.ts +0 -1
  29. package/types/acorex-platform-layout-components.d.ts +4 -3
  30. package/types/acorex-platform-layout-designer.d.ts +1 -1
  31. package/types/acorex-platform-layout-entity.d.ts +36 -30
  32. package/types/acorex-platform-layout-views.d.ts +31 -29
  33. package/types/acorex-platform-layout-widget-core.d.ts +30 -14
  34. package/types/acorex-platform-layout-widgets.d.ts +17 -11
  35. package/types/acorex-platform-themes-default.d.ts +1 -0
  36. package/types/acorex-platform-workflow.d.ts +28 -51
  37. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs.map +0 -1
@@ -6,12 +6,13 @@ import { AXClickEvent } from '@acorex/cdk/common';
6
6
  import * as i1 from '@acorex/cdk/drawer';
7
7
  import { AXDrawerItemDirective } from '@acorex/cdk/drawer';
8
8
  import * as _acorex_platform_core from '@acorex/platform/core';
9
- import { AXPActionMenuItem, AXPBreadcrumbItem, AXPBadge, AXPPageStatus, AXPBackButton, AXPExecuteCommand, AXPDeviceService, AXPExecuteCommandResult, AXPExpressionEvaluatorScope, AXPBroadcastEventService, AXPContextChangeEvent } from '@acorex/platform/core';
9
+ import { AXPActionMenuItem, AXPBreadcrumbItem, AXPMultiLanguageString, AXPBadge, AXPPageStatus, AXPBackButton, AXPExecuteCommand, AXPDeviceService, AXPExecuteCommandResult, AXPExpressionEvaluatorScope, AXPBroadcastEventService, AXPContextChangeEvent } from '@acorex/platform/core';
10
10
  import { AXPCommandService, AXPPolicyEngineService } from '@acorex/platform/runtime';
11
11
  import { AXPWorkflowService } from '@acorex/platform/workflow';
12
+ import * as _acorex_core_translation from '@acorex/core/translation';
13
+ import { AXTranslationService } from '@acorex/core/translation';
12
14
  import { AXToastService } from '@acorex/components/toast';
13
15
  import { AXFormatService } from '@acorex/core/format';
14
- import { AXTranslationService } from '@acorex/core/translation';
15
16
  import { AXPSessionService } from '@acorex/platform/auth';
16
17
  import { AXPHomePageService } from '@acorex/platform/common';
17
18
  import { AXBasePageComponent } from '@acorex/components/page';
@@ -30,12 +31,12 @@ declare abstract class AXPPageLayoutBase {
30
31
  abstract hasSecondaryActions: Signal<boolean>;
31
32
  abstract hasActions: Signal<boolean>;
32
33
  abstract breadcrumbs: Signal<AXPBreadcrumbItem[]>;
33
- abstract title: Signal<string>;
34
+ abstract title: Signal<AXPMultiLanguageString>;
34
35
  abstract titleIcon: Signal<string | null>;
35
36
  abstract hasTitle: Signal<boolean>;
36
37
  abstract hasTitleIcon: Signal<boolean>;
37
38
  abstract hasDescription: Signal<boolean>;
38
- abstract description: Signal<string | null>;
39
+ abstract description: Signal<AXPMultiLanguageString | null>;
39
40
  abstract hasBreadcrumbs: Signal<boolean>;
40
41
  abstract hasBadge: Signal<boolean>;
41
42
  abstract badge: Signal<AXPBadge | null>;
@@ -176,15 +177,15 @@ declare abstract class AXPPageLayoutBaseComponent implements AXPPageLayoutBase {
176
177
  protected updateTrigger: _angular_core.Signal<number>;
177
178
  protected recompute(): void;
178
179
  ngOnInit(): Promise<void>;
179
- title: _angular_core.WritableSignal<string>;
180
+ title: _angular_core.WritableSignal<_acorex_core_translation.AXMultiLanguageString>;
180
181
  titleIcon: _angular_core.WritableSignal<string | null>;
181
- protected getPageTitle(): string | Promise<string>;
182
+ protected getPageTitle(): AXPMultiLanguageString | Promise<AXPMultiLanguageString>;
182
183
  protected getPageIcon(): string | null | Promise<string | null>;
183
184
  hasTitle: _angular_core.Signal<boolean>;
184
185
  hasTitleIcon: _angular_core.Signal<boolean>;
185
- description: _angular_core.WritableSignal<string | null>;
186
+ description: _angular_core.WritableSignal<_acorex_core_translation.AXMultiLanguageString | null>;
186
187
  hasDescription: _angular_core.Signal<boolean>;
187
- protected getPageDescription(): string | null | Promise<string | null>;
188
+ protected getPageDescription(): AXPMultiLanguageString | null | Promise<AXPMultiLanguageString | null>;
188
189
  private defaultBreadCrumbs;
189
190
  breadcrumbs: _angular_core.WritableSignal<AXPBreadcrumbItem[]>;
190
191
  hasBreadcrumbs: _angular_core.Signal<boolean>;
@@ -389,9 +390,9 @@ interface AXPLayoutDetailsViewTabItem {
389
390
  }
390
391
  interface AXPLayoutDetailsViewPage {
391
392
  id: string;
392
- title: string;
393
- label: string;
394
- description?: string;
393
+ title: AXPMultiLanguageString;
394
+ label: AXPMultiLanguageString;
395
+ description?: AXPMultiLanguageString;
395
396
  icon?: string;
396
397
  /**
397
398
  * Content can be either widget nodes or component references
@@ -431,9 +432,9 @@ interface AXPLayoutDetailsViewPage {
431
432
  }
432
433
  interface AXPLayoutDetailsViewAdapter {
433
434
  name: string;
434
- title?: string;
435
- label?: string;
436
- description?: string;
435
+ title?: AXPMultiLanguageString;
436
+ label?: AXPMultiLanguageString;
437
+ description?: AXPMultiLanguageString;
437
438
  icon?: string;
438
439
  actions?: AXPLayoutDetailsViewAction[];
439
440
  breadcrumbs?: AXPBreadcrumbItem[];
@@ -480,8 +481,6 @@ declare const AXPLayoutDetailsViewViewModel: _angular_core.Type<{
480
481
  load: (adapter: AXPLayoutDetailsViewAdapter) => Promise<void>;
481
482
  updateContext: (context: any) => void;
482
483
  updatePageSelectedRows: (rows: any[]) => void;
483
- currentPageTitle: () => string | null;
484
- currentPageDescription: () => string | null;
485
484
  currentPagePrimaryActions: () => Promise<any>;
486
485
  currentPageSecondaryActions: () => Promise<any>;
487
486
  currentPageContent: () => AXPWidgetNode[];
@@ -491,13 +490,16 @@ declare const AXPLayoutDetailsViewViewModel: _angular_core.Type<{
491
490
  getCurrentTabContent: () => AXPWidgetNode[];
492
491
  getRenderedTabContent: (tabId: string) => AXPWidgetNode[];
493
492
  clearPageTabCache: (pageId: string) => void;
494
- title: () => string | null;
495
- backButtonTitle: () => string | null;
496
- description: () => string | null;
493
+ backButtonTitle: () => _acorex_core_translation.AXMultiLanguageString;
494
+ getPageTitle: () => Promise<AXPMultiLanguageString>;
495
+ getPageDescription: () => Promise<AXPMultiLanguageString | null>;
496
+ getBackButton: () => Promise<AXPBackButton | null>;
497
+ getPageBadge: () => Promise<AXPBadge | null>;
498
+ getPageStatus: () => Promise<AXPPageStatus | null>;
497
499
  primaryActions: () => Promise<any>;
498
500
  secondaryActions: () => Promise<any>;
499
501
  breadcrumbs: () => Promise<{
500
- title: string;
502
+ title: _acorex_core_translation.AXMultiLanguageString;
501
503
  name?: string;
502
504
  icon?: string;
503
505
  command?: AXPExecuteCommand;
@@ -561,8 +563,6 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
561
563
  load: (adapter: AXPLayoutDetailsViewAdapter) => Promise<void>;
562
564
  updateContext: (context: any) => void;
563
565
  updatePageSelectedRows: (rows: any[]) => void;
564
- currentPageTitle: () => string | null;
565
- currentPageDescription: () => string | null;
566
566
  currentPagePrimaryActions: () => Promise<any>;
567
567
  currentPageSecondaryActions: () => Promise<any>;
568
568
  currentPageContent: () => _acorex_platform_layout_widget_core.AXPWidgetNode[];
@@ -572,13 +572,16 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
572
572
  getCurrentTabContent: () => _acorex_platform_layout_widget_core.AXPWidgetNode[];
573
573
  getRenderedTabContent: (tabId: string) => _acorex_platform_layout_widget_core.AXPWidgetNode[];
574
574
  clearPageTabCache: (pageId: string) => void;
575
- title: () => string | null;
576
- backButtonTitle: () => string | null;
577
- description: () => string | null;
575
+ backButtonTitle: () => _acorex_core_translation.AXMultiLanguageString;
576
+ getPageTitle: () => Promise<AXPMultiLanguageString>;
577
+ getPageDescription: () => Promise<AXPMultiLanguageString | null>;
578
+ getBackButton: () => Promise<AXPBackButton | null>;
579
+ getPageBadge: () => Promise<AXPBadge | null>;
580
+ getPageStatus: () => Promise<AXPPageStatus | null>;
578
581
  primaryActions: () => Promise<any>;
579
582
  secondaryActions: () => Promise<any>;
580
583
  breadcrumbs: () => Promise<{
581
- title: string;
584
+ title: _acorex_core_translation.AXMultiLanguageString;
582
585
  name?: string;
583
586
  icon?: string;
584
587
  command?: AXPExecuteCommand;
@@ -607,7 +610,6 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
607
610
  protected route: ActivatedRoute;
608
611
  protected eventService: AXPBroadcastEventService;
609
612
  protected deviceService: AXPDeviceService;
610
- private settingsService;
611
613
  private onSelectionChangeSubscription?;
612
614
  private readonly destroyed$;
613
615
  protected form: _angular_core.Signal<AXFormComponent | undefined>;
@@ -634,8 +636,8 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
634
636
  getSecondaryMenuItems(): Promise<AXPActionMenuItem[]>;
635
637
  protected getFooterSecondaryActions(): Promise<AXPActionMenuItem[]>;
636
638
  protected getPageBreadcrumbs(): Promise<AXPBreadcrumbItem[]>;
637
- protected getPageTitle(): Promise<string>;
638
- getPageDescription(): Promise<string | null>;
639
+ protected getPageTitle(): Promise<AXPMultiLanguageString>;
640
+ getPageDescription(): Promise<AXPMultiLanguageString | null>;
639
641
  getBackButton(): Promise<AXPBackButton | null>;
640
642
  getPageBadge(): Promise<AXPBadge | null>;
641
643
  getPageStatus(): Promise<AXPPageStatus | null>;
@@ -3,7 +3,7 @@ import { Signal, InjectionToken, ComponentRef, OnInit, EventEmitter, TemplateRef
3
3
  import * as _acorex_platform_layout_widget_core from '@acorex/platform/layout/widget-core';
4
4
  import * as _ngrx_signals from '@ngrx/signals';
5
5
  import * as _acorex_platform_core from '@acorex/platform/core';
6
- import { AXPMultiLanguageString, AXPOptionsData, AXPDataType, AXPExpression, AXPWidgetTriggers, AXPMetaData, AXPValueTransformerFunctions, AXPValidationRules, AXPPartialNested, AXPContextChangeEvent, AXPExpressionEvaluatorService } from '@acorex/platform/core';
6
+ import { AXPMultiLanguageString, AXPOptionsData, AXPDataType, AXPExpression, AXPWidgetTriggers, AXPMetaData, AXPValueTransformerFunctions, AXPValidationRules, AXPPartialNested, AXPContextChangeEvent, AXPExpressionEvaluatorService, AXPProperty } from '@acorex/platform/core';
7
7
  import { AXValueChangedEvent, AXDataSource } from '@acorex/cdk/common';
8
8
  import { Subject, BehaviorSubject } from 'rxjs';
9
9
  import { AXDataTableColumnComponent } from '@acorex/components/data-table';
@@ -189,16 +189,6 @@ interface AXPWidgetTypesMap {
189
189
  betweenValidation: 'between-validation';
190
190
  equalValidation: 'equal-validation';
191
191
  callbackValidation: 'callback-validation';
192
- donutChart: 'donut-chart';
193
- barChart: 'bar-chart';
194
- lineChart: 'line-chart';
195
- gaugeChart: 'gauge-chart';
196
- stickyNote: 'sticky-note';
197
- clockCalendar: 'clock-calendar';
198
- analogClock: 'analog-clock';
199
- weather: 'weather';
200
- minimalWeather: 'minimal-weather';
201
- advancedWeather: 'advanced-weather';
202
192
  metaData: 'meta-data-editor';
203
193
  templateEditor: 'template-box-editor';
204
194
  templateContentEditor: 'template-content-editor';
@@ -212,7 +202,6 @@ interface AXPWidgetTypesMap {
212
202
  themeColorChooser: 'theme-color-chooser';
213
203
  panel: 'panel';
214
204
  notification: 'notification';
215
- taskBoard: 'task-board';
216
205
  comment: 'comment';
217
206
  list: 'list-editor';
218
207
  dataList: 'data-list';
@@ -1070,6 +1059,33 @@ interface AXPMetaDataDefinition {
1070
1059
 
1071
1060
  declare const AXPWidgetsCatalog: AXPWidgetTypesMap;
1072
1061
 
1062
+ /**
1063
+ * Maps a platform {@link AXPProperty} to a property viewer row model ({@link AXPWidgetProperty}).
1064
+ * Kept in widget-core (not platform/core) to avoid a dependency cycle: widget-core already depends on platform/core.
1065
+ */
1066
+ interface MapAXPPropertyToWidgetPropertyOptions {
1067
+ group: AXPWidgetPropertyGroup;
1068
+ order: number;
1069
+ /**
1070
+ * Dot path prefix for {@link AXPWidgetProperty.schema.interface.path}.
1071
+ * Example: `input` → `input.requestId`; `properties` → `properties.message`.
1072
+ */
1073
+ valuePathPrefix: string;
1074
+ /**
1075
+ * Resolves a display title (supports multi-language strings on the source property).
1076
+ */
1077
+ resolveTitle: (property: AXPProperty) => string;
1078
+ /**
1079
+ * Optional description line for the viewer row.
1080
+ */
1081
+ resolveDescription?: (property: AXPProperty) => string | undefined;
1082
+ }
1083
+ /**
1084
+ * Converts a domain {@link AXPProperty} into a {@link AXPWidgetProperty} row for
1085
+ * the layout property viewer (`AXPPropertyViewerService` and `buildPropertyViewerTabsFromProperties`).
1086
+ */
1087
+ declare function mapAXPPropertyToWidgetProperty(property: AXPProperty, options: MapAXPPropertyToWidgetPropertyOptions): AXPWidgetProperty;
1088
+
1073
1089
  /**
1074
1090
  * True when the widget declares the AI category (see {@link AXP_WIDGETS_AI_CATEGORY}).
1075
1091
  */
@@ -1082,5 +1098,5 @@ declare function hasAiWidgetCategory(config: AXPWidgetConfig): boolean;
1082
1098
  */
1083
1099
  declare function isWidgetAiCatalogIncluded(config: AXPWidgetConfig): boolean;
1084
1100
 
1085
- export { AXPBaseWidgetComponent, AXPBlockBaseLayoutWidgetComponent, AXPBoxModelLayoutWidgetComponent, AXPColumnWidgetComponent, AXPDataListWidgetComponent, AXPFlexBaseLayoutWidgetComponent, AXPFlexItemBaseLayoutWidgetComponent, AXPGridBaseLayoutWidgetComponent, AXPGridItemBaseLayoutWidgetComponent, AXPInlineBaseLayoutWidgetComponent, AXPLayoutBaseWidgetComponent, AXPPageStatus, AXPPropertyEditorHelper, AXPTableBaseLayoutWidgetComponent, AXPTableItemBaseLayoutWidgetComponent, AXPTableItemOpsBaseLayoutWidgetComponent, AXPValueWidgetComponent, AXPWidgetColumnRendererComponent, AXPWidgetContainerComponent, AXPWidgetCoreElement, AXPWidgetCoreModule, AXPWidgetCoreService, AXPWidgetGroupEnum, AXPWidgetRegistryService, AXPWidgetRendererDirective, AXPWidgetSerializationHelper, AXPWidgetStatus, AXPWidgetsCatalog, AXP_WIDGETS_ACTION_CATEGORY, AXP_WIDGETS_ADVANCE_CATEGORY, AXP_WIDGETS_AI_CATEGORY, AXP_WIDGETS_CATEGORIES, AXP_WIDGETS_EDITOR_CATEGORY, AXP_WIDGETS_LAYOUT_CATEGORY, AXP_WIDGET_COLUMN_TOKEN, AXP_WIDGET_DEFINITION_PROVIDER, AXP_WIDGET_TOKEN, buildWidgetRegistryMapFromProviders, cloneProperty, createBooleanProperty, createNumberProperty, createSelectProperty, createStringProperty, findNonEmptyBreakpoints, hasAiWidgetCategory, isWidgetAiCatalogIncluded, normalizeWidgetCategories };
1086
- export type { AXPBorderBox, AXPBorderBoxString, AXPBreakpointValues, AXPBreakpoints, AXPClassMap, AXPExtendedWidget, AXPExtractWidgetConfig, AXPFlexBoxString, AXPFlexItemBoxString, AXPGridBoxString, AXPGridBreakpointValues, AXPGridItemBoxString, AXPLayoutBuilderStatusChangedEvent, AXPMetaDataDefinition, AXPMetaDataFeatures, AXPPropertyCorners, AXPPropertyEditorCornerValues, AXPPropertyEditorSideGeneric, AXPPropertyEditorSideValues, AXPPropertySides, AXPSpacingBox, AXPSpacingBoxString, AXPStyleMap, AXPWidgetAiCatalogMode, AXPWidgetCategory, AXPWidgetColumnNode, AXPWidgetColumnNodeToken, AXPWidgetComponentConfig, AXPWidgetConfig, AXPWidgetConfigComponents, AXPWidgetCoreElementAPI, AXPWidgetCoreElementAction, AXPWidgetCoreModuleConfigs, AXPWidgetDefinitionProvider, AXPWidgetDesignerOptionsMap, AXPWidgetGroup, AXPWidgetNode, AXPWidgetNodeToken, AXPWidgetProperty, AXPWidgetPropertyGroup, AXPWidgetRenderMode, AXPWidgetRendererDirectiveOptions, AXPWidgetTypesMap, AXPWidgetViewType };
1101
+ export { AXPBaseWidgetComponent, AXPBlockBaseLayoutWidgetComponent, AXPBoxModelLayoutWidgetComponent, AXPColumnWidgetComponent, AXPDataListWidgetComponent, AXPFlexBaseLayoutWidgetComponent, AXPFlexItemBaseLayoutWidgetComponent, AXPGridBaseLayoutWidgetComponent, AXPGridItemBaseLayoutWidgetComponent, AXPInlineBaseLayoutWidgetComponent, AXPLayoutBaseWidgetComponent, AXPPageStatus, AXPPropertyEditorHelper, AXPTableBaseLayoutWidgetComponent, AXPTableItemBaseLayoutWidgetComponent, AXPTableItemOpsBaseLayoutWidgetComponent, AXPValueWidgetComponent, AXPWidgetColumnRendererComponent, AXPWidgetContainerComponent, AXPWidgetCoreElement, AXPWidgetCoreModule, AXPWidgetCoreService, AXPWidgetGroupEnum, AXPWidgetRegistryService, AXPWidgetRendererDirective, AXPWidgetSerializationHelper, AXPWidgetStatus, AXPWidgetsCatalog, AXP_WIDGETS_ACTION_CATEGORY, AXP_WIDGETS_ADVANCE_CATEGORY, AXP_WIDGETS_AI_CATEGORY, AXP_WIDGETS_CATEGORIES, AXP_WIDGETS_EDITOR_CATEGORY, AXP_WIDGETS_LAYOUT_CATEGORY, AXP_WIDGET_COLUMN_TOKEN, AXP_WIDGET_DEFINITION_PROVIDER, AXP_WIDGET_TOKEN, buildWidgetRegistryMapFromProviders, cloneProperty, createBooleanProperty, createNumberProperty, createSelectProperty, createStringProperty, findNonEmptyBreakpoints, hasAiWidgetCategory, isWidgetAiCatalogIncluded, mapAXPPropertyToWidgetProperty, normalizeWidgetCategories };
1102
+ export type { AXPBorderBox, AXPBorderBoxString, AXPBreakpointValues, AXPBreakpoints, AXPClassMap, AXPExtendedWidget, AXPExtractWidgetConfig, AXPFlexBoxString, AXPFlexItemBoxString, AXPGridBoxString, AXPGridBreakpointValues, AXPGridItemBoxString, AXPLayoutBuilderStatusChangedEvent, AXPMetaDataDefinition, AXPMetaDataFeatures, AXPPropertyCorners, AXPPropertyEditorCornerValues, AXPPropertyEditorSideGeneric, AXPPropertyEditorSideValues, AXPPropertySides, AXPSpacingBox, AXPSpacingBoxString, AXPStyleMap, AXPWidgetAiCatalogMode, AXPWidgetCategory, AXPWidgetColumnNode, AXPWidgetColumnNodeToken, AXPWidgetComponentConfig, AXPWidgetConfig, AXPWidgetConfigComponents, AXPWidgetCoreElementAPI, AXPWidgetCoreElementAction, AXPWidgetCoreModuleConfigs, AXPWidgetDefinitionProvider, AXPWidgetDesignerOptionsMap, AXPWidgetGroup, AXPWidgetNode, AXPWidgetNodeToken, AXPWidgetProperty, AXPWidgetPropertyGroup, AXPWidgetRenderMode, AXPWidgetRendererDirectiveOptions, AXPWidgetTypesMap, AXPWidgetViewType, MapAXPPropertyToWidgetPropertyOptions };
@@ -5,7 +5,7 @@ import { OnInit, WritableSignal, InjectionToken, EventEmitter, Signal, OnDestroy
5
5
  import { AXValueChangedEvent, AXDataSourceFilterOption, AXStyleColorType, AXClickEvent, AXStyleLookType, AXDataSource, AXDirection, AXButtonClickEvent } from '@acorex/cdk/common';
6
6
  import { AXBasePageComponent } from '@acorex/components/page';
7
7
  import * as _acorex_platform_core from '@acorex/platform/core';
8
- import { AXPDeviceService, AXPContextChangeEvent, AXPFilterClause, AXPFilterDefinition, AXPValidationRule, AXPTag, AXPFileListItem, AXPExpressionEvaluatorService, AXPExecuteCommandResult, AXPMultiLanguageString, AXPActionMenuItem, AXPDataSourceDefinition } from '@acorex/platform/core';
8
+ import { AXPDeviceService, AXPContextChangeEvent, AXPFilterClause, AXPFilterDefinition, AXPValidationRule, AXPTag, AXPFileListItem, AXPExpressionEvaluatorService, AXPExecuteCommandResult, AXPActionMenuItem, AXPDataSourceDefinition } from '@acorex/platform/core';
9
9
  import { AXSelectBoxComponent } from '@acorex/components/select-box';
10
10
  import { AXPClipBoardService, AXPLanguage, AXCFileUploaderCapabilities, AXCFileUploaderAction, AXPStatusDefinition, AXPStatusTransition, AXPStatusProvider } from '@acorex/platform/common';
11
11
  import { AXDropListDroppedEvent } from '@acorex/cdk/drag-drop';
@@ -27,6 +27,7 @@ import { AXQrcodeLevel, AXQrcodeOutputType } from '@acorex/components/qrcode';
27
27
  import { AXSchedulerPickerValue, AXSchedulerPickerSettings } from '@acorex/components/scheduler-picker';
28
28
  import { AXPaintContainerComponent, AXPaintViewComponent } from '@acorex/components/paint';
29
29
  import { AXPopoverComponent } from '@acorex/components/popover';
30
+ import * as _acorex_core_translation from '@acorex/core/translation';
30
31
  import { AXGridLayoutOptions, AXGridLayoutNode } from '@acorex/components/grid-layout-builder';
31
32
  import * as _acorex_platform_layout_widgets from '@acorex/platform/layout/widgets';
32
33
  import { AXStepWizardComponent } from '@acorex/components/step-wizard';
@@ -1183,7 +1184,6 @@ declare class AXPLargeTextWidgetEditComponent extends AXPValueWidgetComponent<st
1183
1184
  protected rows: _angular_core.Signal<number>;
1184
1185
  private popupService;
1185
1186
  private translationService;
1186
- private readonly mlResolver;
1187
1187
  private readonly currentLanguage;
1188
1188
  ngOnInit(): void;
1189
1189
  handleValueChange(e: AXValueChangedEvent): void;
@@ -1582,7 +1582,6 @@ declare class AXPRichTextWidgetEditComponent extends AXPValueWidgetComponent<str
1582
1582
  protected onWysiwygChanged(e: AXValueChangedEvent<string>): void;
1583
1583
  private popupService;
1584
1584
  private translationService;
1585
- private readonly mlResolver;
1586
1585
  currentLanguage: _angular_core.Signal<string>;
1587
1586
  ngOnInit(): void;
1588
1587
  protected getCurrentText: _angular_core.Signal<string>;
@@ -2003,7 +2002,6 @@ declare class AXPTextBoxWidgetColumnComponent extends AXPColumnWidgetComponent<s
2003
2002
  declare class AXPTextBoxWidgetEditComponent extends AXPValueWidgetComponent<string | Record<string, string> | undefined> {
2004
2003
  private popupService;
2005
2004
  private translationService;
2006
- private readonly mlResolver;
2007
2005
  protected multiLanguage: _angular_core.Signal<boolean>;
2008
2006
  protected hasClearButton: _angular_core.Signal<boolean>;
2009
2007
  protected disabled: _angular_core.Signal<boolean>;
@@ -2542,7 +2540,7 @@ declare class AXPFileListComponent implements OnInit, OnDestroy {
2542
2540
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPFileListComponent, "axp-file-list", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "fileEditable": { "alias": "fileEditable"; "required": false; "isSignal": true; }; "enableTitleDescription": { "alias": "enableTitleDescription"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "files": { "alias": "files"; "required": false; "isSignal": true; }; "plugins": { "alias": "plugins"; "required": false; "isSignal": true; }; "excludePlugins": { "alias": "excludePlugins"; "required": false; "isSignal": true; }; "capabilities": { "alias": "capabilities"; "required": false; "isSignal": true; }; }, { "onRemove": "onRemove"; "onRevert": "onRevert"; "onRename": "onRename"; }, never, never, true, never>;
2543
2541
  }
2544
2542
 
2545
- declare class AXPFileUploaderWidgetColumnComponent extends AXPColumnWidgetComponent<string[]> {
2543
+ declare class AXPFileUploaderWidgetColumnComponent extends AXPColumnWidgetComponent<AXPFileListItem[]> {
2546
2544
  protected count: _angular_core.Signal<number>;
2547
2545
  private fileService;
2548
2546
  openFileList(): Promise<void>;
@@ -2667,7 +2665,7 @@ declare class AXPFileUploaderWidgetService {
2667
2665
  private popupService;
2668
2666
  private translate;
2669
2667
  showFileList(options?: {
2670
- files?: AXPFileListItem[] | string[];
2668
+ files?: AXPFileListItem[];
2671
2669
  /** When true, user cannot add or change files (matches file-uploader widget options). */
2672
2670
  'readonly'?: boolean;
2673
2671
  multiple?: boolean;
@@ -3281,6 +3279,10 @@ declare class AXPStatusWidgetColumnComponent extends AXPColumnWidgetComponent<an
3281
3279
  private providerSignal;
3282
3280
  private loadProvider;
3283
3281
  protected definitionKey: _angular_core.Signal<string | null>;
3282
+ /**
3283
+ * When true, the grid cell is display-only (no transition popover). Default false preserves existing grids.
3284
+ */
3285
+ protected columnReadonly: _angular_core.Signal<boolean>;
3284
3286
  protected entityData: _angular_core.Signal<Record<string, any> | null>;
3285
3287
  private readonly resolvedStatuses;
3286
3288
  private readonly resolvedTransitions;
@@ -3302,6 +3304,8 @@ declare class AXPStatusWidgetEditComponent extends AXPValueWidgetComponent<any |
3302
3304
  protected statusChip: _angular_core.Signal<AXPStatusChipComponent | undefined>;
3303
3305
  private readonly statusService;
3304
3306
  protected definitionKey: _angular_core.Signal<string | null>;
3307
+ /** When true, the chip is display-only (no transition popover). Set via interface options. */
3308
+ protected isReadonly: _angular_core.Signal<boolean>;
3305
3309
  protected providerSignal: _angular_core.WritableSignal<AXPStatusProvider | undefined>;
3306
3310
  protected statuses: _angular_core.Signal<AXPStatusDefinition[]>;
3307
3311
  protected transitions: _angular_core.Signal<AXPStatusTransition[]>;
@@ -3334,6 +3338,8 @@ declare class AXPStatusWidgetViewComponent extends AXPDataListWidgetComponent {
3334
3338
  protected statusChip: _angular_core.Signal<AXPStatusChipComponent | undefined>;
3335
3339
  private readonly statusService;
3336
3340
  protected definitionKey: _angular_core.Signal<string | null>;
3341
+ /** When true, the chip is display-only (no transition popover). Set via interface options. */
3342
+ protected isReadonly: _angular_core.Signal<boolean>;
3337
3343
  private providerSignal;
3338
3344
  private resolvedStatuses;
3339
3345
  private resolvedTransitions;
@@ -3439,7 +3445,7 @@ declare const AXPWidgetFieldConfiguratorWidget: AXPWidgetConfig;
3439
3445
  declare class AXPWidgetFieldConfiguratorWidgetEditComponent extends AXPValueWidgetComponent<AXPWidgetNode> {
3440
3446
  protected readonly: _angular_core.Signal<boolean>;
3441
3447
  protected fieldName: _angular_core.Signal<string>;
3442
- protected fieldTitle: _angular_core.Signal<AXPMultiLanguageString>;
3448
+ protected fieldTitle: _angular_core.Signal<_acorex_core_translation.AXMultiLanguageString>;
3443
3449
  protected label: _angular_core.Signal<string>;
3444
3450
  protected isInitialized: _angular_core.WritableSignal<boolean>;
3445
3451
  protected widgetConfigModel: _angular_core.ModelSignal<AXPWidgetNode>;
@@ -3785,8 +3791,8 @@ interface AXPBlockWidgetOptions {
3785
3791
  }
3786
3792
 
3787
3793
  declare class AXPFieldsetWidgetDesignerComponent extends AXPLayoutBaseWidgetComponent {
3788
- protected title: _angular_core.Signal<AXPMultiLanguageString>;
3789
- protected description: _angular_core.Signal<AXPMultiLanguageString>;
3794
+ protected title: _angular_core.Signal<_acorex_core_translation.AXMultiLanguageString>;
3795
+ protected description: _angular_core.Signal<_acorex_core_translation.AXMultiLanguageString>;
3790
3796
  protected icon: _angular_core.Signal<string>;
3791
3797
  protected collapsible: _angular_core.Signal<boolean>;
3792
3798
  protected isOpen: _angular_core.WritableSignal<boolean>;
@@ -3801,8 +3807,8 @@ declare class AXPFieldsetWidgetDesignerComponent extends AXPLayoutBaseWidgetComp
3801
3807
  type AXPFieldsetWidgetLook = 'fieldset' | 'card' | 'group' | 'container';
3802
3808
 
3803
3809
  declare class AXPFieldsetWidgetViewComponent extends AXPLayoutBaseWidgetComponent {
3804
- protected title: _angular_core.Signal<AXPMultiLanguageString>;
3805
- protected description: _angular_core.Signal<AXPMultiLanguageString>;
3810
+ protected title: _angular_core.Signal<_acorex_core_translation.AXMultiLanguageString>;
3811
+ protected description: _angular_core.Signal<_acorex_core_translation.AXMultiLanguageString>;
3806
3812
  protected icon: _angular_core.Signal<string>;
3807
3813
  protected collapsible: _angular_core.Signal<boolean>;
3808
3814
  protected isOpen: _angular_core.WritableSignal<boolean>;
@@ -154,6 +154,7 @@ declare class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponen
154
154
  protected grid: _angular_core.Signal<AXDataTableComponent | undefined>;
155
155
  private queryParamSub?;
156
156
  private initializedFromRoute;
157
+ private lastEvaluatedViewName;
157
158
  constructor(platform: AXPlatform);
158
159
  ngOnInit(): Promise<void>;
159
160
  ngAfterViewInit(): Promise<void>;
@@ -2,8 +2,7 @@ import * as rxjs from 'rxjs';
2
2
  import { Observable } from 'rxjs';
3
3
  import * as i0 from '@angular/core';
4
4
  import { Type, ModuleWithProviders, Injector, InjectionToken } from '@angular/core';
5
- import { AXPValidationRules, AXPEntityOp, AXPCategoryEntity, AXPExpressionEvaluatorScope } from '@acorex/platform/core';
6
- import { AXPWidgetTypesMap } from '@acorex/platform/layout/widget-core';
5
+ import { AXPProperty, AXPOptionsData, AXPMetaData, AXPEntityOp, AXPMultiLanguageString, AXPCategoryEntity, AXPExpressionEvaluatorScope } from '@acorex/platform/core';
7
6
 
8
7
  declare class AXPWorkflowError extends Error {
9
8
  inner: Error | null;
@@ -147,13 +146,13 @@ declare class AXPWorkflowService {
147
146
  }
148
147
 
149
148
  interface AXPWorkflowDefinition {
150
- schemaVersion: "acorex-platform-workflow/v1";
149
+ schemaVersion: 'acorex-platform-workflow/v1';
151
150
  name: string;
152
- title?: string | null;
153
- description?: string | null;
154
- variables?: AXPVariableDefinition[];
155
- inputs?: AXPWorkflowInputDescriptor[];
156
- outputs?: AXPWorkflowOutputDescriptor[];
151
+ title?: AXPMultiLanguageString | null;
152
+ description?: AXPMultiLanguageString | null;
153
+ variables?: AXPProperty[];
154
+ inputs?: AXPProperty[];
155
+ outputs?: AXPWorkflowOutputProperty[];
157
156
  graph: AXPWorkflowGraph;
158
157
  customProperties?: Record<string, any>;
159
158
  /** engine specific (Elsa, ...) */
@@ -195,17 +194,17 @@ interface AXPWorkflowActivityInstance {
195
194
  name: string;
196
195
  /**
197
196
  * Input values for this activity instance.
198
- * Key-value pairs where keys match input descriptor names from AXPActivityDefinition.inputs
197
+ * Key-value pairs where keys match {@link AXPProperty.name} from AXPActivityDefinition.inputs
199
198
  * Example: { "message": "Hello", "duration": 5000 }
200
199
  */
201
- inputs?: Record<string, any>;
200
+ inputs?: AXPOptionsData;
202
201
  /**
203
202
  * Output mapping: process variable name → path in this activity's output (BPMN-style: activity → variable).
204
203
  * When this activity completes, each entry sets variables[variableName] = output[outputPath].
205
204
  * Example: { leaveRequestId: 'id' } → variables.leaveRequestId = activityOutput.id
206
205
  */
207
- outputToVariables?: Record<string, string>;
208
- metadata?: Record<string, any>;
206
+ outputToVariables?: AXPOptionsData;
207
+ metadata?: AXPMetaData;
209
208
  /** engine-specific override */
210
209
  extensions?: Record<string, any>;
211
210
  }
@@ -223,36 +222,10 @@ interface AXPConnection {
223
222
  y: number;
224
223
  }>;
225
224
  }
226
- interface AXPWorkflowPropertyWidget {
227
- type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | string;
228
- options?: Record<string, any>;
229
- }
230
- /**
231
- * Base schema shape for workflow inputs, outputs, and variables.
232
- */
233
- interface AXPWorkflowDescriptorSchemaBase {
234
- dataType: string;
235
- isArray?: boolean;
236
- nullable?: boolean;
237
- readonly?: boolean;
238
- hidden?: boolean | string;
239
- defaultValue?: any | string | ((context: any | null) => any);
240
- interface: AXPWorkflowPropertyWidget;
241
- }
242
225
  /**
243
- * Base descriptor for workflow inputs, outputs, and variables.
244
- * Shared fields: name, title, description, schema.
226
+ * Workflow output: same as {@link AXPProperty} with optional source path and engine metadata.
245
227
  */
246
- interface AXPWorkflowDescriptorBase {
247
- name: string;
248
- title: string;
249
- description?: string;
250
- schema: AXPWorkflowDescriptorSchemaBase;
251
- }
252
- interface AXPWorkflowInputDescriptor extends AXPWorkflowDescriptorBase {
253
- validations?: AXPValidationRules;
254
- }
255
- interface AXPWorkflowOutputDescriptor extends AXPWorkflowDescriptorBase {
228
+ interface AXPWorkflowOutputProperty extends AXPProperty {
256
229
  /**
257
230
  * Optional: where this output comes from in your context/memory.
258
231
  * Example: "$.result.orderId" or "vars.orderId"
@@ -260,8 +233,6 @@ interface AXPWorkflowOutputDescriptor extends AXPWorkflowDescriptorBase {
260
233
  path?: string;
261
234
  metadata?: Record<string, any>;
262
235
  }
263
- interface AXPVariableDefinition extends AXPWorkflowDescriptorBase {
264
- }
265
236
  /**
266
237
  * Engine-specific extension bag for a workflow.
267
238
  * Keep ALL engine-only fields here (Elsa, StepFunctions adapter, etc).
@@ -743,13 +714,13 @@ interface AXPActivityDefinition {
743
714
  */
744
715
  type: string;
745
716
  /**
746
- * Display name for UI.
717
+ * Display name for UI (plain or per-locale map).
747
718
  */
748
- title?: string;
719
+ title?: AXPMultiLanguageString;
749
720
  /**
750
- * Description of what the activity does.
721
+ * Description of what the activity does (plain or per-locale map).
751
722
  */
752
- description?: string;
723
+ description?: AXPMultiLanguageString;
753
724
  /**
754
725
  * Category for grouping in toolbox.
755
726
  */
@@ -777,13 +748,13 @@ interface AXPActivityDefinition {
777
748
  */
778
749
  taskType?: AXPTaskType;
779
750
  /**
780
- * Input descriptors.
751
+ * Input properties (form/schema for activity parameters).
781
752
  */
782
- inputs?: AXPWorkflowInputDescriptor[];
753
+ inputs?: AXPProperty[];
783
754
  /**
784
- * Output descriptors.
755
+ * Output properties (result shape + optional path/metadata).
785
756
  */
786
- outputs?: AXPWorkflowOutputDescriptor[];
757
+ outputs?: AXPWorkflowOutputProperty[];
787
758
  /**
788
759
  * Static outcomes (exit points).
789
760
  * Example: ['Done', 'Success', 'Failed']
@@ -1424,6 +1395,7 @@ declare class AXPWorkflowManager {
1424
1395
  declare class AXPWorkflowLocalEngine implements AXPWorkflowEngine {
1425
1396
  private readonly activityDefinitionService;
1426
1397
  private readonly workflowProviders;
1398
+ private readonly multiLanguageResolver;
1427
1399
  /**
1428
1400
  * In-memory storage for workflow instances.
1429
1401
  * Key: instanceId
@@ -1508,6 +1480,7 @@ declare class ActivityExecutor {
1508
1480
  private readonly commandService;
1509
1481
  private readonly expressionEvaluator;
1510
1482
  private readonly expressionScopeService;
1483
+ private readonly translateService;
1511
1484
  /**
1512
1485
  * Execute a workflow activity with expression evaluation.
1513
1486
  *
@@ -1520,6 +1493,10 @@ declare class ActivityExecutor {
1520
1493
  * @returns Execution result with output and outcome
1521
1494
  */
1522
1495
  execute(task: AXPWorkflowTask, workflowState?: AXPWorkflowInstanceState, activityOutputs?: Map<string, any> | Record<string, any>): Promise<ActivityExecutionResult>;
1496
+ /**
1497
+ * Resolves command failure message text for workflow output: `@` keys via translate, MLS maps via resolve.
1498
+ */
1499
+ private resolveCommandMessageTextForError;
1523
1500
  static ɵfac: i0.ɵɵFactoryDeclaration<ActivityExecutor, never>;
1524
1501
  static ɵprov: i0.ɵɵInjectableDeclaration<ActivityExecutor>;
1525
1502
  }
@@ -1803,4 +1780,4 @@ declare class AXPWorkflowDefinitionService {
1803
1780
  }
1804
1781
 
1805
1782
  export { AXPActivityDefinitionService, AXPWorkflowAction, AXPWorkflowContext, AXPWorkflowDefinitionService, AXPWorkflowError, AXPWorkflowEventService, AXPWorkflowFunction, AXPWorkflowLocalEngine, AXPWorkflowManager, AXPWorkflowModule, AXPWorkflowRegistryService, AXPWorkflowService, AXP_ACTIVITY_CATEGORY_PROVIDER, AXP_ACTIVITY_PROVIDER, AXP_WORKFLOW_CATEGORY_PROVIDER, AXP_WORKFLOW_ENGINE, AXP_WORKFLOW_PROVIDER, ActivityExecutor, WorkflowExpressionScopeService, createWorkFlowEvent, ofType };
1806
- export type { AXPActivityCategory, AXPActivityCategoryProvider, AXPActivityCategoryProviderToken, AXPActivityDefinition, AXPActivityExecutionContextState, AXPActivityIncident, AXPActivityProvider, AXPActivityProviderToken, AXPActivityStatus, AXPActivityVariable, AXPBookmark, AXPCompletionCallbackState, AXPConnection, AXPElsaWorkflowExtensions, AXPExceptionState, AXPFrontActivityCompleteRequest, AXPFrontActivityCompleteResponse, AXPGetWorkflowStateRequest, AXPResumeWorkflowRequest, AXPResumeWorkflowResponse, AXPStartWorkflowRequest, AXPStartWorkflowResponse, AXPTaskType, AXPVariableDefinition, AXPWorkflow, AXPWorkflowActionInput, AXPWorkflowActivityInstance, AXPWorkflowBinding, AXPWorkflowCategory, AXPWorkflowCategoryProvider, AXPWorkflowCategoryProviderToken, AXPWorkflowCondition, AXPWorkflowConditionType, AXPWorkflowDefinition, AXPWorkflowDescriptorBase, AXPWorkflowDescriptorSchemaBase, AXPWorkflowEngine, AXPWorkflowEvent, AXPWorkflowExtensions, AXPWorkflowFaultState, AXPWorkflowGraph, AXPWorkflowInputDescriptor, AXPWorkflowInstance, AXPWorkflowInstanceState, AXPWorkflowModuleConfigs, AXPWorkflowNextStep, AXPWorkflowOutputDescriptor, AXPWorkflowProvider, AXPWorkflowProviderToken, AXPWorkflowState, AXPWorkflowStatus, AXPWorkflowStep, AXPWorkflowSubStatus, AXPWorkflowTask, ActivityExecutionResult, WorkflowCompleteResult, WorkflowExpressionContext, WorkflowResumeResult, WorkflowStartResult };
1783
+ export type { AXPActivityCategory, AXPActivityCategoryProvider, AXPActivityCategoryProviderToken, AXPActivityDefinition, AXPActivityExecutionContextState, AXPActivityIncident, AXPActivityProvider, AXPActivityProviderToken, AXPActivityStatus, AXPActivityVariable, AXPBookmark, AXPCompletionCallbackState, AXPConnection, AXPElsaWorkflowExtensions, AXPExceptionState, AXPFrontActivityCompleteRequest, AXPFrontActivityCompleteResponse, AXPGetWorkflowStateRequest, AXPResumeWorkflowRequest, AXPResumeWorkflowResponse, AXPStartWorkflowRequest, AXPStartWorkflowResponse, AXPTaskType, AXPWorkflow, AXPWorkflowActionInput, AXPWorkflowActivityInstance, AXPWorkflowBinding, AXPWorkflowCategory, AXPWorkflowCategoryProvider, AXPWorkflowCategoryProviderToken, AXPWorkflowCondition, AXPWorkflowConditionType, AXPWorkflowDefinition, AXPWorkflowEngine, AXPWorkflowEvent, AXPWorkflowExtensions, AXPWorkflowFaultState, AXPWorkflowGraph, AXPWorkflowInstance, AXPWorkflowInstanceState, AXPWorkflowModuleConfigs, AXPWorkflowNextStep, AXPWorkflowOutputProperty, AXPWorkflowProvider, AXPWorkflowProviderToken, AXPWorkflowState, AXPWorkflowStatus, AXPWorkflowStep, AXPWorkflowSubStatus, AXPWorkflowTask, ActivityExecutionResult, WorkflowCompleteResult, WorkflowExpressionContext, WorkflowResumeResult, WorkflowStartResult };
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs","sources":["../../../../libs/platform/layout/widgets/src/lib/widgets/advance/file-uploader/file-list-popup/file-list-popup.component.ts","../../../../libs/platform/layout/widgets/src/lib/widgets/advance/file-uploader/file-list-popup/file-list-popup.component.html"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPContextChangeEvent, AXPFileListItem } from '@acorex/platform/core';\nimport { CommonModule } from '@angular/common';\nimport { Component, computed, inject, input, linkedSignal } from '@angular/core';\nimport { AXPWidgetCoreModule, AXPWidgetNode } from '@acorex/platform/layout/widget-core';\nimport { AXPFileStorageService } from '@acorex/platform/common';\n\n@Component({\n imports: [\n CommonModule,\n //\n AXLabelModule,\n AXCheckBoxModule,\n AXDecoratorModule,\n AXButtonModule,\n AXTranslationModule,\n //\n AXPWidgetCoreModule\n ],\n templateUrl: './file-list-popup.component.html',\n})\nexport class AXPFileListPopupComponent extends AXBasePageComponent {\n\n private fileService = inject(AXPFileStorageService);\n\n //#region ---- Component Properties ----\n\n files = input<AXPFileListItem[] | string[]>([]);\n /**\n * When true, same as file-uploader `options.readonly` (no add/upload, list actions download-only).\n * Use property name `isReadonly` in popup `data` so host/popup binding resolves the input.\n */\n isReadonly = input<boolean>(false);\n multiple = input<boolean>(false);\n fileEditable = input<boolean>(true);\n accept = input<string>('*');\n maxFileSize = input<number>(1024 * 1024 * 100);\n /** Same as widget plugins (e.g. document) so hooks/actions run in popup too. */\n plugins = input<{ name: string; options?: unknown }[]>([]);\n excludePlugins = input<string[]>([]);\n /** When true, file edit dialog shows name, title and description fields. Default false. */\n enableTitleDescription = input<boolean>(false);\n /** When true, show edit dialog (name/title/description + plugin hooks) after file select. Default false. */\n showEditDialogAfterSelect = input<boolean>(false);\n\n //#endregion\n\n //#region ---- Computed Properties ----\n\n /**\n * Always render the edit widget so `options` (readonly, plugins, enableTitleDescription, …) match the entity form.\n * Readonly behavior comes from `node.options.readonly`, not from view mode.\n */\n protected mode = computed(() => 'edit' as const);\n\n //#endregion\n\n //#region ---- Context & Node Management ----\n\n protected context = linkedSignal<{}>(() => ({\n }));\n\n protected onContextChanged(event: AXPContextChangeEvent) {\n this.context.set(event.data);\n }\n\n /** Resolves input that may be a signal (input()) or a raw value when popup injects data. */\n private resolveInput<T>(value: (() => T) | T, fallback: T): T {\n return typeof value === 'function' ? (value as () => T)() : (value ?? fallback);\n }\n\n protected node = computed<AXPWidgetNode>(() => ({\n type: 'file-uploader',\n path: 'files',\n defaultValue: Array.isArray(this.files()) && typeof this.files()[0] !== 'string' ? this.files() : [],\n options: {\n readonly: this.isReadonly(),\n multiple: this.multiple(),\n accept: this.accept(),\n maxFileSize: this.maxFileSize(),\n fileEditable: this.fileEditable(),\n plugins: this.resolveInput(this.plugins, []),\n excludePlugins: this.resolveInput(this.excludePlugins, []),\n enableTitleDescription: this.enableTitleDescription(),\n showEditDialogAfterSelect: this.resolveInput(this.showEditDialogAfterSelect(), false),\n },\n }));\n\n //#endregion\n\n //#region ---- Lifecycle Methods ----\n\n protected override async ngOnInit(): Promise<void> {\n if (Array.isArray(this.files()) && typeof this.files()[0] === 'string') {\n this.isLoading = true;\n // Convert string file IDs to AXPFileListItem objects using batch API\n const prefixedIds = this.files() as string[];\n const actualIds = prefixedIds.map((id) => this.removeFilePrefix(id));\n let fileItems: AXPFileListItem[] = [];\n try {\n const infos = await this.fileService.findMany(actualIds);\n const infoMap = new Map(infos.map((i) => [i.fileId, i]));\n fileItems = prefixedIds.map((prefixedId) => {\n const actualId = this.removeFilePrefix(prefixedId);\n const info = infoMap.get(actualId);\n if (info) {\n return {\n id: info.fileId,\n name: info.name || '',\n size: info.size,\n status: 'uploaded',\n source: {\n kind: 'fileId',\n value: info.fileId,\n },\n } as AXPFileListItem;\n }\n return {\n id: actualId,\n name: 'Unknown File',\n size: 0,\n status: 'deleted',\n source: { kind: 'none', value: '' },\n } as AXPFileListItem;\n });\n } catch (error) {\n console.error('Failed to get file infos', error);\n fileItems = prefixedIds.map((prefixedId) => ({\n id: this.removeFilePrefix(prefixedId),\n name: 'Unknown File',\n size: 0,\n status: 'deleted',\n source: { kind: 'none', value: '' },\n } as AXPFileListItem));\n }\n\n this.isLoading = false;\n // Update the context with the converted file items\n this.context.set({ files: fileItems });\n }\n }\n\n protected removeFilePrefix(fileId: string): string {\n return fileId.startsWith('file:') ? fileId.substring(5) : fileId;\n }\n\n //#endregion\n\n //#region ---- UI Handlers ----\n\n apply() {\n this.close({\n data: this.context(),\n });\n }\n\n //#endregion\n\n}\n","<div class=\"ax-p-2\">\n <axp-widgets-container [context]=\"context()\" (onContextChanged)=\"onContextChanged($event)\">\n <ng-container axp-widget-renderer [node]=\"node()\" [mode]=\"mode()\"></ng-container>\n </axp-widgets-container>\n</div>\n<ax-footer>\n <ax-suffix>\n @if (isReadonly()) {\n <ax-button [text]=\"'@general:actions.close.title' | translate | async\" (click)=\"close()\"></ax-button>\n } @else {\n <ax-button [text]=\"'@general:actions.discard.title' | translate | async\" (click)=\"close()\"></ax-button>\n <ax-button\n [text]=\"'@general:actions.apply.title' | translate | async\"\n (click)=\"apply()\"\n [color]=\"'primary'\"\n ></ax-button>\n }\n </ax-suffix>\n</ax-footer>\n"],"names":["i1","i3","i4","i5"],"mappings":"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"}