@acorex/platform 20.2.3 → 20.2.4-next.1

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 (75) hide show
  1. package/common/index.d.ts +91 -3
  2. package/core/index.d.ts +65 -58
  3. package/fesm2022/acorex-platform-common.mjs +16 -8
  4. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-core.mjs +110 -158
  6. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-layout-builder.mjs +109 -55
  8. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-layout-components.mjs +1086 -35
  10. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-designer.mjs +15 -122
  12. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-entity.mjs +2518 -1006
  14. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-layout-views.mjs +243 -65
  16. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  17. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-hHXxHlFG.mjs → acorex-platform-themes-default-entity-master-create-view.component-I7Eq8Nti.mjs} +3 -3
  18. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-hHXxHlFG.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-I7Eq8Nti.mjs.map} +1 -1
  19. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DXGLsVis.mjs +706 -0
  20. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DXGLsVis.mjs.map +1 -0
  21. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-DC3MrDtI.mjs → acorex-platform-themes-default-entity-master-modify-view.component-16sdMBvH.mjs} +3 -10
  22. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-16sdMBvH.mjs.map +1 -0
  23. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-Bb90PeHq.mjs → acorex-platform-themes-default-entity-master-single-view.component-CVaJzWb2.mjs} +25 -17
  24. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-CVaJzWb2.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-themes-default.mjs +65 -495
  26. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  27. package/fesm2022/{acorex-platform-themes-shared-color-chooser-column.component-DjKLg513.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-DjKLg513.mjs} +1 -1
  28. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DjKLg513.mjs.map +1 -0
  29. package/fesm2022/{acorex-platform-themes-shared-color-chooser-view.component-DE0wO98F.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-DE0wO98F.mjs} +1 -1
  30. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DE0wO98F.mjs.map +1 -0
  31. package/fesm2022/acorex-platform-themes-shared.mjs +10 -12
  32. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  33. package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-BI18uzNZ.mjs → acorex-platform-widgets-checkbox-widget-designer.component-Cv7dEMCm.mjs} +2 -2
  34. package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-Cv7dEMCm.mjs.map +1 -0
  35. package/fesm2022/acorex-platform-widgets-extra-properties-schema-widget-edit.component-B3SJUnGQ.mjs +50 -0
  36. package/fesm2022/acorex-platform-widgets-extra-properties-schema-widget-edit.component-B3SJUnGQ.mjs.map +1 -0
  37. package/fesm2022/acorex-platform-widgets-extra-properties-schema-widget-view.component-BLR0JkRt.mjs +42 -0
  38. package/fesm2022/acorex-platform-widgets-extra-properties-schema-widget-view.component-BLR0JkRt.mjs.map +1 -0
  39. package/fesm2022/acorex-platform-widgets-extra-properties-values-widget-edit.component-hzR2FgOm.mjs +55 -0
  40. package/fesm2022/acorex-platform-widgets-extra-properties-values-widget-edit.component-hzR2FgOm.mjs.map +1 -0
  41. package/fesm2022/acorex-platform-widgets-extra-properties-values-widget-view.component-IDm6Clua.mjs +50 -0
  42. package/fesm2022/acorex-platform-widgets-extra-properties-values-widget-view.component-IDm6Clua.mjs.map +1 -0
  43. package/fesm2022/acorex-platform-widgets-extra-properties-widget-edit.component-BRO9tYDa.mjs +48 -0
  44. package/fesm2022/acorex-platform-widgets-extra-properties-widget-edit.component-BRO9tYDa.mjs.map +1 -0
  45. package/fesm2022/acorex-platform-widgets-extra-properties-widget-view.component-CkpLimyW.mjs +42 -0
  46. package/fesm2022/acorex-platform-widgets-extra-properties-widget-view.component-CkpLimyW.mjs.map +1 -0
  47. package/fesm2022/{acorex-platform-widgets-file-list-popup.component-DFbPO0ud.mjs → acorex-platform-widgets-file-list-popup.component-B601gPsW.mjs} +66 -3
  48. package/fesm2022/acorex-platform-widgets-file-list-popup.component-B601gPsW.mjs.map +1 -0
  49. package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-nLZYiPnF.mjs → acorex-platform-widgets-tabular-data-edit-popup.component-BDQIfr0g.mjs} +5 -5
  50. package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-nLZYiPnF.mjs.map → acorex-platform-widgets-tabular-data-edit-popup.component-BDQIfr0g.mjs.map} +1 -1
  51. package/fesm2022/{acorex-platform-widgets-tabular-data-view-popup.component-D6kiasYM.mjs → acorex-platform-widgets-tabular-data-view-popup.component-CmPqtt0G.mjs} +3 -3
  52. package/fesm2022/{acorex-platform-widgets-tabular-data-view-popup.component-D6kiasYM.mjs.map → acorex-platform-widgets-tabular-data-view-popup.component-CmPqtt0G.mjs.map} +1 -1
  53. package/fesm2022/acorex-platform-widgets.mjs +1352 -218
  54. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  55. package/fesm2022/acorex-platform-workflow.mjs +3 -0
  56. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  57. package/layout/builder/index.d.ts +19 -5
  58. package/layout/components/index.d.ts +214 -9
  59. package/layout/designer/index.d.ts +3 -46
  60. package/layout/entity/index.d.ts +203 -332
  61. package/layout/views/index.d.ts +83 -21
  62. package/package.json +5 -5
  63. package/themes/default/index.d.ts +5 -2
  64. package/widgets/index.d.ts +107 -11
  65. package/workflow/index.d.ts +3 -1
  66. package/fesm2022/acorex-platform-themes-default-create-entity-view.component-SY0oMDoH.mjs +0 -22
  67. package/fesm2022/acorex-platform-themes-default-create-entity-view.component-SY0oMDoH.mjs.map +0 -1
  68. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-hf4QOz_4.mjs +0 -665
  69. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-hf4QOz_4.mjs.map +0 -1
  70. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DC3MrDtI.mjs.map +0 -1
  71. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Bb90PeHq.mjs.map +0 -1
  72. package/fesm2022/acorex-platform-themes-shared-color-chooser-column.component-DjKLg513.mjs.map +0 -1
  73. package/fesm2022/acorex-platform-themes-shared-color-chooser-view.component-DE0wO98F.mjs.map +0 -1
  74. package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-BI18uzNZ.mjs.map +0 -1
  75. package/fesm2022/acorex-platform-widgets-file-list-popup.component-DFbPO0ud.mjs.map +0 -1
@@ -1,16 +1,17 @@
1
1
  import * as i1$1 from '@acorex/components/skeleton';
2
2
  import { AXSkeletonModule } from '@acorex/components/skeleton';
3
+ import * as i2 from '@acorex/core/translation';
4
+ import { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
3
5
  import { PortalModule } from '@angular/cdk/portal';
4
6
  import * as i1 from '@angular/common';
5
7
  import { CommonModule } from '@angular/common';
6
8
  import * as i0 from '@angular/core';
7
9
  import { signal, computed, Injectable, InjectionToken, inject, Injector, ChangeDetectorRef, ViewChild, Input, ChangeDetectionStrategy, Component, EventEmitter, effect, Output, input, output, ViewContainerRef, Directive, Optional, Inject, NgModule, ElementRef } from '@angular/core';
8
10
  import { AXDataTableColumnComponent, AXBaseDataTable } from '@acorex/components/data-table';
11
+ import { getSmart, setSmart, AXPExpressionEvaluatorService, AXPDataSourceDefinitionProviderService, extractValue } from '@acorex/platform/core';
9
12
  import { set, merge, cloneDeep, isNil, isEqual, get, sum, isEmpty, isString, isUndefined, isObjectLike } from 'lodash-es';
10
13
  import { Subject, filter, BehaviorSubject } from 'rxjs';
11
- import { getSmart, setSmart, AXPExpressionEvaluatorService, AXPDataSourceDefinitionProviderService, extractValue } from '@acorex/platform/core';
12
14
  import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';
13
- import { AXTranslationService } from '@acorex/core/translation';
14
15
  import { AXUnsubscriber } from '@acorex/core/utils';
15
16
  import { convertArrayToDataSource, AXDataSource } from '@acorex/cdk/common';
16
17
 
@@ -54,6 +55,7 @@ class AXPLayoutBuilderService {
54
55
  this.functions$ = signal({}, ...(ngDevMode ? [{ debugName: "functions$" }] : []));
55
56
  this.onRefresh = new Subject();
56
57
  this.widgets = new Map();
58
+ this.onWidgetRegistered = new Subject();
57
59
  this.status$ = signal(AXPPageStatus.Rendering, ...(ngDevMode ? [{ debugName: "status$" }] : []));
58
60
  this.status = this.status$.asReadonly();
59
61
  this.isBusy = computed(() => {
@@ -70,7 +72,7 @@ class AXPLayoutBuilderService {
70
72
  this.status$.update(() => this.detectStatus());
71
73
  }
72
74
  detectStatus() {
73
- const statuses = Array.from(this.widgets.values()).map(c => c.status());
75
+ const statuses = Array.from(this.widgets.values()).map((c) => c.status());
74
76
  // Rendering statuses
75
77
  if (statuses.some((status) => status === AXPWidgetStatus.Rendering)) {
76
78
  return AXPPageStatus.Rendering;
@@ -116,12 +118,46 @@ class AXPLayoutBuilderService {
116
118
  }
117
119
  registerWidget(id, widget) {
118
120
  this.widgets.set(id, widget);
121
+ this.onWidgetRegistered.next({ id, widget });
119
122
  }
120
123
  getWidget(id) {
121
124
  return this.widgets.get(id);
122
125
  }
123
- ngOnDestroy() {
126
+ /**
127
+ * Waits until a widget with the given id is registered, then resolves with it.
128
+ * If the widget is already registered, resolves immediately.
129
+ * Optionally accepts a timeout (in ms) after which it resolves with undefined.
130
+ */
131
+ async waitForWidget(id, timeoutMs) {
132
+ const existing = this.widgets.get(id);
133
+ if (existing) {
134
+ return existing;
135
+ }
136
+ return new Promise((resolve) => {
137
+ let resolved = false;
138
+ let timer = null;
139
+ const sub = this.onWidgetRegistered.subscribe(({ id: registeredId, widget }) => {
140
+ if (registeredId === id && !resolved) {
141
+ resolved = true;
142
+ sub.unsubscribe();
143
+ if (timer) {
144
+ clearTimeout(timer);
145
+ }
146
+ resolve(widget);
147
+ }
148
+ });
149
+ if (timeoutMs != null && timeoutMs > 0) {
150
+ timer = setTimeout(() => {
151
+ if (!resolved) {
152
+ resolved = true;
153
+ sub.unsubscribe();
154
+ resolve(undefined);
155
+ }
156
+ }, timeoutMs);
157
+ }
158
+ });
124
159
  }
160
+ ngOnDestroy() { }
125
161
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPLayoutBuilderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
126
162
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPLayoutBuilderService }); }
127
163
  }
@@ -194,6 +230,7 @@ const AXPWidgetsCatalog = {
194
230
  fileTypeExtension: 'file-type-extension',
195
231
  map: 'map',
196
232
  imageMarker: 'image-marker',
233
+ image: 'image',
197
234
  gallery: 'gallery',
198
235
  signature: 'signature',
199
236
  buttonAction: 'button-action',
@@ -221,7 +258,7 @@ const AXPWidgetsCatalog = {
221
258
  fontStyleChooser: 'font-style-chooser',
222
259
  fontSizeChooser: 'font-size-chooser',
223
260
  iconChooser: 'icon-chooser',
224
- colorChooser: 'color-chooser',
261
+ themeColorChooser: 'theme-color-chooser',
225
262
  gridOptions: 'grid-options',
226
263
  advancedGridOptions: 'advanced-grid-options',
227
264
  stringFilter: 'string-filter',
@@ -254,8 +291,11 @@ const AXPWidgetsCatalog = {
254
291
  templateEditor: 'template-box-editor',
255
292
  panel: 'panel',
256
293
  notification: 'notification',
257
- taskList: 'task-list',
294
+ taskBoard: 'task-board',
258
295
  comment: 'comment',
296
+ list: 'list',
297
+ listToolbar: 'list-toolbar',
298
+ entityList: 'entity-list',
259
299
  };
260
300
 
261
301
  function cloneProperty(property, values) {
@@ -405,14 +445,14 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
405
445
  },
406
446
  ],
407
447
  });
408
- this.width = this.customWidth ? this.customWidth : this.mergedOptions().width ?? '200px';
448
+ this.width = this.customWidth ? this.customWidth : (this.mergedOptions().width ?? '200px');
409
449
  this.allowResizing = this.mergedOptions().allowResizing || true;
410
450
  this.cdr.detectChanges();
411
451
  }
412
452
  getInputs(data) {
413
453
  return {
414
454
  rawValue: getSmart(data, this.node.path),
415
- rowData: data
455
+ rowData: data,
416
456
  };
417
457
  }
418
458
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPWidgetColumnRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
@@ -420,63 +460,69 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
420
460
  AXPLayoutBuilderService,
421
461
  { provide: AXDataTableColumnComponent, useExisting: AXPWidgetColumnRendererComponent },
422
462
  ], viewQueries: [{ propertyName: "_contentFooterTemplate", first: true, predicate: ["footer"], descendants: true }, { propertyName: "_contentCellTemplate", first: true, predicate: ["cell"], descendants: true }, { propertyName: "_contentHeaderTemplate", first: true, predicate: ["header"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
423
- <ng-template #header>{{ caption }}</ng-template>
463
+ <ng-template #header>{{ caption | translate | async }}</ng-template>
424
464
  <ng-template #cell let-row>
425
465
  <div class="ax-flex ax-gap-2 ax-items-center">
426
466
  @if (expandHandler) {
427
- <div
428
- (click)="handleExpandRow(row)"
429
- class="ax-expand-handler"
430
- [class.ax-invisible]="row.data.hasChild === false"
431
- id="ax-expand-handler-container"
432
- [style.padding-inline-start.rem]="row.data?.__meta__?.level * 2"
433
- >
434
- @if (loadingRow() === row) {
435
- <i class="fas fa-spinner-third ax-animate-twSpin ax-animate-infinite"></i>
436
- } @else { @if (row.data?.__meta__?.expanded) {
437
- <i [class]="customCollapseIcon || 'far fa-minus-square ax-text-md ax-opacity-75'"></i>
438
- } @else {
439
- <i [class]="customExpandIcon || 'far fa-plus-square ax-text-md ax-opacity-75'"></i>
440
- } }
441
- </div>
442
- } @if(component && widgetInjector && row?.data) {
443
- <ng-container
444
- *ngComponentOutlet="component; injector: widgetInjector; inputs: getInputs(row.data)"
445
- ></ng-container>
467
+ <div
468
+ (click)="handleExpandRow(row)"
469
+ class="ax-expand-handler"
470
+ [class.ax-invisible]="row.data.hasChild === false"
471
+ id="ax-expand-handler-container"
472
+ [style.padding-inline-start.rem]="row.data?.__meta__?.level * 2"
473
+ >
474
+ @if (loadingRow() === row) {
475
+ <i class="fas fa-spinner-third ax-animate-twSpin ax-animate-infinite"></i>
476
+ } @else {
477
+ @if (row.data?.__meta__?.expanded) {
478
+ <i [class]="customCollapseIcon || 'far fa-minus-square ax-text-md ax-opacity-75'"></i>
479
+ } @else {
480
+ <i [class]="customExpandIcon || 'far fa-plus-square ax-text-md ax-opacity-75'"></i>
481
+ }
482
+ }
483
+ </div>
484
+ }
485
+ @if (component && widgetInjector && row?.data) {
486
+ <ng-container
487
+ *ngComponentOutlet="component; injector: widgetInjector; inputs: getInputs(row.data)"
488
+ ></ng-container>
446
489
  }
447
490
  </div>
448
491
  </ng-template>
449
492
  <ng-template #footer></ng-template>
450
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
493
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
451
494
  }
452
495
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPWidgetColumnRendererComponent, decorators: [{
453
496
  type: Component,
454
497
  args: [{
455
498
  selector: 'axp-widget-column-renderer',
456
499
  template: `
457
- <ng-template #header>{{ caption }}</ng-template>
500
+ <ng-template #header>{{ caption | translate | async }}</ng-template>
458
501
  <ng-template #cell let-row>
459
502
  <div class="ax-flex ax-gap-2 ax-items-center">
460
503
  @if (expandHandler) {
461
- <div
462
- (click)="handleExpandRow(row)"
463
- class="ax-expand-handler"
464
- [class.ax-invisible]="row.data.hasChild === false"
465
- id="ax-expand-handler-container"
466
- [style.padding-inline-start.rem]="row.data?.__meta__?.level * 2"
467
- >
468
- @if (loadingRow() === row) {
469
- <i class="fas fa-spinner-third ax-animate-twSpin ax-animate-infinite"></i>
470
- } @else { @if (row.data?.__meta__?.expanded) {
471
- <i [class]="customCollapseIcon || 'far fa-minus-square ax-text-md ax-opacity-75'"></i>
472
- } @else {
473
- <i [class]="customExpandIcon || 'far fa-plus-square ax-text-md ax-opacity-75'"></i>
474
- } }
475
- </div>
476
- } @if(component && widgetInjector && row?.data) {
477
- <ng-container
478
- *ngComponentOutlet="component; injector: widgetInjector; inputs: getInputs(row.data)"
479
- ></ng-container>
504
+ <div
505
+ (click)="handleExpandRow(row)"
506
+ class="ax-expand-handler"
507
+ [class.ax-invisible]="row.data.hasChild === false"
508
+ id="ax-expand-handler-container"
509
+ [style.padding-inline-start.rem]="row.data?.__meta__?.level * 2"
510
+ >
511
+ @if (loadingRow() === row) {
512
+ <i class="fas fa-spinner-third ax-animate-twSpin ax-animate-infinite"></i>
513
+ } @else {
514
+ @if (row.data?.__meta__?.expanded) {
515
+ <i [class]="customCollapseIcon || 'far fa-minus-square ax-text-md ax-opacity-75'"></i>
516
+ } @else {
517
+ <i [class]="customExpandIcon || 'far fa-plus-square ax-text-md ax-opacity-75'"></i>
518
+ }
519
+ }
520
+ </div>
521
+ }
522
+ @if (component && widgetInjector && row?.data) {
523
+ <ng-container
524
+ *ngComponentOutlet="component; injector: widgetInjector; inputs: getInputs(row.data)"
525
+ ></ng-container>
480
526
  }
481
527
  </div>
482
528
  </ng-template>
@@ -653,6 +699,12 @@ class AXPWidgetContainerComponent {
653
699
  }
654
700
  });
655
701
  }
702
+ refresh() {
703
+ this.builderService.refresh();
704
+ }
705
+ find(name) {
706
+ return this.builderService.waitForWidget(name);
707
+ }
656
708
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPWidgetContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
657
709
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.6", type: AXPWidgetContainerComponent, isStandalone: false, selector: "axp-widgets-container", inputs: { context: "context", functions: "functions" }, outputs: { onContextChanged: "onContextChanged" }, host: { styleAttribute: "display: contents;" }, providers: [AXPLayoutBuilderService, AXPLayoutBuilderContextStore], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
658
710
  }
@@ -786,8 +838,10 @@ class AXPWidgetRendererDirective {
786
838
  //
787
839
  const widget = this.widgetRegistery.resolve(this.node().type);
788
840
  //
789
- const propertiesToProcess = [...(widget?.properties ?? []), ...(widget?.components[this.mode()]?.properties ?? [])]
790
- ?.filter((c) => c.schema.defaultValue != null);
841
+ const propertiesToProcess = [
842
+ ...(widget?.properties ?? []),
843
+ ...(widget?.components[this.mode()]?.properties ?? []),
844
+ ]?.filter((c) => c.schema.defaultValue != null);
791
845
  // Process default values (evaluate expressions if needed)
792
846
  const props = {};
793
847
  for (const property of propertiesToProcess) {
@@ -893,7 +947,7 @@ class AXPWidgetRendererDirective {
893
947
  Object.entries(obj).forEach(([key, value]) => {
894
948
  const currentPath = pathPrefix ? `${pathPrefix}.${key}` : key;
895
949
  // CRITICAL FIX: Skip trigger actions during options processing
896
- //
950
+ //
897
951
  // PROBLEM: Trigger actions were being evaluated immediately during widget setup/options processing,
898
952
  // causing them to execute before the actual trigger event occurred. This meant triggers would fire
899
953
  // during initialization instead of when the specified context path actually changed.
@@ -1195,13 +1249,13 @@ class AXPLayoutBuilderModule {
1195
1249
  });
1196
1250
  }
1197
1251
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPLayoutBuilderModule, deps: [{ token: 'AXPLayoutBuilderModuleFactory', optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
1198
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.6", ngImport: i0, type: AXPLayoutBuilderModule, declarations: [AXPWidgetContainerComponent, AXPWidgetColumnRendererComponent, AXPWidgetRendererDirective], imports: [CommonModule, PortalModule, AXSkeletonModule, CommonModule], exports: [AXPWidgetContainerComponent, AXPWidgetColumnRendererComponent, AXPWidgetRendererDirective] }); }
1199
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPLayoutBuilderModule, imports: [CommonModule, PortalModule, AXSkeletonModule, CommonModule] }); }
1252
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.6", ngImport: i0, type: AXPLayoutBuilderModule, declarations: [AXPWidgetContainerComponent, AXPWidgetColumnRendererComponent, AXPWidgetRendererDirective], imports: [CommonModule, PortalModule, AXSkeletonModule, CommonModule, AXTranslationModule], exports: [AXPWidgetContainerComponent, AXPWidgetColumnRendererComponent, AXPWidgetRendererDirective] }); }
1253
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPLayoutBuilderModule, imports: [CommonModule, PortalModule, AXSkeletonModule, CommonModule, AXTranslationModule] }); }
1200
1254
  }
1201
1255
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPLayoutBuilderModule, decorators: [{
1202
1256
  type: NgModule,
1203
1257
  args: [{
1204
- imports: [CommonModule, PortalModule, AXSkeletonModule, CommonModule],
1258
+ imports: [CommonModule, PortalModule, AXSkeletonModule, CommonModule, AXTranslationModule],
1205
1259
  exports: [...COMPONENTS],
1206
1260
  declarations: [...COMPONENTS],
1207
1261
  }]