@acorex/platform 21.0.0-next.92 → 21.0.0-next.93

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 (58) hide show
  1. package/fesm2022/acorex-platform-common.mjs +9 -4
  2. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  3. package/fesm2022/acorex-platform-contracts.mjs +12 -1
  4. package/fesm2022/acorex-platform-contracts.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-core.mjs +2 -16
  6. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-domain-contracts.mjs +0 -1
  8. package/fesm2022/acorex-platform-domain-contracts.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  10. package/fesm2022/acorex-platform-layout-builder.mjs +4 -4
  11. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-layout-components.mjs +4 -3
  13. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  14. package/fesm2022/acorex-platform-layout-designer.mjs +4 -3
  15. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-layout-entity-attachments-page.component-CwG6n_Yb.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-layout-entity-contracts.mjs.map +1 -1
  18. package/fesm2022/acorex-platform-layout-entity-file-list-popup.component--IeMZLIr.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-layout-entity.mjs +24 -4
  20. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-views.mjs +5 -4
  22. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-layout-widget-core-contracts.mjs +141 -0
  24. package/fesm2022/acorex-platform-layout-widget-core-contracts.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-layout-widget-core.mjs +5 -132
  26. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  27. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-BvFykMTH.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DIDziLAT.mjs} +2 -2
  28. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DIDziLAT.mjs.map +1 -0
  29. package/fesm2022/acorex-platform-layout-widgets.mjs +13 -440
  30. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  31. package/fesm2022/acorex-platform-runtime-contracts.mjs +166 -0
  32. package/fesm2022/acorex-platform-runtime-contracts.mjs.map +1 -0
  33. package/fesm2022/acorex-platform-runtime.mjs +1 -163
  34. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  35. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-C7cT82K2.mjs → acorex-platform-themes-default-entity-master-modify-view.component-BP2dVnBQ.mjs} +3 -2
  36. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BP2dVnBQ.mjs.map +1 -0
  37. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DrUwqKKA.mjs.map +1 -1
  38. package/fesm2022/acorex-platform-themes-default.mjs +4 -3
  39. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  40. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  41. package/package.json +14 -6
  42. package/types/acorex-platform-common.d.ts +15 -5
  43. package/types/acorex-platform-contracts.d.ts +106 -4
  44. package/types/acorex-platform-core.d.ts +4 -101
  45. package/types/acorex-platform-layout-builder.d.ts +3 -3
  46. package/types/acorex-platform-layout-components.d.ts +4 -3
  47. package/types/acorex-platform-layout-designer.d.ts +2 -1
  48. package/types/acorex-platform-layout-entity-contracts.d.ts +2 -3
  49. package/types/acorex-platform-layout-entity.d.ts +12 -10
  50. package/types/acorex-platform-layout-views.d.ts +10 -9
  51. package/types/acorex-platform-layout-widget-core-contracts.d.ts +299 -0
  52. package/types/acorex-platform-layout-widget-core.d.ts +9 -301
  53. package/types/acorex-platform-layout-widgets.d.ts +55 -80
  54. package/types/acorex-platform-runtime-contracts.d.ts +275 -0
  55. package/types/acorex-platform-runtime.d.ts +4 -274
  56. package/types/acorex-platform-themes-default.d.ts +3 -3
  57. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-BvFykMTH.mjs.map +0 -1
  58. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-C7cT82K2.mjs.map +0 -1
@@ -2,18 +2,19 @@ import * as _acorex_platform_layout_entity_contracts from '@acorex/platform/layo
2
2
  import { AXPRelatedEntity, AXPEntityPage, AXPEntityCommandScope, AXPEntity, AXPEntityAction, AXPEntityProperty, AXPEntityTableColumn, AXPCardField, AXPEntityPropertyLayoutConfig, AXPEntitySectionView, AXPEntityPropertyCreateView, AXPQueryView, AXPEntityMasterListLayoutType, AXPEntityMasterListDisplayMode, AXPEntityMasterListLayoutOption, AXPEntityListFilterDefinition, AXPEntityListSortableField, AXPEntityPropertyView, AXPEntityCategoryPlugin, AXPEntityPropertyGroup, AXPEntityMasterCreateLayoutView, AXPEntityMasterUpdateLayoutView, AXPEntityMasterSingleLayoutView, AXPEntityMasterListView, AXPEntityDetailListView, AXPEntityAggregateRequest, AXPEntityDetailDto, AXPEntityModel, AXPEntityListItemDto, AXPEntityCreateDto, AXPEntityUpdateDto, AXPEntityQueryAllOptions, AXPEntityQueryAllResult, AXPEntityAggregateOptions, AXPEntityAggregateResult, AXPLookupDisplayOptions, AXPLookupWidgetLookType, AXPLookupSelectorRowActionsConfig, AXPQueryFilter, AXPLookupColumnResolveOptions, AXPLookupColumnResolveStrategy } from '@acorex/platform/layout/entity-contracts';
3
3
  export * from '@acorex/platform/layout/entity-contracts';
4
4
  export { collectNestedCreateHiddenProperties, entityDetailsCreateActions, entityDetailsCreateActionsDeferredParent, entityDetailsCrudActions, entityDetailsEditAction, entityDetailsNewEditAction, entityDetailsReferenceCondition, entityDetailsReferenceCreateActions, entityDetailsSimpleCondition, entityMasterBulkDeleteAction, entityMasterCreateAction, entityMasterCrudActions, entityMasterDeleteAction, entityMasterEditAction, entityMasterRecordActions, entityMasterViewAction, entityOverrideDetailsViewAction, mergeForeignKeyFieldIntoCreateActions } from '@acorex/platform/layout/entity-contracts';
5
+ import { AXPCommand, AXPQuery } from '@acorex/platform/runtime-contracts';
5
6
  import * as _acorex_platform_contracts from '@acorex/platform/contracts';
6
- import { AXPExecuteCommandResult, AXPMetaData, AXPWidgetNode, AXPGridLayoutOptions, AXPExpression, AXPMultiLanguageString, AXPBreadcrumbItem, AXPFilterQuery, AXPExecuteCommand, AXPFilterDefinition, AXPPagedListResult, AXPCategoryEntity, AXPEntityOp, AXPMiddlewareErrorResponse, AXPColumnQuery, AXPSortDefinition, AXPFileListItem, AXPContextData, AXPContextChangeEvent } from '@acorex/platform/contracts';
7
- import { AXPCommand, AXPQueryExecutor, AXPCommandService, AXPQuery } from '@acorex/platform/runtime';
7
+ import { AXPExecuteCommandResult, AXPMetaData, AXPWidgetNode, AXPGridLayoutOptions, AXPExpression, AXPMultiLanguageString, AXPBreadcrumbItem, AXPFilterQuery, AXPExecuteCommand, AXPFilterDefinition, AXPQueryRequest, AXPPagedListResult, AXPCategoryEntity, AXPEntityOp, AXPMiddlewareErrorResponse, AXPColumnQuery, AXPSortDefinition, AXPActionMenuItem, AXPFileListItem, AXPContextData, AXPContextChangeEvent } from '@acorex/platform/contracts';
8
8
  import * as _angular_core from '@angular/core';
9
9
  import { ElementRef, InjectionToken, Injector, Type, EnvironmentProviders, OnInit, ChangeDetectorRef, OnDestroy } from '@angular/core';
10
10
  import { AXPPreloadFiltersApplyEvent, AXPColumnItemListItem, AXPDataSelectorRowActionsHandler, AXPCategoryTreeDataSource, AXPDataSelectorAllowCreate } from '@acorex/platform/layout/components';
11
11
  import { AXPPageLayoutBaseComponent } from '@acorex/platform/layout/views';
12
- import { AXPDataSourceDefinitionProvider, AXPDataSourceDefinition, AXPQueryRequest, AXHighlightService, AXPDeviceService, AXPBroadcastEventService, AXPActionMenuItem, AXPExpressionEvaluatorService, AXPContextEvalFactory, AXPContextStore } from '@acorex/platform/core';
12
+ import { AXPDataSourceDefinitionProvider, AXPDataSourceDefinition, AXHighlightService, AXPDeviceService, AXPBroadcastEventService, AXPExpressionEvaluatorService, AXPContextEvalFactory, AXPContextStore } from '@acorex/platform/core';
13
13
  export { AXPEntityDefinitionCrudService, AXP_ENTITY_DEFINITION_CRUD_SERVICE } from '@acorex/platform/domain';
14
14
  import { AXStyleColorType, AXDataSource, AXDataSourceFilterOption, AXDataSourceSortOption, AXValueChangedEvent, AXClickEvent, AXFocusEvent, AXHtmlEvent } from '@acorex/cdk/common';
15
+ import { AXPWidgetColumnNode, AXPWidgetConfig } from '@acorex/platform/layout/widget-core-contracts';
15
16
  import * as i4 from '@acorex/platform/layout/widget-core';
16
- import { AXPWidgetColumnNode, AXPWidgetCoreService, AXPColumnWidgetComponent, AXPValueWidgetComponent, AXPWidgetConfig, AXPWidgetRendererDirective, AXPWidgetCoreElementAPI } from '@acorex/platform/layout/widget-core';
17
+ import { AXPWidgetCoreService, AXPColumnWidgetComponent, AXPValueWidgetComponent, AXPWidgetRendererDirective, AXPWidgetCoreElementAPI } from '@acorex/platform/layout/widget-core';
17
18
  import * as i1 from '@angular/router';
18
19
  import { ResolveFn, RedirectCommand } from '@angular/router';
19
20
  import * as rxjs from 'rxjs';
@@ -23,6 +24,7 @@ import { AXPWorkflowService, AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext
23
24
  import * as i5 from '@acorex/platform/layout/builder';
24
25
  import { IActionBuilder, AXPDialogRef, IFormFieldBuilder } from '@acorex/platform/layout/builder';
25
26
  import { AXPSessionService } from '@acorex/platform/auth';
27
+ import { AXPQueryExecutor, AXPCommandService } from '@acorex/platform/runtime';
26
28
  import { AXTreeViewNode, AXTreeViewComponent, AXTreeViewNodeSelectEvent } from '@acorex/components/tree-view';
27
29
  import { AXPopupSizeType, AXPopupService } from '@acorex/components/popup';
28
30
  import { AXBasePageComponent } from '@acorex/components/page';
@@ -50,6 +52,9 @@ declare class AXPCreateEntityCommand implements AXPCommand<any, any> {
50
52
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPCreateEntityCommand>;
51
53
  }
52
54
 
55
+ /**
56
+ * Build-time only. Do not import from Angular modules.
57
+ */
53
58
  /**
54
59
  * Merged into AI/tool payloads for `Entity:Create` so post-create navigation does not run from agent flows.
55
60
  * Applied in the AI module when normalizing tool arguments (not in the generic command executor).
@@ -664,10 +669,7 @@ declare class AXPEntityMasterListViewModel {
664
669
  enabled?: boolean;
665
670
  columns: AXPEntityTableColumn[];
666
671
  cssClass?: {
667
- row? /**
668
- * Switches to the given layout when it is enabled.
669
- * Persists the choice at entity list level (shared across all views).
670
- */: AXPExpression;
672
+ row?: AXPExpression;
671
673
  cell?: AXPExpression;
672
674
  };
673
675
  } | undefined>;
@@ -2549,7 +2551,7 @@ declare class AXPTruncatedBreadcrumbComponent implements OnDestroy {
2549
2551
  }
2550
2552
 
2551
2553
  declare const AXPEntityDefinitionProviderWidget: AXPWidgetConfig;
2552
- declare module '@acorex/platform/layout/widget-core' {
2554
+ declare module '@acorex/platform/layout/widget-core-contracts' {
2553
2555
  interface AXPWidgetTypesMap {
2554
2556
  entityDefinitionProvider: 'entity-definition-provider-editor';
2555
2557
  }
@@ -3194,7 +3196,7 @@ interface AXPFileUploaderWidgetOptions {
3194
3196
  print: AXPFileUploaderWidgetPrintOptions;
3195
3197
  column: AXPFileUploaderWidgetColumnOptions;
3196
3198
  }
3197
- declare module '@acorex/platform/layout/widget-core' {
3199
+ declare module '@acorex/platform/layout/widget-core-contracts' {
3198
3200
  interface AXPWidgetTypesMap {
3199
3201
  attachments: 'attachments';
3200
3202
  }
@@ -2,14 +2,14 @@ import * as _ngrx_signals from '@ngrx/signals';
2
2
  import * as _angular_core from '@angular/core';
3
3
  import { Signal, InjectionToken, OnInit, OnDestroy } from '@angular/core';
4
4
  import * as _acorex_platform_themes_shared from '@acorex/platform/themes/shared';
5
+ import * as _acorex_platform_contracts from '@acorex/platform/contracts';
6
+ import { AXPActionMenuItem, AXPBreadcrumbItem, AXPMultiLanguageString, AXPBadge, AXPPageStatus, AXPBackButton, AXPExecuteCommand, AXPWidgetNode, AXPKeyboardShortcut, AXPExecuteCommandResult, AXPContextChangeEvent, AXPKeyboardShortcutChord } from '@acorex/platform/contracts';
5
7
  import { AXClickEvent } from '@acorex/cdk/common';
6
8
  import { AXPTabNavigationService, AXPHomePageService, AXPSettingsService, AXPTabPreviewService, AXPUnsavedChangesConfirmService, AXPBrowserTitleService } from '@acorex/platform/common';
7
9
  import * as i1 from '@acorex/cdk/drawer';
8
10
  import { AXDrawerItemDirective } from '@acorex/cdk/drawer';
9
- import * as _acorex_platform_contracts from '@acorex/platform/contracts';
10
- import { AXPBreadcrumbItem, AXPMultiLanguageString, AXPBadge, AXPPageStatus, AXPBackButton, AXPExecuteCommand, AXPWidgetNode, AXPExecuteCommandResult, AXPContextChangeEvent } from '@acorex/platform/contracts';
11
11
  import * as _acorex_platform_core from '@acorex/platform/core';
12
- import { AXPActionMenuItem, AXPDeviceService, AXPKeyboardShortcut, AXPExpressionEvaluatorScope, AXPBroadcastEventService, AXPKeyboardShortcutChord } from '@acorex/platform/core';
12
+ import { AXPDeviceService, AXPExpressionEvaluatorScope, AXPBroadcastEventService } from '@acorex/platform/core';
13
13
  import { AXPCommandService, AXPPolicyEngineService } from '@acorex/platform/runtime';
14
14
  import { AXPWorkflowService } from '@acorex/platform/workflow';
15
15
  import { AXToastService } from '@acorex/components/toast';
@@ -21,10 +21,11 @@ import { Router, ActivatedRoute } from '@angular/router';
21
21
  import { AXBasePageComponent } from '@acorex/components/page';
22
22
  import { AXPEntityCommandScope } from '@acorex/platform/layout/entity-contracts';
23
23
  import * as _acorex_platform_layout_views from '@acorex/platform/layout/views';
24
+ import * as _acorex_platform_layout_widget_core_contracts from '@acorex/platform/layout/widget-core-contracts';
25
+ import { AXPPageStatus as AXPPageStatus$1 } from '@acorex/platform/layout/widget-core-contracts';
24
26
  import { AXFormComponent } from '@acorex/components/form';
25
- import * as _acorex_platform_layout_widget_core from '@acorex/platform/layout/widget-core';
26
- import { AXPPageStatus as AXPPageStatus$1, AXPWidgetContainerComponent } from '@acorex/platform/layout/widget-core';
27
27
  import { AXTabStripChangedEvent } from '@acorex/components/tabs';
28
+ import { AXPWidgetContainerComponent } from '@acorex/platform/layout/widget-core';
28
29
 
29
30
  declare abstract class AXPPageLayoutBase {
30
31
  abstract primaryMenuItems: Signal<AXPActionMenuItem[]>;
@@ -661,7 +662,7 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
661
662
  previousContext: _angular_core.Signal<Record<string, any>>;
662
663
  context: _angular_core.Signal<Record<string, any>>;
663
664
  scope: _angular_core.Signal<_acorex_platform_core.AXPExpressionEvaluatorScope | null>;
664
- status: _angular_core.Signal<_acorex_platform_layout_widget_core.AXPPageStatus>;
665
+ status: _angular_core.Signal<_acorex_platform_layout_widget_core_contracts.AXPPageStatus>;
665
666
  currentPage: _angular_core.Signal<AXPLayoutDetailsViewPage | null>;
666
667
  currentTab: _angular_core.Signal<_acorex_platform_layout_views.AXPLayoutDetailsViewTabItem | null>;
667
668
  pageSelectedRows: _angular_core.Signal<any[]>;
@@ -719,7 +720,7 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
719
720
  previousContext: Record<string, any>;
720
721
  context: Record<string, any>;
721
722
  scope: _acorex_platform_core.AXPExpressionEvaluatorScope | null;
722
- status: _acorex_platform_layout_widget_core.AXPPageStatus;
723
+ status: _acorex_platform_layout_widget_core_contracts.AXPPageStatus;
723
724
  currentPage: AXPLayoutDetailsViewPage | null;
724
725
  currentTab: _acorex_platform_layout_views.AXPLayoutDetailsViewTabItem | null;
725
726
  pageSelectedRows: any[];
@@ -772,7 +773,7 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
772
773
  color: string;
773
774
  visible?: string | boolean;
774
775
  command: AXPExecuteCommand;
775
- shortcuts?: _acorex_platform_core.AXPKeyboardShortcut[];
776
+ shortcuts?: _acorex_platform_contracts.AXPKeyboardShortcut[];
776
777
  } | null>;
777
778
  protected acceptFooterCommand: _angular_core.Signal<{
778
779
  title: string;
@@ -780,7 +781,7 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
780
781
  color: string;
781
782
  visible?: string | boolean;
782
783
  command: AXPExecuteCommand;
783
- shortcuts?: _acorex_platform_core.AXPKeyboardShortcut[];
784
+ shortcuts?: _acorex_platform_contracts.AXPKeyboardShortcut[];
784
785
  } | null>;
785
786
  protected hasSaveDiscardFooterCommands: _angular_core.Signal<boolean>;
786
787
  /** Entity save/discard — driven live by widget/container dirty state, not evaluated action metadata. */
@@ -0,0 +1,299 @@
1
+ import { AXPMultiLanguageString, AXPDefinitionCategory, AXPDataType, AXPWidgetNode, AXPValidationRules, AXPExpression, AXPMetaData, AXPOptionsData, AXPPartialNested } from '@acorex/platform/contracts';
2
+ export { AXPWidgetNode, AXPWidgetRenderMode } from '@acorex/platform/contracts';
3
+ import { InjectionToken } from '@angular/core';
4
+
5
+ type AXPWidgetGroup = 'form-element' | 'dashboard-widget' | 'form-template' | 'property-editor' | 'meta-data' | 'setting-widget' | 'entity-widget' | 'utility-widget' | 'base-widget';
6
+ declare enum AXPWidgetGroupEnum {
7
+ FormElement = "form-element",
8
+ DashboardWidget = "dashboard-widget",
9
+ FormTemplate = "form-template",
10
+ PropertyEditor = "property-editor",
11
+ MetaData = "meta-data",
12
+ SettingWidget = "setting-widget",
13
+ EntityWidget = "entity-widget",
14
+ UtilityWidget = "utility-widget",
15
+ BaseWidget = "base-widget"
16
+ }
17
+
18
+ declare enum AXPPageStatus {
19
+ Idle = "idle",// The page is idle.
20
+ Rendering = "rendering",// The page is being rendered.
21
+ Rendered = "rendered",// The rendering process is complete.
22
+ Processing = "processing",// The page is performing a task or interaction.
23
+ Submitting = "submitting",// The form is being submitted.
24
+ Submitted = "submitted",// Submission is completed.
25
+ Validating = "validating",// The form is being validated.
26
+ Validated = "validated",// Validation is completed.
27
+ Error = "error"
28
+ }
29
+ declare enum AXPWidgetStatus {
30
+ Rendering = "rendering",// The widget is being mounted and bound.
31
+ Rendered = "rendered",// The widget shell is ready (async hydration may still run).
32
+ Error = "error"
33
+ }
34
+
35
+ interface AXPWidgetTypesMap {
36
+ timeDuration: 'time-duration';
37
+ checkbox: 'checkbox-editor';
38
+ color: 'color-editor';
39
+ connectedLists: 'connected-lists-editor';
40
+ contact: 'contact-editor';
41
+ dateTime: 'date-time-editor';
42
+ largeText: 'large-text-editor';
43
+ number: 'number-editor';
44
+ numberUnit: 'number-unit-editor';
45
+ password: 'password-editor';
46
+ richText: 'rich-text-editor';
47
+ select: 'select-editor';
48
+ selectionList: 'selection-list-editor';
49
+ text: 'text-editor';
50
+ table: 'table-editor';
51
+ toggle: 'toggle-editor';
52
+ blockLayout: 'block-layout';
53
+ pageLayout: 'page-layout';
54
+ repeaterLayout: 'repeater-layout';
55
+ textBlockLayout: 'text-block-layout';
56
+ alertBoxLayout: 'alert-box-layout';
57
+ badgeLayout: 'badge-layout';
58
+ attachments: 'attachments';
59
+ fileTypeExtension: 'file-type-extension';
60
+ map: 'map';
61
+ imageMarker: 'image-marker';
62
+ image: 'image';
63
+ gallery: 'gallery';
64
+ signature: 'signature';
65
+ buttonAction: 'button-action';
66
+ document: 'document-layout';
67
+ lookup: 'lookup-editor';
68
+ formField: 'form-field';
69
+ advancedGrid: 'advanced-grid-layout';
70
+ advancedGridItem: 'advanced-grid-item-layout';
71
+ grid: 'grid-layout';
72
+ gridItem: 'grid-item-layout';
73
+ qrcode: 'qrcode';
74
+ schedulerPicker: 'scheduler-picker';
75
+ template: 'template';
76
+ templateDesigner: 'template-designer';
77
+ cronJob: 'cron-job';
78
+ spacing: 'spacing';
79
+ border: 'border';
80
+ direction: 'direction';
81
+ flexLayout: 'flex-layout';
82
+ flexItem: 'flex-item-layout';
83
+ tableLayout: 'table-layout';
84
+ tableItem: 'table-item-layout';
85
+ avatar: 'avatar';
86
+ stringFilter: 'string-filter';
87
+ numberFilter: 'number-filter';
88
+ dateTimeFilter: 'datetime-filter';
89
+ booleanFilter: 'boolean-filter';
90
+ lookupFilter: 'lookup-filter';
91
+ timeDurationFilter: 'time-duration-filter';
92
+ flexOptions: 'flex-options';
93
+ flexItemOptions: 'flex-item-options';
94
+ gridOptions: 'grid-options';
95
+ gridItemOptions: 'grid-item-options';
96
+ advancedGridOptions: 'advanced-grid-options';
97
+ selectFilter: 'select-filter';
98
+ requiredValidation: 'required-validation';
99
+ regularExpressionValidation: 'regular-expression-validation';
100
+ minLengthValidation: 'min-length-validation';
101
+ maxLengthValidation: 'max-length-validation';
102
+ lessThanValidation: 'less-than-validation';
103
+ greaterThanValidation: 'greater-than-validation';
104
+ betweenValidation: 'between-validation';
105
+ equalValidation: 'equal-validation';
106
+ callbackValidation: 'callback-validation';
107
+ metaData: 'meta-data-editor';
108
+ templateEditor: 'template-box-editor';
109
+ templateContentEditor: 'template-content-editor';
110
+ themeModeChooser: 'theme-mode-chooser';
111
+ menuOrientationChooser: 'menu-orientation-chooser';
112
+ fontStyleChooser: 'font-style-chooser';
113
+ fontSizeChooser: 'font-size-chooser';
114
+ iconChooser: 'icon-chooser';
115
+ icon: 'icon';
116
+ themeColorChooser: 'theme-color-chooser';
117
+ panel: 'panel';
118
+ notification: 'notification';
119
+ comment: 'comment';
120
+ list: 'list-editor';
121
+ dataList: 'data-list';
122
+ listToolbar: 'list-toolbar';
123
+ entityList: 'entity-list';
124
+ pageComponent: 'page-component';
125
+ stepWizard: 'step-wizard';
126
+ documentUploader: 'document-uploader';
127
+ documentFileTypeFilter: 'document-file-type-filter';
128
+ editorJs: 'editor-js-editor';
129
+ progressBar: 'progress-bar-editor';
130
+ rate: 'rate-picker-editor';
131
+ entityDefinitionProvider: 'entity-definition-provider-editor';
132
+ }
133
+
134
+ interface AXPWidgetPropertyGroup {
135
+ name: string;
136
+ title: string;
137
+ order: number;
138
+ }
139
+ interface AXPWidgetProperty {
140
+ name: string;
141
+ title: string;
142
+ description?: string;
143
+ group: AXPWidgetPropertyGroup;
144
+ order?: number;
145
+ /**
146
+ * Controls whether the property title label is shown in the property viewer panel.
147
+ * Defaults to true when omitted.
148
+ */
149
+ showLabel?: boolean;
150
+ schema: {
151
+ dataType: AXPDataType;
152
+ nullable?: boolean;
153
+ defaultValue?: any | string | ((context: any | null) => any);
154
+ interface: Required<Pick<AXPWidgetNode, 'path'>> & Omit<AXPWidgetNode, 'path'>;
155
+ };
156
+ validations?: AXPValidationRules;
157
+ visible: boolean | AXPExpression;
158
+ binding?: {
159
+ enabled: boolean;
160
+ /** When set, the expression is edited at path + '.' + optionKey (e.g. options.visibility). */
161
+ optionKey?: string;
162
+ };
163
+ }
164
+ declare function cloneProperty(property: AXPWidgetProperty, values: AXPPartialNested<AXPWidgetProperty>): AXPWidgetProperty;
165
+ declare function createStringProperty(ctor: {
166
+ defaultValue?: string;
167
+ name: string;
168
+ title: string;
169
+ path?: string;
170
+ group: AXPWidgetPropertyGroup;
171
+ visible?: boolean | AXPExpression;
172
+ }): AXPWidgetProperty;
173
+ declare function createNumberProperty(ctor: {
174
+ defaultValue?: number;
175
+ name: string;
176
+ title: string;
177
+ path?: string;
178
+ group: AXPWidgetPropertyGroup;
179
+ visible?: boolean | AXPExpression;
180
+ options?: {
181
+ minValue?: number;
182
+ maxValue?: number;
183
+ decimals?: number;
184
+ };
185
+ }): AXPWidgetProperty;
186
+ declare function createBooleanProperty(ctor: {
187
+ defaultValue?: boolean;
188
+ name: string;
189
+ title: string;
190
+ path?: string;
191
+ group: AXPWidgetPropertyGroup;
192
+ visible?: boolean | AXPExpression;
193
+ }): AXPWidgetProperty;
194
+ declare function createSelectProperty<T = string | {
195
+ id: string;
196
+ title: string;
197
+ }>(ctor: {
198
+ defaultValue: T | T[] | any;
199
+ dataSource: T[];
200
+ name: string;
201
+ title: string;
202
+ path?: string;
203
+ group: AXPWidgetPropertyGroup;
204
+ visible?: boolean | AXPExpression;
205
+ }): AXPWidgetProperty;
206
+ interface AXPWidgetNodeToken<TOptions extends AXPOptionsData = AXPOptionsData> {
207
+ defaultValue?: any;
208
+ config: AXPWidgetConfig;
209
+ node: AXPWidgetNode;
210
+ options?: TOptions;
211
+ }
212
+ interface AXPWidgetColumnNode {
213
+ type: string;
214
+ path: string;
215
+ options?: AXPOptionsData;
216
+ /** Column header caption from data-table (`title || name`); often an i18n key. */
217
+ caption?: string;
218
+ }
219
+ interface AXPWidgetColumnNodeToken extends AXPWidgetColumnNode {
220
+ config: AXPWidgetConfig;
221
+ }
222
+ declare const AXP_WIDGET_TOKEN: InjectionToken<AXPWidgetNodeToken<Record<string, any>>>;
223
+ declare const AXP_WIDGET_COLUMN_TOKEN: InjectionToken<AXPWidgetColumnNodeToken>;
224
+ interface AXPWidgetComponentConfig {
225
+ component: () => Promise<any>;
226
+ properties?: AXPWidgetProperty[];
227
+ }
228
+ interface AXPWidgetConfigComponents {
229
+ designer?: AXPWidgetComponentConfig;
230
+ view?: AXPWidgetComponentConfig;
231
+ edit?: AXPWidgetComponentConfig;
232
+ print?: AXPWidgetComponentConfig;
233
+ column?: AXPWidgetComponentConfig;
234
+ filter?: AXPWidgetComponentConfig;
235
+ }
236
+ type AXPWidgetViewType = 'container' | 'editor' | 'action' | 'view' | 'filter' | 'validation' | 'dashboard';
237
+ type AXPWidgetDesignerOptionsMap = {
238
+ container: {
239
+ canInsert: boolean;
240
+ };
241
+ editor: {
242
+ needLabel: boolean;
243
+ };
244
+ action: {};
245
+ view: {};
246
+ };
247
+ type AXPExtractWidgetConfig<T> = {
248
+ type: AXPWidgetViewType;
249
+ designer: T extends {
250
+ type: infer V;
251
+ } ? V extends keyof AXPWidgetDesignerOptionsMap ? AXPWidgetDesignerOptionsMap[V] : any : any;
252
+ };
253
+ interface AXPWidgetConfig<T = any> {
254
+ name: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | keyof AXPWidgetTypesMap | string;
255
+ alias?: string | string[];
256
+ title: AXPMultiLanguageString;
257
+ icon?: string;
258
+ description?: AXPMultiLanguageString;
259
+ /**
260
+ * Picker tabs and section headings in the widget gallery (when the widget is included in the picker list).
261
+ */
262
+ categories?: AXPDefinitionCategory | AXPDefinitionCategory[];
263
+ /**
264
+ * Optional sub-group within a parent category tab in the widget picker.
265
+ * Ignored on the "All" tab (widgets are grouped by parent category only).
266
+ */
267
+ subCategory?: AXPDefinitionCategory;
268
+ /**
269
+ * Which surfaces may offer this widget. The designer widget picker includes a widget only when this list
270
+ * intersects the requested groups (e.g. the layout designer requests `AXPWidgetGroupEnum.FormElement`).
271
+ * Use `AXPWidgetGroupEnum.BaseWidget` alone for types that must stay registered (filters, renderers, AI tools)
272
+ * but must not appear in form or dashboard pickers.
273
+ */
274
+ groups?: AXPWidgetGroup[];
275
+ properties?: AXPWidgetProperty[];
276
+ components: AXPWidgetConfigComponents;
277
+ meta?: AXPMetaData;
278
+ type: AXPExtractWidgetConfig<T>['type'];
279
+ designer?: AXPExtractWidgetConfig<T>['designer'];
280
+ options?: Record<string, any>;
281
+ defaultFilterWidgetName?: 'string-filter' | 'number-filter' | 'datetime-filter' | 'boolean-filter' | 'select-filter' | 'lookup-filter' | 'time-duration-filter' | string;
282
+ /**
283
+ * Optional layout for Change History. When set, this AXPWidgetNode is rendered for
284
+ * changes of this widget type instead of the default fieldKey/actionKey text.
285
+ * Context passed to renderer: the AXPActivityLogChange object.
286
+ * If omitted, the default display is used.
287
+ */
288
+ historyLayout?: AXPWidgetNode;
289
+ }
290
+ interface AXPExtendedWidget {
291
+ widget: AXPWidgetConfig;
292
+ parentName: string;
293
+ }
294
+ interface AXPLayoutBuilderStatusChangedEvent {
295
+ status: AXPPageStatus;
296
+ }
297
+
298
+ export { AXPPageStatus, AXPWidgetGroupEnum, AXPWidgetStatus, AXP_WIDGET_COLUMN_TOKEN, AXP_WIDGET_TOKEN, cloneProperty, createBooleanProperty, createNumberProperty, createSelectProperty, createStringProperty };
299
+ export type { AXPExtendedWidget, AXPExtractWidgetConfig, AXPLayoutBuilderStatusChangedEvent, AXPWidgetColumnNode, AXPWidgetColumnNodeToken, AXPWidgetComponentConfig, AXPWidgetConfig, AXPWidgetConfigComponents, AXPWidgetDesignerOptionsMap, AXPWidgetGroup, AXPWidgetNodeToken, AXPWidgetProperty, AXPWidgetPropertyGroup, AXPWidgetTypesMap, AXPWidgetViewType };