@acorex/platform 21.0.0-next.3 → 21.0.0-next.34

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 (117) hide show
  1. package/fesm2022/acorex-platform-auth.mjs +295 -45
  2. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  3. package/fesm2022/{acorex-platform-common-common-settings.provider-zhqNP3xb.mjs → acorex-platform-common-common-settings.provider-G9XcXXOG.mjs} +60 -4
  4. package/fesm2022/acorex-platform-common-common-settings.provider-G9XcXXOG.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-common.mjs +960 -319
  6. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-core.mjs +1352 -832
  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 +530 -154
  12. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs +121 -0
  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 +5969 -2347
  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 +15380 -9274
  20. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-views.mjs +393 -110
  22. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-layout-widget-core.mjs +511 -450
  24. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  25. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.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-CxrsI6Hn.mjs → acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs} +39 -16
  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-V31OpYah.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-BtZMBxYp.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-Ck7-wpT2.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs} +6 -6
  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-y8vjUiVs.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-Df1BFkSa.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 +7865 -4026
  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-eMBby9k4.mjs → acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs} +18 -25
  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-cfREo88K.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-CdCV5ZoA.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 +1717 -66
  60. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  61. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.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-9W52W6Nu.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-DTnfRy5f.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs} +11 -11
  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-DY0JtT1v.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 +563 -561
  71. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  72. package/fesm2022/acorex-platform-workflow.mjs +1735 -1750
  73. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  74. package/fesm2022/acorex-platform.mjs.map +1 -1
  75. package/package.json +31 -31
  76. package/{auth/index.d.ts → types/acorex-platform-auth.d.ts} +247 -10
  77. package/{common/index.d.ts → types/acorex-platform-common.d.ts} +492 -31
  78. package/{core/index.d.ts → types/acorex-platform-core.d.ts} +606 -392
  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} +128 -56
  81. package/types/acorex-platform-layout-components.d.ts +2927 -0
  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} +1133 -237
  84. package/{layout/views/index.d.ts → types/acorex-platform-layout-views.d.ts} +90 -31
  85. package/{layout/widget-core/index.d.ts → types/acorex-platform-layout-widget-core.d.ts} +206 -102
  86. package/{layout/widgets/index.d.ts → types/acorex-platform-layout-widgets.d.ts} +942 -137
  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} +113 -5
  90. package/{themes/shared/index.d.ts → types/acorex-platform-themes-shared.d.ts} +1 -1
  91. package/types/acorex-platform-workflow.d.ts +1806 -0
  92. package/fesm2022/acorex-platform-common-common-settings.provider-zhqNP3xb.mjs.map +0 -1
  93. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs.map +0 -1
  94. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs.map +0 -1
  95. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs.map +0 -1
  96. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs.map +0 -1
  97. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs.map +0 -1
  98. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs.map +0 -1
  99. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs.map +0 -1
  100. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs +0 -157
  101. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs.map +0 -1
  102. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs +0 -1542
  103. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs.map +0 -1
  104. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs +0 -101
  105. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs.map +0 -1
  106. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs.map +0 -1
  107. package/fesm2022/acorex-platform-themes-default-error-401.component-cfREo88K.mjs.map +0 -1
  108. package/fesm2022/acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs.map +0 -1
  109. package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs +0 -19
  110. package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs.map +0 -1
  111. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs.map +0 -1
  112. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs.map +0 -1
  113. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs.map +0 -1
  114. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs.map +0 -1
  115. package/layout/components/index.d.ts +0 -1669
  116. package/workflow/index.d.ts +0 -2443
  117. /package/{index.d.ts → types/acorex-platform.d.ts} +0 -0
@@ -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,12 +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
- signatureList: 'signature-list';
218
225
  progressBar: 'progress-bar-editor';
219
226
  rate: 'rate-picker-editor';
227
+ entityDefinitionProvider: 'entity-definition-provider-editor';
220
228
  }
221
229
 
230
+ /** Inclusion mode for AI widget catalog queries (Widgets:GetForAI). */
231
+ type AXPWidgetAiCatalogMode = 'include' | 'exclude' | 'inherit';
222
232
  interface AXPWidgetPropertyGroup {
223
233
  name: string;
224
234
  title: string;
@@ -230,15 +240,24 @@ interface AXPWidgetProperty {
230
240
  description?: string;
231
241
  group: AXPWidgetPropertyGroup;
232
242
  order?: number;
243
+ /**
244
+ * Controls whether the property title label is shown in the property viewer panel.
245
+ * Defaults to true when omitted.
246
+ */
247
+ showLabel?: boolean;
233
248
  schema: {
234
249
  dataType: AXPDataType;
235
250
  nullable?: boolean;
236
251
  defaultValue?: any | string | ((context: any | null) => any);
237
252
  interface: Required<Pick<AXPWidgetNode, 'path'>> & Omit<AXPWidgetNode, 'path'>;
238
253
  };
239
- options?: AXPOptionsData;
240
254
  validations?: AXPValidationRules;
241
- visible: boolean;
255
+ visible: boolean | AXPExpression;
256
+ binding?: {
257
+ enabled: boolean;
258
+ /** When set, the expression is edited at path + '.' + optionKey (e.g. options.visibility). */
259
+ optionKey?: string;
260
+ };
242
261
  }
243
262
  declare function cloneProperty(property: AXPWidgetProperty, values: AXPPartialNested<AXPWidgetProperty>): AXPWidgetProperty;
244
263
  declare function createStringProperty(ctor: {
@@ -247,7 +266,7 @@ declare function createStringProperty(ctor: {
247
266
  title: string;
248
267
  path?: string;
249
268
  group: AXPWidgetPropertyGroup;
250
- visible?: boolean;
269
+ visible?: boolean | AXPExpression;
251
270
  }): AXPWidgetProperty;
252
271
  declare function createNumberProperty(ctor: {
253
272
  defaultValue?: number;
@@ -255,7 +274,7 @@ declare function createNumberProperty(ctor: {
255
274
  title: string;
256
275
  path?: string;
257
276
  group: AXPWidgetPropertyGroup;
258
- visible?: boolean;
277
+ visible?: boolean | AXPExpression;
259
278
  options?: {
260
279
  minValue?: number;
261
280
  maxValue?: number;
@@ -268,7 +287,7 @@ declare function createBooleanProperty(ctor: {
268
287
  title: string;
269
288
  path?: string;
270
289
  group: AXPWidgetPropertyGroup;
271
- visible?: boolean;
290
+ visible?: boolean | AXPExpression;
272
291
  }): AXPWidgetProperty;
273
292
  declare function createSelectProperty<T = string | {
274
293
  id: string;
@@ -280,7 +299,7 @@ declare function createSelectProperty<T = string | {
280
299
  title: string;
281
300
  path?: string;
282
301
  group: AXPWidgetPropertyGroup;
283
- visible?: boolean;
302
+ visible?: boolean | AXPExpression;
284
303
  }): AXPWidgetProperty;
285
304
  interface AXPWidgetNode {
286
305
  type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | keyof AXPWidgetTypesMap | string;
@@ -289,7 +308,6 @@ interface AXPWidgetNode {
289
308
  name?: string;
290
309
  visible?: boolean | AXPExpression;
291
310
  defaultValue?: any;
292
- formula?: string;
293
311
  children?: AXPWidgetNode[];
294
312
  options?: AXPOptionsData;
295
313
  triggers?: AXPWidgetTriggers;
@@ -344,9 +362,14 @@ type AXPExtractWidgetConfig<T> = {
344
362
  interface AXPWidgetConfig<T = any> {
345
363
  name: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | keyof AXPWidgetTypesMap | string;
346
364
  alias?: string | string[];
347
- title: string;
365
+ title: AXPMultiLanguageString;
348
366
  icon?: string;
349
- 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;
350
373
  categories?: AXPWidgetCategory | AXPWidgetCategory[];
351
374
  groups?: AXPWidgetGroup[];
352
375
  properties?: AXPWidgetProperty[];
@@ -356,8 +379,21 @@ interface AXPWidgetConfig<T = any> {
356
379
  designer?: AXPExtractWidgetConfig<T>['designer'];
357
380
  options?: Record<string, any>;
358
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;
359
395
  }
360
- interface extendedWidget {
396
+ interface AXPExtendedWidget {
361
397
  widget: AXPWidgetConfig;
362
398
  parentName: string;
363
399
  }
@@ -374,32 +410,32 @@ declare abstract class AXPBaseWidgetComponent<TOptions extends Record<string, un
374
410
  readonly host: HTMLDivElement;
375
411
  protected readonly layoutService: AXPWidgetCoreService;
376
412
  protected readonly contextService: {
377
- data: _angular_core.Signal<{}>;
378
- 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>;
379
415
  initialSnapshot: _angular_core.Signal<{}>;
380
416
  previousSnapshot: _angular_core.Signal<{}>;
381
- lastChange: _ngrx_signals.DeepSignal<_acorex_platform_layout_widget_core.AXPWidgetCoreContextChangeEvent>;
417
+ lastChange: _ngrx_signals.DeepSignal<_acorex_platform_core.AXPContextChangeEvent>;
382
418
  isChanged: _angular_core.Signal<boolean>;
383
419
  isReset: _angular_core.Signal<boolean>;
384
420
  isInitiated: _angular_core.Signal<boolean>;
385
421
  isEmpty: _angular_core.Signal<boolean>;
386
422
  isDirty: _angular_core.Signal<boolean>;
387
- snapshot: _angular_core.Signal<{}>;
423
+ snapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
388
424
  initial: _angular_core.Signal<{}>;
389
425
  previous: _angular_core.Signal<{}>;
390
- changeEvent: _angular_core.Signal<_acorex_platform_layout_widget_core.AXPWidgetCoreContextChangeEvent>;
426
+ changeEvent: _angular_core.Signal<_acorex_platform_core.AXPContextChangeEvent>;
391
427
  update: (path: string, value: any) => void;
392
- patch: (context: {}) => void;
428
+ patch: (context: Record<string, any>, skipDirtyTracking?: boolean) => void;
393
429
  reset: () => void;
394
430
  set: (initialData: any) => void;
395
431
  getValue: (path: string) => any;
396
432
  hasValue: (path: string) => boolean;
397
433
  } & _ngrx_signals.StateSource<{
398
- data: {};
399
- state: _acorex_platform_layout_widget_core.AXPWidgetCoreContextState;
434
+ data: _acorex_platform_core.AXPContextData;
435
+ state: _acorex_platform_core.AXPContextState;
400
436
  initialSnapshot: {};
401
437
  previousSnapshot: {};
402
- lastChange: _acorex_platform_layout_widget_core.AXPWidgetCoreContextChangeEvent;
438
+ lastChange: _acorex_platform_core.AXPContextChangeEvent;
403
439
  }>;
404
440
  readonly config: _acorex_platform_layout_widget_core.AXPWidgetConfig<any>;
405
441
  readonly node: AXPWidgetNode;
@@ -459,7 +495,7 @@ declare abstract class AXPValueWidgetComponent<T = any | null, TOptions extends
459
495
  protected validationRules: _angular_core.Signal<AXPValidationRules>;
460
496
  protected extractValue(path: string): any;
461
497
  setValue(value: T | null | undefined): void;
462
- private detectFullPath;
498
+ protected detectFullPath(): void;
463
499
  protected handleValueChanged(e: AXValueChangedEvent<T>): void;
464
500
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPValueWidgetComponent<any, any>, never>;
465
501
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPValueWidgetComponent<any, any>>;
@@ -490,7 +526,7 @@ declare abstract class AXPColumnWidgetComponent<T = any | null | void> {
490
526
  protected readonly rowData: any;
491
527
  protected readonly nullText: any;
492
528
  protected readonly nullValue: T;
493
- protected value: _angular_core.Signal<T>;
529
+ protected value: () => T;
494
530
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPColumnWidgetComponent<any>, never>;
495
531
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPColumnWidgetComponent<any>>;
496
532
  }
@@ -599,6 +635,47 @@ declare class AXPPropertyEditorHelper {
599
635
  }
600
636
  declare function findNonEmptyBreakpoints<T>(values: AXPBreakpointValues<T>): AXPBreakpoints[];
601
637
 
638
+ /**
639
+ * Helper class for serializing and deserializing AXPWidgetNode to/from JSON
640
+ */
641
+ declare class AXPWidgetSerializationHelper {
642
+ /**
643
+ * Removes non-serializable properties from widget node
644
+ * @param node - The widget node to clean
645
+ * @param options - Serialization options
646
+ * @returns Cleaned widget node ready for JSON serialization
647
+ */
648
+ private static cleanNode;
649
+ /**
650
+ * Recursively removes functions from object properties
651
+ */
652
+ private static removeFunctions;
653
+ /**
654
+ * Converts AXPWidgetNode to JSON string
655
+ * @param node - The widget node to serialize
656
+ * @param options - Serialization options
657
+ * @returns JSON string representation of the widget node
658
+ */
659
+ static toJson(node: AXPWidgetNode, options?: {
660
+ removeMeta?: boolean;
661
+ removeFunctions?: boolean;
662
+ pretty?: boolean;
663
+ }): string;
664
+ /**
665
+ * Converts JSON string to AXPWidgetNode
666
+ * @param json - JSON string to deserialize
667
+ * @returns Parsed AXPWidgetNode object
668
+ * @throws Error if JSON is invalid or doesn't match AXPWidgetNode structure
669
+ */
670
+ static fromJson(json: string): AXPWidgetNode;
671
+ /**
672
+ * Removes meta property from widget node (similar to designer service)
673
+ * @param node - The widget node to process
674
+ * @returns Widget node without meta property
675
+ */
676
+ static removeMeta(node: AXPWidgetNode): AXPWidgetNode;
677
+ }
678
+
602
679
  declare abstract class AXPFlexBaseLayoutWidgetComponent extends AXPBlockBaseLayoutWidgetComponent {
603
680
  protected flex: _angular_core.Signal<AXPFlexBoxString | undefined>;
604
681
  hostFlexStyle: _angular_core.Signal<Record<string, string | number>>;
@@ -683,74 +760,37 @@ declare abstract class AXPTableItemBaseLayoutWidgetComponent extends AXPTableIte
683
760
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPTableItemBaseLayoutWidgetComponent>;
684
761
  }
685
762
 
686
- type AXPWidgetCoreContextState = 'initiated' | 'restored' | 'changed' | 'patch';
687
- declare class AXPWidgetCoreContextChangeEvent {
688
- oldValue?: any;
689
- newValue?: any;
690
- path?: string;
691
- state: AXPWidgetCoreContextState;
692
- data: any;
693
- }
694
- declare const AXPWidgetCoreContextStore: _angular_core.Type<{
695
- data: _angular_core.Signal<{}>;
696
- state: _angular_core.Signal<AXPWidgetCoreContextState>;
697
- initialSnapshot: _angular_core.Signal<{}>;
698
- previousSnapshot: _angular_core.Signal<{}>;
699
- lastChange: _ngrx_signals.DeepSignal<AXPWidgetCoreContextChangeEvent>;
700
- isChanged: _angular_core.Signal<boolean>;
701
- isReset: _angular_core.Signal<boolean>;
702
- isInitiated: _angular_core.Signal<boolean>;
703
- isEmpty: _angular_core.Signal<boolean>;
704
- isDirty: _angular_core.Signal<boolean>;
705
- snapshot: _angular_core.Signal<{}>;
706
- initial: _angular_core.Signal<{}>;
707
- previous: _angular_core.Signal<{}>;
708
- changeEvent: _angular_core.Signal<AXPWidgetCoreContextChangeEvent>;
709
- update: (path: string, value: any) => void;
710
- patch: (context: {}) => void;
711
- reset: () => void;
712
- set: (initialData: any) => void;
713
- getValue: (path: string) => any;
714
- hasValue: (path: string) => boolean;
715
- } & _ngrx_signals.StateSource<{
716
- data: {};
717
- state: AXPWidgetCoreContextState;
718
- initialSnapshot: {};
719
- previousSnapshot: {};
720
- lastChange: AXPWidgetCoreContextChangeEvent;
721
- }>>;
722
-
723
763
  declare class AXPWidgetContainerComponent {
724
764
  readonly contextService: {
725
- data: _angular_core.Signal<{}>;
726
- 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>;
727
767
  initialSnapshot: _angular_core.Signal<{}>;
728
768
  previousSnapshot: _angular_core.Signal<{}>;
729
- lastChange: _ngrx_signals.DeepSignal<AXPWidgetCoreContextChangeEvent>;
769
+ lastChange: _ngrx_signals.DeepSignal<AXPContextChangeEvent>;
730
770
  isChanged: _angular_core.Signal<boolean>;
731
771
  isReset: _angular_core.Signal<boolean>;
732
772
  isInitiated: _angular_core.Signal<boolean>;
733
773
  isEmpty: _angular_core.Signal<boolean>;
734
774
  isDirty: _angular_core.Signal<boolean>;
735
- snapshot: _angular_core.Signal<{}>;
775
+ snapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
736
776
  initial: _angular_core.Signal<{}>;
737
777
  previous: _angular_core.Signal<{}>;
738
- changeEvent: _angular_core.Signal<AXPWidgetCoreContextChangeEvent>;
778
+ changeEvent: _angular_core.Signal<AXPContextChangeEvent>;
739
779
  update: (path: string, value: any) => void;
740
- patch: (context: {}) => void;
780
+ patch: (context: Record<string, any>, skipDirtyTracking?: boolean) => void;
741
781
  reset: () => void;
742
782
  set: (initialData: any) => void;
743
783
  getValue: (path: string) => any;
744
784
  hasValue: (path: string) => boolean;
745
785
  } & _ngrx_signals.StateSource<{
746
- data: {};
747
- state: _acorex_platform_layout_widget_core.AXPWidgetCoreContextState;
786
+ data: _acorex_platform_core.AXPContextData;
787
+ state: _acorex_platform_core.AXPContextState;
748
788
  initialSnapshot: {};
749
789
  previousSnapshot: {};
750
- lastChange: AXPWidgetCoreContextChangeEvent;
790
+ lastChange: AXPContextChangeEvent;
751
791
  }>;
752
792
  readonly builderService: AXPWidgetCoreService;
753
- readonly onContextChanged: EventEmitter<AXPWidgetCoreContextChangeEvent>;
793
+ readonly onContextChanged: EventEmitter<AXPContextChangeEvent>;
754
794
  set context(value: any);
755
795
  set functions(v: any);
756
796
  constructor();
@@ -762,16 +802,43 @@ declare class AXPWidgetContainerComponent {
762
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>;
763
803
  }
764
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
+ */
765
829
  declare class AXPWidgetRegistryService {
766
- private types;
767
- static instance: AXPWidgetRegistryService;
830
+ private readonly _providers;
831
+ private _types;
768
832
  /**
769
- *
833
+ * Lazy-build widget map from all providers.
770
834
  */
771
- constructor();
772
- register(widget: AXPWidgetConfig): void;
773
- extend(parentName: string, widget: AXPWidgetConfig): void;
774
- 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;
775
842
  all(): AXPWidgetConfig[];
776
843
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetRegistryService, never>;
777
844
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPWidgetRegistryService>;
@@ -803,6 +870,13 @@ declare class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponen
803
870
  get renderCellTemplate(): TemplateRef<unknown>;
804
871
  headerTemplate: TemplateRef<unknown>;
805
872
  private _contentHeaderTemplate;
873
+ /**
874
+ * True when the row should show the expand icon: either hasChild is true (from server/initial load)
875
+ * or the row has loaded children (e.g. after refreshItemChildren when children go from 0 to 1).
876
+ */
877
+ protected hasExpandableRow(row: {
878
+ data?: Record<string, unknown>;
879
+ }): boolean;
806
880
  protected handleExpandRow(row: any): Promise<void>;
807
881
  get renderHeaderTemplate(): TemplateRef<unknown>;
808
882
  get loadingEnabled(): boolean;
@@ -863,32 +937,32 @@ declare class AXPWidgetRendererDirective {
863
937
  private injector;
864
938
  protected builderService: AXPWidgetCoreService;
865
939
  protected contextService: {
866
- data: _angular_core.Signal<{}>;
867
- 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>;
868
942
  initialSnapshot: _angular_core.Signal<{}>;
869
943
  previousSnapshot: _angular_core.Signal<{}>;
870
- lastChange: _ngrx_signals.DeepSignal<_acorex_platform_layout_widget_core.AXPWidgetCoreContextChangeEvent>;
944
+ lastChange: _ngrx_signals.DeepSignal<_acorex_platform_core.AXPContextChangeEvent>;
871
945
  isChanged: _angular_core.Signal<boolean>;
872
946
  isReset: _angular_core.Signal<boolean>;
873
947
  isInitiated: _angular_core.Signal<boolean>;
874
948
  isEmpty: _angular_core.Signal<boolean>;
875
949
  isDirty: _angular_core.Signal<boolean>;
876
- snapshot: _angular_core.Signal<{}>;
950
+ snapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
877
951
  initial: _angular_core.Signal<{}>;
878
952
  previous: _angular_core.Signal<{}>;
879
- changeEvent: _angular_core.Signal<_acorex_platform_layout_widget_core.AXPWidgetCoreContextChangeEvent>;
953
+ changeEvent: _angular_core.Signal<_acorex_platform_core.AXPContextChangeEvent>;
880
954
  update: (path: string, value: any) => void;
881
- patch: (context: {}) => void;
955
+ patch: (context: Record<string, any>, skipDirtyTracking?: boolean) => void;
882
956
  reset: () => void;
883
957
  set: (initialData: any) => void;
884
958
  getValue: (path: string) => any;
885
959
  hasValue: (path: string) => boolean;
886
960
  } & _ngrx_signals.StateSource<{
887
- data: {};
888
- state: _acorex_platform_layout_widget_core.AXPWidgetCoreContextState;
961
+ data: _acorex_platform_core.AXPContextData;
962
+ state: _acorex_platform_core.AXPContextState;
889
963
  initialSnapshot: {};
890
964
  previousSnapshot: {};
891
- lastChange: _acorex_platform_layout_widget_core.AXPWidgetCoreContextChangeEvent;
965
+ lastChange: _acorex_platform_core.AXPContextChangeEvent;
892
966
  }>;
893
967
  protected widgetRegistery: AXPWidgetRegistryService;
894
968
  protected unsubscriber: AXUnsubscriber;
@@ -921,6 +995,15 @@ declare class AXPWidgetRendererDirective {
921
995
  private queueContextUpdate;
922
996
  private processBatchedUpdates;
923
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;
924
1007
  private hasExpressionDependency;
925
1008
  private isPathAlias;
926
1009
  private getExpressionValueFromNode;
@@ -932,10 +1015,8 @@ declare class AXPWidgetRendererDirective {
932
1015
  private loadComponent;
933
1016
  private applyOptions;
934
1017
  private hasOptionsChanged;
935
- private checkFormulaForUpdate;
936
1018
  preprocessAndInitialOptions(obj: any, pathPrefix?: string): void;
937
1019
  updateOptionsBasedOnContext(): Promise<number>;
938
- updateValueBasedOnFormula(): Promise<void>;
939
1020
  updateVisibility(): Promise<void>;
940
1021
  private show;
941
1022
  private hide;
@@ -955,28 +1036,51 @@ declare class AXPWidgetRendererDirective {
955
1036
 
956
1037
  interface AXPWidgetCoreModuleConfigs {
957
1038
  widgets?: AXPWidgetConfig[];
958
- extendedWidgets?: extendedWidget[];
1039
+ AXPExtendedWidgets?: AXPExtendedWidget[];
959
1040
  }
960
1041
  declare class AXPWidgetCoreModule {
961
- static forRoot(config?: AXPWidgetCoreModuleConfigs): ModuleWithProviders<AXPWidgetCoreModule>;
962
- static forChild(config?: AXPWidgetCoreModuleConfigs): ModuleWithProviders<AXPWidgetCoreModule>;
963
- /**
964
- * @ignore
965
- */
966
- constructor(instances: any[]);
967
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetCoreModule, [{ optional: true; }]>;
968
- 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]>;
969
1044
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXPWidgetCoreModule>;
970
1045
  }
971
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
+ }
972
1063
  interface AXPMetaDataDefinition {
973
1064
  name: string;
974
1065
  title: string;
975
1066
  defaultValue?: any;
976
1067
  interface: string | AXPWidgetNode | (() => Promise<AXPWidgetNode>);
1068
+ features?: AXPMetaDataFeatures;
977
1069
  }
978
1070
 
979
1071
  declare const AXPWidgetsCatalog: AXPWidgetTypesMap;
980
1072
 
981
- 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, 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 };
982
- 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 };