@acorex-platform/framework-client 0.0.15 → 0.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-platform-framework-client-auth.mjs +872 -314
- package/fesm2022/acorex-platform-framework-client-auth.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-common-common-settings.provider-Euotv9l0.mjs → acorex-platform-framework-client-common-common-settings.provider-CLm2BVk-.mjs} +88 -5
- package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-CLm2BVk-.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-common.mjs +2685 -898
- package/fesm2022/acorex-platform-framework-client-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-core.mjs +691 -823
- package/fesm2022/acorex-platform-framework-client-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-domain.mjs +16 -16
- package/fesm2022/acorex-platform-framework-client-layout-builder.mjs +181 -84
- package/fesm2022/acorex-platform-framework-client-layout-builder.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-CjnQ9hAJ.mjs → acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-oE8CeLE8.mjs} +8 -6
- package/fesm2022/{acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-CjnQ9hAJ.mjs.map → acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-oE8CeLE8.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-components-file-provider-picker.popup.component-fFen8w8M.mjs → acorex-platform-framework-client-layout-components-file-provider-picker.popup.component-BtLEUWAA.mjs} +4 -4
- package/fesm2022/{acorex-platform-framework-client-layout-components-file-provider-picker.popup.component-fFen8w8M.mjs.map → acorex-platform-framework-client-layout-components-file-provider-picker.popup.component-BtLEUWAA.mjs.map} +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-components.mjs +3300 -1236
- package/fesm2022/acorex-platform-framework-client-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-designer.mjs +277 -185
- package/fesm2022/acorex-platform-framework-client-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-BXOMs6oD.mjs +29184 -0
- package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-BXOMs6oD.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-BzUM-JMC.mjs → acorex-platform-framework-client-layout-entity-attachments-page.component-DCK-qb-F.mjs} +34 -20
- package/fesm2022/acorex-platform-framework-client-layout-entity-attachments-page.component-DCK-qb-F.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-entity-bulk-entity.command-Cs3agnpF.mjs +162 -0
- package/fesm2022/acorex-platform-framework-client-layout-entity-bulk-entity.command-Cs3agnpF.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-Ci_CTFtq.mjs → acorex-platform-framework-client-layout-entity-file-list-popup.component-p0hxDb0W.mjs} +31 -19
- package/fesm2022/acorex-platform-framework-client-layout-entity-file-list-popup.component-p0hxDb0W.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-DmiB__JR.mjs → acorex-platform-framework-client-layout-entity-gallery-page.component-DYV9YPyw.mjs} +30 -18
- package/fesm2022/acorex-platform-framework-client-layout-entity-gallery-page.component-DYV9YPyw.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-entity.mjs +2 -26780
- package/fesm2022/acorex-platform-framework-client-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-views.mjs +421 -151
- package/fesm2022/acorex-platform-framework-client-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs +673 -287
- package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-button-widget-designer.component-CIwpAXbL.mjs → acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BiWerYcu.mjs} +16 -10
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-button-widget-designer.component-CIwpAXbL.mjs.map → acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BiWerYcu.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-image-preview.popup-CazpERbX.mjs → acorex-platform-framework-client-layout-widgets-image-preview.popup-BOrrMm3U.mjs} +9 -8
- package/fesm2022/acorex-platform-framework-client-layout-widgets-image-preview.popup-BOrrMm3U.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-page-widget-designer.component-DKkJi40s.mjs → acorex-platform-framework-client-layout-widgets-page-widget-designer.component-WzIiwnGC.mjs} +20 -12
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-page-widget-designer.component-DKkJi40s.mjs.map → acorex-platform-framework-client-layout-widgets-page-widget-designer.component-WzIiwnGC.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-DtYZfA79.mjs → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-3CO4xJB3.mjs} +32 -18
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-DtYZfA79.mjs.map → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-3CO4xJB3.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-nMUtxAyy.mjs → acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-CRST84ou.mjs} +8 -7
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-nMUtxAyy.mjs.map → acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-CRST84ou.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-DvUSZ4hJ.mjs → acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-FjtSRxIX.mjs} +4 -4
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-DvUSZ4hJ.mjs.map → acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-FjtSRxIX.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-BihIfkZW.mjs → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-D6HFPmGC.mjs} +10 -8
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-BihIfkZW.mjs.map → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-D6HFPmGC.mjs.map} +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs +4907 -2554
- package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-native.mjs +7 -7
- package/fesm2022/acorex-platform-framework-client-realtime-set-presence-availability.command-CetlUjnM.mjs +29 -0
- package/fesm2022/acorex-platform-framework-client-realtime-set-presence-availability.command-CetlUjnM.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-realtime.mjs +463 -26
- package/fesm2022/acorex-platform-framework-client-realtime.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-runtime.mjs +300 -137
- package/fesm2022/acorex-platform-framework-client-runtime.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-create-view.component-QIFX11dh.mjs → acorex-platform-framework-client-themes-default-entity-master-create-view.component-yeftgJ_K.mjs} +10 -7
- package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-create-view.component-QIFX11dh.mjs.map → acorex-platform-framework-client-themes-default-entity-master-create-view.component-yeftgJ_K.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-modify-view.component-BBdellyL.mjs → acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DWE3OWGm.mjs} +10 -7
- package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-modify-view.component-BBdellyL.mjs.map → acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DWE3OWGm.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-single-view.component-CIf1VWNW.mjs → acorex-platform-framework-client-themes-default-entity-master-single-view.component-C2Abf7Lb.mjs} +21 -19
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-single-view.component-C2Abf7Lb.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-themes-default-error-401.component-C_czT_JC.mjs → acorex-platform-framework-client-themes-default-error-401.component-BrTotLx1.mjs} +5 -5
- package/fesm2022/{acorex-platform-framework-client-themes-default-error-401.component-C_czT_JC.mjs.map → acorex-platform-framework-client-themes-default-error-401.component-BrTotLx1.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-themes-default-error-404.component-C2Wu0YtF.mjs → acorex-platform-framework-client-themes-default-error-404.component-DsC7_s59.mjs} +5 -5
- package/fesm2022/{acorex-platform-framework-client-themes-default-error-404.component-C2Wu0YtF.mjs.map → acorex-platform-framework-client-themes-default-error-404.component-DsC7_s59.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-themes-default-error-offline.component-DRz-kVsT.mjs → acorex-platform-framework-client-themes-default-error-offline.component-CngiQycG.mjs} +6 -6
- package/fesm2022/acorex-platform-framework-client-themes-default-error-offline.component-CngiQycG.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-themes-default.mjs +448 -277
- package/fesm2022/acorex-platform-framework-client-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-themes-shared-icon-chooser-column.component-Ci_oH7NE.mjs → acorex-platform-framework-client-themes-shared-icon-chooser-column.component-CbZALjB5.mjs} +8 -6
- package/fesm2022/{acorex-platform-framework-client-themes-shared-icon-chooser-column.component-Ci_oH7NE.mjs.map → acorex-platform-framework-client-themes-shared-icon-chooser-column.component-CbZALjB5.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-themes-shared-icon-chooser-view.component-Lb1G2Xz7.mjs → acorex-platform-framework-client-themes-shared-icon-chooser-view.component-BRrNT6x2.mjs} +8 -6
- package/fesm2022/{acorex-platform-framework-client-themes-shared-icon-chooser-view.component-Lb1G2Xz7.mjs.map → acorex-platform-framework-client-themes-shared-icon-chooser-view.component-BRrNT6x2.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-themes-shared-theme-color-chooser-column.component-D4ubvFYf.mjs → acorex-platform-framework-client-themes-shared-theme-color-chooser-column.component-BIsQTr6B.mjs} +4 -4
- package/fesm2022/{acorex-platform-framework-client-themes-shared-theme-color-chooser-column.component-D4ubvFYf.mjs.map → acorex-platform-framework-client-themes-shared-theme-color-chooser-column.component-BIsQTr6B.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-themes-shared-theme-color-chooser-view.component-Br8j_BF_.mjs → acorex-platform-framework-client-themes-shared-theme-color-chooser-view.component-ZclmSbt9.mjs} +16 -10
- package/fesm2022/{acorex-platform-framework-client-themes-shared-theme-color-chooser-view.component-Br8j_BF_.mjs.map → acorex-platform-framework-client-themes-shared-theme-color-chooser-view.component-ZclmSbt9.mjs.map} +1 -1
- package/fesm2022/acorex-platform-framework-client-themes-shared.mjs +538 -133
- package/fesm2022/acorex-platform-framework-client-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-workflow.mjs +26 -66
- package/fesm2022/acorex-platform-framework-client-workflow.mjs.map +1 -1
- package/package.json +10 -10
- package/realtime/README.md +16 -0
- package/runtime/README.md +14 -0
- package/types/acorex-platform-framework-client-auth.d.ts +291 -52
- package/types/acorex-platform-framework-client-common.d.ts +615 -202
- package/types/acorex-platform-framework-client-core.d.ts +215 -225
- package/types/acorex-platform-framework-client-layout-builder.d.ts +24 -8
- package/types/acorex-platform-framework-client-layout-components.d.ts +407 -94
- package/types/acorex-platform-framework-client-layout-entity.d.ts +734 -411
- package/types/acorex-platform-framework-client-layout-views.d.ts +40 -15
- package/types/acorex-platform-framework-client-layout-widget-core.d.ts +66 -17
- package/types/acorex-platform-framework-client-layout-widgets.d.ts +295 -68
- package/types/acorex-platform-framework-client-realtime.d.ts +183 -6
- package/types/acorex-platform-framework-client-runtime.d.ts +134 -28
- package/types/acorex-platform-framework-client-themes-default.d.ts +9 -1
- package/types/acorex-platform-framework-client-themes-shared.d.ts +8 -2
- package/types/acorex-platform-framework-client-workflow.d.ts +12 -37
- package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-Euotv9l0.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-entity-attachments-page.component-BzUM-JMC.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-entity-file-list-popup.component-Ci_CTFtq.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-entity-gallery-page.component-DmiB__JR.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-image-preview.popup-CazpERbX.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-single-view.component-CIf1VWNW.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-themes-default-error-offline.component-DRz-kVsT.mjs.map +0 -1
|
@@ -1,42 +1,39 @@
|
|
|
1
1
|
import * as _acorex_platform_framework_shared_entity from '@acorex-platform/framework-shared/entity';
|
|
2
|
-
import { AXPRelatedEntity, AXPEntityPage, AXPEntityCommandScope, AXPEntity, AXPEntityAction, AXPEntityProperty, AXPEntityTableColumn, AXPCardField, AXPEntityPropertyLayoutConfig, AXPEntitySectionView, AXPEntityPropertyCreateView, AXPQueryView, AXPEntityMasterListLayoutType, AXPEntityMasterListDisplayMode, AXPEntityMasterListLayoutOption, AXPEntityListFilterDefinition, AXPEntityListSortableField, AXPEntityPropertyView,
|
|
2
|
+
import { AXPRelatedEntity, AXPEntityPage, AXPEntityCommandScope, AXPEntity, AXPEntityAction, AXPEntityProperty, AXPEntityTableColumn, AXPCardField, AXPEntityPropertyLayoutConfig, AXPEntitySectionView, AXPEntityPropertyCreateView, AXPQueryView, AXPEntityMasterListLayoutType, AXPEntityMasterListDisplayMode, AXPEntityMasterListLayoutOption, AXPEntityListFilterDefinition, AXPEntityListSortableField, AXPEntityPropertyView, AXPEntityUpdateDto, AXPEntityCreateDto, AXPEntityQueryAllOptions, AXPEntityQueryAllResult, AXPEntityAggregateRequest, AXPEntityAggregateOptions, AXPEntityAggregateResult, AXPEntityDetailDto, AXPEntityListItemDto, AXPEntityModel, AXPEntityCategoryPlugin, AXPEntityPropertyGroup, AXPEntityMasterCreateLayoutView, AXPEntityMasterUpdateLayoutView, AXPEntityMasterSingleLayoutView, AXPEntityMasterListView, AXPEntityDetailListView, AXPLookupDisplayOptions, AXPEntitySelectorColumnInput, AXPLookupWidgetLookType, AXPLookupSelectorRowActionsConfig, AXPQueryFilter, AXPLookupColumnResolveOptions, AXPLookupColumnResolveStrategy } from '@acorex-platform/framework-shared/entity';
|
|
3
3
|
export * from '@acorex-platform/framework-shared/entity';
|
|
4
4
|
export { collectNestedCreateHiddenProperties, entityDetailsCreateActions, entityDetailsCreateActionsDeferredParent, entityDetailsCrudActions, entityDetailsEditAction, entityDetailsNewEditAction, entityDetailsReferenceCondition, entityDetailsReferenceCreateActions, entityDetailsSimpleCondition, entityMasterBulkDeleteAction, entityMasterCreateAction, entityMasterCrudActions, entityMasterDeleteAction, entityMasterEditAction, entityMasterRecordActions, entityMasterViewAction, entityOverrideDetailsViewAction, mergeForeignKeyFieldIntoCreateActions } from '@acorex-platform/framework-shared/entity';
|
|
5
|
-
import { AXPCommand, AXPQuery } from '@acorex-platform/framework-shared/runtime';
|
|
6
|
-
import * as _acorex_platform_framework_shared_core from '@acorex-platform/framework-shared/core';
|
|
7
|
-
import { AXPExecuteCommandResult, AXPFileListItem, AXPMultiLanguageString, AXPMetaData, AXPWidgetNode, AXPGridLayoutOptions, AXPExpression, AXPBreadcrumbItem, AXPFilterQuery, AXPExecuteCommand, AXPFilterDefinition, AXPQueryRequest, AXPPagedListResult, AXPCategoryEntity, AXPEntityOp, AXPMiddlewareErrorResponse, AXPColumnQuery, AXPSortDefinition, AXPActionMenuItem, AXPContextData, AXPContextChangeEvent } from '@acorex-platform/framework-shared/core';
|
|
5
|
+
import { AXPCommand, AXPEntityActionCommandInput, AXPCommandExecuteResultPromise, AXPQuery, AXPQueryFetchResultPromise, AXPBulkCommandResultData } from '@acorex-platform/framework-shared/runtime';
|
|
8
6
|
import * as _angular_core from '@angular/core';
|
|
9
|
-
import { OnInit, OnDestroy, ElementRef, InjectionToken, Injector, Type, EnvironmentProviders, ChangeDetectorRef } from '@angular/core';
|
|
10
|
-
import * as
|
|
7
|
+
import { OnInit, OnDestroy, ElementRef, InjectionToken, Injector, EnvironmentInjector, Type, EnvironmentProviders, ChangeDetectorRef, Provider } from '@angular/core';
|
|
8
|
+
import * as _acorex_platform_framework_shared_core from '@acorex-platform/framework-shared/core';
|
|
9
|
+
import { AXPFileListItem, AXPMultiLanguageString, AXPMetaData, AXPWidgetNode, AXPGridLayoutOptions, AXPExpression, AXPFilterQuery, AXPBreadcrumbItem, AXPExecuteCommand, AXPQueryRequest, AXPPagedListResult, AXPEntityOp, AXPMiddlewareErrorResponse, AXPCategoryEntity, AXPFilterDefinition, AXPRuntimeCommandResult, AXPColumnQuery, AXPSortDefinition, AXPActionMenuItem, AXPContextData, AXPContextChangeEvent } from '@acorex-platform/framework-shared/core';
|
|
11
10
|
import { AXPWidgetConfig, AXPWidgetColumnNode } from '@acorex-platform/framework-shared/widget-core';
|
|
11
|
+
import * as _acorex_platform_framework_client_layout_components from '@acorex-platform/framework-client/layout/components';
|
|
12
12
|
import { AXPFileChooserContext, AXPPreloadFiltersApplyEvent, AXPColumnItemListItem, AXPDataSelectorRowActionsHandler, AXPCategoryTreeDataSource, AXPDataSelectorAllowCreate, AXPDataSelectorFooterPrefixAction } from '@acorex-platform/framework-client/layout/components';
|
|
13
13
|
import { AXPPageLayoutBaseComponent } from '@acorex-platform/framework-client/layout/views';
|
|
14
|
-
import { AXPDataSourceDefinitionProvider, AXPDataSourceDefinition, AXPHookService, AXHighlightService, AXPDeviceService, AXPBroadcastEventService, AXPExpressionEvaluatorService, AXPContextEvalFactory, AXPContextStore } from '@acorex-platform/framework-client/core';
|
|
15
14
|
export { AXPEntityDefinitionCrudService, AXP_ENTITY_DEFINITION_CRUD_SERVICE } from '@acorex-platform/framework-client/domain';
|
|
16
15
|
import { AXClickEvent, AXStyleColorType, AXDataSource, AXDataSourceFilterOption, AXDataSourceSortOption, AXValueChangedEvent, AXFocusEvent, AXHtmlEvent } from '@acorex/cdk/common';
|
|
17
|
-
import
|
|
16
|
+
import { AXPHookService, AXHighlightService, AXPEntityBroadcastService, AXPDeviceService, AXPExpressionEvaluatorService, AXPContextEvalFactory, AXPContextStore } from '@acorex-platform/framework-client/core';
|
|
17
|
+
import * as i5 from '@acorex-platform/framework-client/layout/widget-core';
|
|
18
18
|
import { AXPColumnWidgetComponent, AXPValueWidgetComponent, AXPWidgetCoreElementAPI, AXPWidgetCoreService, AXPWidgetRendererDirective } from '@acorex-platform/framework-client/layout/widget-core';
|
|
19
19
|
import * as i1 from '@angular/router';
|
|
20
20
|
import { ParamMap, ResolveFn, RedirectCommand } from '@angular/router';
|
|
21
21
|
import * as rxjs from 'rxjs';
|
|
22
22
|
import { Subject } from 'rxjs';
|
|
23
|
-
import * as
|
|
23
|
+
import * as i6 from '@acorex-platform/framework-client/layout/builder';
|
|
24
24
|
import { IActionBuilder, AXPDialogRef, IFormFieldBuilder } from '@acorex-platform/framework-client/layout/builder';
|
|
25
25
|
import { AXPSessionService } from '@acorex-platform/framework-client/auth';
|
|
26
|
-
import { AXPQueryExecutor, AXPCommandService } from '@acorex-platform/framework-client/runtime';
|
|
26
|
+
import { AXPQueryExecutor, AXPCommandService, AXPCommandMiddleware, AXPQueryMiddleware } from '@acorex-platform/framework-client/runtime';
|
|
27
|
+
import { AXCFileUploaderCapabilities, AXPFileStorageService, AXPLocalEntityPolicy, AXPLocalEntityRelatedOption, AXPLocalEntityEngine } from '@acorex-platform/framework-client/common';
|
|
28
|
+
export { commandMessageTextForError } from '@acorex-platform/framework-client/common';
|
|
27
29
|
import { AXTreeViewNode, AXTreeViewComponent, AXTreeViewNodeSelectEvent } from '@acorex/components/tree-view';
|
|
28
30
|
import { AXPopupSizeType, AXPopupService } from '@acorex/components/popup';
|
|
29
31
|
import { AXBasePageComponent } from '@acorex/components/page';
|
|
30
32
|
import { AXFormatService } from '@acorex/core/format';
|
|
31
33
|
import { AXTagBoxComponent } from '@acorex/components/tag-box';
|
|
32
34
|
import { AXPProviderSelectWidgetEditBase, AXPDataListWidgetComponentOptions } from '@acorex-platform/framework-client/layout/widgets';
|
|
33
|
-
import * as _acorex_platform_framework_client_workflow from '@acorex-platform/framework-client/workflow';
|
|
34
|
-
import { AXPWorkflowEventService } from '@acorex-platform/framework-client/workflow';
|
|
35
|
-
import { AXCFileUploaderCapabilities, AXPFileStorageService } from '@acorex-platform/framework-client/common';
|
|
36
|
-
export { commandMessageTextForError } from '@acorex-platform/framework-client/common';
|
|
37
35
|
import * as _acorex_platform_framework_client_layout_entity from '@acorex-platform/framework-client/layout/entity';
|
|
38
36
|
import { AXPopoverComponent } from '@acorex/components/popover';
|
|
39
|
-
import { AXUploaderFileChangeEvent } from '@acorex/cdk/uploader';
|
|
40
37
|
import * as _acorex_core_translation from '@acorex/core/translation';
|
|
41
38
|
import { AXTranslationService } from '@acorex/core/translation';
|
|
42
39
|
|
|
@@ -47,9 +44,12 @@ declare class AXPCreateEntityCommand implements AXPCommand<any, any> {
|
|
|
47
44
|
private translationService;
|
|
48
45
|
private settingsService;
|
|
49
46
|
private openEntityDetailsCommand;
|
|
50
|
-
private
|
|
47
|
+
private entityEvents;
|
|
51
48
|
protected context: {};
|
|
52
|
-
execute(input
|
|
49
|
+
execute(input?: AXPEntityActionCommandInput & {
|
|
50
|
+
dialogSize?: unknown;
|
|
51
|
+
}): AXPCommandExecuteResultPromise<any>;
|
|
52
|
+
private dispatchCreateListRefresh;
|
|
53
53
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPCreateEntityCommand, never>;
|
|
54
54
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPCreateEntityCommand>;
|
|
55
55
|
}
|
|
@@ -62,11 +62,9 @@ declare class AXPCreateEntityCommand implements AXPCommand<any, any> {
|
|
|
62
62
|
* Applied in the AI module when normalizing tool arguments (not in the generic command executor).
|
|
63
63
|
*/
|
|
64
64
|
declare const axpCreateEntityAiToolInputDefaults: {
|
|
65
|
-
readonly
|
|
66
|
-
readonly
|
|
67
|
-
readonly
|
|
68
|
-
readonly redirect: false;
|
|
69
|
-
};
|
|
65
|
+
readonly options: {
|
|
66
|
+
readonly process: {
|
|
67
|
+
readonly redirect: false;
|
|
70
68
|
};
|
|
71
69
|
};
|
|
72
70
|
};
|
|
@@ -109,52 +107,25 @@ declare const axpCreateEntityCommandDefinition: {
|
|
|
109
107
|
};
|
|
110
108
|
tags: string[];
|
|
111
109
|
toolInputDefaults: {
|
|
112
|
-
|
|
113
|
-
readonly
|
|
114
|
-
readonly
|
|
115
|
-
readonly redirect: false;
|
|
116
|
-
};
|
|
110
|
+
options: {
|
|
111
|
+
readonly process: {
|
|
112
|
+
readonly redirect: false;
|
|
117
113
|
};
|
|
118
114
|
};
|
|
119
115
|
};
|
|
120
116
|
};
|
|
121
|
-
categories:
|
|
117
|
+
categories: _acorex_platform_framework_shared_core.AXPDefinitionCategory[];
|
|
122
118
|
};
|
|
123
119
|
|
|
124
|
-
|
|
125
|
-
source: string;
|
|
126
|
-
ids: string[];
|
|
127
|
-
}
|
|
128
|
-
interface AXPEntityDeletePerformInput {
|
|
129
|
-
entity?: string;
|
|
130
|
-
data?: unknown;
|
|
131
|
-
entities?: AXPEntityDeleteOptions[];
|
|
132
|
-
meta?: unknown;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
interface AXPDeleteEntityCommandInput {
|
|
136
|
-
entity?: string;
|
|
137
|
-
data?: unknown;
|
|
138
|
-
entities?: AXPEntityDeletePerformInput['entities'];
|
|
139
|
-
meta?: unknown;
|
|
140
|
-
options?: Record<string, unknown>;
|
|
141
|
-
__context__?: {
|
|
142
|
-
entity?: string;
|
|
143
|
-
data?: unknown;
|
|
144
|
-
entities?: AXPEntityDeletePerformInput['entities'];
|
|
145
|
-
meta?: unknown;
|
|
146
|
-
options?: Record<string, unknown>;
|
|
147
|
-
};
|
|
148
|
-
__metadata__?: unknown;
|
|
149
|
-
}
|
|
120
|
+
type AXPDeleteEntityCommandInput = AXPEntityActionCommandInput;
|
|
150
121
|
/**
|
|
151
122
|
* Confirms then deletes entity record(s). Replaces the former `delete-entity` workflow.
|
|
152
123
|
*/
|
|
153
|
-
declare class AXPDeleteEntityCommand implements AXPCommand<AXPDeleteEntityCommandInput
|
|
124
|
+
declare class AXPDeleteEntityCommand implements AXPCommand<AXPDeleteEntityCommandInput> {
|
|
154
125
|
private readonly dialogService;
|
|
155
126
|
private readonly translationService;
|
|
156
127
|
private readonly deletePerform;
|
|
157
|
-
execute(input?: AXPDeleteEntityCommandInput):
|
|
128
|
+
execute(input?: AXPDeleteEntityCommandInput): AXPCommandExecuteResultPromise;
|
|
158
129
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPDeleteEntityCommand, never>;
|
|
159
130
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPDeleteEntityCommand>;
|
|
160
131
|
}
|
|
@@ -182,7 +153,7 @@ declare const axpDeleteEntityCommandDefinition: {
|
|
|
182
153
|
ai: {
|
|
183
154
|
tags: string[];
|
|
184
155
|
};
|
|
185
|
-
categories:
|
|
156
|
+
categories: _acorex_platform_framework_shared_core.AXPDefinitionCategory[];
|
|
186
157
|
};
|
|
187
158
|
|
|
188
159
|
interface AXPOpenEntityListCondition {
|
|
@@ -193,25 +164,17 @@ interface AXPOpenEntityListCondition {
|
|
|
193
164
|
};
|
|
194
165
|
value?: unknown;
|
|
195
166
|
}
|
|
196
|
-
|
|
197
|
-
entity?: string;
|
|
167
|
+
type AXPOpenEntityListCommandInput = AXPEntityActionCommandInput & {
|
|
198
168
|
conditions?: AXPOpenEntityListCondition[];
|
|
199
|
-
|
|
200
|
-
entity?: string;
|
|
201
|
-
conditions?: AXPOpenEntityListCondition[];
|
|
202
|
-
options?: {
|
|
203
|
-
conditions?: AXPOpenEntityListCondition[];
|
|
204
|
-
};
|
|
205
|
-
};
|
|
206
|
-
}
|
|
169
|
+
};
|
|
207
170
|
/**
|
|
208
171
|
* Navigates to an entity master list, optionally with filter query params.
|
|
209
172
|
* Replaces the former `show-list-view` workflow.
|
|
210
173
|
*/
|
|
211
|
-
declare class AXPOpenEntityListCommand implements AXPCommand<AXPOpenEntityListCommandInput
|
|
174
|
+
declare class AXPOpenEntityListCommand implements AXPCommand<AXPOpenEntityListCommandInput> {
|
|
212
175
|
private readonly router;
|
|
213
176
|
private readonly sessionService;
|
|
214
|
-
execute(input?: AXPOpenEntityListCommandInput):
|
|
177
|
+
execute(input?: AXPOpenEntityListCommandInput): AXPCommandExecuteResultPromise;
|
|
215
178
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPOpenEntityListCommand, never>;
|
|
216
179
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPOpenEntityListCommand>;
|
|
217
180
|
}
|
|
@@ -239,7 +202,7 @@ declare const axpOpenEntityListCommandDefinition: {
|
|
|
239
202
|
ai: {
|
|
240
203
|
tags: string[];
|
|
241
204
|
};
|
|
242
|
-
categories:
|
|
205
|
+
categories: _acorex_platform_framework_shared_core.AXPDefinitionCategory[];
|
|
243
206
|
};
|
|
244
207
|
|
|
245
208
|
declare class AXPEditFileUploaderCommand implements AXPCommand<{
|
|
@@ -264,7 +227,7 @@ declare class AXPEditFileUploaderCommand implements AXPCommand<{
|
|
|
264
227
|
excludePlugins?: string[];
|
|
265
228
|
enableTitleDescription?: boolean;
|
|
266
229
|
isNewFile?: boolean;
|
|
267
|
-
}):
|
|
230
|
+
}): AXPCommandExecuteResultPromise<AXPFileListItem>;
|
|
268
231
|
private showEditDialog;
|
|
269
232
|
/**
|
|
270
233
|
* Build form fields from hook items (old format parameters)
|
|
@@ -310,6 +273,10 @@ declare class AXPFileListComponent implements OnInit, OnDestroy {
|
|
|
310
273
|
/** `inline`: label + divider; `menu`: compact list for popovers/panels. */
|
|
311
274
|
linksLayout: _angular_core.InputSignal<"inline" | "menu">;
|
|
312
275
|
files: _angular_core.InputSignal<AXPFileListItem[]>;
|
|
276
|
+
accept: _angular_core.InputSignal<string | undefined>;
|
|
277
|
+
maxFileSize: _angular_core.InputSignal<number | undefined>;
|
|
278
|
+
/** When true, empty state copy mentions click/drag to upload. */
|
|
279
|
+
showUploadZoneHint: _angular_core.InputSignal<boolean>;
|
|
313
280
|
plugins: _angular_core.InputSignal<{
|
|
314
281
|
name: string;
|
|
315
282
|
options?: unknown;
|
|
@@ -321,6 +288,11 @@ declare class AXPFileListComponent implements OnInit, OnDestroy {
|
|
|
321
288
|
* The template will handle the visual differences based on the status.
|
|
322
289
|
*/
|
|
323
290
|
displayFiles: _angular_core.Signal<AXPFileListItem[]>;
|
|
291
|
+
protected emptyStateIcon: _angular_core.Signal<"fa-light fa-cloud-arrow-up" | "fa-light fa-folder-open">;
|
|
292
|
+
protected emptyStateDescription: _angular_core.Signal<{
|
|
293
|
+
key: _acorex_platform_framework_client_layout_components.FileUploaderEmptyStateDescriptionKey;
|
|
294
|
+
params: Record<string, string>;
|
|
295
|
+
}>;
|
|
324
296
|
private fileIdToActions;
|
|
325
297
|
private globalActions;
|
|
326
298
|
/** Suppress duplicate downloads from double-click (two click events). */
|
|
@@ -359,7 +331,7 @@ declare class AXPFileListComponent implements OnInit, OnDestroy {
|
|
|
359
331
|
runAction(action: any): Promise<void>;
|
|
360
332
|
protected getActionColor(action: any): string;
|
|
361
333
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPFileListComponent, never>;
|
|
362
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPFileListComponent, "axp-file-list", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "fileEditable": { "alias": "fileEditable"; "required": false; "isSignal": true; }; "enableTitleDescription": { "alias": "enableTitleDescription"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "titleKey": { "alias": "titleKey"; "required": false; "isSignal": true; }; "showLabel": { "alias": "showLabel"; "required": false; "isSignal": true; }; "linksLayout": { "alias": "linksLayout"; "required": false; "isSignal": true; }; "files": { "alias": "files"; "required": false; "isSignal": true; }; "plugins": { "alias": "plugins"; "required": false; "isSignal": true; }; "excludePlugins": { "alias": "excludePlugins"; "required": false; "isSignal": true; }; "capabilities": { "alias": "capabilities"; "required": false; "isSignal": true; }; }, { "onRemove": "onRemove"; "onRevert": "onRevert"; "onRename": "onRename"; }, never, never, true, never>;
|
|
334
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPFileListComponent, "axp-file-list", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "fileEditable": { "alias": "fileEditable"; "required": false; "isSignal": true; }; "enableTitleDescription": { "alias": "enableTitleDescription"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "titleKey": { "alias": "titleKey"; "required": false; "isSignal": true; }; "showLabel": { "alias": "showLabel"; "required": false; "isSignal": true; }; "linksLayout": { "alias": "linksLayout"; "required": false; "isSignal": true; }; "files": { "alias": "files"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; "isSignal": true; }; "showUploadZoneHint": { "alias": "showUploadZoneHint"; "required": false; "isSignal": true; }; "plugins": { "alias": "plugins"; "required": false; "isSignal": true; }; "excludePlugins": { "alias": "excludePlugins"; "required": false; "isSignal": true; }; "capabilities": { "alias": "capabilities"; "required": false; "isSignal": true; }; }, { "onRemove": "onRemove"; "onRevert": "onRevert"; "onRename": "onRename"; }, never, never, true, never>;
|
|
363
335
|
}
|
|
364
336
|
|
|
365
337
|
/** Stable fingerprint for one file row; ignores Blob binary content. */
|
|
@@ -401,29 +373,31 @@ declare function resolveAttachmentFieldPath(options: Record<string, unknown>, fi
|
|
|
401
373
|
declare function isAttachmentFieldPresentOnRow(rowData: Record<string, unknown> | undefined, fieldPath: string | undefined): boolean;
|
|
402
374
|
declare function resolveFileUploaderEntityScope(options: Record<string, unknown>, rowData: Record<string, unknown> | undefined, fieldFallback?: string): AXPFileUploaderEntityFilesScope | undefined;
|
|
403
375
|
|
|
404
|
-
interface
|
|
376
|
+
interface AXPFileUploaderLoadFilesQueryInput extends AXPFileUploaderEntityFilesScope {
|
|
405
377
|
}
|
|
406
|
-
interface
|
|
378
|
+
interface AXPFileUploaderLoadFilesQueryResult {
|
|
407
379
|
files: AXPFileListItem[];
|
|
408
380
|
/** Count including file-id references, not only hydrated AXPFileListItem rows. */
|
|
409
381
|
count: number;
|
|
410
382
|
}
|
|
411
|
-
declare class AXPFileUploaderLoadFilesQuery implements AXPQuery<
|
|
412
|
-
private readonly
|
|
413
|
-
fetch(input:
|
|
383
|
+
declare class AXPFileUploaderLoadFilesQuery implements AXPQuery<AXPFileUploaderLoadFilesQueryInput, AXPFileUploaderLoadFilesQueryResult> {
|
|
384
|
+
private readonly entityRuntime;
|
|
385
|
+
fetch(input: AXPFileUploaderLoadFilesQueryInput): AXPQueryFetchResultPromise<AXPFileUploaderLoadFilesQueryResult>;
|
|
414
386
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPFileUploaderLoadFilesQuery, never>;
|
|
415
387
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPFileUploaderLoadFilesQuery>;
|
|
416
388
|
}
|
|
417
389
|
|
|
418
|
-
interface
|
|
390
|
+
interface AXPFileUploaderSaveFilesCommandInput extends AXPFileUploaderEntityFilesScope {
|
|
419
391
|
files: AXPFileListItem[];
|
|
420
392
|
}
|
|
421
|
-
interface
|
|
393
|
+
interface AXPFileUploaderSaveFilesCommandResult {
|
|
422
394
|
entityData: Record<string, unknown>;
|
|
423
395
|
}
|
|
424
|
-
declare class AXPFileUploaderSaveFilesCommand implements AXPCommand<
|
|
425
|
-
private readonly
|
|
426
|
-
execute(input:
|
|
396
|
+
declare class AXPFileUploaderSaveFilesCommand implements AXPCommand<AXPFileUploaderSaveFilesCommandInput, AXPFileUploaderSaveFilesCommandResult> {
|
|
397
|
+
private readonly entityRuntime;
|
|
398
|
+
execute(input: AXPFileUploaderSaveFilesCommandInput): AXPCommandExecuteResultPromise<AXPFileUploaderSaveFilesCommandResult>;
|
|
399
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPFileUploaderSaveFilesCommand, never>;
|
|
400
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPFileUploaderSaveFilesCommand>;
|
|
427
401
|
}
|
|
428
402
|
|
|
429
403
|
/** Serializable upload action exposed via widget `api().getUploadActions()`. */
|
|
@@ -456,7 +430,7 @@ declare class AXPFileUploaderWidgetColumnComponent extends AXPColumnWidgetCompon
|
|
|
456
430
|
protected readonly fileListTrigger: _angular_core.Signal<ElementRef<any> | undefined>;
|
|
457
431
|
protected readonly fileListPopover: _angular_core.Signal<AXPopoverComponent | undefined>;
|
|
458
432
|
protected readonly popoverFiles: _angular_core.WritableSignal<AXPFileListItem[]>;
|
|
459
|
-
protected readonly loadStatus: _angular_core.WritableSignal<"
|
|
433
|
+
protected readonly loadStatus: _angular_core.WritableSignal<"error" | "idle" | "loading" | "ready">;
|
|
460
434
|
protected readonly loadError: _angular_core.WritableSignal<string | null>;
|
|
461
435
|
protected readonly isPopoverOpen: _angular_core.WritableSignal<boolean>;
|
|
462
436
|
private readonly entityDef;
|
|
@@ -482,6 +456,7 @@ declare class AXPFileUploaderWidgetColumnComponent extends AXPColumnWidgetCompon
|
|
|
482
456
|
declare class AXPFileUploaderWidgetEditComponent extends AXPValueWidgetComponent<AXPFileListItem[] | undefined> {
|
|
483
457
|
private readonly hooks;
|
|
484
458
|
private readonly chooserService;
|
|
459
|
+
private readonly settingsService;
|
|
485
460
|
private readonly commandExecutor;
|
|
486
461
|
private readonly toastService;
|
|
487
462
|
private readonly translateService;
|
|
@@ -514,10 +489,12 @@ declare class AXPFileUploaderWidgetEditComponent extends AXPValueWidgetComponent
|
|
|
514
489
|
protected showBorder: _angular_core.Signal<boolean>;
|
|
515
490
|
protected showAddItemButton: _angular_core.Signal<boolean>;
|
|
516
491
|
protected maxFileSize: _angular_core.Signal<number>;
|
|
492
|
+
protected isDropZoneInteractive: _angular_core.Signal<boolean>;
|
|
517
493
|
protected isDragOver: _angular_core.WritableSignal<boolean>;
|
|
518
494
|
protected readonly isChoosing: _angular_core.WritableSignal<boolean>;
|
|
519
495
|
protected readonly chooserContext: _angular_core.Signal<AXPFileChooserContext>;
|
|
520
496
|
ngOnInit(): void;
|
|
497
|
+
private applyChooserPlatformSettings;
|
|
521
498
|
setValue(value: AXPFileListItem[] | null | undefined): void;
|
|
522
499
|
/** Align dirty baseline with persisted attachments (call when record loads or after discard remount). */
|
|
523
500
|
syncBaseline(saved: AXPFileListItem[] | undefined): void;
|
|
@@ -532,17 +509,18 @@ declare class AXPFileUploaderWidgetEditComponent extends AXPValueWidgetComponent
|
|
|
532
509
|
private notifyUploadActionsChanged;
|
|
533
510
|
private evaluateDirty;
|
|
534
511
|
private setDirty;
|
|
512
|
+
protected onDropZoneClick(event: MouseEvent): Promise<void>;
|
|
513
|
+
private openSystemFileChooser;
|
|
535
514
|
protected onChooserItemsChanged(next: AXPFileListItem[]): Promise<void>;
|
|
515
|
+
private applyChooserResult;
|
|
536
516
|
private configureFromHooks;
|
|
537
517
|
/**
|
|
538
518
|
* Process items returned from file chooser providers (device, drive, etc.).
|
|
539
519
|
*/
|
|
540
520
|
private processChosenItems;
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
*/
|
|
545
|
-
private processFiles;
|
|
521
|
+
protected onDragOver(event: DragEvent): void;
|
|
522
|
+
protected onDragLeave(event: DragEvent): void;
|
|
523
|
+
protected onDrop(event: DragEvent): Promise<void>;
|
|
546
524
|
/**
|
|
547
525
|
* Show edit dialog per file and add only those submitted. Used when showEditDialogAfterSelect is true (both from zone and from dropdown actions).
|
|
548
526
|
*/
|
|
@@ -551,10 +529,6 @@ declare class AXPFileUploaderWidgetEditComponent extends AXPValueWidgetComponent
|
|
|
551
529
|
private validateListItemsForUpload;
|
|
552
530
|
private notifyRejectedFiles;
|
|
553
531
|
private filterFilesByAcceptAndMaxSize;
|
|
554
|
-
private isUnrestrictedAccept;
|
|
555
|
-
private fileMatchesAccept;
|
|
556
|
-
private matchesMimePattern;
|
|
557
|
-
private matchesCategoryByExtension;
|
|
558
532
|
protected files: _angular_core.Signal<AXPFileListItem[]>;
|
|
559
533
|
handleFileRemove(file: AXPFileListItem): void;
|
|
560
534
|
removeFile(file: AXPFileListItem): void;
|
|
@@ -571,7 +545,6 @@ declare class AXPFileUploaderWidgetEditComponent extends AXPValueWidgetComponent
|
|
|
571
545
|
clear(): void;
|
|
572
546
|
protected readonly capabilities: AXCFileUploaderCapabilities;
|
|
573
547
|
private addFilesWithValidation;
|
|
574
|
-
onFileChange(event: AXUploaderFileChangeEvent): void;
|
|
575
548
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPFileUploaderWidgetEditComponent, never>;
|
|
576
549
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPFileUploaderWidgetEditComponent, "axp-file-uploader-widget-edit", never, {}, {}, never, never, true, never>;
|
|
577
550
|
}
|
|
@@ -664,7 +637,7 @@ declare class AXPFileUploaderWidgetService {
|
|
|
664
637
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPFileUploaderWidgetService>;
|
|
665
638
|
}
|
|
666
639
|
|
|
667
|
-
|
|
640
|
+
type AXPShowFileUploaderPopupCommandInput = AXPEntityActionCommandInput & {
|
|
668
641
|
options?: {
|
|
669
642
|
key?: string;
|
|
670
643
|
readonly?: boolean | string;
|
|
@@ -687,24 +660,18 @@ interface AXPShowFileUploaderPopupCommandInput {
|
|
|
687
660
|
entityName?: string;
|
|
688
661
|
id?: string;
|
|
689
662
|
};
|
|
690
|
-
|
|
691
|
-
__context__?: {
|
|
692
|
-
entity?: string;
|
|
693
|
-
options?: AXPShowFileUploaderPopupCommandInput['options'];
|
|
694
|
-
};
|
|
695
|
-
__metadata__?: unknown;
|
|
696
|
-
}
|
|
663
|
+
};
|
|
697
664
|
/**
|
|
698
665
|
* Opens the file uploader popup, saves files, then dispatches modify side-effects.
|
|
699
666
|
* Replaces the former `show-file-uploader-popup` workflow (popup + toast + modify confirmed).
|
|
700
667
|
*/
|
|
701
|
-
declare class AXPShowFileUploaderPopupCommand implements AXPCommand<AXPShowFileUploaderPopupCommandInput
|
|
668
|
+
declare class AXPShowFileUploaderPopupCommand implements AXPCommand<AXPShowFileUploaderPopupCommandInput> {
|
|
702
669
|
private readonly fileUploaderWidgetService;
|
|
703
670
|
private readonly toastService;
|
|
704
671
|
private readonly translationService;
|
|
705
672
|
private readonly settingsService;
|
|
706
|
-
private readonly
|
|
707
|
-
execute(input?: AXPShowFileUploaderPopupCommandInput):
|
|
673
|
+
private readonly entityEvents;
|
|
674
|
+
execute(input?: AXPShowFileUploaderPopupCommandInput): AXPCommandExecuteResultPromise;
|
|
708
675
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPShowFileUploaderPopupCommand, never>;
|
|
709
676
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPShowFileUploaderPopupCommand>;
|
|
710
677
|
}
|
|
@@ -732,7 +699,7 @@ declare const axpShowFileUploaderPopupCommandDefinition: {
|
|
|
732
699
|
ai: {
|
|
733
700
|
tags: string[];
|
|
734
701
|
};
|
|
735
|
-
categories:
|
|
702
|
+
categories: _acorex_platform_framework_shared_core.AXPDefinitionCategory[];
|
|
736
703
|
};
|
|
737
704
|
|
|
738
705
|
declare class AXPUpdateEntityCommand implements AXPCommand<any, any> {
|
|
@@ -744,49 +711,107 @@ declare class AXPUpdateEntityCommand implements AXPCommand<any, any> {
|
|
|
744
711
|
private readonly formatService;
|
|
745
712
|
private readonly expressionEvaluator;
|
|
746
713
|
private readonly contextEvalFactory;
|
|
747
|
-
private readonly
|
|
748
|
-
execute(input
|
|
714
|
+
private readonly entityEvents;
|
|
715
|
+
execute(input?: AXPEntityActionCommandInput & {
|
|
716
|
+
dialogSize?: unknown;
|
|
717
|
+
}): AXPCommandExecuteResultPromise<any>;
|
|
749
718
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPUpdateEntityCommand, never>;
|
|
750
719
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPUpdateEntityCommand>;
|
|
751
720
|
}
|
|
752
721
|
|
|
722
|
+
interface AXPUpdateEntityStatusCommandInput {
|
|
723
|
+
/** Full entity key, e.g. `SecurityManagement.User`. */
|
|
724
|
+
entity: string;
|
|
725
|
+
/** Target status name/value. */
|
|
726
|
+
status: string;
|
|
727
|
+
/** Field to patch (defaults to `statusId`). */
|
|
728
|
+
statusField?: string;
|
|
729
|
+
/** Single record id. */
|
|
730
|
+
id?: string;
|
|
731
|
+
/** Bulk record ids. */
|
|
732
|
+
ids?: string[];
|
|
733
|
+
}
|
|
734
|
+
/**
|
|
735
|
+
* Default handler for status-chip transitions when no custom transition.command is set.
|
|
736
|
+
* Patches only the status field via the entity update path (no edit dialog).
|
|
737
|
+
*/
|
|
738
|
+
declare class AXPUpdateEntityStatusCommand implements AXPCommand<AXPUpdateEntityStatusCommandInput> {
|
|
739
|
+
private readonly entityService;
|
|
740
|
+
private readonly entityRegistry;
|
|
741
|
+
private readonly translationService;
|
|
742
|
+
private readonly entityEvents;
|
|
743
|
+
execute(input: AXPUpdateEntityStatusCommandInput): AXPCommandExecuteResultPromise;
|
|
744
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPUpdateEntityStatusCommand, never>;
|
|
745
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPUpdateEntityStatusCommand>;
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
/**
|
|
749
|
+
* Build-time only. Do not import from Angular modules.
|
|
750
|
+
*/
|
|
751
|
+
declare const axpUpdateEntityStatusCommandDefinition: {
|
|
752
|
+
key: string;
|
|
753
|
+
title: string;
|
|
754
|
+
description: string;
|
|
755
|
+
executionMode: "frontend";
|
|
756
|
+
inputs: ({
|
|
757
|
+
name: string;
|
|
758
|
+
title: string;
|
|
759
|
+
description: string;
|
|
760
|
+
interface: {
|
|
761
|
+
name: string;
|
|
762
|
+
};
|
|
763
|
+
validations: {
|
|
764
|
+
rule: string;
|
|
765
|
+
}[];
|
|
766
|
+
} | {
|
|
767
|
+
name: string;
|
|
768
|
+
title: string;
|
|
769
|
+
description: string;
|
|
770
|
+
interface: {
|
|
771
|
+
name: string;
|
|
772
|
+
};
|
|
773
|
+
validations?: undefined;
|
|
774
|
+
})[];
|
|
775
|
+
outcomes: {
|
|
776
|
+
mode: "dynamic";
|
|
777
|
+
summary: string;
|
|
778
|
+
derivesFrom: string;
|
|
779
|
+
};
|
|
780
|
+
capabilities: "ai"[];
|
|
781
|
+
ai: {
|
|
782
|
+
tags: string[];
|
|
783
|
+
};
|
|
784
|
+
categories: _acorex_platform_framework_shared_core.AXPDefinitionCategory[];
|
|
785
|
+
};
|
|
786
|
+
|
|
753
787
|
declare class AXPViewEntityDetailsCommand implements AXPCommand<any, any> {
|
|
754
788
|
private readonly entityForm;
|
|
755
789
|
private readonly entityService;
|
|
756
790
|
private readonly translationService;
|
|
757
791
|
private readonly expressionEvaluator;
|
|
758
792
|
private readonly contextEvalFactory;
|
|
759
|
-
execute(input
|
|
793
|
+
execute(input?: AXPEntityActionCommandInput & {
|
|
794
|
+
excludeProperties?: unknown;
|
|
795
|
+
}): AXPCommandExecuteResultPromise<any>;
|
|
760
796
|
private resolveDialogTitle;
|
|
761
797
|
private loadRecordContext;
|
|
762
798
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPViewEntityDetailsCommand, never>;
|
|
763
799
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPViewEntityDetailsCommand>;
|
|
764
800
|
}
|
|
765
801
|
|
|
766
|
-
|
|
767
|
-
entity?: string;
|
|
768
|
-
data?: {
|
|
769
|
-
id: string;
|
|
770
|
-
};
|
|
771
|
-
__context__?: {
|
|
772
|
-
entity?: string;
|
|
773
|
-
data?: {
|
|
774
|
-
id: string;
|
|
775
|
-
};
|
|
776
|
-
};
|
|
777
|
-
}
|
|
802
|
+
type AXPOpenEntityDetailsCommandInput = AXPEntityActionCommandInput;
|
|
778
803
|
/**
|
|
779
804
|
* Generic command to open entity details view
|
|
780
805
|
* Can be used by any entity to navigate to its detail page
|
|
781
806
|
*/
|
|
782
|
-
declare class AXPOpenEntityDetailsCommand implements AXPCommand<AXPOpenEntityDetailsCommandInput
|
|
807
|
+
declare class AXPOpenEntityDetailsCommand implements AXPCommand<AXPOpenEntityDetailsCommandInput> {
|
|
783
808
|
private readonly router;
|
|
784
809
|
private readonly sessionService;
|
|
785
810
|
/**
|
|
786
811
|
* Execute the command to navigate to entity details
|
|
787
812
|
* @param input - Command input containing entity and data information
|
|
788
813
|
*/
|
|
789
|
-
execute(input?: AXPOpenEntityDetailsCommandInput):
|
|
814
|
+
execute(input?: AXPOpenEntityDetailsCommandInput): AXPCommandExecuteResultPromise;
|
|
790
815
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPOpenEntityDetailsCommand, never>;
|
|
791
816
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPOpenEntityDetailsCommand>;
|
|
792
817
|
}
|
|
@@ -909,25 +934,21 @@ declare class AXPEntityPreloadFiltersContainerComponent extends AXPPageLayoutBas
|
|
|
909
934
|
onApply(event: AXPPreloadFiltersApplyEvent): Promise<void>;
|
|
910
935
|
onShowAll(): Promise<void>;
|
|
911
936
|
private buildPreloadFilterQueries;
|
|
937
|
+
/**
|
|
938
|
+
* Filter widgets store `{ value, operation, displayText? }`; plain values are treated as equal filters.
|
|
939
|
+
*/
|
|
940
|
+
private unwrapFilterWidgetEntry;
|
|
912
941
|
private buildListQueryFilter;
|
|
913
942
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityPreloadFiltersContainerComponent, never>;
|
|
914
943
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityPreloadFiltersContainerComponent, "axp-entity-preload-filters-container", never, {}, {}, never, never, true, never>;
|
|
915
944
|
}
|
|
916
945
|
|
|
917
|
-
/**
|
|
918
|
-
* Data source definition provider that returns all entity names
|
|
919
|
-
* from entity loaders' list() (const.ts in each module).
|
|
920
|
-
*/
|
|
921
|
-
declare class AXPEntitiesListDataSourceDefinition implements AXPDataSourceDefinitionProvider {
|
|
922
|
-
private readonly entityResolver;
|
|
923
|
-
items(): Promise<AXPDataSourceDefinition[]>;
|
|
924
|
-
}
|
|
925
|
-
|
|
926
946
|
/**
|
|
927
947
|
* Built-in entity detail tabs from plugins. Sidebar order (after related page-list / page-detail
|
|
928
|
-
* tabs): meta-data-builder → attachments → gallery → documents → comments → dashboard →
|
|
948
|
+
* tabs): meta-data-builder → attachments → gallery → documents → comments → dashboard →
|
|
949
|
+
* reports → history (Change History stays last).
|
|
929
950
|
*/
|
|
930
|
-
type EntityDetailPluginPageSlot = 'meta-data-builder' | 'attachments' | 'gallery' | 'documents' | 'comments' | 'dashboard' | 'history';
|
|
951
|
+
type EntityDetailPluginPageSlot = 'meta-data-builder' | 'attachments' | 'gallery' | 'documents' | 'comments' | 'dashboard' | 'reports' | 'history';
|
|
931
952
|
/** Identifies an `entity.pages` entry when skipping its order during recomputation. */
|
|
932
953
|
interface SkipEntityComponentPageRef {
|
|
933
954
|
componentKey: string;
|
|
@@ -955,8 +976,8 @@ interface ResolveEntityPluginDetailPageOrderOptions {
|
|
|
955
976
|
*
|
|
956
977
|
* 1. Assigns finite `layout.order` values to related `page-list` / `page-detail` rows that omit
|
|
957
978
|
* `order` (the composer otherwise treats them as +Infinity).
|
|
958
|
-
* 2. Places plugin tabs in a fixed relative order: meta-data-builder → attachments →
|
|
959
|
-
* comments → history, after all related tabs.
|
|
979
|
+
* 2. Places plugin tabs in a fixed relative order: meta-data-builder → attachments → gallery →
|
|
980
|
+
* documents → comments → dashboard → reports → history, after all related tabs.
|
|
960
981
|
*/
|
|
961
982
|
declare function resolveEntityPluginDetailPageOrder(input: {
|
|
962
983
|
relatedEntities?: AXPRelatedEntity[];
|
|
@@ -1100,9 +1121,14 @@ declare class AXPEntityEventDispatcherService {
|
|
|
1100
1121
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityEventDispatcherService>;
|
|
1101
1122
|
}
|
|
1102
1123
|
|
|
1124
|
+
/**
|
|
1125
|
+
* Resolves sort order from master interface property layout.
|
|
1126
|
+
* Prefers top-level `layout.order`, then breakpoint `positions.*.order`.
|
|
1127
|
+
*/
|
|
1128
|
+
declare function resolveMasterInterfacePropertyOrder(layout: AXPEntityPropertyLayoutConfig | undefined, fallback: number): number;
|
|
1103
1129
|
/**
|
|
1104
1130
|
* Sort key for entries in `interfaces.master.{create|update|single}.properties`.
|
|
1105
|
-
* Uses `layout.order` when set and finite; otherwise the property index in that list.
|
|
1131
|
+
* Uses `layout.order` / `positions.*.order` when set and finite; otherwise the property index in that list.
|
|
1106
1132
|
*/
|
|
1107
1133
|
declare function getMasterInterfacePropertySortKey(interfaceRow: {
|
|
1108
1134
|
layout?: AXPEntityPropertyLayoutConfig | undefined;
|
|
@@ -1142,6 +1168,29 @@ interface AXPEntityListPagingState {
|
|
|
1142
1168
|
take: number;
|
|
1143
1169
|
skip: number;
|
|
1144
1170
|
}
|
|
1171
|
+
/** Default take used when loading hierarchical children via data-table expand. */
|
|
1172
|
+
declare const TREE_CHILDREN_QUERY_TAKE = 1000;
|
|
1173
|
+
/**
|
|
1174
|
+
* AXDataSource.getItemsByFilter reuses the current grid page skip/take.
|
|
1175
|
+
* When data-table expands a hierarchical row it sends a direct parentKey=equal filter;
|
|
1176
|
+
* reset paging so children are not clipped by the parent grid page.
|
|
1177
|
+
*/
|
|
1178
|
+
declare function resetPagingForTreeChildrenLoad(request: {
|
|
1179
|
+
skip?: number;
|
|
1180
|
+
take?: number;
|
|
1181
|
+
filter?: AXDataSourceFilterOption | null;
|
|
1182
|
+
}, parentKey: string | undefined | null, take?: number): void;
|
|
1183
|
+
/**
|
|
1184
|
+
* Returns true when the filter tree already constrains `parentKey`
|
|
1185
|
+
* (root `isEmpty`, children `equal`, or nested equivalents).
|
|
1186
|
+
*/
|
|
1187
|
+
declare function filterTouchesParentKey(filter: AXDataSourceFilterOption, parentKey: string): boolean;
|
|
1188
|
+
/**
|
|
1189
|
+
* Ensures hierarchical root loads keep `parentKey isEmpty` while preserving custom filters.
|
|
1190
|
+
* Call this in lookup/list loaders before query so storage does not replace custom filters.
|
|
1191
|
+
* Skips when the request already targets `parentKey` (e.g. children expand).
|
|
1192
|
+
*/
|
|
1193
|
+
declare function ensureHierarchicalRootFilter(filter: AXDataSourceFilterOption | null | undefined, parentKey: string | undefined | null): AXDataSourceFilterOption | undefined;
|
|
1145
1194
|
/**
|
|
1146
1195
|
* Applies take/skip to the data source without triggering {@link AXDataSource.load}.
|
|
1147
1196
|
*/
|
|
@@ -1262,14 +1311,13 @@ declare class AXPEntityMasterListViewModel {
|
|
|
1262
1311
|
private readonly _viewDef;
|
|
1263
1312
|
private readonly formatService;
|
|
1264
1313
|
private readonly session;
|
|
1265
|
-
private readonly
|
|
1314
|
+
private readonly entityEvents;
|
|
1266
1315
|
private readonly settings;
|
|
1267
1316
|
private readonly widgetResolver;
|
|
1268
1317
|
private readonly expressionEvaluator;
|
|
1269
1318
|
private readonly contextEvalFactory;
|
|
1270
1319
|
private readonly translation;
|
|
1271
1320
|
private readonly commandService;
|
|
1272
|
-
private readonly eventService;
|
|
1273
1321
|
private readonly queryExecutor;
|
|
1274
1322
|
private readonly filterOperatorMiddleware;
|
|
1275
1323
|
private readonly entityDefinitionRegistry;
|
|
@@ -1279,6 +1327,7 @@ declare class AXPEntityMasterListViewModel {
|
|
|
1279
1327
|
private lastAppliedFilterKey;
|
|
1280
1328
|
private hasQueryParamsFilters;
|
|
1281
1329
|
private routeQueryContextKey;
|
|
1330
|
+
private settingsUpdateChain;
|
|
1282
1331
|
private initialListSettingsApplied;
|
|
1283
1332
|
/** Persisted expanded row ids for hierarchical lists (per view). */
|
|
1284
1333
|
private readonly expandedRowIds;
|
|
@@ -1416,6 +1465,11 @@ declare class AXPEntityMasterListViewModel {
|
|
|
1416
1465
|
*/
|
|
1417
1466
|
updateExpandedRowId(rowId: string, expanded: boolean): void;
|
|
1418
1467
|
handleRowExpandChange(rowData: Record<string, unknown>): void;
|
|
1468
|
+
/**
|
|
1469
|
+
* User-applied filters to persist (excludes hidden view conditions and empty values).
|
|
1470
|
+
*/
|
|
1471
|
+
getPersistableFilterQueries(queries?: AXPFilterQuery[]): AXPFilterQuery[];
|
|
1472
|
+
private enqueueSettingsUpdate;
|
|
1419
1473
|
saveSettings(changesType: 'columnSizes' | 'columnOrders' | 'view' | 'pageSize' | 'listPaging' | 'filters' | 'sorts' | 'expandedRows' | 'listLayout' | 'cardContentExpanded', data?: unknown): Promise<void>;
|
|
1420
1474
|
selectedItems: _angular_core.WritableSignal<any[]>;
|
|
1421
1475
|
/**
|
|
@@ -1478,13 +1532,18 @@ declare class AXPEntityMasterListViewModel {
|
|
|
1478
1532
|
*/
|
|
1479
1533
|
applyFiltersFromQueryParams(filtersJson: string | null): boolean;
|
|
1480
1534
|
/**
|
|
1481
|
-
* Records the
|
|
1535
|
+
* Records the route query context after initial resolver / view init so the first
|
|
1482
1536
|
* subscription emission does not re-sync unnecessarily.
|
|
1537
|
+
*
|
|
1538
|
+
* @param overrides Merged over the snapshot (e.g. pending `view` written via `replaceUrl`).
|
|
1483
1539
|
*/
|
|
1484
|
-
markRouteQueryContextSynced(queryParamMap: ParamMap): void;
|
|
1540
|
+
markRouteQueryContextSynced(queryParamMap: ParamMap, overrides?: Record<string, string | null | undefined>): void;
|
|
1485
1541
|
/**
|
|
1486
1542
|
* Reacts to any route query param change while the list route is reused (`reuse: queryParamsChange`).
|
|
1487
1543
|
* Handles known keys (`view`, `filters`) and re-evaluates view visibility for expression-driven params.
|
|
1544
|
+
*
|
|
1545
|
+
* Data reload is owned by {@link applyFilterAndSort} → `events$` when criteria change.
|
|
1546
|
+
* `reloadList` stays false so callers do not issue a second `reloadListData` for the same transition.
|
|
1488
1547
|
*/
|
|
1489
1548
|
syncFromRouteQueryParams(queryParamMap: ParamMap): Promise<{
|
|
1490
1549
|
reloadList: boolean;
|
|
@@ -1503,15 +1562,31 @@ declare class AXPEntityMasterListViewModel {
|
|
|
1503
1562
|
get preloadFiltersDef(): AXPEntityListFilterDefinition[];
|
|
1504
1563
|
applyViewFilters(): Promise<void>;
|
|
1505
1564
|
resetFilters(): void;
|
|
1506
|
-
applyFilterAndSort(
|
|
1565
|
+
applyFilterAndSort(options?: {
|
|
1566
|
+
resetPagination?: boolean;
|
|
1567
|
+
}): Promise<void>;
|
|
1507
1568
|
private updateAppliedInlineFilterHighlightText;
|
|
1508
1569
|
private resolveMergeDetailProperty;
|
|
1509
1570
|
private allAvailableColumns;
|
|
1510
1571
|
visibleColumnCount: () => number;
|
|
1572
|
+
/**
|
|
1573
|
+
* Builds path-based `fields` for entity list queries from all configured columns.
|
|
1574
|
+
* Visibility is client-only and does not change which fields are requested.
|
|
1575
|
+
*/
|
|
1576
|
+
buildColumnQueryFields(): string[] | undefined;
|
|
1511
1577
|
columns: _angular_core.WritableSignal<AXPEntityListViewColumnViewModel[]>;
|
|
1512
|
-
resetColumns(): void
|
|
1578
|
+
resetColumns(): Promise<void>;
|
|
1513
1579
|
onColumnsChanged(columns: AXPEntityListViewColumnViewModel[]): Promise<void>;
|
|
1514
|
-
|
|
1580
|
+
/**
|
|
1581
|
+
* Builds list columns for the active view:
|
|
1582
|
+
* - `view.columns` is a whitelist (empty = all columns)
|
|
1583
|
+
* - string `options.visible` is evaluated against the master-list scope
|
|
1584
|
+
*/
|
|
1585
|
+
applyViewColumns(): Promise<void>;
|
|
1586
|
+
/**
|
|
1587
|
+
* Resolves column `options.visible` (boolean or expression) to a boolean for the current list scope.
|
|
1588
|
+
*/
|
|
1589
|
+
private resolveColumnVisibleExpression;
|
|
1515
1590
|
onColumnsOrderChanged(event: any): void;
|
|
1516
1591
|
private mergeDisplayFieldWithColumn;
|
|
1517
1592
|
private buildVirtualDisplayProperty;
|
|
@@ -1621,7 +1696,7 @@ declare class AXPEntityMasterSingleViewModel {
|
|
|
1621
1696
|
private readonly _viewDef;
|
|
1622
1697
|
private readonly session;
|
|
1623
1698
|
private readonly formatService;
|
|
1624
|
-
private readonly
|
|
1699
|
+
private readonly entityEvents;
|
|
1625
1700
|
private readonly commandService;
|
|
1626
1701
|
private readonly destroyed;
|
|
1627
1702
|
private translateService;
|
|
@@ -1711,6 +1786,267 @@ declare class AXPEntityMasterUpdateViewModelFactory {
|
|
|
1711
1786
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityMasterUpdateViewModelFactory>;
|
|
1712
1787
|
}
|
|
1713
1788
|
|
|
1789
|
+
/** Raw entity IO surface exposed on middleware context as `ctx.entities` (alias `ctx.backend`). */
|
|
1790
|
+
interface AXPEntityAccessPort {
|
|
1791
|
+
get dbName(): string;
|
|
1792
|
+
initial<T>(entityName: string, collection: T[]): Promise<T[]>;
|
|
1793
|
+
getOne<T>(entityName: string, id: unknown): Promise<T>;
|
|
1794
|
+
getAll<T>(entityName: string): Promise<T[]>;
|
|
1795
|
+
query<T>(entityName: string, request: AXPQueryRequest): Promise<AXPPagedListResult<T>>;
|
|
1796
|
+
updateOne<T>(entityName: string, id: unknown, data: Omit<Partial<AXPEntityUpdateDto<unknown>>, 'id'>): Promise<T>;
|
|
1797
|
+
deleteOne(entityName: string, id: unknown): Promise<void>;
|
|
1798
|
+
insertOne(entityName: string, entity: AXPEntityCreateDto): Promise<string>;
|
|
1799
|
+
count(entityName: string, request: Pick<AXPQueryRequest, 'filter' | 'sort'>): Promise<number>;
|
|
1800
|
+
queryAll<T>(entityName: string, request: Pick<AXPQueryRequest, 'filter' | 'sort'>, options?: AXPEntityQueryAllOptions): Promise<AXPEntityQueryAllResult<T>>;
|
|
1801
|
+
getMany<T>(entityName: string, ids: unknown[]): Promise<(T | null)[]>;
|
|
1802
|
+
exists(entityName: string, id: unknown): Promise<boolean>;
|
|
1803
|
+
upsertOne(entityName: string, entity: AXPEntityCreateDto, options?: {
|
|
1804
|
+
merge?: boolean;
|
|
1805
|
+
}): Promise<string>;
|
|
1806
|
+
aggregate(entityName: string, request: AXPEntityAggregateRequest, options?: AXPEntityAggregateOptions): Promise<AXPEntityAggregateResult>;
|
|
1807
|
+
}
|
|
1808
|
+
interface AXPEntityMiddlewareContext<TKey = unknown, TDetailDto extends AXPEntityDetailDto<TKey> = AXPEntityDetailDto<TKey>, TListItemDto extends AXPEntityListItemDto<TKey> = AXPEntityListItemDto<TKey>, TCreateDto extends AXPEntityCreateDto = AXPEntityCreateDto, TUpdateDto extends AXPEntityUpdateDto<TKey> = AXPEntityUpdateDto<TKey>> {
|
|
1809
|
+
op: AXPEntityOp;
|
|
1810
|
+
entityName: string;
|
|
1811
|
+
id?: TKey;
|
|
1812
|
+
/** Entity payload for create/update (loose for middleware; wrapper assigns typed DTOs). */
|
|
1813
|
+
data?: any;
|
|
1814
|
+
request?: AXPQueryRequest;
|
|
1815
|
+
previous?: TDetailDto;
|
|
1816
|
+
result?: any;
|
|
1817
|
+
locals: Map<string, unknown>;
|
|
1818
|
+
/** Nested entity reads/writes without re-entering client entity middleware. */
|
|
1819
|
+
entities: {
|
|
1820
|
+
getOne: (entityName: string, id: TKey) => Promise<TDetailDto>;
|
|
1821
|
+
insertOne: (entityName: string, entity: TCreateDto) => Promise<TKey>;
|
|
1822
|
+
query: (entityName: string, request: AXPQueryRequest) => Promise<AXPPagedListResult<TListItemDto>>;
|
|
1823
|
+
updateOne: (entityName: string, id: TKey, data: Partial<TUpdateDto>) => Promise<TDetailDto>;
|
|
1824
|
+
deleteOne: (entityName: string, id: TKey) => Promise<void>;
|
|
1825
|
+
count: (entityName: string, request: Pick<AXPQueryRequest, 'filter' | 'sort'>) => Promise<number>;
|
|
1826
|
+
queryAll: (entityName: string, request: Pick<AXPQueryRequest, 'filter' | 'sort'>, options?: AXPEntityQueryAllOptions) => Promise<AXPEntityQueryAllResult<TListItemDto>>;
|
|
1827
|
+
getMany: (entityName: string, ids: TKey[]) => Promise<(TListItemDto | null)[]>;
|
|
1828
|
+
exists: (entityName: string, id: TKey) => Promise<boolean>;
|
|
1829
|
+
upsertOne: (entityName: string, entity: TCreateDto, options?: {
|
|
1830
|
+
merge?: boolean;
|
|
1831
|
+
}) => Promise<TKey>;
|
|
1832
|
+
aggregate: (entityName: string, request: AXPEntityAggregateRequest, options?: AXPEntityAggregateOptions) => Promise<AXPEntityAggregateResult>;
|
|
1833
|
+
};
|
|
1834
|
+
/** @deprecated Use `entities`. Kept for existing middleware source compatibility. */
|
|
1835
|
+
backend: AXPEntityMiddlewareContext<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>['entities'];
|
|
1836
|
+
}
|
|
1837
|
+
interface AXPEntityMiddleware<TKey = unknown, TDetailDto extends AXPEntityDetailDto<TKey> = AXPEntityDetailDto<TKey>, TListItemDto extends AXPEntityListItemDto<TKey> = AXPEntityListItemDto<TKey>, TCreateDto extends AXPEntityCreateDto = AXPEntityCreateDto, TUpdateDto extends AXPEntityUpdateDto<TKey> = AXPEntityUpdateDto<TKey>> {
|
|
1838
|
+
target?: {
|
|
1839
|
+
ops?: AXPEntityOp[];
|
|
1840
|
+
entity?: string | RegExp;
|
|
1841
|
+
predicate?: (ctx: AXPEntityMiddlewareContext<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>) => boolean;
|
|
1842
|
+
order?: number;
|
|
1843
|
+
};
|
|
1844
|
+
execute: (ctx: AXPEntityMiddlewareContext<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>, next: () => Promise<void>) => Promise<void>;
|
|
1845
|
+
}
|
|
1846
|
+
declare class AXPMiddlewareAbortError extends Error {
|
|
1847
|
+
readonly message: string;
|
|
1848
|
+
readonly options: {
|
|
1849
|
+
code?: string;
|
|
1850
|
+
status?: number;
|
|
1851
|
+
details?: unknown;
|
|
1852
|
+
};
|
|
1853
|
+
constructor(message: string, options?: {
|
|
1854
|
+
code?: string;
|
|
1855
|
+
status?: number;
|
|
1856
|
+
details?: unknown;
|
|
1857
|
+
});
|
|
1858
|
+
toResponse(): AXPMiddlewareErrorResponse;
|
|
1859
|
+
}
|
|
1860
|
+
declare function isAXPMiddlewareAbortError(error: unknown): error is AXPMiddlewareAbortError;
|
|
1861
|
+
/** @deprecated Use {@link AXPEntityMiddlewareContext} */
|
|
1862
|
+
type AXPEntityStorageContext<TKey = unknown, TDetailDto extends AXPEntityDetailDto<TKey> = AXPEntityDetailDto<TKey>, TListItemDto extends AXPEntityListItemDto<TKey> = AXPEntityListItemDto<TKey>, TCreateDto extends AXPEntityCreateDto = AXPEntityCreateDto, TUpdateDto extends AXPEntityUpdateDto<TKey> = AXPEntityUpdateDto<TKey>> = AXPEntityMiddlewareContext<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>;
|
|
1863
|
+
/** @deprecated Use {@link AXPEntityMiddleware} */
|
|
1864
|
+
type AXPEntityStorageMiddleware<TKey = unknown, TDetailDto extends AXPEntityDetailDto<TKey> = AXPEntityDetailDto<TKey>, TListItemDto extends AXPEntityListItemDto<TKey> = AXPEntityListItemDto<TKey>, TCreateDto extends AXPEntityCreateDto = AXPEntityCreateDto, TUpdateDto extends AXPEntityUpdateDto<TKey> = AXPEntityUpdateDto<TKey>> = AXPEntityMiddleware<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>;
|
|
1865
|
+
/** @deprecated Use {@link AXPEntityAccessPort} */
|
|
1866
|
+
type AXPEntityStorageBackend = AXPEntityAccessPort;
|
|
1867
|
+
|
|
1868
|
+
declare const AXP_ENTITY_MIDDLEWARE: InjectionToken<AXPEntityMiddleware<unknown, _acorex_platform_framework_shared_entity.AXPEntityDetailDto<unknown>, _acorex_platform_framework_shared_entity.AXPEntityListItemDto<unknown>, _acorex_platform_framework_shared_entity.AXPEntityCreateDto, _acorex_platform_framework_shared_entity.AXPEntityUpdateDto<unknown>>[]>;
|
|
1869
|
+
/** @deprecated Use {@link AXP_ENTITY_MIDDLEWARE} */
|
|
1870
|
+
declare const AXP_ENTITY_STORAGE_MIDDLEWARE: InjectionToken<AXPEntityMiddleware<unknown, _acorex_platform_framework_shared_entity.AXPEntityDetailDto<unknown>, _acorex_platform_framework_shared_entity.AXPEntityListItemDto<unknown>, _acorex_platform_framework_shared_entity.AXPEntityCreateDto, _acorex_platform_framework_shared_entity.AXPEntityUpdateDto<unknown>>[]>;
|
|
1871
|
+
|
|
1872
|
+
declare function filterEntityMiddlewares(allMiddlewares: readonly AXPEntityMiddleware[], ctx: AXPEntityMiddlewareContext): AXPEntityMiddleware[];
|
|
1873
|
+
/** @deprecated Use {@link filterEntityMiddlewares} */
|
|
1874
|
+
declare const filterEntityStorageMiddlewares: typeof filterEntityMiddlewares;
|
|
1875
|
+
declare function composeEntityMiddlewares(mws: AXPEntityMiddleware[], leaf: () => Promise<void>, ctx: AXPEntityMiddlewareContext, injector: EnvironmentInjector): () => Promise<void>;
|
|
1876
|
+
/** @deprecated Use {@link composeEntityMiddlewares} */
|
|
1877
|
+
declare const composeEntityStorageMiddlewares: typeof composeEntityMiddlewares;
|
|
1878
|
+
declare function runEntityMiddlewarePipeline<T>(allMiddlewares: readonly AXPEntityMiddleware[], ctx: AXPEntityMiddlewareContext, delegate: () => Promise<T>, injector: EnvironmentInjector): Promise<T>;
|
|
1879
|
+
/** @deprecated Use {@link runEntityMiddlewarePipeline} */
|
|
1880
|
+
declare const runEntityStorageMiddlewarePipeline: typeof runEntityMiddlewarePipeline;
|
|
1881
|
+
declare function createEntityMiddlewareContext(op: AXPEntityOp, entityName: string, accessor: AXPEntityAccessPort, init?: Partial<AXPEntityMiddlewareContext>): AXPEntityMiddlewareContext;
|
|
1882
|
+
/** @deprecated Use {@link createEntityMiddlewareContext} */
|
|
1883
|
+
declare function createEntityStorageContext(op: AXPEntityOp, entityName: string, backend: AXPEntityStorageBackend, init?: Partial<AXPEntityStorageContext>): AXPEntityStorageContext;
|
|
1884
|
+
|
|
1885
|
+
/**
|
|
1886
|
+
* When > 0, entity command/query bridge skips wrapping (nested entity IO from middleware `ctx.entities`).
|
|
1887
|
+
*/
|
|
1888
|
+
declare class AXPEntityMiddlewareSkipContext {
|
|
1889
|
+
private depth;
|
|
1890
|
+
get isSkipped(): boolean;
|
|
1891
|
+
run<T>(fn: () => Promise<T>): Promise<T>;
|
|
1892
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityMiddlewareSkipContext, never>;
|
|
1893
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityMiddlewareSkipContext>;
|
|
1894
|
+
}
|
|
1895
|
+
|
|
1896
|
+
/**
|
|
1897
|
+
* Raw `Entity:*` command/query access without re-entering client entity middleware bridge.
|
|
1898
|
+
* Used by middleware `ctx.entities` and the storage facade delegate.
|
|
1899
|
+
*/
|
|
1900
|
+
declare class AXPEntityRuntimeAccessorService implements AXPEntityAccessPort {
|
|
1901
|
+
private readonly commandService;
|
|
1902
|
+
private readonly queryService;
|
|
1903
|
+
private readonly skipContext;
|
|
1904
|
+
get dbName(): string;
|
|
1905
|
+
initial<T = unknown>(_entityName: string, collection: T[]): Promise<T[]>;
|
|
1906
|
+
getOne<T = unknown>(entityName: string, id: unknown): Promise<T>;
|
|
1907
|
+
getAll<T = unknown>(_entityName: string): Promise<T[]>;
|
|
1908
|
+
query<T = unknown>(entityName: string, request: AXPQueryRequest): Promise<AXPPagedListResult<T>>;
|
|
1909
|
+
count(entityName: string, request: Pick<AXPQueryRequest, 'filter' | 'sort'>): Promise<number>;
|
|
1910
|
+
queryAll<T = unknown>(entityName: string, request: Pick<AXPQueryRequest, 'filter' | 'sort'>, options?: AXPEntityQueryAllOptions): Promise<AXPEntityQueryAllResult<T>>;
|
|
1911
|
+
getMany<T = unknown>(entityName: string, ids: unknown[]): Promise<(T | null)[]>;
|
|
1912
|
+
exists(entityName: string, id: unknown): Promise<boolean>;
|
|
1913
|
+
insertOne<T extends AXPEntityCreateDto = AXPEntityCreateDto>(entityName: string, entityItem: T): Promise<string>;
|
|
1914
|
+
updateOne<T = unknown>(entityName: string, id: unknown, keyValues: Omit<Partial<AXPEntityUpdateDto<unknown>>, 'id'>): Promise<T>;
|
|
1915
|
+
deleteOne(entityName: string, id: unknown): Promise<void>;
|
|
1916
|
+
upsertOne(entityName: string, entity: AXPEntityCreateDto, options?: {
|
|
1917
|
+
merge?: boolean;
|
|
1918
|
+
}): Promise<string>;
|
|
1919
|
+
aggregate(entityName: string, request: AXPEntityAggregateRequest, _options?: AXPEntityAggregateOptions): Promise<AXPEntityAggregateResult>;
|
|
1920
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityRuntimeAccessorService, never>;
|
|
1921
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityRuntimeAccessorService>;
|
|
1922
|
+
}
|
|
1923
|
+
|
|
1924
|
+
declare abstract class AXPEntityStorageService<TKey, TDetailDto extends AXPEntityDetailDto<TKey> = AXPEntityModel<TKey>, TListItemDto extends AXPEntityListItemDto<TKey> = TDetailDto, TCreateDto extends AXPEntityCreateDto = TDetailDto, TUpdateDto extends AXPEntityUpdateDto<TKey> = TDetailDto> {
|
|
1925
|
+
abstract get dbName(): string;
|
|
1926
|
+
abstract initial(entityName: string, collection: TCreateDto[]): Promise<TCreateDto[]>;
|
|
1927
|
+
abstract getOne(entityName: string, id: TKey): Promise<TDetailDto>;
|
|
1928
|
+
abstract updateOne(entityName: string, id: TKey, keyValues: Omit<Partial<TUpdateDto>, 'id'>): Promise<TDetailDto>;
|
|
1929
|
+
abstract deleteOne(entityName: string, id: TKey): Promise<void>;
|
|
1930
|
+
abstract insertOne(entityName: string, entity: TCreateDto): Promise<TKey>;
|
|
1931
|
+
abstract getAll(entityName: string): Promise<TListItemDto[]>;
|
|
1932
|
+
abstract query(entityName: string, request: AXPQueryRequest): Promise<AXPPagedListResult<TListItemDto>>;
|
|
1933
|
+
abstract count(entityName: string, request: Pick<AXPQueryRequest, 'filter' | 'sort'>): Promise<number>;
|
|
1934
|
+
abstract queryAll(entityName: string, request: Pick<AXPQueryRequest, 'filter' | 'sort'>, options?: AXPEntityQueryAllOptions): Promise<AXPEntityQueryAllResult<TListItemDto>>;
|
|
1935
|
+
abstract getMany(entityName: string, ids: TKey[]): Promise<(TListItemDto | null)[]>;
|
|
1936
|
+
abstract exists(entityName: string, id: TKey): Promise<boolean>;
|
|
1937
|
+
abstract upsertOne(entityName: string, entity: TCreateDto, options?: {
|
|
1938
|
+
merge?: boolean;
|
|
1939
|
+
}): Promise<TKey>;
|
|
1940
|
+
abstract aggregate(entityName: string, request: AXPEntityAggregateRequest, options?: AXPEntityAggregateOptions): Promise<AXPEntityAggregateResult>;
|
|
1941
|
+
}
|
|
1942
|
+
declare abstract class AXPEntityDataProvider<TKey, TDetailDto extends AXPEntityDetailDto<TKey> = AXPEntityModel<TKey>, TListItemDto extends AXPEntityListItemDto<TKey> = TDetailDto, TCreateDto extends AXPEntityCreateDto = TDetailDto, TUpdateDto extends AXPEntityUpdateDto<TKey> = TDetailDto> {
|
|
1943
|
+
abstract get entityName(): string;
|
|
1944
|
+
abstract initial(collection: TCreateDto[]): Promise<void>;
|
|
1945
|
+
abstract getOne(id: TKey): Promise<TDetailDto>;
|
|
1946
|
+
abstract getAll(): Promise<TListItemDto[]>;
|
|
1947
|
+
abstract updateOne(id: TKey, keyValues: Omit<Partial<TUpdateDto>, 'id'>): Promise<TDetailDto>;
|
|
1948
|
+
abstract deleteOne(id: TKey): Promise<void>;
|
|
1949
|
+
abstract insertOne(entity: TCreateDto): Promise<TKey>;
|
|
1950
|
+
abstract query(request: AXPQueryRequest): Promise<AXPPagedListResult<TListItemDto>>;
|
|
1951
|
+
abstract count(request: Pick<AXPQueryRequest, 'filter' | 'sort'>): Promise<number>;
|
|
1952
|
+
abstract queryAll(request: Pick<AXPQueryRequest, 'filter' | 'sort'>, options?: AXPEntityQueryAllOptions): Promise<AXPEntityQueryAllResult<TListItemDto>>;
|
|
1953
|
+
abstract getMany(ids: TKey[]): Promise<(TListItemDto | null)[]>;
|
|
1954
|
+
abstract exists(id: TKey): Promise<boolean>;
|
|
1955
|
+
abstract upsertOne(entity: TCreateDto, options?: {
|
|
1956
|
+
merge?: boolean;
|
|
1957
|
+
}): Promise<TKey>;
|
|
1958
|
+
abstract aggregate(request: AXPEntityAggregateRequest, options?: AXPEntityAggregateOptions): Promise<AXPEntityAggregateResult>;
|
|
1959
|
+
}
|
|
1960
|
+
declare class AXPEntityDataProviderImpl<TKey, TDetailDto extends AXPEntityDetailDto<TKey> = AXPEntityModel<TKey>, TListItemDto extends AXPEntityListItemDto<TKey> = TDetailDto, TCreateDto extends AXPEntityCreateDto = TDetailDto, TUpdateDto extends AXPEntityUpdateDto<TKey> = TDetailDto> implements AXPEntityDataProvider<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto> {
|
|
1961
|
+
private storageService;
|
|
1962
|
+
entityName: string;
|
|
1963
|
+
constructor(storageService: AXPEntityStorageService<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>, entityName: string);
|
|
1964
|
+
initial(collection: TCreateDto[]): Promise<void>;
|
|
1965
|
+
getOne(id: TKey): Promise<TDetailDto>;
|
|
1966
|
+
getAll(): Promise<TListItemDto[]>;
|
|
1967
|
+
query(request: AXPQueryRequest): Promise<AXPPagedListResult<TListItemDto>>;
|
|
1968
|
+
updateOne(id: TKey, keyValues: Omit<Partial<TUpdateDto>, 'id'>): Promise<TDetailDto>;
|
|
1969
|
+
deleteOne(id: TKey): Promise<void>;
|
|
1970
|
+
insertOne(entity: TCreateDto): Promise<TKey>;
|
|
1971
|
+
count(request: Pick<AXPQueryRequest, 'filter' | 'sort'>): Promise<number>;
|
|
1972
|
+
queryAll(request: Pick<AXPQueryRequest, 'filter' | 'sort'>, options?: AXPEntityQueryAllOptions): Promise<AXPEntityQueryAllResult<TListItemDto>>;
|
|
1973
|
+
getMany(ids: TKey[]): Promise<(TListItemDto | null)[]>;
|
|
1974
|
+
exists(id: TKey): Promise<boolean>;
|
|
1975
|
+
upsertOne(entity: TCreateDto, options?: {
|
|
1976
|
+
merge?: boolean;
|
|
1977
|
+
}): Promise<TKey>;
|
|
1978
|
+
aggregate(request: AXPEntityAggregateRequest, options?: AXPEntityAggregateOptions): Promise<AXPEntityAggregateResult>;
|
|
1979
|
+
}
|
|
1980
|
+
declare abstract class AXMEntityCrudService<TKey, TDetailDto extends AXPEntityDetailDto<TKey> = AXPEntityModel<TKey>, TListItemDto extends AXPEntityListItemDto<TKey> = TDetailDto, TCreateDto extends AXPEntityCreateDto = TDetailDto, TUpdateDto extends AXPEntityUpdateDto<TKey> = TDetailDto> {
|
|
1981
|
+
abstract insertOne(request: TCreateDto): Promise<TKey>;
|
|
1982
|
+
abstract getOne(id: TKey): Promise<TDetailDto>;
|
|
1983
|
+
abstract deleteOne(id: TKey): Promise<void>;
|
|
1984
|
+
abstract updateOne(id: TKey, values: Omit<Partial<TUpdateDto>, 'id'>): Promise<TDetailDto>;
|
|
1985
|
+
abstract query(request: AXPQueryRequest): Promise<AXPPagedListResult<TListItemDto>>;
|
|
1986
|
+
}
|
|
1987
|
+
declare class AXMEntityCrudServiceImpl<TKey, TDetailDto extends AXPEntityDetailDto<TKey> = AXPEntityModel<TKey>, TListItemDto extends AXPEntityListItemDto<TKey> = TDetailDto, TCreateDto extends AXPEntityCreateDto = Omit<TDetailDto, 'id'>, TUpdateDto extends AXPEntityUpdateDto<TKey> = TDetailDto> {
|
|
1988
|
+
private entityName;
|
|
1989
|
+
private _storageService;
|
|
1990
|
+
private entityRegistery;
|
|
1991
|
+
private _entityDataProvider;
|
|
1992
|
+
private _entityCategoryDataProvider;
|
|
1993
|
+
constructor(entityName: string);
|
|
1994
|
+
insertOne(request: TCreateDto): Promise<TKey>;
|
|
1995
|
+
getOne(id: TKey): Promise<TDetailDto>;
|
|
1996
|
+
deleteOne(id: TKey): Promise<void>;
|
|
1997
|
+
updateOne(id: TKey, values: Omit<Partial<TUpdateDto>, 'id'>): Promise<TDetailDto>;
|
|
1998
|
+
query(request?: AXPQueryRequest): Promise<AXPPagedListResult<TListItemDto>>;
|
|
1999
|
+
findOne(filter: AXDataSourceFilterOption): Promise<TListItemDto>;
|
|
2000
|
+
getRoots(request: {}): Promise<AXPPagedListResult<TListItemDto>>;
|
|
2001
|
+
getChildren(request: {
|
|
2002
|
+
parentId: TKey;
|
|
2003
|
+
parentKey?: string;
|
|
2004
|
+
}): Promise<AXPPagedListResult<TListItemDto>>;
|
|
2005
|
+
getByCategory(request: {
|
|
2006
|
+
categoryId: TKey;
|
|
2007
|
+
categoryKey?: string;
|
|
2008
|
+
}): Promise<AXPPagedListResult<TListItemDto>>;
|
|
2009
|
+
getCategoriesList(request?: AXPQueryRequest): Promise<AXPPagedListResult<AXPCategoryEntity<TKey>>>;
|
|
2010
|
+
get storageService(): AXPEntityStorageService<any, any, any, any, any>;
|
|
2011
|
+
count(request: Pick<AXPQueryRequest, 'filter' | 'sort'>): Promise<number>;
|
|
2012
|
+
queryAll(request: Pick<AXPQueryRequest, 'filter' | 'sort'>, options?: AXPEntityQueryAllOptions): Promise<AXPEntityQueryAllResult<TListItemDto>>;
|
|
2013
|
+
getMany(ids: TKey[]): Promise<(TListItemDto | null)[]>;
|
|
2014
|
+
exists(id: TKey): Promise<boolean>;
|
|
2015
|
+
upsertOne(entity: TCreateDto, options?: {
|
|
2016
|
+
merge?: boolean;
|
|
2017
|
+
}): Promise<TKey>;
|
|
2018
|
+
aggregate(request: AXPEntityAggregateRequest, options?: AXPEntityAggregateOptions): Promise<AXPEntityAggregateResult>;
|
|
2019
|
+
custom<Req, Res>(request: Req): Promise<void>;
|
|
2020
|
+
}
|
|
2021
|
+
|
|
2022
|
+
declare class AXPMiddlewareEntityStorageService<TKey = unknown, TDetailDto extends AXPEntityDetailDto<TKey> = AXPEntityDetailDto<TKey>, TListItemDto extends AXPEntityListItemDto<TKey> = AXPEntityListItemDto<TKey>, TCreateDto extends AXPEntityCreateDto = AXPEntityCreateDto, TUpdateDto extends AXPEntityUpdateDto<TKey> = AXPEntityUpdateDto<TKey>> extends AXPEntityStorageService<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto> {
|
|
2023
|
+
private readonly accessor;
|
|
2024
|
+
private readonly allMiddlewares;
|
|
2025
|
+
private readonly injector;
|
|
2026
|
+
private readonly inFlight;
|
|
2027
|
+
get dbName(): string;
|
|
2028
|
+
private run;
|
|
2029
|
+
private createCtx;
|
|
2030
|
+
initial(entityName: string, collection: TCreateDto[]): Promise<TCreateDto[]>;
|
|
2031
|
+
getOne(entityName: string, id: TKey): Promise<TDetailDto>;
|
|
2032
|
+
updateOne(entityName: string, id: TKey, keyValues: Omit<Partial<TUpdateDto>, 'id'>): Promise<TDetailDto>;
|
|
2033
|
+
deleteOne(entityName: string, id: TKey): Promise<void>;
|
|
2034
|
+
insertOne(entityName: string, entity: TCreateDto): Promise<TKey>;
|
|
2035
|
+
getAll(entityName: string): Promise<TListItemDto[]>;
|
|
2036
|
+
query(entityName: string, request: AXPQueryRequest): Promise<AXPPagedListResult<TListItemDto>>;
|
|
2037
|
+
count(entityName: string, request: Pick<AXPQueryRequest, 'filter' | 'sort'>): Promise<number>;
|
|
2038
|
+
queryAll(entityName: string, request: Pick<AXPQueryRequest, 'filter' | 'sort'>, options?: AXPEntityQueryAllOptions): Promise<AXPEntityQueryAllResult<TListItemDto>>;
|
|
2039
|
+
getMany(entityName: string, ids: TKey[]): Promise<(TListItemDto | null)[]>;
|
|
2040
|
+
exists(entityName: string, id: TKey): Promise<boolean>;
|
|
2041
|
+
upsertOne(entityName: string, entity: TCreateDto, options?: {
|
|
2042
|
+
merge?: boolean;
|
|
2043
|
+
}): Promise<TKey>;
|
|
2044
|
+
aggregate(entityName: string, request: AXPEntityAggregateRequest, options?: AXPEntityAggregateOptions): Promise<AXPEntityAggregateResult>;
|
|
2045
|
+
private runWithDedup;
|
|
2046
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPMiddlewareEntityStorageService<any, any, any, any, any>, never>;
|
|
2047
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPMiddlewareEntityStorageService<any, any, any, any, any>>;
|
|
2048
|
+
}
|
|
2049
|
+
|
|
1714
2050
|
type AXPEntityMasterListCardLayout = NonNullable<NonNullable<AXPEntityMasterListView['layouts']>['card']>;
|
|
1715
2051
|
interface AXPEntityModifierContext {
|
|
1716
2052
|
readonly entity: AXPEntity;
|
|
@@ -1834,60 +2170,6 @@ interface AXPEntityModifierProvider {
|
|
|
1834
2170
|
order?: number;
|
|
1835
2171
|
}
|
|
1836
2172
|
|
|
1837
|
-
declare function ensureListActions(ctx: AXPEntityModifierContext): void;
|
|
1838
|
-
declare function actionExists(actions: any[] | undefined, commandName: string, name?: string): boolean;
|
|
1839
|
-
interface AXPEntityLayoutSectionLike {
|
|
1840
|
-
id: string;
|
|
1841
|
-
}
|
|
1842
|
-
interface AXPEntityLayoutPropertyLike {
|
|
1843
|
-
name: string;
|
|
1844
|
-
}
|
|
1845
|
-
interface AXPEntityLayoutLike<TSection extends AXPEntityLayoutSectionLike = AXPEntityLayoutSectionLike, TProperty extends AXPEntityLayoutPropertyLike = AXPEntityLayoutPropertyLike> {
|
|
1846
|
-
sections: TSection[];
|
|
1847
|
-
properties?: TProperty[];
|
|
1848
|
-
}
|
|
1849
|
-
/** Layout order for the shared appearance section (after entity-defined groups). */
|
|
1850
|
-
declare const AXP_APPEARANCE_SECTION_ORDER = 900;
|
|
1851
|
-
/** Layout order for the shared classification section (after appearance). */
|
|
1852
|
-
declare const AXP_CLASSIFICATION_SECTION_ORDER = 910;
|
|
1853
|
-
/**
|
|
1854
|
-
* Clones `sections` and `properties` arrays to prevent accidental cross-interface mutations.
|
|
1855
|
-
* Many entity definitions reuse the same array instances across create/update/single interfaces.
|
|
1856
|
-
*/
|
|
1857
|
-
declare function cloneLayoutArrays<TLayout extends AXPEntityLayoutLike>(layout: TLayout): TLayout & {
|
|
1858
|
-
properties: NonNullable<TLayout['properties']>;
|
|
1859
|
-
};
|
|
1860
|
-
declare function ensureLayoutSection<TLayout extends AXPEntityLayoutLike>(layout: TLayout, section: TLayout['sections'][number]): void;
|
|
1861
|
-
declare function ensureLayoutPropertyView<TLayout extends AXPEntityLayoutLike>(layout: TLayout & {
|
|
1862
|
-
properties: NonNullable<TLayout['properties']>;
|
|
1863
|
-
}, prop: NonNullable<TLayout['properties']>[number]): void;
|
|
1864
|
-
|
|
1865
|
-
interface AXPEntityActionPlugin {
|
|
1866
|
-
name: string;
|
|
1867
|
-
order?: number;
|
|
1868
|
-
apply: (ctx: AXPEntityModifierContext, options?: any) => Promise<void> | void;
|
|
1869
|
-
}
|
|
1870
|
-
declare const AXP_ENTITY_ACTION_PLUGIN: InjectionToken<AXPEntityActionPlugin[]>;
|
|
1871
|
-
|
|
1872
|
-
declare class AXPEntityMiddleware {
|
|
1873
|
-
private exactModifiers;
|
|
1874
|
-
private patternModifiers;
|
|
1875
|
-
protected providedModifiers: AXPEntityModifierProvider[];
|
|
1876
|
-
protected providedActionPlugins: AXPEntityActionPlugin[];
|
|
1877
|
-
protected injector: Injector;
|
|
1878
|
-
constructor();
|
|
1879
|
-
register(entityName: string | RegExp, modifier: AXPEntityModifier, order?: number): void;
|
|
1880
|
-
process(entity: AXPEntity): Promise<AXPEntity>;
|
|
1881
|
-
private createModifierStep;
|
|
1882
|
-
private createPluginStep;
|
|
1883
|
-
private wildcardToRegExp;
|
|
1884
|
-
private normalizeRegExp;
|
|
1885
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityMiddleware, never>;
|
|
1886
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityMiddleware>;
|
|
1887
|
-
}
|
|
1888
|
-
|
|
1889
|
-
declare function createModifierContext(entity: AXPEntity): AXPEntityModifierContext;
|
|
1890
|
-
|
|
1891
2173
|
declare const AXP_ENTITY_MODIFIER: InjectionToken<AXPEntityModifierProvider[]>;
|
|
1892
2174
|
|
|
1893
2175
|
declare class AXPEntityPreloadFiltersViewModel {
|
|
@@ -1907,7 +2189,7 @@ declare class AXPEntityPreloadFiltersViewModel {
|
|
|
1907
2189
|
*/
|
|
1908
2190
|
description: _angular_core.Signal<string | null>;
|
|
1909
2191
|
/**
|
|
1910
|
-
*
|
|
2192
|
+
* Preload filter definitions with a single `contains` operator (hides the filter operations menu).
|
|
1911
2193
|
*/
|
|
1912
2194
|
preloadFiltersDef: _angular_core.Signal<AXPFilterDefinition[]>;
|
|
1913
2195
|
/**
|
|
@@ -1937,6 +2219,8 @@ declare class AXPEntityDefinitionRegistryService {
|
|
|
1937
2219
|
name: string;
|
|
1938
2220
|
}>;
|
|
1939
2221
|
private entities;
|
|
2222
|
+
/** In-flight resolve() calls keyed by `module.entity` — coalesces concurrent callers. */
|
|
2223
|
+
private readonly pendingResolves;
|
|
1940
2224
|
private entityResolver;
|
|
1941
2225
|
/**
|
|
1942
2226
|
* Force re-load and re-process entity definitions, then re-register them.
|
|
@@ -1980,6 +2264,7 @@ declare class AXPEntityDefinitionRegistryService {
|
|
|
1980
2264
|
* @throws Error if the entity configuration cannot be resolved.
|
|
1981
2265
|
*/
|
|
1982
2266
|
resolve(moduleName: string, entityName: string): Promise<AXPEntity>;
|
|
2267
|
+
private loadAndRegister;
|
|
1983
2268
|
exists(moduleName: string, entityName: string): Promise<boolean>;
|
|
1984
2269
|
/**
|
|
1985
2270
|
* Creates a unique key for an entity based on its module and name.
|
|
@@ -2022,102 +2307,64 @@ declare function filterSortEntityRows<T = unknown>(entityName: string, request:
|
|
|
2022
2307
|
*/
|
|
2023
2308
|
declare function runEntityQuery<T = unknown>(entityName: string, request: AXPQueryRequest, adapters: RunEntityQueryAdapters<T>, sortLocale?: string): Promise<AXPPagedListResult<T>>;
|
|
2024
2309
|
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
2039
|
-
merge?: boolean;
|
|
2040
|
-
}): Promise<TKey>;
|
|
2041
|
-
abstract aggregate(entityName: string, request: AXPEntityAggregateRequest, options?: AXPEntityAggregateOptions): Promise<AXPEntityAggregateResult>;
|
|
2310
|
+
interface AXPEntityBulkPatchPerformInput {
|
|
2311
|
+
entity: string;
|
|
2312
|
+
ids: string[];
|
|
2313
|
+
patch: Record<string, unknown>;
|
|
2314
|
+
loadingTitleKey: string;
|
|
2315
|
+
loadingStatus?: string;
|
|
2316
|
+
successTitleKey: string;
|
|
2317
|
+
successBodyKey: string;
|
|
2318
|
+
partialTitleKey: string;
|
|
2319
|
+
partialBodyKey: string;
|
|
2320
|
+
partialBodyWithReasonKey: string;
|
|
2321
|
+
failTitleKey: string;
|
|
2322
|
+
failBodyKey: string;
|
|
2323
|
+
failBodyWithReasonKey: string;
|
|
2042
2324
|
}
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
}): Promise<TKey>;
|
|
2059
|
-
abstract aggregate(request: AXPEntityAggregateRequest, options?: AXPEntityAggregateOptions): Promise<AXPEntityAggregateResult>;
|
|
2325
|
+
/**
|
|
2326
|
+
* Applies the same partial update to many rows via `POST /runtime/commands/bulk`
|
|
2327
|
+
* (`Entity:Update:Default` + `input.entity`), with the same richer failure UX as delete.
|
|
2328
|
+
*/
|
|
2329
|
+
declare class AXPEntityBulkPatchPerformService {
|
|
2330
|
+
private readonly dialogService;
|
|
2331
|
+
private readonly loadingDialog;
|
|
2332
|
+
private readonly translationService;
|
|
2333
|
+
private readonly settingsService;
|
|
2334
|
+
private readonly bulkCommands;
|
|
2335
|
+
perform(input: AXPEntityBulkPatchPerformInput): AXPCommandExecuteResultPromise<AXPBulkCommandResultData>;
|
|
2336
|
+
private presentResult;
|
|
2337
|
+
private resolveFailureContent;
|
|
2338
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityBulkPatchPerformService, never>;
|
|
2339
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityBulkPatchPerformService>;
|
|
2060
2340
|
}
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2064
|
-
|
|
2065
|
-
initial(collection: TCreateDto[]): Promise<void>;
|
|
2066
|
-
getOne(id: TKey): Promise<TDetailDto>;
|
|
2067
|
-
getAll(): Promise<TListItemDto[]>;
|
|
2068
|
-
query(request: AXPQueryRequest): Promise<AXPPagedListResult<TListItemDto>>;
|
|
2069
|
-
updateOne(id: TKey, keyValues: Omit<Partial<TUpdateDto>, 'id'>): Promise<TDetailDto>;
|
|
2070
|
-
deleteOne(id: TKey): Promise<void>;
|
|
2071
|
-
insertOne(entity: TCreateDto): Promise<TKey>;
|
|
2072
|
-
count(request: Pick<AXPQueryRequest, 'filter' | 'sort'>): Promise<number>;
|
|
2073
|
-
queryAll(request: Pick<AXPQueryRequest, 'filter' | 'sort'>, options?: AXPEntityQueryAllOptions): Promise<AXPEntityQueryAllResult<TListItemDto>>;
|
|
2074
|
-
getMany(ids: TKey[]): Promise<(TListItemDto | null)[]>;
|
|
2075
|
-
exists(id: TKey): Promise<boolean>;
|
|
2076
|
-
upsertOne(entity: TCreateDto, options?: {
|
|
2077
|
-
merge?: boolean;
|
|
2078
|
-
}): Promise<TKey>;
|
|
2079
|
-
aggregate(request: AXPEntityAggregateRequest, options?: AXPEntityAggregateOptions): Promise<AXPEntityAggregateResult>;
|
|
2341
|
+
|
|
2342
|
+
interface AXPEntityDeleteOptions {
|
|
2343
|
+
source: string;
|
|
2344
|
+
ids: string[];
|
|
2080
2345
|
}
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
abstract query(request: AXPQueryRequest): Promise<AXPPagedListResult<TListItemDto>>;
|
|
2346
|
+
interface AXPEntityDeletePerformInput {
|
|
2347
|
+
entity?: string;
|
|
2348
|
+
data?: unknown;
|
|
2349
|
+
entities?: AXPEntityDeleteOptions[];
|
|
2350
|
+
meta?: unknown;
|
|
2087
2351
|
}
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
private
|
|
2093
|
-
private
|
|
2094
|
-
|
|
2095
|
-
|
|
2096
|
-
|
|
2097
|
-
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
|
|
2101
|
-
|
|
2102
|
-
|
|
2103
|
-
|
|
2104
|
-
parentKey?: string;
|
|
2105
|
-
}): Promise<AXPPagedListResult<TListItemDto>>;
|
|
2106
|
-
getByCategory(request: {
|
|
2107
|
-
categoryId: TKey;
|
|
2108
|
-
categoryKey?: string;
|
|
2109
|
-
}): Promise<AXPPagedListResult<TListItemDto>>;
|
|
2110
|
-
getCategoriesList(request?: AXPQueryRequest): Promise<AXPPagedListResult<AXPCategoryEntity<TKey>>>;
|
|
2111
|
-
get storageService(): AXPEntityStorageService<any, any, any, any, any>;
|
|
2112
|
-
count(request: Pick<AXPQueryRequest, 'filter' | 'sort'>): Promise<number>;
|
|
2113
|
-
queryAll(request: Pick<AXPQueryRequest, 'filter' | 'sort'>, options?: AXPEntityQueryAllOptions): Promise<AXPEntityQueryAllResult<TListItemDto>>;
|
|
2114
|
-
getMany(ids: TKey[]): Promise<(TListItemDto | null)[]>;
|
|
2115
|
-
exists(id: TKey): Promise<boolean>;
|
|
2116
|
-
upsertOne(entity: TCreateDto, options?: {
|
|
2117
|
-
merge?: boolean;
|
|
2118
|
-
}): Promise<TKey>;
|
|
2119
|
-
aggregate(request: AXPEntityAggregateRequest, options?: AXPEntityAggregateOptions): Promise<AXPEntityAggregateResult>;
|
|
2120
|
-
custom<Req, Res>(request: Req): Promise<void>;
|
|
2352
|
+
/**
|
|
2353
|
+
* Deletes one or more entity records via the server filter-only bulk command API.
|
|
2354
|
+
*/
|
|
2355
|
+
declare class AXPEntityDeletePerformService {
|
|
2356
|
+
private readonly entityRegistry;
|
|
2357
|
+
private readonly dialogService;
|
|
2358
|
+
private readonly loadingDialog;
|
|
2359
|
+
private readonly translationService;
|
|
2360
|
+
private readonly settingsService;
|
|
2361
|
+
private readonly entityEvents;
|
|
2362
|
+
private readonly bulkCommands;
|
|
2363
|
+
perform(input: AXPEntityDeletePerformInput): Promise<{
|
|
2364
|
+
success: boolean;
|
|
2365
|
+
}>;
|
|
2366
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityDeletePerformService, never>;
|
|
2367
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityDeletePerformService>;
|
|
2121
2368
|
}
|
|
2122
2369
|
|
|
2123
2370
|
interface AXPEntityConfigs {
|
|
@@ -2162,12 +2409,37 @@ declare class AXPEntityResolver {
|
|
|
2162
2409
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityResolver>;
|
|
2163
2410
|
}
|
|
2164
2411
|
|
|
2412
|
+
/**
|
|
2413
|
+
* Loads entity layouts from the domain-definition store via runtime queries.
|
|
2414
|
+
* Replaces per-module entity providers after contracts → server entity migration.
|
|
2415
|
+
*/
|
|
2416
|
+
declare class AXPDomainQueryEntityDefinitionLoader implements AXPEntityDefinitionLoader {
|
|
2417
|
+
private readonly queryService;
|
|
2418
|
+
private readonly layoutCache;
|
|
2419
|
+
/** In-flight layout fetches keyed by `module.entity` — coalesces concurrent callers. */
|
|
2420
|
+
private readonly pendingGets;
|
|
2421
|
+
private listCache;
|
|
2422
|
+
private pendingList;
|
|
2423
|
+
get(moduleName: string, entityName: string): Promise<AXPEntity | null>;
|
|
2424
|
+
list(): Promise<AXPEntityListInput[]>;
|
|
2425
|
+
private fetchLayout;
|
|
2426
|
+
private fetchList;
|
|
2427
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPDomainQueryEntityDefinitionLoader, never>;
|
|
2428
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPDomainQueryEntityDefinitionLoader>;
|
|
2429
|
+
}
|
|
2430
|
+
|
|
2165
2431
|
declare class AXPAttachmentsPluginModule {
|
|
2166
2432
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPAttachmentsPluginModule, never>;
|
|
2167
2433
|
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXPAttachmentsPluginModule, never, never, never>;
|
|
2168
2434
|
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXPAttachmentsPluginModule>;
|
|
2169
2435
|
}
|
|
2170
2436
|
|
|
2437
|
+
declare class AXPClientLocalPluginModule {
|
|
2438
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPClientLocalPluginModule, never>;
|
|
2439
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXPClientLocalPluginModule, never, never, never>;
|
|
2440
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXPClientLocalPluginModule>;
|
|
2441
|
+
}
|
|
2442
|
+
|
|
2171
2443
|
declare class AXPGalleryPluginModule {
|
|
2172
2444
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPGalleryPluginModule, never>;
|
|
2173
2445
|
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXPGalleryPluginModule, never, never, never>;
|
|
@@ -2177,14 +2449,14 @@ declare class AXPGalleryPluginModule {
|
|
|
2177
2449
|
declare class AXPEntityModule {
|
|
2178
2450
|
constructor();
|
|
2179
2451
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityModule, never>;
|
|
2180
|
-
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXPEntityModule, never, [typeof i1.RouterModule, typeof AXPAttachmentsPluginModule, typeof AXPGalleryPluginModule, typeof
|
|
2452
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXPEntityModule, never, [typeof i1.RouterModule, typeof AXPAttachmentsPluginModule, typeof AXPClientLocalPluginModule, typeof AXPGalleryPluginModule, typeof i5.AXPWidgetCoreModule, typeof i6.LayoutBuilderModule], never>;
|
|
2181
2453
|
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXPEntityModule>;
|
|
2182
2454
|
}
|
|
2183
2455
|
|
|
2184
2456
|
/**
|
|
2185
2457
|
* Maps storage middleware failures to a command result the details view can surface.
|
|
2186
2458
|
*/
|
|
2187
|
-
declare function mapEntityStorageErrorToCommandResult(error: unknown, fallback?: string):
|
|
2459
|
+
declare function mapEntityStorageErrorToCommandResult(error: unknown, fallback?: string): AXPRuntimeCommandResult;
|
|
2188
2460
|
/**
|
|
2189
2461
|
* Data accessor for entity operations.
|
|
2190
2462
|
* Provides methods to query and execute commands with smart resolution:
|
|
@@ -2202,6 +2474,7 @@ declare class EntityDataAccessor<TKey = any, TDetailDto extends AXPEntityDetailD
|
|
|
2202
2474
|
private entityDef;
|
|
2203
2475
|
private entityDefPromise;
|
|
2204
2476
|
constructor(module: string, entity: string, entityRegistry: AXPEntityDefinitionRegistryService, queryExecutor: AXPQueryExecutor, commandService: AXPCommandService, injector: Injector);
|
|
2477
|
+
private canRunAppScopedEntityAccess;
|
|
2205
2478
|
/**
|
|
2206
2479
|
* Lazily creates the CRUD fallback inside an injection context so {@link AXMEntityCrudServiceImpl}
|
|
2207
2480
|
* can resolve {@link AXPEntityStorageService} via `inject()`.
|
|
@@ -2305,6 +2578,13 @@ declare class AXPEntityService {
|
|
|
2305
2578
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityService>;
|
|
2306
2579
|
}
|
|
2307
2580
|
|
|
2581
|
+
interface AXPEntityActionPlugin {
|
|
2582
|
+
name: string;
|
|
2583
|
+
order?: number;
|
|
2584
|
+
apply: (ctx: AXPEntityModifierContext, options?: any) => Promise<void> | void;
|
|
2585
|
+
}
|
|
2586
|
+
declare const AXP_ENTITY_ACTION_PLUGIN: InjectionToken<AXPEntityActionPlugin[]>;
|
|
2587
|
+
|
|
2308
2588
|
/** How to show attachments in entity single/create/update: as a section (default) or as a separate page. */
|
|
2309
2589
|
type AttachmentsDisplayMode = 'section' | 'page';
|
|
2310
2590
|
/** Component key used when display is 'page'. Register a page component with this key via AXP_PAGE_COMPONENT_PROVIDER. */
|
|
@@ -2357,6 +2637,35 @@ type AttachmentsPluginOptions = {
|
|
|
2357
2637
|
*/
|
|
2358
2638
|
declare const attachmentsPlugin: AXPEntityActionPlugin;
|
|
2359
2639
|
|
|
2640
|
+
declare const AXP_CLIENT_LOCAL_PLUGIN_NAME = "client-local";
|
|
2641
|
+
/** Options for `plugins: [{ name: 'client-local', options }]`. */
|
|
2642
|
+
interface AXPClientLocalPluginOptions {
|
|
2643
|
+
mode?: AXPLocalEntityPolicy['mode'];
|
|
2644
|
+
maxItems?: number;
|
|
2645
|
+
role?: AXPLocalEntityPolicy['role'];
|
|
2646
|
+
sortField?: string;
|
|
2647
|
+
related?: AXPLocalEntityRelatedOption[];
|
|
2648
|
+
}
|
|
2649
|
+
/**
|
|
2650
|
+
* Wraps entity CRUD/query execute to use {@link AXPLocalEntityEngine}.
|
|
2651
|
+
* Must run after {@link AXPCrudModifier} so remote execute exists to decorate.
|
|
2652
|
+
*/
|
|
2653
|
+
declare const clientLocalPlugin: AXPEntityActionPlugin;
|
|
2654
|
+
/** Re-export default for option docs / tests. */
|
|
2655
|
+
declare const AXP_CLIENT_LOCAL_DEFAULT_MAX_ITEMS = 100;
|
|
2656
|
+
|
|
2657
|
+
/**
|
|
2658
|
+
* Depth-1 related warm-up after a host hot sync.
|
|
2659
|
+
* - `referenced-ids`: load missing FK targets via byKey into the target local store
|
|
2660
|
+
* - `catalog`: load a hot page of the target entity into its local store
|
|
2661
|
+
*/
|
|
2662
|
+
declare function prefetchClientLocalRelated(args: {
|
|
2663
|
+
engine: AXPLocalEntityEngine;
|
|
2664
|
+
entityService: AXPEntityService;
|
|
2665
|
+
hostPolicy: AXPLocalEntityPolicy;
|
|
2666
|
+
hostItems: Record<string, unknown>[];
|
|
2667
|
+
}): Promise<void>;
|
|
2668
|
+
|
|
2360
2669
|
/** How to show gallery in entity single view: as a section (default) or as a separate page. */
|
|
2361
2670
|
type GalleryDisplayMode = 'section' | 'page';
|
|
2362
2671
|
/** Component key used when display is 'page'. Register a page component with this key via AXP_PAGE_COMPONENT_PROVIDER. */
|
|
@@ -2392,60 +2701,6 @@ type GalleryPluginOptions = {
|
|
|
2392
2701
|
*/
|
|
2393
2702
|
declare const galleryPlugin: AXPEntityActionPlugin;
|
|
2394
2703
|
|
|
2395
|
-
interface AXPEntityStorageContext<TKey = any, TDetailDto extends AXPEntityDetailDto<TKey> = any, TListItemDto extends AXPEntityListItemDto<TKey> = any, TCreateDto extends AXPEntityCreateDto = any, TUpdateDto extends AXPEntityUpdateDto<TKey> = any> {
|
|
2396
|
-
op: AXPEntityOp;
|
|
2397
|
-
entityName: string;
|
|
2398
|
-
id?: TKey;
|
|
2399
|
-
data?: TCreateDto | Omit<Partial<TUpdateDto>, 'id'>;
|
|
2400
|
-
request?: AXPQueryRequest;
|
|
2401
|
-
previous?: TDetailDto;
|
|
2402
|
-
result?: any;
|
|
2403
|
-
locals: Map<string, unknown>;
|
|
2404
|
-
backend: {
|
|
2405
|
-
getOne: (entityName: string, id: TKey) => Promise<TDetailDto>;
|
|
2406
|
-
insertOne: (entityName: string, entity: TCreateDto) => Promise<TKey>;
|
|
2407
|
-
query: (entityName: string, request: AXPQueryRequest) => Promise<AXPPagedListResult<TListItemDto>>;
|
|
2408
|
-
updateOne: (entityName: string, id: TKey, data: Partial<TUpdateDto>) => Promise<TDetailDto>;
|
|
2409
|
-
deleteOne: (entityName: string, id: TKey) => Promise<void>;
|
|
2410
|
-
count: (entityName: string, request: Pick<AXPQueryRequest, 'filter' | 'sort'>) => Promise<number>;
|
|
2411
|
-
queryAll: (entityName: string, request: Pick<AXPQueryRequest, 'filter' | 'sort'>, options?: AXPEntityQueryAllOptions) => Promise<AXPEntityQueryAllResult<TListItemDto>>;
|
|
2412
|
-
getMany: (entityName: string, ids: TKey[]) => Promise<(TListItemDto | null)[]>;
|
|
2413
|
-
exists: (entityName: string, id: TKey) => Promise<boolean>;
|
|
2414
|
-
upsertOne: (entityName: string, entity: TCreateDto, options?: {
|
|
2415
|
-
merge?: boolean;
|
|
2416
|
-
}) => Promise<TKey>;
|
|
2417
|
-
aggregate: (entityName: string, request: AXPEntityAggregateRequest, options?: AXPEntityAggregateOptions) => Promise<AXPEntityAggregateResult>;
|
|
2418
|
-
};
|
|
2419
|
-
}
|
|
2420
|
-
interface AXPEntityStorageMiddleware<TKey = any, TDetailDto extends AXPEntityDetailDto<TKey> = any, TListItemDto extends AXPEntityListItemDto<TKey> = any, TCreateDto extends AXPEntityCreateDto = any, TUpdateDto extends AXPEntityUpdateDto<TKey> = any> {
|
|
2421
|
-
target?: {
|
|
2422
|
-
ops?: AXPEntityOp[];
|
|
2423
|
-
entity?: string | RegExp;
|
|
2424
|
-
predicate?: (ctx: AXPEntityStorageContext<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>) => boolean;
|
|
2425
|
-
order?: number;
|
|
2426
|
-
};
|
|
2427
|
-
execute: (ctx: AXPEntityStorageContext<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>, next: () => Promise<void>) => Promise<void>;
|
|
2428
|
-
}
|
|
2429
|
-
/**
|
|
2430
|
-
* Error type that can be thrown by middlewares to abort the chain with a structured payload.
|
|
2431
|
-
*/
|
|
2432
|
-
declare class AXPMiddlewareAbortError extends Error {
|
|
2433
|
-
readonly message: string;
|
|
2434
|
-
readonly options: {
|
|
2435
|
-
code?: string;
|
|
2436
|
-
status?: number;
|
|
2437
|
-
details?: any;
|
|
2438
|
-
};
|
|
2439
|
-
constructor(message: string, options?: {
|
|
2440
|
-
code?: string;
|
|
2441
|
-
status?: number;
|
|
2442
|
-
details?: any;
|
|
2443
|
-
});
|
|
2444
|
-
toResponse(): AXPMiddlewareErrorResponse;
|
|
2445
|
-
}
|
|
2446
|
-
/** Type guard for AXPMiddlewareAbortError */
|
|
2447
|
-
declare function isAXPMiddlewareAbortError(error: unknown): error is AXPMiddlewareAbortError;
|
|
2448
|
-
|
|
2449
2704
|
declare const eventDispatchMiddleware: AXPEntityStorageMiddleware;
|
|
2450
2705
|
|
|
2451
2706
|
/**
|
|
@@ -2554,6 +2809,57 @@ declare const defaultMultiLanguageMiddlewareProvider: AXPEntityModifierProvider;
|
|
|
2554
2809
|
declare const defaultCardLayoutMiddleware: AXPEntityModifier;
|
|
2555
2810
|
declare const defaultCardLayoutMiddlewareProvider: AXPEntityModifierProvider;
|
|
2556
2811
|
|
|
2812
|
+
declare const entityCreateBridgeMiddleware: AXPCommandMiddleware;
|
|
2813
|
+
declare const entityUpdateBridgeMiddleware: AXPCommandMiddleware;
|
|
2814
|
+
declare const entityDeleteBridgeMiddleware: AXPCommandMiddleware;
|
|
2815
|
+
declare const entityGetOneBridgeMiddleware: AXPQueryMiddleware;
|
|
2816
|
+
declare const entityQueryBridgeMiddleware: AXPQueryMiddleware;
|
|
2817
|
+
/** @deprecated */
|
|
2818
|
+
declare const entityStorageCreateBridgeMiddleware: AXPCommandMiddleware;
|
|
2819
|
+
/** @deprecated */
|
|
2820
|
+
declare const entityStorageUpdateBridgeMiddleware: AXPCommandMiddleware;
|
|
2821
|
+
/** @deprecated */
|
|
2822
|
+
declare const entityStorageDeleteBridgeMiddleware: AXPCommandMiddleware;
|
|
2823
|
+
/** @deprecated */
|
|
2824
|
+
declare const entityStorageGetOneBridgeMiddleware: AXPQueryMiddleware;
|
|
2825
|
+
/** @deprecated */
|
|
2826
|
+
declare const entityStorageQueryBridgeMiddleware: AXPQueryMiddleware;
|
|
2827
|
+
/**
|
|
2828
|
+
* Runs `AXP_ENTITY_MIDDLEWARE` around default entity runtime keys only.
|
|
2829
|
+
* Custom `Module.Entity:Operation` keys must register their own middleware if needed.
|
|
2830
|
+
*/
|
|
2831
|
+
declare function provideEntityMiddlewareBridge(): EnvironmentProviders[];
|
|
2832
|
+
/** @deprecated Use {@link provideEntityMiddlewareBridge} */
|
|
2833
|
+
declare const provideEntityStorageMiddlewareBridge: typeof provideEntityMiddlewareBridge;
|
|
2834
|
+
|
|
2835
|
+
declare function ensureListActions(ctx: AXPEntityModifierContext): void;
|
|
2836
|
+
declare function actionExists(actions: any[] | undefined, commandName: string, name?: string): boolean;
|
|
2837
|
+
interface AXPEntityLayoutSectionLike {
|
|
2838
|
+
id: string;
|
|
2839
|
+
}
|
|
2840
|
+
interface AXPEntityLayoutPropertyLike {
|
|
2841
|
+
name: string;
|
|
2842
|
+
}
|
|
2843
|
+
interface AXPEntityLayoutLike<TSection extends AXPEntityLayoutSectionLike = AXPEntityLayoutSectionLike, TProperty extends AXPEntityLayoutPropertyLike = AXPEntityLayoutPropertyLike> {
|
|
2844
|
+
sections: TSection[];
|
|
2845
|
+
properties?: TProperty[];
|
|
2846
|
+
}
|
|
2847
|
+
/** Layout order for the shared appearance section (after entity-defined groups). */
|
|
2848
|
+
declare const AXP_APPEARANCE_SECTION_ORDER = 900;
|
|
2849
|
+
/** Layout order for the shared classification section (after appearance). */
|
|
2850
|
+
declare const AXP_CLASSIFICATION_SECTION_ORDER = 910;
|
|
2851
|
+
/**
|
|
2852
|
+
* Clones `sections` and `properties` arrays to prevent accidental cross-interface mutations.
|
|
2853
|
+
* Many entity definitions reuse the same array instances across create/update/single interfaces.
|
|
2854
|
+
*/
|
|
2855
|
+
declare function cloneLayoutArrays<TLayout extends AXPEntityLayoutLike>(layout: TLayout): TLayout & {
|
|
2856
|
+
properties: NonNullable<TLayout['properties']>;
|
|
2857
|
+
};
|
|
2858
|
+
declare function ensureLayoutSection<TLayout extends AXPEntityLayoutLike>(layout: TLayout, section: TLayout['sections'][number]): void;
|
|
2859
|
+
declare function ensureLayoutPropertyView<TLayout extends AXPEntityLayoutLike>(layout: TLayout & {
|
|
2860
|
+
properties: NonNullable<TLayout['properties']>;
|
|
2861
|
+
}, prop: NonNullable<TLayout['properties']>[number]): void;
|
|
2862
|
+
|
|
2557
2863
|
/**
|
|
2558
2864
|
* Registers entity CRUD commands and queries for the given entity keys.
|
|
2559
2865
|
* Use in app/module providers; consumes AXPEntityService from this package.
|
|
@@ -2565,10 +2871,8 @@ interface AXPGetEntityDetailsQueryInput {
|
|
|
2565
2871
|
id: string;
|
|
2566
2872
|
}
|
|
2567
2873
|
interface AXPGetEntityDetailsQueryResult {
|
|
2568
|
-
|
|
2569
|
-
|
|
2570
|
-
entityData?: any;
|
|
2571
|
-
error?: string;
|
|
2874
|
+
entityDefinition: AXPEntity;
|
|
2875
|
+
entityData: any;
|
|
2572
2876
|
}
|
|
2573
2877
|
/**
|
|
2574
2878
|
* Generic query to get entity details including entity definition and entity data
|
|
@@ -2581,7 +2885,7 @@ declare class AXPGetEntityDetailsQuery implements AXPQuery<AXPGetEntityDetailsQu
|
|
|
2581
2885
|
* Execute the query to fetch entity definition and data
|
|
2582
2886
|
* @param input - Query input containing entity and ID information
|
|
2583
2887
|
*/
|
|
2584
|
-
fetch(input: AXPGetEntityDetailsQueryInput):
|
|
2888
|
+
fetch(input: AXPGetEntityDetailsQueryInput): AXPQueryFetchResultPromise<AXPGetEntityDetailsQueryResult>;
|
|
2585
2889
|
/**
|
|
2586
2890
|
* Get entity data using the entity's CRUD service
|
|
2587
2891
|
* @param entity - Full entity path (ModuleName.EntityName)
|
|
@@ -2717,6 +3021,8 @@ declare class AXPRelatedColumnMetadataResolver {
|
|
|
2717
3021
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPRelatedColumnMetadataResolver>;
|
|
2718
3022
|
}
|
|
2719
3023
|
|
|
3024
|
+
/** Footer command: validate, persist main entity, merge context, advance wizard. */
|
|
3025
|
+
declare const ENTITY_FORM_ACTION_FIRST_STEP_CONTINUE = "entity-form-first-step-continue";
|
|
2720
3026
|
interface IEntitySelectorStage {
|
|
2721
3027
|
/** Select target entity using "module.entity" format */
|
|
2722
3028
|
entity(fullName: string): IInterfaceSelectorStage;
|
|
@@ -2784,40 +3090,6 @@ type CompatFormFieldBuilder = {
|
|
|
2784
3090
|
customWidget(type: string, options?: any): any;
|
|
2785
3091
|
} & Partial<IFormFieldBuilder>;
|
|
2786
3092
|
|
|
2787
|
-
declare const AXP_ENTITY_STORAGE_BACKEND: InjectionToken<AXPEntityStorageService<any, any, any, any, any>>;
|
|
2788
|
-
declare const AXP_ENTITY_STORAGE_MIDDLEWARE: InjectionToken<AXPEntityStorageMiddleware<any, any, any, any, any>[]>;
|
|
2789
|
-
|
|
2790
|
-
declare class AXPMiddlewareEntityStorageService<TKey = any, TDetailDto extends AXPEntityDetailDto<TKey> = any, TListItemDto extends AXPEntityListItemDto<TKey> = any, TCreateDto extends AXPEntityCreateDto = any, TUpdateDto extends AXPEntityUpdateDto<TKey> = any> extends AXPEntityStorageService<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto> {
|
|
2791
|
-
private readonly backend;
|
|
2792
|
-
private readonly allMiddlewares;
|
|
2793
|
-
private readonly injector;
|
|
2794
|
-
/** In-flight read requests - identical parallel requests share one execution */
|
|
2795
|
-
private readonly inFlight;
|
|
2796
|
-
get dbName(): string;
|
|
2797
|
-
private filterMiddlewares;
|
|
2798
|
-
private compose;
|
|
2799
|
-
private run;
|
|
2800
|
-
private createCtx;
|
|
2801
|
-
initial(entityName: string, collection: TCreateDto[]): Promise<TCreateDto[]>;
|
|
2802
|
-
getOne(entityName: string, id: TKey): Promise<TDetailDto>;
|
|
2803
|
-
updateOne(entityName: string, id: TKey, keyValues: Omit<Partial<TUpdateDto>, 'id'>): Promise<TDetailDto>;
|
|
2804
|
-
deleteOne(entityName: string, id: TKey): Promise<void>;
|
|
2805
|
-
insertOne(entityName: string, entity: TCreateDto): Promise<TKey>;
|
|
2806
|
-
getAll(entityName: string): Promise<TListItemDto[]>;
|
|
2807
|
-
query(entityName: string, request: AXPQueryRequest): Promise<AXPPagedListResult<TListItemDto>>;
|
|
2808
|
-
count(entityName: string, request: Pick<AXPQueryRequest, 'filter' | 'sort'>): Promise<number>;
|
|
2809
|
-
queryAll(entityName: string, request: Pick<AXPQueryRequest, 'filter' | 'sort'>, options?: AXPEntityQueryAllOptions): Promise<AXPEntityQueryAllResult<TListItemDto>>;
|
|
2810
|
-
getMany(entityName: string, ids: TKey[]): Promise<(TListItemDto | null)[]>;
|
|
2811
|
-
exists(entityName: string, id: TKey): Promise<boolean>;
|
|
2812
|
-
upsertOne(entityName: string, entity: TCreateDto, options?: {
|
|
2813
|
-
merge?: boolean;
|
|
2814
|
-
}): Promise<TKey>;
|
|
2815
|
-
aggregate(entityName: string, request: AXPEntityAggregateRequest, options?: AXPEntityAggregateOptions): Promise<AXPEntityAggregateResult>;
|
|
2816
|
-
private runWithDedup;
|
|
2817
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPMiddlewareEntityStorageService<any, any, any, any, any>, never>;
|
|
2818
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPMiddlewareEntityStorageService<any, any, any, any, any>>;
|
|
2819
|
-
}
|
|
2820
|
-
|
|
2821
3093
|
type AXPEntityChangeSet = {
|
|
2822
3094
|
[key: string]: {
|
|
2823
3095
|
oldValue: any;
|
|
@@ -3391,12 +3663,11 @@ declare class AXPEntityListToolbarService {
|
|
|
3391
3663
|
declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
|
|
3392
3664
|
#private;
|
|
3393
3665
|
protected entityService: AXPEntityDefinitionRegistryService;
|
|
3394
|
-
protected
|
|
3666
|
+
protected entityEvents: AXPEntityBroadcastService;
|
|
3395
3667
|
protected entityListTableService: AXPEntityListTableService;
|
|
3396
3668
|
protected entityListToolbarService: AXPEntityListToolbarService;
|
|
3397
3669
|
protected deviceService: AXPDeviceService;
|
|
3398
3670
|
protected commandService: AXPCommandService;
|
|
3399
|
-
protected eventService: AXPBroadcastEventService;
|
|
3400
3671
|
private readonly expressionEvaluator;
|
|
3401
3672
|
private readonly columnWidthService;
|
|
3402
3673
|
private readonly route;
|
|
@@ -3410,6 +3681,12 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
3410
3681
|
protected selectedItems: _angular_core.WritableSignal<any[]>;
|
|
3411
3682
|
protected toolbarNode: _angular_core.WritableSignal<AXPWidgetNode | null>;
|
|
3412
3683
|
protected destroyed: Subject<void>;
|
|
3684
|
+
/** Invalidates in-flight filter/refresh work on remount, rapid page switches, or destroy. */
|
|
3685
|
+
private opGeneration;
|
|
3686
|
+
private isViewDestroyed;
|
|
3687
|
+
private initListTimeoutId;
|
|
3688
|
+
/** Unpatched data-list refresh (hits the grid). Prefer this over the scoped patch to avoid recursion. */
|
|
3689
|
+
private boundDataListRefresh;
|
|
3413
3690
|
protected entitySource: _angular_core.Signal<any>;
|
|
3414
3691
|
protected excludeColumns: _angular_core.Signal<string[]>;
|
|
3415
3692
|
protected includeColumns: _angular_core.Signal<string[]>;
|
|
@@ -3438,6 +3715,7 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
3438
3715
|
/**
|
|
3439
3716
|
* Route `filters` apply only when the active details `page` matches this list's entity
|
|
3440
3717
|
* (e.g. WorkOrder filters must not affect FailureRegister on the same asset layout).
|
|
3718
|
+
* page-list sidebar pages use `page-list-{module.entity}` as their page id.
|
|
3441
3719
|
*/
|
|
3442
3720
|
private shouldApplyRouteFilters;
|
|
3443
3721
|
/**
|
|
@@ -3445,19 +3723,41 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
3445
3723
|
*/
|
|
3446
3724
|
private mergeToolbarFilters;
|
|
3447
3725
|
private getMergedToolbarFilters;
|
|
3726
|
+
private beginOp;
|
|
3727
|
+
private isOpStale;
|
|
3728
|
+
private delay;
|
|
3448
3729
|
/**
|
|
3449
3730
|
* Applies merged route + parent-scope filters to the widget value and data source.
|
|
3450
3731
|
*/
|
|
3451
3732
|
private applyMergedRouteFiltersToList;
|
|
3452
|
-
/**
|
|
3733
|
+
/**
|
|
3734
|
+
* Syncs toolbar filters to context and AXDataSource (retries until data-list is mounted).
|
|
3735
|
+
* Stale generations (destroy / newer op) exit without touching the grid.
|
|
3736
|
+
*/
|
|
3453
3737
|
private reapplyScopedFiltersToDataSource;
|
|
3454
3738
|
/**
|
|
3455
3739
|
* Entity lists use `fetchDataMode: 'manual'`; after scoped filters reach the data source,
|
|
3456
|
-
* the grid must be refreshed once
|
|
3740
|
+
* the grid must be refreshed once. Retries until the data-table view child accepts refresh
|
|
3741
|
+
* so rapid relatedEntity page switches cannot leave the table on "no data loaded yet".
|
|
3457
3742
|
*/
|
|
3458
3743
|
private triggerInitialLoadIfNeeded;
|
|
3744
|
+
/**
|
|
3745
|
+
* Calls the unpatched data-list refresh until the grid is ready or the op is stale.
|
|
3746
|
+
*/
|
|
3747
|
+
private refreshWhenGridReady;
|
|
3748
|
+
/**
|
|
3749
|
+
* Prefer the bound original refresh (pre-patch). Falls back to an unpatched instance refresh.
|
|
3750
|
+
*/
|
|
3751
|
+
private resolveDataListRefresh;
|
|
3752
|
+
private refreshWhenGridReadyWith;
|
|
3753
|
+
/**
|
|
3754
|
+
* Parent-scoped related filters must have a real PK. Empty/undefined values would otherwise
|
|
3755
|
+
* load unscoped rows (other employees' assignments) in create wizards.
|
|
3756
|
+
*/
|
|
3757
|
+
private isUsableRelatedFilterValue;
|
|
3459
3758
|
/**
|
|
3460
3759
|
* Re-evaluates related-entity list filters from the live dialog form context (e.g. after create saves the main row id).
|
|
3760
|
+
* When the parent id is not ready yet, installs a never-match filter so the grid cannot leak other rows.
|
|
3461
3761
|
*/
|
|
3462
3762
|
private applyRelatedFiltersFromContext;
|
|
3463
3763
|
/**
|
|
@@ -3474,10 +3774,19 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
3474
3774
|
* Writes toolbar filters from specs and pushes them onto the data source so refresh/reload keeps the parent scope.
|
|
3475
3775
|
*/
|
|
3476
3776
|
private applyRelatedFiltersFromContextAndDatasource;
|
|
3777
|
+
/**
|
|
3778
|
+
* Applies parent-scoped filters then loads/refreshes the grid.
|
|
3779
|
+
* Used when dialog context gains a persisted root id (create-and-continue).
|
|
3780
|
+
*/
|
|
3781
|
+
private syncRelatedFiltersFromContextAndReload;
|
|
3477
3782
|
/**
|
|
3478
3783
|
* Refreshes the embedded data list (toolbar / commands). In wizard mode, `refresh` is patched to re-apply scoped filters first.
|
|
3479
3784
|
*/
|
|
3480
3785
|
private refreshGridWithParentScopedFilters;
|
|
3786
|
+
/**
|
|
3787
|
+
* Re-applies parent-scoped filters then refreshes the grid, ignoring stale overlapping calls.
|
|
3788
|
+
*/
|
|
3789
|
+
private runScopedDataListRefresh;
|
|
3481
3790
|
protected queries: undefined;
|
|
3482
3791
|
/**
|
|
3483
3792
|
* Validates that all required dependencies are available
|
|
@@ -3622,7 +3931,7 @@ interface AXPEntityDataSelectorSelectionOptions {
|
|
|
3622
3931
|
allowUnselect?: boolean;
|
|
3623
3932
|
}
|
|
3624
3933
|
interface AXPEntityDataSelectorGridOptions {
|
|
3625
|
-
columns?:
|
|
3934
|
+
columns?: AXPEntitySelectorColumnInput[];
|
|
3626
3935
|
pageSize?: number;
|
|
3627
3936
|
}
|
|
3628
3937
|
interface AXPEntityDataSelectorFilterOptions {
|
|
@@ -3657,6 +3966,11 @@ interface AXPEntityDataSelectorCreateOptions {
|
|
|
3657
3966
|
mode?: AXPDataSelectorAllowCreate;
|
|
3658
3967
|
/** Prefilled entity create form values; may use {{ context.eval() }} expressions. */
|
|
3659
3968
|
context?: AXPContextData;
|
|
3969
|
+
/**
|
|
3970
|
+
* Optional create-dialog header title (i18n key or plain text).
|
|
3971
|
+
* When set, replaces the default `Create {entity title}` header.
|
|
3972
|
+
*/
|
|
3973
|
+
title?: string;
|
|
3660
3974
|
}
|
|
3661
3975
|
/** Nested options for {@link AXPEntityDataSelectorService.open}. */
|
|
3662
3976
|
interface AXPEntityDataSelectorOpenOptions {
|
|
@@ -3687,7 +4001,7 @@ interface AXPEntityDataSelectorOptions {
|
|
|
3687
4001
|
allowUnselect?: boolean;
|
|
3688
4002
|
filters?: AXDataSourceFilterOption | null;
|
|
3689
4003
|
parentFilters?: AXDataSourceFilterOption | null;
|
|
3690
|
-
columns?:
|
|
4004
|
+
columns?: AXPEntitySelectorColumnInput[];
|
|
3691
4005
|
sortedFields?: {
|
|
3692
4006
|
name: string;
|
|
3693
4007
|
dir: 'asc' | 'desc';
|
|
@@ -3728,6 +4042,14 @@ declare function mapLegacyEntityDataSelectorOptions(legacy: AXPEntityDataSelecto
|
|
|
3728
4042
|
* When both shapes are mixed, nested groups take precedence over mapped legacy values.
|
|
3729
4043
|
*/
|
|
3730
4044
|
declare function normalizeEntityDataSelectorOptions(options: AXPEntityDataSelectorOpenInput): AXPEntityDataSelectorOpenOptions;
|
|
4045
|
+
/**
|
|
4046
|
+
* Normalizes selector columns to `{ name, visible }`.
|
|
4047
|
+
* Strings are visible. Objects default `visible` to true.
|
|
4048
|
+
*/
|
|
4049
|
+
declare function normalizeEntityDataSelectorColumnSpecs(columns: AXPEntitySelectorColumnInput[] | undefined): Array<{
|
|
4050
|
+
name: string;
|
|
4051
|
+
visible: boolean;
|
|
4052
|
+
}>;
|
|
3731
4053
|
declare class AXPEntityDataSelectorService {
|
|
3732
4054
|
private readonly dataSelectorService;
|
|
3733
4055
|
private readonly filterOperatorMiddleware;
|
|
@@ -3751,7 +4073,7 @@ declare class AXPEntityDataSelectorService {
|
|
|
3751
4073
|
* Execute Entity:Create and return created item.
|
|
3752
4074
|
* Used by lookup widget and data selector for inline create.
|
|
3753
4075
|
*/
|
|
3754
|
-
executeEntityCreate(entity: AXPEntity, mode: 'full' | 'quick', initialData?: Record<string, unknown
|
|
4076
|
+
executeEntityCreate(entity: AXPEntity, mode: 'full' | 'quick', initialData?: Record<string, unknown>, title?: string): Promise<any | null>;
|
|
3755
4077
|
/**
|
|
3756
4078
|
* Normalize item's phones/emails for expose/display.
|
|
3757
4079
|
* Call this when receiving items from any source (create, API, selector).
|
|
@@ -3770,9 +4092,15 @@ declare class AXPEntityDataSelectorService {
|
|
|
3770
4092
|
*/
|
|
3771
4093
|
private createDataSource;
|
|
3772
4094
|
/**
|
|
3773
|
-
* Create columns configuration from entity definition
|
|
4095
|
+
* Create columns configuration from entity definition.
|
|
4096
|
+
* Requested columns keep their `visible` flag so hidden fields (e.g. `id`) are fetched but not shown.
|
|
3774
4097
|
*/
|
|
3775
4098
|
private createColumns;
|
|
4099
|
+
/**
|
|
4100
|
+
* Builds query `fields` from all selector columns (visible and hidden) plus entity dataPaths.
|
|
4101
|
+
* `id` and tree keys are always included even when they are not grid columns.
|
|
4102
|
+
*/
|
|
4103
|
+
private buildQueryFields;
|
|
3776
4104
|
/**
|
|
3777
4105
|
* Get searchable fields from entity properties
|
|
3778
4106
|
*/
|
|
@@ -3841,7 +4169,7 @@ declare class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent<any>
|
|
|
3841
4169
|
protected expose: _angular_core.Signal<string | any[] | undefined>;
|
|
3842
4170
|
protected entity: _angular_core.Signal<string>;
|
|
3843
4171
|
protected disabled: _angular_core.Signal<string | boolean>;
|
|
3844
|
-
protected columns: _angular_core.Signal<
|
|
4172
|
+
protected columns: _angular_core.Signal<AXPEntitySelectorColumnInput[]>;
|
|
3845
4173
|
protected textField: _angular_core.Signal<string>;
|
|
3846
4174
|
/**
|
|
3847
4175
|
* Template for select look (`ax-select-box`). Uses `textTemplate` when set, otherwise
|
|
@@ -3933,7 +4261,7 @@ declare class AXPLookupWidgetColumnComponent extends AXPColumnWidgetComponent<an
|
|
|
3933
4261
|
protected isMorePopoverOpen: _angular_core.WritableSignal<boolean>;
|
|
3934
4262
|
protected selectedItemIndex: _angular_core.WritableSignal<number>;
|
|
3935
4263
|
protected resolvedPopoverItems: _angular_core.WritableSignal<any[]>;
|
|
3936
|
-
protected resolveStatus: _angular_core.WritableSignal<"
|
|
4264
|
+
protected resolveStatus: _angular_core.WritableSignal<"error" | "idle" | "loading" | "ready">;
|
|
3937
4265
|
protected resolveError: _angular_core.WritableSignal<string | null>;
|
|
3938
4266
|
protected summaryLabel: _angular_core.WritableSignal<string>;
|
|
3939
4267
|
protected popoverHeader: _angular_core.WritableSignal<string>;
|
|
@@ -4508,19 +4836,14 @@ declare class AXPSelectorStructureWidgetViewComponent extends AXPValueWidgetComp
|
|
|
4508
4836
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPSelectorStructureWidgetViewComponent, "axp-selector-structure-widget-view", never, {}, {}, never, never, true, never>;
|
|
4509
4837
|
}
|
|
4510
4838
|
|
|
4511
|
-
declare
|
|
4512
|
-
|
|
4513
|
-
|
|
4514
|
-
|
|
4515
|
-
|
|
4516
|
-
|
|
4517
|
-
|
|
4518
|
-
|
|
4519
|
-
declare const AXPEntityDeletedEvent: _acorex_platform_framework_client_workflow.AXPWorkflowEventCreator<{
|
|
4520
|
-
entity: string;
|
|
4521
|
-
ids: string[];
|
|
4522
|
-
meta?: unknown;
|
|
4523
|
-
}>;
|
|
4839
|
+
declare function dispatchEntityModifiedSideEffects(entityEvents: AXPEntityBroadcastService, entity: string, values: Record<string, unknown>, parentKey?: string): void;
|
|
4840
|
+
|
|
4841
|
+
/**
|
|
4842
|
+
* Maps `entity.mutation` realtime signals to:
|
|
4843
|
+
* - master-list refresh + row highlight
|
|
4844
|
+
* - local-entity engine delta (when the entity is managed / client-local)
|
|
4845
|
+
*/
|
|
4846
|
+
declare function provideEntityRealtimeHandlers(): Provider[];
|
|
4524
4847
|
|
|
4525
|
-
export { ATTACHMENTS_PAGE_COMPONENT_KEY, AXMEntityCrudService, AXMEntityCrudServiceImpl, AXPCategoryTreeService, AXPCreateEntityCommand, AXPDataSeederService, AXPDeleteEntityCommand, AXPEditFileUploaderCommand,
|
|
4526
|
-
export type { AXPDataSeeder, AXPDeleteEntityCommandInput, AXPEntityActionPlugin, AXPEntityCategoryWidgetOptions, AXPEntityChangeSet, AXPEntityConfigs, AXPEntityDataSelectorCategoryFilterOptions, AXPEntityDataSelectorCategoryOptions, AXPEntityDataSelectorCreateOptions, AXPEntityDataSelectorFilterOptions, AXPEntityDataSelectorGridOptions, AXPEntityDataSelectorOpenInput, AXPEntityDataSelectorOpenOptions, AXPEntityDataSelectorOptions, AXPEntityDataSelectorResult, AXPEntityDataSelectorRowActionsConfig, AXPEntityDataSelectorSearchOptions, AXPEntityDataSelectorSelectionOptions, AXPEntityDataSelectorSortOptions, AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader, AXPEntityDetailPopoverOptions, AXPEntityLayoutLike, AXPEntityLayoutPropertyLike, AXPEntityLayoutSectionLike, AXPEntityListEntry, AXPEntityListExpandRowRef, AXPEntityListInput, AXPEntityListPagingState, AXPEntityListPersistenceMode, AXPEntityListToolbarConvertOptions, AXPEntityMasterListCardLayout, AXPEntityMasterListCardSecondaryActionItem, AXPEntityMasterListViewSortPropViewModel, AXPEntityModifier, AXPEntityModifierContext, AXPEntityModifierProvider, AXPEntityPreloadEntity, AXPEntityStorageContext, AXPEntityStorageMiddleware, AXPFileListLook, AXPFileUploaderEditDialogFieldOptions, AXPFileUploaderEditDialogMode, AXPFileUploaderEditDialogOptions, AXPFileUploaderEntityFilesScope,
|
|
4848
|
+
export { ATTACHMENTS_PAGE_COMPONENT_KEY, AXMEntityCrudService, AXMEntityCrudServiceImpl, AXPCategoryTreeService, AXPClientLocalPluginModule, AXPCreateEntityCommand, AXPDataSeederService, AXPDeleteEntityCommand, AXPDomainQueryEntityDefinitionLoader, AXPEditFileUploaderCommand, AXPEntityBulkPatchPerformService, AXPEntityCategoryTreeSelectorComponent, AXPEntityCategoryWidget, AXPEntityCategoryWidgetColumnComponent, AXPEntityCategoryWidgetEditComponent, AXPEntityCategoryWidgetViewComponent, AXPEntityCommandTriggerViewModel, AXPEntityCreateViewElementViewModel, AXPEntityCreateViewModelFactory, AXPEntityCreateViewSectionViewModel, AXPEntityDataProvider, AXPEntityDataProviderImpl, AXPEntityDataSelectorRowActionsService, AXPEntityDataSelectorService, AXPEntityDefinitionProviderWidget, AXPEntityDefinitionProviderWidgetEditComponent, AXPEntityDefinitionRegistryService, AXPEntityDeletePerformService, AXPEntityDetailListViewModel, AXPEntityDetailPopoverComponent, AXPEntityDetailPopoverService, AXPEntityDetailViewModelFactory, AXPEntityDetailViewModelResolver, AXPEntityEventDispatcherService, AXPEntityFormBuilderService, AXPEntityLifecycleHookKeys, AXPEntityListPersistenceModeDefault, AXPEntityListTableService, AXPEntityListToolbarService, AXPEntityListViewCardFieldViewModel, AXPEntityListViewColumnViewModel, AXPEntityListViewModelFactory, AXPEntityListViewModelResolver, AXPEntityListWidget, AXPEntityListWidgetViewComponent, AXPEntityMasterCreateViewModel, AXPEntityMasterListCardSelectActionName, AXPEntityMasterListViewModel, AXPEntityMasterListViewQueryViewModel, AXPEntityMasterSingleElementViewModel, AXPEntityMasterSingleViewGroupViewModel, AXPEntityMasterSingleViewModel, AXPEntityMasterUpdateElementViewModel, AXPEntityMasterUpdateViewModel, AXPEntityMasterUpdateViewModelFactory, AXPEntityMiddlewareSkipContext, AXPEntityModule, AXPEntityPreloadFiltersContainerComponent, AXPEntityPreloadFiltersViewModel, AXPEntityPreloadFiltersViewModelResolver, AXPEntityResolver, AXPEntityRuntimeAccessorService, AXPEntityService, AXPEntityStorageService, AXPEntityUpdateViewSectionViewModel, AXPFileListComponent, AXPFileUploaderLoadFilesQuery, AXPFileUploaderSaveFilesCommand, AXPFileUploaderWidget, AXPFileUploaderWidgetColumnComponent, AXPFileUploaderWidgetEditComponent, AXPFileUploaderWidgetService, AXPFileUploaderWidgetViewComponent, AXPGetEntityDetailsQuery, AXPLayoutOrderingConfigService, AXPLookupWidget, AXPLookupWidgetColumnComponent, AXPLookupWidgetEditComponent, AXPLookupWidgetViewComponent, AXPMiddlewareAbortError, AXPMiddlewareEntityStorageService as AXPMiddlewareEntityService, AXPMiddlewareEntityStorageService, AXPMultiSourceDefinitionProviderContext, AXPMultiSourceDefinitionProviderService, AXPMultiSourceFederatedSearchService, AXPMultiSourceSelectorComponent, AXPMultiSourceSelectorService, AXPMultiSourceSelectorWidget, AXPMultiSourceSelectorWidgetColumnComponent, AXPMultiSourceSelectorWidgetEditComponent, AXPMultiSourceSelectorWidgetViewComponent, AXPMultiSourceType, AXPOpenEntityDetailsCommand, AXPOpenEntityListCommand, AXPRelatedColumnEnrichmentService, AXPRelatedColumnMetadataResolver, AXPSelectorStructureWidget, AXPSelectorStructureWidgetColumnComponent, AXPSelectorStructureWidgetEditComponent, AXPSelectorStructureWidgetViewComponent, AXPShowFileUploaderPopupCommand, AXPTruncatedBreadcrumbComponent, AXPUpdateEntityCommand, AXPUpdateEntityStatusCommand, AXPViewEntityDetailsCommand, AXP_APPEARANCE_SECTION_ORDER, AXP_CATEGORY_TREE_ROOT_TITLE_I18N_KEY, AXP_CLASSIFICATION_SECTION_ORDER, AXP_CLIENT_LOCAL_DEFAULT_MAX_ITEMS, AXP_CLIENT_LOCAL_PLUGIN_NAME, AXP_DATA_SEEDER_TOKEN, AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER, AXP_ENTITY_MIDDLEWARE, AXP_ENTITY_MODIFIER, AXP_ENTITY_STORAGE_MIDDLEWARE, AXP_MULTI_SOURCE_DEFINITION_PROVIDER, DEFAULT_COLUMN_ORDER, DEFAULT_PAIR_SPAN_RULES, DEFAULT_PROPERTY_ORDER, DEFAULT_SECTION_ORDER, ENTITY_FORM_ACTION_FIRST_STEP_CONTINUE, ENTITY_LIST_ROUTE_CONTEXT_SESSION_KEY, ENTITY_MASTER_LIST_TRACE_NS, EntityBuilder, EntityDataAccessor, GALLERY_PAGE_COMPONENT_KEY, TREE_CHILDREN_QUERY_TAKE, actionExists, applyDataSourcePagingWithoutLoad, attachmentFieldCount, attachmentNeedsHydration, attachmentsPlugin, attachmentsSemanticallyEqual, axpCreateEntityAiToolInputDefaults, axpCreateEntityCommandDefinition, axpDeleteEntityCommandDefinition, axpOpenEntityListCommandDefinition, axpShowFileUploaderPopupCommandDefinition, axpUpdateEntityStatusCommandDefinition, buildDataSourceTraceSnapshot, canPersistEntityListState, clientLocalPlugin, cloneLayoutArrays, columnOrderingMiddleware, columnOrderingMiddlewareProvider, columnWidthMiddleware, columnWidthMiddlewareProvider, committedAttachments, composeEntityMiddlewares, composeEntityStorageMiddlewares, computeEntityAggregates, createColumnOrderingMiddlewareProvider, createEntityMiddlewareContext, createEntityStorageContext, createLayoutOrderingMiddlewareProvider, defaultCardLayoutMiddleware, defaultCardLayoutMiddlewareProvider, defaultMultiLanguageMiddleware, defaultMultiLanguageMiddlewareProvider, detectEntityChanges, dispatchEntityModifiedSideEffects, ensureHierarchicalRootFilter, ensureLayoutPropertyView, ensureLayoutSection, ensureListActions, entityCreateBridgeMiddleware, entityDeleteBridgeMiddleware, entityGetOneBridgeMiddleware, entityQueryBridgeMiddleware, entityStorageCreateBridgeMiddleware, entityStorageDeleteBridgeMiddleware, entityStorageGetOneBridgeMiddleware, entityStorageQueryBridgeMiddleware, entityStorageUpdateBridgeMiddleware, entityUpdateBridgeMiddleware, eventDispatchMiddleware, filterEntityMiddlewares, filterEntityStorageMiddlewares, filterSortEntityRows, filterTouchesParentKey, findEntityListRowDataInTree, fingerprintAttachmentItem, fingerprintAttachments, fireEntityLifecycleHook, formatLookupItemDisplay, formatLookupItemDisplayAsync, galleryPlugin, getDataSourcePageIndex, getEntityListRowId, getMasterInterfacePropertySortKey, hasFileUploaderTitleOrDescriptionFields, hydrateAttachmentFieldToFileList, isAXPMiddlewareAbortError, isAttachmentFieldPresentOnRow, isAttachmentListEntry, isAttachmentStorageRef, isCategoryEntity, isCategoryFilter, isFileListItem, isFileUploaderEditDialogAuto, isLegacyEntityDataSelectorOptions, layoutOrderingMiddlewareFactory, layoutOrderingMiddlewareProvider, mapEntityStorageErrorToCommandResult, mapLegacyEntityDataSelectorOptions, normalizeEntityDataSelectorColumnSpecs, normalizeEntityDataSelectorOptions, normalizeEntityFieldToFileList, normalizeEntityListPersistenceMode, normalizeListPaging, persistedAttachments, prefetchClientLocalRelated, provideEntity, provideEntityMiddlewareBridge, provideEntityRealtimeHandlers, provideEntityStorageMiddlewareBridge, resetPagingForTreeChildrenLoad, resolveAttachmentFieldPath, resolveEntityPluginDetailPageOrder, resolveFileUploaderEditDialog, resolveFileUploaderEntityScope, resolveLookupDisplayField, resolveLookupDisplayTemplate, resolveLookupEntityKey, resolveMasterInterfacePropertyOrder, restoreEntityListExpandedRows, runEntityMiddlewarePipeline, runEntityQuery, runEntityStorageMiddlewarePipeline, searchResultDescriptionMiddleware, searchResultDescriptionMiddlewareProvider, shouldLoadEntityListStateFromStorage, shouldResetEntityListStateOnRouteEntry, traceEntityMasterList };
|
|
4849
|
+
export type { AXPClientLocalPluginOptions, AXPDataSeeder, AXPDeleteEntityCommandInput, AXPEntityAccessPort, AXPEntityActionPlugin, AXPEntityBulkPatchPerformInput, AXPEntityCategoryWidgetOptions, AXPEntityChangeSet, AXPEntityConfigs, AXPEntityDataSelectorCategoryFilterOptions, AXPEntityDataSelectorCategoryOptions, AXPEntityDataSelectorCreateOptions, AXPEntityDataSelectorFilterOptions, AXPEntityDataSelectorGridOptions, AXPEntityDataSelectorOpenInput, AXPEntityDataSelectorOpenOptions, AXPEntityDataSelectorOptions, AXPEntityDataSelectorResult, AXPEntityDataSelectorRowActionsConfig, AXPEntityDataSelectorSearchOptions, AXPEntityDataSelectorSelectionOptions, AXPEntityDataSelectorSortOptions, AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader, AXPEntityDeleteOptions, AXPEntityDeletePerformInput, AXPEntityDetailPopoverOptions, AXPEntityLayoutLike, AXPEntityLayoutPropertyLike, AXPEntityLayoutSectionLike, AXPEntityListEntry, AXPEntityListExpandRowRef, AXPEntityListInput, AXPEntityListPagingState, AXPEntityListPersistenceMode, AXPEntityListToolbarConvertOptions, AXPEntityMasterListCardLayout, AXPEntityMasterListCardSecondaryActionItem, AXPEntityMasterListViewSortPropViewModel, AXPEntityMiddleware, AXPEntityMiddlewareContext, AXPEntityModifier, AXPEntityModifierContext, AXPEntityModifierProvider, AXPEntityPreloadEntity, AXPEntityStorageBackend, AXPEntityStorageContext, AXPEntityStorageMiddleware, AXPFileListLook, AXPFileUploaderEditDialogFieldOptions, AXPFileUploaderEditDialogMode, AXPFileUploaderEditDialogOptions, AXPFileUploaderEntityFilesScope, AXPFileUploaderLoadFilesQueryInput, AXPFileUploaderLoadFilesQueryResult, AXPFileUploaderSaveFilesCommandInput, AXPFileUploaderSaveFilesCommandResult, AXPFileUploaderShowFileListEntityContext, AXPFileUploaderShowFileListOptions, AXPFileUploaderUploadActionDescriptor, AXPFileUploaderWidgetColumnOptions, AXPFileUploaderWidgetDesignerOptions, AXPFileUploaderWidgetEditOptions, AXPFileUploaderWidgetOptions, AXPFileUploaderWidgetPrintOptions, AXPFileUploaderWidgetViewOptions, AXPGetEntityDetailsQueryInput, AXPGetEntityDetailsQueryResult, AXPLookupDisplayEvalDeps, AXPMultiSourceDefinition, AXPMultiSourceDefinitionProvider, AXPMultiSourceItem, AXPMultiSourceRef, AXPMultiSourceSearchResult, AXPMultiSourceSearchResultItem, AXPMultiSourceSelectorOpenConfig, AXPMultiSourceSelectorResult, AXPMultiSourceSelectorWidgetOptions, AXPMultiSourceValue, AXPOpenEntityDetailsCommandInput, AXPOpenEntityListCommandInput, AXPOpenEntityListCondition, AXPRelatedColumnMetadata, AXPSelectorStructureFieldDef, AXPSelectorStructureIdentityDisplay, AXPSelectorStructurePresentationMode, AXPSelectorStructureSelectorMode, AXPSelectorStructureStructureMode, AXPSelectorStructureWidgetColumnOptions, AXPSelectorStructureWidgetDesignerOptions, AXPSelectorStructureWidgetEditOptions, AXPSelectorStructureWidgetOptions, AXPSelectorStructureWidgetPrintOptions, AXPSelectorStructureWidgetViewOptions, AXPShowFileUploaderPopupCommandInput, AXPUpdateEntityStatusCommandInput, AttachmentsDisplayMode, AttachmentsPluginOptions, CategoryQueryEvent, CategoryQueryFunction, CategoryQueryResult, CategoryTreeConfig, CategoryTreeNodeData, EntityDetailPluginPageSlot, EntityMasterListTraceArea, GalleryDisplayMode, GalleryPluginOptions, PairSpanRule, ResolveEntityPluginDetailPageOrderOptions, RunEntityQueryAdapters, SectionOrderConfig, SkipEntityComponentPageRef };
|