@acorex/platform 21.0.0-next.67 → 21.0.0-next.70
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-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +14 -2
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-entity-attachments-page.component-BaTS183I.mjs → acorex-platform-layout-entity-attachments-page.component-D8iQnT-R.mjs} +7 -19
- package/fesm2022/acorex-platform-layout-entity-attachments-page.component-D8iQnT-R.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-entity.mjs +881 -414
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +26 -2
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +1 -0
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widgets.mjs +12 -12
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/package.json +1 -1
- package/types/acorex-platform-common.d.ts +10 -0
- package/types/acorex-platform-layout-entity.d.ts +518 -518
- package/types/acorex-platform-layout-views.d.ts +34 -1
- package/types/acorex-platform-layout-widget-core.d.ts +1 -0
- package/types/acorex-platform-layout-widgets.d.ts +4 -10
- package/fesm2022/acorex-platform-layout-entity-attachments-page.component-BaTS183I.mjs.map +0 -1
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import * as _acorex_platform_core from '@acorex/platform/core';
|
|
2
|
-
import { AXPExecuteCommandResult, AXPMetaData, AXPDataSourceDefinitionProvider, AXPDataSourceDefinition, AXPGridLayoutOptions, AXPMultiLanguageString, AXPBreadcrumbItem, AXPFilterQuery, AXPFilterDefinition, AXPExecuteCommand, AXPQueryRequest, AXPPagedListResult, AXPUserReference, AXPCategoryEntity as AXPCategoryEntity$1, AXPEntityOp, AXPMiddlewareErrorResponse, AXHighlightService, AXPExpression,
|
|
2
|
+
import { AXPExecuteCommandResult, AXPMetaData, AXPDataSourceDefinitionProvider, AXPDataSourceDefinition, AXPGridLayoutOptions, AXPMultiLanguageString, AXPBreadcrumbItem, AXPFilterQuery, AXPFilterDefinition, AXPExecuteCommand, AXPQueryRequest, AXPPagedListResult, AXPUserReference, AXPCategoryEntity as AXPCategoryEntity$1, AXPEntityOp, AXPMiddlewareErrorResponse, AXHighlightService, AXPExpression, AXPColumnQuery, AXPSortDefinition, AXPDeviceService, AXPBroadcastEventService, AXPActionMenuItem, AXPFileListItem, AXPContextChangeEvent } from '@acorex/platform/core';
|
|
3
3
|
import { AXPCommand, AXPQueryExecutor, AXPCommandService, AXPQuery } from '@acorex/platform/runtime';
|
|
4
4
|
import * as _angular_core from '@angular/core';
|
|
5
5
|
import { ElementRef, InjectionToken, Injector, Type, EnvironmentProviders, OnInit, ChangeDetectorRef, OnDestroy } from '@angular/core';
|
|
6
6
|
import { AXPopoverComponent } from '@acorex/components/popover';
|
|
7
7
|
import * as i4 from '@acorex/platform/layout/widget-core';
|
|
8
|
-
import { AXPWidgetNode, AXPWidgetColumnNode, AXPWidgetCoreService, AXPColumnWidgetComponent, AXPValueWidgetComponent, AXPWidgetConfig,
|
|
8
|
+
import { AXPWidgetNode, AXPWidgetColumnNode, AXPWidgetCoreService, AXPColumnWidgetComponent, AXPValueWidgetComponent, AXPWidgetConfig, AXPWidgetRendererDirective, AXPWidgetCoreElementAPI } from '@acorex/platform/layout/widget-core';
|
|
9
9
|
import { AXPPreloadFiltersApplyEvent, AXPColumnItemListItem, AXPDataSelectorRowActionsHandler, AXPCategoryTreeDataSource, AXPDataSelectorAllowCreate } from '@acorex/platform/layout/components';
|
|
10
10
|
import { AXPPageLayoutBaseComponent } from '@acorex/platform/layout/views';
|
|
11
|
-
import { AXStyleColorType, AXDataSource, AXDataSourceFilterOption, AXDataSourceSortOption, AXValueChangedEvent, AXClickEvent, AXFocusEvent, AXHtmlEvent } from '@acorex/cdk/common';
|
|
12
11
|
import * as _acorex_platform_common from '@acorex/platform/common';
|
|
13
|
-
import { AXPEntityCommandScope, AXPEntity, AXPEntityAction, AXPEntityProperty, AXPEntityTableColumn, AXPCardField,
|
|
12
|
+
import { AXPRelatedEntity, AXPEntityPage, AXPEntityCommandScope, AXPEntity, AXPEntityAction, AXPEntityProperty, AXPEntityTableColumn, AXPCardField, AXPEntityPropertyLayoutConfig, AXPEntitySectionView, AXPEntityPropertyCreateView, AXPQueryView, AXPEntityMasterListLayoutType, AXPEntityMasterListDisplayMode, AXPEntityMasterListLayoutOption, AXPEntityPropertyView, AXPCategoryEntity, AXPEntityPropertyGroup, AXPEntityMasterCreateLayoutView, AXPEntityMasterUpdateLayoutView, AXPEntityMasterSingleLayoutView, AXPEntityMasterListView, AXPEntityDetailListView, AXPQueryFilter, AXCFileUploaderCapabilities, AXCFileUploaderAction } from '@acorex/platform/common';
|
|
13
|
+
export { AXPEntityDefinitionCrudService, AXP_ENTITY_DEFINITION_CRUD_SERVICE } from '@acorex/platform/domain';
|
|
14
|
+
import { AXStyleColorType, AXDataSource, AXDataSourceFilterOption, AXDataSourceSortOption, AXValueChangedEvent, AXClickEvent, AXFocusEvent, AXHtmlEvent } from '@acorex/cdk/common';
|
|
14
15
|
import * as i1 from '@angular/router';
|
|
15
16
|
import { ResolveFn } from '@angular/router';
|
|
16
17
|
import * as rxjs from 'rxjs';
|
|
17
18
|
import { Subject } from 'rxjs';
|
|
18
|
-
export { AXPEntityDefinitionCrudService, AXP_ENTITY_DEFINITION_CRUD_SERVICE } from '@acorex/platform/domain';
|
|
19
19
|
import * as i3 from '@acorex/platform/workflow';
|
|
20
20
|
import { AXPWorkflowService, AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext } from '@acorex/platform/workflow';
|
|
21
21
|
import * as i5 from '@acorex/platform/layout/builder';
|
|
@@ -28,9 +28,9 @@ import { AXFormatService } from '@acorex/core/format';
|
|
|
28
28
|
import { AXTagBoxComponent } from '@acorex/components/tag-box';
|
|
29
29
|
import * as _acorex_core_translation from '@acorex/core/translation';
|
|
30
30
|
import { AXTranslationService } from '@acorex/core/translation';
|
|
31
|
+
import { AXPProviderSelectWidgetEditBase, AXPDataListWidgetComponentOptions } from '@acorex/platform/layout/widgets';
|
|
31
32
|
import * as _acorex_platform_layout_entity from '@acorex/platform/layout/entity';
|
|
32
33
|
import { AXFileService } from '@acorex/core/file';
|
|
33
|
-
import { AXPProviderSelectWidgetEditBase, AXPDataListWidgetComponentOptions } from '@acorex/platform/layout/widgets';
|
|
34
34
|
|
|
35
35
|
declare class AXPCreateEntityCommand implements AXPCommand<any, any> {
|
|
36
36
|
private entityForm;
|
|
@@ -266,6 +266,57 @@ declare class AXPEntityPreloadFiltersContainerComponent extends AXPPageLayoutBas
|
|
|
266
266
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityPreloadFiltersContainerComponent, "axp-entity-preload-filters-container", never, {}, {}, never, never, true, never>;
|
|
267
267
|
}
|
|
268
268
|
|
|
269
|
+
/**
|
|
270
|
+
* Data source definition provider that returns all entity names
|
|
271
|
+
* from entity loaders' list() (const.ts in each module).
|
|
272
|
+
*/
|
|
273
|
+
declare class AXPEntitiesListDataSourceDefinition implements AXPDataSourceDefinitionProvider {
|
|
274
|
+
private readonly entityResolver;
|
|
275
|
+
items(): Promise<AXPDataSourceDefinition[]>;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
/**
|
|
279
|
+
* Built-in entity detail tabs from plugins. Sidebar order (after related page-list / page-detail
|
|
280
|
+
* tabs): meta-data-builder → attachments → documents → comments → history.
|
|
281
|
+
*/
|
|
282
|
+
type EntityDetailPluginPageSlot = 'meta-data-builder' | 'attachments' | 'documents' | 'comments' | 'history';
|
|
283
|
+
/** Identifies an `entity.pages` entry when skipping its order during recomputation. */
|
|
284
|
+
interface SkipEntityComponentPageRef {
|
|
285
|
+
componentKey: string;
|
|
286
|
+
/** When set, only the page with this `field` is skipped (e.g. attachments / meta-data per field). */
|
|
287
|
+
field?: string;
|
|
288
|
+
}
|
|
289
|
+
interface ResolveEntityPluginDetailPageOrderOptions {
|
|
290
|
+
/** Component key of the page being added or updated (used to count sibling tabs in the same slot). */
|
|
291
|
+
componentKey: string;
|
|
292
|
+
/**
|
|
293
|
+
* Ignore this page when counting siblings / recomputing (the page currently being updated).
|
|
294
|
+
*/
|
|
295
|
+
skipPage?: SkipEntityComponentPageRef;
|
|
296
|
+
/**
|
|
297
|
+
* Field name for multi-page slots (`attachments`, `meta-data-builder`). Omit for single-tab slots.
|
|
298
|
+
*/
|
|
299
|
+
field?: string;
|
|
300
|
+
/** Gap between auto-assigned related tab orders. Default: 10. */
|
|
301
|
+
relatedOrderStep?: number;
|
|
302
|
+
/** Minimum start of the plugin zone (after related tabs). Default: 100_000. */
|
|
303
|
+
pluginZoneFloor?: number;
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Resolves `layout.order` for a built-in plugin detail tab (`entity.pages`).
|
|
307
|
+
*
|
|
308
|
+
* 1. Assigns finite `layout.order` values to related `page-list` / `page-detail` rows that omit
|
|
309
|
+
* `order` (the composer otherwise treats them as +Infinity).
|
|
310
|
+
* 2. Places plugin tabs in a fixed relative order: meta-data-builder → attachments → documents →
|
|
311
|
+
* comments → history, after all related tabs.
|
|
312
|
+
*/
|
|
313
|
+
declare function resolveEntityPluginDetailPageOrder(input: {
|
|
314
|
+
relatedEntities?: AXPRelatedEntity[];
|
|
315
|
+
pages?: Array<AXPEntityPage & {
|
|
316
|
+
field?: string;
|
|
317
|
+
}>;
|
|
318
|
+
}, slot: EntityDetailPluginPageSlot, options: ResolveEntityPluginDetailPageOrderOptions): number;
|
|
319
|
+
|
|
269
320
|
interface AXPDataSeeder {
|
|
270
321
|
seed(): Promise<void>;
|
|
271
322
|
}
|
|
@@ -277,15 +328,6 @@ declare class AXPDataSeederService {
|
|
|
277
328
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPDataSeederService>;
|
|
278
329
|
}
|
|
279
330
|
|
|
280
|
-
/**
|
|
281
|
-
* Data source definition provider that returns all entity names
|
|
282
|
-
* from entity loaders' list() (const.ts in each module).
|
|
283
|
-
*/
|
|
284
|
-
declare class AXPEntitiesListDataSourceDefinition implements AXPDataSourceDefinitionProvider {
|
|
285
|
-
private readonly entityResolver;
|
|
286
|
-
items(): Promise<AXPDataSourceDefinition[]>;
|
|
287
|
-
}
|
|
288
|
-
|
|
289
331
|
declare class AXPEntityCommandTriggerViewModel {
|
|
290
332
|
priority: 'primary' | 'secondary' | 'none';
|
|
291
333
|
order: number;
|
|
@@ -393,6 +435,32 @@ declare const AXPEntityEventsKeys: {
|
|
|
393
435
|
REFRESH_DATA: string;
|
|
394
436
|
};
|
|
395
437
|
|
|
438
|
+
/**
|
|
439
|
+
* Entity Event Dispatcher - A wrapper for entity-specific events
|
|
440
|
+
* Handles pattern-based dispatching for entity operations with wildcard support
|
|
441
|
+
*/
|
|
442
|
+
declare class AXPEntityEventDispatcherService {
|
|
443
|
+
private readonly eventService;
|
|
444
|
+
dispatchEntityEvent(operation: 'inserted' | 'updated' | 'deleted', entityName: string, data: any): Promise<void>;
|
|
445
|
+
private getAllMatchingEventKeys;
|
|
446
|
+
private findMatchingWildcardKeys;
|
|
447
|
+
private matchesEntityPattern;
|
|
448
|
+
private generateEventKeys;
|
|
449
|
+
dispatchInserted(entityName: string, data: any): Promise<void>;
|
|
450
|
+
dispatchUpdated(entityName: string, data: any): Promise<void>;
|
|
451
|
+
dispatchDeleted(entityName: string, data: any): Promise<void>;
|
|
452
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityEventDispatcherService, never>;
|
|
453
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityEventDispatcherService>;
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
/**
|
|
457
|
+
* Sort key for entries in `interfaces.master.{create|update|single}.properties`.
|
|
458
|
+
* Uses `layout.order` when set and finite; otherwise the property index in that list.
|
|
459
|
+
*/
|
|
460
|
+
declare function getMasterInterfacePropertySortKey(interfaceRow: {
|
|
461
|
+
layout?: AXPEntityPropertyLayoutConfig | undefined;
|
|
462
|
+
} | undefined, indexInMasterInterfaceList: number): number;
|
|
463
|
+
|
|
396
464
|
interface AXPEntityListExpandRowRef {
|
|
397
465
|
data: Record<string, unknown>;
|
|
398
466
|
}
|
|
@@ -436,24 +504,6 @@ declare function shouldLoadEntityListStateFromStorage(mode: AXPEntityListPersist
|
|
|
436
504
|
declare function shouldResetEntityListStateOnRouteEntry(mode: AXPEntityListPersistenceMode): boolean;
|
|
437
505
|
declare const ENTITY_LIST_ROUTE_CONTEXT_SESSION_KEY = "axp-entity-list-route-context";
|
|
438
506
|
|
|
439
|
-
/**
|
|
440
|
-
* Entity Event Dispatcher - A wrapper for entity-specific events
|
|
441
|
-
* Handles pattern-based dispatching for entity operations with wildcard support
|
|
442
|
-
*/
|
|
443
|
-
declare class AXPEntityEventDispatcherService {
|
|
444
|
-
private readonly eventService;
|
|
445
|
-
dispatchEntityEvent(operation: 'inserted' | 'updated' | 'deleted', entityName: string, data: any): Promise<void>;
|
|
446
|
-
private getAllMatchingEventKeys;
|
|
447
|
-
private findMatchingWildcardKeys;
|
|
448
|
-
private matchesEntityPattern;
|
|
449
|
-
private generateEventKeys;
|
|
450
|
-
dispatchInserted(entityName: string, data: any): Promise<void>;
|
|
451
|
-
dispatchUpdated(entityName: string, data: any): Promise<void>;
|
|
452
|
-
dispatchDeleted(entityName: string, data: any): Promise<void>;
|
|
453
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityEventDispatcherService, never>;
|
|
454
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityEventDispatcherService>;
|
|
455
|
-
}
|
|
456
|
-
|
|
457
507
|
declare class AXPEntityCreateViewSectionViewModel {
|
|
458
508
|
private entity;
|
|
459
509
|
private section;
|
|
@@ -941,52 +991,6 @@ declare class AXPEntityMasterUpdateViewModelFactory {
|
|
|
941
991
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityMasterUpdateViewModelFactory>;
|
|
942
992
|
}
|
|
943
993
|
|
|
944
|
-
type AXPCollectEntityQuickSearchPathsResolver = (moduleName: string, entityName: string) => Promise<AXPEntity | null>;
|
|
945
|
-
/**
|
|
946
|
-
* Lodash-get paths for quick search from a single entity definition: string-like property names
|
|
947
|
-
* plus lookup `expose[].target` paths (e.g. `brand.title`).
|
|
948
|
-
*/
|
|
949
|
-
declare function collectQuickSearchPathsFromSingleEntityDefinition(entity: AXPEntity | null | undefined): string[];
|
|
950
|
-
/**
|
|
951
|
-
* Adds dotted paths from master columns (`name` or `options.dataPath`), e.g. `person.fullName`, `jobDefinition.title`.
|
|
952
|
-
*/
|
|
953
|
-
declare function collectNestedFieldPathsFromEntityColumns(entity: AXPEntity | null | undefined): string[];
|
|
954
|
-
/**
|
|
955
|
-
* Collects lodash-get field paths used for mock/API quick search (`contains` / OR filters):
|
|
956
|
-
* host properties and lookup expose targets, dotted column paths, and merge-detail related entities
|
|
957
|
-
* prefixed with the related entity merge `persistence.dataPath` (e.g. `person.firstName`).
|
|
958
|
-
*/
|
|
959
|
-
declare function collectEntityQuickSearchFieldPaths(entity: AXPEntity | null | undefined, resolveRelatedDefinition: AXPCollectEntityQuickSearchPathsResolver): Promise<string[]>;
|
|
960
|
-
|
|
961
|
-
declare class AXPEntityPreloadFiltersViewModel {
|
|
962
|
-
private injector;
|
|
963
|
-
private config;
|
|
964
|
-
readonly entityDef: AXPEntity;
|
|
965
|
-
private readonly widgetResolver;
|
|
966
|
-
constructor(injector: Injector, config: AXPEntity);
|
|
967
|
-
/**
|
|
968
|
-
* Entity title
|
|
969
|
-
*/
|
|
970
|
-
title: _angular_core.Signal<string>;
|
|
971
|
-
/**
|
|
972
|
-
* Entity description
|
|
973
|
-
*/
|
|
974
|
-
description: _angular_core.Signal<string | null>;
|
|
975
|
-
/**
|
|
976
|
-
* All filter definitions for properties with preload enabled
|
|
977
|
-
*/
|
|
978
|
-
preloadFiltersDef: _angular_core.Signal<AXPFilterDefinition[]>;
|
|
979
|
-
/**
|
|
980
|
-
* Required filter definitions only
|
|
981
|
-
*/
|
|
982
|
-
requiredFiltersDef: _angular_core.Signal<AXPFilterDefinition[]>;
|
|
983
|
-
/**
|
|
984
|
-
* Serialize filter values to plain objects (remove signals, functions, etc.)
|
|
985
|
-
*/
|
|
986
|
-
serializeFilters(filters: any): AXPFilterQuery[];
|
|
987
|
-
}
|
|
988
|
-
declare const AXPEntityPreloadFiltersViewModelResolver: ResolveFn<Promise<AXPEntityPreloadFiltersViewModel>>;
|
|
989
|
-
|
|
990
994
|
type AXPEntityMasterListCardLayout = NonNullable<NonNullable<AXPEntityMasterListView['layouts']>['card']>;
|
|
991
995
|
interface AXPEntityModifierContext {
|
|
992
996
|
readonly entity: AXPEntity;
|
|
@@ -1162,6 +1166,52 @@ declare function createModifierContext(entity: AXPEntity): AXPEntityModifierCont
|
|
|
1162
1166
|
|
|
1163
1167
|
declare const AXP_ENTITY_MODIFIER: InjectionToken<AXPEntityModifierProvider[]>;
|
|
1164
1168
|
|
|
1169
|
+
declare class AXPEntityPreloadFiltersViewModel {
|
|
1170
|
+
private injector;
|
|
1171
|
+
private config;
|
|
1172
|
+
readonly entityDef: AXPEntity;
|
|
1173
|
+
private readonly widgetResolver;
|
|
1174
|
+
constructor(injector: Injector, config: AXPEntity);
|
|
1175
|
+
/**
|
|
1176
|
+
* Entity title
|
|
1177
|
+
*/
|
|
1178
|
+
title: _angular_core.Signal<string>;
|
|
1179
|
+
/**
|
|
1180
|
+
* Entity description
|
|
1181
|
+
*/
|
|
1182
|
+
description: _angular_core.Signal<string | null>;
|
|
1183
|
+
/**
|
|
1184
|
+
* All filter definitions for properties with preload enabled
|
|
1185
|
+
*/
|
|
1186
|
+
preloadFiltersDef: _angular_core.Signal<AXPFilterDefinition[]>;
|
|
1187
|
+
/**
|
|
1188
|
+
* Required filter definitions only
|
|
1189
|
+
*/
|
|
1190
|
+
requiredFiltersDef: _angular_core.Signal<AXPFilterDefinition[]>;
|
|
1191
|
+
/**
|
|
1192
|
+
* Serialize filter values to plain objects (remove signals, functions, etc.)
|
|
1193
|
+
*/
|
|
1194
|
+
serializeFilters(filters: any): AXPFilterQuery[];
|
|
1195
|
+
}
|
|
1196
|
+
declare const AXPEntityPreloadFiltersViewModelResolver: ResolveFn<Promise<AXPEntityPreloadFiltersViewModel>>;
|
|
1197
|
+
|
|
1198
|
+
type AXPCollectEntityQuickSearchPathsResolver = (moduleName: string, entityName: string) => Promise<AXPEntity | null>;
|
|
1199
|
+
/**
|
|
1200
|
+
* Lodash-get paths for quick search from a single entity definition: string-like property names
|
|
1201
|
+
* plus lookup `expose[].target` paths (e.g. `brand.title`).
|
|
1202
|
+
*/
|
|
1203
|
+
declare function collectQuickSearchPathsFromSingleEntityDefinition(entity: AXPEntity | null | undefined): string[];
|
|
1204
|
+
/**
|
|
1205
|
+
* Adds dotted paths from master columns (`name` or `options.dataPath`), e.g. `person.fullName`, `jobDefinition.title`.
|
|
1206
|
+
*/
|
|
1207
|
+
declare function collectNestedFieldPathsFromEntityColumns(entity: AXPEntity | null | undefined): string[];
|
|
1208
|
+
/**
|
|
1209
|
+
* Collects lodash-get field paths used for mock/API quick search (`contains` / OR filters):
|
|
1210
|
+
* host properties and lookup expose targets, dotted column paths, and merge-detail related entities
|
|
1211
|
+
* prefixed with the related entity merge `persistence.dataPath` (e.g. `person.firstName`).
|
|
1212
|
+
*/
|
|
1213
|
+
declare function collectEntityQuickSearchFieldPaths(entity: AXPEntity | null | undefined, resolveRelatedDefinition: AXPCollectEntityQuickSearchPathsResolver): Promise<string[]>;
|
|
1214
|
+
|
|
1165
1215
|
interface AXPEntityPreloadEntity {
|
|
1166
1216
|
module: string;
|
|
1167
1217
|
entity: string;
|
|
@@ -1570,145 +1620,43 @@ declare class AXPEntityResolver {
|
|
|
1570
1620
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityResolver>;
|
|
1571
1621
|
}
|
|
1572
1622
|
|
|
1623
|
+
declare class AXPAttachmentsPluginModule {
|
|
1624
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPAttachmentsPluginModule, never>;
|
|
1625
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXPAttachmentsPluginModule, never, never, never>;
|
|
1626
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXPAttachmentsPluginModule>;
|
|
1627
|
+
}
|
|
1628
|
+
|
|
1629
|
+
declare class AXPEntityModule {
|
|
1630
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityModule, never>;
|
|
1631
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXPEntityModule, never, [typeof i1.RouterModule, typeof AXPAttachmentsPluginModule, typeof i3.AXPWorkflowModule, typeof i4.AXPWidgetCoreModule, typeof i5.LayoutBuilderModule], never>;
|
|
1632
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXPEntityModule>;
|
|
1633
|
+
}
|
|
1634
|
+
|
|
1573
1635
|
/**
|
|
1574
|
-
*
|
|
1575
|
-
*
|
|
1636
|
+
* Data accessor for entity operations.
|
|
1637
|
+
* Provides methods to query and execute commands with smart resolution:
|
|
1638
|
+
* 1. Checks entity definition queries/commands first
|
|
1639
|
+
* 2. Falls back to CRUD service if not defined
|
|
1576
1640
|
*/
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1641
|
+
declare class EntityDataAccessor<TKey = any, TDetailDto extends AXPEntityDetailDto<TKey> = AXPEntityModel<TKey>, TListItemDto extends AXPEntityListItemDto<TKey> = TDetailDto, TCreateDto extends AXPEntityCreateDto = Omit<TDetailDto, 'id'>, TUpdateDto extends AXPEntityUpdateDto<TKey> = TDetailDto> {
|
|
1642
|
+
private module;
|
|
1643
|
+
private entity;
|
|
1644
|
+
private entityRegistry;
|
|
1645
|
+
private queryExecutor;
|
|
1646
|
+
private commandService;
|
|
1647
|
+
private crudService;
|
|
1648
|
+
private entityDef;
|
|
1649
|
+
private entityDefPromise;
|
|
1650
|
+
constructor(module: string, entity: string, entityRegistry: AXPEntityDefinitionRegistryService, queryExecutor: AXPQueryExecutor, commandService: AXPCommandService);
|
|
1587
1651
|
/**
|
|
1588
|
-
*
|
|
1652
|
+
* Resolves the entity definition lazily and caches it.
|
|
1653
|
+
* @returns The resolved entity definition
|
|
1589
1654
|
*/
|
|
1590
|
-
|
|
1655
|
+
private resolveEntityDef;
|
|
1591
1656
|
/**
|
|
1592
|
-
*
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
/** Gap between auto-assigned related tab orders. Default: 10. */
|
|
1596
|
-
relatedOrderStep?: number;
|
|
1597
|
-
/** Minimum start of the plugin zone (after related tabs). Default: 100_000. */
|
|
1598
|
-
pluginZoneFloor?: number;
|
|
1599
|
-
}
|
|
1600
|
-
/**
|
|
1601
|
-
* Resolves `layout.order` for a built-in plugin detail tab (`entity.pages`).
|
|
1602
|
-
*
|
|
1603
|
-
* 1. Assigns finite `layout.order` values to related `page-list` / `page-detail` rows that omit
|
|
1604
|
-
* `order` (the composer otherwise treats them as +Infinity).
|
|
1605
|
-
* 2. Places plugin tabs in a fixed relative order: meta-data-builder → attachments → documents →
|
|
1606
|
-
* comments → history, after all related tabs.
|
|
1607
|
-
*/
|
|
1608
|
-
declare function resolveEntityPluginDetailPageOrder(input: {
|
|
1609
|
-
relatedEntities?: AXPRelatedEntity[];
|
|
1610
|
-
pages?: Array<AXPEntityPage & {
|
|
1611
|
-
field?: string;
|
|
1612
|
-
}>;
|
|
1613
|
-
}, slot: EntityDetailPluginPageSlot, options: ResolveEntityPluginDetailPageOrderOptions): number;
|
|
1614
|
-
|
|
1615
|
-
/**
|
|
1616
|
-
* Sort key for entries in `interfaces.master.{create|update|single}.properties`.
|
|
1617
|
-
* Uses `layout.order` when set and finite; otherwise the property index in that list.
|
|
1618
|
-
*/
|
|
1619
|
-
declare function getMasterInterfacePropertySortKey(interfaceRow: {
|
|
1620
|
-
layout?: AXPEntityPropertyLayoutConfig | undefined;
|
|
1621
|
-
} | undefined, indexInMasterInterfaceList: number): number;
|
|
1622
|
-
|
|
1623
|
-
/** How to show attachments in entity single/create/update: as a section (default) or as a separate page. */
|
|
1624
|
-
type AttachmentsDisplayMode = 'section' | 'page';
|
|
1625
|
-
/** Component key used when display is 'page'. Register a page component with this key via AXP_PAGE_COMPONENT_PROVIDER. */
|
|
1626
|
-
declare const ATTACHMENTS_PAGE_COMPONENT_KEY = "entity-attachments-page";
|
|
1627
|
-
type AttachmentLocalizedText = string | Record<string, string>;
|
|
1628
|
-
type AttachmentSectionOptions = {
|
|
1629
|
-
order?: number;
|
|
1630
|
-
title?: AttachmentLocalizedText;
|
|
1631
|
-
};
|
|
1632
|
-
type AttachmentsEditDialogOptions = {
|
|
1633
|
-
mode?: 'manual' | 'auto';
|
|
1634
|
-
fields?: {
|
|
1635
|
-
name?: boolean;
|
|
1636
|
-
title?: boolean;
|
|
1637
|
-
description?: boolean;
|
|
1638
|
-
};
|
|
1639
|
-
};
|
|
1640
|
-
type AttachmentsPluginOptions = {
|
|
1641
|
-
field?: string;
|
|
1642
|
-
title?: AttachmentLocalizedText;
|
|
1643
|
-
display?: AttachmentsDisplayMode;
|
|
1644
|
-
accept?: string;
|
|
1645
|
-
multiple?: boolean;
|
|
1646
|
-
fileEditable?: boolean;
|
|
1647
|
-
/** When true, attachments field and list action run in read-only mode (widget option `readonly`). */
|
|
1648
|
-
'readonly'?: boolean;
|
|
1649
|
-
/** When true (default), registers a list column for the attachments field. Set false to hide the column. */
|
|
1650
|
-
showListColumn?: boolean;
|
|
1651
|
-
/** When true (default), registers the list upload action. Set false to omit the action. */
|
|
1652
|
-
showListAction?: boolean;
|
|
1653
|
-
/** Section options when display is 'section'. */
|
|
1654
|
-
section?: AttachmentSectionOptions;
|
|
1655
|
-
/** File edit dialog options. */
|
|
1656
|
-
editDialog?: AttachmentsEditDialogOptions;
|
|
1657
|
-
plugins?: {
|
|
1658
|
-
name: string;
|
|
1659
|
-
options?: unknown;
|
|
1660
|
-
}[];
|
|
1661
|
-
/** Widget option `showBorder`. Default false for attachments (section and page). */
|
|
1662
|
-
showBorder?: boolean;
|
|
1663
|
-
/** Widget option `showAddItemButton`. Default false when display is `page`, true for section. */
|
|
1664
|
-
showAddItemButton?: boolean;
|
|
1665
|
-
};
|
|
1666
|
-
/**
|
|
1667
|
-
* Attachments plugin.
|
|
1668
|
-
* - Always ensures an attachments group and property; when display is 'section' (default), adds a section to single/create/update layouts.
|
|
1669
|
-
* - When display is 'page', adds a page to entity.pages with ATTACHMENTS_PAGE_COMPONENT_KEY; register a page component with that key via AXP_PAGE_COMPONENT_PROVIDER.
|
|
1670
|
-
* - List column and list upload action can be turned off with `showListColumn` / `showListAction` (both default true).
|
|
1671
|
-
* - Uses provided accept/multiple/fileEditable; others are fixed.
|
|
1672
|
-
*/
|
|
1673
|
-
declare const attachmentsPlugin: AXPEntityActionPlugin;
|
|
1674
|
-
|
|
1675
|
-
declare class AXPAttachmentsPluginModule {
|
|
1676
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPAttachmentsPluginModule, never>;
|
|
1677
|
-
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXPAttachmentsPluginModule, never, never, never>;
|
|
1678
|
-
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXPAttachmentsPluginModule>;
|
|
1679
|
-
}
|
|
1680
|
-
|
|
1681
|
-
declare class AXPEntityModule {
|
|
1682
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityModule, never>;
|
|
1683
|
-
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXPEntityModule, never, [typeof i1.RouterModule, typeof AXPAttachmentsPluginModule, typeof i3.AXPWorkflowModule, typeof i4.AXPWidgetCoreModule, typeof i5.LayoutBuilderModule], never>;
|
|
1684
|
-
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXPEntityModule>;
|
|
1685
|
-
}
|
|
1686
|
-
|
|
1687
|
-
/**
|
|
1688
|
-
* Data accessor for entity operations.
|
|
1689
|
-
* Provides methods to query and execute commands with smart resolution:
|
|
1690
|
-
* 1. Checks entity definition queries/commands first
|
|
1691
|
-
* 2. Falls back to CRUD service if not defined
|
|
1692
|
-
*/
|
|
1693
|
-
declare class EntityDataAccessor<TKey = any, TDetailDto extends AXPEntityDetailDto<TKey> = AXPEntityModel<TKey>, TListItemDto extends AXPEntityListItemDto<TKey> = TDetailDto, TCreateDto extends AXPEntityCreateDto = Omit<TDetailDto, 'id'>, TUpdateDto extends AXPEntityUpdateDto<TKey> = TDetailDto> {
|
|
1694
|
-
private module;
|
|
1695
|
-
private entity;
|
|
1696
|
-
private entityRegistry;
|
|
1697
|
-
private queryExecutor;
|
|
1698
|
-
private commandService;
|
|
1699
|
-
private crudService;
|
|
1700
|
-
private entityDef;
|
|
1701
|
-
private entityDefPromise;
|
|
1702
|
-
constructor(module: string, entity: string, entityRegistry: AXPEntityDefinitionRegistryService, queryExecutor: AXPQueryExecutor, commandService: AXPCommandService);
|
|
1703
|
-
/**
|
|
1704
|
-
* Resolves the entity definition lazily and caches it.
|
|
1705
|
-
* @returns The resolved entity definition
|
|
1706
|
-
*/
|
|
1707
|
-
private resolveEntityDef;
|
|
1708
|
-
/**
|
|
1709
|
-
* Gets a single entity by key.
|
|
1710
|
-
* @param key - The entity key
|
|
1711
|
-
* @returns The entity detail or null if not found
|
|
1657
|
+
* Gets a single entity by key.
|
|
1658
|
+
* @param key - The entity key
|
|
1659
|
+
* @returns The entity detail or null if not found
|
|
1712
1660
|
*/
|
|
1713
1661
|
byKey(key: TKey): Promise<TDetailDto | null>;
|
|
1714
1662
|
/**
|
|
@@ -1791,6 +1739,58 @@ declare class AXPEntityService {
|
|
|
1791
1739
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityService>;
|
|
1792
1740
|
}
|
|
1793
1741
|
|
|
1742
|
+
/** How to show attachments in entity single/create/update: as a section (default) or as a separate page. */
|
|
1743
|
+
type AttachmentsDisplayMode = 'section' | 'page';
|
|
1744
|
+
/** Component key used when display is 'page'. Register a page component with this key via AXP_PAGE_COMPONENT_PROVIDER. */
|
|
1745
|
+
declare const ATTACHMENTS_PAGE_COMPONENT_KEY = "entity-attachments-page";
|
|
1746
|
+
type AttachmentLocalizedText = string | Record<string, string>;
|
|
1747
|
+
type AttachmentSectionOptions = {
|
|
1748
|
+
order?: number;
|
|
1749
|
+
title?: AttachmentLocalizedText;
|
|
1750
|
+
};
|
|
1751
|
+
type AttachmentsEditDialogOptions = {
|
|
1752
|
+
mode?: 'manual' | 'auto';
|
|
1753
|
+
fields?: {
|
|
1754
|
+
name?: boolean;
|
|
1755
|
+
title?: boolean;
|
|
1756
|
+
description?: boolean;
|
|
1757
|
+
};
|
|
1758
|
+
};
|
|
1759
|
+
type AttachmentsPluginOptions = {
|
|
1760
|
+
field?: string;
|
|
1761
|
+
title?: AttachmentLocalizedText;
|
|
1762
|
+
display?: AttachmentsDisplayMode;
|
|
1763
|
+
accept?: string;
|
|
1764
|
+
multiple?: boolean;
|
|
1765
|
+
fileEditable?: boolean;
|
|
1766
|
+
/** When true, attachments field and list action run in read-only mode (widget option `readonly`). */
|
|
1767
|
+
'readonly'?: boolean;
|
|
1768
|
+
/** When true (default), registers a list column for the attachments field. Set false to hide the column. */
|
|
1769
|
+
showListColumn?: boolean;
|
|
1770
|
+
/** When true (default), registers the list upload action. Set false to omit the action. */
|
|
1771
|
+
showListAction?: boolean;
|
|
1772
|
+
/** Section options when display is 'section'. */
|
|
1773
|
+
section?: AttachmentSectionOptions;
|
|
1774
|
+
/** File edit dialog options. */
|
|
1775
|
+
editDialog?: AttachmentsEditDialogOptions;
|
|
1776
|
+
plugins?: {
|
|
1777
|
+
name: string;
|
|
1778
|
+
options?: unknown;
|
|
1779
|
+
}[];
|
|
1780
|
+
/** Widget option `showBorder`. Default false for attachments (section and page). */
|
|
1781
|
+
showBorder?: boolean;
|
|
1782
|
+
/** Widget option `showAddItemButton`. Default false when display is `page`, true for section. */
|
|
1783
|
+
showAddItemButton?: boolean;
|
|
1784
|
+
};
|
|
1785
|
+
/**
|
|
1786
|
+
* Attachments plugin.
|
|
1787
|
+
* - Always ensures an attachments group and property; when display is 'section' (default), adds a section to single/create/update layouts.
|
|
1788
|
+
* - When display is 'page', adds a page to entity.pages with ATTACHMENTS_PAGE_COMPONENT_KEY; register a page component with that key via AXP_PAGE_COMPONENT_PROVIDER.
|
|
1789
|
+
* - List column and list upload action can be turned off with `showListColumn` / `showListAction` (both default true).
|
|
1790
|
+
* - Uses provided accept/multiple/fileEditable; others are fixed.
|
|
1791
|
+
*/
|
|
1792
|
+
declare const attachmentsPlugin: AXPEntityActionPlugin;
|
|
1793
|
+
|
|
1794
1794
|
interface AXPEntityStorageContext<TKey = any, TDetailDto extends AXPEntityDetailDto<TKey> = any, TListItemDto extends AXPEntityListItemDto<TKey> = any, TCreateDto extends AXPEntityCreateDto = any, TUpdateDto extends AXPEntityUpdateDto<TKey> = any> {
|
|
1795
1795
|
op: AXPEntityOp;
|
|
1796
1796
|
entityName: string;
|
|
@@ -2700,71 +2700,320 @@ declare class AXPTruncatedBreadcrumbComponent implements OnDestroy {
|
|
|
2700
2700
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPTruncatedBreadcrumbComponent, "axp-truncated-breadcrumb", never, { "sections": { "alias": "sections"; "required": false; "isSignal": true; }; "characterLimit": { "alias": "characterLimit"; "required": false; "isSignal": true; }; "sectionLimit": { "alias": "sectionLimit"; "required": false; "isSignal": true; }; "separatorIcon": { "alias": "separatorIcon"; "required": false; "isSignal": true; }; "ellipsisIcon": { "alias": "ellipsisIcon"; "required": false; "isSignal": true; }; "eyeIcon": { "alias": "eyeIcon"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2701
2701
|
}
|
|
2702
2702
|
|
|
2703
|
-
declare
|
|
2704
|
-
|
|
2705
|
-
|
|
2706
|
-
|
|
2707
|
-
|
|
2708
|
-
|
|
2709
|
-
|
|
2710
|
-
|
|
2711
|
-
|
|
2712
|
-
}, AXPFileListItem> {
|
|
2713
|
-
private readonly layoutBuilder;
|
|
2714
|
-
private readonly translationService;
|
|
2715
|
-
private readonly hooks;
|
|
2716
|
-
execute(input: {
|
|
2717
|
-
file: AXPFileListItem;
|
|
2718
|
-
plugins?: {
|
|
2719
|
-
name: string;
|
|
2720
|
-
options?: unknown;
|
|
2721
|
-
}[];
|
|
2722
|
-
excludePlugins?: string[];
|
|
2723
|
-
enableTitleDescription?: boolean;
|
|
2724
|
-
isNewFile?: boolean;
|
|
2725
|
-
}): Promise<AXPExecuteCommandResult<AXPFileListItem>>;
|
|
2726
|
-
private showEditDialog;
|
|
2703
|
+
declare const AXPEntityDefinitionProviderWidget: AXPWidgetConfig;
|
|
2704
|
+
declare module '@acorex/platform/layout/widget-core' {
|
|
2705
|
+
interface AXPWidgetTypesMap {
|
|
2706
|
+
entityDefinitionProvider: 'entity-definition-provider-editor';
|
|
2707
|
+
}
|
|
2708
|
+
}
|
|
2709
|
+
|
|
2710
|
+
declare class AXPEntityDefinitionProviderWidgetEditComponent extends AXPProviderSelectWidgetEditBase {
|
|
2711
|
+
private readonly entityRegistry;
|
|
2727
2712
|
/**
|
|
2728
|
-
*
|
|
2713
|
+
* Last applied module filter (from context) to avoid redundant reloads.
|
|
2729
2714
|
*/
|
|
2730
|
-
private
|
|
2715
|
+
private readonly lastModuleFilterKey;
|
|
2731
2716
|
/**
|
|
2732
|
-
*
|
|
2717
|
+
* Reloads entity options when `filterModuleField` changes in form context (not only via `widget.refresh()`).
|
|
2733
2718
|
*/
|
|
2734
|
-
private
|
|
2719
|
+
private readonly reloadWhenModuleContextChanges;
|
|
2735
2720
|
/**
|
|
2736
|
-
*
|
|
2721
|
+
* Options:
|
|
2722
|
+
* - `filterModuleField`: sibling context field name (e.g. `entityListModule`); when set, only entities in that module are listed.
|
|
2723
|
+
* - `valueFormat`: `fullKey` (`module.name`, default) or `entityName` (short name only, for menus that store `entityListRef.entity`).
|
|
2737
2724
|
*/
|
|
2738
|
-
|
|
2739
|
-
|
|
2740
|
-
|
|
2725
|
+
protected loadDataSourceRows(): Promise<Array<{
|
|
2726
|
+
value: string;
|
|
2727
|
+
title: string;
|
|
2728
|
+
}>>;
|
|
2729
|
+
refresh(): void;
|
|
2730
|
+
/**
|
|
2731
|
+
* Reads sibling field from context store data (same shape as `lodash/get` paths).
|
|
2732
|
+
*/
|
|
2733
|
+
private readModuleFromContext;
|
|
2734
|
+
/**
|
|
2735
|
+
* Resolves a sibling field path relative to the current widget's parent path.
|
|
2736
|
+
*/
|
|
2737
|
+
private resolveSiblingContextPath;
|
|
2738
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityDefinitionProviderWidgetEditComponent, never>;
|
|
2739
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityDefinitionProviderWidgetEditComponent, "axp-entity-definition-provider-widget-edit", never, {}, {}, never, never, true, never>;
|
|
2741
2740
|
}
|
|
2742
2741
|
|
|
2743
|
-
declare class
|
|
2744
|
-
private
|
|
2745
|
-
private
|
|
2746
|
-
private
|
|
2747
|
-
private
|
|
2748
|
-
isLoading: _angular_core.WritableSignal<boolean>;
|
|
2749
|
-
private fileTypes;
|
|
2750
|
-
onRemove: _angular_core.OutputEmitterRef<AXPFileListItem>;
|
|
2751
|
-
onRevert: _angular_core.OutputEmitterRef<AXPFileListItem>;
|
|
2752
|
-
onRename: _angular_core.OutputEmitterRef<AXPFileListItem>;
|
|
2753
|
-
readonly: _angular_core.InputSignal<boolean>;
|
|
2754
|
-
fileEditable: _angular_core.InputSignal<boolean>;
|
|
2755
|
-
/** When true, edit dialog shows name, title and description fields. Default false. */
|
|
2756
|
-
enableTitleDescription: _angular_core.InputSignal<boolean>;
|
|
2757
|
-
multiple: _angular_core.InputSignal<boolean>;
|
|
2758
|
-
files: _angular_core.InputSignal<AXPFileListItem[]>;
|
|
2759
|
-
plugins: _angular_core.InputSignal<{
|
|
2760
|
-
name: string;
|
|
2761
|
-
options?: unknown;
|
|
2762
|
-
}[] | undefined>;
|
|
2763
|
-
excludePlugins: _angular_core.InputSignal<string[] | undefined>;
|
|
2764
|
-
capabilities: _angular_core.InputSignal<AXCFileUploaderCapabilities | undefined>;
|
|
2742
|
+
declare class AXPEntityListTableService {
|
|
2743
|
+
private readonly workflow;
|
|
2744
|
+
private readonly commandService;
|
|
2745
|
+
private readonly expressionEvaluator;
|
|
2746
|
+
private readonly settings;
|
|
2765
2747
|
/**
|
|
2766
|
-
*
|
|
2767
|
-
|
|
2748
|
+
* Convert Entity to List Widget Options
|
|
2749
|
+
*/
|
|
2750
|
+
convertEntityToListOptions(entity: AXPEntity, options: any, allActions: AXPEntityCommandTriggerViewModel[]): Promise<AXPDataListWidgetComponentOptions>;
|
|
2751
|
+
/**
|
|
2752
|
+
* Create DataSource for Entity
|
|
2753
|
+
*/
|
|
2754
|
+
private createDataSource;
|
|
2755
|
+
/**
|
|
2756
|
+
* Convert Properties to Columns
|
|
2757
|
+
*/
|
|
2758
|
+
private createColumnsFromProperties;
|
|
2759
|
+
/**
|
|
2760
|
+
* Map EntityTableColumn to ListWidgetColumn
|
|
2761
|
+
*/
|
|
2762
|
+
private mapEntityColumnToWidgetColumn;
|
|
2763
|
+
/**
|
|
2764
|
+
* Convert Entity Actions to Row Commands
|
|
2765
|
+
*/
|
|
2766
|
+
private createRowCommands;
|
|
2767
|
+
/**
|
|
2768
|
+
* Wraps string values with AXP_ROW_EXPR_PREFIX so widget-renderer does not
|
|
2769
|
+
* evaluate them (it only treats {{ ... }} as expressions). Data-list will
|
|
2770
|
+
* unwrap and evaluate per row with row data. Only used for secondary commands.
|
|
2771
|
+
*/
|
|
2772
|
+
private wrapRowExpr;
|
|
2773
|
+
/**
|
|
2774
|
+
* Check if entity has Selected Scope Actions
|
|
2775
|
+
*/
|
|
2776
|
+
private hasSelectedScopeActions;
|
|
2777
|
+
private evaluateExpressions;
|
|
2778
|
+
/**
|
|
2779
|
+
* Handle execution of a row command (shared by double-click and command handlers)
|
|
2780
|
+
*/
|
|
2781
|
+
private handleRowCommand;
|
|
2782
|
+
/**
|
|
2783
|
+
* When a related entity list declares `excludeProperties`, row commands bypass the details page
|
|
2784
|
+
* `execute()` merge — apply the same exclusions for embedded create/update commands.
|
|
2785
|
+
*/
|
|
2786
|
+
private mergeRelatedListFormOptions;
|
|
2787
|
+
/**
|
|
2788
|
+
* Create default events
|
|
2789
|
+
*/
|
|
2790
|
+
private createDefaultEvents;
|
|
2791
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityListTableService, never>;
|
|
2792
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityListTableService>;
|
|
2793
|
+
}
|
|
2794
|
+
|
|
2795
|
+
interface AXPEntityListToolbarConvertOptions {
|
|
2796
|
+
excludeColumns?: string[];
|
|
2797
|
+
includeColumns?: string[];
|
|
2798
|
+
/** Related list: evaluated `AXPEntityTableColumn[]` from `AXPRelatedEntity.columns` */
|
|
2799
|
+
relatedTableColumns?: AXPEntityTableColumn[];
|
|
2800
|
+
customFilterDefinitions?: Partial<AXPFilterDefinition>[];
|
|
2801
|
+
}
|
|
2802
|
+
declare class AXPEntityListToolbarService {
|
|
2803
|
+
private readonly widgetResolver;
|
|
2804
|
+
/**
|
|
2805
|
+
* Convert Entity to Toolbar Options
|
|
2806
|
+
*/
|
|
2807
|
+
convertEntityToolbarOptions(entity: AXPEntity, options: AXPEntityListToolbarConvertOptions | undefined): Promise<{
|
|
2808
|
+
filterDefinitions: AXPFilterDefinition[];
|
|
2809
|
+
columnDefinitions: AXPColumnQuery[];
|
|
2810
|
+
sortDefinitions: AXPSortDefinition[];
|
|
2811
|
+
}>;
|
|
2812
|
+
/**
|
|
2813
|
+
* Merges custom filter definitions into the entity-derived list by `field`.
|
|
2814
|
+
* Matching fields: custom properties are applied on top of the base definition.
|
|
2815
|
+
* Non-matching custom entries are appended.
|
|
2816
|
+
*/
|
|
2817
|
+
private mergeFilterDefinitions;
|
|
2818
|
+
private filterFieldKey;
|
|
2819
|
+
private mergeFilterDefinition;
|
|
2820
|
+
/**
|
|
2821
|
+
* Create Filter Definitions for Toolbar
|
|
2822
|
+
*/
|
|
2823
|
+
private createFilterDefinitions;
|
|
2824
|
+
/**
|
|
2825
|
+
* Create Column Definitions for Toolbar.
|
|
2826
|
+
* Includes both entity.properties and enriched columns (e.g. person.firstName with showAs).
|
|
2827
|
+
*/
|
|
2828
|
+
private createColumnDefinitions;
|
|
2829
|
+
/**
|
|
2830
|
+
* Create Sort Definitions for Toolbar.
|
|
2831
|
+
* Includes entity.properties with sort enabled, plus enriched columns (dotted paths).
|
|
2832
|
+
*/
|
|
2833
|
+
private createSortDefinitions;
|
|
2834
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityListToolbarService, never>;
|
|
2835
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityListToolbarService>;
|
|
2836
|
+
}
|
|
2837
|
+
|
|
2838
|
+
declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
|
|
2839
|
+
#private;
|
|
2840
|
+
protected entityService: AXPEntityDefinitionRegistryService;
|
|
2841
|
+
protected workflow: AXPWorkflowService;
|
|
2842
|
+
protected entityListTableService: AXPEntityListTableService;
|
|
2843
|
+
protected entityListToolbarService: AXPEntityListToolbarService;
|
|
2844
|
+
protected deviceService: AXPDeviceService;
|
|
2845
|
+
protected commandService: AXPCommandService;
|
|
2846
|
+
protected eventService: AXPBroadcastEventService;
|
|
2847
|
+
private readonly expressionEvaluator;
|
|
2848
|
+
private readonly route;
|
|
2849
|
+
protected isMounted: _angular_core.WritableSignal<boolean>;
|
|
2850
|
+
readonly entity: _angular_core.WritableSignal<AXPEntity | null>;
|
|
2851
|
+
protected listNode: _angular_core.WritableSignal<AXPWidgetNode | null>;
|
|
2852
|
+
protected list: _angular_core.Signal<AXPWidgetRendererDirective | undefined>;
|
|
2853
|
+
protected allWidgets: _angular_core.Signal<readonly AXPWidgetRendererDirective[]>;
|
|
2854
|
+
protected listWidget: _angular_core.WritableSignal<AXPWidgetRendererDirective | undefined>;
|
|
2855
|
+
protected toolbarWidget: _angular_core.Signal<AXPWidgetRendererDirective | undefined>;
|
|
2856
|
+
protected selectedItems: _angular_core.WritableSignal<any[]>;
|
|
2857
|
+
protected toolbarNode: _angular_core.WritableSignal<AXPWidgetNode | null>;
|
|
2858
|
+
protected destroyed: Subject<void>;
|
|
2859
|
+
protected entitySource: _angular_core.Signal<any>;
|
|
2860
|
+
protected excludeColumns: _angular_core.Signal<string[]>;
|
|
2861
|
+
protected includeColumns: _angular_core.Signal<string[]>;
|
|
2862
|
+
protected relatedTableColumns: _angular_core.Signal<AXPEntityTableColumn[] | undefined>;
|
|
2863
|
+
protected customFilterDefinitions: _angular_core.Signal<Partial<AXPFilterDefinition>[] | undefined>;
|
|
2864
|
+
protected externalActions: _angular_core.Signal<AXPEntityAction[]>;
|
|
2865
|
+
protected maxHeight: _angular_core.Signal<string>;
|
|
2866
|
+
protected showEntityActions: _angular_core.Signal<any>;
|
|
2867
|
+
protected showToolbar: _angular_core.Signal<any>;
|
|
2868
|
+
protected allActions: _angular_core.Signal<AXPEntityCommandTriggerViewModel[]>;
|
|
2869
|
+
protected primaryActions: _angular_core.Signal<AXPActionMenuItem[]>;
|
|
2870
|
+
protected handleUnselectAll(): void;
|
|
2871
|
+
protected secondaryActions: _angular_core.Signal<AXPActionMenuItem[]>;
|
|
2872
|
+
protected handleActionClick(item: AXPActionMenuItem): void;
|
|
2873
|
+
protected handleSecondaryActionClick(item: AXPActionMenuItem): void;
|
|
2874
|
+
protected execute(commandName: string, _data: unknown): Promise<void>;
|
|
2875
|
+
/**
|
|
2876
|
+
* Resolves toolbar commands including nested dropdown (`items`) actions.
|
|
2877
|
+
*/
|
|
2878
|
+
private findToolbarAction;
|
|
2879
|
+
private evaluateToolbarExpressions;
|
|
2880
|
+
/**
|
|
2881
|
+
* Parses the `filters` query param (same shape as standalone entity list routes).
|
|
2882
|
+
*/
|
|
2883
|
+
private parseFiltersFromRoute;
|
|
2884
|
+
/**
|
|
2885
|
+
* Route `filters` apply only when the active details `page` matches this list's entity
|
|
2886
|
+
* (e.g. WorkOrder filters must not affect FailureRegister on the same asset layout).
|
|
2887
|
+
*/
|
|
2888
|
+
private shouldApplyRouteFilters;
|
|
2889
|
+
/**
|
|
2890
|
+
* Merges route filters into related-entity toolbar filters (route wins per field).
|
|
2891
|
+
*/
|
|
2892
|
+
private mergeToolbarFilters;
|
|
2893
|
+
private getMergedToolbarFilters;
|
|
2894
|
+
/**
|
|
2895
|
+
* Applies merged route + parent-scope filters to the widget value and data source.
|
|
2896
|
+
*/
|
|
2897
|
+
private applyMergedRouteFiltersToList;
|
|
2898
|
+
/**
|
|
2899
|
+
* Re-evaluates related-entity list filters from the live dialog form context (e.g. after create saves the main row id).
|
|
2900
|
+
*/
|
|
2901
|
+
private applyRelatedFiltersFromContext;
|
|
2902
|
+
/**
|
|
2903
|
+
* Pushes current toolbar filters to the embedded list data source when both exist.
|
|
2904
|
+
* Returns false while data-list is still mounting (see deferred listNode.set in ngOnInit).
|
|
2905
|
+
*/
|
|
2906
|
+
private pushToolbarFiltersToDataSource;
|
|
2907
|
+
/**
|
|
2908
|
+
* Writes toolbar filters from specs and pushes them onto the data source so refresh/reload keeps the parent scope.
|
|
2909
|
+
*/
|
|
2910
|
+
private applyRelatedFiltersFromContextAndDatasource;
|
|
2911
|
+
/**
|
|
2912
|
+
* Refreshes the embedded data list (toolbar / workflow). In wizard mode, `refresh` is patched to re-apply scoped filters first.
|
|
2913
|
+
*/
|
|
2914
|
+
private refreshGridWithParentScopedFilters;
|
|
2915
|
+
protected queries: undefined;
|
|
2916
|
+
/**
|
|
2917
|
+
* Validates that all required dependencies are available
|
|
2918
|
+
*/
|
|
2919
|
+
private hasRequiredDependencies;
|
|
2920
|
+
/**
|
|
2921
|
+
* Handles all query-related changes (filters, sorts, columns)
|
|
2922
|
+
*/
|
|
2923
|
+
private handleQueryChanges;
|
|
2924
|
+
/**
|
|
2925
|
+
* Analyzes what has changed between current and previous queries
|
|
2926
|
+
*/
|
|
2927
|
+
private analyzeChanges;
|
|
2928
|
+
/**
|
|
2929
|
+
* Applies filter and sort changes to the data source
|
|
2930
|
+
*/
|
|
2931
|
+
private applyDataSourceChanges;
|
|
2932
|
+
/**
|
|
2933
|
+
* Handles list refresh logic based on changes and mount status
|
|
2934
|
+
*/
|
|
2935
|
+
private handleListRefresh;
|
|
2936
|
+
/**
|
|
2937
|
+
* Handles column-related changes
|
|
2938
|
+
* TODO: Implement column change logic
|
|
2939
|
+
*/
|
|
2940
|
+
private handleColumnChanges;
|
|
2941
|
+
protected context: {};
|
|
2942
|
+
protected previousQueries: any;
|
|
2943
|
+
ngOnInit(): Promise<void>;
|
|
2944
|
+
ngAfterViewInit(): Promise<void>;
|
|
2945
|
+
ngOnDestroy(): void;
|
|
2946
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityListWidgetViewComponent, never>;
|
|
2947
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityListWidgetViewComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
2948
|
+
}
|
|
2949
|
+
|
|
2950
|
+
declare const AXPEntityListWidget: AXPWidgetConfig;
|
|
2951
|
+
|
|
2952
|
+
declare class AXPEditFileUploaderCommand implements AXPCommand<{
|
|
2953
|
+
file: AXPFileListItem;
|
|
2954
|
+
plugins?: {
|
|
2955
|
+
name: string;
|
|
2956
|
+
options?: unknown;
|
|
2957
|
+
}[];
|
|
2958
|
+
excludePlugins?: string[];
|
|
2959
|
+
enableTitleDescription?: boolean;
|
|
2960
|
+
isNewFile?: boolean;
|
|
2961
|
+
}, AXPFileListItem> {
|
|
2962
|
+
private readonly layoutBuilder;
|
|
2963
|
+
private readonly translationService;
|
|
2964
|
+
private readonly hooks;
|
|
2965
|
+
execute(input: {
|
|
2966
|
+
file: AXPFileListItem;
|
|
2967
|
+
plugins?: {
|
|
2968
|
+
name: string;
|
|
2969
|
+
options?: unknown;
|
|
2970
|
+
}[];
|
|
2971
|
+
excludePlugins?: string[];
|
|
2972
|
+
enableTitleDescription?: boolean;
|
|
2973
|
+
isNewFile?: boolean;
|
|
2974
|
+
}): Promise<AXPExecuteCommandResult<AXPFileListItem>>;
|
|
2975
|
+
private showEditDialog;
|
|
2976
|
+
/**
|
|
2977
|
+
* Build form fields from hook items (old format parameters)
|
|
2978
|
+
*/
|
|
2979
|
+
private buildFormFields;
|
|
2980
|
+
/**
|
|
2981
|
+
* Build groups/containers from hook groups (old format groups)
|
|
2982
|
+
*/
|
|
2983
|
+
private buildGroups;
|
|
2984
|
+
/**
|
|
2985
|
+
* Apply widget configuration to field based on widget type
|
|
2986
|
+
*/
|
|
2987
|
+
private applyWidget;
|
|
2988
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEditFileUploaderCommand, never>;
|
|
2989
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEditFileUploaderCommand>;
|
|
2990
|
+
}
|
|
2991
|
+
|
|
2992
|
+
declare class AXPFileListComponent implements OnInit, OnDestroy {
|
|
2993
|
+
private fileTypeService;
|
|
2994
|
+
private fileStorageService;
|
|
2995
|
+
private commandExecutor;
|
|
2996
|
+
private hooks;
|
|
2997
|
+
isLoading: _angular_core.WritableSignal<boolean>;
|
|
2998
|
+
private fileTypes;
|
|
2999
|
+
onRemove: _angular_core.OutputEmitterRef<AXPFileListItem>;
|
|
3000
|
+
onRevert: _angular_core.OutputEmitterRef<AXPFileListItem>;
|
|
3001
|
+
onRename: _angular_core.OutputEmitterRef<AXPFileListItem>;
|
|
3002
|
+
readonly: _angular_core.InputSignal<boolean>;
|
|
3003
|
+
fileEditable: _angular_core.InputSignal<boolean>;
|
|
3004
|
+
/** When true, edit dialog shows name, title and description fields. Default false. */
|
|
3005
|
+
enableTitleDescription: _angular_core.InputSignal<boolean>;
|
|
3006
|
+
multiple: _angular_core.InputSignal<boolean>;
|
|
3007
|
+
files: _angular_core.InputSignal<AXPFileListItem[]>;
|
|
3008
|
+
plugins: _angular_core.InputSignal<{
|
|
3009
|
+
name: string;
|
|
3010
|
+
options?: unknown;
|
|
3011
|
+
}[] | undefined>;
|
|
3012
|
+
excludePlugins: _angular_core.InputSignal<string[] | undefined>;
|
|
3013
|
+
capabilities: _angular_core.InputSignal<AXCFileUploaderCapabilities | undefined>;
|
|
3014
|
+
/**
|
|
3015
|
+
* All files should be displayed, even those with `deleted` status.
|
|
3016
|
+
* The template will handle the visual differences based on the status.
|
|
2768
3017
|
*/
|
|
2769
3018
|
displayFiles: _angular_core.Signal<AXPFileListItem[]>;
|
|
2770
3019
|
private fileIdToActions;
|
|
@@ -3056,255 +3305,6 @@ declare class AXPFileUploaderWidgetService {
|
|
|
3056
3305
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPFileUploaderWidgetService>;
|
|
3057
3306
|
}
|
|
3058
3307
|
|
|
3059
|
-
declare const AXPEntityDefinitionProviderWidget: AXPWidgetConfig;
|
|
3060
|
-
declare module '@acorex/platform/layout/widget-core' {
|
|
3061
|
-
interface AXPWidgetTypesMap {
|
|
3062
|
-
entityDefinitionProvider: 'entity-definition-provider-editor';
|
|
3063
|
-
}
|
|
3064
|
-
}
|
|
3065
|
-
|
|
3066
|
-
declare class AXPEntityDefinitionProviderWidgetEditComponent extends AXPProviderSelectWidgetEditBase {
|
|
3067
|
-
private readonly entityRegistry;
|
|
3068
|
-
/**
|
|
3069
|
-
* Last applied module filter (from context) to avoid redundant reloads.
|
|
3070
|
-
*/
|
|
3071
|
-
private readonly lastModuleFilterKey;
|
|
3072
|
-
/**
|
|
3073
|
-
* Reloads entity options when `filterModuleField` changes in form context (not only via `widget.refresh()`).
|
|
3074
|
-
*/
|
|
3075
|
-
private readonly reloadWhenModuleContextChanges;
|
|
3076
|
-
/**
|
|
3077
|
-
* Options:
|
|
3078
|
-
* - `filterModuleField`: sibling context field name (e.g. `entityListModule`); when set, only entities in that module are listed.
|
|
3079
|
-
* - `valueFormat`: `fullKey` (`module.name`, default) or `entityName` (short name only, for menus that store `entityListRef.entity`).
|
|
3080
|
-
*/
|
|
3081
|
-
protected loadDataSourceRows(): Promise<Array<{
|
|
3082
|
-
value: string;
|
|
3083
|
-
title: string;
|
|
3084
|
-
}>>;
|
|
3085
|
-
refresh(): void;
|
|
3086
|
-
/**
|
|
3087
|
-
* Reads sibling field from context store data (same shape as `lodash/get` paths).
|
|
3088
|
-
*/
|
|
3089
|
-
private readModuleFromContext;
|
|
3090
|
-
/**
|
|
3091
|
-
* Resolves a sibling field path relative to the current widget's parent path.
|
|
3092
|
-
*/
|
|
3093
|
-
private resolveSiblingContextPath;
|
|
3094
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityDefinitionProviderWidgetEditComponent, never>;
|
|
3095
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityDefinitionProviderWidgetEditComponent, "axp-entity-definition-provider-widget-edit", never, {}, {}, never, never, true, never>;
|
|
3096
|
-
}
|
|
3097
|
-
|
|
3098
|
-
declare class AXPEntityListTableService {
|
|
3099
|
-
private readonly workflow;
|
|
3100
|
-
private readonly commandService;
|
|
3101
|
-
private readonly expressionEvaluator;
|
|
3102
|
-
private readonly settings;
|
|
3103
|
-
/**
|
|
3104
|
-
* Convert Entity to List Widget Options
|
|
3105
|
-
*/
|
|
3106
|
-
convertEntityToListOptions(entity: AXPEntity, options: any, allActions: AXPEntityCommandTriggerViewModel[]): Promise<AXPDataListWidgetComponentOptions>;
|
|
3107
|
-
/**
|
|
3108
|
-
* Create DataSource for Entity
|
|
3109
|
-
*/
|
|
3110
|
-
private createDataSource;
|
|
3111
|
-
/**
|
|
3112
|
-
* Convert Properties to Columns
|
|
3113
|
-
*/
|
|
3114
|
-
private createColumnsFromProperties;
|
|
3115
|
-
/**
|
|
3116
|
-
* Map EntityTableColumn to ListWidgetColumn
|
|
3117
|
-
*/
|
|
3118
|
-
private mapEntityColumnToWidgetColumn;
|
|
3119
|
-
/**
|
|
3120
|
-
* Convert Entity Actions to Row Commands
|
|
3121
|
-
*/
|
|
3122
|
-
private createRowCommands;
|
|
3123
|
-
/**
|
|
3124
|
-
* Wraps string values with AXP_ROW_EXPR_PREFIX so widget-renderer does not
|
|
3125
|
-
* evaluate them (it only treats {{ ... }} as expressions). Data-list will
|
|
3126
|
-
* unwrap and evaluate per row with row data. Only used for secondary commands.
|
|
3127
|
-
*/
|
|
3128
|
-
private wrapRowExpr;
|
|
3129
|
-
/**
|
|
3130
|
-
* Check if entity has Selected Scope Actions
|
|
3131
|
-
*/
|
|
3132
|
-
private hasSelectedScopeActions;
|
|
3133
|
-
private evaluateExpressions;
|
|
3134
|
-
/**
|
|
3135
|
-
* Handle execution of a row command (shared by double-click and command handlers)
|
|
3136
|
-
*/
|
|
3137
|
-
private handleRowCommand;
|
|
3138
|
-
/**
|
|
3139
|
-
* When a related entity list declares `excludeProperties`, row commands bypass the details page
|
|
3140
|
-
* `execute()` merge — apply the same exclusions for embedded create/update commands.
|
|
3141
|
-
*/
|
|
3142
|
-
private mergeRelatedListFormOptions;
|
|
3143
|
-
/**
|
|
3144
|
-
* Create default events
|
|
3145
|
-
*/
|
|
3146
|
-
private createDefaultEvents;
|
|
3147
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityListTableService, never>;
|
|
3148
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityListTableService>;
|
|
3149
|
-
}
|
|
3150
|
-
|
|
3151
|
-
interface AXPEntityListToolbarConvertOptions {
|
|
3152
|
-
excludeColumns?: string[];
|
|
3153
|
-
includeColumns?: string[];
|
|
3154
|
-
/** Related list: evaluated `AXPEntityTableColumn[]` from `AXPRelatedEntity.columns` */
|
|
3155
|
-
relatedTableColumns?: AXPEntityTableColumn[];
|
|
3156
|
-
customFilterDefinitions?: Partial<AXPFilterDefinition>[];
|
|
3157
|
-
}
|
|
3158
|
-
declare class AXPEntityListToolbarService {
|
|
3159
|
-
private readonly widgetResolver;
|
|
3160
|
-
/**
|
|
3161
|
-
* Convert Entity to Toolbar Options
|
|
3162
|
-
*/
|
|
3163
|
-
convertEntityToolbarOptions(entity: AXPEntity, options: AXPEntityListToolbarConvertOptions | undefined): Promise<{
|
|
3164
|
-
filterDefinitions: AXPFilterDefinition[];
|
|
3165
|
-
columnDefinitions: AXPColumnQuery[];
|
|
3166
|
-
sortDefinitions: AXPSortDefinition[];
|
|
3167
|
-
}>;
|
|
3168
|
-
/**
|
|
3169
|
-
* Merges custom filter definitions into the entity-derived list by `field`.
|
|
3170
|
-
* Matching fields: custom properties are applied on top of the base definition.
|
|
3171
|
-
* Non-matching custom entries are appended.
|
|
3172
|
-
*/
|
|
3173
|
-
private mergeFilterDefinitions;
|
|
3174
|
-
private filterFieldKey;
|
|
3175
|
-
private mergeFilterDefinition;
|
|
3176
|
-
/**
|
|
3177
|
-
* Create Filter Definitions for Toolbar
|
|
3178
|
-
*/
|
|
3179
|
-
private createFilterDefinitions;
|
|
3180
|
-
/**
|
|
3181
|
-
* Create Column Definitions for Toolbar.
|
|
3182
|
-
* Includes both entity.properties and enriched columns (e.g. person.firstName with showAs).
|
|
3183
|
-
*/
|
|
3184
|
-
private createColumnDefinitions;
|
|
3185
|
-
/**
|
|
3186
|
-
* Create Sort Definitions for Toolbar.
|
|
3187
|
-
* Includes entity.properties with sort enabled, plus enriched columns (dotted paths).
|
|
3188
|
-
*/
|
|
3189
|
-
private createSortDefinitions;
|
|
3190
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityListToolbarService, never>;
|
|
3191
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityListToolbarService>;
|
|
3192
|
-
}
|
|
3193
|
-
|
|
3194
|
-
declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
|
|
3195
|
-
#private;
|
|
3196
|
-
protected entityService: AXPEntityDefinitionRegistryService;
|
|
3197
|
-
protected workflow: AXPWorkflowService;
|
|
3198
|
-
protected entityListTableService: AXPEntityListTableService;
|
|
3199
|
-
protected entityListToolbarService: AXPEntityListToolbarService;
|
|
3200
|
-
protected deviceService: AXPDeviceService;
|
|
3201
|
-
protected commandService: AXPCommandService;
|
|
3202
|
-
protected eventService: AXPBroadcastEventService;
|
|
3203
|
-
private readonly expressionEvaluator;
|
|
3204
|
-
private readonly route;
|
|
3205
|
-
protected isMounted: _angular_core.WritableSignal<boolean>;
|
|
3206
|
-
readonly entity: _angular_core.WritableSignal<AXPEntity | null>;
|
|
3207
|
-
protected listNode: _angular_core.WritableSignal<AXPWidgetNode | null>;
|
|
3208
|
-
protected list: _angular_core.Signal<AXPWidgetRendererDirective | undefined>;
|
|
3209
|
-
protected allWidgets: _angular_core.Signal<readonly AXPWidgetRendererDirective[]>;
|
|
3210
|
-
protected listWidget: _angular_core.WritableSignal<AXPWidgetRendererDirective | undefined>;
|
|
3211
|
-
protected toolbarWidget: _angular_core.Signal<AXPWidgetRendererDirective | undefined>;
|
|
3212
|
-
protected selectedItems: _angular_core.WritableSignal<any[]>;
|
|
3213
|
-
protected toolbarNode: _angular_core.WritableSignal<AXPWidgetNode | null>;
|
|
3214
|
-
protected destroyed: Subject<void>;
|
|
3215
|
-
protected entitySource: _angular_core.Signal<any>;
|
|
3216
|
-
protected excludeColumns: _angular_core.Signal<string[]>;
|
|
3217
|
-
protected includeColumns: _angular_core.Signal<string[]>;
|
|
3218
|
-
protected relatedTableColumns: _angular_core.Signal<AXPEntityTableColumn[] | undefined>;
|
|
3219
|
-
protected customFilterDefinitions: _angular_core.Signal<Partial<AXPFilterDefinition>[] | undefined>;
|
|
3220
|
-
protected externalActions: _angular_core.Signal<AXPEntityAction[]>;
|
|
3221
|
-
protected maxHeight: _angular_core.Signal<string>;
|
|
3222
|
-
protected showEntityActions: _angular_core.Signal<any>;
|
|
3223
|
-
protected showToolbar: _angular_core.Signal<any>;
|
|
3224
|
-
protected allActions: _angular_core.Signal<AXPEntityCommandTriggerViewModel[]>;
|
|
3225
|
-
protected primaryActions: _angular_core.Signal<AXPActionMenuItem[]>;
|
|
3226
|
-
protected handleUnselectAll(): void;
|
|
3227
|
-
protected secondaryActions: _angular_core.Signal<AXPActionMenuItem[]>;
|
|
3228
|
-
protected handleActionClick(item: AXPActionMenuItem): void;
|
|
3229
|
-
protected handleSecondaryActionClick(item: AXPActionMenuItem): void;
|
|
3230
|
-
protected execute(commandName: string, _data: unknown): Promise<void>;
|
|
3231
|
-
/**
|
|
3232
|
-
* Resolves toolbar commands including nested dropdown (`items`) actions.
|
|
3233
|
-
*/
|
|
3234
|
-
private findToolbarAction;
|
|
3235
|
-
private evaluateToolbarExpressions;
|
|
3236
|
-
/**
|
|
3237
|
-
* Parses the `filters` query param (same shape as standalone entity list routes).
|
|
3238
|
-
*/
|
|
3239
|
-
private parseFiltersFromRoute;
|
|
3240
|
-
/**
|
|
3241
|
-
* Route `filters` apply only when the active details `page` matches this list's entity
|
|
3242
|
-
* (e.g. WorkOrder filters must not affect FailureRegister on the same asset layout).
|
|
3243
|
-
*/
|
|
3244
|
-
private shouldApplyRouteFilters;
|
|
3245
|
-
/**
|
|
3246
|
-
* Merges route filters into related-entity toolbar filters (route wins per field).
|
|
3247
|
-
*/
|
|
3248
|
-
private mergeToolbarFilters;
|
|
3249
|
-
private getMergedToolbarFilters;
|
|
3250
|
-
/**
|
|
3251
|
-
* Applies merged route + parent-scope filters to the widget value and data source.
|
|
3252
|
-
*/
|
|
3253
|
-
private applyMergedRouteFiltersToList;
|
|
3254
|
-
/**
|
|
3255
|
-
* Re-evaluates related-entity list filters from the live dialog form context (e.g. after create saves the main row id).
|
|
3256
|
-
*/
|
|
3257
|
-
private applyRelatedFiltersFromContext;
|
|
3258
|
-
/**
|
|
3259
|
-
* Pushes current toolbar filters to the embedded list data source when both exist.
|
|
3260
|
-
* Returns false while data-list is still mounting (see deferred listNode.set in ngOnInit).
|
|
3261
|
-
*/
|
|
3262
|
-
private pushToolbarFiltersToDataSource;
|
|
3263
|
-
/**
|
|
3264
|
-
* Writes toolbar filters from specs and pushes them onto the data source so refresh/reload keeps the parent scope.
|
|
3265
|
-
*/
|
|
3266
|
-
private applyRelatedFiltersFromContextAndDatasource;
|
|
3267
|
-
/**
|
|
3268
|
-
* Refreshes the embedded data list (toolbar / workflow). In wizard mode, `refresh` is patched to re-apply scoped filters first.
|
|
3269
|
-
*/
|
|
3270
|
-
private refreshGridWithParentScopedFilters;
|
|
3271
|
-
protected queries: undefined;
|
|
3272
|
-
/**
|
|
3273
|
-
* Validates that all required dependencies are available
|
|
3274
|
-
*/
|
|
3275
|
-
private hasRequiredDependencies;
|
|
3276
|
-
/**
|
|
3277
|
-
* Handles all query-related changes (filters, sorts, columns)
|
|
3278
|
-
*/
|
|
3279
|
-
private handleQueryChanges;
|
|
3280
|
-
/**
|
|
3281
|
-
* Analyzes what has changed between current and previous queries
|
|
3282
|
-
*/
|
|
3283
|
-
private analyzeChanges;
|
|
3284
|
-
/**
|
|
3285
|
-
* Applies filter and sort changes to the data source
|
|
3286
|
-
*/
|
|
3287
|
-
private applyDataSourceChanges;
|
|
3288
|
-
/**
|
|
3289
|
-
* Handles list refresh logic based on changes and mount status
|
|
3290
|
-
*/
|
|
3291
|
-
private handleListRefresh;
|
|
3292
|
-
/**
|
|
3293
|
-
* Handles column-related changes
|
|
3294
|
-
* TODO: Implement column change logic
|
|
3295
|
-
*/
|
|
3296
|
-
private handleColumnChanges;
|
|
3297
|
-
protected context: {};
|
|
3298
|
-
protected previousQueries: any;
|
|
3299
|
-
ngOnInit(): Promise<void>;
|
|
3300
|
-
ngAfterViewInit(): Promise<void>;
|
|
3301
|
-
ngOnDestroy(): void;
|
|
3302
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityListWidgetViewComponent, never>;
|
|
3303
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityListWidgetViewComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
3304
|
-
}
|
|
3305
|
-
|
|
3306
|
-
declare const AXPEntityListWidget: AXPWidgetConfig;
|
|
3307
|
-
|
|
3308
3308
|
type AXPLookupWidgetLookType = 'select' | 'lookup';
|
|
3309
3309
|
/**
|
|
3310
3310
|
* How the lookup column resolves related items for display in entity lists.
|