@acorex-platform/framework-client 2.0.0-next.15 → 2.0.0-next.17

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 (54) hide show
  1. package/fesm2022/{acorex-platform-framework-client-common-common-settings.provider-ChU2tvyt.mjs → acorex-platform-framework-client-common-common-settings.provider-Cyr1DaiD.mjs} +19 -2
  2. package/fesm2022/{acorex-platform-framework-client-common-common-settings.provider-ChU2tvyt.mjs.map → acorex-platform-framework-client-common-common-settings.provider-Cyr1DaiD.mjs.map} +1 -1
  3. package/fesm2022/acorex-platform-framework-client-common.mjs +126 -26
  4. package/fesm2022/acorex-platform-framework-client-common.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-framework-client-layout-components.mjs +221 -98
  6. package/fesm2022/acorex-platform-framework-client-layout-components.mjs.map +1 -1
  7. package/fesm2022/{acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-RG1FLjoP.mjs → acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-o8SLSxU-.mjs} +147 -41
  8. package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-o8SLSxU-.mjs.map +1 -0
  9. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-Bh8YRyxV.mjs → acorex-platform-framework-client-layout-entity-attachments-page.component-B2v5VFlL.mjs} +2 -2
  10. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-Bh8YRyxV.mjs.map → acorex-platform-framework-client-layout-entity-attachments-page.component-B2v5VFlL.mjs.map} +1 -1
  11. package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-CSfoFx99.mjs → acorex-platform-framework-client-layout-entity-bulk-entity.command-DiB2ZLpg.mjs} +2 -2
  12. package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-CSfoFx99.mjs.map → acorex-platform-framework-client-layout-entity-bulk-entity.command-DiB2ZLpg.mjs.map} +1 -1
  13. package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-Z2N8JZ3_.mjs → acorex-platform-framework-client-layout-entity-file-list-popup.component-C9esa6dp.mjs} +2 -2
  14. package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-Z2N8JZ3_.mjs.map → acorex-platform-framework-client-layout-entity-file-list-popup.component-C9esa6dp.mjs.map} +1 -1
  15. package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-ZEGLkwzi.mjs → acorex-platform-framework-client-layout-entity-gallery-page.component-CKxYno2v.mjs} +2 -2
  16. package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-ZEGLkwzi.mjs.map → acorex-platform-framework-client-layout-entity-gallery-page.component-CKxYno2v.mjs.map} +1 -1
  17. package/fesm2022/acorex-platform-framework-client-layout-entity.mjs +1 -1
  18. package/fesm2022/acorex-platform-framework-client-layout-views.mjs +59 -10
  19. package/fesm2022/acorex-platform-framework-client-layout-views.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs +175 -172
  21. package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs.map +1 -1
  22. package/fesm2022/{acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-CzhP4_OE.mjs → acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-DZMgisgf.mjs} +80 -75
  23. package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-DZMgisgf.mjs.map +1 -0
  24. package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-BIl416zF.mjs → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-BejeCu5q.mjs} +2 -2
  25. package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-BIl416zF.mjs.map → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-BejeCu5q.mjs.map} +1 -1
  26. package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DK8XXQuT.mjs → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-C2XsTtkl.mjs} +2 -2
  27. package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DK8XXQuT.mjs.map → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-C2XsTtkl.mjs.map} +1 -1
  28. package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs +1 -1
  29. package/fesm2022/acorex-platform-framework-client-realtime.mjs +49 -7
  30. package/fesm2022/acorex-platform-framework-client-realtime.mjs.map +1 -1
  31. package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-create-view.component-DwCoz2Du.mjs → acorex-platform-framework-client-themes-default-entity-master-create-view.component-DPU6jTDk.mjs} +8 -2
  32. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-create-view.component-DPU6jTDk.mjs.map +1 -0
  33. package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-modify-view.component-BCyFK60f.mjs → acorex-platform-framework-client-themes-default-entity-master-modify-view.component-CLdQJ8e8.mjs} +8 -2
  34. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-CLdQJ8e8.mjs.map +1 -0
  35. package/fesm2022/acorex-platform-framework-client-themes-default.mjs +18 -11
  36. package/fesm2022/acorex-platform-framework-client-themes-default.mjs.map +1 -1
  37. package/i18n/en-AU/general.json +16 -4
  38. package/i18n/en-AU/layout.json +2 -1
  39. package/i18n/en-US/general.json +16 -4
  40. package/i18n/en-US/layout.json +2 -1
  41. package/i18n/fa-IR/general.json +16 -4
  42. package/i18n/fa-IR/layout.json +2 -1
  43. package/package.json +2 -2
  44. package/types/acorex-platform-framework-client-common.d.ts +40 -5
  45. package/types/acorex-platform-framework-client-layout-components.d.ts +9 -3
  46. package/types/acorex-platform-framework-client-layout-entity.d.ts +18 -1
  47. package/types/acorex-platform-framework-client-layout-views.d.ts +15 -0
  48. package/types/acorex-platform-framework-client-layout-widget-core.d.ts +39 -14
  49. package/types/acorex-platform-framework-client-layout-widgets.d.ts +12 -0
  50. package/types/acorex-platform-framework-client-realtime.d.ts +5 -0
  51. package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-RG1FLjoP.mjs.map +0 -1
  52. package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-CzhP4_OE.mjs.map +0 -1
  53. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-create-view.component-DwCoz2Du.mjs.map +0 -1
  54. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-BCyFK60f.mjs.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, signal, computed, effect, untracked, Injectable, inject, ElementRef, DestroyRef, PLATFORM_ID, EventEmitter, Injector, ChangeDetectorRef, ViewChild, Input, Output, ChangeDetectionStrategy, Component, input, output, ViewContainerRef, Directive, NgModule } from '@angular/core';
3
- import { AXPContextStore, AXPDeviceService, AXPExpressionEvaluatorService, AXPDebugService, FORM_DIRTY_TRACE_NS, OVERLAY_WIDGET_SETTLE_TRACE_NS } from '@acorex-platform/framework-client/core';
3
+ import { AXPContextStore, AXPExpressionEvaluatorService, AXPDeviceService, AXPDebugService, FORM_DIRTY_TRACE_NS, OVERLAY_WIDGET_SETTLE_TRACE_NS } from '@acorex-platform/framework-client/core';
4
4
  import { AXPPageStatus, AXPWidgetStatus, AXP_WIDGET_TOKEN, AXP_WIDGET_COLUMN_TOKEN, layoutProfileMediumFromRenderMode, resolveLayoutProfile, createStringProperty, createBooleanProperty, createSelectProperty, createNumberProperty, cloneProperty } from '@acorex-platform/framework-shared/widget-core';
5
5
  import { cloneDeep, get, isEqual, set, isNil, isUndefined, isObjectLike, merge, sum, isEmpty, isString } from 'lodash-es';
6
6
  import { AXPWidgetsList, isSelectionValueEqual, isFormValueEqual, runtimeQueryPayloadData, runtimeQueryCollectionData, extractValue, axpGridItemPlacementClassMap, getSmart, summarizeFormContextDirtyDiff, AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';
@@ -678,6 +678,103 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
678
678
  type: Injectable
679
679
  }], ctorParameters: () => [] });
680
680
 
681
+ //#region ----- Authored rules -----
682
+ function collectAuthoredValidationRules(validationsRaw) {
683
+ if (validationsRaw == null) {
684
+ return [];
685
+ }
686
+ const values = Array.isArray(validationsRaw)
687
+ ? validationsRaw
688
+ : Object.values(validationsRaw);
689
+ const rules = [];
690
+ for (const item of values) {
691
+ if (item == null || typeof item !== 'object') {
692
+ continue;
693
+ }
694
+ const candidate = item;
695
+ if (typeof candidate.rule !== 'string' || candidate.rule.length === 0) {
696
+ continue;
697
+ }
698
+ rules.push({
699
+ rule: candidate.rule,
700
+ message: candidate.message,
701
+ options: candidate.options,
702
+ disabled: candidate.disabled,
703
+ });
704
+ }
705
+ return rules;
706
+ }
707
+ //#endregion
708
+ //#region ----- Disabled resolution -----
709
+ function assumedValidationDisabled(disabled, isExpression) {
710
+ if (disabled === true) {
711
+ return true;
712
+ }
713
+ return typeof disabled === 'string' && isExpression(disabled);
714
+ }
715
+ function resolveValidationContextPath(path, parentPath) {
716
+ if (!path.startsWith('>')) {
717
+ return path;
718
+ }
719
+ const rest = path.slice(1);
720
+ return parentPath ? `${parentPath}.${rest}` : rest;
721
+ }
722
+ function validationExpressionScope(readPath) {
723
+ return {
724
+ context: {
725
+ eval: (path) => readPath(path),
726
+ },
727
+ };
728
+ }
729
+ async function resolveValidationDisabledFlags(rules, isExpression, evaluate) {
730
+ return Promise.all(rules.map(async (rule) => {
731
+ const disabled = rule.disabled;
732
+ if (typeof disabled === 'boolean') {
733
+ return disabled;
734
+ }
735
+ if (typeof disabled !== 'string' || !isExpression(disabled)) {
736
+ return false;
737
+ }
738
+ try {
739
+ return (await evaluate(disabled)) === true;
740
+ }
741
+ catch {
742
+ return false;
743
+ }
744
+ }));
745
+ }
746
+ //#endregion
747
+ async function isRequiredRuleActive(disabledSources, isExpression, evaluate) {
748
+ if (disabledSources.length === 0) {
749
+ return false;
750
+ }
751
+ const flags = await resolveValidationDisabledFlags(disabledSources.map((disabled) => ({ rule: 'required', disabled })), isExpression, evaluate);
752
+ return flags.some((disabled) => disabled !== true);
753
+ }
754
+ /**
755
+ * Live required indicator: a `required` rule counts only while its `disabled` flag is not true.
756
+ * Expression `disabled` stays off until the expression resolves.
757
+ */
758
+ function syncRequiredIndicator(args) {
759
+ const required = signal(false, /* @ts-ignore */
760
+ ...(ngDevMode ? [{ debugName: "required" }] : /* istanbul ignore next */ []));
761
+ let generation = 0;
762
+ effect(() => {
763
+ const rules = args.nodes().flatMap((node) => collectAuthoredValidationRules(node.options?.['validations']));
764
+ args.trackContext();
765
+ const generationId = ++generation;
766
+ required.set(rules.some((rule) => rule.rule === 'required' && !assumedValidationDisabled(rule.disabled, args.isExpression)));
767
+ void resolveValidationDisabledFlags(rules, args.isExpression, args.evaluate).then((flags) => {
768
+ if (generationId !== generation) {
769
+ return;
770
+ }
771
+ required.set(rules.some((rule, index) => rule.rule === 'required' && flags[index] !== true));
772
+ });
773
+ });
774
+ return required.asReadonly();
775
+ }
776
+ //#endregion
777
+
681
778
  //#region ----- Imports -----
682
779
  //#endregion
683
780
  //#region ----- Constants -----
@@ -1163,30 +1260,52 @@ class AXPValueWidgetComponent extends AXPLayoutBaseWidgetComponent {
1163
1260
  ...(ngDevMode ? [{ debugName: "fullPath" }] : /* istanbul ignore next */ []));
1164
1261
  this.parentPath = signal(null, /* @ts-ignore */
1165
1262
  ...(ngDevMode ? [{ debugName: "parentPath" }] : /* istanbul ignore next */ []));
1263
+ this.validationExpressionEvaluator = inject(AXPExpressionEvaluatorService);
1264
+ this.validationDisabledByIndex = signal([], /* @ts-ignore */
1265
+ ...(ngDevMode ? [{ debugName: "validationDisabledByIndex" }] : /* istanbul ignore next */ []));
1266
+ this.validationDisabledGeneration = 0;
1267
+ this.#syncValidationDisabled = effect(() => {
1268
+ const rules = collectAuthoredValidationRules(this.options()['validations']);
1269
+ this.contextService.data();
1270
+ const parent = this.parentPath();
1271
+ const generation = ++this.validationDisabledGeneration;
1272
+ void resolveValidationDisabledFlags(rules, (value) => this.validationExpressionEvaluator.isExpression(value), (expression) => this.validationExpressionEvaluator.evaluate(expression, validationExpressionScope((path) => this.contextService.getValue(resolveValidationContextPath(path, parent))))).then((flags) => {
1273
+ if (generation !== this.validationDisabledGeneration) {
1274
+ return;
1275
+ }
1276
+ const current = this.validationDisabledByIndex();
1277
+ if (current.length === flags.length && current.every((flag, index) => flag === flags[index])) {
1278
+ return;
1279
+ }
1280
+ this.validationDisabledByIndex.set(flags);
1281
+ });
1282
+ }, /* @ts-ignore */
1283
+ ...(ngDevMode ? [{ debugName: "#syncValidationDisabled" }] : /* istanbul ignore next */ []));
1166
1284
  this.getValue = computed(() => {
1167
1285
  return this.fullPath() ? this.extractValue(this.fullPath()) : null;
1168
1286
  }, { ...(ngDevMode ? { debugName: "getValue" } : /* istanbul ignore next */ {}), equal: isEqual });
1169
- this.validationRules = computed(() => {
1170
- const validationsRaw = this.options()['validations'];
1171
- if (validationsRaw == null) {
1172
- return [];
1173
- }
1174
- return Object.values(this.options()['validations'])
1175
- .filter((c) => c != null)
1176
- .map((c) => ({
1177
- rule: c.rule,
1178
- message: c.message,
1179
- options: c.options,
1287
+ this.validationRulesWithDisabled = computed(() => {
1288
+ const rules = collectAuthoredValidationRules(this.options()['validations']);
1289
+ const flags = this.validationDisabledByIndex();
1290
+ const isExpression = (value) => this.validationExpressionEvaluator.isExpression(value);
1291
+ return rules.map((rule, index) => ({
1292
+ rule: rule.rule,
1293
+ message: rule.message,
1294
+ options: rule.options,
1295
+ disabled: flags[index] ?? assumedValidationDisabled(rule.disabled, isExpression),
1180
1296
  }));
1181
1297
  }, /* @ts-ignore */
1298
+ ...(ngDevMode ? [{ debugName: "validationRulesWithDisabled" }] : /* istanbul ignore next */ []));
1299
+ this.validationRules = computed(() => this.validationRulesWithDisabled(), /* @ts-ignore */
1182
1300
  ...(ngDevMode ? [{ debugName: "validationRules" }] : /* istanbul ignore next */ []));
1183
- this.hasRequiredValidation = computed(() => this.validationRules().some((rule) => rule.rule === 'required'), /* @ts-ignore */
1301
+ this.hasRequiredValidation = computed(() => this.validationRules().some((rule) => rule.rule === 'required' && rule.disabled !== true), /* @ts-ignore */
1184
1302
  ...(ngDevMode ? [{ debugName: "hasRequiredValidation" }] : /* istanbul ignore next */ []));
1185
1303
  this.hasClearButton = computed(() => this.resolveClearButtonOption('hasClearButton'), /* @ts-ignore */
1186
1304
  ...(ngDevMode ? [{ debugName: "hasClearButton" }] : /* istanbul ignore next */ []));
1187
1305
  this.clearButton = computed(() => this.resolveClearButtonOption('clearButton'), /* @ts-ignore */
1188
1306
  ...(ngDevMode ? [{ debugName: "clearButton" }] : /* istanbul ignore next */ []));
1189
1307
  }
1308
+ #syncValidationDisabled;
1190
1309
  ngOnInit() {
1191
1310
  this._isValueWidget = this.config.properties?.some((c) => c.name == 'path') ?? false;
1192
1311
  if (this.isValueWidget()) {
@@ -2115,6 +2234,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
2115
2234
  type: Injectable
2116
2235
  }] });
2117
2236
 
2237
+ const AXP_WIDGET_COLUMN_AUTO_FIT = new InjectionToken('AXP_WIDGET_COLUMN_AUTO_FIT');
2238
+
2118
2239
  //#region ---- Imports ----
2119
2240
  /**
2120
2241
  * Injection token for widget definition providers.
@@ -2200,8 +2321,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
2200
2321
  }]
2201
2322
  }] });
2202
2323
 
2203
- const AXP_WIDGET_COLUMN_AUTO_FIT = new InjectionToken('AXP_WIDGET_COLUMN_AUTO_FIT');
2204
-
2205
2324
  class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
2206
2325
  constructor() {
2207
2326
  super(...arguments);
@@ -2277,6 +2396,9 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
2277
2396
  this.loadingRow.set(row);
2278
2397
  await this.grid.expandRow(row);
2279
2398
  this.loadingRow.set(null);
2399
+ this.contentAutoFitSettled = false;
2400
+ this.contentAutoFitShouldSettle = false;
2401
+ this.scheduleContentAutoFit();
2280
2402
  // if (row.data?.__meta__?.expanded === undefined) {
2281
2403
  // this.width = `${parseInt(this.width as string) + 24}px`;
2282
2404
  // }
@@ -2333,9 +2455,7 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
2333
2455
  return this.normalizeColumnAlignment(align);
2334
2456
  }
2335
2457
  if (typeof align === 'object' && !Array.isArray(align)) {
2336
- const raw = side === 'header'
2337
- ? align.header
2338
- : align.cell;
2458
+ const raw = side === 'header' ? align.header : align.cell;
2339
2459
  return this.normalizeColumnAlignment(raw);
2340
2460
  }
2341
2461
  return 'start';
@@ -2391,12 +2511,7 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
2391
2511
  },
2392
2512
  ],
2393
2513
  });
2394
- this.width =
2395
- this.mergedOptions().width === 'auto'
2396
- ? 'auto'
2397
- : this.customWidth
2398
- ? this.customWidth
2399
- : (this.mergedOptions().width ?? '200px');
2514
+ this.width = this.mergedOptions().width === 'auto' ? 'auto' : this.customWidth ? this.customWidth : (this.mergedOptions().width ?? '200px');
2400
2515
  this.allowResizing = this.mergedOptions().allowResizing !== false;
2401
2516
  this.allowSorting = this.sortEnabled;
2402
2517
  this.syncAutoWidthIntent();
@@ -2460,9 +2575,7 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
2460
2575
  return;
2461
2576
  }
2462
2577
  this.bandLocaleWatchStarted = true;
2463
- this.translation.langChanges$
2464
- .pipe(takeUntilDestroyed(this.destroyRef))
2465
- .subscribe(() => {
2578
+ this.translation.langChanges$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
2466
2579
  if (this.isBand && this.bandCaptionI18nKey) {
2467
2580
  this.resolveBandCaption();
2468
2581
  }
@@ -2473,8 +2586,7 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
2473
2586
  return;
2474
2587
  }
2475
2588
  this.caption = text;
2476
- const topLevel = this.grid
2477
- .topLevelColumnsList;
2589
+ const topLevel = this.grid.topLevelColumnsList;
2478
2590
  if (topLevel) {
2479
2591
  topLevel.set([...topLevel()]);
2480
2592
  }
@@ -2506,9 +2618,7 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
2506
2618
  // Use a hash of key properties instead of full JSON.stringify
2507
2619
  // This is much faster for large objects
2508
2620
  const keyProps = ['id', 'code', 'name', 'title'];
2509
- const keyValues = keyProps
2510
- .map((prop) => data?.[prop])
2511
- .filter((v) => v != null);
2621
+ const keyValues = keyProps.map((prop) => data?.[prop]).filter((v) => v != null);
2512
2622
  if (keyValues.length > 0) {
2513
2623
  return `row-${keyValues.join('-')}`;
2514
2624
  }
@@ -2559,7 +2669,8 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
2559
2669
  if (!isPlatformBrowser(this.platformId) || !this.autoWidthColumn || this.contentAutoFitSettled) {
2560
2670
  return;
2561
2671
  }
2562
- this.contentAutoFitShouldSettle = this.contentAutoFitShouldSettle || request?.settle === true;
2672
+ const allowSettle = this.expandHandler !== true;
2673
+ this.contentAutoFitShouldSettle = this.contentAutoFitShouldSettle || (request?.settle === true && allowSettle);
2563
2674
  if (this.contentAutoFitTimer != null) {
2564
2675
  clearTimeout(this.contentAutoFitTimer);
2565
2676
  }
@@ -2731,23 +2842,13 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
2731
2842
  [class.flex]="!sortEnabled"
2732
2843
  [class.items-center]="!sortEnabled"
2733
2844
  [class.axp-widget-column-header--sortable]="sortEnabled"
2734
- [class.axp-widget-column-header--sort-at-start]="
2735
- sortEnabled && getHeaderTextAlign() === 'end'
2736
- "
2737
- [class.axp-widget-column-header--sort-active]="
2738
- headerSortDirection === 'asc' || headerSortDirection === 'desc'
2739
- "
2845
+ [class.axp-widget-column-header--sort-at-start]="sortEnabled && getHeaderTextAlign() === 'end'"
2846
+ [class.axp-widget-column-header--sort-active]="headerSortDirection === 'asc' || headerSortDirection === 'desc'"
2740
2847
  [class.gap-1]="!sortEnabled"
2741
- [style.justify-content]="
2742
- sortEnabled ? 'flex-start' : getHeaderJustifyContent()
2743
- "
2848
+ [style.justify-content]="sortEnabled ? 'flex-start' : getHeaderJustifyContent()"
2744
2849
  (click)="onHeaderClick($event)"
2745
2850
  >
2746
- <span
2747
- class="axp-widget-column-header__caption truncate"
2748
- [class.axp-widget-column-header__caption--with-sort]="sortEnabled"
2749
- [style.text-align]="sortEnabled ? getHeaderTextAlign() : null"
2750
- >
2851
+ <span class="axp-widget-column-header__caption truncate" [class.axp-widget-column-header__caption--with-sort]="sortEnabled" [style.text-align]="sortEnabled ? getHeaderTextAlign() : null">
2751
2852
  @if (isBand) {
2752
2853
  {{ caption }}
2753
2854
  } @else {
@@ -2757,84 +2858,40 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
2757
2858
  @if (sortEnabled) {
2758
2859
  <span class="axp-widget-column-header__sort">
2759
2860
  @if (headerSortPriority !== undefined && headerSortPriority > 1) {
2760
- <span
2761
- class="axp-widget-column-header__sort-priority text-xs opacity-70"
2762
- >{{ headerSortPriority }}</span
2763
- >
2861
+ <span class="axp-widget-column-header__sort-priority text-xs opacity-70">{{ headerSortPriority }}</span>
2764
2862
  }
2765
- <i
2766
- class="fa-solid fa-arrow-up-long text-neutral-400"
2767
- [class.text-primary]="headerSortDirection === 'asc'"
2768
- ></i>
2769
- <i
2770
- class="fa-solid fa-arrow-down-long text-neutral-400"
2771
- [class.text-primary]="headerSortDirection === 'desc'"
2772
- ></i>
2863
+ <i class="fa-solid fa-arrow-up-long text-neutral-400" [class.text-primary]="headerSortDirection === 'asc'"></i>
2864
+ <i class="fa-solid fa-arrow-down-long text-neutral-400" [class.text-primary]="headerSortDirection === 'desc'"></i>
2773
2865
  </span>
2774
2866
  }
2775
2867
  </div>
2776
2868
  </ng-template>
2777
2869
  <ng-template #cell let-row>
2778
2870
  @if (expandHandler) {
2779
- <div
2780
- class="ax-data-table-nested-indent w-full"
2781
- [attr.data-level]="row.data?.__meta__?.level || 0"
2782
- >
2871
+ <div class="ax-data-table-nested-indent w-full" [attr.data-level]="row.data?.__meta__?.level || 0">
2783
2872
  @if (hasExpandableRow(row)) {
2784
- <div
2785
- (click)="handleExpandRow(row, $event)"
2786
- class="ax-expand-handler"
2787
- id="ax-expand-handler-container"
2788
- >
2873
+ <div (click)="handleExpandRow(row, $event)" class="ax-expand-handler" id="ax-expand-handler-container">
2789
2874
  @if (loadingRow() === row) {
2790
- <i
2791
- class="fas fa-spinner-third animate-twSpin animate-infinite"
2792
- ></i>
2875
+ <i class="fas fa-spinner-third animate-twSpin animate-infinite"></i>
2793
2876
  } @else {
2794
2877
  @if (row.data?.__meta__?.expanded) {
2795
- <i
2796
- [class]="
2797
- customCollapseIcon ||
2798
- 'far fa-minus-square text-md opacity-75'
2799
- "
2800
- ></i>
2878
+ <i [class]="customCollapseIcon || 'far fa-minus-square text-md opacity-75'"></i>
2801
2879
  } @else {
2802
- <i
2803
- [class]="
2804
- customExpandIcon || 'far fa-plus-square text-md opacity-75'
2805
- "
2806
- ></i>
2880
+ <i [class]="customExpandIcon || 'far fa-plus-square text-md opacity-75'"></i>
2807
2881
  }
2808
2882
  }
2809
2883
  </div>
2810
2884
  }
2811
2885
  @if (component && row?.data) {
2812
2886
  <div class="ax-data-table-cell-text min-w-0 flex-1">
2813
- <ng-container
2814
- *ngComponentOutlet="
2815
- component;
2816
- injector: getRowInjector(row.data);
2817
- inputs: getInputs(row.data)
2818
- "
2819
- ></ng-container>
2887
+ <ng-container *ngComponentOutlet="component; injector: getRowInjector(row.data); inputs: getInputs(row.data)"></ng-container>
2820
2888
  </div>
2821
2889
  }
2822
2890
  </div>
2823
2891
  } @else {
2824
- <div
2825
- class="w-full min-w-0 max-w-full"
2826
- [class.flex]="getCellUseFlexLayout()"
2827
- [class.items-center]="getCellUseFlexLayout()"
2828
- [style.justify-content]="getCellJustifyContent()"
2829
- >
2892
+ <div class="w-full min-w-0 max-w-full" [class.flex]="getCellUseFlexLayout()" [class.items-center]="getCellUseFlexLayout()" [style.justify-content]="getCellJustifyContent()">
2830
2893
  @if (component && row?.data) {
2831
- <ng-container
2832
- *ngComponentOutlet="
2833
- component;
2834
- injector: getRowInjector(row.data);
2835
- inputs: getInputs(row.data)
2836
- "
2837
- ></ng-container>
2894
+ <ng-container *ngComponentOutlet="component; injector: getRowInjector(row.data); inputs: getInputs(row.data)"></ng-container>
2838
2895
  }
2839
2896
  </div>
2840
2897
  }
@@ -2852,23 +2909,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
2852
2909
  [class.flex]="!sortEnabled"
2853
2910
  [class.items-center]="!sortEnabled"
2854
2911
  [class.axp-widget-column-header--sortable]="sortEnabled"
2855
- [class.axp-widget-column-header--sort-at-start]="
2856
- sortEnabled && getHeaderTextAlign() === 'end'
2857
- "
2858
- [class.axp-widget-column-header--sort-active]="
2859
- headerSortDirection === 'asc' || headerSortDirection === 'desc'
2860
- "
2912
+ [class.axp-widget-column-header--sort-at-start]="sortEnabled && getHeaderTextAlign() === 'end'"
2913
+ [class.axp-widget-column-header--sort-active]="headerSortDirection === 'asc' || headerSortDirection === 'desc'"
2861
2914
  [class.gap-1]="!sortEnabled"
2862
- [style.justify-content]="
2863
- sortEnabled ? 'flex-start' : getHeaderJustifyContent()
2864
- "
2915
+ [style.justify-content]="sortEnabled ? 'flex-start' : getHeaderJustifyContent()"
2865
2916
  (click)="onHeaderClick($event)"
2866
2917
  >
2867
- <span
2868
- class="axp-widget-column-header__caption truncate"
2869
- [class.axp-widget-column-header__caption--with-sort]="sortEnabled"
2870
- [style.text-align]="sortEnabled ? getHeaderTextAlign() : null"
2871
- >
2918
+ <span class="axp-widget-column-header__caption truncate" [class.axp-widget-column-header__caption--with-sort]="sortEnabled" [style.text-align]="sortEnabled ? getHeaderTextAlign() : null">
2872
2919
  @if (isBand) {
2873
2920
  {{ caption }}
2874
2921
  } @else {
@@ -2878,84 +2925,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
2878
2925
  @if (sortEnabled) {
2879
2926
  <span class="axp-widget-column-header__sort">
2880
2927
  @if (headerSortPriority !== undefined && headerSortPriority > 1) {
2881
- <span
2882
- class="axp-widget-column-header__sort-priority text-xs opacity-70"
2883
- >{{ headerSortPriority }}</span
2884
- >
2928
+ <span class="axp-widget-column-header__sort-priority text-xs opacity-70">{{ headerSortPriority }}</span>
2885
2929
  }
2886
- <i
2887
- class="fa-solid fa-arrow-up-long text-neutral-400"
2888
- [class.text-primary]="headerSortDirection === 'asc'"
2889
- ></i>
2890
- <i
2891
- class="fa-solid fa-arrow-down-long text-neutral-400"
2892
- [class.text-primary]="headerSortDirection === 'desc'"
2893
- ></i>
2930
+ <i class="fa-solid fa-arrow-up-long text-neutral-400" [class.text-primary]="headerSortDirection === 'asc'"></i>
2931
+ <i class="fa-solid fa-arrow-down-long text-neutral-400" [class.text-primary]="headerSortDirection === 'desc'"></i>
2894
2932
  </span>
2895
2933
  }
2896
2934
  </div>
2897
2935
  </ng-template>
2898
2936
  <ng-template #cell let-row>
2899
2937
  @if (expandHandler) {
2900
- <div
2901
- class="ax-data-table-nested-indent w-full"
2902
- [attr.data-level]="row.data?.__meta__?.level || 0"
2903
- >
2938
+ <div class="ax-data-table-nested-indent w-full" [attr.data-level]="row.data?.__meta__?.level || 0">
2904
2939
  @if (hasExpandableRow(row)) {
2905
- <div
2906
- (click)="handleExpandRow(row, $event)"
2907
- class="ax-expand-handler"
2908
- id="ax-expand-handler-container"
2909
- >
2940
+ <div (click)="handleExpandRow(row, $event)" class="ax-expand-handler" id="ax-expand-handler-container">
2910
2941
  @if (loadingRow() === row) {
2911
- <i
2912
- class="fas fa-spinner-third animate-twSpin animate-infinite"
2913
- ></i>
2942
+ <i class="fas fa-spinner-third animate-twSpin animate-infinite"></i>
2914
2943
  } @else {
2915
2944
  @if (row.data?.__meta__?.expanded) {
2916
- <i
2917
- [class]="
2918
- customCollapseIcon ||
2919
- 'far fa-minus-square text-md opacity-75'
2920
- "
2921
- ></i>
2945
+ <i [class]="customCollapseIcon || 'far fa-minus-square text-md opacity-75'"></i>
2922
2946
  } @else {
2923
- <i
2924
- [class]="
2925
- customExpandIcon || 'far fa-plus-square text-md opacity-75'
2926
- "
2927
- ></i>
2947
+ <i [class]="customExpandIcon || 'far fa-plus-square text-md opacity-75'"></i>
2928
2948
  }
2929
2949
  }
2930
2950
  </div>
2931
2951
  }
2932
2952
  @if (component && row?.data) {
2933
2953
  <div class="ax-data-table-cell-text min-w-0 flex-1">
2934
- <ng-container
2935
- *ngComponentOutlet="
2936
- component;
2937
- injector: getRowInjector(row.data);
2938
- inputs: getInputs(row.data)
2939
- "
2940
- ></ng-container>
2954
+ <ng-container *ngComponentOutlet="component; injector: getRowInjector(row.data); inputs: getInputs(row.data)"></ng-container>
2941
2955
  </div>
2942
2956
  }
2943
2957
  </div>
2944
2958
  } @else {
2945
- <div
2946
- class="w-full min-w-0 max-w-full"
2947
- [class.flex]="getCellUseFlexLayout()"
2948
- [class.items-center]="getCellUseFlexLayout()"
2949
- [style.justify-content]="getCellJustifyContent()"
2950
- >
2959
+ <div class="w-full min-w-0 max-w-full" [class.flex]="getCellUseFlexLayout()" [class.items-center]="getCellUseFlexLayout()" [style.justify-content]="getCellJustifyContent()">
2951
2960
  @if (component && row?.data) {
2952
- <ng-container
2953
- *ngComponentOutlet="
2954
- component;
2955
- injector: getRowInjector(row.data);
2956
- inputs: getInputs(row.data)
2957
- "
2958
- ></ng-container>
2961
+ <ng-container *ngComponentOutlet="component; injector: getRowInjector(row.data); inputs: getInputs(row.data)"></ng-container>
2959
2962
  }
2960
2963
  </div>
2961
2964
  }
@@ -6097,5 +6100,5 @@ const AXP_CALLBACK_VALIDATION_PROPERTY = {
6097
6100
  * Generated bundle index. Do not edit.
6098
6101
  */
6099
6102
 
6100
- export { AXPBaseWidgetComponent, AXPBlockBaseLayoutWidgetComponent, AXPBoxModelLayoutWidgetComponent, AXPColumnTruncatedTextComponent, AXPColumnWidgetComponent, AXPDataListWidgetComponent, AXPFlexBaseLayoutWidgetComponent, AXPFlexItemBaseLayoutWidgetComponent, AXPGridBaseLayoutWidgetComponent, AXPGridItemBaseLayoutWidgetComponent, AXPInlineBaseLayoutWidgetComponent, AXPLayoutBaseWidgetComponent, AXPPropertyEditorHelper, AXPTableBaseLayoutWidgetComponent, AXPTableItemBaseLayoutWidgetComponent, AXPTableItemOpsBaseLayoutWidgetComponent, AXPValueWidgetComponent, AXPWidgetColumnCellComponent, AXPWidgetColumnRendererComponent, AXPWidgetContainerComponent, AXPWidgetCoreElement, AXPWidgetCoreModule, AXPWidgetCoreService, AXPWidgetRegistryService, AXPWidgetRendererDirective, AXPWidgetSerializationHelper, 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_BOX_MODEL_PROPERTY_GROUP, AXP_CALLBACK_VALIDATION_PROPERTY, AXP_COLOR_PROPERTY, AXP_CONTENT_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DATA_PROPERTY_GROUP, AXP_DATA_SOURCE_OPTIONS_PROPERTY, AXP_DATE_DEPTH_PROPERTY, AXP_DATE_FORMAT_PROPERTY, AXP_DATE_RANGE_LIMIT_PROPERTY, AXP_DEFAULT_ROW_COUNT_PROPERTY, AXP_DESCRIPTION_PROPERTY, AXP_DIRECTION_PROPERTY, AXP_DISABLED_PROPERTY, AXP_DOWNLOADABLE_PROPERTY, AXP_EMPTY_SPACING_BOX, AXP_EQUAL_VALIDATION_PROPERTY, AXP_FALSY_TEXT_PROPERTY, AXP_FIT_LINE_COUNT_PROPERTY, AXP_FONT_SIZE_PROPERTY, AXP_GREATER_THAN_VALIDATION_PROPERTY, 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_PROFILE, AXP_LAYOUT_ROWS_PROPERTY, AXP_LAYOUT_SHOW_HEADER_PROPERTY, AXP_LAYOUT_SPACING_PROPERTY, AXP_LAYOUT_TABLE_PROPERTY_GROUP, AXP_LESS_THAN_VALIDATION_PROPERTY, AXP_LOCAL_DATA_SOURCES_OPTION, AXP_LOCAL_DATA_SOURCE_PREFIX, AXP_LOCAL_DATA_SOURCE_STORE, 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_PREFETCH_PROPERTY, AXP_QUERY_OPTIONS_PROPERTY, AXP_READONLY_PROPERTY, AXP_REGULAR_EXPRESSION_VALIDATION_PROPERTY, AXP_REQUIRED_VALIDATION_PROPERTY, AXP_SHOW_PASSWORD_PROPERTY, AXP_SPIN_BUTTON_PROPERTY, AXP_STYLE_COLOR_PROPERTY, AXP_STYLE_LOOK_PROPERTY, AXP_STYLING_PROPERTY_GROUP, AXP_TABLE_COLUMNS_PROPERTY, AXP_TABLE_COLUMN_ALIGNMENT_PROPERTIES, AXP_TABLE_COLUMN_CELL_ALIGN_PROPERTY, AXP_TABLE_COLUMN_HEADER_ALIGN_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_DEFINITION_PROVIDER, AXP_WIDGET_PROPERTY_GROUP, LOCAL_DATA_SOURCE_SHEET_BUFFER_ROWS, LOCAL_DATA_SOURCE_SHEET_MIN_ROWS, WIDGET_CASCADE_TRACE_NS, booleanDefaultProperty, buildLocalDataSourceListRows, buildQuerySelectorNode, buildQueryTabsNode, buildWidgetRegistryMapFromProviders, coerceGridProfile, coerceSpacingProfile, createDefaultLocalDataSourceColumns, createQueryOptionsProperty, createReadonlyLocalDataSourceStore, createWritableLocalDataSourceStore, ensureLocalDataSourceRowValues, findNonEmptyBreakpoints, isFlatSpacingBox, isLocalDataSourceRef, isLocalDataSourceRowEmpty, largeTextDefaultProperty, layoutSizeFromDevice, mapAXPPropertyToWidgetProperty, numberDefaultProperty, numberMaxValueProperty, numberMinValueProperty, padLocalDataSourceSheetRows, parseLocalDataSourceId, plainTextDefaultProperty, readLocalDataSourcesFromNode, resolveWidgetExposeHydrateWrites, resolveWidgetModeComponent, richTextDefaultProperty, selectEditorDefaultValueProperty, selectionListEditorDefaultValueProperty, spacingBoxOrEmpty, toLocalDataSourceRef, toLocalDataSourceSheet };
6103
+ export { AXPBaseWidgetComponent, AXPBlockBaseLayoutWidgetComponent, AXPBoxModelLayoutWidgetComponent, AXPColumnTruncatedTextComponent, AXPColumnWidgetComponent, AXPDataListWidgetComponent, AXPFlexBaseLayoutWidgetComponent, AXPFlexItemBaseLayoutWidgetComponent, AXPGridBaseLayoutWidgetComponent, AXPGridItemBaseLayoutWidgetComponent, AXPInlineBaseLayoutWidgetComponent, AXPLayoutBaseWidgetComponent, AXPPropertyEditorHelper, AXPTableBaseLayoutWidgetComponent, AXPTableItemBaseLayoutWidgetComponent, AXPTableItemOpsBaseLayoutWidgetComponent, AXPValueWidgetComponent, AXPWidgetColumnCellComponent, AXPWidgetColumnRendererComponent, AXPWidgetContainerComponent, AXPWidgetCoreElement, AXPWidgetCoreModule, AXPWidgetCoreService, AXPWidgetRegistryService, AXPWidgetRendererDirective, AXPWidgetSerializationHelper, 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_BOX_MODEL_PROPERTY_GROUP, AXP_CALLBACK_VALIDATION_PROPERTY, AXP_COLOR_PROPERTY, AXP_CONTENT_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DATA_PROPERTY_GROUP, AXP_DATA_SOURCE_OPTIONS_PROPERTY, AXP_DATE_DEPTH_PROPERTY, AXP_DATE_FORMAT_PROPERTY, AXP_DATE_RANGE_LIMIT_PROPERTY, AXP_DEFAULT_ROW_COUNT_PROPERTY, AXP_DESCRIPTION_PROPERTY, AXP_DIRECTION_PROPERTY, AXP_DISABLED_PROPERTY, AXP_DOWNLOADABLE_PROPERTY, AXP_EMPTY_SPACING_BOX, AXP_EQUAL_VALIDATION_PROPERTY, AXP_FALSY_TEXT_PROPERTY, AXP_FIT_LINE_COUNT_PROPERTY, AXP_FONT_SIZE_PROPERTY, AXP_GREATER_THAN_VALIDATION_PROPERTY, 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_PROFILE, AXP_LAYOUT_ROWS_PROPERTY, AXP_LAYOUT_SHOW_HEADER_PROPERTY, AXP_LAYOUT_SPACING_PROPERTY, AXP_LAYOUT_TABLE_PROPERTY_GROUP, AXP_LESS_THAN_VALIDATION_PROPERTY, AXP_LOCAL_DATA_SOURCES_OPTION, AXP_LOCAL_DATA_SOURCE_PREFIX, AXP_LOCAL_DATA_SOURCE_STORE, 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_PREFETCH_PROPERTY, AXP_QUERY_OPTIONS_PROPERTY, AXP_READONLY_PROPERTY, AXP_REGULAR_EXPRESSION_VALIDATION_PROPERTY, AXP_REQUIRED_VALIDATION_PROPERTY, AXP_SHOW_PASSWORD_PROPERTY, AXP_SPIN_BUTTON_PROPERTY, AXP_STYLE_COLOR_PROPERTY, AXP_STYLE_LOOK_PROPERTY, AXP_STYLING_PROPERTY_GROUP, AXP_TABLE_COLUMNS_PROPERTY, AXP_TABLE_COLUMN_ALIGNMENT_PROPERTIES, AXP_TABLE_COLUMN_CELL_ALIGN_PROPERTY, AXP_TABLE_COLUMN_HEADER_ALIGN_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_DEFINITION_PROVIDER, AXP_WIDGET_PROPERTY_GROUP, LOCAL_DATA_SOURCE_SHEET_BUFFER_ROWS, LOCAL_DATA_SOURCE_SHEET_MIN_ROWS, WIDGET_CASCADE_TRACE_NS, assumedValidationDisabled, booleanDefaultProperty, buildLocalDataSourceListRows, buildQuerySelectorNode, buildQueryTabsNode, buildWidgetRegistryMapFromProviders, coerceGridProfile, coerceSpacingProfile, collectAuthoredValidationRules, createDefaultLocalDataSourceColumns, createQueryOptionsProperty, createReadonlyLocalDataSourceStore, createWritableLocalDataSourceStore, ensureLocalDataSourceRowValues, findNonEmptyBreakpoints, isFlatSpacingBox, isLocalDataSourceRef, isLocalDataSourceRowEmpty, isRequiredRuleActive, largeTextDefaultProperty, layoutSizeFromDevice, mapAXPPropertyToWidgetProperty, numberDefaultProperty, numberMaxValueProperty, numberMinValueProperty, padLocalDataSourceSheetRows, parseLocalDataSourceId, plainTextDefaultProperty, readLocalDataSourcesFromNode, resolveValidationContextPath, resolveValidationDisabledFlags, resolveWidgetExposeHydrateWrites, resolveWidgetModeComponent, richTextDefaultProperty, selectEditorDefaultValueProperty, selectionListEditorDefaultValueProperty, spacingBoxOrEmpty, syncRequiredIndicator, toLocalDataSourceRef, toLocalDataSourceSheet, validationExpressionScope };
6101
6104
  //# sourceMappingURL=acorex-platform-framework-client-layout-widget-core.mjs.map