@acorex-platform/framework-client 2.0.0-next.24 → 2.0.0-next.26
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-layout-entity-acorex-platform-framework-client-layout-entity-Ca3hnWpz.mjs → acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-BTLgOdQN.mjs} +243 -29
- package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-BTLgOdQN.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-D70kS0q4.mjs → acorex-platform-framework-client-layout-entity-attachments-page.component-DH2Wq7ux.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-D70kS0q4.mjs.map → acorex-platform-framework-client-layout-entity-attachments-page.component-DH2Wq7ux.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-2uNcMFTM.mjs → acorex-platform-framework-client-layout-entity-bulk-entity.command-DMgR7yq0.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-2uNcMFTM.mjs.map → acorex-platform-framework-client-layout-entity-bulk-entity.command-DMgR7yq0.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-Cj27Eok3.mjs → acorex-platform-framework-client-layout-entity-file-list-popup.component-DLt5p2Iy.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-Cj27Eok3.mjs.map → acorex-platform-framework-client-layout-entity-file-list-popup.component-DLt5p2Iy.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-CNyKkM7m.mjs → acorex-platform-framework-client-layout-entity-gallery-page.component-C_JIijQZ.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-CNyKkM7m.mjs.map → acorex-platform-framework-client-layout-entity-gallery-page.component-C_JIijQZ.mjs.map} +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-entity.mjs +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-CELbt6ig.mjs → acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-DRh91YCL.mjs} +26 -5
- package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-DRh91YCL.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-BSjcMKNA.mjs → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-Ddx_b04d.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-BSjcMKNA.mjs.map → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-Ddx_b04d.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-Co5_b33I.mjs → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DqIuIn76.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-Co5_b33I.mjs.map → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DqIuIn76.mjs.map} +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs +1 -1
- package/fesm2022/acorex-platform-framework-client-themes-default.mjs +168 -81
- package/fesm2022/acorex-platform-framework-client-themes-default.mjs.map +1 -1
- package/package.json +2 -2
- package/types/acorex-platform-framework-client-layout-entity.d.ts +57 -2
- package/types/acorex-platform-framework-client-layout-widgets.d.ts +2 -0
- package/types/acorex-platform-framework-client-themes-default.d.ts +4 -5
- package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-Ca3hnWpz.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-CELbt6ig.mjs.map +0 -1
|
@@ -6195,7 +6195,7 @@ class AXPFileUploaderWidgetService {
|
|
|
6195
6195
|
};
|
|
6196
6196
|
let title = '';
|
|
6197
6197
|
const result = await this.dialogOpener.openPopup({
|
|
6198
|
-
load: () => import('./acorex-platform-framework-client-layout-entity-file-list-popup.component-
|
|
6198
|
+
load: () => import('./acorex-platform-framework-client-layout-entity-file-list-popup.component-DLt5p2Iy.mjs').then((m) => m.AXPFileListPopupComponent),
|
|
6199
6199
|
data: {
|
|
6200
6200
|
entity: entity ?? null,
|
|
6201
6201
|
readonly: resolved.readonly,
|
|
@@ -9392,6 +9392,57 @@ function getDataSourcePageIndex(dataSource) {
|
|
|
9392
9392
|
const ds = dataSource;
|
|
9393
9393
|
return ds._page ?? 0;
|
|
9394
9394
|
}
|
|
9395
|
+
/**
|
|
9396
|
+
* Resolves when the next load cycle finishes.
|
|
9397
|
+
* A `loading=false` from an older cycle is ignored until this watch sees `loading=true`.
|
|
9398
|
+
* `stop` settles immediately (cache no-op, or a newer view switch owns the list).
|
|
9399
|
+
*/
|
|
9400
|
+
function watchNextDataSourceLoad(dataSource, isCurrent = () => true) {
|
|
9401
|
+
let settled = false;
|
|
9402
|
+
let sawLoadingStart = false;
|
|
9403
|
+
let loadingSub = { unsubscribe: () => undefined };
|
|
9404
|
+
let changedSub = { unsubscribe: () => undefined };
|
|
9405
|
+
let timeoutId;
|
|
9406
|
+
let resolveLoad = () => undefined;
|
|
9407
|
+
const stop = () => {
|
|
9408
|
+
if (settled) {
|
|
9409
|
+
return;
|
|
9410
|
+
}
|
|
9411
|
+
settled = true;
|
|
9412
|
+
if (timeoutId != null) {
|
|
9413
|
+
clearTimeout(timeoutId);
|
|
9414
|
+
}
|
|
9415
|
+
loadingSub.unsubscribe();
|
|
9416
|
+
changedSub.unsubscribe();
|
|
9417
|
+
resolveLoad();
|
|
9418
|
+
};
|
|
9419
|
+
const promise = new Promise((done) => {
|
|
9420
|
+
resolveLoad = done;
|
|
9421
|
+
});
|
|
9422
|
+
const finish = () => {
|
|
9423
|
+
queueMicrotask(stop);
|
|
9424
|
+
};
|
|
9425
|
+
changedSub = dataSource.onChanged.subscribe(() => {
|
|
9426
|
+
if (!isCurrent() || (sawLoadingStart && !dataSource.isLoading)) {
|
|
9427
|
+
finish();
|
|
9428
|
+
}
|
|
9429
|
+
});
|
|
9430
|
+
loadingSub = dataSource.onLoadingChanged.subscribe((isLoading) => {
|
|
9431
|
+
if (!isCurrent()) {
|
|
9432
|
+
finish();
|
|
9433
|
+
return;
|
|
9434
|
+
}
|
|
9435
|
+
if (isLoading) {
|
|
9436
|
+
sawLoadingStart = true;
|
|
9437
|
+
return;
|
|
9438
|
+
}
|
|
9439
|
+
if (sawLoadingStart) {
|
|
9440
|
+
finish();
|
|
9441
|
+
}
|
|
9442
|
+
});
|
|
9443
|
+
timeoutId = setTimeout(stop, 10_000);
|
|
9444
|
+
return { promise, stop };
|
|
9445
|
+
}
|
|
9395
9446
|
function normalizeListPaging(paging, defaultTake) {
|
|
9396
9447
|
const take = typeof paging?.take === 'number' && paging.take > 0 ? paging.take : defaultTake;
|
|
9397
9448
|
const skip = typeof paging?.skip === 'number' && paging.skip >= 0 ? paging.skip : 0;
|
|
@@ -10931,7 +10982,58 @@ class AXPEntityMasterListViewModel {
|
|
|
10931
10982
|
const resolvedCommand = await this.resolveCommandNameExpression(commandPart, data);
|
|
10932
10983
|
return `${resolvedCommand}${suffix}`;
|
|
10933
10984
|
}
|
|
10934
|
-
|
|
10985
|
+
/**
|
|
10986
|
+
* Marks every in-flight view switch as stale. Call only when the selected view name changes.
|
|
10987
|
+
* Does not clear rows or start a request; {@link setView} does that once this epoch is still current.
|
|
10988
|
+
*/
|
|
10989
|
+
beginViewSwitch() {
|
|
10990
|
+
this.viewSwitchEpochValue += 1;
|
|
10991
|
+
return this.viewSwitchEpochValue;
|
|
10992
|
+
}
|
|
10993
|
+
viewSwitchEpoch() {
|
|
10994
|
+
return this.viewSwitchEpochValue;
|
|
10995
|
+
}
|
|
10996
|
+
isViewSwitchCurrent(epoch) {
|
|
10997
|
+
return epoch === this.viewSwitchEpochValue;
|
|
10998
|
+
}
|
|
10999
|
+
/** Clears the switch skeleton only for the load that still belongs to `epoch`. */
|
|
11000
|
+
finishListTransition(epoch) {
|
|
11001
|
+
if (!this.isViewSwitchCurrent(epoch)) {
|
|
11002
|
+
return;
|
|
11003
|
+
}
|
|
11004
|
+
this.listTransitionLoading.set(false);
|
|
11005
|
+
}
|
|
11006
|
+
async setView(viewName = null, viewSwitchEpoch) {
|
|
11007
|
+
const run = this.setViewChain.then(() => this.applySetView(viewName, viewSwitchEpoch));
|
|
11008
|
+
this.setViewChain = run.then(() => undefined, () => undefined);
|
|
11009
|
+
await run;
|
|
11010
|
+
}
|
|
11011
|
+
isStaleViewSwitch(viewSwitchEpoch) {
|
|
11012
|
+
return viewSwitchEpoch != null && !this.isViewSwitchCurrent(viewSwitchEpoch);
|
|
11013
|
+
}
|
|
11014
|
+
/**
|
|
11015
|
+
* Drops an in-flight list result so it cannot paint on the new view.
|
|
11016
|
+
* Restores the current filter/sort because `AXDataSource.reset()` clears them.
|
|
11017
|
+
* The replacement request starts later, after columns and filters for this view are ready.
|
|
11018
|
+
*/
|
|
11019
|
+
discardInFlightListPresentation() {
|
|
11020
|
+
const currentQuery = this.dataSource.query;
|
|
11021
|
+
const filter = currentQuery.filter;
|
|
11022
|
+
const sort = currentQuery.sort ?? [];
|
|
11023
|
+
this.listResultDiscarded = true;
|
|
11024
|
+
this.listTransitionLoading.set(true);
|
|
11025
|
+
this.dataSource.reset();
|
|
11026
|
+
if (filter != null) {
|
|
11027
|
+
this.dataSource.filter(filter);
|
|
11028
|
+
}
|
|
11029
|
+
if (sort.length > 0) {
|
|
11030
|
+
this.dataSource.sort(...sort);
|
|
11031
|
+
}
|
|
11032
|
+
}
|
|
11033
|
+
async applySetView(viewName, viewSwitchEpoch) {
|
|
11034
|
+
if (this.isStaleViewSwitch(viewSwitchEpoch)) {
|
|
11035
|
+
return;
|
|
11036
|
+
}
|
|
10935
11037
|
const previousViewName = this.view().name;
|
|
10936
11038
|
traceEntityMasterList('viewmodel', 'setView start', () => ({
|
|
10937
11039
|
entity: getEntityInfo(this.entityDef).source,
|
|
@@ -10943,6 +11045,9 @@ class AXPEntityMasterListViewModel {
|
|
|
10943
11045
|
await this.loadUserStylingRules();
|
|
10944
11046
|
await this.loadCustomQueryViews();
|
|
10945
11047
|
await this.refreshVisibleViews();
|
|
11048
|
+
if (this.isStaleViewSwitch(viewSwitchEpoch)) {
|
|
11049
|
+
return;
|
|
11050
|
+
}
|
|
10946
11051
|
const availableViews = this.views();
|
|
10947
11052
|
if (!availableViews.length) {
|
|
10948
11053
|
return;
|
|
@@ -10955,6 +11060,9 @@ class AXPEntityMasterListViewModel {
|
|
|
10955
11060
|
const entitySetting = await this.settings.get(this.settingEntityKey);
|
|
10956
11061
|
resolvedViewName = readPersistedEntityListInstanceCurrentView(entitySetting, this.listInstanceId());
|
|
10957
11062
|
}
|
|
11063
|
+
if (this.isStaleViewSwitch(viewSwitchEpoch)) {
|
|
11064
|
+
return;
|
|
11065
|
+
}
|
|
10958
11066
|
const currentViewName = this.view().name;
|
|
10959
11067
|
const currentViewUnavailable = !availableViews.some((v) => v.name === currentViewName);
|
|
10960
11068
|
const targetView = availableViews.find((c) => c.name === resolvedViewName) ?? (currentViewUnavailable ? availableViews[0] : this.view());
|
|
@@ -10966,13 +11074,25 @@ class AXPEntityMasterListViewModel {
|
|
|
10966
11074
|
if (viewChanged) {
|
|
10967
11075
|
this.view.set(targetView);
|
|
10968
11076
|
this.resolvedListPaging.set(null);
|
|
11077
|
+
if (viewSwitchEpoch != null) {
|
|
11078
|
+
this.discardInFlightListPresentation();
|
|
11079
|
+
}
|
|
11080
|
+
}
|
|
11081
|
+
if (this.isStaleViewSwitch(viewSwitchEpoch)) {
|
|
11082
|
+
return;
|
|
10969
11083
|
}
|
|
10970
11084
|
if (shouldInitializeListState) {
|
|
10971
11085
|
this.applyViewSorts();
|
|
10972
11086
|
await this.applyViewColumns();
|
|
11087
|
+
if (this.isStaleViewSwitch(viewSwitchEpoch)) {
|
|
11088
|
+
return;
|
|
11089
|
+
}
|
|
10973
11090
|
this.applyCardFields();
|
|
10974
11091
|
this.applyViewFilters();
|
|
10975
11092
|
await this.applySettings();
|
|
11093
|
+
if (this.isStaleViewSwitch(viewSwitchEpoch)) {
|
|
11094
|
+
return;
|
|
11095
|
+
}
|
|
10976
11096
|
this.initialListSettingsApplied = true;
|
|
10977
11097
|
}
|
|
10978
11098
|
traceEntityMasterList('viewmodel', 'setView complete', () => ({
|
|
@@ -11012,6 +11132,14 @@ class AXPEntityMasterListViewModel {
|
|
|
11012
11132
|
this.destroyed = new Subject();
|
|
11013
11133
|
this.lastAppliedSortKey = null;
|
|
11014
11134
|
this.lastAppliedFilterKey = null;
|
|
11135
|
+
/** Latest view-tab switch. Older `setView` / refresh continuations must not load. */
|
|
11136
|
+
this.viewSwitchEpochValue = 0;
|
|
11137
|
+
/** `reset()` dropped the in-flight rows; the next criteria apply must refresh even if the keys match. */
|
|
11138
|
+
this.listResultDiscarded = false;
|
|
11139
|
+
this.setViewChain = Promise.resolve();
|
|
11140
|
+
/** True after a view switch discards rows, until that switch's own load finishes. */
|
|
11141
|
+
this.listTransitionLoading = signal(false, /* @ts-ignore */
|
|
11142
|
+
...(ngDevMode ? [{ debugName: "listTransitionLoading" }] : /* istanbul ignore next */ []));
|
|
11015
11143
|
this.hasQueryParamsFilters = false; // Flag to prevent overriding queryParams filters
|
|
11016
11144
|
this.routeQueryContextKey = null;
|
|
11017
11145
|
this.listInstanceId = signal(ENTITY_LIST_DEFAULT_INSTANCE_ID, /* @ts-ignore */
|
|
@@ -12148,26 +12276,41 @@ class AXPEntityMasterListViewModel {
|
|
|
12148
12276
|
this.hasQueryParamsFilters = false;
|
|
12149
12277
|
}
|
|
12150
12278
|
const previousViewName = this.view().name;
|
|
12151
|
-
|
|
12279
|
+
const requestedView = queryParamMap.get('view');
|
|
12280
|
+
const viewSwitchEpoch = requestedView != null && requestedView !== previousViewName ? this.beginViewSwitch() : undefined;
|
|
12281
|
+
await this.setView(requestedView, viewSwitchEpoch);
|
|
12282
|
+
if (viewSwitchEpoch != null && !this.isViewSwitchCurrent(viewSwitchEpoch)) {
|
|
12283
|
+
return { reloadList: false };
|
|
12284
|
+
}
|
|
12152
12285
|
if (instanceChanged) {
|
|
12153
12286
|
this.applyViewFilters();
|
|
12154
12287
|
this.applyViewSorts();
|
|
12155
12288
|
await this.loadPersistedInstanceFilters();
|
|
12289
|
+
if (viewSwitchEpoch != null && !this.isViewSwitchCurrent(viewSwitchEpoch)) {
|
|
12290
|
+
return { reloadList: false };
|
|
12291
|
+
}
|
|
12156
12292
|
this.listFilterSeedEpoch.update((epoch) => epoch + 1);
|
|
12157
12293
|
}
|
|
12158
12294
|
const filtersChanged = await this.syncFiltersFromRouteQueryParam(queryParamMap.get('filters'));
|
|
12159
12295
|
await this.refreshVisibleViews();
|
|
12296
|
+
if (viewSwitchEpoch != null && !this.isViewSwitchCurrent(viewSwitchEpoch)) {
|
|
12297
|
+
return { reloadList: false };
|
|
12298
|
+
}
|
|
12160
12299
|
const viewChanged = this.view().name !== previousViewName;
|
|
12161
12300
|
// Query-filter chips follow toolbar `initialFilters`, re-seeded only when this epoch changes.
|
|
12162
12301
|
if (viewChanged) {
|
|
12163
12302
|
this.listFilterSeedEpoch.update((epoch) => epoch + 1);
|
|
12164
12303
|
}
|
|
12165
|
-
if (filtersChanged || viewChanged || instanceChanged) {
|
|
12304
|
+
if (filtersChanged || viewChanged || instanceChanged || viewSwitchEpoch != null) {
|
|
12166
12305
|
this.lastAppliedFilterKey = null;
|
|
12167
12306
|
this.lastAppliedSortKey = null;
|
|
12168
12307
|
// Keys were cleared to force apply; pass reset so URL view/filter changes still reset paging
|
|
12169
12308
|
// (previously done by the caller via reloadListData(true)).
|
|
12170
|
-
await this.applyFilterAndSort({
|
|
12309
|
+
await this.applyFilterAndSort({
|
|
12310
|
+
resetPagination: true,
|
|
12311
|
+
viewSwitchEpoch,
|
|
12312
|
+
forceReload: viewSwitchEpoch != null,
|
|
12313
|
+
});
|
|
12171
12314
|
}
|
|
12172
12315
|
return { reloadList: false };
|
|
12173
12316
|
}
|
|
@@ -12256,6 +12399,13 @@ class AXPEntityMasterListViewModel {
|
|
|
12256
12399
|
}
|
|
12257
12400
|
async applyFilterAndSort(options) {
|
|
12258
12401
|
await this.ensureListPagingResolved();
|
|
12402
|
+
if (this.isStaleViewSwitch(options?.viewSwitchEpoch)) {
|
|
12403
|
+
return;
|
|
12404
|
+
}
|
|
12405
|
+
// A view switch already dropped the previous result. Only that switch may start the replacement load.
|
|
12406
|
+
if (this.listResultDiscarded && options?.viewSwitchEpoch == null && options?.forceReload !== true) {
|
|
12407
|
+
return;
|
|
12408
|
+
}
|
|
12259
12409
|
const sorts = this.sortedFields()
|
|
12260
12410
|
.filter((sf) => sf.dir)
|
|
12261
12411
|
.map((s) => ({ name: s.name, dir: s.dir }));
|
|
@@ -12269,7 +12419,8 @@ class AXPEntityMasterListViewModel {
|
|
|
12269
12419
|
filters: filters,
|
|
12270
12420
|
});
|
|
12271
12421
|
const filterKey = JSON.stringify(transformedFilter);
|
|
12272
|
-
|
|
12422
|
+
const presentationDiscarded = this.listResultDiscarded;
|
|
12423
|
+
if (sortKey === this.lastAppliedSortKey && filterKey === this.lastAppliedFilterKey && !presentationDiscarded && options?.forceReload !== true) {
|
|
12273
12424
|
traceEntityMasterList('viewmodel', 'applyFilterAndSort skipped (no effective change)', () => ({
|
|
12274
12425
|
entity: getEntityInfo(this.entityDef).source,
|
|
12275
12426
|
activeListLayout: this.activeListLayout(),
|
|
@@ -12277,10 +12428,14 @@ class AXPEntityMasterListViewModel {
|
|
|
12277
12428
|
}));
|
|
12278
12429
|
return; // No effective change; avoid redundant refresh
|
|
12279
12430
|
}
|
|
12431
|
+
if (this.isStaleViewSwitch(options?.viewSwitchEpoch)) {
|
|
12432
|
+
return;
|
|
12433
|
+
}
|
|
12434
|
+
this.listResultDiscarded = false;
|
|
12280
12435
|
this.updateAppliedInlineFilterHighlightText(toolbarFilters);
|
|
12281
12436
|
const filtersChanged = this.lastAppliedFilterKey != null && filterKey !== this.lastAppliedFilterKey;
|
|
12282
12437
|
const sortsChanged = this.lastAppliedSortKey != null && sortKey !== this.lastAppliedSortKey;
|
|
12283
|
-
const shouldResetPagination = options?.resetPagination === true || filtersChanged;
|
|
12438
|
+
const shouldResetPagination = options?.resetPagination === true || filtersChanged || presentationDiscarded;
|
|
12284
12439
|
this.lastAppliedSortKey = sortKey;
|
|
12285
12440
|
this.lastAppliedFilterKey = filterKey;
|
|
12286
12441
|
if (shouldResetPagination) {
|
|
@@ -14611,7 +14766,7 @@ class AXMAttachmentsPageComponentProvider {
|
|
|
14611
14766
|
return [
|
|
14612
14767
|
{
|
|
14613
14768
|
key: ATTACHMENTS_PAGE_COMPONENT_KEY,
|
|
14614
|
-
loader: () => import('./acorex-platform-framework-client-layout-entity-attachments-page.component-
|
|
14769
|
+
loader: () => import('./acorex-platform-framework-client-layout-entity-attachments-page.component-DH2Wq7ux.mjs').then((m) => m.AXMAttachmentsPageComponent),
|
|
14615
14770
|
},
|
|
14616
14771
|
];
|
|
14617
14772
|
}
|
|
@@ -15148,7 +15303,7 @@ class AXMGalleryPageComponentProvider {
|
|
|
15148
15303
|
return [
|
|
15149
15304
|
{
|
|
15150
15305
|
key: GALLERY_PAGE_COMPONENT_KEY,
|
|
15151
|
-
loader: () => import('./acorex-platform-framework-client-layout-entity-gallery-page.component-
|
|
15306
|
+
loader: () => import('./acorex-platform-framework-client-layout-entity-gallery-page.component-C_JIijQZ.mjs').then((m) => m.AXMGalleryPageComponent),
|
|
15152
15307
|
},
|
|
15153
15308
|
];
|
|
15154
15309
|
}
|
|
@@ -20181,7 +20336,9 @@ class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
20181
20336
|
inst.__axpEntityListRefreshPatched = true;
|
|
20182
20337
|
const originalRefresh = inst.refresh.bind(inst);
|
|
20183
20338
|
this.boundDataListRefresh = originalRefresh;
|
|
20339
|
+
const showPlaceholders = inst.showLoadingPlaceholders?.bind(inst);
|
|
20184
20340
|
inst.refresh = () => {
|
|
20341
|
+
showPlaceholders?.();
|
|
20185
20342
|
void (async () => {
|
|
20186
20343
|
if (this.#relatedFilterReloadInProgress) {
|
|
20187
20344
|
// Filters are being (re)applied by the in-progress sync — only re-fetch.
|
|
@@ -20679,7 +20836,11 @@ class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
20679
20836
|
const listInstance = this.listWidget()?.instance;
|
|
20680
20837
|
const dataSource = listInstance?.options?.()?.['dataSource'];
|
|
20681
20838
|
const toolbar = this.getValue()?.toolbar;
|
|
20682
|
-
if (!dataSource?.filter
|
|
20839
|
+
if (!dataSource?.filter) {
|
|
20840
|
+
return false;
|
|
20841
|
+
}
|
|
20842
|
+
dataSource.sort?.(...this.toDataSourceSortOptions(toolbar?.sorts));
|
|
20843
|
+
if (!toolbar?.filters?.length) {
|
|
20683
20844
|
return false;
|
|
20684
20845
|
}
|
|
20685
20846
|
dataSource.filter({ filters: toolbar.filters });
|
|
@@ -20867,7 +21028,9 @@ class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
20867
21028
|
if (!isMounted) {
|
|
20868
21029
|
return;
|
|
20869
21030
|
}
|
|
20870
|
-
if (changeTracker.isFilterChanged ||
|
|
21031
|
+
if (changeTracker.isFilterChanged ||
|
|
21032
|
+
changeTracker.isSortChanged ||
|
|
21033
|
+
changeTracker.isViewChanged) {
|
|
20871
21034
|
this.pushToolbarFiltersToDataSource();
|
|
20872
21035
|
listInstance.call('refresh');
|
|
20873
21036
|
}
|
|
@@ -23907,6 +24070,9 @@ function resolveKnownLookupTreeChildrenCount(item) {
|
|
|
23907
24070
|
if (Array.isArray(item['children'])) {
|
|
23908
24071
|
return item['children'].length;
|
|
23909
24072
|
}
|
|
24073
|
+
if (item['hasChild'] === false || item['hasChildren'] === false) {
|
|
24074
|
+
return 0;
|
|
24075
|
+
}
|
|
23910
24076
|
return undefined;
|
|
23911
24077
|
}
|
|
23912
24078
|
async function loadLookupTreeChildrenCounts(execute, parentKey, parentIds, config) {
|
|
@@ -23944,8 +24110,9 @@ async function loadLookupTreeChildrenCounts(execute, parentKey, parentIds, confi
|
|
|
23944
24110
|
* Lazy tree for hierarchical lookup entities (`parentKey`).
|
|
23945
24111
|
* Roots use `parentKey isEmpty` unless the widget filter already constrains the parent;
|
|
23946
24112
|
* expanding a node loads `parentKey = nodeId`.
|
|
23947
|
-
* `childrenCount` is taken from the row when present
|
|
23948
|
-
*
|
|
24113
|
+
* `childrenCount` is taken from the row when present. Otherwise the row is marked expandable,
|
|
24114
|
+
* unless `prefetchChildrenCount` is set, in which case one `parentKey in ids` query marks
|
|
24115
|
+
* leaves as 0 so no expander is shown.
|
|
23949
24116
|
*/
|
|
23950
24117
|
function createLookupEntityTreeDataSource(config) {
|
|
23951
24118
|
const parentKey = config.entity.parentKey?.trim();
|
|
@@ -23983,14 +24150,23 @@ function createLookupEntityTreeDataSource(config) {
|
|
|
23983
24150
|
const query = queryFields?.length ? { ...request, fields: queryFields } : request;
|
|
23984
24151
|
const result = await execute(query);
|
|
23985
24152
|
const items = await decorateListItems(result?.items, decorateItem);
|
|
23986
|
-
const unknownParentIds =
|
|
23987
|
-
|
|
23988
|
-
|
|
23989
|
-
|
|
24153
|
+
const unknownParentIds = config.prefetchChildrenCount
|
|
24154
|
+
? items
|
|
24155
|
+
.filter((item) => resolveKnownLookupTreeChildrenCount(item) == null)
|
|
24156
|
+
.map((item) => item[valueField])
|
|
24157
|
+
.filter((id) => id != null)
|
|
24158
|
+
: [];
|
|
23990
24159
|
const fetchedCounts = unknownParentIds.length > 0 ? await loadLookupTreeChildrenCounts(execute, parentKey, unknownParentIds, config) : new Map();
|
|
23991
24160
|
return items.map((item) => {
|
|
23992
24161
|
const key = item[valueField];
|
|
23993
24162
|
const knownCount = resolveKnownLookupTreeChildrenCount(item);
|
|
24163
|
+
if (knownCount == null && !config.prefetchChildrenCount) {
|
|
24164
|
+
const node = { ...item, hasChild: key != null };
|
|
24165
|
+
if (key != null && node[valueField] == null) {
|
|
24166
|
+
node[valueField] = key;
|
|
24167
|
+
}
|
|
24168
|
+
return node;
|
|
24169
|
+
}
|
|
23994
24170
|
const childrenCount = knownCount ?? (key == null ? 0 : (fetchedCounts.get(String(key)) ?? 0));
|
|
23995
24171
|
const node = {
|
|
23996
24172
|
...item,
|
|
@@ -24513,6 +24689,8 @@ class AXPLookupWidgetTablePanelComponent {
|
|
|
24513
24689
|
/** Set when a row command fires so the following row click does not select. */
|
|
24514
24690
|
#skipNextRowSelection;
|
|
24515
24691
|
#totalCount;
|
|
24692
|
+
/** True until the entity list finishes its first fetch for this panel open. */
|
|
24693
|
+
#awaitingEntityRows;
|
|
24516
24694
|
//#endregion
|
|
24517
24695
|
//#region ----- Lifecycle -----
|
|
24518
24696
|
constructor() {
|
|
@@ -24574,13 +24752,23 @@ class AXPLookupWidgetTablePanelComponent {
|
|
|
24574
24752
|
this.#skipNextRowSelection = false;
|
|
24575
24753
|
this.#totalCount = signal(0, /* @ts-ignore */
|
|
24576
24754
|
...(ngDevMode ? [{ debugName: "#totalCount" }] : /* istanbul ignore next */ []));
|
|
24755
|
+
/** True until the entity list finishes its first fetch for this panel open. */
|
|
24756
|
+
this.#awaitingEntityRows = signal(false, /* @ts-ignore */
|
|
24757
|
+
...(ngDevMode ? [{ debugName: "#awaitingEntityRows" }] : /* istanbul ignore next */ []));
|
|
24577
24758
|
this.tableDataSource = new AXDataSource({
|
|
24578
24759
|
pageSize: 1,
|
|
24579
24760
|
key: 'id',
|
|
24580
|
-
load: async () =>
|
|
24581
|
-
|
|
24582
|
-
|
|
24583
|
-
|
|
24761
|
+
load: async () => {
|
|
24762
|
+
const source = this.dataSource();
|
|
24763
|
+
if (this.#loadedItems.length === 0 && (source.isLoading || this.#awaitingEntityRows())) {
|
|
24764
|
+
await watchNextDataSourceLoad(source).promise;
|
|
24765
|
+
}
|
|
24766
|
+
const total = this.#totalCount();
|
|
24767
|
+
return {
|
|
24768
|
+
items: this.#loadedItems,
|
|
24769
|
+
total: total > 0 ? total : this.#loadedItems.length,
|
|
24770
|
+
};
|
|
24771
|
+
},
|
|
24584
24772
|
});
|
|
24585
24773
|
/**
|
|
24586
24774
|
* Source bound to `ax-data-table`. The table only subscribes to `dataSource` in `ngOnInit`,
|
|
@@ -24598,6 +24786,9 @@ class AXPLookupWidgetTablePanelComponent {
|
|
|
24598
24786
|
return header + maxVisible * itemHeight;
|
|
24599
24787
|
}
|
|
24600
24788
|
const total = this.#totalCount();
|
|
24789
|
+
if (this.#awaitingEntityRows() && total === 0) {
|
|
24790
|
+
return header + maxVisible * itemHeight;
|
|
24791
|
+
}
|
|
24601
24792
|
const rows = total > 0 ? total : Math.min(3, maxVisible);
|
|
24602
24793
|
return header + Math.min(rows, maxVisible) * itemHeight;
|
|
24603
24794
|
}, /* @ts-ignore */
|
|
@@ -24646,17 +24837,30 @@ class AXPLookupWidgetTablePanelComponent {
|
|
|
24646
24837
|
return;
|
|
24647
24838
|
}
|
|
24648
24839
|
untracked(() => {
|
|
24649
|
-
this.#
|
|
24840
|
+
this.#awaitingEntityRows.set(true);
|
|
24841
|
+
const hasCachedRows = source.cachedItems.some((item) => item != null);
|
|
24842
|
+
if (hasCachedRows) {
|
|
24843
|
+
this.#applyLoadedItems(source.cachedItems, source.totalCount);
|
|
24844
|
+
}
|
|
24845
|
+
else {
|
|
24846
|
+
this.#loadedItems.length = 0;
|
|
24847
|
+
this.#totalCount.set(0);
|
|
24848
|
+
}
|
|
24650
24849
|
});
|
|
24651
24850
|
const changedSub = source.onChanged.subscribe((event) => {
|
|
24652
24851
|
this.#applyLoadedItems(event.cachedItems, event.totalCount);
|
|
24653
24852
|
});
|
|
24853
|
+
// Same as tree mode: always load when the panel opens (do not rely on cache after close).
|
|
24654
24854
|
queueMicrotask(() => {
|
|
24855
|
+
source.setPage(0);
|
|
24655
24856
|
if (!source.cachedItems.some((item) => item != null)) {
|
|
24656
|
-
|
|
24857
|
+
this.tableDataSource.refresh({ reset: true });
|
|
24657
24858
|
}
|
|
24658
24859
|
});
|
|
24659
|
-
onCleanup(() =>
|
|
24860
|
+
onCleanup(() => {
|
|
24861
|
+
changedSub.unsubscribe();
|
|
24862
|
+
this.#awaitingEntityRows.set(false);
|
|
24863
|
+
});
|
|
24660
24864
|
});
|
|
24661
24865
|
effect((onCleanup) => {
|
|
24662
24866
|
if (this.parentField()) {
|
|
@@ -24718,6 +24922,7 @@ class AXPLookupWidgetTablePanelComponent {
|
|
|
24718
24922
|
this.#loadedItems.length = 0;
|
|
24719
24923
|
this.#loadedItems.push(...cachedItems.filter((item) => item != null));
|
|
24720
24924
|
this.#totalCount.set(totalCount);
|
|
24925
|
+
this.#awaitingEntityRows.set(false);
|
|
24721
24926
|
this.tableDataSource.config.pageSize = Math.max(this.#loadedItems.length, 1);
|
|
24722
24927
|
this.tableDataSource.refresh({ reset: true });
|
|
24723
24928
|
}
|
|
@@ -25034,7 +25239,10 @@ class AXPLookupWidgetTableHostComponent extends NXValueComponent {
|
|
|
25034
25239
|
this.highlightQuery.set(query);
|
|
25035
25240
|
if (!query) {
|
|
25036
25241
|
source.clearFilter();
|
|
25037
|
-
|
|
25242
|
+
// List load is gated while the popover is closed; refresh here would cache empty rows.
|
|
25243
|
+
if (this.expanded()) {
|
|
25244
|
+
source.refresh();
|
|
25245
|
+
}
|
|
25038
25246
|
return;
|
|
25039
25247
|
}
|
|
25040
25248
|
if (this.parentField() && this.treeDataSource() && typeof this.treeDataSource() === 'function') {
|
|
@@ -25208,6 +25416,9 @@ class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
25208
25416
|
/** When false, an empty cascade filter does not lock the editor. Explicit `disabled` is independent. */
|
|
25209
25417
|
this.waitForCascade = computed(() => this.options()['waitForCascade'] ?? true, /* @ts-ignore */
|
|
25210
25418
|
...(ngDevMode ? [{ debugName: "waitForCascade" }] : /* istanbul ignore next */ []));
|
|
25419
|
+
/** ax-tree-view only lazy-loads nodes with `childrenCount > 0`, so non-table tree modes always prefetch. */
|
|
25420
|
+
this.prefetchChildrenCount = computed(() => this.options()['prefetchChildrenCount'] === true || !this.isTableLookupMode(), /* @ts-ignore */
|
|
25421
|
+
...(ngDevMode ? [{ debugName: "prefetchChildrenCount" }] : /* istanbul ignore next */ []));
|
|
25211
25422
|
/** Parent cascade with an empty value. Structurally empty filters and top-level not-in stay enabled. */
|
|
25212
25423
|
this.hasPendingCascadeFilter = computed(() => {
|
|
25213
25424
|
if (this.filterMode() || !this.waitForCascade()) {
|
|
@@ -25345,8 +25556,10 @@ class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
25345
25556
|
});
|
|
25346
25557
|
}, /* @ts-ignore */
|
|
25347
25558
|
...(ngDevMode ? [{ debugName: "entityDataSource" }] : /* istanbul ignore next */ []));
|
|
25559
|
+
/** New identity per filter so the table host drops its per-loader node cache. */
|
|
25348
25560
|
this.entityTreeDataSource = computed(() => {
|
|
25349
25561
|
this.localeEpoch();
|
|
25562
|
+
this.customFilter();
|
|
25350
25563
|
const entity = this.entityDef();
|
|
25351
25564
|
if (!entity?.parentKey || this.look() === 'select') {
|
|
25352
25565
|
return EMPTY_TREE_DATA_SOURCE;
|
|
@@ -25361,6 +25574,7 @@ class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
25361
25574
|
getQueryFields: () => this.lookupQueryFields(),
|
|
25362
25575
|
getCustomFilter: () => this.customFilter(),
|
|
25363
25576
|
shouldQuery: () => this.shouldRunLookupListQuery(),
|
|
25577
|
+
prefetchChildrenCount: this.prefetchChildrenCount(),
|
|
25364
25578
|
transformFilter: (filter) => this.filterOperatorMiddleware.transformFilter(filter),
|
|
25365
25579
|
decorateItem: (item) => this.decorateLookupItem(item),
|
|
25366
25580
|
}) ?? EMPTY_TREE_DATA_SOURCE);
|
|
@@ -33401,7 +33615,7 @@ class AXPEntityModule {
|
|
|
33401
33615
|
},
|
|
33402
33616
|
{
|
|
33403
33617
|
key: 'Entity:Bulk',
|
|
33404
|
-
command: () => import('./acorex-platform-framework-client-layout-entity-bulk-entity.command-
|
|
33618
|
+
command: () => import('./acorex-platform-framework-client-layout-entity-bulk-entity.command-DMgR7yq0.mjs').then((c) => c.AXPBulkEntityCommand),
|
|
33405
33619
|
},
|
|
33406
33620
|
{
|
|
33407
33621
|
key: 'Entity:OpenList',
|
|
@@ -33563,7 +33777,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
33563
33777
|
},
|
|
33564
33778
|
{
|
|
33565
33779
|
key: 'Entity:Bulk',
|
|
33566
|
-
command: () => import('./acorex-platform-framework-client-layout-entity-bulk-entity.command-
|
|
33780
|
+
command: () => import('./acorex-platform-framework-client-layout-entity-bulk-entity.command-DMgR7yq0.mjs').then((c) => c.AXPBulkEntityCommand),
|
|
33567
33781
|
},
|
|
33568
33782
|
{
|
|
33569
33783
|
key: 'Entity:OpenList',
|
|
@@ -33888,5 +34102,5 @@ function detectEntityChanges(oldObj, newObj) {
|
|
|
33888
34102
|
* Generated bundle index. Do not edit.
|
|
33889
34103
|
*/
|
|
33890
34104
|
|
|
33891
|
-
export { AXPEntityListViewCardFieldViewModel as $, AXPEntityDefinitionRegistryService as A, AXPEntityCategoryWidget as B, AXPEntityCategoryWidgetColumnComponent as C, AXPEntityCategoryWidgetEditComponent as D, AXPEntityCategoryWidgetViewComponent as E, AXPEntityCommandTriggerViewModel as F, AXPEntityCreateViewElementViewModel as G, AXPEntityCreateViewModelFactory as H, AXPEntityCreateViewSectionViewModel as I, AXPEntityDataProvider as J, AXPEntityDataProviderImpl as K, AXPEntityDataSelectorRowActionsService as L, AXPEntityDataSelectorService as M, AXPEntityDefinitionProviderWidget as N, AXPEntityDefinitionProviderWidgetEditComponent as O, AXPEntityDeletePerformService as P, AXPEntityDetailListViewModel as Q, AXPEntityDetailPopoverComponent as R, AXPEntityDetailPopoverService as S, AXPEntityDetailViewModelFactory as T, AXPEntityDetailViewModelResolver as U, AXPEntityEventDispatcherService as V, AXPEntityFormBuilderService as W, AXPEntityLifecycleHookKeys as X, AXPEntityListPersistenceModeDefault as Y, AXPEntityListTableService as Z, AXPEntityListToolbarService as _, showOperationResultToast as a, AXPUpdateEntityStatusCommand as a$, AXPEntityListViewColumnViewModel as a0, AXPEntityListViewModelFactory as a1, AXPEntityListViewModelResolver as a2, AXPEntityListWidget as a3, AXPEntityListWidgetViewComponent as a4, AXPEntityMasterCreateViewModel as a5, AXPEntityMasterListCardSelectActionName as a6, AXPEntityMasterListViewModel as a7, AXPEntityMasterListViewQueryViewModel as a8, AXPEntityMasterSingleElementViewModel as a9, AXPLookupWidget as aA, AXPLookupWidgetColumnComponent as aB, AXPLookupWidgetEditComponent as aC, AXPLookupWidgetViewComponent as aD, AXPMiddlewareAbortError as aE, AXPMiddlewareEntityStorageService as aF, AXPMultiSourceDefinitionProviderContext as aG, AXPMultiSourceDefinitionProviderService as aH, AXPMultiSourceFederatedSearchService as aI, AXPMultiSourceSelectorComponent as aJ, AXPMultiSourceSelectorService as aK, AXPMultiSourceSelectorWidget as aL, AXPMultiSourceSelectorWidgetColumnComponent as aM, AXPMultiSourceSelectorWidgetEditComponent as aN, AXPMultiSourceSelectorWidgetViewComponent as aO, AXPMultiSourceType as aP, AXPOpenEntityDetailsCommand as aQ, AXPOpenEntityListCommand as aR, AXPRelatedColumnEnrichmentService as aS, AXPRelatedColumnMetadataResolver as aT, AXPSelectorStructureWidget as aU, AXPSelectorStructureWidgetColumnComponent as aV, AXPSelectorStructureWidgetEditComponent as aW, AXPSelectorStructureWidgetViewComponent as aX, AXPShowFileUploaderPopupCommand as aY, AXPTruncatedBreadcrumbComponent as aZ, AXPUpdateEntityCommand as a_, AXPEntityMasterSingleViewGroupViewModel as aa, AXPEntityMasterSingleViewModel as ab, AXPEntityMasterUpdateElementViewModel as ac, AXPEntityMasterUpdateViewModel as ad, AXPEntityMasterUpdateViewModelFactory as ae, AXPEntityMiddlewareSkipContext as af, AXPEntityModule as ag, AXPEntityPreloadFiltersContainerComponent as ah, AXPEntityPreloadFiltersViewModel as ai, AXPEntityPreloadFiltersViewModelResolver as aj, AXPEntityResolver as ak, AXPEntityRuntimeAccessorService as al, AXPEntityService as am, AXPEntityStorageService as an, AXPEntityUpdateViewSectionViewModel as ao, AXPFileListComponent as ap, AXPFileUploaderLoadFilesQuery as aq, AXPFileUploaderSaveFilesCommand as ar, AXPFileUploaderWidget as as, AXPFileUploaderWidgetColumnComponent as at, AXPFileUploaderWidgetEditComponent as au, AXPFileUploaderWidgetService as av, AXPFileUploaderWidgetViewComponent as aw, AXPGetEntityDetailsQuery as ax, AXPLayoutOrderingConfigService as ay, AXPLookupByKeyCacheService as az, buildSelectedIdsFilter as b, defaultMultiLanguageMiddleware as b$, AXPViewEntityDetailsCommand as b0, AXP_APPEARANCE_SECTION_ORDER as b1, AXP_CATEGORY_TREE_ROOT_TITLE_I18N_KEY as b2, AXP_CLASSIFICATION_SECTION_ORDER as b3, AXP_CLIENT_LOCAL_DEFAULT_MAX_ITEMS as b4, AXP_CLIENT_LOCAL_PLUGIN_NAME as b5, AXP_DATA_SEEDER_TOKEN as b6, AXP_ENTITY_ACTION_PLUGIN as b7, AXP_ENTITY_CONFIG_TOKEN as b8, AXP_ENTITY_DEFINITION_LOADER as b9, axpDeleteEntityCommandDefinition as bA, axpOpenEntityListCommandDefinition as bB, axpRunEntityListPageContextAction as bC, axpShowFileUploaderPopupCommandDefinition as bD, axpUpdateEntityStatusCommandDefinition as bE, buildDataSourceTraceSnapshot as bF, canPersistEntityListState as bG, clientLocalPlugin as bH, cloneLayoutArrays as bI, columnOrderingMiddleware as bJ, columnOrderingMiddlewareProvider as bK, columnWidthMiddleware as bL, columnWidthMiddlewareProvider as bM, committedAttachments as bN, composeEntityMiddlewares as bO, composeEntityStorageMiddlewares as bP, computeEntityAggregates as bQ, configureEntityListColumnsSettingsMigrateDrop as bR, configureEntityListColumnsSettingsVersion as bS, createColumnOrderingMiddlewareProvider as bT, createEntityCardDisplayScope as bU, createEntityCardLogicScope as bV, createEntityMiddlewareContext as bW, createEntityStorageContext as bX, createLayoutOrderingMiddlewareProvider as bY, defaultCardLayoutMiddleware as bZ, defaultCardLayoutMiddlewareProvider as b_, AXP_ENTITY_MIDDLEWARE as ba, AXP_ENTITY_MODIFIER as bb, AXP_ENTITY_STORAGE_MIDDLEWARE as bc, AXP_LOOKUP_FILTER_DEFAULT_OPERATOR as bd, AXP_MULTI_SOURCE_DEFINITION_PROVIDER as be, DEFAULT_COLUMN_ORDER as bf, DEFAULT_GROUP_SPAN_RULES as bg, DEFAULT_PAIR_SPAN_RULES as bh, DEFAULT_PROPERTY_ORDER as bi, DEFAULT_SECTION_ORDER as bj, ENTITY_FORM_ACTION_FIRST_STEP_CONTINUE as bk, ENTITY_LIST_LAYOUT_META as bl, ENTITY_LIST_ROUTE_CONTEXT_SESSION_KEY as bm, ENTITY_MASTER_LIST_TRACE_NS as bn, EntityBuilder as bo, EntityDataAccessor as bp, GALLERY_PAGE_COMPONENT_KEY as bq, TREE_CHILDREN_QUERY_TAKE as br, actionExists as bs, applyDataSourcePagingWithoutLoad as bt, attachmentFieldCount as bu, attachmentsPlugin as bv, attachmentsSemanticallyEqual as bw, axpBuildEntityListPageContextSnapshot as bx, axpCreateEntityAiToolInputDefaults as by, axpCreateEntityCommandDefinition as bz, readLiveAttachmentValue as c, provideEntityMiddlewareBridge as c$, defaultMultiLanguageMiddlewareProvider as c0, defaultSortPresetsMiddleware as c1, defaultSortPresetsMiddlewareProvider as c2, detectEntityChanges as c3, dispatchEntityModifiedSideEffects as c4, ensureHierarchicalRootFilter as c5, ensureLayoutPropertyView as c6, ensureLayoutSection as c7, ensureListActions as c8, entityCreateBridgeMiddleware as c9, getEntityListColumnsSettingsVersion as cA, getEntityListRowId as cB, getMasterInterfacePropertySortKey as cC, hasFileUploaderTitleOrDescriptionFields as cD, hydrateAttachmentFieldToFileList as cE, isAXPMiddlewareAbortError as cF, isAttachmentFieldPresentOnRow as cG, isAttachmentListEntry as cH, isAttachmentStorageRef as cI, isCategoryEntity as cJ, isCategoryFilter as cK, isFileListItem as cL, isFileUploaderEditDialogAuto as cM, isLegacyEntityDataSelectorOptions as cN, layoutOrderingMiddlewareFactory as cO, layoutOrderingMiddlewareProvider as cP, mapEntityStorageErrorToCommandResult as cQ, mapLegacyEntityDataSelectorOptions as cR, mergeEntityListViewAndPersistedFilters as cS, normalizeEntityCardHeaderDisplayValue as cT, normalizeEntityDataSelectorColumnSpecs as cU, normalizeEntityDataSelectorOptions as cV, normalizeEntityFieldToFileList as cW, normalizeEntityListPersistenceMode as cX, normalizeListPaging as cY, prefetchClientLocalRelated as cZ, provideEntity as c_, entityDeleteBridgeMiddleware as ca, entityGetOneBridgeMiddleware as cb, entityListInstanceCurrentViewPath as cc, entityListInstanceFilterPath as cd, entityListStylingRulesPath as ce, entityQueryBridgeMiddleware as cf, entityStorageCreateBridgeMiddleware as cg, entityStorageDeleteBridgeMiddleware as ch, entityStorageGetOneBridgeMiddleware as ci, entityStorageQueryBridgeMiddleware as cj, entityStorageUpdateBridgeMiddleware as ck, entityUpdateBridgeMiddleware as cl, eventDispatchMiddleware as cm, filterEntityMiddlewares as cn, filterEntityStorageMiddlewares as co, filterSortEntityRows as cp, filterTouchesParentKey as cq, findEntityListRowDataInTree as cr, fingerprintAttachmentItem as cs, fingerprintAttachments as ct, fireEntityLifecycleHook as cu, formatLookupItemDisplay as cv, formatLookupItemDisplayAsync as cw, galleryPlugin as cx, getDataSourcePageIndex as cy, getEntityListColumnsSettingsMigrateDrop as cz, saveAttachmentsThroughEntityUpdate as d, provideEntityRealtimeHandlers as d0, provideEntityStorageMiddlewareBridge as d1, provideLocalEntityCatalog as d2, readPersistedEntityListInstanceCurrentView as d3, readPersistedEntityListInstanceFilters as d4, readPersistedEntityListStylingRules as d5, resetPagingForTreeChildrenLoad as d6, resolveAttachmentFieldPath as d7, resolveEntityCardBadgeColorValue as d8, resolveEntityCardHeaderValue as d9, resolveEntityMasterFieldStylingClass as da, resolveEntityMasterRecordStylingClass as db, resolveEntityMasterStylingClass as dc, resolveEntityPluginDetailPageOrder as dd, resolveFileUploaderEditDialog as de, resolveFileUploaderEntityScope as df, resolveLookupDisplayField as dg, resolveLookupDisplayTemplate as dh, resolveLookupEntityCacheKey as di, resolveLookupEntityKey as dj, resolveMasterInterfacePropertyOrder as dk, restoreEntityListExpandedRows as dl, runEntityMiddlewarePipeline as dm, runEntityQuery as dn, runEntityStorageMiddlewarePipeline as dp, searchResultDescriptionMiddleware as dq, searchResultDescriptionMiddlewareProvider as dr, shouldLoadEntityListStateFromStorage as ds, shouldResetEntityListStateOnRouteEntry as dt, traceEntityMasterList as du, attachmentNeedsHydration as e, ATTACHMENTS_PAGE_COMPONENT_KEY as f, AXMEntityCrudService as g, AXMEntityCrudServiceImpl as h, AXPCategoryTreeService as i, AXPClientLocalPluginModule as j, AXPCreateEntityCommand as k, AXPDataSeederService as l, AXPDeleteEntityCommand as m, newBulkExecutionId as n, AXPDomainQueryEntityDefinitionLoader as o, persistedAttachments as p, AXPEditFileUploaderCommand as q, resolveBulkFailureBody as r, settleAfterLoadingDialog as s, AXPEntityBulkPatchPerformService as t, AXPEntityCardComponent as u, AXPEntityCardFieldsResolver as v, watchBulkProgress as w, AXPEntityCardSelectActionName as x, AXPEntityCardSkeletonComponent as y, AXPEntityCategoryTreeSelectorComponent as z };
|
|
33892
|
-
//# sourceMappingURL=acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-
|
|
34105
|
+
export { AXPEntityListViewCardFieldViewModel as $, AXPEntityDefinitionRegistryService as A, AXPEntityCategoryWidget as B, AXPEntityCategoryWidgetColumnComponent as C, AXPEntityCategoryWidgetEditComponent as D, AXPEntityCategoryWidgetViewComponent as E, AXPEntityCommandTriggerViewModel as F, AXPEntityCreateViewElementViewModel as G, AXPEntityCreateViewModelFactory as H, AXPEntityCreateViewSectionViewModel as I, AXPEntityDataProvider as J, AXPEntityDataProviderImpl as K, AXPEntityDataSelectorRowActionsService as L, AXPEntityDataSelectorService as M, AXPEntityDefinitionProviderWidget as N, AXPEntityDefinitionProviderWidgetEditComponent as O, AXPEntityDeletePerformService as P, AXPEntityDetailListViewModel as Q, AXPEntityDetailPopoverComponent as R, AXPEntityDetailPopoverService as S, AXPEntityDetailViewModelFactory as T, AXPEntityDetailViewModelResolver as U, AXPEntityEventDispatcherService as V, AXPEntityFormBuilderService as W, AXPEntityLifecycleHookKeys as X, AXPEntityListPersistenceModeDefault as Y, AXPEntityListTableService as Z, AXPEntityListToolbarService as _, showOperationResultToast as a, AXPUpdateEntityStatusCommand as a$, AXPEntityListViewColumnViewModel as a0, AXPEntityListViewModelFactory as a1, AXPEntityListViewModelResolver as a2, AXPEntityListWidget as a3, AXPEntityListWidgetViewComponent as a4, AXPEntityMasterCreateViewModel as a5, AXPEntityMasterListCardSelectActionName as a6, AXPEntityMasterListViewModel as a7, AXPEntityMasterListViewQueryViewModel as a8, AXPEntityMasterSingleElementViewModel as a9, AXPLookupWidget as aA, AXPLookupWidgetColumnComponent as aB, AXPLookupWidgetEditComponent as aC, AXPLookupWidgetViewComponent as aD, AXPMiddlewareAbortError as aE, AXPMiddlewareEntityStorageService as aF, AXPMultiSourceDefinitionProviderContext as aG, AXPMultiSourceDefinitionProviderService as aH, AXPMultiSourceFederatedSearchService as aI, AXPMultiSourceSelectorComponent as aJ, AXPMultiSourceSelectorService as aK, AXPMultiSourceSelectorWidget as aL, AXPMultiSourceSelectorWidgetColumnComponent as aM, AXPMultiSourceSelectorWidgetEditComponent as aN, AXPMultiSourceSelectorWidgetViewComponent as aO, AXPMultiSourceType as aP, AXPOpenEntityDetailsCommand as aQ, AXPOpenEntityListCommand as aR, AXPRelatedColumnEnrichmentService as aS, AXPRelatedColumnMetadataResolver as aT, AXPSelectorStructureWidget as aU, AXPSelectorStructureWidgetColumnComponent as aV, AXPSelectorStructureWidgetEditComponent as aW, AXPSelectorStructureWidgetViewComponent as aX, AXPShowFileUploaderPopupCommand as aY, AXPTruncatedBreadcrumbComponent as aZ, AXPUpdateEntityCommand as a_, AXPEntityMasterSingleViewGroupViewModel as aa, AXPEntityMasterSingleViewModel as ab, AXPEntityMasterUpdateElementViewModel as ac, AXPEntityMasterUpdateViewModel as ad, AXPEntityMasterUpdateViewModelFactory as ae, AXPEntityMiddlewareSkipContext as af, AXPEntityModule as ag, AXPEntityPreloadFiltersContainerComponent as ah, AXPEntityPreloadFiltersViewModel as ai, AXPEntityPreloadFiltersViewModelResolver as aj, AXPEntityResolver as ak, AXPEntityRuntimeAccessorService as al, AXPEntityService as am, AXPEntityStorageService as an, AXPEntityUpdateViewSectionViewModel as ao, AXPFileListComponent as ap, AXPFileUploaderLoadFilesQuery as aq, AXPFileUploaderSaveFilesCommand as ar, AXPFileUploaderWidget as as, AXPFileUploaderWidgetColumnComponent as at, AXPFileUploaderWidgetEditComponent as au, AXPFileUploaderWidgetService as av, AXPFileUploaderWidgetViewComponent as aw, AXPGetEntityDetailsQuery as ax, AXPLayoutOrderingConfigService as ay, AXPLookupByKeyCacheService as az, buildSelectedIdsFilter as b, defaultMultiLanguageMiddleware as b$, AXPViewEntityDetailsCommand as b0, AXP_APPEARANCE_SECTION_ORDER as b1, AXP_CATEGORY_TREE_ROOT_TITLE_I18N_KEY as b2, AXP_CLASSIFICATION_SECTION_ORDER as b3, AXP_CLIENT_LOCAL_DEFAULT_MAX_ITEMS as b4, AXP_CLIENT_LOCAL_PLUGIN_NAME as b5, AXP_DATA_SEEDER_TOKEN as b6, AXP_ENTITY_ACTION_PLUGIN as b7, AXP_ENTITY_CONFIG_TOKEN as b8, AXP_ENTITY_DEFINITION_LOADER as b9, axpDeleteEntityCommandDefinition as bA, axpOpenEntityListCommandDefinition as bB, axpRunEntityListPageContextAction as bC, axpShowFileUploaderPopupCommandDefinition as bD, axpUpdateEntityStatusCommandDefinition as bE, buildDataSourceTraceSnapshot as bF, canPersistEntityListState as bG, clientLocalPlugin as bH, cloneLayoutArrays as bI, columnOrderingMiddleware as bJ, columnOrderingMiddlewareProvider as bK, columnWidthMiddleware as bL, columnWidthMiddlewareProvider as bM, committedAttachments as bN, composeEntityMiddlewares as bO, composeEntityStorageMiddlewares as bP, computeEntityAggregates as bQ, configureEntityListColumnsSettingsMigrateDrop as bR, configureEntityListColumnsSettingsVersion as bS, createColumnOrderingMiddlewareProvider as bT, createEntityCardDisplayScope as bU, createEntityCardLogicScope as bV, createEntityMiddlewareContext as bW, createEntityStorageContext as bX, createLayoutOrderingMiddlewareProvider as bY, defaultCardLayoutMiddleware as bZ, defaultCardLayoutMiddlewareProvider as b_, AXP_ENTITY_MIDDLEWARE as ba, AXP_ENTITY_MODIFIER as bb, AXP_ENTITY_STORAGE_MIDDLEWARE as bc, AXP_LOOKUP_FILTER_DEFAULT_OPERATOR as bd, AXP_MULTI_SOURCE_DEFINITION_PROVIDER as be, DEFAULT_COLUMN_ORDER as bf, DEFAULT_GROUP_SPAN_RULES as bg, DEFAULT_PAIR_SPAN_RULES as bh, DEFAULT_PROPERTY_ORDER as bi, DEFAULT_SECTION_ORDER as bj, ENTITY_FORM_ACTION_FIRST_STEP_CONTINUE as bk, ENTITY_LIST_LAYOUT_META as bl, ENTITY_LIST_ROUTE_CONTEXT_SESSION_KEY as bm, ENTITY_MASTER_LIST_TRACE_NS as bn, EntityBuilder as bo, EntityDataAccessor as bp, GALLERY_PAGE_COMPONENT_KEY as bq, TREE_CHILDREN_QUERY_TAKE as br, actionExists as bs, applyDataSourcePagingWithoutLoad as bt, attachmentFieldCount as bu, attachmentsPlugin as bv, attachmentsSemanticallyEqual as bw, axpBuildEntityListPageContextSnapshot as bx, axpCreateEntityAiToolInputDefaults as by, axpCreateEntityCommandDefinition as bz, readLiveAttachmentValue as c, provideEntityMiddlewareBridge as c$, defaultMultiLanguageMiddlewareProvider as c0, defaultSortPresetsMiddleware as c1, defaultSortPresetsMiddlewareProvider as c2, detectEntityChanges as c3, dispatchEntityModifiedSideEffects as c4, ensureHierarchicalRootFilter as c5, ensureLayoutPropertyView as c6, ensureLayoutSection as c7, ensureListActions as c8, entityCreateBridgeMiddleware as c9, getEntityListColumnsSettingsVersion as cA, getEntityListRowId as cB, getMasterInterfacePropertySortKey as cC, hasFileUploaderTitleOrDescriptionFields as cD, hydrateAttachmentFieldToFileList as cE, isAXPMiddlewareAbortError as cF, isAttachmentFieldPresentOnRow as cG, isAttachmentListEntry as cH, isAttachmentStorageRef as cI, isCategoryEntity as cJ, isCategoryFilter as cK, isFileListItem as cL, isFileUploaderEditDialogAuto as cM, isLegacyEntityDataSelectorOptions as cN, layoutOrderingMiddlewareFactory as cO, layoutOrderingMiddlewareProvider as cP, mapEntityStorageErrorToCommandResult as cQ, mapLegacyEntityDataSelectorOptions as cR, mergeEntityListViewAndPersistedFilters as cS, normalizeEntityCardHeaderDisplayValue as cT, normalizeEntityDataSelectorColumnSpecs as cU, normalizeEntityDataSelectorOptions as cV, normalizeEntityFieldToFileList as cW, normalizeEntityListPersistenceMode as cX, normalizeListPaging as cY, prefetchClientLocalRelated as cZ, provideEntity as c_, entityDeleteBridgeMiddleware as ca, entityGetOneBridgeMiddleware as cb, entityListInstanceCurrentViewPath as cc, entityListInstanceFilterPath as cd, entityListStylingRulesPath as ce, entityQueryBridgeMiddleware as cf, entityStorageCreateBridgeMiddleware as cg, entityStorageDeleteBridgeMiddleware as ch, entityStorageGetOneBridgeMiddleware as ci, entityStorageQueryBridgeMiddleware as cj, entityStorageUpdateBridgeMiddleware as ck, entityUpdateBridgeMiddleware as cl, eventDispatchMiddleware as cm, filterEntityMiddlewares as cn, filterEntityStorageMiddlewares as co, filterSortEntityRows as cp, filterTouchesParentKey as cq, findEntityListRowDataInTree as cr, fingerprintAttachmentItem as cs, fingerprintAttachments as ct, fireEntityLifecycleHook as cu, formatLookupItemDisplay as cv, formatLookupItemDisplayAsync as cw, galleryPlugin as cx, getDataSourcePageIndex as cy, getEntityListColumnsSettingsMigrateDrop as cz, saveAttachmentsThroughEntityUpdate as d, provideEntityRealtimeHandlers as d0, provideEntityStorageMiddlewareBridge as d1, provideLocalEntityCatalog as d2, readPersistedEntityListInstanceCurrentView as d3, readPersistedEntityListInstanceFilters as d4, readPersistedEntityListStylingRules as d5, resetPagingForTreeChildrenLoad as d6, resolveAttachmentFieldPath as d7, resolveEntityCardBadgeColorValue as d8, resolveEntityCardHeaderValue as d9, resolveEntityMasterFieldStylingClass as da, resolveEntityMasterRecordStylingClass as db, resolveEntityMasterStylingClass as dc, resolveEntityPluginDetailPageOrder as dd, resolveFileUploaderEditDialog as de, resolveFileUploaderEntityScope as df, resolveLookupDisplayField as dg, resolveLookupDisplayTemplate as dh, resolveLookupEntityCacheKey as di, resolveLookupEntityKey as dj, resolveMasterInterfacePropertyOrder as dk, restoreEntityListExpandedRows as dl, runEntityMiddlewarePipeline as dm, runEntityQuery as dn, runEntityStorageMiddlewarePipeline as dp, searchResultDescriptionMiddleware as dq, searchResultDescriptionMiddlewareProvider as dr, shouldLoadEntityListStateFromStorage as ds, shouldResetEntityListStateOnRouteEntry as dt, traceEntityMasterList as du, watchNextDataSourceLoad as dv, attachmentNeedsHydration as e, ATTACHMENTS_PAGE_COMPONENT_KEY as f, AXMEntityCrudService as g, AXMEntityCrudServiceImpl as h, AXPCategoryTreeService as i, AXPClientLocalPluginModule as j, AXPCreateEntityCommand as k, AXPDataSeederService as l, AXPDeleteEntityCommand as m, newBulkExecutionId as n, AXPDomainQueryEntityDefinitionLoader as o, persistedAttachments as p, AXPEditFileUploaderCommand as q, resolveBulkFailureBody as r, settleAfterLoadingDialog as s, AXPEntityBulkPatchPerformService as t, AXPEntityCardComponent as u, AXPEntityCardFieldsResolver as v, watchBulkProgress as w, AXPEntityCardSelectActionName as x, AXPEntityCardSkeletonComponent as y, AXPEntityCategoryTreeSelectorComponent as z };
|
|
34106
|
+
//# sourceMappingURL=acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-BTLgOdQN.mjs.map
|