@acorex-platform/framework-client 0.0.18 → 0.0.21
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 +2666 -693
- package/fesm2022/acorex-platform-framework-client-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-core.mjs +685 -721
- 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 +124 -72
- 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 +2988 -857
- 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 -27090
- package/fesm2022/acorex-platform-framework-client-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-views.mjs +382 -154
- package/fesm2022/acorex-platform-framework-client-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs +646 -280
- 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 +4868 -2548
- 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 +421 -265
- 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 +613 -87
- package/types/acorex-platform-framework-client-core.d.ts +213 -206
- package/types/acorex-platform-framework-client-layout-builder.d.ts +14 -8
- package/types/acorex-platform-framework-client-layout-components.d.ts +392 -28
- package/types/acorex-platform-framework-client-layout-entity.d.ts +667 -417
- package/types/acorex-platform-framework-client-layout-views.d.ts +31 -11
- package/types/acorex-platform-framework-client-layout-widget-core.d.ts +66 -17
- package/types/acorex-platform-framework-client-layout-widgets.d.ts +294 -67
- 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 +11 -35
- 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, AXPEntityModifiedEventPayload } 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,8 +711,10 @@ 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
|
}
|
|
@@ -766,12 +735,12 @@ interface AXPUpdateEntityStatusCommandInput {
|
|
|
766
735
|
* Default handler for status-chip transitions when no custom transition.command is set.
|
|
767
736
|
* Patches only the status field via the entity update path (no edit dialog).
|
|
768
737
|
*/
|
|
769
|
-
declare class AXPUpdateEntityStatusCommand implements AXPCommand<AXPUpdateEntityStatusCommandInput
|
|
738
|
+
declare class AXPUpdateEntityStatusCommand implements AXPCommand<AXPUpdateEntityStatusCommandInput> {
|
|
770
739
|
private readonly entityService;
|
|
771
740
|
private readonly entityRegistry;
|
|
772
741
|
private readonly translationService;
|
|
773
|
-
private readonly
|
|
774
|
-
execute(input: AXPUpdateEntityStatusCommandInput):
|
|
742
|
+
private readonly entityEvents;
|
|
743
|
+
execute(input: AXPUpdateEntityStatusCommandInput): AXPCommandExecuteResultPromise;
|
|
775
744
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPUpdateEntityStatusCommand, never>;
|
|
776
745
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPUpdateEntityStatusCommand>;
|
|
777
746
|
}
|
|
@@ -812,7 +781,7 @@ declare const axpUpdateEntityStatusCommandDefinition: {
|
|
|
812
781
|
ai: {
|
|
813
782
|
tags: string[];
|
|
814
783
|
};
|
|
815
|
-
categories:
|
|
784
|
+
categories: _acorex_platform_framework_shared_core.AXPDefinitionCategory[];
|
|
816
785
|
};
|
|
817
786
|
|
|
818
787
|
declare class AXPViewEntityDetailsCommand implements AXPCommand<any, any> {
|
|
@@ -821,37 +790,28 @@ declare class AXPViewEntityDetailsCommand implements AXPCommand<any, any> {
|
|
|
821
790
|
private readonly translationService;
|
|
822
791
|
private readonly expressionEvaluator;
|
|
823
792
|
private readonly contextEvalFactory;
|
|
824
|
-
execute(input
|
|
793
|
+
execute(input?: AXPEntityActionCommandInput & {
|
|
794
|
+
excludeProperties?: unknown;
|
|
795
|
+
}): AXPCommandExecuteResultPromise<any>;
|
|
825
796
|
private resolveDialogTitle;
|
|
826
797
|
private loadRecordContext;
|
|
827
798
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPViewEntityDetailsCommand, never>;
|
|
828
799
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPViewEntityDetailsCommand>;
|
|
829
800
|
}
|
|
830
801
|
|
|
831
|
-
|
|
832
|
-
entity?: string;
|
|
833
|
-
data?: {
|
|
834
|
-
id: string;
|
|
835
|
-
};
|
|
836
|
-
__context__?: {
|
|
837
|
-
entity?: string;
|
|
838
|
-
data?: {
|
|
839
|
-
id: string;
|
|
840
|
-
};
|
|
841
|
-
};
|
|
842
|
-
}
|
|
802
|
+
type AXPOpenEntityDetailsCommandInput = AXPEntityActionCommandInput;
|
|
843
803
|
/**
|
|
844
804
|
* Generic command to open entity details view
|
|
845
805
|
* Can be used by any entity to navigate to its detail page
|
|
846
806
|
*/
|
|
847
|
-
declare class AXPOpenEntityDetailsCommand implements AXPCommand<AXPOpenEntityDetailsCommandInput
|
|
807
|
+
declare class AXPOpenEntityDetailsCommand implements AXPCommand<AXPOpenEntityDetailsCommandInput> {
|
|
848
808
|
private readonly router;
|
|
849
809
|
private readonly sessionService;
|
|
850
810
|
/**
|
|
851
811
|
* Execute the command to navigate to entity details
|
|
852
812
|
* @param input - Command input containing entity and data information
|
|
853
813
|
*/
|
|
854
|
-
execute(input?: AXPOpenEntityDetailsCommandInput):
|
|
814
|
+
execute(input?: AXPOpenEntityDetailsCommandInput): AXPCommandExecuteResultPromise;
|
|
855
815
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPOpenEntityDetailsCommand, never>;
|
|
856
816
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPOpenEntityDetailsCommand>;
|
|
857
817
|
}
|
|
@@ -974,25 +934,21 @@ declare class AXPEntityPreloadFiltersContainerComponent extends AXPPageLayoutBas
|
|
|
974
934
|
onApply(event: AXPPreloadFiltersApplyEvent): Promise<void>;
|
|
975
935
|
onShowAll(): Promise<void>;
|
|
976
936
|
private buildPreloadFilterQueries;
|
|
937
|
+
/**
|
|
938
|
+
* Filter widgets store `{ value, operation, displayText? }`; plain values are treated as equal filters.
|
|
939
|
+
*/
|
|
940
|
+
private unwrapFilterWidgetEntry;
|
|
977
941
|
private buildListQueryFilter;
|
|
978
942
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityPreloadFiltersContainerComponent, never>;
|
|
979
943
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityPreloadFiltersContainerComponent, "axp-entity-preload-filters-container", never, {}, {}, never, never, true, never>;
|
|
980
944
|
}
|
|
981
945
|
|
|
982
|
-
/**
|
|
983
|
-
* Data source definition provider that returns all entity names
|
|
984
|
-
* from entity loaders' list() (const.ts in each module).
|
|
985
|
-
*/
|
|
986
|
-
declare class AXPEntitiesListDataSourceDefinition implements AXPDataSourceDefinitionProvider {
|
|
987
|
-
private readonly entityResolver;
|
|
988
|
-
items(): Promise<AXPDataSourceDefinition[]>;
|
|
989
|
-
}
|
|
990
|
-
|
|
991
946
|
/**
|
|
992
947
|
* Built-in entity detail tabs from plugins. Sidebar order (after related page-list / page-detail
|
|
993
|
-
* 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).
|
|
994
950
|
*/
|
|
995
|
-
type EntityDetailPluginPageSlot = 'meta-data-builder' | 'attachments' | 'gallery' | 'documents' | 'comments' | 'dashboard' | 'history';
|
|
951
|
+
type EntityDetailPluginPageSlot = 'meta-data-builder' | 'attachments' | 'gallery' | 'documents' | 'comments' | 'dashboard' | 'reports' | 'history';
|
|
996
952
|
/** Identifies an `entity.pages` entry when skipping its order during recomputation. */
|
|
997
953
|
interface SkipEntityComponentPageRef {
|
|
998
954
|
componentKey: string;
|
|
@@ -1020,8 +976,8 @@ interface ResolveEntityPluginDetailPageOrderOptions {
|
|
|
1020
976
|
*
|
|
1021
977
|
* 1. Assigns finite `layout.order` values to related `page-list` / `page-detail` rows that omit
|
|
1022
978
|
* `order` (the composer otherwise treats them as +Infinity).
|
|
1023
|
-
* 2. Places plugin tabs in a fixed relative order: meta-data-builder → attachments →
|
|
1024
|
-
* 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.
|
|
1025
981
|
*/
|
|
1026
982
|
declare function resolveEntityPluginDetailPageOrder(input: {
|
|
1027
983
|
relatedEntities?: AXPRelatedEntity[];
|
|
@@ -1165,9 +1121,14 @@ declare class AXPEntityEventDispatcherService {
|
|
|
1165
1121
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityEventDispatcherService>;
|
|
1166
1122
|
}
|
|
1167
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;
|
|
1168
1129
|
/**
|
|
1169
1130
|
* Sort key for entries in `interfaces.master.{create|update|single}.properties`.
|
|
1170
|
-
* 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.
|
|
1171
1132
|
*/
|
|
1172
1133
|
declare function getMasterInterfacePropertySortKey(interfaceRow: {
|
|
1173
1134
|
layout?: AXPEntityPropertyLayoutConfig | undefined;
|
|
@@ -1207,6 +1168,29 @@ interface AXPEntityListPagingState {
|
|
|
1207
1168
|
take: number;
|
|
1208
1169
|
skip: number;
|
|
1209
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;
|
|
1210
1194
|
/**
|
|
1211
1195
|
* Applies take/skip to the data source without triggering {@link AXDataSource.load}.
|
|
1212
1196
|
*/
|
|
@@ -1327,14 +1311,13 @@ declare class AXPEntityMasterListViewModel {
|
|
|
1327
1311
|
private readonly _viewDef;
|
|
1328
1312
|
private readonly formatService;
|
|
1329
1313
|
private readonly session;
|
|
1330
|
-
private readonly
|
|
1314
|
+
private readonly entityEvents;
|
|
1331
1315
|
private readonly settings;
|
|
1332
1316
|
private readonly widgetResolver;
|
|
1333
1317
|
private readonly expressionEvaluator;
|
|
1334
1318
|
private readonly contextEvalFactory;
|
|
1335
1319
|
private readonly translation;
|
|
1336
1320
|
private readonly commandService;
|
|
1337
|
-
private readonly eventService;
|
|
1338
1321
|
private readonly queryExecutor;
|
|
1339
1322
|
private readonly filterOperatorMiddleware;
|
|
1340
1323
|
private readonly entityDefinitionRegistry;
|
|
@@ -1344,6 +1327,7 @@ declare class AXPEntityMasterListViewModel {
|
|
|
1344
1327
|
private lastAppliedFilterKey;
|
|
1345
1328
|
private hasQueryParamsFilters;
|
|
1346
1329
|
private routeQueryContextKey;
|
|
1330
|
+
private settingsUpdateChain;
|
|
1347
1331
|
private initialListSettingsApplied;
|
|
1348
1332
|
/** Persisted expanded row ids for hierarchical lists (per view). */
|
|
1349
1333
|
private readonly expandedRowIds;
|
|
@@ -1481,6 +1465,11 @@ declare class AXPEntityMasterListViewModel {
|
|
|
1481
1465
|
*/
|
|
1482
1466
|
updateExpandedRowId(rowId: string, expanded: boolean): void;
|
|
1483
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;
|
|
1484
1473
|
saveSettings(changesType: 'columnSizes' | 'columnOrders' | 'view' | 'pageSize' | 'listPaging' | 'filters' | 'sorts' | 'expandedRows' | 'listLayout' | 'cardContentExpanded', data?: unknown): Promise<void>;
|
|
1485
1474
|
selectedItems: _angular_core.WritableSignal<any[]>;
|
|
1486
1475
|
/**
|
|
@@ -1543,13 +1532,18 @@ declare class AXPEntityMasterListViewModel {
|
|
|
1543
1532
|
*/
|
|
1544
1533
|
applyFiltersFromQueryParams(filtersJson: string | null): boolean;
|
|
1545
1534
|
/**
|
|
1546
|
-
* Records the
|
|
1535
|
+
* Records the route query context after initial resolver / view init so the first
|
|
1547
1536
|
* subscription emission does not re-sync unnecessarily.
|
|
1537
|
+
*
|
|
1538
|
+
* @param overrides Merged over the snapshot (e.g. pending `view` written via `replaceUrl`).
|
|
1548
1539
|
*/
|
|
1549
|
-
markRouteQueryContextSynced(queryParamMap: ParamMap): void;
|
|
1540
|
+
markRouteQueryContextSynced(queryParamMap: ParamMap, overrides?: Record<string, string | null | undefined>): void;
|
|
1550
1541
|
/**
|
|
1551
1542
|
* Reacts to any route query param change while the list route is reused (`reuse: queryParamsChange`).
|
|
1552
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.
|
|
1553
1547
|
*/
|
|
1554
1548
|
syncFromRouteQueryParams(queryParamMap: ParamMap): Promise<{
|
|
1555
1549
|
reloadList: boolean;
|
|
@@ -1568,15 +1562,31 @@ declare class AXPEntityMasterListViewModel {
|
|
|
1568
1562
|
get preloadFiltersDef(): AXPEntityListFilterDefinition[];
|
|
1569
1563
|
applyViewFilters(): Promise<void>;
|
|
1570
1564
|
resetFilters(): void;
|
|
1571
|
-
applyFilterAndSort(
|
|
1565
|
+
applyFilterAndSort(options?: {
|
|
1566
|
+
resetPagination?: boolean;
|
|
1567
|
+
}): Promise<void>;
|
|
1572
1568
|
private updateAppliedInlineFilterHighlightText;
|
|
1573
1569
|
private resolveMergeDetailProperty;
|
|
1574
1570
|
private allAvailableColumns;
|
|
1575
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;
|
|
1576
1577
|
columns: _angular_core.WritableSignal<AXPEntityListViewColumnViewModel[]>;
|
|
1577
|
-
resetColumns(): void
|
|
1578
|
+
resetColumns(): Promise<void>;
|
|
1578
1579
|
onColumnsChanged(columns: AXPEntityListViewColumnViewModel[]): Promise<void>;
|
|
1579
|
-
|
|
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;
|
|
1580
1590
|
onColumnsOrderChanged(event: any): void;
|
|
1581
1591
|
private mergeDisplayFieldWithColumn;
|
|
1582
1592
|
private buildVirtualDisplayProperty;
|
|
@@ -1686,7 +1696,7 @@ declare class AXPEntityMasterSingleViewModel {
|
|
|
1686
1696
|
private readonly _viewDef;
|
|
1687
1697
|
private readonly session;
|
|
1688
1698
|
private readonly formatService;
|
|
1689
|
-
private readonly
|
|
1699
|
+
private readonly entityEvents;
|
|
1690
1700
|
private readonly commandService;
|
|
1691
1701
|
private readonly destroyed;
|
|
1692
1702
|
private translateService;
|
|
@@ -1776,6 +1786,267 @@ declare class AXPEntityMasterUpdateViewModelFactory {
|
|
|
1776
1786
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityMasterUpdateViewModelFactory>;
|
|
1777
1787
|
}
|
|
1778
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
|
+
|
|
1779
2050
|
type AXPEntityMasterListCardLayout = NonNullable<NonNullable<AXPEntityMasterListView['layouts']>['card']>;
|
|
1780
2051
|
interface AXPEntityModifierContext {
|
|
1781
2052
|
readonly entity: AXPEntity;
|
|
@@ -1899,60 +2170,6 @@ interface AXPEntityModifierProvider {
|
|
|
1899
2170
|
order?: number;
|
|
1900
2171
|
}
|
|
1901
2172
|
|
|
1902
|
-
declare function ensureListActions(ctx: AXPEntityModifierContext): void;
|
|
1903
|
-
declare function actionExists(actions: any[] | undefined, commandName: string, name?: string): boolean;
|
|
1904
|
-
interface AXPEntityLayoutSectionLike {
|
|
1905
|
-
id: string;
|
|
1906
|
-
}
|
|
1907
|
-
interface AXPEntityLayoutPropertyLike {
|
|
1908
|
-
name: string;
|
|
1909
|
-
}
|
|
1910
|
-
interface AXPEntityLayoutLike<TSection extends AXPEntityLayoutSectionLike = AXPEntityLayoutSectionLike, TProperty extends AXPEntityLayoutPropertyLike = AXPEntityLayoutPropertyLike> {
|
|
1911
|
-
sections: TSection[];
|
|
1912
|
-
properties?: TProperty[];
|
|
1913
|
-
}
|
|
1914
|
-
/** Layout order for the shared appearance section (after entity-defined groups). */
|
|
1915
|
-
declare const AXP_APPEARANCE_SECTION_ORDER = 900;
|
|
1916
|
-
/** Layout order for the shared classification section (after appearance). */
|
|
1917
|
-
declare const AXP_CLASSIFICATION_SECTION_ORDER = 910;
|
|
1918
|
-
/**
|
|
1919
|
-
* Clones `sections` and `properties` arrays to prevent accidental cross-interface mutations.
|
|
1920
|
-
* Many entity definitions reuse the same array instances across create/update/single interfaces.
|
|
1921
|
-
*/
|
|
1922
|
-
declare function cloneLayoutArrays<TLayout extends AXPEntityLayoutLike>(layout: TLayout): TLayout & {
|
|
1923
|
-
properties: NonNullable<TLayout['properties']>;
|
|
1924
|
-
};
|
|
1925
|
-
declare function ensureLayoutSection<TLayout extends AXPEntityLayoutLike>(layout: TLayout, section: TLayout['sections'][number]): void;
|
|
1926
|
-
declare function ensureLayoutPropertyView<TLayout extends AXPEntityLayoutLike>(layout: TLayout & {
|
|
1927
|
-
properties: NonNullable<TLayout['properties']>;
|
|
1928
|
-
}, prop: NonNullable<TLayout['properties']>[number]): void;
|
|
1929
|
-
|
|
1930
|
-
interface AXPEntityActionPlugin {
|
|
1931
|
-
name: string;
|
|
1932
|
-
order?: number;
|
|
1933
|
-
apply: (ctx: AXPEntityModifierContext, options?: any) => Promise<void> | void;
|
|
1934
|
-
}
|
|
1935
|
-
declare const AXP_ENTITY_ACTION_PLUGIN: InjectionToken<AXPEntityActionPlugin[]>;
|
|
1936
|
-
|
|
1937
|
-
declare class AXPEntityMiddleware {
|
|
1938
|
-
private exactModifiers;
|
|
1939
|
-
private patternModifiers;
|
|
1940
|
-
protected providedModifiers: AXPEntityModifierProvider[];
|
|
1941
|
-
protected providedActionPlugins: AXPEntityActionPlugin[];
|
|
1942
|
-
protected injector: Injector;
|
|
1943
|
-
constructor();
|
|
1944
|
-
register(entityName: string | RegExp, modifier: AXPEntityModifier, order?: number): void;
|
|
1945
|
-
process(entity: AXPEntity): Promise<AXPEntity>;
|
|
1946
|
-
private createModifierStep;
|
|
1947
|
-
private createPluginStep;
|
|
1948
|
-
private wildcardToRegExp;
|
|
1949
|
-
private normalizeRegExp;
|
|
1950
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityMiddleware, never>;
|
|
1951
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityMiddleware>;
|
|
1952
|
-
}
|
|
1953
|
-
|
|
1954
|
-
declare function createModifierContext(entity: AXPEntity): AXPEntityModifierContext;
|
|
1955
|
-
|
|
1956
2173
|
declare const AXP_ENTITY_MODIFIER: InjectionToken<AXPEntityModifierProvider[]>;
|
|
1957
2174
|
|
|
1958
2175
|
declare class AXPEntityPreloadFiltersViewModel {
|
|
@@ -1972,7 +2189,7 @@ declare class AXPEntityPreloadFiltersViewModel {
|
|
|
1972
2189
|
*/
|
|
1973
2190
|
description: _angular_core.Signal<string | null>;
|
|
1974
2191
|
/**
|
|
1975
|
-
*
|
|
2192
|
+
* Preload filter definitions with a single `contains` operator (hides the filter operations menu).
|
|
1976
2193
|
*/
|
|
1977
2194
|
preloadFiltersDef: _angular_core.Signal<AXPFilterDefinition[]>;
|
|
1978
2195
|
/**
|
|
@@ -2002,6 +2219,8 @@ declare class AXPEntityDefinitionRegistryService {
|
|
|
2002
2219
|
name: string;
|
|
2003
2220
|
}>;
|
|
2004
2221
|
private entities;
|
|
2222
|
+
/** In-flight resolve() calls keyed by `module.entity` — coalesces concurrent callers. */
|
|
2223
|
+
private readonly pendingResolves;
|
|
2005
2224
|
private entityResolver;
|
|
2006
2225
|
/**
|
|
2007
2226
|
* Force re-load and re-process entity definitions, then re-register them.
|
|
@@ -2045,6 +2264,7 @@ declare class AXPEntityDefinitionRegistryService {
|
|
|
2045
2264
|
* @throws Error if the entity configuration cannot be resolved.
|
|
2046
2265
|
*/
|
|
2047
2266
|
resolve(moduleName: string, entityName: string): Promise<AXPEntity>;
|
|
2267
|
+
private loadAndRegister;
|
|
2048
2268
|
exists(moduleName: string, entityName: string): Promise<boolean>;
|
|
2049
2269
|
/**
|
|
2050
2270
|
* Creates a unique key for an entity based on its module and name.
|
|
@@ -2082,107 +2302,69 @@ declare function isCategoryFilter(filter: any): boolean;
|
|
|
2082
2302
|
* without pagination.
|
|
2083
2303
|
*/
|
|
2084
2304
|
declare function filterSortEntityRows<T = unknown>(entityName: string, request: Pick<AXPQueryRequest, 'filter' | 'sort' | 'params'>, adapters: RunEntityQueryAdapters<T>, sortLocale?: string): Promise<T[]>;
|
|
2085
|
-
/**
|
|
2086
|
-
* Shared entity query logic: sort, filter (including recursive category filter), childrenCount, pagination.
|
|
2087
|
-
*/
|
|
2088
|
-
declare function runEntityQuery<T = unknown>(entityName: string, request: AXPQueryRequest, adapters: RunEntityQueryAdapters<T>, sortLocale?: string): Promise<AXPPagedListResult<T>>;
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
|
|
2095
|
-
|
|
2096
|
-
|
|
2097
|
-
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
|
|
2101
|
-
|
|
2102
|
-
|
|
2103
|
-
|
|
2104
|
-
merge?: boolean;
|
|
2105
|
-
}): Promise<TKey>;
|
|
2106
|
-
abstract aggregate(entityName: string, request: AXPEntityAggregateRequest, options?: AXPEntityAggregateOptions): Promise<AXPEntityAggregateResult>;
|
|
2305
|
+
/**
|
|
2306
|
+
* Shared entity query logic: sort, filter (including recursive category filter), childrenCount, pagination.
|
|
2307
|
+
*/
|
|
2308
|
+
declare function runEntityQuery<T = unknown>(entityName: string, request: AXPQueryRequest, adapters: RunEntityQueryAdapters<T>, sortLocale?: string): Promise<AXPPagedListResult<T>>;
|
|
2309
|
+
|
|
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;
|
|
2107
2324
|
}
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
}): Promise<TKey>;
|
|
2124
|
-
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>;
|
|
2125
2340
|
}
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
initial(collection: TCreateDto[]): Promise<void>;
|
|
2131
|
-
getOne(id: TKey): Promise<TDetailDto>;
|
|
2132
|
-
getAll(): Promise<TListItemDto[]>;
|
|
2133
|
-
query(request: AXPQueryRequest): Promise<AXPPagedListResult<TListItemDto>>;
|
|
2134
|
-
updateOne(id: TKey, keyValues: Omit<Partial<TUpdateDto>, 'id'>): Promise<TDetailDto>;
|
|
2135
|
-
deleteOne(id: TKey): Promise<void>;
|
|
2136
|
-
insertOne(entity: TCreateDto): Promise<TKey>;
|
|
2137
|
-
count(request: Pick<AXPQueryRequest, 'filter' | 'sort'>): Promise<number>;
|
|
2138
|
-
queryAll(request: Pick<AXPQueryRequest, 'filter' | 'sort'>, options?: AXPEntityQueryAllOptions): Promise<AXPEntityQueryAllResult<TListItemDto>>;
|
|
2139
|
-
getMany(ids: TKey[]): Promise<(TListItemDto | null)[]>;
|
|
2140
|
-
exists(id: TKey): Promise<boolean>;
|
|
2141
|
-
upsertOne(entity: TCreateDto, options?: {
|
|
2142
|
-
merge?: boolean;
|
|
2143
|
-
}): Promise<TKey>;
|
|
2144
|
-
aggregate(request: AXPEntityAggregateRequest, options?: AXPEntityAggregateOptions): Promise<AXPEntityAggregateResult>;
|
|
2341
|
+
|
|
2342
|
+
interface AXPEntityDeleteOptions {
|
|
2343
|
+
source: string;
|
|
2344
|
+
ids: string[];
|
|
2145
2345
|
}
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
abstract query(request: AXPQueryRequest): Promise<AXPPagedListResult<TListItemDto>>;
|
|
2346
|
+
interface AXPEntityDeletePerformInput {
|
|
2347
|
+
entity?: string;
|
|
2348
|
+
data?: unknown;
|
|
2349
|
+
entities?: AXPEntityDeleteOptions[];
|
|
2350
|
+
meta?: unknown;
|
|
2152
2351
|
}
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
private
|
|
2158
|
-
private
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
|
|
2169
|
-
parentKey?: string;
|
|
2170
|
-
}): Promise<AXPPagedListResult<TListItemDto>>;
|
|
2171
|
-
getByCategory(request: {
|
|
2172
|
-
categoryId: TKey;
|
|
2173
|
-
categoryKey?: string;
|
|
2174
|
-
}): Promise<AXPPagedListResult<TListItemDto>>;
|
|
2175
|
-
getCategoriesList(request?: AXPQueryRequest): Promise<AXPPagedListResult<AXPCategoryEntity<TKey>>>;
|
|
2176
|
-
get storageService(): AXPEntityStorageService<any, any, any, any, any>;
|
|
2177
|
-
count(request: Pick<AXPQueryRequest, 'filter' | 'sort'>): Promise<number>;
|
|
2178
|
-
queryAll(request: Pick<AXPQueryRequest, 'filter' | 'sort'>, options?: AXPEntityQueryAllOptions): Promise<AXPEntityQueryAllResult<TListItemDto>>;
|
|
2179
|
-
getMany(ids: TKey[]): Promise<(TListItemDto | null)[]>;
|
|
2180
|
-
exists(id: TKey): Promise<boolean>;
|
|
2181
|
-
upsertOne(entity: TCreateDto, options?: {
|
|
2182
|
-
merge?: boolean;
|
|
2183
|
-
}): Promise<TKey>;
|
|
2184
|
-
aggregate(request: AXPEntityAggregateRequest, options?: AXPEntityAggregateOptions): Promise<AXPEntityAggregateResult>;
|
|
2185
|
-
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>;
|
|
2186
2368
|
}
|
|
2187
2369
|
|
|
2188
2370
|
interface AXPEntityConfigs {
|
|
@@ -2227,12 +2409,37 @@ declare class AXPEntityResolver {
|
|
|
2227
2409
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityResolver>;
|
|
2228
2410
|
}
|
|
2229
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
|
+
|
|
2230
2431
|
declare class AXPAttachmentsPluginModule {
|
|
2231
2432
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPAttachmentsPluginModule, never>;
|
|
2232
2433
|
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXPAttachmentsPluginModule, never, never, never>;
|
|
2233
2434
|
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXPAttachmentsPluginModule>;
|
|
2234
2435
|
}
|
|
2235
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
|
+
|
|
2236
2443
|
declare class AXPGalleryPluginModule {
|
|
2237
2444
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPGalleryPluginModule, never>;
|
|
2238
2445
|
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXPGalleryPluginModule, never, never, never>;
|
|
@@ -2242,14 +2449,14 @@ declare class AXPGalleryPluginModule {
|
|
|
2242
2449
|
declare class AXPEntityModule {
|
|
2243
2450
|
constructor();
|
|
2244
2451
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityModule, never>;
|
|
2245
|
-
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>;
|
|
2246
2453
|
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXPEntityModule>;
|
|
2247
2454
|
}
|
|
2248
2455
|
|
|
2249
2456
|
/**
|
|
2250
2457
|
* Maps storage middleware failures to a command result the details view can surface.
|
|
2251
2458
|
*/
|
|
2252
|
-
declare function mapEntityStorageErrorToCommandResult(error: unknown, fallback?: string):
|
|
2459
|
+
declare function mapEntityStorageErrorToCommandResult(error: unknown, fallback?: string): AXPRuntimeCommandResult;
|
|
2253
2460
|
/**
|
|
2254
2461
|
* Data accessor for entity operations.
|
|
2255
2462
|
* Provides methods to query and execute commands with smart resolution:
|
|
@@ -2267,6 +2474,7 @@ declare class EntityDataAccessor<TKey = any, TDetailDto extends AXPEntityDetailD
|
|
|
2267
2474
|
private entityDef;
|
|
2268
2475
|
private entityDefPromise;
|
|
2269
2476
|
constructor(module: string, entity: string, entityRegistry: AXPEntityDefinitionRegistryService, queryExecutor: AXPQueryExecutor, commandService: AXPCommandService, injector: Injector);
|
|
2477
|
+
private canRunAppScopedEntityAccess;
|
|
2270
2478
|
/**
|
|
2271
2479
|
* Lazily creates the CRUD fallback inside an injection context so {@link AXMEntityCrudServiceImpl}
|
|
2272
2480
|
* can resolve {@link AXPEntityStorageService} via `inject()`.
|
|
@@ -2370,6 +2578,13 @@ declare class AXPEntityService {
|
|
|
2370
2578
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityService>;
|
|
2371
2579
|
}
|
|
2372
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
|
+
|
|
2373
2588
|
/** How to show attachments in entity single/create/update: as a section (default) or as a separate page. */
|
|
2374
2589
|
type AttachmentsDisplayMode = 'section' | 'page';
|
|
2375
2590
|
/** Component key used when display is 'page'. Register a page component with this key via AXP_PAGE_COMPONENT_PROVIDER. */
|
|
@@ -2422,6 +2637,35 @@ type AttachmentsPluginOptions = {
|
|
|
2422
2637
|
*/
|
|
2423
2638
|
declare const attachmentsPlugin: AXPEntityActionPlugin;
|
|
2424
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
|
+
|
|
2425
2669
|
/** How to show gallery in entity single view: as a section (default) or as a separate page. */
|
|
2426
2670
|
type GalleryDisplayMode = 'section' | 'page';
|
|
2427
2671
|
/** Component key used when display is 'page'. Register a page component with this key via AXP_PAGE_COMPONENT_PROVIDER. */
|
|
@@ -2457,60 +2701,6 @@ type GalleryPluginOptions = {
|
|
|
2457
2701
|
*/
|
|
2458
2702
|
declare const galleryPlugin: AXPEntityActionPlugin;
|
|
2459
2703
|
|
|
2460
|
-
interface AXPEntityStorageContext<TKey = any, TDetailDto extends AXPEntityDetailDto<TKey> = any, TListItemDto extends AXPEntityListItemDto<TKey> = any, TCreateDto extends AXPEntityCreateDto = any, TUpdateDto extends AXPEntityUpdateDto<TKey> = any> {
|
|
2461
|
-
op: AXPEntityOp;
|
|
2462
|
-
entityName: string;
|
|
2463
|
-
id?: TKey;
|
|
2464
|
-
data?: TCreateDto | Omit<Partial<TUpdateDto>, 'id'>;
|
|
2465
|
-
request?: AXPQueryRequest;
|
|
2466
|
-
previous?: TDetailDto;
|
|
2467
|
-
result?: any;
|
|
2468
|
-
locals: Map<string, unknown>;
|
|
2469
|
-
backend: {
|
|
2470
|
-
getOne: (entityName: string, id: TKey) => Promise<TDetailDto>;
|
|
2471
|
-
insertOne: (entityName: string, entity: TCreateDto) => Promise<TKey>;
|
|
2472
|
-
query: (entityName: string, request: AXPQueryRequest) => Promise<AXPPagedListResult<TListItemDto>>;
|
|
2473
|
-
updateOne: (entityName: string, id: TKey, data: Partial<TUpdateDto>) => Promise<TDetailDto>;
|
|
2474
|
-
deleteOne: (entityName: string, id: TKey) => Promise<void>;
|
|
2475
|
-
count: (entityName: string, request: Pick<AXPQueryRequest, 'filter' | 'sort'>) => Promise<number>;
|
|
2476
|
-
queryAll: (entityName: string, request: Pick<AXPQueryRequest, 'filter' | 'sort'>, options?: AXPEntityQueryAllOptions) => Promise<AXPEntityQueryAllResult<TListItemDto>>;
|
|
2477
|
-
getMany: (entityName: string, ids: TKey[]) => Promise<(TListItemDto | null)[]>;
|
|
2478
|
-
exists: (entityName: string, id: TKey) => Promise<boolean>;
|
|
2479
|
-
upsertOne: (entityName: string, entity: TCreateDto, options?: {
|
|
2480
|
-
merge?: boolean;
|
|
2481
|
-
}) => Promise<TKey>;
|
|
2482
|
-
aggregate: (entityName: string, request: AXPEntityAggregateRequest, options?: AXPEntityAggregateOptions) => Promise<AXPEntityAggregateResult>;
|
|
2483
|
-
};
|
|
2484
|
-
}
|
|
2485
|
-
interface AXPEntityStorageMiddleware<TKey = any, TDetailDto extends AXPEntityDetailDto<TKey> = any, TListItemDto extends AXPEntityListItemDto<TKey> = any, TCreateDto extends AXPEntityCreateDto = any, TUpdateDto extends AXPEntityUpdateDto<TKey> = any> {
|
|
2486
|
-
target?: {
|
|
2487
|
-
ops?: AXPEntityOp[];
|
|
2488
|
-
entity?: string | RegExp;
|
|
2489
|
-
predicate?: (ctx: AXPEntityStorageContext<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>) => boolean;
|
|
2490
|
-
order?: number;
|
|
2491
|
-
};
|
|
2492
|
-
execute: (ctx: AXPEntityStorageContext<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>, next: () => Promise<void>) => Promise<void>;
|
|
2493
|
-
}
|
|
2494
|
-
/**
|
|
2495
|
-
* Error type that can be thrown by middlewares to abort the chain with a structured payload.
|
|
2496
|
-
*/
|
|
2497
|
-
declare class AXPMiddlewareAbortError extends Error {
|
|
2498
|
-
readonly message: string;
|
|
2499
|
-
readonly options: {
|
|
2500
|
-
code?: string;
|
|
2501
|
-
status?: number;
|
|
2502
|
-
details?: any;
|
|
2503
|
-
};
|
|
2504
|
-
constructor(message: string, options?: {
|
|
2505
|
-
code?: string;
|
|
2506
|
-
status?: number;
|
|
2507
|
-
details?: any;
|
|
2508
|
-
});
|
|
2509
|
-
toResponse(): AXPMiddlewareErrorResponse;
|
|
2510
|
-
}
|
|
2511
|
-
/** Type guard for AXPMiddlewareAbortError */
|
|
2512
|
-
declare function isAXPMiddlewareAbortError(error: unknown): error is AXPMiddlewareAbortError;
|
|
2513
|
-
|
|
2514
2704
|
declare const eventDispatchMiddleware: AXPEntityStorageMiddleware;
|
|
2515
2705
|
|
|
2516
2706
|
/**
|
|
@@ -2619,6 +2809,57 @@ declare const defaultMultiLanguageMiddlewareProvider: AXPEntityModifierProvider;
|
|
|
2619
2809
|
declare const defaultCardLayoutMiddleware: AXPEntityModifier;
|
|
2620
2810
|
declare const defaultCardLayoutMiddlewareProvider: AXPEntityModifierProvider;
|
|
2621
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
|
+
|
|
2622
2863
|
/**
|
|
2623
2864
|
* Registers entity CRUD commands and queries for the given entity keys.
|
|
2624
2865
|
* Use in app/module providers; consumes AXPEntityService from this package.
|
|
@@ -2630,10 +2871,8 @@ interface AXPGetEntityDetailsQueryInput {
|
|
|
2630
2871
|
id: string;
|
|
2631
2872
|
}
|
|
2632
2873
|
interface AXPGetEntityDetailsQueryResult {
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
entityData?: any;
|
|
2636
|
-
error?: string;
|
|
2874
|
+
entityDefinition: AXPEntity;
|
|
2875
|
+
entityData: any;
|
|
2637
2876
|
}
|
|
2638
2877
|
/**
|
|
2639
2878
|
* Generic query to get entity details including entity definition and entity data
|
|
@@ -2646,7 +2885,7 @@ declare class AXPGetEntityDetailsQuery implements AXPQuery<AXPGetEntityDetailsQu
|
|
|
2646
2885
|
* Execute the query to fetch entity definition and data
|
|
2647
2886
|
* @param input - Query input containing entity and ID information
|
|
2648
2887
|
*/
|
|
2649
|
-
fetch(input: AXPGetEntityDetailsQueryInput):
|
|
2888
|
+
fetch(input: AXPGetEntityDetailsQueryInput): AXPQueryFetchResultPromise<AXPGetEntityDetailsQueryResult>;
|
|
2650
2889
|
/**
|
|
2651
2890
|
* Get entity data using the entity's CRUD service
|
|
2652
2891
|
* @param entity - Full entity path (ModuleName.EntityName)
|
|
@@ -2782,6 +3021,8 @@ declare class AXPRelatedColumnMetadataResolver {
|
|
|
2782
3021
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPRelatedColumnMetadataResolver>;
|
|
2783
3022
|
}
|
|
2784
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";
|
|
2785
3026
|
interface IEntitySelectorStage {
|
|
2786
3027
|
/** Select target entity using "module.entity" format */
|
|
2787
3028
|
entity(fullName: string): IInterfaceSelectorStage;
|
|
@@ -2849,40 +3090,6 @@ type CompatFormFieldBuilder = {
|
|
|
2849
3090
|
customWidget(type: string, options?: any): any;
|
|
2850
3091
|
} & Partial<IFormFieldBuilder>;
|
|
2851
3092
|
|
|
2852
|
-
declare const AXP_ENTITY_STORAGE_BACKEND: InjectionToken<AXPEntityStorageService<any, any, any, any, any>>;
|
|
2853
|
-
declare const AXP_ENTITY_STORAGE_MIDDLEWARE: InjectionToken<AXPEntityStorageMiddleware<any, any, any, any, any>[]>;
|
|
2854
|
-
|
|
2855
|
-
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> {
|
|
2856
|
-
private readonly backend;
|
|
2857
|
-
private readonly allMiddlewares;
|
|
2858
|
-
private readonly injector;
|
|
2859
|
-
/** In-flight read requests - identical parallel requests share one execution */
|
|
2860
|
-
private readonly inFlight;
|
|
2861
|
-
get dbName(): string;
|
|
2862
|
-
private filterMiddlewares;
|
|
2863
|
-
private compose;
|
|
2864
|
-
private run;
|
|
2865
|
-
private createCtx;
|
|
2866
|
-
initial(entityName: string, collection: TCreateDto[]): Promise<TCreateDto[]>;
|
|
2867
|
-
getOne(entityName: string, id: TKey): Promise<TDetailDto>;
|
|
2868
|
-
updateOne(entityName: string, id: TKey, keyValues: Omit<Partial<TUpdateDto>, 'id'>): Promise<TDetailDto>;
|
|
2869
|
-
deleteOne(entityName: string, id: TKey): Promise<void>;
|
|
2870
|
-
insertOne(entityName: string, entity: TCreateDto): Promise<TKey>;
|
|
2871
|
-
getAll(entityName: string): Promise<TListItemDto[]>;
|
|
2872
|
-
query(entityName: string, request: AXPQueryRequest): Promise<AXPPagedListResult<TListItemDto>>;
|
|
2873
|
-
count(entityName: string, request: Pick<AXPQueryRequest, 'filter' | 'sort'>): Promise<number>;
|
|
2874
|
-
queryAll(entityName: string, request: Pick<AXPQueryRequest, 'filter' | 'sort'>, options?: AXPEntityQueryAllOptions): Promise<AXPEntityQueryAllResult<TListItemDto>>;
|
|
2875
|
-
getMany(entityName: string, ids: TKey[]): Promise<(TListItemDto | null)[]>;
|
|
2876
|
-
exists(entityName: string, id: TKey): Promise<boolean>;
|
|
2877
|
-
upsertOne(entityName: string, entity: TCreateDto, options?: {
|
|
2878
|
-
merge?: boolean;
|
|
2879
|
-
}): Promise<TKey>;
|
|
2880
|
-
aggregate(entityName: string, request: AXPEntityAggregateRequest, options?: AXPEntityAggregateOptions): Promise<AXPEntityAggregateResult>;
|
|
2881
|
-
private runWithDedup;
|
|
2882
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPMiddlewareEntityStorageService<any, any, any, any, any>, never>;
|
|
2883
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPMiddlewareEntityStorageService<any, any, any, any, any>>;
|
|
2884
|
-
}
|
|
2885
|
-
|
|
2886
3093
|
type AXPEntityChangeSet = {
|
|
2887
3094
|
[key: string]: {
|
|
2888
3095
|
oldValue: any;
|
|
@@ -3456,12 +3663,11 @@ declare class AXPEntityListToolbarService {
|
|
|
3456
3663
|
declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
|
|
3457
3664
|
#private;
|
|
3458
3665
|
protected entityService: AXPEntityDefinitionRegistryService;
|
|
3459
|
-
protected
|
|
3666
|
+
protected entityEvents: AXPEntityBroadcastService;
|
|
3460
3667
|
protected entityListTableService: AXPEntityListTableService;
|
|
3461
3668
|
protected entityListToolbarService: AXPEntityListToolbarService;
|
|
3462
3669
|
protected deviceService: AXPDeviceService;
|
|
3463
3670
|
protected commandService: AXPCommandService;
|
|
3464
|
-
protected eventService: AXPBroadcastEventService;
|
|
3465
3671
|
private readonly expressionEvaluator;
|
|
3466
3672
|
private readonly columnWidthService;
|
|
3467
3673
|
private readonly route;
|
|
@@ -3475,6 +3681,12 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
3475
3681
|
protected selectedItems: _angular_core.WritableSignal<any[]>;
|
|
3476
3682
|
protected toolbarNode: _angular_core.WritableSignal<AXPWidgetNode | null>;
|
|
3477
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;
|
|
3478
3690
|
protected entitySource: _angular_core.Signal<any>;
|
|
3479
3691
|
protected excludeColumns: _angular_core.Signal<string[]>;
|
|
3480
3692
|
protected includeColumns: _angular_core.Signal<string[]>;
|
|
@@ -3503,6 +3715,7 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
3503
3715
|
/**
|
|
3504
3716
|
* Route `filters` apply only when the active details `page` matches this list's entity
|
|
3505
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.
|
|
3506
3719
|
*/
|
|
3507
3720
|
private shouldApplyRouteFilters;
|
|
3508
3721
|
/**
|
|
@@ -3510,17 +3723,33 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
3510
3723
|
*/
|
|
3511
3724
|
private mergeToolbarFilters;
|
|
3512
3725
|
private getMergedToolbarFilters;
|
|
3726
|
+
private beginOp;
|
|
3727
|
+
private isOpStale;
|
|
3728
|
+
private delay;
|
|
3513
3729
|
/**
|
|
3514
3730
|
* Applies merged route + parent-scope filters to the widget value and data source.
|
|
3515
3731
|
*/
|
|
3516
3732
|
private applyMergedRouteFiltersToList;
|
|
3517
|
-
/**
|
|
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
|
+
*/
|
|
3518
3737
|
private reapplyScopedFiltersToDataSource;
|
|
3519
3738
|
/**
|
|
3520
3739
|
* Entity lists use `fetchDataMode: 'manual'`; after scoped filters reach the data source,
|
|
3521
|
-
* 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".
|
|
3522
3742
|
*/
|
|
3523
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;
|
|
3524
3753
|
/**
|
|
3525
3754
|
* Parent-scoped related filters must have a real PK. Empty/undefined values would otherwise
|
|
3526
3755
|
* load unscoped rows (other employees' assignments) in create wizards.
|
|
@@ -3554,6 +3783,10 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
3554
3783
|
* Refreshes the embedded data list (toolbar / commands). In wizard mode, `refresh` is patched to re-apply scoped filters first.
|
|
3555
3784
|
*/
|
|
3556
3785
|
private refreshGridWithParentScopedFilters;
|
|
3786
|
+
/**
|
|
3787
|
+
* Re-applies parent-scoped filters then refreshes the grid, ignoring stale overlapping calls.
|
|
3788
|
+
*/
|
|
3789
|
+
private runScopedDataListRefresh;
|
|
3557
3790
|
protected queries: undefined;
|
|
3558
3791
|
/**
|
|
3559
3792
|
* Validates that all required dependencies are available
|
|
@@ -3698,7 +3931,7 @@ interface AXPEntityDataSelectorSelectionOptions {
|
|
|
3698
3931
|
allowUnselect?: boolean;
|
|
3699
3932
|
}
|
|
3700
3933
|
interface AXPEntityDataSelectorGridOptions {
|
|
3701
|
-
columns?:
|
|
3934
|
+
columns?: AXPEntitySelectorColumnInput[];
|
|
3702
3935
|
pageSize?: number;
|
|
3703
3936
|
}
|
|
3704
3937
|
interface AXPEntityDataSelectorFilterOptions {
|
|
@@ -3733,6 +3966,11 @@ interface AXPEntityDataSelectorCreateOptions {
|
|
|
3733
3966
|
mode?: AXPDataSelectorAllowCreate;
|
|
3734
3967
|
/** Prefilled entity create form values; may use {{ context.eval() }} expressions. */
|
|
3735
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;
|
|
3736
3974
|
}
|
|
3737
3975
|
/** Nested options for {@link AXPEntityDataSelectorService.open}. */
|
|
3738
3976
|
interface AXPEntityDataSelectorOpenOptions {
|
|
@@ -3763,7 +4001,7 @@ interface AXPEntityDataSelectorOptions {
|
|
|
3763
4001
|
allowUnselect?: boolean;
|
|
3764
4002
|
filters?: AXDataSourceFilterOption | null;
|
|
3765
4003
|
parentFilters?: AXDataSourceFilterOption | null;
|
|
3766
|
-
columns?:
|
|
4004
|
+
columns?: AXPEntitySelectorColumnInput[];
|
|
3767
4005
|
sortedFields?: {
|
|
3768
4006
|
name: string;
|
|
3769
4007
|
dir: 'asc' | 'desc';
|
|
@@ -3804,6 +4042,14 @@ declare function mapLegacyEntityDataSelectorOptions(legacy: AXPEntityDataSelecto
|
|
|
3804
4042
|
* When both shapes are mixed, nested groups take precedence over mapped legacy values.
|
|
3805
4043
|
*/
|
|
3806
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
|
+
}>;
|
|
3807
4053
|
declare class AXPEntityDataSelectorService {
|
|
3808
4054
|
private readonly dataSelectorService;
|
|
3809
4055
|
private readonly filterOperatorMiddleware;
|
|
@@ -3827,7 +4073,7 @@ declare class AXPEntityDataSelectorService {
|
|
|
3827
4073
|
* Execute Entity:Create and return created item.
|
|
3828
4074
|
* Used by lookup widget and data selector for inline create.
|
|
3829
4075
|
*/
|
|
3830
|
-
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>;
|
|
3831
4077
|
/**
|
|
3832
4078
|
* Normalize item's phones/emails for expose/display.
|
|
3833
4079
|
* Call this when receiving items from any source (create, API, selector).
|
|
@@ -3846,9 +4092,15 @@ declare class AXPEntityDataSelectorService {
|
|
|
3846
4092
|
*/
|
|
3847
4093
|
private createDataSource;
|
|
3848
4094
|
/**
|
|
3849
|
-
* 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.
|
|
3850
4097
|
*/
|
|
3851
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;
|
|
3852
4104
|
/**
|
|
3853
4105
|
* Get searchable fields from entity properties
|
|
3854
4106
|
*/
|
|
@@ -3917,7 +4169,7 @@ declare class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent<any>
|
|
|
3917
4169
|
protected expose: _angular_core.Signal<string | any[] | undefined>;
|
|
3918
4170
|
protected entity: _angular_core.Signal<string>;
|
|
3919
4171
|
protected disabled: _angular_core.Signal<string | boolean>;
|
|
3920
|
-
protected columns: _angular_core.Signal<
|
|
4172
|
+
protected columns: _angular_core.Signal<AXPEntitySelectorColumnInput[]>;
|
|
3921
4173
|
protected textField: _angular_core.Signal<string>;
|
|
3922
4174
|
/**
|
|
3923
4175
|
* Template for select look (`ax-select-box`). Uses `textTemplate` when set, otherwise
|
|
@@ -4009,7 +4261,7 @@ declare class AXPLookupWidgetColumnComponent extends AXPColumnWidgetComponent<an
|
|
|
4009
4261
|
protected isMorePopoverOpen: _angular_core.WritableSignal<boolean>;
|
|
4010
4262
|
protected selectedItemIndex: _angular_core.WritableSignal<number>;
|
|
4011
4263
|
protected resolvedPopoverItems: _angular_core.WritableSignal<any[]>;
|
|
4012
|
-
protected resolveStatus: _angular_core.WritableSignal<"
|
|
4264
|
+
protected resolveStatus: _angular_core.WritableSignal<"error" | "idle" | "loading" | "ready">;
|
|
4013
4265
|
protected resolveError: _angular_core.WritableSignal<string | null>;
|
|
4014
4266
|
protected summaryLabel: _angular_core.WritableSignal<string>;
|
|
4015
4267
|
protected popoverHeader: _angular_core.WritableSignal<string>;
|
|
@@ -4584,16 +4836,14 @@ declare class AXPSelectorStructureWidgetViewComponent extends AXPValueWidgetComp
|
|
|
4584
4836
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPSelectorStructureWidgetViewComponent, "axp-selector-structure-widget-view", never, {}, {}, never, never, true, never>;
|
|
4585
4837
|
}
|
|
4586
4838
|
|
|
4587
|
-
declare
|
|
4588
|
-
|
|
4589
|
-
|
|
4590
|
-
|
|
4591
|
-
|
|
4592
|
-
|
|
4593
|
-
|
|
4594
|
-
|
|
4595
|
-
meta?: unknown;
|
|
4596
|
-
}>;
|
|
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[];
|
|
4597
4847
|
|
|
4598
|
-
export { ATTACHMENTS_PAGE_COMPONENT_KEY, AXMEntityCrudService, AXMEntityCrudServiceImpl, AXPCategoryTreeService, AXPCreateEntityCommand, AXPDataSeederService, AXPDeleteEntityCommand, AXPEditFileUploaderCommand,
|
|
4599
|
-
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 };
|