@acorex/platform 21.0.0-next.40 → 21.0.0-next.41

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 (22) hide show
  1. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  2. package/fesm2022/acorex-platform-layout-builder.mjs +115 -29
  3. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  4. package/fesm2022/acorex-platform-layout-designer.mjs +59 -4
  5. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  6. package/fesm2022/acorex-platform-layout-entity.mjs +995 -545
  7. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  8. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  9. package/fesm2022/{acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs → acorex-platform-layout-widgets-repeater-widget-column.component-BGO75IMz.mjs} +9 -4
  10. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGO75IMz.mjs.map +1 -0
  11. package/fesm2022/acorex-platform-layout-widgets.mjs +418 -106
  12. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-workflow.mjs +2 -1
  14. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  15. package/package.json +1 -1
  16. package/types/acorex-platform-common.d.ts +14 -10
  17. package/types/acorex-platform-layout-builder.d.ts +20 -2
  18. package/types/acorex-platform-layout-designer.d.ts +35 -3
  19. package/types/acorex-platform-layout-entity.d.ts +46 -5
  20. package/types/acorex-platform-layout-widget-core.d.ts +2 -5
  21. package/types/acorex-platform-layout-widgets.d.ts +108 -51
  22. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs.map +0 -1
@@ -124,6 +124,7 @@ import { AXTooltipModule } from '@acorex/components/tooltip';
124
124
  import * as i1$l from '@acorex/components/alert';
125
125
  import { AXAlertModule } from '@acorex/components/alert';
126
126
  import { DomSanitizer } from '@angular/platform-browser';
127
+ import { AXP_ENTITY_DEFINITION_CRUD_SERVICE } from '@acorex/platform/domain';
127
128
 
128
129
  const AXP_STYLING_PROPERTY_GROUP = {
129
130
  name: 'styling',
@@ -1992,7 +1993,6 @@ const AXPButtonWidget = {
1992
1993
  icon: 'fa-light fa-play',
1993
1994
  categories: [AXP_WIDGETS_ACTION_CATEGORY],
1994
1995
  subCategory: AXP_WIDGETS_ACTION_SUB_CONTROLS,
1995
- aiDescription: 'Primary or secondary action button. Use when the answer should offer a clear next step (submit, navigate, run) with label and optional icon.',
1996
1996
  groups: [AXPWidgetGroupEnum.FormElement],
1997
1997
  type: 'action',
1998
1998
  properties: [
@@ -10503,7 +10503,6 @@ const AXPAvatarWidget = {
10503
10503
  icon: 'fa-light fa-image-user',
10504
10504
  categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
10505
10505
  subCategory: AXP_WIDGETS_ADVANCE_SUB_MEDIA,
10506
- aiDescription: 'User or entity avatar from a reference id/type. Use when the answer should show who or what something belongs to, not a full photo gallery.',
10507
10506
  groups: [AXPWidgetGroupEnum.EntityWidget],
10508
10507
  type: 'editor',
10509
10508
  properties: [
@@ -10745,7 +10744,6 @@ const AXPCodeEditorWidget = {
10745
10744
  icon: 'fa-light fa-code',
10746
10745
  categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
10747
10746
  subCategory: AXP_WIDGETS_ADVANCE_SUB_INPUT,
10748
- aiDescription: 'Syntax-highlighted code block. Use for snippets, scripts, or configs where line structure and language matter; bind source via data path or options.',
10749
10747
  groups: [AXPWidgetGroupEnum.FormElement],
10750
10748
  type: 'editor',
10751
10749
  properties: [
@@ -11059,7 +11057,6 @@ const AXPDataListWidget = {
11059
11057
  icon: 'fa-light fa-table',
11060
11058
  categories: [AXP_WIDGETS_LAYOUT_CATEGORY],
11061
11059
  subCategory: AXP_WIDGETS_LAYOUT_SUB_LISTS,
11062
- aiDescription: 'Use for tabular data: multiple rows with defined columns, paging, and optional row commands. Provide options.dataSource (rows) and options.columns.',
11063
11060
  groups: [AXPWidgetGroupEnum.FormElement],
11064
11061
  type: 'view',
11065
11062
  properties: [
@@ -12468,7 +12465,6 @@ const AXPFileUploaderWidget = {
12468
12465
  icon: 'fa-light fa-files',
12469
12466
  categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
12470
12467
  subCategory: AXP_WIDGETS_ADVANCE_SUB_MEDIA,
12471
- aiDescription: 'Use when the answer involves file attachments: list, upload, or download. Prefer when the user references documents or media beyond inline text.',
12472
12468
  groups: ['form-element'],
12473
12469
  type: 'editor',
12474
12470
  properties: [
@@ -13200,7 +13196,6 @@ const AXPGalleryWidget = {
13200
13196
  icon: 'fa-light fa-images',
13201
13197
  categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
13202
13198
  subCategory: AXP_WIDGETS_ADVANCE_SUB_MEDIA,
13203
- aiDescription: 'Image gallery with thumbnails and optional fullscreen. Use for multiple images or a carousel-like browse experience (not a single static image).',
13204
13199
  groups: [AXPWidgetGroupEnum.FormElement],
13205
13200
  properties: [
13206
13201
  AXP_NAME_PROPERTY,
@@ -13682,7 +13677,6 @@ const AXPImageMarkerWidget = {
13682
13677
  icon: 'fa-light fa-map-marker-alt',
13683
13678
  categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
13684
13679
  subCategory: AXP_WIDGETS_ADVANCE_SUB_MEDIA,
13685
- aiDescription: 'Use when highlighting points or regions on a base image (annotations, hotspots). Provide base image plus marker coordinates or overlays in options.',
13686
13680
  groups: [AXPWidgetGroupEnum.FormElement],
13687
13681
  type: 'editor',
13688
13682
  properties: [
@@ -13852,7 +13846,6 @@ const AXPJsonViewerWidget = {
13852
13846
  icon: 'fa-light fa-code',
13853
13847
  categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
13854
13848
  subCategory: AXP_WIDGETS_ADVANCE_SUB_DATA,
13855
- aiDescription: 'Shows JSON as an expandable tree. Prefer when the payload is structured data (objects/arrays) and hierarchy matters more than plain text.',
13856
13849
  groups: [AXPWidgetGroupEnum.BaseWidget],
13857
13850
  type: 'editor',
13858
13851
  properties: [
@@ -14321,7 +14314,6 @@ const AXPQrcodeWidget = {
14321
14314
  subCategory: AXP_WIDGETS_ADVANCE_SUB_MEDIA,
14322
14315
  icon: 'fa-light fa-qrcode',
14323
14316
  description: '@platform-layout-widgets:widgets.qrcode.description',
14324
- aiDescription: 'Renders a scannable QR code from text or URL (options.content). Use when the user should open a link or payload on a phone.',
14325
14317
  type: 'view',
14326
14318
  properties: [
14327
14319
  AXP_NAME_PROPERTY,
@@ -14614,7 +14606,6 @@ const AXPSchedulerPickerWidget = {
14614
14606
  icon: 'fa-light fa-calendar-clock',
14615
14607
  categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
14616
14608
  subCategory: AXP_WIDGETS_ADVANCE_SUB_INPUT,
14617
- aiDescription: 'Schedule or calendar picker. Use when the user selects dates, times, or recurring slots; bind value via data path.',
14618
14609
  type: 'editor',
14619
14610
  groups: [AXPWidgetGroupEnum.FormElement],
14620
14611
  properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
@@ -14955,7 +14946,6 @@ const AXPSignatureWidget = {
14955
14946
  icon: 'fa-light fa-file-signature',
14956
14947
  categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
14957
14948
  subCategory: AXP_WIDGETS_ADVANCE_SUB_INPUT,
14958
- aiDescription: 'Digital signature capture or display. Use when consent, approval, or handwritten input is required instead of typed text.',
14959
14949
  type: 'editor',
14960
14950
  properties: [
14961
14951
  AXP_NAME_PROPERTY,
@@ -15931,7 +15921,6 @@ const AXPStatusWidget = {
15931
15921
  icon: 'fa-light fa-circle-check',
15932
15922
  categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
15933
15923
  subCategory: AXP_WIDGETS_ADVANCE_SUB_DATA,
15934
- aiDescription: 'Visual status chip or badge for entity/state. Use when the answer should highlight a single workflow or lifecycle state (e.g. open, approved).',
15935
15924
  groups: [AXPWidgetGroupEnum.EntityWidget],
15936
15925
  defaultFilterWidgetName: 'status-filter',
15937
15926
  type: 'editor',
@@ -15968,7 +15957,6 @@ const AXPStopwatchWidget = {
15968
15957
  icon: 'fa-light fa-stopwatch',
15969
15958
  categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
15970
15959
  subCategory: AXP_WIDGETS_ADVANCE_SUB_TOOLS,
15971
- aiDescription: 'Live stopwatch or countdown. Use when the answer involves elapsed time, deadlines, or timed steps; configure mode (count-up vs count-down) in options.',
15972
15960
  groups: [AXPWidgetGroupEnum.UtilityWidget],
15973
15961
  type: 'view',
15974
15962
  properties: [
@@ -16581,7 +16569,7 @@ function mapDelegatedParameterDefinitionsToWidgetProperties(defs) {
16581
16569
  const p = createStringProperty({
16582
16570
  name: d.name,
16583
16571
  title: (d.title?.trim() || d.name),
16584
- path: d.name,
16572
+ path: `options.${d.name}`,
16585
16573
  group,
16586
16574
  visible: true,
16587
16575
  defaultValue: defaultStr,
@@ -18713,7 +18701,7 @@ const AXPRepeaterWidget = {
18713
18701
  component: () => Promise.resolve().then(function () { return repeaterWidgetDesigner_component; }).then((c) => c.AXPRepeaterWidgetDesignerComponent),
18714
18702
  },
18715
18703
  column: {
18716
- component: () => import('./acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs').then((c) => c.AXPRepeaterWidgetColumnComponent),
18704
+ component: () => import('./acorex-platform-layout-widgets-repeater-widget-column.component-BGO75IMz.mjs').then((c) => c.AXPRepeaterWidgetColumnComponent),
18717
18705
  },
18718
18706
  },
18719
18707
  };
@@ -18874,6 +18862,9 @@ class AXPStepWizardWidgetViewComponent extends AXPLayoutBaseWidgetComponent {
18874
18862
  };
18875
18863
  }
18876
18864
  actions() {
18865
+ if (this.definition().showActions === false) {
18866
+ return [];
18867
+ }
18877
18868
  return [
18878
18869
  {
18879
18870
  title: '@general:actions.previous.title',
@@ -18912,7 +18903,11 @@ class AXPStepWizardWidgetViewComponent extends AXPLayoutBaseWidgetComponent {
18912
18903
  <div class="ax-w-full ax-p-4">
18913
18904
  <ax-step-wizard class="ax-mb-4" [content]="wizardContent" #wizard [look]="definition().look || 'circular'">
18914
18905
  @for (step of steps(); track step.id) {
18915
- <ax-step-wizard-item [label]="step.title" [description]="step.description ?? ''" [id]="step.id">
18906
+ <ax-step-wizard-item
18907
+ [label]="(step.title | translate | async) ?? step.title"
18908
+ [description]="step.description ? ((step.description | translate | async) ?? step.description) : ''"
18909
+ [id]="step.id"
18910
+ >
18916
18911
  @if (step.icon) {
18917
18912
  <ax-icon [class]="step.icon"></ax-icon>
18918
18913
  }
@@ -18935,7 +18930,7 @@ class AXPStepWizardWidgetViewComponent extends AXPLayoutBaseWidgetComponent {
18935
18930
  <ax-button
18936
18931
  look="outline"
18937
18932
  [color]="definition().actions?.previous?.color ?? 'primary'"
18938
- [text]="definition().actions?.previous?.title ?? 'Previous'"
18933
+ [text]="((definition().actions?.previous?.title ?? 'Previous') | translate | async) ?? 'Previous'"
18939
18934
  [disabled]="wizard.isFirst()"
18940
18935
  (onClick)="handlePrevious(wizard)"
18941
18936
  >
@@ -18949,7 +18944,7 @@ class AXPStepWizardWidgetViewComponent extends AXPLayoutBaseWidgetComponent {
18949
18944
  @if (action.visible !== false) {
18950
18945
  <ax-button
18951
18946
  [color]="action.color ?? 'default'"
18952
- [text]="action.title"
18947
+ [text]="(action.title | translate | async) ?? action.title"
18953
18948
  (onClick)="executeStepAction(action)"
18954
18949
  >
18955
18950
  @if (action.icon) {
@@ -18962,7 +18957,7 @@ class AXPStepWizardWidgetViewComponent extends AXPLayoutBaseWidgetComponent {
18962
18957
  @if (!wizard.isLast()) {
18963
18958
  <ax-button
18964
18959
  [color]="definition().actions?.next?.color ?? 'primary'"
18965
- [text]="definition().actions?.next?.title ?? 'Next'"
18960
+ [text]="((definition().actions?.next?.title ?? 'Next') | translate | async) ?? 'Next'"
18966
18961
  (onClick)="handleNext(wizard)"
18967
18962
  >
18968
18963
  @if (definition().actions?.next?.icon) {
@@ -18972,7 +18967,7 @@ class AXPStepWizardWidgetViewComponent extends AXPLayoutBaseWidgetComponent {
18972
18967
  } @else {
18973
18968
  <ax-button
18974
18969
  [color]="definition().actions?.submit?.color ?? 'success'"
18975
- [text]="definition().actions?.submit?.title ?? 'Finish'"
18970
+ [text]="((definition().actions?.submit?.title ?? 'Finish') | translate | async) ?? 'Finish'"
18976
18971
  (onClick)="handleSubmit(wizard)"
18977
18972
  >
18978
18973
  @if (definition().actions?.submit?.icon) {
@@ -18984,17 +18979,19 @@ class AXPStepWizardWidgetViewComponent extends AXPLayoutBaseWidgetComponent {
18984
18979
  </div>
18985
18980
  }
18986
18981
  </div>
18987
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: AXStepWizardModule }, { kind: "component", type: i1$i.AXStepWizardComponent, selector: "ax-step-wizard", inputs: ["connector", "scrollToStep", "size", "look", "changeStep", "orientation", "content"], outputs: ["stepChanged"] }, { kind: "component", type: i1$i.AXStepWizardItemComponent, selector: "ax-step-wizard-item", inputs: ["disabled", "color", "step", "label", "description", "customTemplate", "active", "passed", "look", "state", "id"], outputs: ["activeChange", "passedChange", "lookChange", "stateChange"] }, { kind: "directive", type: i1$i.AXStepWizardContentDirective, selector: "[axStepWizardContent]", inputs: ["axStepWizardContent"], exportAs: ["axStepWizardContent"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "directive", type: i1$3.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
18982
+ `, isInline: true, styles: [":host ax-step-wizard-item>ax-content{display:none!important}\n"], dependencies: [{ kind: "ngmodule", type: AXStepWizardModule }, { kind: "component", type: i1$i.AXStepWizardComponent, selector: "ax-step-wizard", inputs: ["connector", "scrollToStep", "size", "look", "changeStep", "orientation", "content"], outputs: ["stepChanged"] }, { kind: "component", type: i1$i.AXStepWizardItemComponent, selector: "ax-step-wizard-item", inputs: ["disabled", "color", "step", "label", "description", "customTemplate", "active", "passed", "look", "state", "id"], outputs: ["activeChange", "passedChange", "lookChange", "stateChange"] }, { kind: "directive", type: i1$i.AXStepWizardContentDirective, selector: "[axStepWizardContent]", inputs: ["axStepWizardContent"], exportAs: ["axStepWizardContent"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "directive", type: i1$3.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
18988
18983
  }
18989
18984
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPStepWizardWidgetViewComponent, decorators: [{
18990
18985
  type: Component,
18991
- args: [{
18992
- selector: 'axp-step-wizard-widget-view',
18993
- template: `
18986
+ args: [{ selector: 'axp-step-wizard-widget-view', template: `
18994
18987
  <div class="ax-w-full ax-p-4">
18995
18988
  <ax-step-wizard class="ax-mb-4" [content]="wizardContent" #wizard [look]="definition().look || 'circular'">
18996
18989
  @for (step of steps(); track step.id) {
18997
- <ax-step-wizard-item [label]="step.title" [description]="step.description ?? ''" [id]="step.id">
18990
+ <ax-step-wizard-item
18991
+ [label]="(step.title | translate | async) ?? step.title"
18992
+ [description]="step.description ? ((step.description | translate | async) ?? step.description) : ''"
18993
+ [id]="step.id"
18994
+ >
18998
18995
  @if (step.icon) {
18999
18996
  <ax-icon [class]="step.icon"></ax-icon>
19000
18997
  }
@@ -19017,7 +19014,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
19017
19014
  <ax-button
19018
19015
  look="outline"
19019
19016
  [color]="definition().actions?.previous?.color ?? 'primary'"
19020
- [text]="definition().actions?.previous?.title ?? 'Previous'"
19017
+ [text]="((definition().actions?.previous?.title ?? 'Previous') | translate | async) ?? 'Previous'"
19021
19018
  [disabled]="wizard.isFirst()"
19022
19019
  (onClick)="handlePrevious(wizard)"
19023
19020
  >
@@ -19031,7 +19028,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
19031
19028
  @if (action.visible !== false) {
19032
19029
  <ax-button
19033
19030
  [color]="action.color ?? 'default'"
19034
- [text]="action.title"
19031
+ [text]="(action.title | translate | async) ?? action.title"
19035
19032
  (onClick)="executeStepAction(action)"
19036
19033
  >
19037
19034
  @if (action.icon) {
@@ -19044,7 +19041,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
19044
19041
  @if (!wizard.isLast()) {
19045
19042
  <ax-button
19046
19043
  [color]="definition().actions?.next?.color ?? 'primary'"
19047
- [text]="definition().actions?.next?.title ?? 'Next'"
19044
+ [text]="((definition().actions?.next?.title ?? 'Next') | translate | async) ?? 'Next'"
19048
19045
  (onClick)="handleNext(wizard)"
19049
19046
  >
19050
19047
  @if (definition().actions?.next?.icon) {
@@ -19054,7 +19051,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
19054
19051
  } @else {
19055
19052
  <ax-button
19056
19053
  [color]="definition().actions?.submit?.color ?? 'success'"
19057
- [text]="definition().actions?.submit?.title ?? 'Finish'"
19054
+ [text]="((definition().actions?.submit?.title ?? 'Finish') | translate | async) ?? 'Finish'"
19058
19055
  (onClick)="handleSubmit(wizard)"
19059
19056
  >
19060
19057
  @if (definition().actions?.submit?.icon) {
@@ -19066,12 +19063,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
19066
19063
  </div>
19067
19064
  }
19068
19065
  </div>
19069
- `,
19070
- standalone: true,
19071
- changeDetection: ChangeDetectionStrategy.OnPush,
19072
- encapsulation: ViewEncapsulation.None,
19073
- imports: [AXStepWizardModule, AXButtonModule, AXDecoratorModule, AXPWidgetCoreModule],
19074
- }]
19066
+ `, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXStepWizardModule, AXButtonModule, AXDecoratorModule, AXTranslationModule, AsyncPipe, AXPWidgetCoreModule], styles: [":host ax-step-wizard-item>ax-content{display:none!important}\n"] }]
19075
19067
  }], propDecorators: { wizard: [{ type: i0.ViewChild, args: ['wizard', { isSignal: true }] }] } });
19076
19068
 
19077
19069
  var stepWizardWidgetView_component = /*#__PURE__*/Object.freeze({
@@ -19085,7 +19077,6 @@ const AXPStepWizardWidget = {
19085
19077
  icon: 'fa-light fa-image-user',
19086
19078
  categories: [AXP_WIDGETS_LAYOUT_CATEGORY],
19087
19079
  subCategory: AXP_WIDGETS_LAYOUT_SUB_SURFACES,
19088
- aiDescription: 'Use for multi-step flows (wizard). Present when the user should follow ordered steps; children typically hold step content.',
19089
19080
  groups: [AXPWidgetGroupEnum.FormElement],
19090
19081
  type: 'view',
19091
19082
  properties: [],
@@ -24164,7 +24155,6 @@ const AXPCronJobWidget = {
24164
24155
  icon: 'fa-light fa-alarm-clock',
24165
24156
  categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
24166
24157
  subCategory: AXP_WIDGETS_ADVANCE_SUB_INPUT,
24167
- aiDescription: 'Cron expression editor and viewer. Use when the answer involves recurring schedules or job timing (not a one-off date picker).',
24168
24158
  type: 'editor',
24169
24159
  groups: [AXPWidgetGroupEnum.BaseWidget],
24170
24160
  properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
@@ -25686,7 +25676,6 @@ const AXPImageWidget = {
25686
25676
  icon: 'fa-light fa-image',
25687
25677
  categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
25688
25678
  subCategory: AXP_WIDGETS_ADVANCE_SUB_MEDIA,
25689
- aiDescription: 'Use for a single image (URL or embedded). Prefer over plain markdown when aspect ratio, sizing, or binary handling matters.',
25690
25679
  groups: [AXPWidgetGroupEnum.FormElement],
25691
25680
  type: 'editor',
25692
25681
  properties: [
@@ -25863,7 +25852,6 @@ const AXPListToolbarWidget = {
25863
25852
  type: 'view',
25864
25853
  categories: [AXP_WIDGETS_LAYOUT_CATEGORY],
25865
25854
  subCategory: AXP_WIDGETS_LAYOUT_SUB_LISTS,
25866
- aiDescription: 'Toolbar for list views: sort, filter, and column toggles. Use next to data-list when the user may refine or reorder rows.',
25867
25855
  groups: [AXPWidgetGroupEnum.UtilityWidget],
25868
25856
  icon: 'fa-light fa-square',
25869
25857
  properties: [
@@ -25909,7 +25897,6 @@ const AXPMapWidget = {
25909
25897
  icon: 'fa-light fa-map-location',
25910
25898
  categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
25911
25899
  subCategory: AXP_WIDGETS_ADVANCE_SUB_TOOLS,
25912
- aiDescription: 'Use when the answer involves locations, routes, or areas on a map. Pass markers, polygons, or center/zoom via options; suitable for “where”, “near”, or geographic summaries.',
25913
25900
  groups: [AXPWidgetGroupEnum.FormElement],
25914
25901
  type: 'editor',
25915
25902
  properties: [
@@ -28201,6 +28188,7 @@ const AXPGridWidget = {
28201
28188
  categories: AXP_WIDGETS_LAYOUT_CATEGORY,
28202
28189
  subCategory: AXP_WIDGETS_LAYOUT_SUB_GRID,
28203
28190
  groups: [AXPWidgetGroupEnum.FormElement],
28191
+ description: '@platform-layout-widgets:widgets.grid-layout.description',
28204
28192
  icon: 'fa-light fa-grid',
28205
28193
  properties: [
28206
28194
  AXP_NAME_PROPERTY,
@@ -28441,6 +28429,7 @@ const AXPGridItemWidget = {
28441
28429
  categories: AXP_WIDGETS_LAYOUT_CATEGORY,
28442
28430
  subCategory: AXP_WIDGETS_LAYOUT_SUB_GRID,
28443
28431
  // groups: [AXPWidgetGroupEnum.FormElement],
28432
+ description: '@platform-layout-widgets:widgets.grid-item-layout.description',
28444
28433
  icon: 'fa-light fa-objects-column',
28445
28434
  properties: [
28446
28435
  AXP_NAME_PROPERTY,
@@ -28471,7 +28460,6 @@ const AXPAlertBoxWidget = {
28471
28460
  icon: 'fa-light fa-circle-info',
28472
28461
  categories: [AXP_WIDGETS_LAYOUT_CATEGORY],
28473
28462
  subCategory: AXP_WIDGETS_LAYOUT_SUB_SURFACES,
28474
- aiDescription: 'Use for notices: success, warning, danger, or info callouts with title and body. Prefer over plain text when severity or emphasis should be visible.',
28475
28463
  groups: [AXPWidgetGroupEnum.FormElement],
28476
28464
  type: 'view',
28477
28465
  properties: [
@@ -29185,7 +29173,6 @@ const AXPTabSetWidget = {
29185
29173
  type: 'view',
29186
29174
  categories: [AXP_WIDGETS_LAYOUT_CATEGORY],
29187
29175
  subCategory: AXP_WIDGETS_LAYOUT_SUB_TABS,
29188
- aiDescription: 'Use to split content into labeled tabs. Pair with tabset-item children; each tab should map to one logical section of the answer.',
29189
29176
  groups: [AXPWidgetGroupEnum.FormElement],
29190
29177
  icon: 'fa-light fa-square',
29191
29178
  properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
@@ -29273,7 +29260,6 @@ const AXPTabSetItemWidget = {
29273
29260
  type: 'view',
29274
29261
  categories: [AXP_WIDGETS_LAYOUT_CATEGORY],
29275
29262
  subCategory: AXP_WIDGETS_LAYOUT_SUB_TABS,
29276
- aiDescription: 'Single tab panel inside a tabset. Use one item per tab label; put the tab content in the slot or bound child widgets.',
29277
29263
  groups: [AXPWidgetGroupEnum.FormElement],
29278
29264
  icon: 'fa-light fa-square',
29279
29265
  properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
@@ -29321,7 +29307,6 @@ const AXPTextBlockWidget = {
29321
29307
  icon: 'fa-light fa-text',
29322
29308
  categories: [AXP_WIDGETS_LAYOUT_CATEGORY],
29323
29309
  subCategory: AXP_WIDGETS_LAYOUT_SUB_SURFACES,
29324
- aiDescription: 'Use for rich text blocks (options.content) when the answer needs structured prose beyond a single paragraph; supports inline formatting from the rich-text renderer.',
29325
29310
  groups: [AXPWidgetGroupEnum.FormElement],
29326
29311
  type: 'view',
29327
29312
  properties: [
@@ -29987,62 +29972,326 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
29987
29972
  }]
29988
29973
  }] });
29989
29974
 
29975
+ //#region ---- Types ----
29976
+ /** AI agent catalog `name` values that scope {@link AXPGetWidgetsForAIQuery} list/detail rows. */
29977
+ const AXP_WIDGET_AI_AGENT_FORM_LAYOUT = 'widget-form-layout';
29978
+ const AXP_WIDGET_AI_AGENT_CHART_LAYOUT = 'widget-chart-layout';
29979
+ const AXP_WIDGET_AI_AGENT_DASHBOARD_LAYOUT = 'widget-dashboard-layout';
29980
+ const AXP_WIDGET_AI_AGENT_NAMES = [
29981
+ AXP_WIDGET_AI_AGENT_FORM_LAYOUT,
29982
+ AXP_WIDGET_AI_AGENT_CHART_LAYOUT,
29983
+ AXP_WIDGET_AI_AGENT_DASHBOARD_LAYOUT,
29984
+ ];
29985
+ //#endregion
29986
+ //#region ---- Agent scope (catalog filtering) ----
29987
+ const DASHBOARD_WIDGET_NAME_PREFIX = 'DashboardManagement:Widget:Dashboard:';
29988
+ const CHART_BUILDER_SUBCATEGORIES = new Set([
29989
+ 'dashboard-chart-cartesian',
29990
+ 'dashboard-chart-radial',
29991
+ 'dashboard-chart-specialized',
29992
+ ]);
29993
+ function isValidWidgetAiAgent(agent) {
29994
+ return AXP_WIDGET_AI_AGENT_NAMES.includes(agent);
29995
+ }
29996
+ function readSubCategoryNameFromMetadata(metadata) {
29997
+ if (metadata == null) {
29998
+ return undefined;
29999
+ }
30000
+ const raw = metadata['subCategory'];
30001
+ if (typeof raw !== 'object' || raw === null || Array.isArray(raw)) {
30002
+ return undefined;
30003
+ }
30004
+ const n = raw['name'];
30005
+ return typeof n === 'string' ? n : undefined;
30006
+ }
30007
+ /**
30008
+ * Returns whether a persisted catalog row is visible to the given delegated AI agent.
30009
+ */
30010
+ function matchesWidgetAiAgent(agent, definitionName, metadata) {
30011
+ const isDashboardTile = definitionName.startsWith(DASHBOARD_WIDGET_NAME_PREFIX);
30012
+ const sub = readSubCategoryNameFromMetadata(metadata);
30013
+ const isChartSpecialistSub = sub != null && CHART_BUILDER_SUBCATEGORIES.has(sub);
30014
+ switch (agent) {
30015
+ case AXP_WIDGET_AI_AGENT_FORM_LAYOUT:
30016
+ return !isDashboardTile;
30017
+ case AXP_WIDGET_AI_AGENT_CHART_LAYOUT:
30018
+ return isDashboardTile && isChartSpecialistSub;
30019
+ case AXP_WIDGET_AI_AGENT_DASHBOARD_LAYOUT:
30020
+ return isDashboardTile && !isChartSpecialistSub;
30021
+ default:
30022
+ return false;
30023
+ }
30024
+ }
29990
30025
  //#endregion
29991
30026
  //#region ---- Serialization ----
29992
30027
  const AI_WIDGET_LOCALE = 'en-US';
30028
+ const CATALOG_UNAVAILABLE = 'Widget catalog is not available. Ensure entity definition storage provides AXP_ENTITY_DEFINITION_CRUD_SERVICE.';
30029
+ const AGENT_REQUIRED_ERROR = `Parameter "agent" is required and must be one of: ${AXP_WIDGET_AI_AGENT_NAMES.join(', ')}.`;
30030
+ function invalidAgentErrorMessage(agent) {
30031
+ return `Invalid "agent" value "${agent}". Expected one of: ${AXP_WIDGET_AI_AGENT_NAMES.join(', ')}.`;
30032
+ }
29993
30033
  function resolveWidgetLabelForAi(value) {
29994
30034
  if (value == null || value === '') {
29995
30035
  return '';
29996
30036
  }
29997
30037
  return resolveMultiLanguageString(value, AI_WIDGET_LOCALE);
29998
30038
  }
29999
- function toSerializableComponents(config) {
30000
- const out = {};
30001
- const modes = ['designer', 'view', 'edit', 'print', 'column', 'filter'];
30002
- for (const m of modes) {
30003
- const entry = config.components[m];
30004
- if (entry) {
30005
- out[m] = {
30006
- available: true,
30007
- ...(entry.properties?.length ? { properties: entry.properties } : {}),
30008
- };
30039
+ function parseMetadataJson(metadataJson) {
30040
+ if (metadataJson == null || metadataJson.trim() === '') {
30041
+ return null;
30042
+ }
30043
+ try {
30044
+ const parsed = JSON.parse(metadataJson);
30045
+ return typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed)
30046
+ ? parsed
30047
+ : null;
30048
+ }
30049
+ catch {
30050
+ return null;
30051
+ }
30052
+ }
30053
+ function readAiTagsFromMetadata(metadata) {
30054
+ if (metadata == null) {
30055
+ return undefined;
30056
+ }
30057
+ const ai = metadata['ai'];
30058
+ if (typeof ai !== 'object' || ai === null) {
30059
+ return undefined;
30060
+ }
30061
+ const tags = ai['tags'];
30062
+ if (!Array.isArray(tags)) {
30063
+ return undefined;
30064
+ }
30065
+ const out = tags.filter((t) => typeof t === 'string');
30066
+ return out.length > 0 ? out : undefined;
30067
+ }
30068
+ function metadataCategoriesToList(metadata) {
30069
+ const raw = metadata?.['categories'];
30070
+ if (raw == null) {
30071
+ return [];
30072
+ }
30073
+ const list = normalizeDefinitionCategories(raw);
30074
+ return list.map((c) => ({
30075
+ name: c.name,
30076
+ title: resolveWidgetLabelForAi(c.title) || c.name,
30077
+ order: c.order,
30078
+ }));
30079
+ }
30080
+ function readInterfaceName(iface) {
30081
+ if (typeof iface !== 'object' || iface === null) {
30082
+ return '';
30083
+ }
30084
+ const n = iface['name'];
30085
+ return typeof n === 'string' ? n : '';
30086
+ }
30087
+ function mapBindingHints(raw) {
30088
+ if (typeof raw !== 'object' || raw === null) {
30089
+ return undefined;
30090
+ }
30091
+ const b = raw;
30092
+ const strategies = Array.isArray(b['strategies'])
30093
+ ? b['strategies'].filter((x) => typeof x === 'string')
30094
+ : undefined;
30095
+ const examples = Array.isArray(b['examples'])
30096
+ ? b['examples'].filter((x) => typeof x === 'string')
30097
+ : undefined;
30098
+ const notes = typeof b['notes'] === 'string' ? b['notes'] : undefined;
30099
+ if (!(strategies?.length ?? 0) && !(examples?.length ?? 0) && notes == null) {
30100
+ return undefined;
30101
+ }
30102
+ return {
30103
+ ...(strategies?.length ? { strategies } : {}),
30104
+ ...(examples?.length ? { examples } : {}),
30105
+ ...(notes != null ? { notes } : {}),
30106
+ };
30107
+ }
30108
+ function mapInputsForAi(rows) {
30109
+ if (!Array.isArray(rows)) {
30110
+ return [];
30111
+ }
30112
+ const out = [];
30113
+ for (const row of rows) {
30114
+ if (typeof row !== 'object' || row === null) {
30115
+ continue;
30009
30116
  }
30117
+ const r = row;
30118
+ const name = typeof r['name'] === 'string' ? r['name'] : '';
30119
+ if (!name) {
30120
+ continue;
30121
+ }
30122
+ const titleRaw = r['title'];
30123
+ const title = typeof titleRaw === 'string' ? resolveWidgetLabelForAi(titleRaw) || titleRaw : name;
30124
+ const descRaw = r['description'];
30125
+ const description = descRaw != null && typeof descRaw === 'string' && descRaw !== ''
30126
+ ? resolveWidgetLabelForAi(descRaw) || descRaw
30127
+ : undefined;
30128
+ const interfaceWidgetName = readInterfaceName(r['interface']);
30129
+ const bindingHints = mapBindingHints(r['bindingHints']);
30130
+ out.push({
30131
+ name,
30132
+ title,
30133
+ ...(description != null ? { description } : {}),
30134
+ interfaceWidgetName,
30135
+ ...(bindingHints != null ? { bindingHints } : {}),
30136
+ });
30137
+ }
30138
+ return out;
30139
+ }
30140
+ function mapOutputsForAi(rows) {
30141
+ if (!Array.isArray(rows)) {
30142
+ return [];
30143
+ }
30144
+ const out = [];
30145
+ for (const row of rows) {
30146
+ if (typeof row !== 'object' || row === null) {
30147
+ continue;
30148
+ }
30149
+ const r = row;
30150
+ const name = typeof r['name'] === 'string' ? r['name'] : '';
30151
+ if (!name) {
30152
+ continue;
30153
+ }
30154
+ const titleRaw = r['title'];
30155
+ const title = typeof titleRaw === 'string' ? resolveWidgetLabelForAi(titleRaw) || titleRaw : name;
30156
+ const descRaw = r['description'];
30157
+ const description = descRaw != null && typeof descRaw === 'string' && descRaw !== ''
30158
+ ? resolveWidgetLabelForAi(descRaw) || descRaw
30159
+ : undefined;
30160
+ const interfaceWidgetName = readInterfaceName(r['interface']);
30161
+ out.push({
30162
+ name,
30163
+ title,
30164
+ ...(description != null ? { description } : {}),
30165
+ interfaceWidgetName,
30166
+ });
30010
30167
  }
30011
30168
  return out;
30012
30169
  }
30013
- function toSerializableWidget(config) {
30170
+ function mapAiBlockForAi(raw) {
30171
+ if (typeof raw !== 'object' || raw === null) {
30172
+ return undefined;
30173
+ }
30174
+ const a = raw;
30175
+ const shortDescription = typeof a['shortDescription'] === 'string'
30176
+ ? resolveWidgetLabelForAi(a['shortDescription']) || a['shortDescription']
30177
+ : undefined;
30178
+ const instruction = typeof a['instruction'] === 'string'
30179
+ ? resolveWidgetLabelForAi(a['instruction']) || a['instruction']
30180
+ : undefined;
30181
+ const tags = Array.isArray(a['tags'])
30182
+ ? a['tags'].filter((t) => typeof t === 'string')
30183
+ : undefined;
30184
+ let usage;
30185
+ const usageRaw = a['usage'];
30186
+ if (typeof usageRaw === 'object' && usageRaw !== null) {
30187
+ const u = usageRaw;
30188
+ const whenToUse = Array.isArray(u['whenToUse'])
30189
+ ? u['whenToUse']
30190
+ .map((x) => (typeof x === 'string' ? resolveWidgetLabelForAi(x) || x : ''))
30191
+ .filter((s) => s !== '')
30192
+ : undefined;
30193
+ const avoidWhen = Array.isArray(u['avoidWhen'])
30194
+ ? u['avoidWhen']
30195
+ .map((x) => (typeof x === 'string' ? resolveWidgetLabelForAi(x) || x : ''))
30196
+ .filter((s) => s !== '')
30197
+ : undefined;
30198
+ const followUpTools = Array.isArray(u['followUpTools'])
30199
+ ? u['followUpTools'].filter((x) => typeof x === 'string')
30200
+ : undefined;
30201
+ if ((whenToUse?.length ?? 0) > 0 || (avoidWhen?.length ?? 0) > 0 || (followUpTools?.length ?? 0) > 0) {
30202
+ usage = {
30203
+ ...(whenToUse?.length ? { whenToUse } : {}),
30204
+ ...(avoidWhen?.length ? { avoidWhen } : {}),
30205
+ ...(followUpTools?.length ? { followUpTools } : {}),
30206
+ };
30207
+ }
30208
+ }
30209
+ let renderSurfaces;
30210
+ const renderSurfacesRaw = a['renderSurfaces'];
30211
+ if (Array.isArray(renderSurfacesRaw)) {
30212
+ const mapped = renderSurfacesRaw
30213
+ .filter((x) => typeof x === 'object' && x !== null)
30214
+ .map((x) => ({
30215
+ mode: typeof x['mode'] === 'string' ? x['mode'] : '',
30216
+ summary: typeof x['summary'] === 'string'
30217
+ ? resolveWidgetLabelForAi(x['summary']) || x['summary']
30218
+ : '',
30219
+ }))
30220
+ .filter((x) => x.mode !== '' && x.summary !== '');
30221
+ renderSurfaces = mapped.length > 0 ? mapped : undefined;
30222
+ }
30223
+ const relatedWidgetNames = Array.isArray(a['relatedWidgetNames'])
30224
+ ? a['relatedWidgetNames'].filter((x) => typeof x === 'string')
30225
+ : undefined;
30226
+ const layoutExamples = Array.isArray(a['layoutExamples'])
30227
+ ? a['layoutExamples'].filter((x) => typeof x === 'string')
30228
+ : undefined;
30229
+ if (shortDescription == null &&
30230
+ instruction == null &&
30231
+ !(tags?.length ?? 0) &&
30232
+ usage == null &&
30233
+ renderSurfaces == null &&
30234
+ !(relatedWidgetNames?.length ?? 0) &&
30235
+ !(layoutExamples?.length ?? 0)) {
30236
+ return undefined;
30237
+ }
30238
+ return {
30239
+ ...(shortDescription != null ? { shortDescription } : {}),
30240
+ ...(instruction != null ? { instruction } : {}),
30241
+ ...(tags?.length ? { tags } : {}),
30242
+ ...(usage != null ? { usage } : {}),
30243
+ ...(renderSurfaces != null ? { renderSurfaces } : {}),
30244
+ ...(relatedWidgetNames?.length ? { relatedWidgetNames } : {}),
30245
+ ...(layoutExamples?.length ? { layoutExamples } : {}),
30246
+ };
30247
+ }
30248
+ function subCategoryToRow(raw) {
30249
+ if (typeof raw !== 'object' || raw === null) {
30250
+ return undefined;
30251
+ }
30252
+ const c = raw;
30253
+ if (typeof c.name !== 'string') {
30254
+ return undefined;
30255
+ }
30014
30256
  return {
30015
- name: String(config.name),
30016
- ...(config.alias != null ? { alias: config.alias } : {}),
30017
- title: resolveWidgetLabelForAi(config.title) || String(config.name),
30018
- ...(config.icon != null ? { icon: config.icon } : {}),
30019
- ...(config.description != null ? { description: resolveWidgetLabelForAi(config.description) || undefined } : {}),
30020
- ...(config.aiDescription != null && config.aiDescription !== '' ? { aiDescription: config.aiDescription } : {}),
30021
- categories: normalizeDefinitionCategories(config.categories).map((c) => ({
30022
- name: c.name,
30023
- title: resolveWidgetLabelForAi(c.title) || c.name,
30024
- order: c.order,
30025
- })),
30026
- ...(config.groups?.length ? { groups: config.groups } : {}),
30027
- type: config.type,
30028
- ...(config.properties?.length ? { properties: config.properties } : {}),
30029
- components: toSerializableComponents(config),
30030
- ...(config.meta != null ? { meta: config.meta } : {}),
30031
- ...(config.designer != null ? { designer: config.designer } : {}),
30032
- ...(config.options != null ? { options: config.options } : {}),
30033
- ...(config.defaultFilterWidgetName != null ? { defaultFilterWidgetName: config.defaultFilterWidgetName } : {}),
30257
+ name: c.name,
30258
+ title: resolveWidgetLabelForAi(c.title) || c.name,
30259
+ order: c.order,
30034
30260
  };
30035
30261
  }
30036
- function buildUsage(config) {
30037
- const propertyPaths = [
30038
- ...new Set((config.properties ?? [])
30039
- .map((p) => p.schema?.interface?.path)
30040
- .filter((p) => typeof p === 'string' && p.length > 0)),
30041
- ];
30042
- const summary = [
30043
- resolveWidgetLabelForAi(config.title),
30044
- config.aiDescription ?? resolveWidgetLabelForAi(config.description),
30045
- ]
30262
+ function buildStructuredWidgetForAi(raw, ctx) {
30263
+ const name = typeof raw['name'] === 'string' ? raw['name'] : ctx.fallbackName;
30264
+ const icon = typeof raw['icon'] === 'string' ? raw['icon'] : undefined;
30265
+ const type = typeof raw['type'] === 'string' ? raw['type'] : undefined;
30266
+ const capabilities = Array.isArray(raw['capabilities'])
30267
+ ? raw['capabilities'].filter((c) => typeof c === 'string')
30268
+ : undefined;
30269
+ const groups = Array.isArray(raw['groups'])
30270
+ ? raw['groups'].filter((g) => typeof g === 'string')
30271
+ : undefined;
30272
+ const defaultFilterWidgetName = typeof raw['defaultFilterWidgetName'] === 'string' ? raw['defaultFilterWidgetName'] : undefined;
30273
+ const categories = metadataCategoriesToList(raw);
30274
+ const subCategory = subCategoryToRow(raw['subCategory']);
30275
+ return {
30276
+ name,
30277
+ title: ctx.resolvedTitle,
30278
+ ...(ctx.resolvedDescription != null ? { description: ctx.resolvedDescription } : {}),
30279
+ ...(icon != null ? { icon } : {}),
30280
+ ...(type != null ? { type } : {}),
30281
+ ...(capabilities?.length ? { capabilities } : {}),
30282
+ categories,
30283
+ ...(subCategory != null ? { subCategory } : {}),
30284
+ ...(groups?.length ? { groups } : {}),
30285
+ ...(defaultFilterWidgetName != null ? { defaultFilterWidgetName } : {}),
30286
+ inputs: mapInputsForAi(raw['inputs']),
30287
+ outputs: mapOutputsForAi(raw['outputs']),
30288
+ ai: mapAiBlockForAi(raw['ai']),
30289
+ };
30290
+ }
30291
+ function buildUsageFromStructured(structured) {
30292
+ const propertyPaths = [...new Set(structured.inputs.map((i) => i.name).filter((n) => n.length > 0))];
30293
+ const instruction = structured.ai?.instruction ?? '';
30294
+ const summary = [structured.title, structured.description, instruction]
30046
30295
  .filter((s) => s != null && s !== '')
30047
30296
  .join(' — ');
30048
30297
  return {
@@ -30053,35 +30302,93 @@ function buildUsage(config) {
30053
30302
  //#endregion
30054
30303
  //#region ---- Query ----
30055
30304
  /**
30056
- * Read-only full widget registry (Widgets:GetForAI). Lists every registered widget.
30305
+ * Read-only widget catalog for AI (`Widgets:GetForAI`). Data comes from persisted widget definitions
30306
+ * (Dexie/Firestore via {@link AXPEntityDefinitionCrudService}), not {@link AXPWidgetRegistryService}.
30057
30307
  */
30058
30308
  class AXPGetWidgetsForAIQuery {
30059
30309
  constructor() {
30060
- this.registry = inject(AXPWidgetRegistryService);
30310
+ this.crud = inject(AXP_ENTITY_DEFINITION_CRUD_SERVICE, { optional: true });
30061
30311
  }
30062
30312
  async fetch(input) {
30063
- const name = input?.name?.trim();
30064
- if (!name) {
30065
- const list = this.registry.all().map((w) => ({
30066
- name: String(w.name),
30067
- title: resolveWidgetLabelForAi(w.title) || String(w.name),
30068
- ...(w.description != null ? { description: resolveWidgetLabelForAi(w.description) || undefined } : {}),
30069
- ...(w.aiDescription != null && w.aiDescription !== '' ? { aiDescription: w.aiDescription } : {}),
30070
- type: w.type,
30071
- categories: normalizeDefinitionCategories(w.categories).map((c) => ({
30072
- name: c.name,
30073
- title: resolveWidgetLabelForAi(c.title) || c.name,
30074
- order: c.order,
30075
- })),
30076
- }));
30077
- return { success: true, widgets: list };
30313
+ if (!this.crud) {
30314
+ return { success: false, error: CATALOG_UNAVAILABLE };
30078
30315
  }
30316
+ const agentRaw = typeof input?.agent === 'string' ? input.agent.trim() : '';
30317
+ if (!agentRaw) {
30318
+ return { success: false, error: AGENT_REQUIRED_ERROR };
30319
+ }
30320
+ if (!isValidWidgetAiAgent(agentRaw)) {
30321
+ return { success: false, error: invalidAgentErrorMessage(agentRaw) };
30322
+ }
30323
+ const agent = agentRaw;
30324
+ const name = input?.name?.trim();
30079
30325
  try {
30080
- const config = this.registry.resolve(name);
30326
+ const rows = await this.crud.listWidgets();
30327
+ const activeRows = rows.filter((r) => r.definition.active !== false);
30328
+ if (!name) {
30329
+ const scopedRows = activeRows.filter((row) => {
30330
+ const meta = parseMetadataJson(row.definition.metadataJson);
30331
+ return matchesWidgetAiAgent(agent, row.definition.name, meta);
30332
+ });
30333
+ const list = scopedRows.map((row) => {
30334
+ const meta = parseMetadataJson(row.definition.metadataJson);
30335
+ const titleRaw = row.definition.catalogTitle ??
30336
+ (typeof meta?.['title'] === 'string' ? meta['title'] : undefined) ??
30337
+ row.definition.name;
30338
+ const title = resolveWidgetLabelForAi(titleRaw) || row.definition.name;
30339
+ const descRaw = row.definition.description ?? (typeof meta?.['description'] === 'string' ? meta['description'] : undefined);
30340
+ const description = descRaw != null && descRaw !== '' ? resolveWidgetLabelForAi(descRaw) || undefined : undefined;
30341
+ const tags = readAiTagsFromMetadata(meta);
30342
+ return {
30343
+ name: row.definition.name,
30344
+ title,
30345
+ ...(description != null ? { description } : {}),
30346
+ ...(typeof meta?.['type'] === 'string' ? { type: meta['type'] } : {}),
30347
+ ...(tags != null ? { tags } : {}),
30348
+ categories: metadataCategoriesToList(meta),
30349
+ };
30350
+ });
30351
+ return { success: true, widgets: list };
30352
+ }
30353
+ const match = activeRows.find((r) => r.definition.name === name);
30354
+ if (!match) {
30355
+ return {
30356
+ success: false,
30357
+ error: `Widget "${name}" was not found in the catalog.`,
30358
+ };
30359
+ }
30360
+ const meta = parseMetadataJson(match.definition.metadataJson);
30361
+ if (!matchesWidgetAiAgent(agent, match.definition.name, meta)) {
30362
+ return {
30363
+ success: false,
30364
+ error: `Widget "${name}" is not available for agent "${agent}".`,
30365
+ };
30366
+ }
30367
+ const metadata = meta ?? {};
30368
+ const titleRaw = match.definition.catalogTitle ??
30369
+ (typeof metadata['title'] === 'string' ? metadata['title'] : undefined) ??
30370
+ match.definition.name;
30371
+ const title = resolveWidgetLabelForAi(titleRaw) || match.definition.name;
30372
+ const descRaw = match.definition.description ??
30373
+ (typeof metadata['description'] === 'string' ? metadata['description'] : undefined);
30374
+ const description = descRaw != null && descRaw !== '' ? resolveWidgetLabelForAi(descRaw) || undefined : undefined;
30375
+ const structured = buildStructuredWidgetForAi(metadata, {
30376
+ fallbackName: match.definition.name,
30377
+ resolvedTitle: title,
30378
+ resolvedDescription: description,
30379
+ });
30380
+ const detail = {
30381
+ id: match.id,
30382
+ active: match.definition.active,
30383
+ title,
30384
+ ...(description != null ? { description } : {}),
30385
+ ...(match.definition.catalogTitle != null ? { catalogTitle: match.definition.catalogTitle } : {}),
30386
+ structured,
30387
+ };
30081
30388
  return {
30082
30389
  success: true,
30083
- detail: toSerializableWidget(config),
30084
- usage: buildUsage(config),
30390
+ detail,
30391
+ usage: buildUsageFromStructured(structured),
30085
30392
  };
30086
30393
  }
30087
30394
  catch (e) {
@@ -30102,12 +30409,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
30102
30409
 
30103
30410
  var getWidgetsForAi_query = /*#__PURE__*/Object.freeze({
30104
30411
  __proto__: null,
30105
- AXPGetWidgetsForAIQuery: AXPGetWidgetsForAIQuery
30412
+ AXPGetWidgetsForAIQuery: AXPGetWidgetsForAIQuery,
30413
+ AXP_WIDGET_AI_AGENT_CHART_LAYOUT: AXP_WIDGET_AI_AGENT_CHART_LAYOUT,
30414
+ AXP_WIDGET_AI_AGENT_DASHBOARD_LAYOUT: AXP_WIDGET_AI_AGENT_DASHBOARD_LAYOUT,
30415
+ AXP_WIDGET_AI_AGENT_FORM_LAYOUT: AXP_WIDGET_AI_AGENT_FORM_LAYOUT,
30416
+ AXP_WIDGET_AI_AGENT_NAMES: AXP_WIDGET_AI_AGENT_NAMES,
30417
+ matchesWidgetAiAgent: matchesWidgetAiAgent
30106
30418
  });
30107
30419
 
30108
30420
  /**
30109
30421
  * Generated bundle index. Do not edit.
30110
30422
  */
30111
30423
 
30112
- export { AXPAddressWidget, AXPAddressWidgetColumnComponent, AXPAddressWidgetEditComponent, AXPAddressWidgetService, AXPAddressWidgetViewComponent, AXPAdvancedGridItemWidget, AXPAdvancedGridItemWidgetDesignerComponent, AXPAdvancedGridItemWidgetViewComponent, AXPAdvancedGridOptionsWidget, AXPAdvancedGridOptionsWidgetEditComponent, AXPAdvancedGridWidget, AXPAdvancedGridWidgetDesignerComponent, AXPAdvancedGridWidgetViewComponent, AXPAvatarWidget, AXPAvatarWidgetColumnComponent, AXPAvatarWidgetDesignerComponent, AXPAvatarWidgetEditComponent, AXPAvatarWidgetViewComponent, AXPBetweenExpressionValidationWidget, AXPBetweenValidationWidgetEditComponent, AXPBlockWidget, AXPBlockWidgetDesignerComponent, AXPBlockWidgetViewComponent, AXPBorderWidget, AXPBorderWidgetEditComponent, AXPButtonWidget, AXPButtonWidgetColumnComponent, AXPButtonWidgetViewComponent, AXPCallbackValidationWidget, AXPCallbackValidationWidgetEditComponent, AXPCheckBoxWidget, AXPCheckBoxWidgetColumnComponent, AXPCheckBoxWidgetDesignerComponent, AXPCheckBoxWidgetEditComponent, AXPCheckBoxWidgetViewComponent, AXPCodeEditorWidget, AXPCodeEditorWidgetColumnComponent, AXPCodeEditorWidgetEditComponent, AXPCodeEditorWidgetViewComponent, AXPColorBoxWidget, AXPColorBoxWidgetColumnComponent, AXPColorBoxWidgetDesignerComponent, AXPColorBoxWidgetEditComponent, AXPColorBoxWidgetViewComponent, AXPColorPaletteWidget, AXPColorPaletteWidgetColumnComponent, AXPColorPaletteWidgetDesignerComponent, AXPColorPaletteWidgetEditComponent, AXPColorPaletteWidgetViewComponent, AXPConditionBuilderWidget, AXPConditionBuilderWidgetEditComponent, AXPConditionBuilderWidgetViewComponent, AXPConnectedDragDropListsWidget, AXPConnectedListsWidgetColumnComponent, AXPConnectedListsWidgetEditComponent, AXPConnectedListsWidgetViewComponent, AXPContactWidget, AXPContactWidgetColumnComponent, AXPContactWidgetEditComponent, AXPContactWidgetViewComponent, AXPDataListWidget, AXPDataListWidgetViewComponent, AXPDataSourceOptionsWidget, AXPDataSourceOptionsWidgetEditComponent, AXPDateTimeBoxWidget, AXPDateTimeBoxWidgetColumnComponent, AXPDateTimeBoxWidgetEditComponent, AXPDateTimeBoxWidgetViewComponent, AXPDirectionWidget, AXPDirectionWidgetEditComponent, AXPDragDropListWidget, AXPEditFileUploaderCommand, AXPEditorJsWidget, AXPEditorJsWidgetColumnComponent, AXPEditorJsWidgetEditComponent, AXPEditorJsWidgetViewComponent, AXPEqualValidationWidget, AXPEqualValidationWidgetEditComponent, AXPFieldsetWidget, AXPFieldsetWidgetDesignerComponent, AXPFieldsetWidgetViewComponent, AXPFileListComponent, AXPFileUploaderWidget, AXPFileUploaderWidgetColumnComponent, AXPFileUploaderWidgetEditComponent, AXPFileUploaderWidgetService, AXPFileUploaderWidgetViewComponent, AXPFlexItemOptionsWidget, AXPFlexItemOptionsWidgetEditComponent, AXPFlexItemWidget, AXPFlexItemWidgetDesignerComponent, AXPFlexItemWidgetViewComponent, AXPFlexOptionsWidget, AXPFlexOptionsWidgetEditComponent, AXPFlexWidget, AXPFlexWidgetDesignerComponent, AXPFlexWidgetViewComponent, AXPGalleryWidget, AXPGalleryWidgetEditComponent, AXPGalleryWidgetViewComponent, AXPGetWidgetsForAIQuery, AXPGreaterThanExpressionValidationWidget, AXPGreaterThanValidationWidgetEditComponent, AXPGridItemOptionsWidget, AXPGridItemOptionsWidgetEditComponent, AXPGridOptionsWidget, AXPGridOptionsWidgetEditComponent, AXPImageMarkerPopupComponent, AXPImageMarkerWidget, AXPImageMarkerWidgetColumnComponent, AXPImageMarkerWidgetEditComponent, AXPImageMarkerWidgetViewComponent, AXPItemConfiguratorWidget, AXPItemConfiguratorWidgetColumnComponent, AXPItemConfiguratorWidgetEditComponent, AXPJsonViewerWidget, AXPJsonViewerWidgetEditComponent, AXPJsonViewerWidgetViewComponent, AXPLargeTextWidget, AXPLargeTextWidgetColumnComponent, AXPLargeTextWidgetEditComponent, AXPLargeTextWidgetViewComponent, AXPLessThanExpressionValidationWidget, AXPLessThanValidationWidgetEditComponent, AXPListWidgetColumnComponent, AXPListWidgetEditComponent, AXPListWidgetViewComponent, AXPMapWidgetEditComponent, AXPMapWidgetViewComponent, AXPMaxLengthExpressionValidationWidget, AXPMaxLengthValidationWidgetEditComponent, AXPMinLengthExpressionValidationWidget, AXPMinLengthValidationWidgetEditComponent, AXPNumberBoxWidget, AXPNumberBoxWidgetColumnComponent, AXPNumberBoxWidgetEditComponent, AXPNumberBoxWidgetViewComponent, AXPPageWidget, AXPPageWidgetViewComponent, AXPPasswordBoxWidget, AXPPasswordBoxWidgetColumnComponent, AXPPasswordBoxWidgetEditComponent, AXPPasswordBoxWidgetViewComponent, AXPProgressBarWidget, AXPProgressBarWidgetColumnComponent, AXPProgressBarWidgetEditComponent, AXPProgressBarWidgetViewComponent, AXPProviderSelectWidgetColumnComponent, AXPProviderSelectWidgetEditBase, AXPProviderSelectWidgetViewComponent, AXPQrcodeWidget, AXPQrcodeWidgetColumnComponent, AXPQrcodeWidgetEditComponent, AXPQrcodeWidgetViewComponent, AXPRatePickerWidget, AXPRatePickerWidgetColumnComponent, AXPRatePickerWidgetEditComponent, AXPRatePickerWidgetViewComponent, AXPRegularExpressionValidationWidget, AXPRegularExpressionValidationWidgetEditComponent, AXPRepeaterWidget, AXPRepeaterWidgetDesignerComponent, AXPRepeaterWidgetEditComponent, AXPRepeaterWidgetViewComponent, AXPRequiredValidationWidget, AXPRequiredValidationWidgetEditComponent, AXPRichTextWidget, AXPRichTextWidgetColumnComponent, AXPRichTextWidgetEditComponent, AXPRichTextWidgetViewComponent, AXPSchedulerPickerWidget, AXPSchedulerPickerWidgetColumnComponent, AXPSchedulerPickerWidgetEditComponent, AXPSchedulerPickerWidgetViewComponent, AXPSelectBoxWidget, AXPSelectBoxWidgetColumnComponent, AXPSelectBoxWidgetEditComponent, AXPSelectBoxWidgetViewComponent, AXPSelectLanguagePopup, AXPSelectionListWidget, AXPSelectionListWidgetColumnComponent, AXPSelectionListWidgetDesignerComponent, AXPSelectionListWidgetEditComponent, AXPSelectionListWidgetViewComponent, AXPSignatureWidget, AXPSignatureWidgetColumnComponent, AXPSignatureWidgetEditComponent, AXPSignatureWidgetViewComponent, AXPSpacingWidget, AXPSpacingWidgetEditComponent, AXPStatusChipComponent, AXPStatusWidget, AXPStatusWidgetColumnComponent, AXPStatusWidgetEditComponent, AXPStatusWidgetViewComponent, AXPStepWizardWidget, AXPStepWizardWidgetViewComponent, AXPStopwatchWidget, AXPStopwatchWidgetViewComponent, AXPTableItemWidget, AXPTableItemWidgetDesignerComponent, AXPTableItemWidgetViewComponent, AXPTableWidget, AXPTableWidgetDesignerComponent, AXPTableWidgetViewComponent, AXPTagEditorWidget, AXPTagEditorWidgetColumnComponent, AXPTagEditorWidgetEditComponent, AXPTagEditorWidgetViewComponent, AXPTemplateBoxWidget, AXPTemplateBoxWidgetColumnComponent, AXPTemplateBoxWidgetEditComponent, AXPTemplateBoxWidgetPrintComponent, AXPTemplateBoxWidgetViewComponent, AXPTextBoxWidget, AXPTextBoxWidgetColumnComponent, AXPTextBoxWidgetEditComponent, AXPTextBoxWidgetViewComponent, AXPToggleWidget, AXPToggleWidgetColumnComponent, AXPToggleWidgetEditComponent, AXPToggleWidgetViewComponent, AXPWidgetFieldConfiguratorWidget, AXPWidgetFieldConfiguratorWidgetColumnComponent, AXPWidgetFieldConfiguratorWidgetEditComponent, AXPWidgetsModule, AXP_ABSOLUTE_UNITS, AXP_ALLOW_CLEAR_PROPERTY, AXP_ALLOW_MULTIPLE_PROPERTY, AXP_ALLOW_SEARCH_PROPERTY, AXP_ANIMATION_PROPERTY_GROUP, AXP_APPEARANCE_PROPERTY_GROUP, AXP_BEHAVIOR_PROPERTY_GROUP, AXP_BETWEEN_VALIDATION_PROPERTY, AXP_BG_COLOR_PROPERTY, AXP_BORDER_RADIUS_UNITS, AXP_BORDER_WIDTH_UNITS, AXP_BOX_MODEL_PROPERTY_GROUP, AXP_CALLBACK_VALIDATION_PROPERTY, AXP_COLOR_PROPERTY, AXP_CONTENT_PROPERTY, AXP_DATA_LIST_CMD_DELETE, AXP_DATA_LIST_CMD_EDIT, AXP_DATA_LIST_PENDING_DELETE_KEY, AXP_DATA_PATH_PROPERTY, AXP_DATA_PROPERTY_GROUP, AXP_DATA_SOURCE_OPTIONS_PROPERTY, AXP_DATE_FORMAT_PROPERTY, AXP_DEFAULT_ROW_COUNT_PROPERTY, AXP_DESCRIPTION_PROPERTY, AXP_DIRECTION_PROPERTY, AXP_DISABLED_PROPERTY, AXP_DOWNLOADABLE_PROPERTY, AXP_EQUAL_VALIDATION_PROPERTY, AXP_FALSY_TEXT_PROPERTY, AXP_FIT_LINE_COUNT_PROPERTY, AXP_FONT_SIZE_PROPERTY, AXP_Flex_Box_Align_Options, AXP_Flex_Box_Alignments, AXP_Flex_Box_Justify_Options, AXP_GREATER_THAN_VALIDATION_PROPERTY, AXP_Grid_Box_Align_Items_Options, AXP_Grid_Box_Alignments, AXP_Grid_Box_Justify_Items_Options, AXP_HAS_CLEAR_BUTTON_PROPERTY, AXP_HAS_COPY_ICON_PROPERTY, AXP_HAS_EYE_ICON_PROPERTY, AXP_HAS_ICON_PROPERTY, AXP_HAS_LABEL_PROPERTY, AXP_ICON_PROPERTY, AXP_IS_LOADING_PROPERTY, AXP_LABEL_PROPERTY, AXP_LAYOUT_ADVANCED_GRID_PROPERTY, AXP_LAYOUT_BORDER_PROPERTY, AXP_LAYOUT_COLUMNS_PROPERTY, AXP_LAYOUT_DIRECTION_PROPERTY, AXP_LAYOUT_FLEX_ITEM_PROPERTY, AXP_LAYOUT_FLEX_PROPERTY, AXP_LAYOUT_FLEX_PROPERTY_GROUP, AXP_LAYOUT_GAP_PROPERTY, AXP_LAYOUT_GRID_ITEM_PROPERTY, AXP_LAYOUT_GRID_PROPERTIES, AXP_LAYOUT_GRID_PROPERTY, AXP_LAYOUT_GRID_PROPERTY_GROUP, AXP_LAYOUT_GRID_ROW_PROPERTIES, AXP_LAYOUT_ROWS_PROPERTY, AXP_LAYOUT_SHOW_HEADER_PROPERTY, AXP_LAYOUT_SPACING_PROPERTY, AXP_LAYOUT_TABLE_PROPERTY_GROUP, AXP_LESS_THAN_VALIDATION_PROPERTY, AXP_MAX_LENGTH_VALIDATION_PROPERTY, AXP_MAX_LINE_COUNT_PROPERTY, AXP_MIN_LENGTH_VALIDATION_PROPERTY, AXP_MIN_LINE_COUNT_PROPERTY, AXP_MULTI_LANGUAGE_PROPERTY, AXP_NAME_PROPERTY, AXP_NUMBER_SEPARATOR_PROPERTY, AXP_PLACEHOLDER_PROPERTY, AXP_READONLY_PROPERTY, AXP_REGULAR_EXPRESSION_VALIDATION_PROPERTY, AXP_RELATIVE_UNITS, AXP_RELATIVE_UNITS_NO_PERCENT, AXP_REQUIRED_VALIDATION_PROPERTY, AXP_ROW_EXPR_PREFIX, AXP_SHOW_PASSWORD_PROPERTY, AXP_SPACING_UNITS, AXP_SPIN_BUTTON_PROPERTY, AXP_STYLE_COLOR_PROPERTY, AXP_STYLE_LOOK_PROPERTY, AXP_STYLING_PROPERTY_GROUP, AXP_TABLE_COLUMNS_PROPERTY, AXP_TABLE_COLUMN_HEIGHT_PROPERTY, AXP_TABLE_COLUMN_WIDTH_PROPERTY, AXP_TABLE_ITEM_COLSPAN_PROPERTY, AXP_TABLE_ITEM_ROWSPAN_PROPERTY, AXP_TEXT_ALIGN_PROPERTY, AXP_TEXT_FIELD_PROPERTY, AXP_TEXT_PROPERTY, AXP_THEME_PROPERTY, AXP_TITLE_PROPERTY, AXP_TRIGGERS_PROPERTY, AXP_TRIGGERS_PROPERTY_GROUP, AXP_TRULY_TEXT_PROPERTY, AXP_VALIDATION_PROPERTY_GROUP, AXP_VALUE_FIELD_PROPERTY, AXP_VERTICAL_ALIGN_PROPERTY, AXP_WIDGET_PROPERTY_GROUP, AXP_default_Border_Box_Units, AXP_default_Border_Box_Value, AXP_default_Spacing_Box_Units, AXP_default_Spacing_Box_Value, DEFAULT_STRATEGY_CONFIG, STRATEGY_CONFIG_TOKEN, booleanDefaultProperty, largeTextDefaultProperty, numberDefaultProperty, numberMaxValueProperty, numberMinValueProperty, plainTextDefaultProperty, richTextDefaultProperty, selectEditorDefaultValueProperty, selectionListEditorDefaultValueProperty };
30424
+ export { AXPAddressWidget, AXPAddressWidgetColumnComponent, AXPAddressWidgetEditComponent, AXPAddressWidgetService, AXPAddressWidgetViewComponent, AXPAdvancedGridItemWidget, AXPAdvancedGridItemWidgetDesignerComponent, AXPAdvancedGridItemWidgetViewComponent, AXPAdvancedGridOptionsWidget, AXPAdvancedGridOptionsWidgetEditComponent, AXPAdvancedGridWidget, AXPAdvancedGridWidgetDesignerComponent, AXPAdvancedGridWidgetViewComponent, AXPAvatarWidget, AXPAvatarWidgetColumnComponent, AXPAvatarWidgetDesignerComponent, AXPAvatarWidgetEditComponent, AXPAvatarWidgetViewComponent, AXPBetweenExpressionValidationWidget, AXPBetweenValidationWidgetEditComponent, AXPBlockWidget, AXPBlockWidgetDesignerComponent, AXPBlockWidgetViewComponent, AXPBorderWidget, AXPBorderWidgetEditComponent, AXPButtonWidget, AXPButtonWidgetColumnComponent, AXPButtonWidgetViewComponent, AXPCallbackValidationWidget, AXPCallbackValidationWidgetEditComponent, AXPCheckBoxWidget, AXPCheckBoxWidgetColumnComponent, AXPCheckBoxWidgetDesignerComponent, AXPCheckBoxWidgetEditComponent, AXPCheckBoxWidgetViewComponent, AXPCodeEditorWidget, AXPCodeEditorWidgetColumnComponent, AXPCodeEditorWidgetEditComponent, AXPCodeEditorWidgetViewComponent, AXPColorBoxWidget, AXPColorBoxWidgetColumnComponent, AXPColorBoxWidgetDesignerComponent, AXPColorBoxWidgetEditComponent, AXPColorBoxWidgetViewComponent, AXPColorPaletteWidget, AXPColorPaletteWidgetColumnComponent, AXPColorPaletteWidgetDesignerComponent, AXPColorPaletteWidgetEditComponent, AXPColorPaletteWidgetViewComponent, AXPConditionBuilderWidget, AXPConditionBuilderWidgetEditComponent, AXPConditionBuilderWidgetViewComponent, AXPConnectedDragDropListsWidget, AXPConnectedListsWidgetColumnComponent, AXPConnectedListsWidgetEditComponent, AXPConnectedListsWidgetViewComponent, AXPContactWidget, AXPContactWidgetColumnComponent, AXPContactWidgetEditComponent, AXPContactWidgetViewComponent, AXPDataListWidget, AXPDataListWidgetViewComponent, AXPDataSourceOptionsWidget, AXPDataSourceOptionsWidgetEditComponent, AXPDateTimeBoxWidget, AXPDateTimeBoxWidgetColumnComponent, AXPDateTimeBoxWidgetEditComponent, AXPDateTimeBoxWidgetViewComponent, AXPDirectionWidget, AXPDirectionWidgetEditComponent, AXPDragDropListWidget, AXPEditFileUploaderCommand, AXPEditorJsWidget, AXPEditorJsWidgetColumnComponent, AXPEditorJsWidgetEditComponent, AXPEditorJsWidgetViewComponent, AXPEqualValidationWidget, AXPEqualValidationWidgetEditComponent, AXPFieldsetWidget, AXPFieldsetWidgetDesignerComponent, AXPFieldsetWidgetViewComponent, AXPFileListComponent, AXPFileUploaderWidget, AXPFileUploaderWidgetColumnComponent, AXPFileUploaderWidgetEditComponent, AXPFileUploaderWidgetService, AXPFileUploaderWidgetViewComponent, AXPFlexItemOptionsWidget, AXPFlexItemOptionsWidgetEditComponent, AXPFlexItemWidget, AXPFlexItemWidgetDesignerComponent, AXPFlexItemWidgetViewComponent, AXPFlexOptionsWidget, AXPFlexOptionsWidgetEditComponent, AXPFlexWidget, AXPFlexWidgetDesignerComponent, AXPFlexWidgetViewComponent, AXPGalleryWidget, AXPGalleryWidgetEditComponent, AXPGalleryWidgetViewComponent, AXPGetWidgetsForAIQuery, AXPGreaterThanExpressionValidationWidget, AXPGreaterThanValidationWidgetEditComponent, AXPGridItemOptionsWidget, AXPGridItemOptionsWidgetEditComponent, AXPGridOptionsWidget, AXPGridOptionsWidgetEditComponent, AXPImageMarkerPopupComponent, AXPImageMarkerWidget, AXPImageMarkerWidgetColumnComponent, AXPImageMarkerWidgetEditComponent, AXPImageMarkerWidgetViewComponent, AXPItemConfiguratorWidget, AXPItemConfiguratorWidgetColumnComponent, AXPItemConfiguratorWidgetEditComponent, AXPJsonViewerWidget, AXPJsonViewerWidgetEditComponent, AXPJsonViewerWidgetViewComponent, AXPLargeTextWidget, AXPLargeTextWidgetColumnComponent, AXPLargeTextWidgetEditComponent, AXPLargeTextWidgetViewComponent, AXPLessThanExpressionValidationWidget, AXPLessThanValidationWidgetEditComponent, AXPListWidgetColumnComponent, AXPListWidgetEditComponent, AXPListWidgetViewComponent, AXPMapWidgetEditComponent, AXPMapWidgetViewComponent, AXPMaxLengthExpressionValidationWidget, AXPMaxLengthValidationWidgetEditComponent, AXPMinLengthExpressionValidationWidget, AXPMinLengthValidationWidgetEditComponent, AXPNumberBoxWidget, AXPNumberBoxWidgetColumnComponent, AXPNumberBoxWidgetEditComponent, AXPNumberBoxWidgetViewComponent, AXPPageWidget, AXPPageWidgetViewComponent, AXPPasswordBoxWidget, AXPPasswordBoxWidgetColumnComponent, AXPPasswordBoxWidgetEditComponent, AXPPasswordBoxWidgetViewComponent, AXPProgressBarWidget, AXPProgressBarWidgetColumnComponent, AXPProgressBarWidgetEditComponent, AXPProgressBarWidgetViewComponent, AXPProviderSelectWidgetColumnComponent, AXPProviderSelectWidgetEditBase, AXPProviderSelectWidgetViewComponent, AXPQrcodeWidget, AXPQrcodeWidgetColumnComponent, AXPQrcodeWidgetEditComponent, AXPQrcodeWidgetViewComponent, AXPRatePickerWidget, AXPRatePickerWidgetColumnComponent, AXPRatePickerWidgetEditComponent, AXPRatePickerWidgetViewComponent, AXPRegularExpressionValidationWidget, AXPRegularExpressionValidationWidgetEditComponent, AXPRepeaterWidget, AXPRepeaterWidgetDesignerComponent, AXPRepeaterWidgetEditComponent, AXPRepeaterWidgetViewComponent, AXPRequiredValidationWidget, AXPRequiredValidationWidgetEditComponent, AXPRichTextWidget, AXPRichTextWidgetColumnComponent, AXPRichTextWidgetEditComponent, AXPRichTextWidgetViewComponent, AXPSchedulerPickerWidget, AXPSchedulerPickerWidgetColumnComponent, AXPSchedulerPickerWidgetEditComponent, AXPSchedulerPickerWidgetViewComponent, AXPSelectBoxWidget, AXPSelectBoxWidgetColumnComponent, AXPSelectBoxWidgetEditComponent, AXPSelectBoxWidgetViewComponent, AXPSelectLanguagePopup, AXPSelectionListWidget, AXPSelectionListWidgetColumnComponent, AXPSelectionListWidgetDesignerComponent, AXPSelectionListWidgetEditComponent, AXPSelectionListWidgetViewComponent, AXPSignatureWidget, AXPSignatureWidgetColumnComponent, AXPSignatureWidgetEditComponent, AXPSignatureWidgetViewComponent, AXPSpacingWidget, AXPSpacingWidgetEditComponent, AXPStatusChipComponent, AXPStatusWidget, AXPStatusWidgetColumnComponent, AXPStatusWidgetEditComponent, AXPStatusWidgetViewComponent, AXPStepWizardWidget, AXPStepWizardWidgetViewComponent, AXPStopwatchWidget, AXPStopwatchWidgetViewComponent, AXPTableItemWidget, AXPTableItemWidgetDesignerComponent, AXPTableItemWidgetViewComponent, AXPTableWidget, AXPTableWidgetDesignerComponent, AXPTableWidgetViewComponent, AXPTagEditorWidget, AXPTagEditorWidgetColumnComponent, AXPTagEditorWidgetEditComponent, AXPTagEditorWidgetViewComponent, AXPTemplateBoxWidget, AXPTemplateBoxWidgetColumnComponent, AXPTemplateBoxWidgetEditComponent, AXPTemplateBoxWidgetPrintComponent, AXPTemplateBoxWidgetViewComponent, AXPTextBoxWidget, AXPTextBoxWidgetColumnComponent, AXPTextBoxWidgetEditComponent, AXPTextBoxWidgetViewComponent, AXPToggleWidget, AXPToggleWidgetColumnComponent, AXPToggleWidgetEditComponent, AXPToggleWidgetViewComponent, AXPWidgetFieldConfiguratorWidget, AXPWidgetFieldConfiguratorWidgetColumnComponent, AXPWidgetFieldConfiguratorWidgetEditComponent, AXPWidgetsModule, AXP_ABSOLUTE_UNITS, AXP_ALLOW_CLEAR_PROPERTY, AXP_ALLOW_MULTIPLE_PROPERTY, AXP_ALLOW_SEARCH_PROPERTY, AXP_ANIMATION_PROPERTY_GROUP, AXP_APPEARANCE_PROPERTY_GROUP, AXP_BEHAVIOR_PROPERTY_GROUP, AXP_BETWEEN_VALIDATION_PROPERTY, AXP_BG_COLOR_PROPERTY, AXP_BORDER_RADIUS_UNITS, AXP_BORDER_WIDTH_UNITS, AXP_BOX_MODEL_PROPERTY_GROUP, AXP_CALLBACK_VALIDATION_PROPERTY, AXP_COLOR_PROPERTY, AXP_CONTENT_PROPERTY, AXP_DATA_LIST_CMD_DELETE, AXP_DATA_LIST_CMD_EDIT, AXP_DATA_LIST_PENDING_DELETE_KEY, AXP_DATA_PATH_PROPERTY, AXP_DATA_PROPERTY_GROUP, AXP_DATA_SOURCE_OPTIONS_PROPERTY, AXP_DATE_FORMAT_PROPERTY, AXP_DEFAULT_ROW_COUNT_PROPERTY, AXP_DESCRIPTION_PROPERTY, AXP_DIRECTION_PROPERTY, AXP_DISABLED_PROPERTY, AXP_DOWNLOADABLE_PROPERTY, AXP_EQUAL_VALIDATION_PROPERTY, AXP_FALSY_TEXT_PROPERTY, AXP_FIT_LINE_COUNT_PROPERTY, AXP_FONT_SIZE_PROPERTY, AXP_Flex_Box_Align_Options, AXP_Flex_Box_Alignments, AXP_Flex_Box_Justify_Options, AXP_GREATER_THAN_VALIDATION_PROPERTY, AXP_Grid_Box_Align_Items_Options, AXP_Grid_Box_Alignments, AXP_Grid_Box_Justify_Items_Options, AXP_HAS_CLEAR_BUTTON_PROPERTY, AXP_HAS_COPY_ICON_PROPERTY, AXP_HAS_EYE_ICON_PROPERTY, AXP_HAS_ICON_PROPERTY, AXP_HAS_LABEL_PROPERTY, AXP_ICON_PROPERTY, AXP_IS_LOADING_PROPERTY, AXP_LABEL_PROPERTY, AXP_LAYOUT_ADVANCED_GRID_PROPERTY, AXP_LAYOUT_BORDER_PROPERTY, AXP_LAYOUT_COLUMNS_PROPERTY, AXP_LAYOUT_DIRECTION_PROPERTY, AXP_LAYOUT_FLEX_ITEM_PROPERTY, AXP_LAYOUT_FLEX_PROPERTY, AXP_LAYOUT_FLEX_PROPERTY_GROUP, AXP_LAYOUT_GAP_PROPERTY, AXP_LAYOUT_GRID_ITEM_PROPERTY, AXP_LAYOUT_GRID_PROPERTIES, AXP_LAYOUT_GRID_PROPERTY, AXP_LAYOUT_GRID_PROPERTY_GROUP, AXP_LAYOUT_GRID_ROW_PROPERTIES, AXP_LAYOUT_ROWS_PROPERTY, AXP_LAYOUT_SHOW_HEADER_PROPERTY, AXP_LAYOUT_SPACING_PROPERTY, AXP_LAYOUT_TABLE_PROPERTY_GROUP, AXP_LESS_THAN_VALIDATION_PROPERTY, AXP_MAX_LENGTH_VALIDATION_PROPERTY, AXP_MAX_LINE_COUNT_PROPERTY, AXP_MIN_LENGTH_VALIDATION_PROPERTY, AXP_MIN_LINE_COUNT_PROPERTY, AXP_MULTI_LANGUAGE_PROPERTY, AXP_NAME_PROPERTY, AXP_NUMBER_SEPARATOR_PROPERTY, AXP_PLACEHOLDER_PROPERTY, AXP_READONLY_PROPERTY, AXP_REGULAR_EXPRESSION_VALIDATION_PROPERTY, AXP_RELATIVE_UNITS, AXP_RELATIVE_UNITS_NO_PERCENT, AXP_REQUIRED_VALIDATION_PROPERTY, AXP_ROW_EXPR_PREFIX, AXP_SHOW_PASSWORD_PROPERTY, AXP_SPACING_UNITS, AXP_SPIN_BUTTON_PROPERTY, AXP_STYLE_COLOR_PROPERTY, AXP_STYLE_LOOK_PROPERTY, AXP_STYLING_PROPERTY_GROUP, AXP_TABLE_COLUMNS_PROPERTY, AXP_TABLE_COLUMN_HEIGHT_PROPERTY, AXP_TABLE_COLUMN_WIDTH_PROPERTY, AXP_TABLE_ITEM_COLSPAN_PROPERTY, AXP_TABLE_ITEM_ROWSPAN_PROPERTY, AXP_TEXT_ALIGN_PROPERTY, AXP_TEXT_FIELD_PROPERTY, AXP_TEXT_PROPERTY, AXP_THEME_PROPERTY, AXP_TITLE_PROPERTY, AXP_TRIGGERS_PROPERTY, AXP_TRIGGERS_PROPERTY_GROUP, AXP_TRULY_TEXT_PROPERTY, AXP_VALIDATION_PROPERTY_GROUP, AXP_VALUE_FIELD_PROPERTY, AXP_VERTICAL_ALIGN_PROPERTY, AXP_WIDGET_AI_AGENT_CHART_LAYOUT, AXP_WIDGET_AI_AGENT_DASHBOARD_LAYOUT, AXP_WIDGET_AI_AGENT_FORM_LAYOUT, AXP_WIDGET_AI_AGENT_NAMES, AXP_WIDGET_PROPERTY_GROUP, AXP_default_Border_Box_Units, AXP_default_Border_Box_Value, AXP_default_Spacing_Box_Units, AXP_default_Spacing_Box_Value, DEFAULT_STRATEGY_CONFIG, STRATEGY_CONFIG_TOKEN, booleanDefaultProperty, largeTextDefaultProperty, matchesWidgetAiAgent, numberDefaultProperty, numberMaxValueProperty, numberMinValueProperty, plainTextDefaultProperty, richTextDefaultProperty, selectEditorDefaultValueProperty, selectionListEditorDefaultValueProperty };
30113
30425
  //# sourceMappingURL=acorex-platform-layout-widgets.mjs.map