@acorex/platform 21.0.0-next.24 → 21.0.0-next.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 (118) hide show
  1. package/fesm2022/acorex-platform-auth.mjs +121 -27
  2. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  3. package/fesm2022/{acorex-platform-common-common-settings.provider-gyb6ohAE.mjs → acorex-platform-common-common-settings.provider-G9XcXXOG.mjs} +46 -4
  4. package/fesm2022/acorex-platform-common-common-settings.provider-G9XcXXOG.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-common.mjs +677 -267
  6. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-core.mjs +393 -111
  8. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-domain.mjs +554 -826
  10. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-builder.mjs +345 -59
  12. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  13. package/fesm2022/{acorex-platform-layout-components-binding-expression-editor-popup.component-Cb6Lk4Ch.mjs → acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs} +9 -9
  14. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-layout-components.mjs +3373 -872
  16. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-layout-designer.mjs +169 -154
  18. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-layout-entity.mjs +14645 -11533
  20. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-views.mjs +244 -170
  22. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-layout-widget-core.mjs +367 -408
  24. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  25. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-Dnbx_uY7.mjs → acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs} +10 -10
  26. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +1 -0
  27. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-B0omAUil.mjs → acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs} +30 -22
  28. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs.map +1 -0
  29. package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-D-HFZHNZ.mjs → acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs} +6 -7
  30. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +1 -0
  31. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-q30grR3z.mjs → acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs} +12 -12
  32. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +1 -0
  33. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs +111 -0
  34. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs.map +1 -0
  35. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-BJh1QJqp.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs} +7 -7
  36. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs.map +1 -0
  37. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component--rzP7scF.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs} +5 -5
  38. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs.map +1 -0
  39. package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-DHlgsHa7.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs} +6 -6
  40. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +1 -0
  41. package/fesm2022/acorex-platform-layout-widgets.mjs +5924 -4049
  42. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  43. package/fesm2022/acorex-platform-native.mjs +8 -7
  44. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  45. package/fesm2022/acorex-platform-runtime.mjs +220 -169
  46. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  47. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs +160 -0
  48. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs.map +1 -0
  49. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs +120 -0
  50. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs.map +1 -0
  51. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-di5w_3K2.mjs → acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs} +15 -22
  52. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs.map +1 -0
  53. package/fesm2022/{acorex-platform-themes-default-error-401.component-D9NZ-6L_.mjs → acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs} +4 -4
  54. package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +1 -0
  55. package/fesm2022/{acorex-platform-themes-default-error-404.component-CgB_tlPU.mjs → acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs} +4 -4
  56. package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +1 -0
  57. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +19 -0
  58. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +1 -0
  59. package/fesm2022/acorex-platform-themes-default.mjs +1667 -61
  60. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  61. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-Cmju9l91.mjs → acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs} +6 -6
  62. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +1 -0
  63. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-Cp5Th57U.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs} +6 -6
  64. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +1 -0
  65. package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +1 -1
  66. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-BQxoUmYL.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs} +4 -4
  67. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs.map +1 -0
  68. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-CTGy2kjJ.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs} +9 -9
  69. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs.map +1 -0
  70. package/fesm2022/acorex-platform-themes-shared.mjs +231 -227
  71. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  72. package/fesm2022/acorex-platform-workflow.mjs +208 -91
  73. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  74. package/fesm2022/acorex-platform.mjs.map +1 -1
  75. package/package.json +34 -34
  76. package/{auth/index.d.ts → types/acorex-platform-auth.d.ts} +14 -2
  77. package/{common/index.d.ts → types/acorex-platform-common.d.ts} +189 -16
  78. package/{core/index.d.ts → types/acorex-platform-core.d.ts} +178 -15
  79. package/{domain/index.d.ts → types/acorex-platform-domain.d.ts} +719 -413
  80. package/{layout/builder/index.d.ts → types/acorex-platform-layout-builder.d.ts} +91 -42
  81. package/{layout/components/index.d.ts → types/acorex-platform-layout-components.d.ts} +893 -138
  82. package/{layout/designer/index.d.ts → types/acorex-platform-layout-designer.d.ts} +9 -3
  83. package/{layout/entity/index.d.ts → types/acorex-platform-layout-entity.d.ts} +515 -26
  84. package/{layout/views/index.d.ts → types/acorex-platform-layout-views.d.ts} +44 -9
  85. package/{layout/widget-core/index.d.ts → types/acorex-platform-layout-widget-core.d.ts} +146 -95
  86. package/{layout/widgets/index.d.ts → types/acorex-platform-layout-widgets.d.ts} +506 -98
  87. package/{native/index.d.ts → types/acorex-platform-native.d.ts} +0 -7
  88. package/{runtime/index.d.ts → types/acorex-platform-runtime.d.ts} +237 -74
  89. package/{themes/default/index.d.ts → types/acorex-platform-themes-default.d.ts} +104 -4
  90. package/{workflow/index.d.ts → types/acorex-platform-workflow.d.ts} +33 -30
  91. package/fesm2022/acorex-platform-common-common-settings.provider-gyb6ohAE.mjs.map +0 -1
  92. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-Cb6Lk4Ch.mjs.map +0 -1
  93. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dnbx_uY7.mjs.map +0 -1
  94. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-B0omAUil.mjs.map +0 -1
  95. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-D-HFZHNZ.mjs.map +0 -1
  96. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-q30grR3z.mjs.map +0 -1
  97. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-fcCirNxz.mjs +0 -111
  98. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-fcCirNxz.mjs.map +0 -1
  99. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-BJh1QJqp.mjs.map +0 -1
  100. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component--rzP7scF.mjs.map +0 -1
  101. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-DHlgsHa7.mjs.map +0 -1
  102. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D_ex0nL2.mjs +0 -160
  103. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D_ex0nL2.mjs.map +0 -1
  104. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BhDLyC5P.mjs +0 -1611
  105. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BhDLyC5P.mjs.map +0 -1
  106. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-CgLUnYRq.mjs +0 -99
  107. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-CgLUnYRq.mjs.map +0 -1
  108. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-di5w_3K2.mjs.map +0 -1
  109. package/fesm2022/acorex-platform-themes-default-error-401.component-D9NZ-6L_.mjs.map +0 -1
  110. package/fesm2022/acorex-platform-themes-default-error-404.component-CgB_tlPU.mjs.map +0 -1
  111. package/fesm2022/acorex-platform-themes-default-error-offline.component-DlUrqVmj.mjs +0 -19
  112. package/fesm2022/acorex-platform-themes-default-error-offline.component-DlUrqVmj.mjs.map +0 -1
  113. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-Cmju9l91.mjs.map +0 -1
  114. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-Cp5Th57U.mjs.map +0 -1
  115. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BQxoUmYL.mjs.map +0 -1
  116. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-CTGy2kjJ.mjs.map +0 -1
  117. /package/{themes/shared/index.d.ts → types/acorex-platform-themes-shared.d.ts} +0 -0
  118. /package/{index.d.ts → types/acorex-platform.d.ts} +0 -0
@@ -6,7 +6,7 @@ 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 } from '@acorex/platform/core';
9
+ import { AXPActionMenuItem, AXPBreadcrumbItem, 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
12
  import { AXToastService } from '@acorex/components/toast';
@@ -16,7 +16,7 @@ import { AXPSessionService } from '@acorex/platform/auth';
16
16
  import { AXPHomePageService } from '@acorex/platform/common';
17
17
  import { AXBasePageComponent } from '@acorex/components/page';
18
18
  import * as _acorex_platform_layout_widget_core from '@acorex/platform/layout/widget-core';
19
- import { AXPWidgetNode, AXPPageStatus as AXPPageStatus$1, AXPWidgetContainerComponent, AXPWidgetCoreContextChangeEvent } from '@acorex/platform/layout/widget-core';
19
+ import { AXPWidgetNode, AXPPageStatus as AXPPageStatus$1, AXPWidgetContainerComponent } from '@acorex/platform/layout/widget-core';
20
20
  import * as _acorex_platform_layout_views from '@acorex/platform/layout/views';
21
21
  import { AXFormComponent } from '@acorex/components/form';
22
22
  import { Router, ActivatedRoute } from '@angular/router';
@@ -398,19 +398,28 @@ interface AXPLayoutDetailsViewPage {
398
398
  */
399
399
  content?: AXPPageContentItem[];
400
400
  tabs?: AXPLayoutDetailsViewTabItem[];
401
+ /**
402
+ * Static actions array (legacy, use getActions for reactive actions)
403
+ */
401
404
  actions?: AXPLayoutDetailsViewAction[];
405
+ /**
406
+ * Function to get actions dynamically (supports reactive updates from component instances)
407
+ */
408
+ getActions?: () => Promise<AXPLayoutDetailsViewAction[]>;
402
409
  isPrimary?: boolean;
403
410
  isReadonly?: boolean;
404
411
  settings?: {
405
412
  commands?: {
406
413
  accept?: {
407
414
  title: string;
415
+ icon?: string;
408
416
  color: string;
409
417
  visible?: string | boolean;
410
418
  command: AXPExecuteCommand;
411
419
  };
412
420
  reject?: {
413
421
  title: string;
422
+ icon?: string;
414
423
  color: string;
415
424
  visible?: string | boolean;
416
425
  command: AXPExecuteCommand;
@@ -430,8 +439,10 @@ interface AXPLayoutDetailsViewAdapter {
430
439
  breadcrumbs?: AXPBreadcrumbItem[];
431
440
  pages: AXPLayoutDetailsViewPage[];
432
441
  execute?: (command: AXPExecuteCommand, context: {}) => Promise<AXPExecuteCommandResult>;
433
- load?: (params?: Record<string, any>) => Promise<AXPExecuteCommandResult>;
442
+ load?: (params?: Record<string, unknown>) => Promise<AXPExecuteCommandResult>;
434
443
  exitUrl?: string;
444
+ getPageBadge?: (context: Record<string, unknown>, isDirty: boolean) => Promise<AXPBadge | null>;
445
+ getPageStatus?: (context: Record<string, unknown>, currentPage: AXPLayoutDetailsViewPage | null) => Promise<AXPPageStatus | null>;
435
446
  }
436
447
 
437
448
  declare const AXPLayoutDetailsViewViewModel: _angular_core.Type<{
@@ -448,6 +459,8 @@ declare const AXPLayoutDetailsViewViewModel: _angular_core.Type<{
448
459
  tabId: string;
449
460
  tab: AXPLayoutDetailsViewTabItem;
450
461
  }[]>>;
462
+ evaluatedPageContent: _angular_core.Signal<AXPWidgetNode[]>;
463
+ evaluatedTabContentsById: _angular_core.Signal<Record<string, AXPWidgetNode[]>>;
451
464
  icon: _angular_core.Signal<string | null>;
452
465
  content: _angular_core.Signal<_acorex_platform_layout_views.AXPPageContentItem[]>;
453
466
  showPages: _angular_core.Signal<boolean>;
@@ -471,12 +484,12 @@ declare const AXPLayoutDetailsViewViewModel: _angular_core.Type<{
471
484
  currentPageDescription: () => string | null;
472
485
  currentPagePrimaryActions: () => Promise<any>;
473
486
  currentPageSecondaryActions: () => Promise<any>;
474
- currentPageContent: () => _acorex_platform_layout_views.AXPPageContentItem[] | undefined;
487
+ currentPageContent: () => AXPWidgetNode[];
475
488
  currentPageTabs: () => AXPLayoutDetailsViewTabItem[] | undefined;
476
489
  setCurrentPage: (page: AXPLayoutDetailsViewPage | null) => void;
477
490
  setCurrentTab: (tab: AXPLayoutDetailsViewTabItem) => void;
478
- getCurrentTabContent: () => _acorex_platform_layout_widget_core.AXPWidgetNode[];
479
- getRenderedTabContent: (tabId: string) => _acorex_platform_layout_widget_core.AXPWidgetNode[];
491
+ getCurrentTabContent: () => AXPWidgetNode[];
492
+ getRenderedTabContent: (tabId: string) => AXPWidgetNode[];
480
493
  clearPageTabCache: (pageId: string) => void;
481
494
  title: () => string | null;
482
495
  backButtonTitle: () => string | null;
@@ -506,6 +519,8 @@ declare const AXPLayoutDetailsViewViewModel: _angular_core.Type<{
506
519
  tabId: string;
507
520
  tab: AXPLayoutDetailsViewTabItem;
508
521
  }>>;
522
+ evaluatedPageContent: AXPWidgetNode[];
523
+ evaluatedTabContentsById: Record<string, AXPWidgetNode[]>;
509
524
  }>>;
510
525
 
511
526
  declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent implements OnInit, OnDestroy {
@@ -525,6 +540,8 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
525
540
  tabId: string;
526
541
  tab: _acorex_platform_layout_views.AXPLayoutDetailsViewTabItem;
527
542
  }[]>>;
543
+ evaluatedPageContent: _angular_core.Signal<_acorex_platform_layout_widget_core.AXPWidgetNode[]>;
544
+ evaluatedTabContentsById: _angular_core.Signal<Record<string, _acorex_platform_layout_widget_core.AXPWidgetNode[]>>;
528
545
  icon: _angular_core.Signal<string | null>;
529
546
  content: _angular_core.Signal<_acorex_platform_layout_views.AXPPageContentItem[]>;
530
547
  showPages: _angular_core.Signal<boolean>;
@@ -548,7 +565,7 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
548
565
  currentPageDescription: () => string | null;
549
566
  currentPagePrimaryActions: () => Promise<any>;
550
567
  currentPageSecondaryActions: () => Promise<any>;
551
- currentPageContent: () => _acorex_platform_layout_views.AXPPageContentItem[] | undefined;
568
+ currentPageContent: () => _acorex_platform_layout_widget_core.AXPWidgetNode[];
552
569
  currentPageTabs: () => _acorex_platform_layout_views.AXPLayoutDetailsViewTabItem[] | undefined;
553
570
  setCurrentPage: (page: AXPLayoutDetailsViewPage | null) => void;
554
571
  setCurrentTab: (tab: _acorex_platform_layout_views.AXPLayoutDetailsViewTabItem) => void;
@@ -583,11 +600,14 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
583
600
  tabId: string;
584
601
  tab: _acorex_platform_layout_views.AXPLayoutDetailsViewTabItem;
585
602
  }>>;
603
+ evaluatedPageContent: _acorex_platform_layout_widget_core.AXPWidgetNode[];
604
+ evaluatedTabContentsById: Record<string, _acorex_platform_layout_widget_core.AXPWidgetNode[]>;
586
605
  }>;
587
606
  protected router: Router;
588
607
  protected route: ActivatedRoute;
589
608
  protected eventService: AXPBroadcastEventService;
590
609
  protected deviceService: AXPDeviceService;
610
+ private settingsService;
591
611
  private onSelectionChangeSubscription?;
592
612
  private readonly destroyed$;
593
613
  protected form: _angular_core.Signal<AXFormComponent | undefined>;
@@ -605,7 +625,7 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
605
625
  ngOnInit(): Promise<void>;
606
626
  ngAfterViewInit(): Promise<void>;
607
627
  ngOnDestroy(): void;
608
- protected handleOnContextChanged(e: AXPWidgetCoreContextChangeEvent): void;
628
+ protected handleOnContextChanged(e: AXPContextChangeEvent): void;
609
629
  protected handleSelectPage(page: AXPLayoutDetailsViewPage): void;
610
630
  protected getAllPrimaryActions(): Promise<AXPLayoutDetailsViewAction[]>;
611
631
  getPrimaryMenuItems(): Promise<AXPActionMenuItem[]>;
@@ -617,6 +637,8 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
617
637
  protected getPageTitle(): Promise<string>;
618
638
  getPageDescription(): Promise<string | null>;
619
639
  getBackButton(): Promise<AXPBackButton | null>;
640
+ getPageBadge(): Promise<AXPBadge | null>;
641
+ getPageStatus(): Promise<AXPPageStatus | null>;
620
642
  /**
621
643
  * Get entity data for status chip component
622
644
  */
@@ -628,5 +650,18 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
628
650
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPLayoutDetailsViewComponent, "axp-layout-details-view", never, { "adapter": { "alias": "adapter"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
629
651
  }
630
652
 
631
- export { AXPLayoutDetailsViewComponent, AXPLayoutDetailsViewViewModel, AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent, AXPPopupLayoutBase, AXPPopupLayoutBaseComponent, AXPPopupLayoutComponent };
653
+ /**
654
+ * Registry of rendered page component instances by component key.
655
+ * Used so page execute can delegate to the actual component instance in the view.
656
+ */
657
+ declare class AXPPageComponentInstanceRegistryService {
658
+ private readonly instances;
659
+ register(key: string, instance: AXPPageLayoutBaseComponent): void;
660
+ unregister(key: string): void;
661
+ get(key: string): AXPPageLayoutBaseComponent | null;
662
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPPageComponentInstanceRegistryService, never>;
663
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPPageComponentInstanceRegistryService>;
664
+ }
665
+
666
+ export { AXPLayoutDetailsViewComponent, AXPLayoutDetailsViewViewModel, AXPPageComponentInstanceRegistryService, AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent, AXPPopupLayoutBase, AXPPopupLayoutBaseComponent, AXPPopupLayoutComponent };
632
667
  export type { AXPLayoutDetailsViewAction, AXPLayoutDetailsViewAdapter, AXPLayoutDetailsViewPage, AXPLayoutDetailsViewTabItem, AXPPageContentItem };
@@ -1,9 +1,10 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { Signal, InjectionToken, ComponentRef, OnInit, EventEmitter, TemplateRef, Injector, WritableSignal, SimpleChanges, ModuleWithProviders } from '@angular/core';
3
- import * as _ngrx_signals from '@ngrx/signals';
2
+ import { Signal, InjectionToken, ComponentRef, OnInit, EventEmitter, TemplateRef, Injector, WritableSignal, SimpleChanges } from '@angular/core';
4
3
  import * as _acorex_platform_layout_widget_core from '@acorex/platform/layout/widget-core';
4
+ import * as _ngrx_signals from '@ngrx/signals';
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';
5
7
  import { AXValueChangedEvent, AXDataSource } from '@acorex/cdk/common';
6
- import { AXPOptionsData, AXPDataType, AXPExpression, AXPWidgetTriggers, AXPMetaData, AXPValueTransformerFunctions, AXPValidationRules, AXPPartialNested, AXPExpressionEvaluatorService } from '@acorex/platform/core';
7
8
  import { Subject, BehaviorSubject } from 'rxjs';
8
9
  import { AXDataTableColumnComponent } from '@acorex/components/data-table';
9
10
  import * as i7 from '@acorex/core/translation';
@@ -92,13 +93,17 @@ declare class AXPWidgetCoreService {
92
93
 
93
94
  interface AXPWidgetCategory {
94
95
  name: string;
95
- title: string;
96
+ title: AXPMultiLanguageString;
96
97
  order: number;
97
98
  }
99
+ /** Normalizes widget categories to an array for iteration and serialization. */
100
+ declare function normalizeWidgetCategories(categories?: AXPWidgetCategory | AXPWidgetCategory[]): AXPWidgetCategory[];
98
101
  declare const AXP_WIDGETS_LAYOUT_CATEGORY: AXPWidgetCategory;
99
102
  declare const AXP_WIDGETS_EDITOR_CATEGORY: AXPWidgetCategory;
100
103
  declare const AXP_WIDGETS_ACTION_CATEGORY: AXPWidgetCategory;
101
104
  declare const AXP_WIDGETS_ADVANCE_CATEGORY: AXPWidgetCategory;
105
+ /** Widgets exposed to AI assistants for structured rendering (see Widgets:GetForAI). */
106
+ declare const AXP_WIDGETS_AI_CATEGORY: AXPWidgetCategory;
102
107
  declare const AXP_WIDGETS_CATEGORIES: AXPWidgetCategory[];
103
108
 
104
109
  type AXPWidgetGroup = 'form-element' | 'dashboard-widget' | 'form-template' | 'property-editor' | 'meta-data' | 'setting-widget' | 'entity-widget' | 'utility-widget';
@@ -134,6 +139,7 @@ interface AXPWidgetTypesMap {
134
139
  pageLayout: 'page-layout';
135
140
  repeaterLayout: 'repeater-layout';
136
141
  textBlockLayout: 'text-block-layout';
142
+ alertBoxLayout: 'alert-box-layout';
137
143
  fileUploader: 'file-uploader';
138
144
  fileTypeExtension: 'file-type-extension';
139
145
  map: 'map';
@@ -195,6 +201,7 @@ interface AXPWidgetTypesMap {
195
201
  advancedWeather: 'advanced-weather';
196
202
  metaData: 'meta-data-editor';
197
203
  templateEditor: 'template-box-editor';
204
+ templateContentEditor: 'template-content-editor';
198
205
  themePaletteChooser: 'theme-palette-chooser';
199
206
  themeModeChooser: 'theme-mode-chooser';
200
207
  menuOrientationChooser: 'menu-orientation-chooser';
@@ -213,11 +220,15 @@ interface AXPWidgetTypesMap {
213
220
  entityList: 'entity-list';
214
221
  stepWizard: 'step-wizard';
215
222
  documentUploader: 'document-uploader';
223
+ documentFileTypeFilter: 'document-file-type-filter';
216
224
  editorJs: 'editor-js-editor';
217
225
  progressBar: 'progress-bar-editor';
218
226
  rate: 'rate-picker-editor';
227
+ entityDefinitionProvider: 'entity-definition-provider-editor';
219
228
  }
220
229
 
230
+ /** Inclusion mode for AI widget catalog queries (Widgets:GetForAI). */
231
+ type AXPWidgetAiCatalogMode = 'include' | 'exclude' | 'inherit';
221
232
  interface AXPWidgetPropertyGroup {
222
233
  name: string;
223
234
  title: string;
@@ -241,7 +252,7 @@ interface AXPWidgetProperty {
241
252
  interface: Required<Pick<AXPWidgetNode, 'path'>> & Omit<AXPWidgetNode, 'path'>;
242
253
  };
243
254
  validations?: AXPValidationRules;
244
- visible: boolean;
255
+ visible: boolean | AXPExpression;
245
256
  binding?: {
246
257
  enabled: boolean;
247
258
  /** When set, the expression is edited at path + '.' + optionKey (e.g. options.visibility). */
@@ -255,7 +266,7 @@ declare function createStringProperty(ctor: {
255
266
  title: string;
256
267
  path?: string;
257
268
  group: AXPWidgetPropertyGroup;
258
- visible?: boolean;
269
+ visible?: boolean | AXPExpression;
259
270
  }): AXPWidgetProperty;
260
271
  declare function createNumberProperty(ctor: {
261
272
  defaultValue?: number;
@@ -263,7 +274,7 @@ declare function createNumberProperty(ctor: {
263
274
  title: string;
264
275
  path?: string;
265
276
  group: AXPWidgetPropertyGroup;
266
- visible?: boolean;
277
+ visible?: boolean | AXPExpression;
267
278
  options?: {
268
279
  minValue?: number;
269
280
  maxValue?: number;
@@ -276,7 +287,7 @@ declare function createBooleanProperty(ctor: {
276
287
  title: string;
277
288
  path?: string;
278
289
  group: AXPWidgetPropertyGroup;
279
- visible?: boolean;
290
+ visible?: boolean | AXPExpression;
280
291
  }): AXPWidgetProperty;
281
292
  declare function createSelectProperty<T = string | {
282
293
  id: string;
@@ -288,7 +299,7 @@ declare function createSelectProperty<T = string | {
288
299
  title: string;
289
300
  path?: string;
290
301
  group: AXPWidgetPropertyGroup;
291
- visible?: boolean;
302
+ visible?: boolean | AXPExpression;
292
303
  }): AXPWidgetProperty;
293
304
  interface AXPWidgetNode {
294
305
  type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | keyof AXPWidgetTypesMap | string;
@@ -351,9 +362,14 @@ type AXPExtractWidgetConfig<T> = {
351
362
  interface AXPWidgetConfig<T = any> {
352
363
  name: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | keyof AXPWidgetTypesMap | string;
353
364
  alias?: string | string[];
354
- title: string;
365
+ title: AXPMultiLanguageString;
355
366
  icon?: string;
356
- description?: string;
367
+ description?: AXPMultiLanguageString;
368
+ /**
369
+ * Optional guidance for AI assistants (Widgets:GetForAI). Explains when and how to use this widget
370
+ * for structured output; unrelated to end-user UI copy.
371
+ */
372
+ aiDescription?: string | null;
357
373
  categories?: AXPWidgetCategory | AXPWidgetCategory[];
358
374
  groups?: AXPWidgetGroup[];
359
375
  properties?: AXPWidgetProperty[];
@@ -363,8 +379,21 @@ interface AXPWidgetConfig<T = any> {
363
379
  designer?: AXPExtractWidgetConfig<T>['designer'];
364
380
  options?: Record<string, any>;
365
381
  defaultFilterWidgetName?: 'string-filter' | 'number-filter' | 'datetime-filter' | 'boolean-filter' | 'select-filter' | 'lookup-filter' | 'time-duration-filter' | string;
382
+ /**
383
+ * Optional layout for Change History. When set, this AXPWidgetNode is rendered for
384
+ * changes of this widget type instead of the default fieldKey/actionKey text.
385
+ * Context passed to renderer: the AXPActivityLogChange object.
386
+ * If omitted, the default display is used.
387
+ */
388
+ historyLayout?: AXPWidgetNode;
389
+ /**
390
+ * Controls inclusion in AI-facing widget catalog queries (e.g. Widgets:GetForAI).
391
+ * `inherit` (default): include only when `categories` contains the AI category (`AXP_WIDGETS_AI_CATEGORY`).
392
+ * `include` / `exclude`: force include or exclude regardless of categories.
393
+ */
394
+ aiCatalog?: AXPWidgetAiCatalogMode;
366
395
  }
367
- interface extendedWidget {
396
+ interface AXPExtendedWidget {
368
397
  widget: AXPWidgetConfig;
369
398
  parentName: string;
370
399
  }
@@ -381,32 +410,32 @@ declare abstract class AXPBaseWidgetComponent<TOptions extends Record<string, un
381
410
  readonly host: HTMLDivElement;
382
411
  protected readonly layoutService: AXPWidgetCoreService;
383
412
  protected readonly contextService: {
384
- data: _angular_core.Signal<{}>;
385
- state: _angular_core.Signal<_acorex_platform_layout_widget_core.AXPWidgetCoreContextState>;
413
+ data: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
414
+ state: _angular_core.Signal<_acorex_platform_core.AXPContextState>;
386
415
  initialSnapshot: _angular_core.Signal<{}>;
387
416
  previousSnapshot: _angular_core.Signal<{}>;
388
- lastChange: _ngrx_signals.DeepSignal<_acorex_platform_layout_widget_core.AXPWidgetCoreContextChangeEvent>;
417
+ lastChange: _ngrx_signals.DeepSignal<_acorex_platform_core.AXPContextChangeEvent>;
389
418
  isChanged: _angular_core.Signal<boolean>;
390
419
  isReset: _angular_core.Signal<boolean>;
391
420
  isInitiated: _angular_core.Signal<boolean>;
392
421
  isEmpty: _angular_core.Signal<boolean>;
393
422
  isDirty: _angular_core.Signal<boolean>;
394
- snapshot: _angular_core.Signal<{}>;
423
+ snapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
395
424
  initial: _angular_core.Signal<{}>;
396
425
  previous: _angular_core.Signal<{}>;
397
- changeEvent: _angular_core.Signal<_acorex_platform_layout_widget_core.AXPWidgetCoreContextChangeEvent>;
426
+ changeEvent: _angular_core.Signal<_acorex_platform_core.AXPContextChangeEvent>;
398
427
  update: (path: string, value: any) => void;
399
- patch: (context: {}, skipDirtyTracking?: boolean) => void;
428
+ patch: (context: Record<string, any>, skipDirtyTracking?: boolean) => void;
400
429
  reset: () => void;
401
430
  set: (initialData: any) => void;
402
431
  getValue: (path: string) => any;
403
432
  hasValue: (path: string) => boolean;
404
433
  } & _ngrx_signals.StateSource<{
405
- data: {};
406
- state: _acorex_platform_layout_widget_core.AXPWidgetCoreContextState;
434
+ data: _acorex_platform_core.AXPContextData;
435
+ state: _acorex_platform_core.AXPContextState;
407
436
  initialSnapshot: {};
408
437
  previousSnapshot: {};
409
- lastChange: _acorex_platform_layout_widget_core.AXPWidgetCoreContextChangeEvent;
438
+ lastChange: _acorex_platform_core.AXPContextChangeEvent;
410
439
  }>;
411
440
  readonly config: _acorex_platform_layout_widget_core.AXPWidgetConfig<any>;
412
441
  readonly node: AXPWidgetNode;
@@ -731,74 +760,37 @@ declare abstract class AXPTableItemBaseLayoutWidgetComponent extends AXPTableIte
731
760
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPTableItemBaseLayoutWidgetComponent>;
732
761
  }
733
762
 
734
- type AXPWidgetCoreContextState = 'initiated' | 'restored' | 'changed' | 'patch';
735
- declare class AXPWidgetCoreContextChangeEvent {
736
- oldValue?: any;
737
- newValue?: any;
738
- path?: string;
739
- state: AXPWidgetCoreContextState;
740
- data: any;
741
- }
742
- declare const AXPWidgetCoreContextStore: _angular_core.Type<{
743
- data: _angular_core.Signal<{}>;
744
- state: _angular_core.Signal<AXPWidgetCoreContextState>;
745
- initialSnapshot: _angular_core.Signal<{}>;
746
- previousSnapshot: _angular_core.Signal<{}>;
747
- lastChange: _ngrx_signals.DeepSignal<AXPWidgetCoreContextChangeEvent>;
748
- isChanged: _angular_core.Signal<boolean>;
749
- isReset: _angular_core.Signal<boolean>;
750
- isInitiated: _angular_core.Signal<boolean>;
751
- isEmpty: _angular_core.Signal<boolean>;
752
- isDirty: _angular_core.Signal<boolean>;
753
- snapshot: _angular_core.Signal<{}>;
754
- initial: _angular_core.Signal<{}>;
755
- previous: _angular_core.Signal<{}>;
756
- changeEvent: _angular_core.Signal<AXPWidgetCoreContextChangeEvent>;
757
- update: (path: string, value: any) => void;
758
- patch: (context: {}, skipDirtyTracking?: boolean) => void;
759
- reset: () => void;
760
- set: (initialData: any) => void;
761
- getValue: (path: string) => any;
762
- hasValue: (path: string) => boolean;
763
- } & _ngrx_signals.StateSource<{
764
- data: {};
765
- state: AXPWidgetCoreContextState;
766
- initialSnapshot: {};
767
- previousSnapshot: {};
768
- lastChange: AXPWidgetCoreContextChangeEvent;
769
- }>>;
770
-
771
763
  declare class AXPWidgetContainerComponent {
772
764
  readonly contextService: {
773
- data: _angular_core.Signal<{}>;
774
- state: _angular_core.Signal<_acorex_platform_layout_widget_core.AXPWidgetCoreContextState>;
765
+ data: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
766
+ state: _angular_core.Signal<_acorex_platform_core.AXPContextState>;
775
767
  initialSnapshot: _angular_core.Signal<{}>;
776
768
  previousSnapshot: _angular_core.Signal<{}>;
777
- lastChange: _ngrx_signals.DeepSignal<AXPWidgetCoreContextChangeEvent>;
769
+ lastChange: _ngrx_signals.DeepSignal<AXPContextChangeEvent>;
778
770
  isChanged: _angular_core.Signal<boolean>;
779
771
  isReset: _angular_core.Signal<boolean>;
780
772
  isInitiated: _angular_core.Signal<boolean>;
781
773
  isEmpty: _angular_core.Signal<boolean>;
782
774
  isDirty: _angular_core.Signal<boolean>;
783
- snapshot: _angular_core.Signal<{}>;
775
+ snapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
784
776
  initial: _angular_core.Signal<{}>;
785
777
  previous: _angular_core.Signal<{}>;
786
- changeEvent: _angular_core.Signal<AXPWidgetCoreContextChangeEvent>;
778
+ changeEvent: _angular_core.Signal<AXPContextChangeEvent>;
787
779
  update: (path: string, value: any) => void;
788
- patch: (context: {}, skipDirtyTracking?: boolean) => void;
780
+ patch: (context: Record<string, any>, skipDirtyTracking?: boolean) => void;
789
781
  reset: () => void;
790
782
  set: (initialData: any) => void;
791
783
  getValue: (path: string) => any;
792
784
  hasValue: (path: string) => boolean;
793
785
  } & _ngrx_signals.StateSource<{
794
- data: {};
795
- state: _acorex_platform_layout_widget_core.AXPWidgetCoreContextState;
786
+ data: _acorex_platform_core.AXPContextData;
787
+ state: _acorex_platform_core.AXPContextState;
796
788
  initialSnapshot: {};
797
789
  previousSnapshot: {};
798
- lastChange: AXPWidgetCoreContextChangeEvent;
790
+ lastChange: AXPContextChangeEvent;
799
791
  }>;
800
792
  readonly builderService: AXPWidgetCoreService;
801
- readonly onContextChanged: EventEmitter<AXPWidgetCoreContextChangeEvent>;
793
+ readonly onContextChanged: EventEmitter<AXPContextChangeEvent>;
802
794
  set context(value: any);
803
795
  set functions(v: any);
804
796
  constructor();
@@ -810,16 +802,43 @@ declare class AXPWidgetContainerComponent {
810
802
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPWidgetContainerComponent, "axp-widgets-container", never, { "context": { "alias": "context"; "required": false; }; "functions": { "alias": "functions"; "required": false; }; }, { "onContextChanged": "onContextChanged"; }, never, ["*"], false, never>;
811
803
  }
812
804
 
805
+ /**
806
+ * Provider interface for widget definitions.
807
+ * Implement this interface and register via AXP_WIDGET_DEFINITION_PROVIDER to contribute widgets.
808
+ */
809
+ interface AXPWidgetDefinitionProvider {
810
+ getWidgets(): AXPWidgetConfig[];
811
+ getExtendedWidgets?(): AXPExtendedWidget[];
812
+ }
813
+ /**
814
+ * Injection token for widget definition providers.
815
+ * Modules register their widget providers using this token (multi: true).
816
+ */
817
+ declare const AXP_WIDGET_DEFINITION_PROVIDER: InjectionToken<AXPWidgetDefinitionProvider[]>;
818
+
819
+ /**
820
+ * Merges core + extended widgets the same way as AXPWidgetRegistryService.ensureBuilt().
821
+ * Use with concrete providers (e.g. AXPCoreWidgetsProvider, AXPEntityWidgetsProvider) in Node scripts without DI.
822
+ */
823
+ declare function buildWidgetRegistryMapFromProviders(providers: AXPWidgetDefinitionProvider[]): Map<string, AXPWidgetConfig>;
824
+ /**
825
+ * Aggregates widgets from all AXP_WIDGET_DEFINITION_PROVIDER instances.
826
+ * Token-based like AXP_MENU_PROVIDER / AXP_PERMISSION_DEFINITION_PROVIDER / AXP_SETTING_DEFINITION_PROVIDER.
827
+ * No separate registry - widgets come solely from providers.
828
+ */
813
829
  declare class AXPWidgetRegistryService {
814
- private types;
815
- static instance: AXPWidgetRegistryService;
830
+ private readonly _providers;
831
+ private _types;
816
832
  /**
817
- *
833
+ * Lazy-build widget map from all providers.
818
834
  */
819
- constructor();
820
- register(widget: AXPWidgetConfig): void;
821
- extend(parentName: string, widget: AXPWidgetConfig): void;
822
- resolve(name: string): AXPWidgetConfig | undefined;
835
+ private ensureBuilt;
836
+ resolve(name: string): AXPWidgetConfig;
837
+ /**
838
+ * Registered widget config when present; otherwise `undefined`. Does not throw — use when
839
+ * {@link resolve}'s value may be a non-widget id (e.g. data-source row id in dynamic field configurator).
840
+ */
841
+ getOptional(name: string): AXPWidgetConfig | undefined;
823
842
  all(): AXPWidgetConfig[];
824
843
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetRegistryService, never>;
825
844
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPWidgetRegistryService>;
@@ -918,32 +937,32 @@ declare class AXPWidgetRendererDirective {
918
937
  private injector;
919
938
  protected builderService: AXPWidgetCoreService;
920
939
  protected contextService: {
921
- data: _angular_core.Signal<{}>;
922
- state: _angular_core.Signal<_acorex_platform_layout_widget_core.AXPWidgetCoreContextState>;
940
+ data: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
941
+ state: _angular_core.Signal<_acorex_platform_core.AXPContextState>;
923
942
  initialSnapshot: _angular_core.Signal<{}>;
924
943
  previousSnapshot: _angular_core.Signal<{}>;
925
- lastChange: _ngrx_signals.DeepSignal<_acorex_platform_layout_widget_core.AXPWidgetCoreContextChangeEvent>;
944
+ lastChange: _ngrx_signals.DeepSignal<_acorex_platform_core.AXPContextChangeEvent>;
926
945
  isChanged: _angular_core.Signal<boolean>;
927
946
  isReset: _angular_core.Signal<boolean>;
928
947
  isInitiated: _angular_core.Signal<boolean>;
929
948
  isEmpty: _angular_core.Signal<boolean>;
930
949
  isDirty: _angular_core.Signal<boolean>;
931
- snapshot: _angular_core.Signal<{}>;
950
+ snapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
932
951
  initial: _angular_core.Signal<{}>;
933
952
  previous: _angular_core.Signal<{}>;
934
- changeEvent: _angular_core.Signal<_acorex_platform_layout_widget_core.AXPWidgetCoreContextChangeEvent>;
953
+ changeEvent: _angular_core.Signal<_acorex_platform_core.AXPContextChangeEvent>;
935
954
  update: (path: string, value: any) => void;
936
- patch: (context: {}, skipDirtyTracking?: boolean) => void;
955
+ patch: (context: Record<string, any>, skipDirtyTracking?: boolean) => void;
937
956
  reset: () => void;
938
957
  set: (initialData: any) => void;
939
958
  getValue: (path: string) => any;
940
959
  hasValue: (path: string) => boolean;
941
960
  } & _ngrx_signals.StateSource<{
942
- data: {};
943
- state: _acorex_platform_layout_widget_core.AXPWidgetCoreContextState;
961
+ data: _acorex_platform_core.AXPContextData;
962
+ state: _acorex_platform_core.AXPContextState;
944
963
  initialSnapshot: {};
945
964
  previousSnapshot: {};
946
- lastChange: _acorex_platform_layout_widget_core.AXPWidgetCoreContextChangeEvent;
965
+ lastChange: _acorex_platform_core.AXPContextChangeEvent;
947
966
  }>;
948
967
  protected widgetRegistery: AXPWidgetRegistryService;
949
968
  protected unsubscriber: AXUnsubscriber;
@@ -976,6 +995,15 @@ declare class AXPWidgetRendererDirective {
976
995
  private queueContextUpdate;
977
996
  private processBatchedUpdates;
978
997
  private isRelevantContextChange;
998
+ /**
999
+ * True when a context store path used in an expression (`context.eval`, `context.options`) is
1000
+ * affected by `changedPath`.
1001
+ */
1002
+ private contextStorePathDependsOnChangedPath;
1003
+ /**
1004
+ * Whether an expression template string reads context store paths affected by `changedPath`.
1005
+ */
1006
+ private expressionTextDependsOnContextPath;
979
1007
  private hasExpressionDependency;
980
1008
  private isPathAlias;
981
1009
  private getExpressionValueFromNode;
@@ -1008,28 +1036,51 @@ declare class AXPWidgetRendererDirective {
1008
1036
 
1009
1037
  interface AXPWidgetCoreModuleConfigs {
1010
1038
  widgets?: AXPWidgetConfig[];
1011
- extendedWidgets?: extendedWidget[];
1039
+ AXPExtendedWidgets?: AXPExtendedWidget[];
1012
1040
  }
1013
1041
  declare class AXPWidgetCoreModule {
1014
- static forRoot(config?: AXPWidgetCoreModuleConfigs): ModuleWithProviders<AXPWidgetCoreModule>;
1015
- static forChild(config?: AXPWidgetCoreModuleConfigs): ModuleWithProviders<AXPWidgetCoreModule>;
1016
- /**
1017
- * @ignore
1018
- */
1019
- constructor(instances: any[]);
1020
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetCoreModule, [{ optional: true; }]>;
1021
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXPWidgetCoreModule, [typeof AXPWidgetContainerComponent, typeof AXPWidgetColumnRendererComponent, typeof AXPWidgetRendererDirective], [typeof i4.CommonModule, typeof i5.PortalModule, typeof i6.AXSkeletonModule, typeof i4.CommonModule, typeof i7.AXTranslationModule], [typeof AXPWidgetContainerComponent, typeof AXPWidgetColumnRendererComponent, typeof AXPWidgetRendererDirective]>;
1042
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetCoreModule, never>;
1043
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXPWidgetCoreModule, [typeof AXPWidgetContainerComponent, typeof AXPWidgetColumnRendererComponent, typeof AXPWidgetRendererDirective], [typeof i4.CommonModule, typeof i5.PortalModule, typeof i6.AXSkeletonModule, typeof i7.AXTranslationModule], [typeof AXPWidgetContainerComponent, typeof AXPWidgetColumnRendererComponent, typeof AXPWidgetRendererDirective]>;
1022
1044
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXPWidgetCoreModule>;
1023
1045
  }
1024
1046
 
1047
+ interface AXPMetaDataFeatures {
1048
+ searchable?: {
1049
+ enabled: boolean;
1050
+ fullText: boolean;
1051
+ };
1052
+ filterable?: {
1053
+ enabled: boolean;
1054
+ inline: boolean;
1055
+ };
1056
+ sortable?: {
1057
+ enabled: boolean;
1058
+ };
1059
+ auditable?: {
1060
+ enabled: boolean;
1061
+ };
1062
+ }
1025
1063
  interface AXPMetaDataDefinition {
1026
1064
  name: string;
1027
1065
  title: string;
1028
1066
  defaultValue?: any;
1029
1067
  interface: string | AXPWidgetNode | (() => Promise<AXPWidgetNode>);
1068
+ features?: AXPMetaDataFeatures;
1030
1069
  }
1031
1070
 
1032
1071
  declare const AXPWidgetsCatalog: AXPWidgetTypesMap;
1033
1072
 
1034
- export { AXPBaseWidgetComponent, AXPBlockBaseLayoutWidgetComponent, AXPBoxModelLayoutWidgetComponent, AXPColumnWidgetComponent, AXPDataListWidgetComponent, AXPFlexBaseLayoutWidgetComponent, AXPFlexItemBaseLayoutWidgetComponent, AXPGridBaseLayoutWidgetComponent, AXPGridItemBaseLayoutWidgetComponent, AXPInlineBaseLayoutWidgetComponent, AXPLayoutBaseWidgetComponent, AXPPageStatus, AXPPropertyEditorHelper, AXPTableBaseLayoutWidgetComponent, AXPTableItemBaseLayoutWidgetComponent, AXPTableItemOpsBaseLayoutWidgetComponent, AXPValueWidgetComponent, AXPWidgetColumnRendererComponent, AXPWidgetContainerComponent, AXPWidgetCoreContextChangeEvent, AXPWidgetCoreContextStore, AXPWidgetCoreElement, AXPWidgetCoreModule, AXPWidgetCoreService, AXPWidgetGroupEnum, AXPWidgetRegistryService, AXPWidgetRendererDirective, AXPWidgetSerializationHelper, AXPWidgetStatus, AXPWidgetsCatalog, AXP_WIDGETS_ACTION_CATEGORY, AXP_WIDGETS_ADVANCE_CATEGORY, AXP_WIDGETS_CATEGORIES, AXP_WIDGETS_EDITOR_CATEGORY, AXP_WIDGETS_LAYOUT_CATEGORY, AXP_WIDGET_COLUMN_TOKEN, AXP_WIDGET_TOKEN, cloneProperty, createBooleanProperty, createNumberProperty, createSelectProperty, createStringProperty, findNonEmptyBreakpoints };
1035
- export type { AXPBorderBox, AXPBorderBoxString, AXPBreakpointValues, AXPBreakpoints, AXPClassMap, AXPExtractWidgetConfig, AXPFlexBoxString, AXPFlexItemBoxString, AXPGridBoxString, AXPGridBreakpointValues, AXPGridItemBoxString, AXPLayoutBuilderStatusChangedEvent, AXPMetaDataDefinition, AXPPropertyCorners, AXPPropertyEditorCornerValues, AXPPropertyEditorSideGeneric, AXPPropertyEditorSideValues, AXPPropertySides, AXPSpacingBox, AXPSpacingBoxString, AXPStyleMap, AXPWidgetCategory, AXPWidgetColumnNode, AXPWidgetColumnNodeToken, AXPWidgetComponentConfig, AXPWidgetConfig, AXPWidgetConfigComponents, AXPWidgetCoreContextState, AXPWidgetCoreElementAPI, AXPWidgetCoreElementAction, AXPWidgetCoreModuleConfigs, AXPWidgetDesignerOptionsMap, AXPWidgetGroup, AXPWidgetNode, AXPWidgetNodeToken, AXPWidgetProperty, AXPWidgetPropertyGroup, AXPWidgetRenderMode, AXPWidgetRendererDirectiveOptions, AXPWidgetTypesMap, AXPWidgetViewType, extendedWidget };
1073
+ /**
1074
+ * True when the widget declares the AI category (see {@link AXP_WIDGETS_AI_CATEGORY}).
1075
+ */
1076
+ declare function hasAiWidgetCategory(config: AXPWidgetConfig): boolean;
1077
+ /**
1078
+ * Resolves AI catalog visibility using {@link AXPWidgetConfig.aiCatalog} and the AI widget category.
1079
+ * - `exclude`: never listed.
1080
+ * - `include`: always listed (override when the widget cannot declare the AI category yet).
1081
+ * - `inherit` / omitted: listed only if {@link hasAiWidgetCategory} is true.
1082
+ */
1083
+ declare function isWidgetAiCatalogIncluded(config: AXPWidgetConfig): boolean;
1084
+
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 };