@acorex/platform 21.0.0-next.43 → 21.0.0-next.44

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.
@@ -3215,6 +3215,24 @@ class AXPEntityDataProviderImpl {
3215
3215
  insertOne(entity) {
3216
3216
  return this.storageService.insertOne(this.entityName, entity);
3217
3217
  }
3218
+ count(request) {
3219
+ return this.storageService.count(this.entityName, request);
3220
+ }
3221
+ queryAll(request, options) {
3222
+ return this.storageService.queryAll(this.entityName, request, options);
3223
+ }
3224
+ getMany(ids) {
3225
+ return this.storageService.getMany(this.entityName, ids);
3226
+ }
3227
+ exists(id) {
3228
+ return this.storageService.exists(this.entityName, id);
3229
+ }
3230
+ upsertOne(entity, options) {
3231
+ return this.storageService.upsertOne(this.entityName, entity, options);
3232
+ }
3233
+ aggregate(request, options) {
3234
+ return this.storageService.aggregate(this.entityName, request, options);
3235
+ }
3218
3236
  }
3219
3237
  class AXMEntityCrudService {
3220
3238
  }
@@ -3316,6 +3334,24 @@ class AXMEntityCrudServiceImpl {
3316
3334
  get storageService() {
3317
3335
  return this._storageService;
3318
3336
  }
3337
+ async count(request) {
3338
+ return this._entityDataProvider.count(request);
3339
+ }
3340
+ async queryAll(request, options) {
3341
+ return this._entityDataProvider.queryAll(request, options);
3342
+ }
3343
+ async getMany(ids) {
3344
+ return this._entityDataProvider.getMany(ids);
3345
+ }
3346
+ async exists(id) {
3347
+ return this._entityDataProvider.exists(id);
3348
+ }
3349
+ async upsertOne(entity, options) {
3350
+ return this._entityDataProvider.upsertOne(entity, options);
3351
+ }
3352
+ async aggregate(request, options) {
3353
+ return this._entityDataProvider.aggregate(request, options);
3354
+ }
3319
3355
  async custom(request) { }
3320
3356
  }
3321
3357
 
@@ -6343,6 +6379,225 @@ const AXPEntityPreloadFiltersViewModelResolver = async (route, state) => {
6343
6379
  };
6344
6380
  //#endregion
6345
6381
 
6382
+ //#region ---- Path / numeric helpers ----
6383
+ function getPath(obj, path) {
6384
+ if (obj == null || path.length === 0) {
6385
+ return undefined;
6386
+ }
6387
+ const parts = path.split('.');
6388
+ let cur = obj;
6389
+ for (const p of parts) {
6390
+ if (cur == null || typeof cur !== 'object') {
6391
+ return undefined;
6392
+ }
6393
+ cur = cur[p];
6394
+ }
6395
+ return cur;
6396
+ }
6397
+ function toNumber(value) {
6398
+ if (typeof value === 'number' && Number.isFinite(value)) {
6399
+ return value;
6400
+ }
6401
+ if (typeof value === 'string' && value.trim().length > 0) {
6402
+ const n = Number(value);
6403
+ return Number.isFinite(n) ? n : null;
6404
+ }
6405
+ return null;
6406
+ }
6407
+ function defaultAlias(measure, index) {
6408
+ if (measure.alias?.trim()) {
6409
+ return measure.alias.trim();
6410
+ }
6411
+ if (measure.reducer === 'count') {
6412
+ return index === 0 ? 'count' : `count_${index}`;
6413
+ }
6414
+ const field = measure.field ?? 'value';
6415
+ const safeField = field.replace(/\./g, '_');
6416
+ return `${measure.reducer}_${safeField}`;
6417
+ }
6418
+ /**
6419
+ * Pure aggregation over already-filtered plain rows (e.g. outputs of {@link filterSortEntityRows}).
6420
+ */
6421
+ function computeEntityAggregates(rows, request) {
6422
+ const groupBy = request.groupBy ?? [];
6423
+ const measures = request.measures ?? [];
6424
+ if (measures.length === 0) {
6425
+ return [];
6426
+ }
6427
+ const groups = new Map();
6428
+ const stableGroupKey = (row) => {
6429
+ const parts = groupBy.map((path) => getPath(row, path));
6430
+ return JSON.stringify(parts);
6431
+ };
6432
+ for (const row of rows) {
6433
+ const k = stableGroupKey(row);
6434
+ let bucket = groups.get(k);
6435
+ if (!bucket) {
6436
+ bucket = {
6437
+ keyParts: groupBy.map((path) => getPath(row, path)),
6438
+ rows: [],
6439
+ };
6440
+ groups.set(k, bucket);
6441
+ }
6442
+ bucket.rows.push(row);
6443
+ }
6444
+ const result = [];
6445
+ for (const bucket of groups.values()) {
6446
+ const out = {};
6447
+ groupBy.forEach((field, i) => {
6448
+ out[field] = bucket.keyParts[i];
6449
+ });
6450
+ measures.forEach((measure, index) => {
6451
+ const alias = defaultAlias(measure, index);
6452
+ const gRows = bucket.rows;
6453
+ if (measure.reducer === 'count') {
6454
+ out[alias] = gRows.length;
6455
+ return;
6456
+ }
6457
+ const fieldPath = measure.field;
6458
+ if (!fieldPath) {
6459
+ out[alias] = null;
6460
+ return;
6461
+ }
6462
+ const nums = gRows.map((r) => toNumber(getPath(r, fieldPath))).filter((n) => n !== null);
6463
+ switch (measure.reducer) {
6464
+ case 'sum':
6465
+ out[alias] = nums.reduce((a, b) => a + b, 0);
6466
+ break;
6467
+ case 'min':
6468
+ out[alias] = nums.length ? Math.min(...nums) : null;
6469
+ break;
6470
+ case 'max':
6471
+ out[alias] = nums.length ? Math.max(...nums) : null;
6472
+ break;
6473
+ case 'avg':
6474
+ out[alias] = nums.length ? nums.reduce((a, b) => a + b, 0) / nums.length : null;
6475
+ break;
6476
+ default:
6477
+ out[alias] = null;
6478
+ }
6479
+ });
6480
+ result.push(out);
6481
+ }
6482
+ return result;
6483
+ }
6484
+ //#endregion
6485
+
6486
+ //#endregion
6487
+ //#region ---- Pure helpers ----
6488
+ /**
6489
+ * Fields where `contains` means hierarchical category membership (expand to descendants).
6490
+ * Excludes e.g. `roleIds`, which uses array membership only and must use normal filter logic.
6491
+ */
6492
+ function isCategoryContainsFieldName(field) {
6493
+ if (field === 'categoryIds') {
6494
+ return true;
6495
+ }
6496
+ if (typeof field === 'string' && field.endsWith('Ids') && field !== 'roleIds') {
6497
+ return true;
6498
+ }
6499
+ return false;
6500
+ }
6501
+ /**
6502
+ * Check if the entity is a category entity (ends with 'Category').
6503
+ */
6504
+ function isCategoryEntity(entityName) {
6505
+ return entityName.endsWith('Category');
6506
+ }
6507
+ /**
6508
+ * Check if the filter is a category filter (contains operator on categoryIds field).
6509
+ * Handles both simple filters and compound filters.
6510
+ */
6511
+ function isCategoryFilter(filter) {
6512
+ if (filter?.operator?.type === 'contains' && isCategoryContainsFieldName(filter.field)) {
6513
+ return true;
6514
+ }
6515
+ if (filter?.logic && filter?.filters && Array.isArray(filter.filters)) {
6516
+ return filter.filters.some((nestedFilter) => nestedFilter?.operator?.type === 'contains' && isCategoryContainsFieldName(nestedFilter.field));
6517
+ }
6518
+ return false;
6519
+ }
6520
+ //#endregion
6521
+ //#region ---- Query execution ----
6522
+ /**
6523
+ * Apply recursive category filtering: entities that belong to the category or any of its children.
6524
+ */
6525
+ async function applyRecursiveCategoryFilter(result, filter, entityName, getAllChildCategoryIds) {
6526
+ let categoryFilter = filter;
6527
+ let otherFilters = [];
6528
+ if (filter?.logic && filter?.filters && Array.isArray(filter.filters)) {
6529
+ const categoryFilterIndex = filter.filters.findIndex((f) => f?.operator?.type === 'contains' && isCategoryContainsFieldName(f.field));
6530
+ if (categoryFilterIndex !== -1) {
6531
+ categoryFilter = filter.filters[categoryFilterIndex];
6532
+ otherFilters = filter.filters.filter((_, index) => index !== categoryFilterIndex);
6533
+ }
6534
+ }
6535
+ if (!categoryFilter) {
6536
+ return applyFilterArray(result, [filter]);
6537
+ }
6538
+ const categoryId = categoryFilter.value;
6539
+ const categoryField = categoryFilter.field;
6540
+ const allCategoryIds = await getAllChildCategoryIds(categoryId, entityName);
6541
+ let filteredResult = result.filter((item) => {
6542
+ const categoryIds = item[categoryField];
6543
+ if (!categoryIds)
6544
+ return false;
6545
+ const itemCategoryIds = Array.isArray(categoryIds) ? categoryIds : [categoryIds];
6546
+ return itemCategoryIds.some((itemCategoryId) => allCategoryIds.includes(itemCategoryId));
6547
+ });
6548
+ if (otherFilters.length > 0) {
6549
+ filteredResult = applyFilterArray(filteredResult, otherFilters);
6550
+ }
6551
+ return filteredResult;
6552
+ }
6553
+ /**
6554
+ * Calculate childrenCount for each category entity when missing.
6555
+ */
6556
+ async function calculateChildrenCounts(items, entityName, getDirectChildCount) {
6557
+ return Promise.all(items.map(async (item) => {
6558
+ if (typeof item.childrenCount === 'number') {
6559
+ return { ...item };
6560
+ }
6561
+ const childrenCount = await getDirectChildCount(item.id, entityName);
6562
+ return { ...item, childrenCount };
6563
+ }));
6564
+ }
6565
+ /**
6566
+ * Loads raw rows for an entity and applies the same sorting and filtering as {@link runEntityQuery},
6567
+ * without pagination.
6568
+ */
6569
+ async function filterSortEntityRows(entityName, request, adapters) {
6570
+ let result = await adapters.getRawAll(entityName);
6571
+ if (request.sort && request.sort.length) {
6572
+ result = applySortArray(result, request.sort);
6573
+ }
6574
+ if (request.filter && isCategoryFilter(request.filter)) {
6575
+ result = await applyRecursiveCategoryFilter(result, request.filter, entityName, adapters.getAllChildCategoryIds);
6576
+ }
6577
+ else {
6578
+ result = applyFilterArray(result, request.filter ? [request.filter] : []);
6579
+ }
6580
+ if (isCategoryEntity(entityName)) {
6581
+ result = await calculateChildrenCounts(result, entityName, adapters.getDirectChildCount);
6582
+ }
6583
+ return result;
6584
+ }
6585
+ /**
6586
+ * Shared entity query logic: sort, filter (including recursive category filter), childrenCount, pagination.
6587
+ */
6588
+ async function runEntityQuery(entityName, request, adapters) {
6589
+ const rows = await filterSortEntityRows(entityName, request, adapters);
6590
+ const skip = request.skip ?? 0;
6591
+ const take = request.take ?? 0;
6592
+ return {
6593
+ total: rows.length,
6594
+ items: rows.slice(skip, skip + take),
6595
+ };
6596
+ }
6597
+ //#endregion
6598
+
6599
+ //#endregion
6600
+
6346
6601
  //#region ---- Imports ----
6347
6602
  //#endregion
6348
6603
  //#region ---- Constants ----
@@ -19396,6 +19651,9 @@ function getDedupKey(op, entityName, init) {
19396
19651
  if (op === 'getOne' && init?.id !== undefined) {
19397
19652
  return `getOne:${entityName}:${String(init.id)}`;
19398
19653
  }
19654
+ if (op === 'exists' && init?.id !== undefined) {
19655
+ return `exists:${entityName}:${String(init.id)}`;
19656
+ }
19399
19657
  if (op === 'getAll') {
19400
19658
  return `getAll:${entityName}`;
19401
19659
  }
@@ -19403,6 +19661,20 @@ function getDedupKey(op, entityName, init) {
19403
19661
  const r = init.request;
19404
19662
  return `query:${entityName}:${r.skip ?? 0}:${r.take ?? 0}:${JSON.stringify(r.filter ?? null)}:${JSON.stringify(r.sort ?? null)}:${JSON.stringify(r.params ?? null)}`;
19405
19663
  }
19664
+ if (op === 'count' && init?.request) {
19665
+ const r = init.request;
19666
+ return `count:${entityName}:${JSON.stringify(r.filter ?? null)}:${JSON.stringify(r.sort ?? null)}`;
19667
+ }
19668
+ if (op === 'queryAll' && init?.request) {
19669
+ const r = init.request;
19670
+ return `queryAll:${entityName}:${JSON.stringify(r.filter ?? null)}:${JSON.stringify(r.sort ?? null)}:${JSON.stringify(init.queryAllOptions ?? null)}`;
19671
+ }
19672
+ if (op === 'getMany' && init?.ids) {
19673
+ return `getMany:${entityName}:${init.ids.map(String).join(',')}`;
19674
+ }
19675
+ if (op === 'aggregate' && init?.aggregateRequest) {
19676
+ return `aggregate:${entityName}:${JSON.stringify(init.aggregateRequest)}:${JSON.stringify(init.aggregateOptions ?? null)}`;
19677
+ }
19406
19678
  return '';
19407
19679
  }
19408
19680
  class AXPMiddlewareEntityStorageService extends AXPEntityStorageService {
@@ -19462,6 +19734,13 @@ class AXPMiddlewareEntityStorageService extends AXPEntityStorageService {
19462
19734
  insertOne: (name, e) => this.backend.insertOne(name, e),
19463
19735
  query: (name, request) => this.backend.query(name, request),
19464
19736
  updateOne: (name, id, data) => this.backend.updateOne(name, id, data),
19737
+ deleteOne: (name, id) => this.backend.deleteOne(name, id),
19738
+ count: (name, request) => this.backend.count(name, request),
19739
+ queryAll: (name, request, options) => this.backend.queryAll(name, request, options),
19740
+ getMany: (name, ids) => this.backend.getMany(name, ids),
19741
+ exists: (name, id) => this.backend.exists(name, id),
19742
+ upsertOne: (name, entity, options) => this.backend.upsertOne(name, entity, options),
19743
+ aggregate: (name, request, options) => this.backend.aggregate(name, request, options),
19465
19744
  },
19466
19745
  ...init,
19467
19746
  };
@@ -19533,6 +19812,100 @@ class AXPMiddlewareEntityStorageService extends AXPEntityStorageService {
19533
19812
  const ctx = this.createCtx('query', entityName, { request });
19534
19813
  return this.run(ctx, () => this.backend.query(ctx.entityName, request));
19535
19814
  }
19815
+ async count(entityName, request) {
19816
+ const filterSortRequest = { ...request, skip: 0, take: 0 };
19817
+ const key = getDedupKey('count', entityName, { request: filterSortRequest });
19818
+ if (key) {
19819
+ const existing = this.inFlight.get(key);
19820
+ if (existing) {
19821
+ return existing;
19822
+ }
19823
+ const promise = this.runWithDedup(key, () => {
19824
+ const ctx = this.createCtx('count', entityName, { request: filterSortRequest });
19825
+ return this.run(ctx, () => this.backend.count(ctx.entityName, request));
19826
+ });
19827
+ this.inFlight.set(key, promise);
19828
+ return promise;
19829
+ }
19830
+ const ctx = this.createCtx('count', entityName, { request: filterSortRequest });
19831
+ return this.run(ctx, () => this.backend.count(ctx.entityName, request));
19832
+ }
19833
+ async queryAll(entityName, request, options) {
19834
+ const filterSortRequest = { ...request, skip: 0, take: 0 };
19835
+ const key = getDedupKey('queryAll', entityName, { request: filterSortRequest, queryAllOptions: options });
19836
+ if (key) {
19837
+ const existing = this.inFlight.get(key);
19838
+ if (existing) {
19839
+ return existing;
19840
+ }
19841
+ const promise = this.runWithDedup(key, () => {
19842
+ const ctx = this.createCtx('queryAll', entityName, { request: filterSortRequest });
19843
+ return this.run(ctx, () => this.backend.queryAll(ctx.entityName, request, options));
19844
+ });
19845
+ this.inFlight.set(key, promise);
19846
+ return promise;
19847
+ }
19848
+ const ctx = this.createCtx('queryAll', entityName, { request: filterSortRequest });
19849
+ return this.run(ctx, () => this.backend.queryAll(ctx.entityName, request, options));
19850
+ }
19851
+ async getMany(entityName, ids) {
19852
+ const key = getDedupKey('getMany', entityName, { ids: ids });
19853
+ if (key) {
19854
+ const existing = this.inFlight.get(key);
19855
+ if (existing) {
19856
+ return existing;
19857
+ }
19858
+ const promise = this.runWithDedup(key, () => {
19859
+ const ctx = this.createCtx('getMany', entityName);
19860
+ return this.run(ctx, () => this.backend.getMany(ctx.entityName, ids));
19861
+ });
19862
+ this.inFlight.set(key, promise);
19863
+ return promise;
19864
+ }
19865
+ const ctx = this.createCtx('getMany', entityName);
19866
+ return this.run(ctx, () => this.backend.getMany(ctx.entityName, ids));
19867
+ }
19868
+ async exists(entityName, id) {
19869
+ const key = getDedupKey('exists', entityName, { id });
19870
+ if (key) {
19871
+ const existing = this.inFlight.get(key);
19872
+ if (existing) {
19873
+ return existing;
19874
+ }
19875
+ const promise = this.runWithDedup(key, () => {
19876
+ const ctx = this.createCtx('exists', entityName, { id });
19877
+ return this.run(ctx, () => this.backend.exists(ctx.entityName, id));
19878
+ });
19879
+ this.inFlight.set(key, promise);
19880
+ return promise;
19881
+ }
19882
+ const ctx = this.createCtx('exists', entityName, { id });
19883
+ return this.run(ctx, () => this.backend.exists(ctx.entityName, id));
19884
+ }
19885
+ async upsertOne(entityName, entity, options) {
19886
+ const ctx = this.createCtx('upsertOne', entityName, { data: entity });
19887
+ ctx.locals.set('upsertOptions', options);
19888
+ return this.run(ctx, () => this.backend.upsertOne(ctx.entityName, entity, options));
19889
+ }
19890
+ async aggregate(entityName, request, options) {
19891
+ const key = getDedupKey('aggregate', entityName, { aggregateRequest: request, aggregateOptions: options });
19892
+ if (key) {
19893
+ const existing = this.inFlight.get(key);
19894
+ if (existing) {
19895
+ return existing;
19896
+ }
19897
+ const promise = this.runWithDedup(key, () => {
19898
+ const ctx = this.createCtx('aggregate', entityName);
19899
+ ctx.locals.set('aggregateRequest', request);
19900
+ ctx.locals.set('aggregateOptions', options);
19901
+ return this.run(ctx, () => this.backend.aggregate(ctx.entityName, request, options));
19902
+ });
19903
+ this.inFlight.set(key, promise);
19904
+ return promise;
19905
+ }
19906
+ const ctx = this.createCtx('aggregate', entityName);
19907
+ return this.run(ctx, () => this.backend.aggregate(ctx.entityName, request, options));
19908
+ }
19536
19909
  async runWithDedup(key, fn) {
19537
19910
  try {
19538
19911
  return await fn();
@@ -20493,5 +20866,5 @@ var getEntityDetails_query = /*#__PURE__*/Object.freeze({
20493
20866
  * Generated bundle index. Do not edit.
20494
20867
  */
20495
20868
 
20496
- 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, 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, getMasterInterfacePropertySortKey, isAXPMiddlewareAbortError, layoutOrderingMiddlewareFactory, layoutOrderingMiddlewareProvider, mergeForeignKeyFieldIntoCreateActions, provideEntity, resolveEntityPluginDetailPageOrder, searchResultDescriptionMiddleware, searchResultDescriptionMiddlewareProvider };
20869
+ 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, getMasterInterfacePropertySortKey, isAXPMiddlewareAbortError, isCategoryEntity, isCategoryFilter, layoutOrderingMiddlewareFactory, layoutOrderingMiddlewareProvider, mergeForeignKeyFieldIntoCreateActions, provideEntity, resolveEntityPluginDetailPageOrder, runEntityQuery, searchResultDescriptionMiddleware, searchResultDescriptionMiddlewareProvider };
20497
20870
  //# sourceMappingURL=acorex-platform-layout-entity.mjs.map