@acorex/platform 20.7.12 → 20.7.15
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/common/index.d.ts +10 -1
- package/core/index.d.ts +94 -4
- package/fesm2022/{acorex-platform-common-common-settings.provider-BwBLG0Hl.mjs → acorex-platform-common-common-settings.provider-gyb6ohAE.mjs} +15 -1
- package/fesm2022/acorex-platform-common-common-settings.provider-gyb6ohAE.mjs.map +1 -0
- package/fesm2022/acorex-platform-common.mjs +3 -2
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +428 -157
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +90 -74
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +954 -1223
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +601 -193
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +7 -7
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-BfV3spe3.mjs → acorex-platform-layout-widgets-file-list-popup.component-B0omAUil.mjs} +18 -3
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-B0omAUil.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-repeater-widget-column.component-DnhR00cH.mjs → acorex-platform-layout-widgets-repeater-widget-column.component-fcCirNxz.mjs} +2 -2
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-fcCirNxz.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets.mjs +165 -64
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-CJcbkSBF.mjs → acorex-platform-themes-default-entity-master-create-view.component-CCiYPMhz.mjs} +29 -26
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CCiYPMhz.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-HBr-ZTSt.mjs → acorex-platform-themes-default-entity-master-list-view.component-BQODc73e.mjs} +2 -2
- package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-HBr-ZTSt.mjs.map → acorex-platform-themes-default-entity-master-list-view.component-BQODc73e.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-DAFQ4UI9.mjs → acorex-platform-themes-default-entity-master-modify-view.component-CgLUnYRq.mjs} +3 -4
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-CgLUnYRq.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-CwHHYmiK.mjs → acorex-platform-themes-default-entity-master-single-view.component-di5w_3K2.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-di5w_3K2.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +11 -11
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-shared.mjs +244 -246
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +0 -3
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/layout/components/index.d.ts +159 -248
- package/layout/entity/index.d.ts +42 -1
- package/layout/widgets/index.d.ts +43 -5
- package/package.json +5 -5
- package/themes/shared/index.d.ts +1 -1
- package/workflow/index.d.ts +33 -30
- package/fesm2022/acorex-platform-common-common-settings.provider-BwBLG0Hl.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-BfV3spe3.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-DnhR00cH.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CJcbkSBF.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DAFQ4UI9.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-CwHHYmiK.mjs.map +0 -1
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { Signal, InjectionToken, InputSignal, TemplateRef, ElementRef, OnDestroy, OnInit,
|
|
3
|
-
import
|
|
4
|
-
import { AXPActivityLog, AXPSystemActionType, AXPCategoryEntity, AXPColumnQuery, AXPContextData, AXPOptionsData, AXPFilterDefinition, AXPFilterQuery, AXPSortDefinition, AXPSortQuery, AXPMetaData, AXPViewQuery } from '@acorex/platform/core';
|
|
2
|
+
import { Signal, InjectionToken, InputSignal, TemplateRef, ElementRef, OnDestroy, OnInit, QueryList, OnChanges, EventEmitter, WritableSignal } from '@angular/core';
|
|
3
|
+
import { AXPActivityLog, AXPSystemActionType, AXPCategoryEntity, AXPColumnQuery, AXPContextData, AXPFilterDefinition, AXPFilterQuery, AXPSortDefinition, AXPSortQuery, AXPMetaData, AXPViewQuery } from '@acorex/platform/core';
|
|
5
4
|
import { AXPMenuItem } from '@acorex/platform/common';
|
|
6
5
|
import { AXValueChangedEvent, AXClickEvent, AXDataSource, AXDataSourceFilterOption, AXHtmlEvent, AXEvent } from '@acorex/cdk/common';
|
|
7
6
|
import { AXTreeViewLegacyComponent, AXTreeItemClickBaseEventLegacy } from '@acorex/components/tree-view-legacy';
|
|
@@ -10,7 +9,6 @@ import { AXPopoverComponent } from '@acorex/components/popover';
|
|
|
10
9
|
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
11
10
|
import * as _acorex_platform_layout_widget_core from '@acorex/platform/layout/widget-core';
|
|
12
11
|
import { AXPWidgetNode, AXPWidgetRendererDirective, AXPWidgetCoreContextChangeEvent, AXPWidgetProperty, AXPWidgetConfig } from '@acorex/platform/layout/widget-core';
|
|
13
|
-
import * as _ngrx_signals from '@ngrx/signals';
|
|
14
12
|
import { AXDataTableComponent, AXDataTableRowDbClick, AXDataTableRowClick } from '@acorex/components/data-table';
|
|
15
13
|
import { AXBasePageComponent } from '@acorex/components/page';
|
|
16
14
|
import { AXDropListDroppedEvent } from '@acorex/cdk/drag-drop';
|
|
@@ -433,93 +431,6 @@ declare class AXPCompareViewComponent implements OnInit, OnDestroy {
|
|
|
433
431
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPCompareViewComponent, "axp-compare-view", never, { "inputs": { "alias": "inputs"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
434
432
|
}
|
|
435
433
|
|
|
436
|
-
interface AXPComponentSlotConfig {
|
|
437
|
-
name: string;
|
|
438
|
-
priority?: number;
|
|
439
|
-
component?: Type<any>;
|
|
440
|
-
condition?: ((context?: AXPContextData) => (boolean | Promise<boolean>)) | string;
|
|
441
|
-
features?: string[];
|
|
442
|
-
loadComponent?: () => Type<any> | Promise<Type<any>>;
|
|
443
|
-
options?: AXPOptionsData | (() => AXPOptionsData) | (() => Promise<AXPOptionsData>);
|
|
444
|
-
}
|
|
445
|
-
interface AXPComponentSlotModuleConfigs {
|
|
446
|
-
[slotName: string]: AXPComponentSlotConfig[];
|
|
447
|
-
}
|
|
448
|
-
declare abstract class AXPComponentSlot {
|
|
449
|
-
host: any;
|
|
450
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPComponentSlot, never>;
|
|
451
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXPComponentSlot, never, never, {}, {}, never, never, true, never>;
|
|
452
|
-
}
|
|
453
|
-
|
|
454
|
-
declare class AXPComponentSlotDirective implements OnInit {
|
|
455
|
-
name: _angular_core.InputSignal<string>;
|
|
456
|
-
host: _angular_core.InputSignal<any>;
|
|
457
|
-
context: _angular_core.InputSignal<any>;
|
|
458
|
-
private elementRef;
|
|
459
|
-
private registryService;
|
|
460
|
-
private injector;
|
|
461
|
-
private evaluator;
|
|
462
|
-
private sessionService;
|
|
463
|
-
viewContainerRef: ViewContainerRef;
|
|
464
|
-
contextStore: {
|
|
465
|
-
data: _angular_core.Signal<AXPContextData>;
|
|
466
|
-
state: _angular_core.Signal<_acorex_platform_core.AXPContextState>;
|
|
467
|
-
initialSnapshot: _angular_core.Signal<{}>;
|
|
468
|
-
previousSnapshot: _angular_core.Signal<{}>;
|
|
469
|
-
lastChange: _ngrx_signals.DeepSignal<_acorex_platform_core.AXPContextChangeEvent>;
|
|
470
|
-
isChanged: _angular_core.Signal<boolean>;
|
|
471
|
-
isReset: _angular_core.Signal<boolean>;
|
|
472
|
-
isInitiated: _angular_core.Signal<boolean>;
|
|
473
|
-
isEmpty: _angular_core.Signal<boolean>;
|
|
474
|
-
isDirty: _angular_core.Signal<boolean>;
|
|
475
|
-
snapshot: _angular_core.Signal<AXPContextData>;
|
|
476
|
-
initial: _angular_core.Signal<{}>;
|
|
477
|
-
previous: _angular_core.Signal<{}>;
|
|
478
|
-
changeEvent: _angular_core.Signal<_acorex_platform_core.AXPContextChangeEvent>;
|
|
479
|
-
update: (path: string, value: any) => void;
|
|
480
|
-
patch: (context: {}) => void;
|
|
481
|
-
reset: () => void;
|
|
482
|
-
set: (initialData: any) => void;
|
|
483
|
-
getValue: (path: string) => any;
|
|
484
|
-
} & _ngrx_signals.StateSource<{
|
|
485
|
-
data: AXPContextData;
|
|
486
|
-
state: _acorex_platform_core.AXPContextState;
|
|
487
|
-
initialSnapshot: {};
|
|
488
|
-
previousSnapshot: {};
|
|
489
|
-
lastChange: _acorex_platform_core.AXPContextChangeEvent;
|
|
490
|
-
}>;
|
|
491
|
-
isEmpty: _angular_core.Signal<boolean>;
|
|
492
|
-
private _viewCount;
|
|
493
|
-
private componentRefs;
|
|
494
|
-
private placeholderRefs;
|
|
495
|
-
constructor();
|
|
496
|
-
ngOnInit(): Promise<void>;
|
|
497
|
-
loadComponents(): Promise<void>;
|
|
498
|
-
private evaluateCondition;
|
|
499
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPComponentSlotDirective, never>;
|
|
500
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXPComponentSlotDirective, "axp-component-slot", ["slot"], { "name": { "alias": "name"; "required": true; "isSignal": true; }; "host": { "alias": "host"; "required": false; "isSignal": true; }; "context": { "alias": "context"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
|
|
501
|
-
}
|
|
502
|
-
|
|
503
|
-
declare class AXPComponentSlotRegistryService {
|
|
504
|
-
private registry;
|
|
505
|
-
register(slotName: string, config: AXPComponentSlotConfig): void;
|
|
506
|
-
get(slotName: string): AXPComponentSlotConfig[];
|
|
507
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPComponentSlotRegistryService, never>;
|
|
508
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPComponentSlotRegistryService>;
|
|
509
|
-
}
|
|
510
|
-
|
|
511
|
-
declare class AXPComponentSlotModule {
|
|
512
|
-
static forRoot(configs?: AXPComponentSlotModuleConfigs): ModuleWithProviders<AXPComponentSlotModule>;
|
|
513
|
-
static forChild(configs?: AXPComponentSlotModuleConfigs): ModuleWithProviders<AXPComponentSlotModule>;
|
|
514
|
-
/**
|
|
515
|
-
* @ignore
|
|
516
|
-
*/
|
|
517
|
-
constructor(instances: any[]);
|
|
518
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPComponentSlotModule, [{ optional: true; }]>;
|
|
519
|
-
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXPComponentSlotModule, [typeof AXPComponentSlotDirective], never, [typeof AXPComponentSlotDirective]>;
|
|
520
|
-
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXPComponentSlotModule>;
|
|
521
|
-
}
|
|
522
|
-
|
|
523
434
|
interface AXPDataSelectorColumn {
|
|
524
435
|
name: string;
|
|
525
436
|
title: string;
|
|
@@ -768,6 +679,18 @@ declare class AXPImageEditorService {
|
|
|
768
679
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPImageEditorService>;
|
|
769
680
|
}
|
|
770
681
|
|
|
682
|
+
declare class AXPLogoComponent implements OnInit, OnChanges {
|
|
683
|
+
source: any;
|
|
684
|
+
protected logoType: string;
|
|
685
|
+
private platform;
|
|
686
|
+
ngOnInit(): void;
|
|
687
|
+
ngOnChanges(): void;
|
|
688
|
+
protected setLogoType(): void;
|
|
689
|
+
protected setLogoTheme(): void;
|
|
690
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLogoComponent, never>;
|
|
691
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPLogoComponent, "axp-logo", never, { "source": { "alias": "source"; "required": false; }; }, {}, never, never, true, never>;
|
|
692
|
+
}
|
|
693
|
+
|
|
771
694
|
/**
|
|
772
695
|
* Menu item type definitions.
|
|
773
696
|
* - 'menu': Standard navigable menu item
|
|
@@ -1118,6 +1041,149 @@ declare class AXPMenuCustomizerComponent implements OnInit {
|
|
|
1118
1041
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPMenuCustomizerComponent, "axp-menu-customizer", never, { "scopeKey": { "alias": "scopeKey"; "required": true; "isSignal": true; }; "showToolbar": { "alias": "showToolbar"; "required": false; "isSignal": true; }; "allowAddItems": { "alias": "allowAddItems"; "required": false; "isSignal": true; }; "dragBehavior": { "alias": "dragBehavior"; "required": false; "isSignal": true; }; "dragArea": { "alias": "dragArea"; "required": false; "isSignal": true; }; }, { "saved": "saved"; "cancelled": "cancelled"; }, never, never, true, never>;
|
|
1119
1042
|
}
|
|
1120
1043
|
|
|
1044
|
+
interface AXPPropertyViewerGroup {
|
|
1045
|
+
name: string;
|
|
1046
|
+
title: string;
|
|
1047
|
+
isCollapsed: boolean;
|
|
1048
|
+
props: AXPWidgetProperty[];
|
|
1049
|
+
}
|
|
1050
|
+
interface AXPPropertyViewerTab {
|
|
1051
|
+
name: string;
|
|
1052
|
+
title: string;
|
|
1053
|
+
groups: AXPPropertyViewerGroup[];
|
|
1054
|
+
}
|
|
1055
|
+
interface AXPPropertyViewerChangedEvent {
|
|
1056
|
+
values: any;
|
|
1057
|
+
mode: 'init' | 'update';
|
|
1058
|
+
}
|
|
1059
|
+
|
|
1060
|
+
declare class AXPPropertyViewerComponent {
|
|
1061
|
+
/**
|
|
1062
|
+
* List of tabs that should be rendered inside the property viewer.
|
|
1063
|
+
*/
|
|
1064
|
+
tabsInput: _angular_core.InputSignal<AXPPropertyViewerTab[]>;
|
|
1065
|
+
/**
|
|
1066
|
+
* Determines rendering mode.
|
|
1067
|
+
*/
|
|
1068
|
+
mode: _angular_core.InputSignal<"simple" | "advanced">;
|
|
1069
|
+
/**
|
|
1070
|
+
* Emits when property context changes.
|
|
1071
|
+
*/
|
|
1072
|
+
onChanged: EventEmitter<AXPPropertyViewerChangedEvent>;
|
|
1073
|
+
protected currentTabIndex: WritableSignal<number>;
|
|
1074
|
+
protected tabs: _angular_core.Signal<AXPPropertyViewerTab[]>;
|
|
1075
|
+
protected groups: _angular_core.Signal<AXPPropertyViewerGroup[]>;
|
|
1076
|
+
protected context: WritableSignal<any>;
|
|
1077
|
+
/**
|
|
1078
|
+
* Per-expression-path override for "use expression" vs "use value" when binding.enabled.
|
|
1079
|
+
* Updated when user toggles the ax-switch; otherwise derived from isExpression(valueAtPath).
|
|
1080
|
+
*/
|
|
1081
|
+
protected expressionModeState: WritableSignal<Record<string, boolean>>;
|
|
1082
|
+
protected groupCollapsedStates: Map<string, boolean>;
|
|
1083
|
+
private readonly expressionEvaluator;
|
|
1084
|
+
private readonly popupService;
|
|
1085
|
+
constructor();
|
|
1086
|
+
/**
|
|
1087
|
+
* Replaces the current context with the provided value and emits an init event.
|
|
1088
|
+
*/
|
|
1089
|
+
initializeContext(value: any): void;
|
|
1090
|
+
/**
|
|
1091
|
+
* Merges the provided value into the current context and emits an update event.
|
|
1092
|
+
*/
|
|
1093
|
+
update(value: any): void;
|
|
1094
|
+
/**
|
|
1095
|
+
* Handles context changes produced by rendered widgets.
|
|
1096
|
+
*/
|
|
1097
|
+
protected handleContextChange(event: AXPWidgetCoreContextChangeEvent): void;
|
|
1098
|
+
/**
|
|
1099
|
+
* Handles tab selection changes.
|
|
1100
|
+
*/
|
|
1101
|
+
protected handleTabChange(event: AXTabStripChangedEvent): void;
|
|
1102
|
+
/**
|
|
1103
|
+
* Stores collapsed state for a group.
|
|
1104
|
+
*/
|
|
1105
|
+
protected handleCollapsedChange(groupName: string, isCollapsed: boolean): void;
|
|
1106
|
+
/**
|
|
1107
|
+
* Returns the config path used for the binding value (and expression) for a property with binding.enabled.
|
|
1108
|
+
*/
|
|
1109
|
+
protected getExpressionPath(prop: AXPWidgetProperty): string;
|
|
1110
|
+
/**
|
|
1111
|
+
* True when the property is in "expression" mode: show only the expression editor button, not the widget.
|
|
1112
|
+
* Uses expressionModeState when set; otherwise derives from isExpression(valueAtPath).
|
|
1113
|
+
*/
|
|
1114
|
+
protected isExpressionMode(prop: AXPWidgetProperty): boolean;
|
|
1115
|
+
/**
|
|
1116
|
+
* Returns the default value when switching from expression to value mode.
|
|
1117
|
+
* Source of truth is prop.schema.defaultValue (widget.types): plain value, or function (context) => value.
|
|
1118
|
+
* A minimal dataType fallback is used only when the schema provides no default.
|
|
1119
|
+
*/
|
|
1120
|
+
private getDefaultValueForProperty;
|
|
1121
|
+
/**
|
|
1122
|
+
* Updates the expression/value toggle state for a binding-enabled property.
|
|
1123
|
+
* When switching to value: resets the value at path to a type-appropriate default so the
|
|
1124
|
+
* widget renderer does not receive the expression string (e.g. checkbox gets false, not a string).
|
|
1125
|
+
* When switching to expression: sets the value at path to '{{ }}' so the popup opens with
|
|
1126
|
+
* a clean expression placeholder instead of the previous literal (e.g. true/false).
|
|
1127
|
+
*/
|
|
1128
|
+
protected setExpressionMode(prop: AXPWidgetProperty, useExpression: boolean): void;
|
|
1129
|
+
/**
|
|
1130
|
+
* Opens the binding/expression code editor for a property with binding.enabled.
|
|
1131
|
+
* Ensures the value passed to the popup is always a string to avoid code-editor crashes.
|
|
1132
|
+
*/
|
|
1133
|
+
protected openBindingEditor(prop: AXPWidgetProperty): Promise<void>;
|
|
1134
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPPropertyViewerComponent, never>;
|
|
1135
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPPropertyViewerComponent, "axp-property-viewer", never, { "tabsInput": { "alias": "tabsInput"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, { "onChanged": "onChanged"; }, never, never, true, never>;
|
|
1136
|
+
}
|
|
1137
|
+
|
|
1138
|
+
declare class AXPPropertyViewerPopupComponent extends AXBasePageComponent {
|
|
1139
|
+
tabs: _angular_core.InputSignal<AXPPropertyViewerTab[]>;
|
|
1140
|
+
mode: _angular_core.InputSignal<"simple" | "advanced">;
|
|
1141
|
+
context: _angular_core.InputSignal<any>;
|
|
1142
|
+
protected readonly propertyViewer: _angular_core.Signal<AXPPropertyViewerComponent | undefined>;
|
|
1143
|
+
protected readonly currentValues: _angular_core.WritableSignal<any>;
|
|
1144
|
+
protected currentMode: 'init' | 'update';
|
|
1145
|
+
constructor();
|
|
1146
|
+
protected handlePropertyChanged(event: AXPPropertyViewerChangedEvent): void;
|
|
1147
|
+
protected handleCloseClick(): void;
|
|
1148
|
+
protected handleApplyClick(): void;
|
|
1149
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPPropertyViewerPopupComponent, never>;
|
|
1150
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPPropertyViewerPopupComponent, "axp-property-viewer-popup", never, { "tabs": { "alias": "tabs"; "required": true; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "context": { "alias": "context"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1151
|
+
}
|
|
1152
|
+
|
|
1153
|
+
interface AXPPropertyViewerConfig {
|
|
1154
|
+
title: string;
|
|
1155
|
+
tabs: AXPPropertyViewerTab[];
|
|
1156
|
+
context?: any;
|
|
1157
|
+
mode?: 'simple' | 'advanced';
|
|
1158
|
+
size?: 'sm' | 'md' | 'lg' | 'full';
|
|
1159
|
+
}
|
|
1160
|
+
interface AXPPropertyViewerResult {
|
|
1161
|
+
values: any;
|
|
1162
|
+
mode: 'init' | 'update';
|
|
1163
|
+
}
|
|
1164
|
+
declare class AXPPropertyViewerService {
|
|
1165
|
+
private readonly popupService;
|
|
1166
|
+
/**
|
|
1167
|
+
* Open property viewer popup with predefined tabs and context.
|
|
1168
|
+
*/
|
|
1169
|
+
open(config: AXPPropertyViewerConfig): Promise<AXPPropertyViewerResult | null>;
|
|
1170
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPPropertyViewerService, never>;
|
|
1171
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPPropertyViewerService>;
|
|
1172
|
+
}
|
|
1173
|
+
|
|
1174
|
+
declare class AXPQuerySortsComponent {
|
|
1175
|
+
sortDefinitions: _angular_core.ModelSignal<AXPSortDefinition[]>;
|
|
1176
|
+
sortQueries: _angular_core.WritableSignal<AXPSortQuery[]>;
|
|
1177
|
+
initialSortQueries: _angular_core.InputSignal<AXPSortQuery[]>;
|
|
1178
|
+
sortQueriesChange: _angular_core.OutputEmitterRef<AXPSortQuery[]>;
|
|
1179
|
+
constructor();
|
|
1180
|
+
protected drop(event: CdkDragDrop<unknown[]>): void;
|
|
1181
|
+
getSortDirection(item: AXPSortDefinition): "desc" | "asc" | undefined;
|
|
1182
|
+
protected changeItemSort(item: AXPSortDefinition): void;
|
|
1183
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPQuerySortsComponent, never>;
|
|
1184
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPQuerySortsComponent, "axp-query-sorts", never, { "sortDefinitions": { "alias": "sortDefinitions"; "required": false; "isSignal": true; }; "initialSortQueries": { "alias": "initialSortQueries"; "required": false; "isSignal": true; }; }, { "sortDefinitions": "sortDefinitionsChange"; "sortQueriesChange": "sortQueriesChange"; }, never, never, true, never>;
|
|
1185
|
+
}
|
|
1186
|
+
|
|
1121
1187
|
/**
|
|
1122
1188
|
* Represents a spreadsheet item (row or column header) with id, text, and optional description
|
|
1123
1189
|
*/
|
|
@@ -1454,161 +1520,6 @@ declare class AXPSpreadsheetComponent {
|
|
|
1454
1520
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPSpreadsheetComponent, "axp-spreadsheet", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "rowMode": { "alias": "rowMode"; "required": false; "isSignal": true; }; "rowsInput": { "alias": "rowsInput"; "required": false; "isSignal": true; }; "rowsModel": { "alias": "rowsModel"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "emptyCellPlaceholder": { "alias": "emptyCellPlaceholder"; "required": false; "isSignal": true; }; "rowTitlePath": { "alias": "rowTitlePath"; "required": false; "isSignal": true; }; "rowDescriptionPath": { "alias": "rowDescriptionPath"; "required": false; "isSignal": true; }; "allowAddRows": { "alias": "allowAddRows"; "required": false; "isSignal": true; }; "allowRemoveRows": { "alias": "allowRemoveRows"; "required": false; "isSignal": true; }; }, { "rowsModel": "rowsModelChange"; "cellChange": "cellChange"; "rowChange": "rowChange"; "spreadsheetChange": "spreadsheetChange"; }, never, never, true, never>;
|
|
1455
1521
|
}
|
|
1456
1522
|
|
|
1457
|
-
declare class AXPLogoComponent implements OnInit, OnChanges {
|
|
1458
|
-
source: any;
|
|
1459
|
-
protected logoType: string;
|
|
1460
|
-
private platform;
|
|
1461
|
-
ngOnInit(): void;
|
|
1462
|
-
ngOnChanges(): void;
|
|
1463
|
-
protected setLogoType(): void;
|
|
1464
|
-
protected setLogoTheme(): void;
|
|
1465
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLogoComponent, never>;
|
|
1466
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPLogoComponent, "axp-logo", never, { "source": { "alias": "source"; "required": false; }; }, {}, never, never, true, never>;
|
|
1467
|
-
}
|
|
1468
|
-
|
|
1469
|
-
interface AXPPropertyViewerGroup {
|
|
1470
|
-
name: string;
|
|
1471
|
-
title: string;
|
|
1472
|
-
isCollapsed: boolean;
|
|
1473
|
-
props: AXPWidgetProperty[];
|
|
1474
|
-
}
|
|
1475
|
-
interface AXPPropertyViewerTab {
|
|
1476
|
-
name: string;
|
|
1477
|
-
title: string;
|
|
1478
|
-
groups: AXPPropertyViewerGroup[];
|
|
1479
|
-
}
|
|
1480
|
-
interface AXPPropertyViewerChangedEvent {
|
|
1481
|
-
values: any;
|
|
1482
|
-
mode: 'init' | 'update';
|
|
1483
|
-
}
|
|
1484
|
-
|
|
1485
|
-
declare class AXPPropertyViewerComponent {
|
|
1486
|
-
/**
|
|
1487
|
-
* List of tabs that should be rendered inside the property viewer.
|
|
1488
|
-
*/
|
|
1489
|
-
tabsInput: _angular_core.InputSignal<AXPPropertyViewerTab[]>;
|
|
1490
|
-
/**
|
|
1491
|
-
* Determines rendering mode.
|
|
1492
|
-
*/
|
|
1493
|
-
mode: _angular_core.InputSignal<"simple" | "advanced">;
|
|
1494
|
-
/**
|
|
1495
|
-
* Emits when property context changes.
|
|
1496
|
-
*/
|
|
1497
|
-
onChanged: EventEmitter<AXPPropertyViewerChangedEvent>;
|
|
1498
|
-
protected currentTabIndex: WritableSignal<number>;
|
|
1499
|
-
protected tabs: _angular_core.Signal<AXPPropertyViewerTab[]>;
|
|
1500
|
-
protected groups: _angular_core.Signal<AXPPropertyViewerGroup[]>;
|
|
1501
|
-
protected context: WritableSignal<any>;
|
|
1502
|
-
/**
|
|
1503
|
-
* Per-expression-path override for "use expression" vs "use value" when binding.enabled.
|
|
1504
|
-
* Updated when user toggles the ax-switch; otherwise derived from isExpression(valueAtPath).
|
|
1505
|
-
*/
|
|
1506
|
-
protected expressionModeState: WritableSignal<Record<string, boolean>>;
|
|
1507
|
-
protected groupCollapsedStates: Map<string, boolean>;
|
|
1508
|
-
private readonly expressionEvaluator;
|
|
1509
|
-
private readonly popupService;
|
|
1510
|
-
constructor();
|
|
1511
|
-
/**
|
|
1512
|
-
* Replaces the current context with the provided value and emits an init event.
|
|
1513
|
-
*/
|
|
1514
|
-
initializeContext(value: any): void;
|
|
1515
|
-
/**
|
|
1516
|
-
* Merges the provided value into the current context and emits an update event.
|
|
1517
|
-
*/
|
|
1518
|
-
update(value: any): void;
|
|
1519
|
-
/**
|
|
1520
|
-
* Handles context changes produced by rendered widgets.
|
|
1521
|
-
*/
|
|
1522
|
-
protected handleContextChange(event: AXPWidgetCoreContextChangeEvent): void;
|
|
1523
|
-
/**
|
|
1524
|
-
* Handles tab selection changes.
|
|
1525
|
-
*/
|
|
1526
|
-
protected handleTabChange(event: AXTabStripChangedEvent): void;
|
|
1527
|
-
/**
|
|
1528
|
-
* Stores collapsed state for a group.
|
|
1529
|
-
*/
|
|
1530
|
-
protected handleCollapsedChange(groupName: string, isCollapsed: boolean): void;
|
|
1531
|
-
/**
|
|
1532
|
-
* Returns the config path used for the binding value (and expression) for a property with binding.enabled.
|
|
1533
|
-
*/
|
|
1534
|
-
protected getExpressionPath(prop: AXPWidgetProperty): string;
|
|
1535
|
-
/**
|
|
1536
|
-
* True when the property is in "expression" mode: show only the expression editor button, not the widget.
|
|
1537
|
-
* Uses expressionModeState when set; otherwise derives from isExpression(valueAtPath).
|
|
1538
|
-
*/
|
|
1539
|
-
protected isExpressionMode(prop: AXPWidgetProperty): boolean;
|
|
1540
|
-
/**
|
|
1541
|
-
* Returns the default value when switching from expression to value mode.
|
|
1542
|
-
* Source of truth is prop.schema.defaultValue (widget.types): plain value, or function (context) => value.
|
|
1543
|
-
* A minimal dataType fallback is used only when the schema provides no default.
|
|
1544
|
-
*/
|
|
1545
|
-
private getDefaultValueForProperty;
|
|
1546
|
-
/**
|
|
1547
|
-
* Updates the expression/value toggle state for a binding-enabled property.
|
|
1548
|
-
* When switching to value: resets the value at path to a type-appropriate default so the
|
|
1549
|
-
* widget renderer does not receive the expression string (e.g. checkbox gets false, not a string).
|
|
1550
|
-
* When switching to expression: sets the value at path to '{{ }}' so the popup opens with
|
|
1551
|
-
* a clean expression placeholder instead of the previous literal (e.g. true/false).
|
|
1552
|
-
*/
|
|
1553
|
-
protected setExpressionMode(prop: AXPWidgetProperty, useExpression: boolean): void;
|
|
1554
|
-
/**
|
|
1555
|
-
* Opens the binding/expression code editor for a property with binding.enabled.
|
|
1556
|
-
* Ensures the value passed to the popup is always a string to avoid code-editor crashes.
|
|
1557
|
-
*/
|
|
1558
|
-
protected openBindingEditor(prop: AXPWidgetProperty): Promise<void>;
|
|
1559
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPPropertyViewerComponent, never>;
|
|
1560
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPPropertyViewerComponent, "axp-property-viewer", never, { "tabsInput": { "alias": "tabsInput"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, { "onChanged": "onChanged"; }, never, never, true, never>;
|
|
1561
|
-
}
|
|
1562
|
-
|
|
1563
|
-
declare class AXPPropertyViewerPopupComponent extends AXBasePageComponent {
|
|
1564
|
-
tabs: _angular_core.InputSignal<AXPPropertyViewerTab[]>;
|
|
1565
|
-
mode: _angular_core.InputSignal<"simple" | "advanced">;
|
|
1566
|
-
context: _angular_core.InputSignal<any>;
|
|
1567
|
-
protected readonly propertyViewer: _angular_core.Signal<AXPPropertyViewerComponent | undefined>;
|
|
1568
|
-
protected readonly currentValues: _angular_core.WritableSignal<any>;
|
|
1569
|
-
protected currentMode: 'init' | 'update';
|
|
1570
|
-
constructor();
|
|
1571
|
-
protected handlePropertyChanged(event: AXPPropertyViewerChangedEvent): void;
|
|
1572
|
-
protected handleCloseClick(): void;
|
|
1573
|
-
protected handleApplyClick(): void;
|
|
1574
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPPropertyViewerPopupComponent, never>;
|
|
1575
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPPropertyViewerPopupComponent, "axp-property-viewer-popup", never, { "tabs": { "alias": "tabs"; "required": true; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "context": { "alias": "context"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1576
|
-
}
|
|
1577
|
-
|
|
1578
|
-
interface AXPPropertyViewerConfig {
|
|
1579
|
-
title: string;
|
|
1580
|
-
tabs: AXPPropertyViewerTab[];
|
|
1581
|
-
context?: any;
|
|
1582
|
-
mode?: 'simple' | 'advanced';
|
|
1583
|
-
size?: 'sm' | 'md' | 'lg' | 'full';
|
|
1584
|
-
}
|
|
1585
|
-
interface AXPPropertyViewerResult {
|
|
1586
|
-
values: any;
|
|
1587
|
-
mode: 'init' | 'update';
|
|
1588
|
-
}
|
|
1589
|
-
declare class AXPPropertyViewerService {
|
|
1590
|
-
private readonly popupService;
|
|
1591
|
-
/**
|
|
1592
|
-
* Open property viewer popup with predefined tabs and context.
|
|
1593
|
-
*/
|
|
1594
|
-
open(config: AXPPropertyViewerConfig): Promise<AXPPropertyViewerResult | null>;
|
|
1595
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPPropertyViewerService, never>;
|
|
1596
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPPropertyViewerService>;
|
|
1597
|
-
}
|
|
1598
|
-
|
|
1599
|
-
declare class AXPQuerySortsComponent {
|
|
1600
|
-
sortDefinitions: _angular_core.ModelSignal<AXPSortDefinition[]>;
|
|
1601
|
-
sortQueries: _angular_core.WritableSignal<AXPSortQuery[]>;
|
|
1602
|
-
initialSortQueries: _angular_core.InputSignal<AXPSortQuery[]>;
|
|
1603
|
-
sortQueriesChange: _angular_core.OutputEmitterRef<AXPSortQuery[]>;
|
|
1604
|
-
constructor();
|
|
1605
|
-
protected drop(event: CdkDragDrop<unknown[]>): void;
|
|
1606
|
-
getSortDirection(item: AXPSortDefinition): "desc" | "asc" | undefined;
|
|
1607
|
-
protected changeItemSort(item: AXPSortDefinition): void;
|
|
1608
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPQuerySortsComponent, never>;
|
|
1609
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPQuerySortsComponent, "axp-query-sorts", never, { "sortDefinitions": { "alias": "sortDefinitions"; "required": false; "isSignal": true; }; "initialSortQueries": { "alias": "initialSortQueries"; "required": false; "isSignal": true; }; }, { "sortDefinitions": "sortDefinitionsChange"; "sortQueriesChange": "sortQueriesChange"; }, never, never, true, never>;
|
|
1610
|
-
}
|
|
1611
|
-
|
|
1612
1523
|
type StateMode = 'empty' | 'error' | 'loading' | 'warning' | 'info' | 'success';
|
|
1613
1524
|
declare class AXPStateMessageComponent {
|
|
1614
1525
|
mode: _angular_core.InputSignal<StateMode>;
|
|
@@ -2159,5 +2070,5 @@ declare class AXPWidgetPropertyViewerService {
|
|
|
2159
2070
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPWidgetPropertyViewerService>;
|
|
2160
2071
|
}
|
|
2161
2072
|
|
|
2162
|
-
export { AXPActivityLogComponent, AXPCategoryTreeComponent, AXPColorPalettePickerComponent, AXPColumnItemListComponent, AXPCompareViewComponent,
|
|
2163
|
-
export type { AXPCategoryTreeActions, AXPCategoryTreeConfig, AXPCategoryTreeDataSource, AXPCategoryTreeEvents, AXPCategoryTreeNode, AXPColumnItemListItem, AXPCompareViewField, AXPCompareViewInputs, AXPCompareViewMode, AXPCompareViewObject,
|
|
2073
|
+
export { AXPActivityLogComponent, AXPCategoryTreeComponent, AXPColorPalettePickerComponent, AXPColumnItemListComponent, AXPCompareViewComponent, AXPDataSelectorComponent, AXPDataSelectorService, AXPDragDropListComponent, AXPImageEditorPopupComponent, AXPImageEditorService, AXPLogoComponent, AXPMenuBadgeHelper, AXPMenuCustomizerComponent, AXPMenuCustomizerService, AXPPropertyViewerComponent, AXPPropertyViewerPopupComponent, AXPPropertyViewerService, AXPQueryColumnsComponent, AXPQueryFiltersComponent, AXPQuerySortsComponent, AXPQueryViewsComponent, AXPSpreadsheetComponent, AXPStateMessageComponent, AXPStopwatchComponent, AXPTableColumnsEditorComponent, AXPTableColumnsEditorPopupComponent, AXPTableColumnsEditorService, AXPTableDataEditorComponent, AXPTableDataEditorPopupComponent, AXPTableDataEditorService, AXPTaskBadgeDirective, AXPTaskBadgeProvider, AXPTaskBadgeService, AXPTemplateViewerComponent, AXPTemplateViewerService, AXPThemeLayoutActionsComponent, AXPThemeLayoutBlockComponent, AXPThemeLayoutContainerComponent, AXPThemeLayoutEndSideComponent, AXPThemeLayoutFooterComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutListComponent, AXPThemeLayoutListItemComponent, AXPThemeLayoutListItemsGroupComponent, AXPThemeLayoutPageHeaderComponent, AXPThemeLayoutPagePrimaryActionsComponent, AXPThemeLayoutPageSecondaryActionsComponent, AXPThemeLayoutSectionComponent, AXPThemeLayoutStartSideComponent, AXPThemeLayoutToolbarComponent, AXPUserAvatarComponent, AXPUserAvatarService, AXPWidgetFieldConfiguratorComponent, AXPWidgetItemComponent, AXPWidgetPropertyViewerComponent, AXPWidgetPropertyViewerPopupComponent, AXPWidgetPropertyViewerService, AXP_MENU_CUSTOMIZER_SERVICE, AXP_TASK_BADGE_PROVIDERS, AXP_USER_AVATAR_PROVIDER, buildTableColumnsEditorLayout };
|
|
2074
|
+
export type { AXPCategoryTreeActions, AXPCategoryTreeConfig, AXPCategoryTreeDataSource, AXPCategoryTreeEvents, AXPCategoryTreeNode, AXPColumnItemListItem, AXPCompareViewField, AXPCompareViewInputs, AXPCompareViewMode, AXPCompareViewObject, AXPDataSelectorColumn, AXPDataSelectorConfig, AXPDragDropListConfig, AXPDragDropListDropEvent, AXPDragDropListItem, AXPImageEditorOpenOptions, AXPMenuCustomizerAction, AXPMenuCustomizerItem, AXPMenuCustomizerItemType, AXPMenuCustomizerNodeData, AXPMenuCustomizerNodeMetadata, AXPMenuCustomizerState, AXPPropertyViewerChangedEvent, AXPPropertyViewerConfig, AXPPropertyViewerGroup, AXPPropertyViewerResult, AXPPropertyViewerTab, AXPSpreadsheetCellChangeEvent, AXPSpreadsheetCellValue, AXPSpreadsheetColumn, AXPSpreadsheetConfig, AXPSpreadsheetData, AXPSpreadsheetItem, AXPSpreadsheetRowChangeEvent, AXPSpreadsheetRowMode, AXPTableColumnDefinition, AXPTableColumnsEditorOpenOptions, AXPTableDataEditorOpenOptions, AXPTemplateViewerConfig, AXPTemplateViewerResult, AXPUserAvatarData, AXPUserAvatarProvider, AXPUserAvatarSize, AXPUserAvatarStatus, AXPWidgetItemClickEvent, AXPWidgetItemData, AXPWidgetPropertiesChangedEvent, AXPWidgetPropertyInjection, AXPWidgetPropertyViewerConfig, AXPWidgetPropertyViewerResult, StateMode };
|
package/layout/entity/index.d.ts
CHANGED
|
@@ -831,6 +831,7 @@ interface AXPRecordStateInfo {
|
|
|
831
831
|
interface AXPRecordOwnershipInfo {
|
|
832
832
|
tenantId?: string;
|
|
833
833
|
applicationId?: string;
|
|
834
|
+
userId?: string;
|
|
834
835
|
}
|
|
835
836
|
interface AXPEntityModel<Id> {
|
|
836
837
|
id: Id;
|
|
@@ -1253,6 +1254,11 @@ declare class AXPCategoryTreeService {
|
|
|
1253
1254
|
* Load root categories
|
|
1254
1255
|
*/
|
|
1255
1256
|
loadRootCategories(treeData: CategoryTreeNodeData, config: CategoryTreeConfig): Promise<Record<string, unknown>[] | null>;
|
|
1257
|
+
/**
|
|
1258
|
+
* Fetches a single category item by ID. Uses byKey when available (full item with parent),
|
|
1259
|
+
* otherwise falls back to list query with filter so ancestor chains can be built.
|
|
1260
|
+
*/
|
|
1261
|
+
fetchItemById(id: string, treeData: CategoryTreeNodeData, config: CategoryTreeConfig): Promise<Record<string, unknown> | null>;
|
|
1256
1262
|
/**
|
|
1257
1263
|
* Load children for a given node
|
|
1258
1264
|
*/
|
|
@@ -1340,6 +1346,8 @@ declare class AXPMiddlewareEntityStorageService<TKey = any, TDetailDto extends A
|
|
|
1340
1346
|
private readonly backend;
|
|
1341
1347
|
private readonly allMiddlewares;
|
|
1342
1348
|
private readonly injector;
|
|
1349
|
+
/** In-flight read requests - identical parallel requests share one execution */
|
|
1350
|
+
private readonly inFlight;
|
|
1343
1351
|
get dbName(): string;
|
|
1344
1352
|
private filterMiddlewares;
|
|
1345
1353
|
private compose;
|
|
@@ -1355,6 +1363,7 @@ declare class AXPMiddlewareEntityStorageService<TKey = any, TDetailDto extends A
|
|
|
1355
1363
|
insertOne(entityName: string, entity: TCreateDto): Promise<TKey>;
|
|
1356
1364
|
getAll(entityName: string): Promise<TListItemDto[]>;
|
|
1357
1365
|
query(entityName: string, request: AXPQueryRequest): Promise<AXPPagedListResult<TListItemDto>>;
|
|
1366
|
+
private runWithDedup;
|
|
1358
1367
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPMiddlewareEntityStorageService<any, any, any, any, any>, never>;
|
|
1359
1368
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPMiddlewareEntityStorageService<any, any, any, any, any>>;
|
|
1360
1369
|
}
|
|
@@ -1410,6 +1419,8 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
|
|
|
1410
1419
|
valueField: _angular_core.WritableSignal<string>;
|
|
1411
1420
|
allowMultiple: _angular_core.WritableSignal<boolean>;
|
|
1412
1421
|
selectedValues: _angular_core.WritableSignal<string[]>;
|
|
1422
|
+
/** Optional input for when popup passes selected values via inputs instead of data */
|
|
1423
|
+
selectedValuesInput: _angular_core.WritableSignal<string[]>;
|
|
1413
1424
|
searchPlaceholder: _angular_core.WritableSignal<string>;
|
|
1414
1425
|
excludedNodeId: _angular_core.WritableSignal<string | undefined>;
|
|
1415
1426
|
searchWithChildren: _angular_core.WritableSignal<boolean>;
|
|
@@ -1436,8 +1447,19 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
|
|
|
1436
1447
|
private relevantNodeIds;
|
|
1437
1448
|
private expandedNodesBeforeSearch;
|
|
1438
1449
|
private nodesExpandedDuringSearch;
|
|
1450
|
+
private initialExpandSyncDone;
|
|
1451
|
+
constructor();
|
|
1439
1452
|
ngOnInit(): void;
|
|
1440
1453
|
private initializeTree;
|
|
1454
|
+
/**
|
|
1455
|
+
* Called when popup data arrives after ngOnInit: load data, set selection, expand and sync.
|
|
1456
|
+
*/
|
|
1457
|
+
private runInitialExpandAndSync;
|
|
1458
|
+
/**
|
|
1459
|
+
* Runs expand path + sync selection once the tree viewChild is available.
|
|
1460
|
+
* Uses retry loop so we don't run before the view has rendered the tree.
|
|
1461
|
+
*/
|
|
1462
|
+
private runExpandAndSyncWhenTreeReady;
|
|
1441
1463
|
/**
|
|
1442
1464
|
* Handles search input value changes - Uses server-side search for efficiency and reliability
|
|
1443
1465
|
*/
|
|
@@ -1458,7 +1480,8 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
|
|
|
1458
1480
|
*/
|
|
1459
1481
|
private collectChildrenRecursively;
|
|
1460
1482
|
/**
|
|
1461
|
-
* Fetches a single item by ID
|
|
1483
|
+
* Fetches a single item by ID. Uses category tree service so byKey is used when available
|
|
1484
|
+
* (returns full item with parent/parentId for building ancestor chains).
|
|
1462
1485
|
*/
|
|
1463
1486
|
private fetchItemById;
|
|
1464
1487
|
/**
|
|
@@ -1534,6 +1557,8 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
|
|
|
1534
1557
|
* This ensures parent nodes are loaded into the tree before selecting children.
|
|
1535
1558
|
*/
|
|
1536
1559
|
private expandAncestorNodesInOrder;
|
|
1560
|
+
/** Waits until the node is expanded (tree has loaded children). Polls so deep paths load. */
|
|
1561
|
+
private waitForNodeExpanded;
|
|
1537
1562
|
/**
|
|
1538
1563
|
* Syncs selection state with the tree component.
|
|
1539
1564
|
* Selects leaf nodes and manually updates parent states (indeterminate/selected).
|
|
@@ -1550,6 +1575,15 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
|
|
|
1550
1575
|
* This is critical for pre-selected values in collapsed branches.
|
|
1551
1576
|
*/
|
|
1552
1577
|
private loadMissingNodeData;
|
|
1578
|
+
/**
|
|
1579
|
+
* For each selected id, if cached item has no parent (e.g. batch query returned minimal fields),
|
|
1580
|
+
* re-fetch by id so we have parent/parentId for building ancestor chains.
|
|
1581
|
+
*/
|
|
1582
|
+
private ensureParentDataInCache;
|
|
1583
|
+
/**
|
|
1584
|
+
* Resolves parent ID from node data: supports nested `parent` object or flat parentId/parentKey.
|
|
1585
|
+
*/
|
|
1586
|
+
private getParentIdFromNodeData;
|
|
1553
1587
|
/**
|
|
1554
1588
|
* Marks nodes as selected in the tree structure based on selectedNodeIds.
|
|
1555
1589
|
* This ensures pre-selected nodes appear selected when the tree is rendered.
|
|
@@ -1603,6 +1637,7 @@ declare class AXPEntityCategoryWidgetColumnComponent extends AXPColumnWidgetComp
|
|
|
1603
1637
|
protected readonly entityDetailPopoverService: AXPEntityDetailPopoverService;
|
|
1604
1638
|
protected readonly formatService: AXFormatService;
|
|
1605
1639
|
protected readonly entityResolver: AXPEntityDefinitionRegistryService;
|
|
1640
|
+
private readonly categoryBatchResolver;
|
|
1606
1641
|
private readonly rawValueSignal;
|
|
1607
1642
|
set rawValueInput(value: any);
|
|
1608
1643
|
protected entity: _angular_core.Signal<string>;
|
|
@@ -1627,6 +1662,12 @@ declare class AXPEntityCategoryWidgetColumnComponent extends AXPColumnWidgetComp
|
|
|
1627
1662
|
protected joinPath(path: string[]): string;
|
|
1628
1663
|
protected getItemId(item: any): string;
|
|
1629
1664
|
protected getBreadcrumbPath(item: any): string;
|
|
1665
|
+
private resolveItemsWithPaths;
|
|
1666
|
+
/**
|
|
1667
|
+
* Build path from categories array when record has full chain (id, parentId, title).
|
|
1668
|
+
* Used when middleware enriches categories on create/update.
|
|
1669
|
+
*/
|
|
1670
|
+
private buildItemWithPathFromChain;
|
|
1630
1671
|
private extractItemWithPath;
|
|
1631
1672
|
/**
|
|
1632
1673
|
* Calculate the full path from root to the item.
|