@acorex-platform/framework-client 1.0.1 → 1.0.2
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.
- package/fesm2022/acorex-platform-framework-client-auth.mjs +113 -45
- package/fesm2022/acorex-platform-framework-client-auth.mjs.map +1 -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
- 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
- package/fesm2022/acorex-platform-framework-client-common.mjs +445 -191
- package/fesm2022/acorex-platform-framework-client-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-core.mjs +7 -2
- package/fesm2022/acorex-platform-framework-client-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-components.mjs +399 -132
- package/fesm2022/acorex-platform-framework-client-layout-components.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-i9oZEXUR.mjs → acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-D2kZxLOh.mjs} +616 -196
- package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-D2kZxLOh.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-DyrvSBEY.mjs → acorex-platform-framework-client-layout-entity-attachments-page.component-BManmr01.mjs} +10 -5
- package/fesm2022/acorex-platform-framework-client-layout-entity-attachments-page.component-BManmr01.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-B8s_JEV8.mjs → acorex-platform-framework-client-layout-entity-bulk-entity.command-B8XsnrnO.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-B8s_JEV8.mjs.map → acorex-platform-framework-client-layout-entity-bulk-entity.command-B8XsnrnO.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-C0LgUzzv.mjs → acorex-platform-framework-client-layout-entity-file-list-popup.component-DGZVS11E.mjs} +28 -12
- package/fesm2022/acorex-platform-framework-client-layout-entity-file-list-popup.component-DGZVS11E.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-fATD9Uax.mjs → acorex-platform-framework-client-layout-entity-gallery-page.component-Be348QCj.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-fATD9Uax.mjs.map → acorex-platform-framework-client-layout-entity-gallery-page.component-Be348QCj.mjs.map} +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-entity.mjs +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-views.mjs +71 -10
- package/fesm2022/acorex-platform-framework-client-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs +147 -171
- package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-Drmmu4HQ.mjs → acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-M8SZFPQx.mjs} +342 -60
- package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-M8SZFPQx.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-BiuahYd8.mjs → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-DsLgZbZA.mjs} +3 -3
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-BiuahYd8.mjs.map → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-DsLgZbZA.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-CU_5b_te.mjs → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-Vpz3itLZ.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-CU_5b_te.mjs.map → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-Vpz3itLZ.mjs.map} +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs +1 -1
- package/fesm2022/acorex-platform-framework-client-realtime.mjs +49 -7
- package/fesm2022/acorex-platform-framework-client-realtime.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-themes-default.mjs +40 -20
- package/fesm2022/acorex-platform-framework-client-themes-default.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-themes-shared.mjs +1 -1
- package/fesm2022/acorex-platform-framework-client-themes-shared.mjs.map +1 -1
- package/i18n/en-AU/general.json +16 -4
- package/i18n/en-AU/layout.json +2 -1
- package/i18n/en-US/general.json +16 -4
- package/i18n/en-US/layout.json +2 -1
- package/i18n/fa-IR/general.json +16 -4
- package/i18n/fa-IR/layout.json +2 -1
- package/layout/widget-core/README.md +1 -1
- package/layout/widgets/README.md +2 -2
- package/package.json +2 -2
- package/types/acorex-platform-framework-client-auth.d.ts +15 -1
- package/types/acorex-platform-framework-client-common.d.ts +73 -7
- package/types/acorex-platform-framework-client-layout-components.d.ts +38 -7
- package/types/acorex-platform-framework-client-layout-entity.d.ts +86 -34
- package/types/acorex-platform-framework-client-layout-views.d.ts +15 -0
- package/types/acorex-platform-framework-client-layout-widget-core.d.ts +38 -13
- package/types/acorex-platform-framework-client-layout-widgets.d.ts +25 -7
- package/types/acorex-platform-framework-client-realtime.d.ts +5 -0
- package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-i9oZEXUR.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-entity-attachments-page.component-DyrvSBEY.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-entity-file-list-popup.component-C0LgUzzv.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-Drmmu4HQ.mjs.map +0 -1
|
@@ -2,7 +2,7 @@ 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
3
|
import { AXPContextStore, AXPDeviceService, AXPExpressionEvaluatorService, 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
|
-
import { cloneDeep,
|
|
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';
|
|
7
7
|
import { ENTITY_GET_BY_ID_DEFAULT } from '@acorex-platform/framework-shared/runtime';
|
|
8
8
|
export { AXP_WIDGETS_ACTION_CATEGORY, AXP_WIDGETS_ACTION_SUB_CONTROLS, AXP_WIDGETS_ADVANCE_CATEGORY, AXP_WIDGETS_ADVANCE_SUB_DATA, AXP_WIDGETS_ADVANCE_SUB_INPUT, AXP_WIDGETS_ADVANCE_SUB_MEDIA, AXP_WIDGETS_ADVANCE_SUB_TOOLS, AXP_WIDGETS_AI_CATEGORY, AXP_WIDGETS_CATEGORIES, AXP_WIDGETS_EDITOR_CATEGORY, AXP_WIDGETS_EDITOR_SUB_CHOICE, AXP_WIDGETS_EDITOR_SUB_COMPOSITE, AXP_WIDGETS_EDITOR_SUB_CONFIG, AXP_WIDGETS_EDITOR_SUB_DATETIME, AXP_WIDGETS_EDITOR_SUB_NUMERIC, AXP_WIDGETS_EDITOR_SUB_RICH, AXP_WIDGETS_EDITOR_SUB_TEXT_INPUTS, AXP_WIDGETS_EDITOR_SUB_VISUAL, AXP_WIDGETS_LAYOUT_CATEGORY, AXP_WIDGETS_LAYOUT_SUB_GRID, AXP_WIDGETS_LAYOUT_SUB_LISTS, AXP_WIDGETS_LAYOUT_SUB_SHELL, AXP_WIDGETS_LAYOUT_SUB_SURFACES, AXP_WIDGETS_LAYOUT_SUB_TABS, AXP_WIDGETS_LAYOUT_SUB_UTILITY, normalizeWidgetCategories } from '@acorex-platform/framework-shared/runtime';
|
|
@@ -402,6 +402,83 @@ class AXPWidgetSerializationHelper {
|
|
|
402
402
|
}
|
|
403
403
|
//#endregion
|
|
404
404
|
|
|
405
|
+
//#endregion
|
|
406
|
+
//#region ----- Helpers -----
|
|
407
|
+
function isBlankExposeValue(value) {
|
|
408
|
+
if (value == null) {
|
|
409
|
+
return true;
|
|
410
|
+
}
|
|
411
|
+
if (typeof value === 'string') {
|
|
412
|
+
return value.trim() === '';
|
|
413
|
+
}
|
|
414
|
+
if (Array.isArray(value)) {
|
|
415
|
+
return value.length === 0;
|
|
416
|
+
}
|
|
417
|
+
return false;
|
|
418
|
+
}
|
|
419
|
+
function readExposeMapping(entry) {
|
|
420
|
+
if (typeof entry === 'string') {
|
|
421
|
+
const path = entry.trim();
|
|
422
|
+
if (!path) {
|
|
423
|
+
return null;
|
|
424
|
+
}
|
|
425
|
+
return { source: path, target: path };
|
|
426
|
+
}
|
|
427
|
+
const source = entry?.source?.trim() ?? '';
|
|
428
|
+
const target = entry?.target?.trim() ?? '';
|
|
429
|
+
if (!source || !target) {
|
|
430
|
+
return null;
|
|
431
|
+
}
|
|
432
|
+
return { source, target };
|
|
433
|
+
}
|
|
434
|
+
/** True when writing `target` would replace this widget's own value or its parent object. */
|
|
435
|
+
function exposeTargetTouchesWidget(target, widgetPath) {
|
|
436
|
+
if (!widgetPath) {
|
|
437
|
+
return false;
|
|
438
|
+
}
|
|
439
|
+
if (target === widgetPath) {
|
|
440
|
+
return true;
|
|
441
|
+
}
|
|
442
|
+
if (widgetPath.startsWith(`${target}.`) || widgetPath.startsWith(`${target}[`)) {
|
|
443
|
+
return true;
|
|
444
|
+
}
|
|
445
|
+
if (target.startsWith(`${widgetPath}.`) || target.startsWith(`${widgetPath}[`)) {
|
|
446
|
+
return true;
|
|
447
|
+
}
|
|
448
|
+
return false;
|
|
449
|
+
}
|
|
450
|
+
//#endregion
|
|
451
|
+
//#region ----- Resolve -----
|
|
452
|
+
/**
|
|
453
|
+
* Leaf writes for opening a form. Skips empty sources, the widget's own path,
|
|
454
|
+
* and targets that already hold a different value.
|
|
455
|
+
*/
|
|
456
|
+
function resolveWidgetExposeHydrateWrites(input) {
|
|
457
|
+
const items = input.items.filter((item) => item != null);
|
|
458
|
+
if (!items.length || !input.expose?.length) {
|
|
459
|
+
return [];
|
|
460
|
+
}
|
|
461
|
+
const writes = [];
|
|
462
|
+
for (const entry of input.expose) {
|
|
463
|
+
const mapping = readExposeMapping(entry);
|
|
464
|
+
if (!mapping || exposeTargetTouchesWidget(mapping.target, input.widgetPath)) {
|
|
465
|
+
continue;
|
|
466
|
+
}
|
|
467
|
+
const sources = items.map((item) => get(item, mapping.source));
|
|
468
|
+
if (sources.some((value) => isBlankExposeValue(value))) {
|
|
469
|
+
continue;
|
|
470
|
+
}
|
|
471
|
+
const nextValue = input.multiple ? sources : sources[0];
|
|
472
|
+
const current = input.readTarget(mapping.target);
|
|
473
|
+
if (isEqual(current, nextValue) || !isBlankExposeValue(current)) {
|
|
474
|
+
continue;
|
|
475
|
+
}
|
|
476
|
+
writes.push({ path: mapping.target, value: nextValue });
|
|
477
|
+
}
|
|
478
|
+
return writes;
|
|
479
|
+
}
|
|
480
|
+
//#endregion
|
|
481
|
+
|
|
405
482
|
class AXPWidgetCoreElement {
|
|
406
483
|
api() {
|
|
407
484
|
return {};
|
|
@@ -2038,6 +2115,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
2038
2115
|
type: Injectable
|
|
2039
2116
|
}] });
|
|
2040
2117
|
|
|
2118
|
+
const AXP_WIDGET_COLUMN_AUTO_FIT = new InjectionToken('AXP_WIDGET_COLUMN_AUTO_FIT');
|
|
2119
|
+
|
|
2041
2120
|
//#region ---- Imports ----
|
|
2042
2121
|
/**
|
|
2043
2122
|
* Injection token for widget definition providers.
|
|
@@ -2123,8 +2202,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
2123
2202
|
}]
|
|
2124
2203
|
}] });
|
|
2125
2204
|
|
|
2126
|
-
const AXP_WIDGET_COLUMN_AUTO_FIT = new InjectionToken('AXP_WIDGET_COLUMN_AUTO_FIT');
|
|
2127
|
-
|
|
2128
2205
|
class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
|
|
2129
2206
|
constructor() {
|
|
2130
2207
|
super(...arguments);
|
|
@@ -2200,6 +2277,9 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
|
|
|
2200
2277
|
this.loadingRow.set(row);
|
|
2201
2278
|
await this.grid.expandRow(row);
|
|
2202
2279
|
this.loadingRow.set(null);
|
|
2280
|
+
this.contentAutoFitSettled = false;
|
|
2281
|
+
this.contentAutoFitShouldSettle = false;
|
|
2282
|
+
this.scheduleContentAutoFit();
|
|
2203
2283
|
// if (row.data?.__meta__?.expanded === undefined) {
|
|
2204
2284
|
// this.width = `${parseInt(this.width as string) + 24}px`;
|
|
2205
2285
|
// }
|
|
@@ -2256,9 +2336,7 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
|
|
|
2256
2336
|
return this.normalizeColumnAlignment(align);
|
|
2257
2337
|
}
|
|
2258
2338
|
if (typeof align === 'object' && !Array.isArray(align)) {
|
|
2259
|
-
const raw = side === 'header'
|
|
2260
|
-
? align.header
|
|
2261
|
-
: align.cell;
|
|
2339
|
+
const raw = side === 'header' ? align.header : align.cell;
|
|
2262
2340
|
return this.normalizeColumnAlignment(raw);
|
|
2263
2341
|
}
|
|
2264
2342
|
return 'start';
|
|
@@ -2314,12 +2392,7 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
|
|
|
2314
2392
|
},
|
|
2315
2393
|
],
|
|
2316
2394
|
});
|
|
2317
|
-
this.width =
|
|
2318
|
-
this.mergedOptions().width === 'auto'
|
|
2319
|
-
? 'auto'
|
|
2320
|
-
: this.customWidth
|
|
2321
|
-
? this.customWidth
|
|
2322
|
-
: (this.mergedOptions().width ?? '200px');
|
|
2395
|
+
this.width = this.mergedOptions().width === 'auto' ? 'auto' : this.customWidth ? this.customWidth : (this.mergedOptions().width ?? '200px');
|
|
2323
2396
|
this.allowResizing = this.mergedOptions().allowResizing !== false;
|
|
2324
2397
|
this.allowSorting = this.sortEnabled;
|
|
2325
2398
|
this.syncAutoWidthIntent();
|
|
@@ -2383,9 +2456,7 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
|
|
|
2383
2456
|
return;
|
|
2384
2457
|
}
|
|
2385
2458
|
this.bandLocaleWatchStarted = true;
|
|
2386
|
-
this.translation.langChanges
|
|
2387
|
-
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
2388
|
-
.subscribe(() => {
|
|
2459
|
+
this.translation.langChanges$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
|
|
2389
2460
|
if (this.isBand && this.bandCaptionI18nKey) {
|
|
2390
2461
|
this.resolveBandCaption();
|
|
2391
2462
|
}
|
|
@@ -2396,8 +2467,7 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
|
|
|
2396
2467
|
return;
|
|
2397
2468
|
}
|
|
2398
2469
|
this.caption = text;
|
|
2399
|
-
const topLevel = this.grid
|
|
2400
|
-
.topLevelColumnsList;
|
|
2470
|
+
const topLevel = this.grid.topLevelColumnsList;
|
|
2401
2471
|
if (topLevel) {
|
|
2402
2472
|
topLevel.set([...topLevel()]);
|
|
2403
2473
|
}
|
|
@@ -2429,9 +2499,7 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
|
|
|
2429
2499
|
// Use a hash of key properties instead of full JSON.stringify
|
|
2430
2500
|
// This is much faster for large objects
|
|
2431
2501
|
const keyProps = ['id', 'code', 'name', 'title'];
|
|
2432
|
-
const keyValues = keyProps
|
|
2433
|
-
.map((prop) => data?.[prop])
|
|
2434
|
-
.filter((v) => v != null);
|
|
2502
|
+
const keyValues = keyProps.map((prop) => data?.[prop]).filter((v) => v != null);
|
|
2435
2503
|
if (keyValues.length > 0) {
|
|
2436
2504
|
return `row-${keyValues.join('-')}`;
|
|
2437
2505
|
}
|
|
@@ -2482,7 +2550,8 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
|
|
|
2482
2550
|
if (!isPlatformBrowser(this.platformId) || !this.autoWidthColumn || this.contentAutoFitSettled) {
|
|
2483
2551
|
return;
|
|
2484
2552
|
}
|
|
2485
|
-
|
|
2553
|
+
const allowSettle = this.expandHandler !== true;
|
|
2554
|
+
this.contentAutoFitShouldSettle = this.contentAutoFitShouldSettle || (request?.settle === true && allowSettle);
|
|
2486
2555
|
if (this.contentAutoFitTimer != null) {
|
|
2487
2556
|
clearTimeout(this.contentAutoFitTimer);
|
|
2488
2557
|
}
|
|
@@ -2654,23 +2723,13 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
|
|
|
2654
2723
|
[class.flex]="!sortEnabled"
|
|
2655
2724
|
[class.items-center]="!sortEnabled"
|
|
2656
2725
|
[class.axp-widget-column-header--sortable]="sortEnabled"
|
|
2657
|
-
[class.axp-widget-column-header--sort-at-start]="
|
|
2658
|
-
|
|
2659
|
-
"
|
|
2660
|
-
[class.axp-widget-column-header--sort-active]="
|
|
2661
|
-
headerSortDirection === 'asc' || headerSortDirection === 'desc'
|
|
2662
|
-
"
|
|
2726
|
+
[class.axp-widget-column-header--sort-at-start]="sortEnabled && getHeaderTextAlign() === 'end'"
|
|
2727
|
+
[class.axp-widget-column-header--sort-active]="headerSortDirection === 'asc' || headerSortDirection === 'desc'"
|
|
2663
2728
|
[class.gap-1]="!sortEnabled"
|
|
2664
|
-
[style.justify-content]="
|
|
2665
|
-
sortEnabled ? 'flex-start' : getHeaderJustifyContent()
|
|
2666
|
-
"
|
|
2729
|
+
[style.justify-content]="sortEnabled ? 'flex-start' : getHeaderJustifyContent()"
|
|
2667
2730
|
(click)="onHeaderClick($event)"
|
|
2668
2731
|
>
|
|
2669
|
-
<span
|
|
2670
|
-
class="axp-widget-column-header__caption truncate"
|
|
2671
|
-
[class.axp-widget-column-header__caption--with-sort]="sortEnabled"
|
|
2672
|
-
[style.text-align]="sortEnabled ? getHeaderTextAlign() : null"
|
|
2673
|
-
>
|
|
2732
|
+
<span class="axp-widget-column-header__caption truncate" [class.axp-widget-column-header__caption--with-sort]="sortEnabled" [style.text-align]="sortEnabled ? getHeaderTextAlign() : null">
|
|
2674
2733
|
@if (isBand) {
|
|
2675
2734
|
{{ caption }}
|
|
2676
2735
|
} @else {
|
|
@@ -2680,84 +2739,40 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
|
|
|
2680
2739
|
@if (sortEnabled) {
|
|
2681
2740
|
<span class="axp-widget-column-header__sort">
|
|
2682
2741
|
@if (headerSortPriority !== undefined && headerSortPriority > 1) {
|
|
2683
|
-
<span
|
|
2684
|
-
class="axp-widget-column-header__sort-priority text-xs opacity-70"
|
|
2685
|
-
>{{ headerSortPriority }}</span
|
|
2686
|
-
>
|
|
2742
|
+
<span class="axp-widget-column-header__sort-priority text-xs opacity-70">{{ headerSortPriority }}</span>
|
|
2687
2743
|
}
|
|
2688
|
-
<i
|
|
2689
|
-
|
|
2690
|
-
[class.text-primary]="headerSortDirection === 'asc'"
|
|
2691
|
-
></i>
|
|
2692
|
-
<i
|
|
2693
|
-
class="fa-solid fa-arrow-down-long text-neutral-400"
|
|
2694
|
-
[class.text-primary]="headerSortDirection === 'desc'"
|
|
2695
|
-
></i>
|
|
2744
|
+
<i class="fa-solid fa-arrow-up-long text-neutral-400" [class.text-primary]="headerSortDirection === 'asc'"></i>
|
|
2745
|
+
<i class="fa-solid fa-arrow-down-long text-neutral-400" [class.text-primary]="headerSortDirection === 'desc'"></i>
|
|
2696
2746
|
</span>
|
|
2697
2747
|
}
|
|
2698
2748
|
</div>
|
|
2699
2749
|
</ng-template>
|
|
2700
2750
|
<ng-template #cell let-row>
|
|
2701
2751
|
@if (expandHandler) {
|
|
2702
|
-
<div
|
|
2703
|
-
class="ax-data-table-nested-indent w-full"
|
|
2704
|
-
[attr.data-level]="row.data?.__meta__?.level || 0"
|
|
2705
|
-
>
|
|
2752
|
+
<div class="ax-data-table-nested-indent w-full" [attr.data-level]="row.data?.__meta__?.level || 0">
|
|
2706
2753
|
@if (hasExpandableRow(row)) {
|
|
2707
|
-
<div
|
|
2708
|
-
(click)="handleExpandRow(row, $event)"
|
|
2709
|
-
class="ax-expand-handler"
|
|
2710
|
-
id="ax-expand-handler-container"
|
|
2711
|
-
>
|
|
2754
|
+
<div (click)="handleExpandRow(row, $event)" class="ax-expand-handler" id="ax-expand-handler-container">
|
|
2712
2755
|
@if (loadingRow() === row) {
|
|
2713
|
-
<i
|
|
2714
|
-
class="fas fa-spinner-third animate-twSpin animate-infinite"
|
|
2715
|
-
></i>
|
|
2756
|
+
<i class="fas fa-spinner-third animate-twSpin animate-infinite"></i>
|
|
2716
2757
|
} @else {
|
|
2717
2758
|
@if (row.data?.__meta__?.expanded) {
|
|
2718
|
-
<i
|
|
2719
|
-
[class]="
|
|
2720
|
-
customCollapseIcon ||
|
|
2721
|
-
'far fa-minus-square text-md opacity-75'
|
|
2722
|
-
"
|
|
2723
|
-
></i>
|
|
2759
|
+
<i [class]="customCollapseIcon || 'far fa-minus-square text-md opacity-75'"></i>
|
|
2724
2760
|
} @else {
|
|
2725
|
-
<i
|
|
2726
|
-
[class]="
|
|
2727
|
-
customExpandIcon || 'far fa-plus-square text-md opacity-75'
|
|
2728
|
-
"
|
|
2729
|
-
></i>
|
|
2761
|
+
<i [class]="customExpandIcon || 'far fa-plus-square text-md opacity-75'"></i>
|
|
2730
2762
|
}
|
|
2731
2763
|
}
|
|
2732
2764
|
</div>
|
|
2733
2765
|
}
|
|
2734
2766
|
@if (component && row?.data) {
|
|
2735
2767
|
<div class="ax-data-table-cell-text min-w-0 flex-1">
|
|
2736
|
-
<ng-container
|
|
2737
|
-
*ngComponentOutlet="
|
|
2738
|
-
component;
|
|
2739
|
-
injector: getRowInjector(row.data);
|
|
2740
|
-
inputs: getInputs(row.data)
|
|
2741
|
-
"
|
|
2742
|
-
></ng-container>
|
|
2768
|
+
<ng-container *ngComponentOutlet="component; injector: getRowInjector(row.data); inputs: getInputs(row.data)"></ng-container>
|
|
2743
2769
|
</div>
|
|
2744
2770
|
}
|
|
2745
2771
|
</div>
|
|
2746
2772
|
} @else {
|
|
2747
|
-
<div
|
|
2748
|
-
class="w-full min-w-0 max-w-full"
|
|
2749
|
-
[class.flex]="getCellUseFlexLayout()"
|
|
2750
|
-
[class.items-center]="getCellUseFlexLayout()"
|
|
2751
|
-
[style.justify-content]="getCellJustifyContent()"
|
|
2752
|
-
>
|
|
2773
|
+
<div class="w-full min-w-0 max-w-full" [class.flex]="getCellUseFlexLayout()" [class.items-center]="getCellUseFlexLayout()" [style.justify-content]="getCellJustifyContent()">
|
|
2753
2774
|
@if (component && row?.data) {
|
|
2754
|
-
<ng-container
|
|
2755
|
-
*ngComponentOutlet="
|
|
2756
|
-
component;
|
|
2757
|
-
injector: getRowInjector(row.data);
|
|
2758
|
-
inputs: getInputs(row.data)
|
|
2759
|
-
"
|
|
2760
|
-
></ng-container>
|
|
2775
|
+
<ng-container *ngComponentOutlet="component; injector: getRowInjector(row.data); inputs: getInputs(row.data)"></ng-container>
|
|
2761
2776
|
}
|
|
2762
2777
|
</div>
|
|
2763
2778
|
}
|
|
@@ -2775,23 +2790,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
2775
2790
|
[class.flex]="!sortEnabled"
|
|
2776
2791
|
[class.items-center]="!sortEnabled"
|
|
2777
2792
|
[class.axp-widget-column-header--sortable]="sortEnabled"
|
|
2778
|
-
[class.axp-widget-column-header--sort-at-start]="
|
|
2779
|
-
|
|
2780
|
-
"
|
|
2781
|
-
[class.axp-widget-column-header--sort-active]="
|
|
2782
|
-
headerSortDirection === 'asc' || headerSortDirection === 'desc'
|
|
2783
|
-
"
|
|
2793
|
+
[class.axp-widget-column-header--sort-at-start]="sortEnabled && getHeaderTextAlign() === 'end'"
|
|
2794
|
+
[class.axp-widget-column-header--sort-active]="headerSortDirection === 'asc' || headerSortDirection === 'desc'"
|
|
2784
2795
|
[class.gap-1]="!sortEnabled"
|
|
2785
|
-
[style.justify-content]="
|
|
2786
|
-
sortEnabled ? 'flex-start' : getHeaderJustifyContent()
|
|
2787
|
-
"
|
|
2796
|
+
[style.justify-content]="sortEnabled ? 'flex-start' : getHeaderJustifyContent()"
|
|
2788
2797
|
(click)="onHeaderClick($event)"
|
|
2789
2798
|
>
|
|
2790
|
-
<span
|
|
2791
|
-
class="axp-widget-column-header__caption truncate"
|
|
2792
|
-
[class.axp-widget-column-header__caption--with-sort]="sortEnabled"
|
|
2793
|
-
[style.text-align]="sortEnabled ? getHeaderTextAlign() : null"
|
|
2794
|
-
>
|
|
2799
|
+
<span class="axp-widget-column-header__caption truncate" [class.axp-widget-column-header__caption--with-sort]="sortEnabled" [style.text-align]="sortEnabled ? getHeaderTextAlign() : null">
|
|
2795
2800
|
@if (isBand) {
|
|
2796
2801
|
{{ caption }}
|
|
2797
2802
|
} @else {
|
|
@@ -2801,84 +2806,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
2801
2806
|
@if (sortEnabled) {
|
|
2802
2807
|
<span class="axp-widget-column-header__sort">
|
|
2803
2808
|
@if (headerSortPriority !== undefined && headerSortPriority > 1) {
|
|
2804
|
-
<span
|
|
2805
|
-
class="axp-widget-column-header__sort-priority text-xs opacity-70"
|
|
2806
|
-
>{{ headerSortPriority }}</span
|
|
2807
|
-
>
|
|
2809
|
+
<span class="axp-widget-column-header__sort-priority text-xs opacity-70">{{ headerSortPriority }}</span>
|
|
2808
2810
|
}
|
|
2809
|
-
<i
|
|
2810
|
-
|
|
2811
|
-
[class.text-primary]="headerSortDirection === 'asc'"
|
|
2812
|
-
></i>
|
|
2813
|
-
<i
|
|
2814
|
-
class="fa-solid fa-arrow-down-long text-neutral-400"
|
|
2815
|
-
[class.text-primary]="headerSortDirection === 'desc'"
|
|
2816
|
-
></i>
|
|
2811
|
+
<i class="fa-solid fa-arrow-up-long text-neutral-400" [class.text-primary]="headerSortDirection === 'asc'"></i>
|
|
2812
|
+
<i class="fa-solid fa-arrow-down-long text-neutral-400" [class.text-primary]="headerSortDirection === 'desc'"></i>
|
|
2817
2813
|
</span>
|
|
2818
2814
|
}
|
|
2819
2815
|
</div>
|
|
2820
2816
|
</ng-template>
|
|
2821
2817
|
<ng-template #cell let-row>
|
|
2822
2818
|
@if (expandHandler) {
|
|
2823
|
-
<div
|
|
2824
|
-
class="ax-data-table-nested-indent w-full"
|
|
2825
|
-
[attr.data-level]="row.data?.__meta__?.level || 0"
|
|
2826
|
-
>
|
|
2819
|
+
<div class="ax-data-table-nested-indent w-full" [attr.data-level]="row.data?.__meta__?.level || 0">
|
|
2827
2820
|
@if (hasExpandableRow(row)) {
|
|
2828
|
-
<div
|
|
2829
|
-
(click)="handleExpandRow(row, $event)"
|
|
2830
|
-
class="ax-expand-handler"
|
|
2831
|
-
id="ax-expand-handler-container"
|
|
2832
|
-
>
|
|
2821
|
+
<div (click)="handleExpandRow(row, $event)" class="ax-expand-handler" id="ax-expand-handler-container">
|
|
2833
2822
|
@if (loadingRow() === row) {
|
|
2834
|
-
<i
|
|
2835
|
-
class="fas fa-spinner-third animate-twSpin animate-infinite"
|
|
2836
|
-
></i>
|
|
2823
|
+
<i class="fas fa-spinner-third animate-twSpin animate-infinite"></i>
|
|
2837
2824
|
} @else {
|
|
2838
2825
|
@if (row.data?.__meta__?.expanded) {
|
|
2839
|
-
<i
|
|
2840
|
-
[class]="
|
|
2841
|
-
customCollapseIcon ||
|
|
2842
|
-
'far fa-minus-square text-md opacity-75'
|
|
2843
|
-
"
|
|
2844
|
-
></i>
|
|
2826
|
+
<i [class]="customCollapseIcon || 'far fa-minus-square text-md opacity-75'"></i>
|
|
2845
2827
|
} @else {
|
|
2846
|
-
<i
|
|
2847
|
-
[class]="
|
|
2848
|
-
customExpandIcon || 'far fa-plus-square text-md opacity-75'
|
|
2849
|
-
"
|
|
2850
|
-
></i>
|
|
2828
|
+
<i [class]="customExpandIcon || 'far fa-plus-square text-md opacity-75'"></i>
|
|
2851
2829
|
}
|
|
2852
2830
|
}
|
|
2853
2831
|
</div>
|
|
2854
2832
|
}
|
|
2855
2833
|
@if (component && row?.data) {
|
|
2856
2834
|
<div class="ax-data-table-cell-text min-w-0 flex-1">
|
|
2857
|
-
<ng-container
|
|
2858
|
-
*ngComponentOutlet="
|
|
2859
|
-
component;
|
|
2860
|
-
injector: getRowInjector(row.data);
|
|
2861
|
-
inputs: getInputs(row.data)
|
|
2862
|
-
"
|
|
2863
|
-
></ng-container>
|
|
2835
|
+
<ng-container *ngComponentOutlet="component; injector: getRowInjector(row.data); inputs: getInputs(row.data)"></ng-container>
|
|
2864
2836
|
</div>
|
|
2865
2837
|
}
|
|
2866
2838
|
</div>
|
|
2867
2839
|
} @else {
|
|
2868
|
-
<div
|
|
2869
|
-
class="w-full min-w-0 max-w-full"
|
|
2870
|
-
[class.flex]="getCellUseFlexLayout()"
|
|
2871
|
-
[class.items-center]="getCellUseFlexLayout()"
|
|
2872
|
-
[style.justify-content]="getCellJustifyContent()"
|
|
2873
|
-
>
|
|
2840
|
+
<div class="w-full min-w-0 max-w-full" [class.flex]="getCellUseFlexLayout()" [class.items-center]="getCellUseFlexLayout()" [style.justify-content]="getCellJustifyContent()">
|
|
2874
2841
|
@if (component && row?.data) {
|
|
2875
|
-
<ng-container
|
|
2876
|
-
*ngComponentOutlet="
|
|
2877
|
-
component;
|
|
2878
|
-
injector: getRowInjector(row.data);
|
|
2879
|
-
inputs: getInputs(row.data)
|
|
2880
|
-
"
|
|
2881
|
-
></ng-container>
|
|
2842
|
+
<ng-container *ngComponentOutlet="component; injector: getRowInjector(row.data); inputs: getInputs(row.data)"></ng-container>
|
|
2882
2843
|
}
|
|
2883
2844
|
</div>
|
|
2884
2845
|
}
|
|
@@ -3346,7 +3307,8 @@ class AXPWidgetRendererDirective {
|
|
|
3346
3307
|
this.onContextChanged = new Subject();
|
|
3347
3308
|
this.onLoadEvent = new Subject();
|
|
3348
3309
|
//#region ---- Performance Optimization Properties ----
|
|
3349
|
-
|
|
3310
|
+
/** Path → whether `onContextChanged` (triggers) should fire. Hydrate writes stay false. */
|
|
3311
|
+
this.contextUpdateQueue = new Map();
|
|
3350
3312
|
this.contextUpdateTimeout = null;
|
|
3351
3313
|
this.CONTEXT_UPDATE_DEBOUNCE_MS = 4; // ~250fps for large forms
|
|
3352
3314
|
// Removed visibility detection - not needed for current implementation
|
|
@@ -3358,7 +3320,8 @@ class AXPWidgetRendererDirective {
|
|
|
3358
3320
|
// Expression result tracking
|
|
3359
3321
|
this.lastExpressionResults = new Map();
|
|
3360
3322
|
// Buffer for context changes that happen before initial render completes
|
|
3361
|
-
|
|
3323
|
+
/** Path → whether buffered pre-render changes should fire triggers. `*` marks a full context init. */
|
|
3324
|
+
this.preRenderContextQueue = new Map();
|
|
3362
3325
|
/**
|
|
3363
3326
|
* Last context {@link AXPContextChangeEvent} handled by this renderer.
|
|
3364
3327
|
* Prevents re-queueing when the effect re-runs while `lastChange` in the store is unchanged
|
|
@@ -3373,11 +3336,11 @@ class AXPWidgetRendererDirective {
|
|
|
3373
3336
|
if (changed.state === 'initiated' && (!changed.path || changed.path === '')) {
|
|
3374
3337
|
// Mark that we need to re-evaluate all expressions when initial render completes
|
|
3375
3338
|
// This handles the case where context is set before/during widget initialization
|
|
3376
|
-
this.preRenderContextQueue
|
|
3339
|
+
this.rememberQueuedPath(this.preRenderContextQueue, '*', true);
|
|
3377
3340
|
// console.log(`📝 [${this.node().type}] Buffered initial context set`);
|
|
3378
3341
|
}
|
|
3379
3342
|
else if (changed.path) {
|
|
3380
|
-
this.preRenderContextQueue.
|
|
3343
|
+
this.rememberQueuedPath(this.preRenderContextQueue, changed.path, changed.origin !== 'hydrate');
|
|
3381
3344
|
// console.log(`📝 [${this.node().type}] Buffered pre-render context change: ${changed.path}`);
|
|
3382
3345
|
}
|
|
3383
3346
|
return;
|
|
@@ -3397,7 +3360,7 @@ class AXPWidgetRendererDirective {
|
|
|
3397
3360
|
else if (changed.path && this.isRelevantContextChange(changed.path)) {
|
|
3398
3361
|
const changedPath = changed.path;
|
|
3399
3362
|
if (this.markContextChangeHandled(changed)) {
|
|
3400
|
-
this.queueContextUpdate(changedPath);
|
|
3363
|
+
this.queueContextUpdate(changedPath, changed.origin !== 'hydrate');
|
|
3401
3364
|
}
|
|
3402
3365
|
}
|
|
3403
3366
|
await this.updateVisibility();
|
|
@@ -3455,10 +3418,13 @@ class AXPWidgetRendererDirective {
|
|
|
3455
3418
|
this.lastProcessedContextChangeRef = changed;
|
|
3456
3419
|
return true;
|
|
3457
3420
|
}
|
|
3458
|
-
|
|
3421
|
+
rememberQueuedPath(queue, path, notifyTriggers) {
|
|
3422
|
+
queue.set(path, (queue.get(path) ?? false) || notifyTriggers);
|
|
3423
|
+
}
|
|
3424
|
+
queueContextUpdate(path, notifyTriggers = true) {
|
|
3459
3425
|
if (path) {
|
|
3460
3426
|
// console.log(`🔄 [${this.node().type}] Queueing context update for path: ${path}`);
|
|
3461
|
-
this.contextUpdateQueue
|
|
3427
|
+
this.rememberQueuedPath(this.contextUpdateQueue, path, notifyTriggers);
|
|
3462
3428
|
// Clear existing timeout
|
|
3463
3429
|
if (this.contextUpdateTimeout) {
|
|
3464
3430
|
clearTimeout(this.contextUpdateTimeout);
|
|
@@ -3474,8 +3440,10 @@ class AXPWidgetRendererDirective {
|
|
|
3474
3440
|
if (this.contextUpdateQueue.size === 0)
|
|
3475
3441
|
return;
|
|
3476
3442
|
const startTime = performance.now();
|
|
3477
|
-
const
|
|
3443
|
+
const queued = Array.from(this.contextUpdateQueue.entries());
|
|
3478
3444
|
this.contextUpdateQueue.clear();
|
|
3445
|
+
const paths = queued.map(([path]) => path);
|
|
3446
|
+
const triggerPaths = queued.filter(([, notifyTriggers]) => notifyTriggers).map(([path]) => path);
|
|
3479
3447
|
// console.log(`📊 [${this.node().type}] Processing ${paths.length} paths:`, paths);
|
|
3480
3448
|
// Clear expression cache only if changed paths affect this widget's expressions
|
|
3481
3449
|
const shouldClearCache = paths.some((path) => this.isPathAffectingExpressions(path));
|
|
@@ -3499,8 +3467,7 @@ class AXPWidgetRendererDirective {
|
|
|
3499
3467
|
await this.updateVisibility();
|
|
3500
3468
|
}
|
|
3501
3469
|
const visibilityTime = performance.now() - visibilityStartTime;
|
|
3502
|
-
|
|
3503
|
-
paths.forEach((path) => {
|
|
3470
|
+
triggerPaths.forEach((path) => {
|
|
3504
3471
|
this.onContextChanged.next({ path });
|
|
3505
3472
|
});
|
|
3506
3473
|
const totalTime = performance.now() - startTime;
|
|
@@ -3980,7 +3947,9 @@ class AXPWidgetRendererDirective {
|
|
|
3980
3947
|
// console.log(
|
|
3981
3948
|
// `🚀 [${this.node().type}] Processing ${this.preRenderContextQueue.size} buffered pre-render changes`,
|
|
3982
3949
|
// );
|
|
3983
|
-
this.preRenderContextQueue.forEach((
|
|
3950
|
+
this.preRenderContextQueue.forEach((notifyTriggers, path) => {
|
|
3951
|
+
this.rememberQueuedPath(this.contextUpdateQueue, path, notifyTriggers);
|
|
3952
|
+
});
|
|
3984
3953
|
this.preRenderContextQueue.clear();
|
|
3985
3954
|
await this.processBatchedUpdates();
|
|
3986
3955
|
}
|
|
@@ -5112,6 +5081,13 @@ const AXP_ALLOW_SEARCH_PROPERTY = createBooleanProperty({
|
|
|
5112
5081
|
group: AXP_BEHAVIOR_PROPERTY_GROUP,
|
|
5113
5082
|
defaultValue: false,
|
|
5114
5083
|
});
|
|
5084
|
+
const AXP_PREFETCH_PROPERTY = createBooleanProperty({
|
|
5085
|
+
name: 'prefetch',
|
|
5086
|
+
title: 'Prefetch',
|
|
5087
|
+
path: 'options.prefetch',
|
|
5088
|
+
group: AXP_BEHAVIOR_PROPERTY_GROUP,
|
|
5089
|
+
defaultValue: false,
|
|
5090
|
+
});
|
|
5115
5091
|
const AXP_HAS_COPY_ICON_PROPERTY = createBooleanProperty({
|
|
5116
5092
|
name: 'hasCopyIcon',
|
|
5117
5093
|
title: 'Copy Icon',
|
|
@@ -6005,5 +5981,5 @@ const AXP_CALLBACK_VALIDATION_PROPERTY = {
|
|
|
6005
5981
|
* Generated bundle index. Do not edit.
|
|
6006
5982
|
*/
|
|
6007
5983
|
|
|
6008
|
-
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_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, resolveWidgetModeComponent, richTextDefaultProperty, selectEditorDefaultValueProperty, selectionListEditorDefaultValueProperty, spacingBoxOrEmpty, toLocalDataSourceRef, toLocalDataSourceSheet };
|
|
5984
|
+
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 };
|
|
6009
5985
|
//# sourceMappingURL=acorex-platform-framework-client-layout-widget-core.mjs.map
|