@acorex/platform 20.9.37 → 20.9.39
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-layout-entity-contracts.mjs +3 -2
- package/fesm2022/acorex-platform-layout-entity-contracts.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +215 -53
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widgets.mjs +75 -9
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default.mjs +1 -1
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/package.json +1 -1
- package/types/acorex-platform-layout-entity-contracts.d.ts +12 -3
- package/types/acorex-platform-layout-entity.d.ts +40 -4
- package/types/acorex-platform-layout-widgets.d.ts +13 -1
package/package.json
CHANGED
|
@@ -173,7 +173,11 @@ interface AXPEntityDisplayField {
|
|
|
173
173
|
options?: Record<string, any>;
|
|
174
174
|
};
|
|
175
175
|
options?: {
|
|
176
|
-
/**
|
|
176
|
+
/**
|
|
177
|
+
* When string, evaluate as an expression:
|
|
178
|
+
* - master list: list scope (`list.view()`, `list.views()`, `context.eval(...)`)
|
|
179
|
+
* - related list: parent detail context
|
|
180
|
+
*/
|
|
177
181
|
visible?: boolean | string;
|
|
178
182
|
/** Optional dataPath override for field binding. */
|
|
179
183
|
dataPath?: string;
|
|
@@ -286,6 +290,10 @@ interface AXPQueryView {
|
|
|
286
290
|
name: string;
|
|
287
291
|
fixed: boolean;
|
|
288
292
|
title: string;
|
|
293
|
+
/**
|
|
294
|
+
* Whitelist of entity column names for this view.
|
|
295
|
+
* Empty array = show all entity columns (still subject to each column's `options.visible`).
|
|
296
|
+
*/
|
|
289
297
|
columns: string[];
|
|
290
298
|
conditions: AXPQueryFilter[];
|
|
291
299
|
sorts: AXPQuerySort[];
|
|
@@ -974,10 +982,11 @@ declare function resolveLookupWidgetCreateOptions(options: {
|
|
|
974
982
|
allowCreate?: 'none' | 'full' | 'quick';
|
|
975
983
|
}): ResolvedLookupCreateOptions;
|
|
976
984
|
|
|
977
|
-
/** Prefix for related-entity sidebar list widget nodes (`page-list` layout). */
|
|
985
|
+
/** Prefix for related-entity sidebar list widget nodes and page ids (`page-list` layout). */
|
|
978
986
|
declare const PAGE_LIST_WIDGET_NAME_PREFIX = "page-list-";
|
|
979
987
|
/**
|
|
980
|
-
* Builds a unique
|
|
988
|
+
* Builds a unique id/name for a related-entity `page-list` sidebar page (widget node + details `page` query).
|
|
989
|
+
* Must not equal the host overview page id (`entity.name`) so self-referential related lists can navigate.
|
|
981
990
|
* Mirrors the `tab-list` pattern (`${entity}-tab-list`).
|
|
982
991
|
*/
|
|
983
992
|
declare function buildPageListWidgetName(relatedEntityKey: string): string;
|
|
@@ -908,9 +908,18 @@ declare class AXPEntityMasterListViewModel {
|
|
|
908
908
|
private allAvailableColumns;
|
|
909
909
|
visibleColumnCount: () => number;
|
|
910
910
|
columns: _angular_core.WritableSignal<AXPEntityListViewColumnViewModel[]>;
|
|
911
|
-
resetColumns(): void
|
|
911
|
+
resetColumns(): Promise<void>;
|
|
912
912
|
onColumnsChanged(columns: AXPEntityListViewColumnViewModel[]): Promise<void>;
|
|
913
|
-
|
|
913
|
+
/**
|
|
914
|
+
* Builds list columns for the active view:
|
|
915
|
+
* - `view.columns` is a whitelist (empty = all columns)
|
|
916
|
+
* - string `options.visible` is evaluated against the master-list scope
|
|
917
|
+
*/
|
|
918
|
+
applyViewColumns(): Promise<void>;
|
|
919
|
+
/**
|
|
920
|
+
* Resolves column `options.visible` (boolean or expression) to a boolean for the current list scope.
|
|
921
|
+
*/
|
|
922
|
+
private resolveColumnVisibleExpression;
|
|
914
923
|
onColumnsOrderChanged(event: any): void;
|
|
915
924
|
private mergeDisplayFieldWithColumn;
|
|
916
925
|
private buildVirtualDisplayProperty;
|
|
@@ -2777,6 +2786,12 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
2777
2786
|
protected selectedItems: _angular_core.WritableSignal<any[]>;
|
|
2778
2787
|
protected toolbarNode: _angular_core.WritableSignal<AXPWidgetNode | null>;
|
|
2779
2788
|
protected destroyed: Subject<void>;
|
|
2789
|
+
/** Invalidates in-flight filter/refresh work on remount, rapid page switches, or destroy. */
|
|
2790
|
+
private opGeneration;
|
|
2791
|
+
private isViewDestroyed;
|
|
2792
|
+
private initListTimeoutId;
|
|
2793
|
+
/** Unpatched data-list refresh (hits the grid). Prefer this over the scoped patch to avoid recursion. */
|
|
2794
|
+
private boundDataListRefresh;
|
|
2780
2795
|
protected entitySource: _angular_core.Signal<any>;
|
|
2781
2796
|
protected excludeColumns: _angular_core.Signal<string[]>;
|
|
2782
2797
|
protected includeColumns: _angular_core.Signal<string[]>;
|
|
@@ -2805,6 +2820,7 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
2805
2820
|
/**
|
|
2806
2821
|
* Route `filters` apply only when the active details `page` matches this list's entity
|
|
2807
2822
|
* (e.g. WorkOrder filters must not affect FailureRegister on the same asset layout).
|
|
2823
|
+
* page-list sidebar pages use `page-list-{module.entity}` as their page id.
|
|
2808
2824
|
*/
|
|
2809
2825
|
private shouldApplyRouteFilters;
|
|
2810
2826
|
/**
|
|
@@ -2812,17 +2828,33 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
2812
2828
|
*/
|
|
2813
2829
|
private mergeToolbarFilters;
|
|
2814
2830
|
private getMergedToolbarFilters;
|
|
2831
|
+
private beginOp;
|
|
2832
|
+
private isOpStale;
|
|
2833
|
+
private delay;
|
|
2815
2834
|
/**
|
|
2816
2835
|
* Applies merged route + parent-scope filters to the widget value and data source.
|
|
2817
2836
|
*/
|
|
2818
2837
|
private applyMergedRouteFiltersToList;
|
|
2819
|
-
/**
|
|
2838
|
+
/**
|
|
2839
|
+
* Syncs toolbar filters to context and AXDataSource (retries until data-list is mounted).
|
|
2840
|
+
* Stale generations (destroy / newer op) exit without touching the grid.
|
|
2841
|
+
*/
|
|
2820
2842
|
private reapplyScopedFiltersToDataSource;
|
|
2821
2843
|
/**
|
|
2822
2844
|
* Entity lists use `fetchDataMode: 'manual'`; after scoped filters reach the data source,
|
|
2823
|
-
* the grid must be refreshed once
|
|
2845
|
+
* the grid must be refreshed once. Retries until the data-table view child accepts refresh
|
|
2846
|
+
* so rapid relatedEntity page switches cannot leave the table on "no data loaded yet".
|
|
2824
2847
|
*/
|
|
2825
2848
|
private triggerInitialLoadIfNeeded;
|
|
2849
|
+
/**
|
|
2850
|
+
* Calls the unpatched data-list refresh until the grid is ready or the op is stale.
|
|
2851
|
+
*/
|
|
2852
|
+
private refreshWhenGridReady;
|
|
2853
|
+
/**
|
|
2854
|
+
* Prefer the bound original refresh (pre-patch). Falls back to an unpatched instance refresh.
|
|
2855
|
+
*/
|
|
2856
|
+
private resolveDataListRefresh;
|
|
2857
|
+
private refreshWhenGridReadyWith;
|
|
2826
2858
|
/**
|
|
2827
2859
|
* Re-evaluates related-entity list filters from the live dialog form context (e.g. after create saves the main row id).
|
|
2828
2860
|
*/
|
|
@@ -2845,6 +2877,10 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
2845
2877
|
* Refreshes the embedded data list (toolbar / workflow). In wizard mode, `refresh` is patched to re-apply scoped filters first.
|
|
2846
2878
|
*/
|
|
2847
2879
|
private refreshGridWithParentScopedFilters;
|
|
2880
|
+
/**
|
|
2881
|
+
* Re-applies parent-scoped filters then refreshes the grid, ignoring stale overlapping calls.
|
|
2882
|
+
*/
|
|
2883
|
+
private runScopedDataListRefresh;
|
|
2848
2884
|
protected queries: undefined;
|
|
2849
2885
|
/**
|
|
2850
2886
|
* Validates that all required dependencies are available
|
|
@@ -1718,9 +1718,17 @@ declare class AXPSelectBoxWidgetEditComponent extends AXPDataListWidgetComponent
|
|
|
1718
1718
|
/**
|
|
1719
1719
|
* Bind resolved row object(s) when available so ax-select-box can render textField labels.
|
|
1720
1720
|
* Falls back to primitive key(s) while selectedItems are still loading.
|
|
1721
|
+
* In filterMode, prefer stored `displayText` when byKey has not resolved a real label yet.
|
|
1721
1722
|
* Label translation is handled by ax-select-box (`getDisplayText(item) | translate`).
|
|
1722
1723
|
*/
|
|
1723
1724
|
protected selectBoxModel: _angular_core.Signal<any>;
|
|
1725
|
+
/** Reads `displayText` from filterMode payload `{ value, operation, displayText }`. */
|
|
1726
|
+
private getFilterDisplayText;
|
|
1727
|
+
/**
|
|
1728
|
+
* Ensures filterMode select shows a label: when selectedItems/byKey only have the raw key
|
|
1729
|
+
* (or are missing), synthesize/enrich the model with stored `displayText`.
|
|
1730
|
+
*/
|
|
1731
|
+
private withFilterDisplayText;
|
|
1724
1732
|
protected searchValue: _angular_core.WritableSignal<string | undefined>;
|
|
1725
1733
|
private lastDataSource;
|
|
1726
1734
|
private hasSeenDataSource;
|
|
@@ -2487,7 +2495,11 @@ declare class AXPDataListWidgetViewComponent extends AXPValueWidgetComponent<any
|
|
|
2487
2495
|
[name: string]: unknown;
|
|
2488
2496
|
})[];
|
|
2489
2497
|
api(): AXPWidgetCoreElementAPI;
|
|
2490
|
-
|
|
2498
|
+
/**
|
|
2499
|
+
* Returns true when the data-table view child accepted the refresh.
|
|
2500
|
+
* Callers must retry while this is false (grid may not be ready yet after remount).
|
|
2501
|
+
*/
|
|
2502
|
+
refresh(): boolean;
|
|
2491
2503
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPDataListWidgetViewComponent, never>;
|
|
2492
2504
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPDataListWidgetViewComponent, "axp-data-list-widget-view", never, {}, {}, never, never, true, never>;
|
|
2493
2505
|
}
|