@acorex/platform 21.0.0-next.46 → 21.0.0-next.47

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.
@@ -4364,6 +4364,51 @@ async function restoreEntityListExpandedRows(options) {
4364
4364
  }
4365
4365
  }
4366
4366
 
4367
+ /**
4368
+ * Applies take/skip to the data source without triggering {@link AXDataSource.load}.
4369
+ */
4370
+ function applyDataSourcePagingWithoutLoad(dataSource, paging) {
4371
+ const take = Math.max(1, paging.take);
4372
+ const skip = Math.max(0, paging.skip);
4373
+ const page = Math.floor(skip / take);
4374
+ const ds = dataSource;
4375
+ dataSource.config.pageSize = take;
4376
+ if (ds._query) {
4377
+ ds._query.take = take;
4378
+ ds._query.skip = skip;
4379
+ }
4380
+ ds._page = page;
4381
+ }
4382
+ function getDataSourcePageIndex(dataSource) {
4383
+ const ds = dataSource;
4384
+ return ds._page ?? 0;
4385
+ }
4386
+ function normalizeListPaging(paging, defaultTake) {
4387
+ const take = typeof paging?.take === 'number' && paging.take > 0 ? paging.take : defaultTake;
4388
+ const skip = typeof paging?.skip === 'number' && paging.skip >= 0 ? paging.skip : 0;
4389
+ return { take, skip };
4390
+ }
4391
+
4392
+ const AXPEntityListPersistenceModeDefault = 'persistent';
4393
+ function normalizeEntityListPersistenceMode(value) {
4394
+ if (value === 'none' || value === 'persistent' || value === 'route') {
4395
+ return value;
4396
+ }
4397
+ return AXPEntityListPersistenceModeDefault;
4398
+ }
4399
+ function canPersistEntityListState(mode) {
4400
+ return mode !== 'none';
4401
+ }
4402
+ /** `none` never reads list state from user settings. */
4403
+ function shouldLoadEntityListStateFromStorage(mode) {
4404
+ return mode !== 'none';
4405
+ }
4406
+ /** `route` clears stored list state when the route entity (module + name) changes. */
4407
+ function shouldResetEntityListStateOnRouteEntry(mode) {
4408
+ return mode === 'route';
4409
+ }
4410
+ const ENTITY_LIST_ROUTE_CONTEXT_SESSION_KEY = 'axp-entity-list-route-context';
4411
+
4367
4412
  /**
4368
4413
  * Entity Event Dispatcher - A wrapper for entity-specific events
4369
4414
  * Handles pattern-based dispatching for entity operations with wildcard support
@@ -4697,14 +4742,17 @@ class AXPEntityMasterListViewModel {
4697
4742
  return `${resolvedCommand}${suffix}`;
4698
4743
  }
4699
4744
  async setView(viewName = null) {
4700
- const entitySetting = await this.settings.get(this.settingEntityKey);
4701
- const selectedViewName = entitySetting?.list?.currentView;
4745
+ let selectedViewName;
4746
+ if (await this.shouldLoadPersistedListState()) {
4747
+ const entitySetting = await this.settings.get(this.settingEntityKey);
4748
+ selectedViewName = entitySetting?.list?.currentView;
4749
+ }
4702
4750
  if (viewName != this.view().name) {
4703
4751
  this.view.set(this.views().find((c) => c.name == (viewName || selectedViewName)) ?? this.views()[0]);
4704
4752
  this.applyViewSorts();
4705
4753
  this.applyViewColumns();
4706
4754
  this.applyViewFilters();
4707
- // this.applyFilterAndSort();
4755
+ this.resolvedListPaging.set(null);
4708
4756
  await this.applySettings();
4709
4757
  }
4710
4758
  }
@@ -4732,6 +4780,11 @@ class AXPEntityMasterListViewModel {
4732
4780
  this.expandedRowIds = signal([], ...(ngDevMode ? [{ debugName: "expandedRowIds" }] : /* istanbul ignore next */ []));
4733
4781
  /** When true, row expand/collapse is not written to user settings (restore in progress). */
4734
4782
  this.skipExpandedRowPersistence = false;
4783
+ /** Resolved take/skip for the current view (null until loaded from settings). */
4784
+ this.resolvedListPaging = signal(null, ...(ngDevMode ? [{ debugName: "resolvedListPaging" }] : /* istanbul ignore next */ []));
4785
+ /** When true, pager changes are not persisted (programmatic UI sync). */
4786
+ this.skipListPagingPersistence = false;
4787
+ this.listPersistenceMode = null;
4735
4788
  this.events$ = new Subject();
4736
4789
  //****************** Views ******************//
4737
4790
  this.views = computed(() => {
@@ -4941,12 +4994,70 @@ class AXPEntityMasterListViewModel {
4941
4994
  this.showRowIndexColumnEnabled.set(false);
4942
4995
  }
4943
4996
  }
4997
+ /**
4998
+ * Applies {@link AXPCommonSettings.EntityListPersistenceMode} for this list instance.
4999
+ * Call once when the list view model is created (before loading list UI state).
5000
+ */
5001
+ async initializeListPersistence() {
5002
+ const mode = await this.getListPersistenceMode();
5003
+ debugger;
5004
+ if (!shouldResetEntityListStateOnRouteEntry(mode)) {
5005
+ return;
5006
+ }
5007
+ const routeKey = this.settingEntityKey;
5008
+ let previousRouteKey = null;
5009
+ try {
5010
+ previousRouteKey = sessionStorage.getItem(ENTITY_LIST_ROUTE_CONTEXT_SESSION_KEY);
5011
+ }
5012
+ catch {
5013
+ previousRouteKey = null;
5014
+ }
5015
+ if (previousRouteKey !== routeKey) {
5016
+ await this.clearEntityListSettings();
5017
+ try {
5018
+ sessionStorage.setItem(ENTITY_LIST_ROUTE_CONTEXT_SESSION_KEY, routeKey);
5019
+ }
5020
+ catch {
5021
+ // sessionStorage may be unavailable
5022
+ }
5023
+ }
5024
+ }
5025
+ async getListPersistenceMode() {
5026
+ if (this.listPersistenceMode != null) {
5027
+ return this.listPersistenceMode;
5028
+ }
5029
+ const value = await this.settings.get(AXPCommonSettings.EntityListPersistenceMode);
5030
+ this.listPersistenceMode = normalizeEntityListPersistenceMode(value);
5031
+ return this.listPersistenceMode;
5032
+ }
5033
+ async shouldLoadPersistedListState() {
5034
+ return shouldLoadEntityListStateFromStorage(await this.getListPersistenceMode());
5035
+ }
5036
+ async shouldPersistListState() {
5037
+ return canPersistEntityListState(await this.getListPersistenceMode());
5038
+ }
5039
+ async clearEntityListSettings() {
5040
+ await this.settings.scope(AXPPlatformScope.User).update(this.settingEntityKey, (prev) => {
5041
+ if (!prev || typeof prev !== 'object') {
5042
+ return {};
5043
+ }
5044
+ const next = { ...prev };
5045
+ delete next['list'];
5046
+ return next;
5047
+ });
5048
+ }
4944
5049
  async applySettings() {
4945
- this.saveSettings('view');
5050
+ if (await this.shouldPersistListState()) {
5051
+ this.saveSettings('view');
5052
+ }
5053
+ if (!(await this.shouldLoadPersistedListState())) {
5054
+ this.loadListPagingFromViewSettings(null);
5055
+ this.expandedRowIds.set([]);
5056
+ return;
5057
+ }
4946
5058
  const listViewSetting = await this.settings.get(this.settingEntityKey);
4947
5059
  if (listViewSetting) {
4948
5060
  const columns = listViewSetting.list?.views?.[this.view().name]?.columns;
4949
- const pageSize = listViewSetting.list?.views?.[this.view().name]?.pageSize;
4950
5061
  const sorts = listViewSetting.list?.views?.[this.view().name]?.sorts;
4951
5062
  const filters = listViewSetting.list?.views?.[this.view().name]?.filters;
4952
5063
  let columnVisibilityMap;
@@ -4955,7 +5066,7 @@ class AXPEntityMasterListViewModel {
4955
5066
  columnVisibilityMap = new Map(columns.map((col) => [col.name, col.visible]));
4956
5067
  columnWidthsMap = new Map(columns.map((col) => [col.name, col.width]));
4957
5068
  }
4958
- // Do not set pageSize here to avoid triggering an extra load
5069
+ this.loadListPagingFromViewSettings(listViewSetting);
4959
5070
  if (columns && columnVisibilityMap && columnWidthsMap) {
4960
5071
  this.columns.update((prev) => prev
4961
5072
  .map((c) => {
@@ -4985,6 +5096,46 @@ class AXPEntityMasterListViewModel {
4985
5096
  this.expandedRowIds.set([]);
4986
5097
  }
4987
5098
  }
5099
+ else {
5100
+ this.loadListPagingFromViewSettings(null);
5101
+ }
5102
+ }
5103
+ async ensureListPagingResolved() {
5104
+ if (this.resolvedListPaging() != null) {
5105
+ return;
5106
+ }
5107
+ if (!(await this.shouldLoadPersistedListState())) {
5108
+ this.loadListPagingFromViewSettings(null);
5109
+ return;
5110
+ }
5111
+ const entitySetting = await this.settings.get(this.settingEntityKey);
5112
+ this.loadListPagingFromViewSettings(entitySetting);
5113
+ }
5114
+ getResolvedListPaging() {
5115
+ return (this.resolvedListPaging() ??
5116
+ normalizeListPaging(undefined, this.view().pageSize || this.dataSource.config.pageSize || 10));
5117
+ }
5118
+ applyPagingToDataSourceWithoutLoad() {
5119
+ applyDataSourcePagingWithoutLoad(this.dataSource, this.getResolvedListPaging());
5120
+ }
5121
+ saveListPaging(take, skip) {
5122
+ const paging = normalizeListPaging({ take, skip }, this.view().pageSize || 10);
5123
+ this.resolvedListPaging.set(paging);
5124
+ this.saveSettings('listPaging', paging);
5125
+ }
5126
+ resetListPagingSkip() {
5127
+ const paging = normalizeListPaging({ take: this.getResolvedListPaging().take, skip: 0 }, this.view().pageSize || 10);
5128
+ this.resolvedListPaging.set(paging);
5129
+ this.saveSettings('listPaging', paging);
5130
+ }
5131
+ loadListPagingFromViewSettings(entitySetting) {
5132
+ const viewSettings = entitySetting?.list?.views?.[this.view().name];
5133
+ const defaultTake = this.view().pageSize || 10;
5134
+ let paging = viewSettings?.paging;
5135
+ if (!paging && typeof viewSettings?.pageSize === 'number') {
5136
+ paging = { take: viewSettings.pageSize, skip: 0 };
5137
+ }
5138
+ this.resolvedListPaging.set(normalizeListPaging(paging, defaultTake));
4988
5139
  }
4989
5140
  getExpandedRowIds() {
4990
5141
  return this.expandedRowIds();
@@ -5022,13 +5173,17 @@ class AXPEntityMasterListViewModel {
5022
5173
  this.updateExpandedRowId(rowId, !wasExpanded);
5023
5174
  }
5024
5175
  async saveSettings(changesType, data) {
5176
+ if (!(await this.shouldPersistListState())) {
5177
+ return;
5178
+ }
5025
5179
  const updateSettings = (updateFn) => {
5026
5180
  this.settings.scope(AXPPlatformScope.User).update(this.settingEntityKey, updateFn);
5027
5181
  };
5028
5182
  switch (changesType) {
5029
- case 'columnSizes':
5183
+ case 'columnSizes': {
5184
+ const columnSizeData = data;
5030
5185
  updateSettings((prev) => {
5031
- const field = data.dataField.split('-')[1];
5186
+ const field = columnSizeData.dataField.split('-')[1];
5032
5187
  const newSettings = { ...prev };
5033
5188
  const existingColumns = prev?.list?.views?.[this.view().name]?.columns;
5034
5189
  const baseColumns = Array.isArray(existingColumns) && existingColumns.length
@@ -5040,7 +5195,7 @@ class AXPEntityMasterListViewModel {
5040
5195
  }));
5041
5196
  const updatedColumns = baseColumns.map((c) => ({
5042
5197
  ...c,
5043
- width: c.name === field ? data.width : c.width,
5198
+ width: c.name === field ? columnSizeData.width : c.width,
5044
5199
  }));
5045
5200
  const x = this.allAvailableColumns().map((c) => ({
5046
5201
  name: c.column?.options?.dataPath ?? c.name,
@@ -5051,10 +5206,12 @@ class AXPEntityMasterListViewModel {
5051
5206
  return newSettings;
5052
5207
  });
5053
5208
  break;
5054
- case 'columnOrders':
5209
+ }
5210
+ case 'columnOrders': {
5211
+ const orderedColumns = data;
5055
5212
  updateSettings((prev) => {
5056
5213
  const newSettings = { ...prev };
5057
- set(newSettings, `list.views.${this.view().name}.columns`, data.map((c) => ({
5214
+ set(newSettings, `list.views.${this.view().name}.columns`, orderedColumns.map((c) => ({
5058
5215
  name: c.column?.options?.dataPath ?? c.name,
5059
5216
  visible: c.visible,
5060
5217
  width: c.width,
@@ -5062,6 +5219,7 @@ class AXPEntityMasterListViewModel {
5062
5219
  return newSettings;
5063
5220
  });
5064
5221
  break;
5222
+ }
5065
5223
  case 'view':
5066
5224
  updateSettings((prev) => ({
5067
5225
  ...prev,
@@ -5081,6 +5239,26 @@ class AXPEntityMasterListViewModel {
5081
5239
  [this.view().name]: {
5082
5240
  ...prev?.list?.views?.[this.view().name],
5083
5241
  pageSize: data,
5242
+ paging: normalizeListPaging({
5243
+ take: data,
5244
+ skip: prev?.list?.views?.[this.view().name]?.paging?.skip,
5245
+ }, this.view().pageSize || 10),
5246
+ },
5247
+ },
5248
+ },
5249
+ }));
5250
+ break;
5251
+ case 'listPaging':
5252
+ updateSettings((prev) => ({
5253
+ ...prev,
5254
+ list: {
5255
+ ...prev?.list,
5256
+ views: {
5257
+ ...prev?.list?.views,
5258
+ [this.view().name]: {
5259
+ ...prev?.list?.views?.[this.view().name],
5260
+ paging: data,
5261
+ pageSize: data.take,
5084
5262
  },
5085
5263
  },
5086
5264
  },
@@ -5370,6 +5548,7 @@ class AXPEntityMasterListViewModel {
5370
5548
  this.applyViewFilters();
5371
5549
  }
5372
5550
  async applyFilterAndSort() {
5551
+ await this.ensureListPagingResolved();
5373
5552
  const sorts = this.sortedFields()
5374
5553
  .filter((sf) => sf.dir)
5375
5554
  .map((s) => ({ name: s.name, dir: s.dir }));
@@ -5379,10 +5558,12 @@ class AXPEntityMasterListViewModel {
5379
5558
  if (sortKey === this.lastAppliedSortKey && filterKey === this.lastAppliedFilterKey) {
5380
5559
  return; // No effective change; avoid redundant refresh
5381
5560
  }
5382
- // Determine if filters changed (for pagination reset)
5383
- const filtersChanged = filterKey !== this.lastAppliedFilterKey;
5561
+ const filtersChanged = this.lastAppliedFilterKey != null && filterKey !== this.lastAppliedFilterKey;
5384
5562
  this.lastAppliedSortKey = sortKey;
5385
5563
  this.lastAppliedFilterKey = filterKey;
5564
+ if (filtersChanged) {
5565
+ this.resetListPagingSkip();
5566
+ }
5386
5567
  this.dataSource.clearFilter();
5387
5568
  this.dataSource.sort(...sorts.map((s) => ({ dir: s.dir, field: s.name })));
5388
5569
  this.dataSource.filter(this.filterOperatorMiddleware.transformFilter({
@@ -5589,7 +5770,9 @@ class AXPEntityListViewModelFactory {
5589
5770
  this.layout.setNavigationLoading(true);
5590
5771
  const config = await this.entityService.resolve(moduleName, entityName);
5591
5772
  this.layout.setNavigationLoading(false);
5592
- return new AXPEntityMasterListViewModel(this.injector, config);
5773
+ const vm = new AXPEntityMasterListViewModel(this.injector, config);
5774
+ await vm.initializeListPersistence();
5775
+ return vm;
5593
5776
  }
5594
5777
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPEntityListViewModelFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5595
5778
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPEntityListViewModelFactory, providedIn: 'root' }); }
@@ -21198,5 +21381,5 @@ var getEntityDetails_query = /*#__PURE__*/Object.freeze({
21198
21381
  * Generated bundle index. Do not edit.
21199
21382
  */
21200
21383
 
21201
- export { AXMEntityCrudService, AXMEntityCrudServiceImpl, AXPCategoryTreeService, AXPCreateEntityCommand, AXPCreateEntityWorkflow, AXPDataSeederService, AXPDeleteEntityWorkflow, AXPEntitiesListDataSourceDefinition, AXPEntityApplyUpdatesAction, AXPEntityCategoryTreeSelectorComponent, AXPEntityCategoryWidget, AXPEntityCategoryWidgetColumnComponent, AXPEntityCategoryWidgetEditComponent, AXPEntityCategoryWidgetViewComponent, AXPEntityCommandTriggerViewModel, AXPEntityCreateEvent, AXPEntityCreatePopupAction, AXPEntityCreateSubmittedAction, AXPEntityCreateViewElementViewModel, AXPEntityCreateViewModelFactory, AXPEntityCreateViewSectionViewModel, AXPEntityDataProvider, AXPEntityDataProviderImpl, AXPEntityDataSelectorService, AXPEntityDefinitionProviderWidget, AXPEntityDefinitionProviderWidgetEditComponent, AXPEntityDefinitionRegistryService, AXPEntityDeletedEvent, AXPEntityDetailListViewModel, AXPEntityDetailPopoverComponent, AXPEntityDetailPopoverService, AXPEntityDetailViewModelFactory, AXPEntityDetailViewModelResolver, AXPEntityEventDispatcherService, AXPEntityEventsKeys, AXPEntityFormBuilderService, AXPEntityListTableService, AXPEntityListToolbarService, AXPEntityListViewColumnViewModel, AXPEntityListViewModelFactory, AXPEntityListViewModelResolver, AXPEntityListWidget, AXPEntityListWidgetViewComponent, AXPEntityMasterCreateViewModel, AXPEntityMasterListViewModel, AXPEntityMasterListViewQueryViewModel, AXPEntityMasterSingleElementViewModel, AXPEntityMasterSingleViewGroupViewModel, AXPEntityMasterSingleViewModel, AXPEntityMasterUpdateElementViewModel, AXPEntityMasterUpdateViewModel, AXPEntityMasterUpdateViewModelFactory, AXPEntityMiddleware, AXPEntityModifyConfirmedAction, AXPEntityModifyEvent, AXPEntityModifySectionPopupAction, AXPEntityModule, AXPEntityPerformDeleteAction, AXPEntityPreloadFiltersContainerComponent, AXPEntityPreloadFiltersViewModel, AXPEntityPreloadFiltersViewModelResolver, AXPEntityResolver, AXPEntityService, AXPEntityStorageService, AXPEntityUpdateViewSectionViewModel, AXPGetEntityDetailsQuery, AXPLayoutOrderingConfigService, AXPLookupWidget, AXPLookupWidgetColumnComponent, AXPLookupWidgetEditComponent, AXPLookupWidgetViewComponent, AXPMiddlewareAbortError, AXPMiddlewareEntityStorageService, AXPModifyEntitySectionWorkflow, AXPMultiSourceDefinitionProviderContext, AXPMultiSourceDefinitionProviderService, AXPMultiSourceFederatedSearchService, AXPMultiSourceSelectorComponent, AXPMultiSourceSelectorService, AXPMultiSourceSelectorWidget, AXPMultiSourceSelectorWidgetColumnComponent, AXPMultiSourceSelectorWidgetEditComponent, AXPMultiSourceSelectorWidgetViewComponent, AXPMultiSourceType, AXPOpenEntityDetailsCommand, AXPQuickEntityModifyPopupAction, AXPQuickModifyEntityWorkflow, AXPRelatedColumnEnrichmentService, AXPRelatedColumnMetadataResolver, AXPSelectorStructureWidget, AXPSelectorStructureWidgetColumnComponent, AXPSelectorStructureWidgetEditComponent, AXPSelectorStructureWidgetViewComponent, AXPShowDetailViewAction, AXPShowDetailsViewWorkflow, AXPShowListViewAction, AXPShowListViewWorkflow, AXPTruncatedBreadcrumbComponent, AXPUpdateEntityCommand, AXPViewEntityDetailsCommand, AXP_CATEGORY_TREE_ROOT_TITLE_I18N_KEY, AXP_DATA_SEEDER_TOKEN, AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER, AXP_ENTITY_MODIFIER, AXP_ENTITY_STORAGE_BACKEND, AXP_ENTITY_STORAGE_MIDDLEWARE, AXP_MULTI_SOURCE_DEFINITION_PROVIDER, DEFAULT_COLUMN_ORDER, DEFAULT_PAIR_SPAN_RULES, DEFAULT_PROPERTY_ORDER, DEFAULT_SECTION_ORDER, EntityBuilder, EntityDataAccessor, actionExists, axpCreateEntityAiToolInputDefaults, axpCreateEntityCommandDefinition, cloneLayoutArrays, collectEntityQuickSearchFieldPaths, collectNestedCreateHiddenProperties, collectNestedFieldPathsFromEntityColumns, collectQuickSearchPathsFromSingleEntityDefinition, columnOrderingMiddleware, columnOrderingMiddlewareProvider, columnWidthMiddleware, columnWidthMiddlewareProvider, computeEntityAggregates, createColumnOrderingMiddlewareProvider, createLayoutOrderingMiddlewareProvider, createModifierContext, defaultMultiLanguageMiddleware, defaultMultiLanguageMiddlewareProvider, detectEntityChanges, ensureLayoutPropertyView, ensureLayoutSection, ensureListActions, entityDetailsCreateActions, entityDetailsCreateActionsDeferredParent, entityDetailsCrudActions, entityDetailsEditAction, entityDetailsNewEditAction, entityDetailsReferenceCondition, entityDetailsReferenceCreateActions, entityDetailsSimpleCondition, entityMasterBulkDeleteAction, entityMasterCreateAction, entityMasterCrudActions, entityMasterDeleteAction, entityMasterEditAction, entityMasterRecordActions, entityMasterViewAction, entityOverrideDetailsViewAction, eventDispatchMiddleware, filterSortEntityRows, findEntityListRowDataInTree, getEntityListRowId, getMasterInterfacePropertySortKey, isAXPMiddlewareAbortError, isCategoryEntity, isCategoryFilter, layoutOrderingMiddlewareFactory, layoutOrderingMiddlewareProvider, mergeForeignKeyFieldIntoCreateActions, provideEntity, resolveEntityPluginDetailPageOrder, restoreEntityListExpandedRows, runEntityQuery, searchResultDescriptionMiddleware, searchResultDescriptionMiddlewareProvider };
21384
+ export { AXMEntityCrudService, AXMEntityCrudServiceImpl, AXPCategoryTreeService, AXPCreateEntityCommand, AXPCreateEntityWorkflow, AXPDataSeederService, AXPDeleteEntityWorkflow, AXPEntitiesListDataSourceDefinition, AXPEntityApplyUpdatesAction, AXPEntityCategoryTreeSelectorComponent, AXPEntityCategoryWidget, AXPEntityCategoryWidgetColumnComponent, AXPEntityCategoryWidgetEditComponent, AXPEntityCategoryWidgetViewComponent, AXPEntityCommandTriggerViewModel, AXPEntityCreateEvent, AXPEntityCreatePopupAction, AXPEntityCreateSubmittedAction, AXPEntityCreateViewElementViewModel, AXPEntityCreateViewModelFactory, AXPEntityCreateViewSectionViewModel, AXPEntityDataProvider, AXPEntityDataProviderImpl, AXPEntityDataSelectorService, AXPEntityDefinitionProviderWidget, AXPEntityDefinitionProviderWidgetEditComponent, AXPEntityDefinitionRegistryService, AXPEntityDeletedEvent, AXPEntityDetailListViewModel, AXPEntityDetailPopoverComponent, AXPEntityDetailPopoverService, AXPEntityDetailViewModelFactory, AXPEntityDetailViewModelResolver, AXPEntityEventDispatcherService, AXPEntityEventsKeys, AXPEntityFormBuilderService, AXPEntityListPersistenceModeDefault, AXPEntityListTableService, AXPEntityListToolbarService, AXPEntityListViewColumnViewModel, AXPEntityListViewModelFactory, AXPEntityListViewModelResolver, AXPEntityListWidget, AXPEntityListWidgetViewComponent, AXPEntityMasterCreateViewModel, AXPEntityMasterListViewModel, AXPEntityMasterListViewQueryViewModel, AXPEntityMasterSingleElementViewModel, AXPEntityMasterSingleViewGroupViewModel, AXPEntityMasterSingleViewModel, AXPEntityMasterUpdateElementViewModel, AXPEntityMasterUpdateViewModel, AXPEntityMasterUpdateViewModelFactory, AXPEntityMiddleware, AXPEntityModifyConfirmedAction, AXPEntityModifyEvent, AXPEntityModifySectionPopupAction, AXPEntityModule, AXPEntityPerformDeleteAction, AXPEntityPreloadFiltersContainerComponent, AXPEntityPreloadFiltersViewModel, AXPEntityPreloadFiltersViewModelResolver, AXPEntityResolver, AXPEntityService, AXPEntityStorageService, AXPEntityUpdateViewSectionViewModel, AXPGetEntityDetailsQuery, AXPLayoutOrderingConfigService, AXPLookupWidget, AXPLookupWidgetColumnComponent, AXPLookupWidgetEditComponent, AXPLookupWidgetViewComponent, AXPMiddlewareAbortError, AXPMiddlewareEntityStorageService, AXPModifyEntitySectionWorkflow, AXPMultiSourceDefinitionProviderContext, AXPMultiSourceDefinitionProviderService, AXPMultiSourceFederatedSearchService, AXPMultiSourceSelectorComponent, AXPMultiSourceSelectorService, AXPMultiSourceSelectorWidget, AXPMultiSourceSelectorWidgetColumnComponent, AXPMultiSourceSelectorWidgetEditComponent, AXPMultiSourceSelectorWidgetViewComponent, AXPMultiSourceType, AXPOpenEntityDetailsCommand, AXPQuickEntityModifyPopupAction, AXPQuickModifyEntityWorkflow, AXPRelatedColumnEnrichmentService, AXPRelatedColumnMetadataResolver, AXPSelectorStructureWidget, AXPSelectorStructureWidgetColumnComponent, AXPSelectorStructureWidgetEditComponent, AXPSelectorStructureWidgetViewComponent, AXPShowDetailViewAction, AXPShowDetailsViewWorkflow, AXPShowListViewAction, AXPShowListViewWorkflow, AXPTruncatedBreadcrumbComponent, AXPUpdateEntityCommand, AXPViewEntityDetailsCommand, AXP_CATEGORY_TREE_ROOT_TITLE_I18N_KEY, AXP_DATA_SEEDER_TOKEN, AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER, AXP_ENTITY_MODIFIER, AXP_ENTITY_STORAGE_BACKEND, AXP_ENTITY_STORAGE_MIDDLEWARE, AXP_MULTI_SOURCE_DEFINITION_PROVIDER, DEFAULT_COLUMN_ORDER, DEFAULT_PAIR_SPAN_RULES, DEFAULT_PROPERTY_ORDER, DEFAULT_SECTION_ORDER, ENTITY_LIST_ROUTE_CONTEXT_SESSION_KEY, EntityBuilder, EntityDataAccessor, actionExists, applyDataSourcePagingWithoutLoad, axpCreateEntityAiToolInputDefaults, axpCreateEntityCommandDefinition, canPersistEntityListState, cloneLayoutArrays, collectEntityQuickSearchFieldPaths, collectNestedCreateHiddenProperties, collectNestedFieldPathsFromEntityColumns, collectQuickSearchPathsFromSingleEntityDefinition, columnOrderingMiddleware, columnOrderingMiddlewareProvider, columnWidthMiddleware, columnWidthMiddlewareProvider, computeEntityAggregates, createColumnOrderingMiddlewareProvider, createLayoutOrderingMiddlewareProvider, createModifierContext, defaultMultiLanguageMiddleware, defaultMultiLanguageMiddlewareProvider, detectEntityChanges, ensureLayoutPropertyView, ensureLayoutSection, ensureListActions, entityDetailsCreateActions, entityDetailsCreateActionsDeferredParent, entityDetailsCrudActions, entityDetailsEditAction, entityDetailsNewEditAction, entityDetailsReferenceCondition, entityDetailsReferenceCreateActions, entityDetailsSimpleCondition, entityMasterBulkDeleteAction, entityMasterCreateAction, entityMasterCrudActions, entityMasterDeleteAction, entityMasterEditAction, entityMasterRecordActions, entityMasterViewAction, entityOverrideDetailsViewAction, eventDispatchMiddleware, filterSortEntityRows, findEntityListRowDataInTree, getDataSourcePageIndex, getEntityListRowId, getMasterInterfacePropertySortKey, isAXPMiddlewareAbortError, isCategoryEntity, isCategoryFilter, layoutOrderingMiddlewareFactory, layoutOrderingMiddlewareProvider, mergeForeignKeyFieldIntoCreateActions, normalizeEntityListPersistenceMode, normalizeListPaging, provideEntity, resolveEntityPluginDetailPageOrder, restoreEntityListExpandedRows, runEntityQuery, searchResultDescriptionMiddleware, searchResultDescriptionMiddlewareProvider, shouldLoadEntityListStateFromStorage, shouldResetEntityListStateOnRouteEntry };
21202
21385
  //# sourceMappingURL=acorex-platform-layout-entity.mjs.map