@meshmakers/octo-ui 3.4.290 → 3.4.310
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/meshmakers-octo-ui-tree-navigation-settings.mjs +77 -4
- package/fesm2022/meshmakers-octo-ui-tree-navigation-settings.mjs.map +1 -1
- package/fesm2022/meshmakers-octo-ui.mjs +495 -18
- package/fesm2022/meshmakers-octo-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/meshmakers-octo-ui-tree-navigation-settings.d.ts +25 -0
- package/types/meshmakers-octo-ui.d.ts +224 -95
package/package.json
CHANGED
|
@@ -41,6 +41,19 @@ interface TreeNavigationSettingsMessages {
|
|
|
41
41
|
exportError: string;
|
|
42
42
|
importSuccess: string;
|
|
43
43
|
importError: string;
|
|
44
|
+
perspectivesTitle: string;
|
|
45
|
+
perspectivesDescription: string;
|
|
46
|
+
columnKey: string;
|
|
47
|
+
columnPerspectiveName: string;
|
|
48
|
+
columnRootMode: string;
|
|
49
|
+
columnRootType: string;
|
|
50
|
+
columnPrimaryRole: string;
|
|
51
|
+
columnSecondaryRoles: string;
|
|
52
|
+
rootModeSpatial: string;
|
|
53
|
+
rootModeType: string;
|
|
54
|
+
secondaryRolesHint: string;
|
|
55
|
+
addPerspective: string;
|
|
56
|
+
perspectivesEmpty: string;
|
|
44
57
|
}
|
|
45
58
|
/** English defaults; hosts may override via the `messages` input. */
|
|
46
59
|
declare const DEFAULT_TREE_NAVIGATION_SETTINGS_MESSAGES: TreeNavigationSettingsMessages;
|
|
@@ -67,6 +80,11 @@ declare class TreeNavigationSettingsComponent implements OnInit {
|
|
|
67
80
|
protected readonly typePresent: _angular_core.WritableSignal<boolean>;
|
|
68
81
|
private rtId;
|
|
69
82
|
protected readonly rules: _angular_forms.FormArray<FormGroup<any>>;
|
|
83
|
+
protected readonly perspectiveRows: _angular_forms.FormArray<FormGroup<any>>;
|
|
84
|
+
protected readonly rootModeOptions: _angular_core.Signal<{
|
|
85
|
+
text: string;
|
|
86
|
+
value: string;
|
|
87
|
+
}[]>;
|
|
70
88
|
protected readonly ckTypeSuggestions: _angular_core.WritableSignal<string[]>;
|
|
71
89
|
protected readonly roleSuggestions: _angular_core.WritableSignal<{
|
|
72
90
|
roleId: string;
|
|
@@ -90,11 +108,15 @@ declare class TreeNavigationSettingsComponent implements OnInit {
|
|
|
90
108
|
protected reload(): Promise<void>;
|
|
91
109
|
protected addRule(): void;
|
|
92
110
|
protected removeRule(index: number): void;
|
|
111
|
+
protected addPerspective(): void;
|
|
112
|
+
protected removePerspective(index: number): void;
|
|
93
113
|
protected onSave(): Promise<void>;
|
|
94
114
|
/** Loads CK type suggestions for the source-type combobox (server filter). */
|
|
95
115
|
protected searchCkTypes(term: string): Promise<void>;
|
|
96
116
|
/** Loads role suggestions for the source type of the opened row's combobox. */
|
|
97
117
|
protected loadRoleSuggestions(row: FormGroup): Promise<void>;
|
|
118
|
+
/** Loads role suggestions for the root CK type of a perspective row. */
|
|
119
|
+
protected loadRoleSuggestionsForType(row: FormGroup): Promise<void>;
|
|
98
120
|
/**
|
|
99
121
|
* Exports the saved configuration singleton as a deep-graph runtime model ZIP,
|
|
100
122
|
* via the standard asset-repo export job (same mechanism as pools / adapters /
|
|
@@ -109,6 +131,9 @@ declare class TreeNavigationSettingsComponent implements OnInit {
|
|
|
109
131
|
/** Resolves the tenant id from the route hierarchy (route is /:tenantId/...). */
|
|
110
132
|
private getTenantId;
|
|
111
133
|
private collectRoles;
|
|
134
|
+
private collectPerspectives;
|
|
135
|
+
private createPerspectiveRow;
|
|
136
|
+
private toPerspectiveConfig;
|
|
112
137
|
private createRow;
|
|
113
138
|
private toRoleConfig;
|
|
114
139
|
private toVisibleValue;
|
|
@@ -598,6 +598,161 @@ declare class EntityIdInfoComponent {
|
|
|
598
598
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EntityIdInfoComponent, "mm-entity-id-info", never, { "rtId": { "alias": "rtId"; "required": true; }; "rtCkTypeId": { "alias": "rtCkTypeId"; "required": true; }; "ckTypeId": { "alias": "ckTypeId"; "required": false; }; }, {}, never, never, true, never>;
|
|
599
599
|
}
|
|
600
600
|
|
|
601
|
+
/** One resolved per-role override (presentation only). */
|
|
602
|
+
interface TreeNavigationRoleOverride {
|
|
603
|
+
visible?: boolean;
|
|
604
|
+
displayName?: string;
|
|
605
|
+
sortIndex?: number;
|
|
606
|
+
grouped?: boolean;
|
|
607
|
+
icon?: string;
|
|
608
|
+
}
|
|
609
|
+
/** One editable override rule (a row in the settings editor). */
|
|
610
|
+
interface TreeNavigationRoleConfig {
|
|
611
|
+
/** Source CK type id this rule applies to, or `*` for every type. */
|
|
612
|
+
sourceCkTypeId: string;
|
|
613
|
+
/** Runtime association role id (e.g. `EnergyIQ/SpaceSensors`). */
|
|
614
|
+
roleId: string;
|
|
615
|
+
visible?: boolean;
|
|
616
|
+
displayName?: string;
|
|
617
|
+
sortIndex?: number;
|
|
618
|
+
grouped?: boolean;
|
|
619
|
+
icon?: string;
|
|
620
|
+
}
|
|
621
|
+
/** How a perspective determines its root nodes. */
|
|
622
|
+
type PerspectiveRootMode = 'Spatial' | 'Type';
|
|
623
|
+
/** Direction a perspective's primary role is navigated from the root node. */
|
|
624
|
+
type PerspectiveDirection = 'Inbound' | 'Outbound';
|
|
625
|
+
/**
|
|
626
|
+
* One switchable tree perspective (AB#4263). A perspective defines its own root
|
|
627
|
+
* (the spatial ParentChild tree, or all instances of a CK type) and an optional
|
|
628
|
+
* primary/secondary navigation whitelist applied at the root level. The built-in
|
|
629
|
+
* `Spatial` perspective is synthesized by the data source and is not stored.
|
|
630
|
+
*/
|
|
631
|
+
interface PerspectiveDefinition {
|
|
632
|
+
/** Stable key, unique within the tenant (e.g. `Spatial`, `Systems`). */
|
|
633
|
+
key: string;
|
|
634
|
+
/** Label shown in the perspective switcher. */
|
|
635
|
+
displayName: string;
|
|
636
|
+
/** Switcher ordering hint (ascending). */
|
|
637
|
+
sortIndex?: number;
|
|
638
|
+
/** Icon name for the switcher entry (resolved by the frontend). */
|
|
639
|
+
icon?: string;
|
|
640
|
+
/** `Spatial` = all Basic/Tree entities; `Type` = all instances of rootCkTypeId. */
|
|
641
|
+
rootMode: PerspectiveRootMode;
|
|
642
|
+
/** Runtime CK type id whose instances form the roots when rootMode = `Type`. */
|
|
643
|
+
rootCkTypeId?: string;
|
|
644
|
+
/** Association role flattened directly under each root node (like ParentChild). */
|
|
645
|
+
primaryRoleId?: string;
|
|
646
|
+
/** Direction the primary role is navigated (default: Inbound / containment side). */
|
|
647
|
+
primaryDirection?: PerspectiveDirection;
|
|
648
|
+
/** Additional roles shown as group nodes directly under each root node. */
|
|
649
|
+
secondaryRoleIds?: string[];
|
|
650
|
+
}
|
|
651
|
+
/** The full configuration as loaded for editing. */
|
|
652
|
+
interface TreeNavigationConfig {
|
|
653
|
+
/** rtId of the singleton, or null when it does not exist yet. */
|
|
654
|
+
rtId: string | null;
|
|
655
|
+
/** True when the CK type is installed on the tenant (System.UI >= 2.2.0). */
|
|
656
|
+
typePresent: boolean;
|
|
657
|
+
roles: TreeNavigationRoleConfig[];
|
|
658
|
+
/** Configured extra perspectives (excludes the built-in spatial one). */
|
|
659
|
+
perspectives: PerspectiveDefinition[];
|
|
660
|
+
}
|
|
661
|
+
/**
|
|
662
|
+
* Loads the optional per-tenant `System.UI/TreeNavigationConfiguration` singleton
|
|
663
|
+
* and resolves per-association overrides for the entity trees.
|
|
664
|
+
*
|
|
665
|
+
* Design notes:
|
|
666
|
+
* - The config entity is OPTIONAL. When the CK type is not installed on the
|
|
667
|
+
* tenant (System.UI < 2.2.0) or no instance exists, every lookup returns
|
|
668
|
+
* undefined and the trees fall back to pure auto-discovery.
|
|
669
|
+
* - The singleton field (`systemUITreeNavigationConfiguration`) only exists in
|
|
670
|
+
* the tenant schema when the CK type is installed, so querying it blindly
|
|
671
|
+
* would raise a GraphQL validation error (and a user-facing toast). We first
|
|
672
|
+
* probe the CK schema with the always-valid `constructionKit.types` query and
|
|
673
|
+
* only run the singleton query when the type is present.
|
|
674
|
+
* - Uses inline `gql` (not codegen) so the feature is decoupled from a schema
|
|
675
|
+
* re-introspection that includes the new CK type.
|
|
676
|
+
*/
|
|
677
|
+
declare class TreeNavigationConfigService {
|
|
678
|
+
private readonly apollo;
|
|
679
|
+
/** key `${sourceCkTypeId}::${roleId}` -> override; cached for the session. */
|
|
680
|
+
private overridesPromise?;
|
|
681
|
+
/** Configured extra perspectives; cached for the session. */
|
|
682
|
+
private perspectivesPromise?;
|
|
683
|
+
/**
|
|
684
|
+
* Resolves the override for one (source type, role) pair, preferring an exact
|
|
685
|
+
* source-type match over a wildcard (`*`) rule. Returns undefined when nothing
|
|
686
|
+
* is configured.
|
|
687
|
+
*/
|
|
688
|
+
resolve(sourceCkTypeId: string, roleId: string): Promise<TreeNavigationRoleOverride | undefined>;
|
|
689
|
+
/** Forces a reload on next access (e.g. after a tenant switch). */
|
|
690
|
+
reset(): void;
|
|
691
|
+
/**
|
|
692
|
+
* Returns the configured extra tree perspectives (AB#4263), sorted by
|
|
693
|
+
* sortIndex then displayName. Returns [] when the CK type is absent
|
|
694
|
+
* (System.UI < 2.3.0) or none are configured. The built-in spatial
|
|
695
|
+
* perspective is synthesized by the data source and is NOT included here.
|
|
696
|
+
*/
|
|
697
|
+
perspectives(): Promise<PerspectiveDefinition[]>;
|
|
698
|
+
private loadPerspectives;
|
|
699
|
+
/** Maps a raw perspective record to a definition, dropping invalid rows. */
|
|
700
|
+
private toPerspectiveDefinition;
|
|
701
|
+
/**
|
|
702
|
+
* Returns the inbound association roles declared on a CK type, for the role
|
|
703
|
+
* autocomplete in the settings editor. Returns `{ roleId, label }` where the
|
|
704
|
+
* label is the friendly inbound name plus the role id. Empty for `*` or an
|
|
705
|
+
* unknown type (orphan roles can still be typed as custom values).
|
|
706
|
+
*/
|
|
707
|
+
getRoleSuggestions(ckTypeId: string): Promise<{
|
|
708
|
+
roleId: string;
|
|
709
|
+
label: string;
|
|
710
|
+
}[]>;
|
|
711
|
+
private getOverrides;
|
|
712
|
+
private load;
|
|
713
|
+
/**
|
|
714
|
+
* Loads the full configuration for editing (settings page). Returns whether
|
|
715
|
+
* the CK type is installed (so the page can show a clear "upgrade System.UI"
|
|
716
|
+
* hint), the singleton rtId (null when not created yet), and the role rules.
|
|
717
|
+
*/
|
|
718
|
+
loadConfig(): Promise<TreeNavigationConfig>;
|
|
719
|
+
/**
|
|
720
|
+
* Creates or updates the singleton with the given rules and perspectives, then
|
|
721
|
+
* invalidates the resolve/perspective cache so the trees pick up the change on
|
|
722
|
+
* the next expand. Returns the singleton rtId.
|
|
723
|
+
*/
|
|
724
|
+
saveConfig(rtId: string | null, roles: TreeNavigationRoleConfig[], perspectives?: PerspectiveDefinition[]): Promise<string>;
|
|
725
|
+
/** Drops undefined fields so the record-array input only carries set values. */
|
|
726
|
+
private toRoleInput;
|
|
727
|
+
/** Drops undefined/empty fields so the perspective input only carries set values. */
|
|
728
|
+
private toPerspectiveInput;
|
|
729
|
+
/**
|
|
730
|
+
* Probes whether the `System.UI/TreeNavigationConfiguration` CK type is
|
|
731
|
+
* installed on the tenant (System.UI >= 2.2.0). Uses the always-valid
|
|
732
|
+
* `constructionKit.types` query so it never raises a schema validation error.
|
|
733
|
+
*/
|
|
734
|
+
private probeTypePresent;
|
|
735
|
+
/**
|
|
736
|
+
* Probes the CK schema and (when present) loads the singleton's raw roles.
|
|
737
|
+
* Perspectives are loaded separately (see fetchPerspectivesRaw) so a System.UI
|
|
738
|
+
* 2.2.0 tenant (type present but no `perspectives` field yet) keeps its roles.
|
|
739
|
+
*/
|
|
740
|
+
private fetchSingleton;
|
|
741
|
+
/**
|
|
742
|
+
* Loads the singleton's raw perspectives, tolerating the System.UI 2.2.0 case
|
|
743
|
+
* where the `perspectives` field does not yet exist (GraphQL validation error).
|
|
744
|
+
* Any failure yields an empty list so roles loading is never affected.
|
|
745
|
+
*/
|
|
746
|
+
private fetchPerspectivesRaw;
|
|
747
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TreeNavigationConfigService, never>;
|
|
748
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<TreeNavigationConfigService>;
|
|
749
|
+
}
|
|
750
|
+
declare const TREE_NAVIGATION_CONFIG_CONSTANTS: {
|
|
751
|
+
CONFIG_CK_TYPE_ID: string;
|
|
752
|
+
CONFIG_WELL_KNOWN_NAME: string;
|
|
753
|
+
WILDCARD: string;
|
|
754
|
+
};
|
|
755
|
+
|
|
601
756
|
type BrowserItem$3 = RtEntityDto | CkModelDto | CkTypeDto | {
|
|
602
757
|
isCkModelsRoot?: boolean;
|
|
603
758
|
ckModelId?: string;
|
|
@@ -629,6 +784,51 @@ declare class RuntimeBrowserDataSource extends OctoGraphQlHierarchyDataSource<Br
|
|
|
629
784
|
private readonly updateTreeNodesDtoGQL;
|
|
630
785
|
private readonly typeHelperService;
|
|
631
786
|
private readonly treeNavConfig;
|
|
787
|
+
private readonly apollo;
|
|
788
|
+
/** Key of the currently active tree perspective (AB#4263). */
|
|
789
|
+
private activePerspectiveKey;
|
|
790
|
+
/**
|
|
791
|
+
* The perspective resolved during the last `fetchRootNodes()`. Used by
|
|
792
|
+
* `fetchChildren()` to apply the root-level whitelist for `Type` perspectives.
|
|
793
|
+
*/
|
|
794
|
+
private activePerspective;
|
|
795
|
+
/**
|
|
796
|
+
* rtIds of the current perspective's root nodes. The primary/secondary role
|
|
797
|
+
* whitelist is applied ONLY to the direct children of these roots — deeper
|
|
798
|
+
* nodes keep full auto-discovery (whitelist-at-root-only).
|
|
799
|
+
*/
|
|
800
|
+
private readonly perspectiveRootRtIds;
|
|
801
|
+
/**
|
|
802
|
+
* Selects the active perspective by key. The host is responsible for reloading
|
|
803
|
+
* the tree afterwards (e.g. `treeDetail.refreshTree()`), which re-runs
|
|
804
|
+
* `fetchRootNodes()` and re-resolves the perspective.
|
|
805
|
+
*/
|
|
806
|
+
setActivePerspective(key: string): void;
|
|
807
|
+
/** The currently selected perspective key. */
|
|
808
|
+
getActivePerspectiveKey(): string;
|
|
809
|
+
/**
|
|
810
|
+
* Returns all selectable perspectives: the built-in spatial one first, then the
|
|
811
|
+
* per-tenant configured perspectives, de-duplicated by key (a configured
|
|
812
|
+
* `Spatial` overrides the built-in). With no configuration this is a single
|
|
813
|
+
* entry, so the host can hide the switcher.
|
|
814
|
+
*/
|
|
815
|
+
getPerspectives(): Promise<PerspectiveDefinition[]>;
|
|
816
|
+
/**
|
|
817
|
+
* The role-id whitelist of the active perspective (primary + secondary), or
|
|
818
|
+
* null when the perspective is not a `Type` perspective or declares no roles.
|
|
819
|
+
*/
|
|
820
|
+
private activePerspectiveWhitelist;
|
|
821
|
+
/**
|
|
822
|
+
* The set of role ids the given entity's direct children are restricted to,
|
|
823
|
+
* or null for full auto-discovery. Non-null only when the entity is a root of
|
|
824
|
+
* the active `Type` perspective (whitelist-at-root-only).
|
|
825
|
+
*/
|
|
826
|
+
private rootWhitelistFor;
|
|
827
|
+
/**
|
|
828
|
+
* Resolves the active perspective from the configured list, falling back to a
|
|
829
|
+
* configured/built-in spatial one when the selected key is unknown.
|
|
830
|
+
*/
|
|
831
|
+
private resolveActivePerspective;
|
|
632
832
|
private isCkModelsRoot;
|
|
633
833
|
private isCkModel;
|
|
634
834
|
private isCkType;
|
|
@@ -682,6 +882,13 @@ declare class RuntimeBrowserDataSource extends OctoGraphQlHierarchyDataSource<Br
|
|
|
682
882
|
/** Resolves the icon for a CK type, falling back to a generic entity icon. */
|
|
683
883
|
private resolveIcon;
|
|
684
884
|
fetchRootNodes(): Promise<TreeItemDataTyped<BrowserItem$3>[]>;
|
|
885
|
+
/**
|
|
886
|
+
* Loads all runtime instances of a CK type as the roots of a `Type`
|
|
887
|
+
* perspective (AB#4263), registering their rtIds so the whitelist applies to
|
|
888
|
+
* their direct children only. Expandability is schema-based (does the type
|
|
889
|
+
* declare an inbound role, restricted to the whitelist when set).
|
|
890
|
+
*/
|
|
891
|
+
private fetchTypePerspectiveRoots;
|
|
685
892
|
/**
|
|
686
893
|
* Gets ParentChild association of given Runtime Entity.
|
|
687
894
|
*
|
|
@@ -760,15 +967,22 @@ interface EntitySelectorDialogResult {
|
|
|
760
967
|
name?: string;
|
|
761
968
|
}
|
|
762
969
|
|
|
763
|
-
declare class EntitySelectorDialogComponent {
|
|
970
|
+
declare class EntitySelectorDialogComponent implements OnInit {
|
|
764
971
|
private readonly windowRef;
|
|
765
972
|
readonly treeDataSource: RuntimeBrowserDataSource;
|
|
973
|
+
private readonly tree?;
|
|
974
|
+
/** Selectable tree perspectives (AB#4263); switcher hides itself when <= 1. */
|
|
975
|
+
protected readonly perspectives: _angular_core.WritableSignal<PerspectiveDefinition[]>;
|
|
976
|
+
protected readonly activePerspectiveKey: _angular_core.WritableSignal<string>;
|
|
766
977
|
data: EntitySelectorDialogData;
|
|
767
978
|
selectedEntity: {
|
|
768
979
|
rtId: string;
|
|
769
980
|
ckTypeId: string;
|
|
770
981
|
name?: string;
|
|
771
982
|
} | null;
|
|
983
|
+
ngOnInit(): Promise<void>;
|
|
984
|
+
/** Switches the active perspective and reloads the picker tree. */
|
|
985
|
+
onPerspectiveChange(key: string): Promise<void>;
|
|
772
986
|
onNodeSelected(node: TreeItemData): void;
|
|
773
987
|
onConfirm(): void;
|
|
774
988
|
onCancel(): void;
|
|
@@ -1623,6 +1837,8 @@ interface RuntimeBrowserMessages {
|
|
|
1623
1837
|
mappingSelect?: string;
|
|
1624
1838
|
/** Empty-state hint shown when no mappings exist. Default: "No data point mappings configured yet." */
|
|
1625
1839
|
mappingNoneConfigured?: string;
|
|
1840
|
+
/** Label before the tree perspective switcher (AB#4263). Default: "Perspective" */
|
|
1841
|
+
perspective?: string;
|
|
1626
1842
|
}
|
|
1627
1843
|
/**
|
|
1628
1844
|
* Default English messages for the RuntimeBrowser components.
|
|
@@ -2230,6 +2446,12 @@ declare class RuntimeBrowserComponent implements AfterViewInit {
|
|
|
2230
2446
|
*/
|
|
2231
2447
|
expressionValidator: _angular_core.InputSignal<ExpressionValidatorFn | undefined>;
|
|
2232
2448
|
protected readonly resolvedMessages: _angular_core.Signal<RuntimeBrowserMessages>;
|
|
2449
|
+
/** Selectable tree perspectives (AB#4263); switcher hides itself when <= 1. */
|
|
2450
|
+
protected readonly perspectives: _angular_core.WritableSignal<PerspectiveDefinition[]>;
|
|
2451
|
+
protected readonly activePerspectiveKey: _angular_core.WritableSignal<string>;
|
|
2452
|
+
/** Switches the active perspective and reloads the tree from its new roots. */
|
|
2453
|
+
protected onPerspectiveChange(key: string): Promise<void>;
|
|
2454
|
+
private loadPerspectives;
|
|
2233
2455
|
treeDetail: BaseTreeDetailComponent<BrowserItem$1>;
|
|
2234
2456
|
detailsPanel: RuntimeBrowserDetailsComponent;
|
|
2235
2457
|
protected get leftToolbarActions(): CommandItem[];
|
|
@@ -2478,99 +2700,6 @@ declare class RuntimeBrowserStateService {
|
|
|
2478
2700
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<RuntimeBrowserStateService>;
|
|
2479
2701
|
}
|
|
2480
2702
|
|
|
2481
|
-
/** One resolved per-role override (presentation only). */
|
|
2482
|
-
interface TreeNavigationRoleOverride {
|
|
2483
|
-
visible?: boolean;
|
|
2484
|
-
displayName?: string;
|
|
2485
|
-
sortIndex?: number;
|
|
2486
|
-
grouped?: boolean;
|
|
2487
|
-
icon?: string;
|
|
2488
|
-
}
|
|
2489
|
-
/** One editable override rule (a row in the settings editor). */
|
|
2490
|
-
interface TreeNavigationRoleConfig {
|
|
2491
|
-
/** Source CK type id this rule applies to, or `*` for every type. */
|
|
2492
|
-
sourceCkTypeId: string;
|
|
2493
|
-
/** Runtime association role id (e.g. `EnergyIQ/SpaceSensors`). */
|
|
2494
|
-
roleId: string;
|
|
2495
|
-
visible?: boolean;
|
|
2496
|
-
displayName?: string;
|
|
2497
|
-
sortIndex?: number;
|
|
2498
|
-
grouped?: boolean;
|
|
2499
|
-
icon?: string;
|
|
2500
|
-
}
|
|
2501
|
-
/** The full configuration as loaded for editing. */
|
|
2502
|
-
interface TreeNavigationConfig {
|
|
2503
|
-
/** rtId of the singleton, or null when it does not exist yet. */
|
|
2504
|
-
rtId: string | null;
|
|
2505
|
-
/** True when the CK type is installed on the tenant (System.UI >= 2.2.0). */
|
|
2506
|
-
typePresent: boolean;
|
|
2507
|
-
roles: TreeNavigationRoleConfig[];
|
|
2508
|
-
}
|
|
2509
|
-
/**
|
|
2510
|
-
* Loads the optional per-tenant `System.UI/TreeNavigationConfiguration` singleton
|
|
2511
|
-
* and resolves per-association overrides for the entity trees.
|
|
2512
|
-
*
|
|
2513
|
-
* Design notes:
|
|
2514
|
-
* - The config entity is OPTIONAL. When the CK type is not installed on the
|
|
2515
|
-
* tenant (System.UI < 2.2.0) or no instance exists, every lookup returns
|
|
2516
|
-
* undefined and the trees fall back to pure auto-discovery.
|
|
2517
|
-
* - The singleton field (`systemUITreeNavigationConfiguration`) only exists in
|
|
2518
|
-
* the tenant schema when the CK type is installed, so querying it blindly
|
|
2519
|
-
* would raise a GraphQL validation error (and a user-facing toast). We first
|
|
2520
|
-
* probe the CK schema with the always-valid `constructionKit.types` query and
|
|
2521
|
-
* only run the singleton query when the type is present.
|
|
2522
|
-
* - Uses inline `gql` (not codegen) so the feature is decoupled from a schema
|
|
2523
|
-
* re-introspection that includes the new CK type.
|
|
2524
|
-
*/
|
|
2525
|
-
declare class TreeNavigationConfigService {
|
|
2526
|
-
private readonly apollo;
|
|
2527
|
-
/** key `${sourceCkTypeId}::${roleId}` -> override; cached for the session. */
|
|
2528
|
-
private overridesPromise?;
|
|
2529
|
-
/**
|
|
2530
|
-
* Resolves the override for one (source type, role) pair, preferring an exact
|
|
2531
|
-
* source-type match over a wildcard (`*`) rule. Returns undefined when nothing
|
|
2532
|
-
* is configured.
|
|
2533
|
-
*/
|
|
2534
|
-
resolve(sourceCkTypeId: string, roleId: string): Promise<TreeNavigationRoleOverride | undefined>;
|
|
2535
|
-
/** Forces a reload on next access (e.g. after a tenant switch). */
|
|
2536
|
-
reset(): void;
|
|
2537
|
-
/**
|
|
2538
|
-
* Returns the inbound association roles declared on a CK type, for the role
|
|
2539
|
-
* autocomplete in the settings editor. Returns `{ roleId, label }` where the
|
|
2540
|
-
* label is the friendly inbound name plus the role id. Empty for `*` or an
|
|
2541
|
-
* unknown type (orphan roles can still be typed as custom values).
|
|
2542
|
-
*/
|
|
2543
|
-
getRoleSuggestions(ckTypeId: string): Promise<{
|
|
2544
|
-
roleId: string;
|
|
2545
|
-
label: string;
|
|
2546
|
-
}[]>;
|
|
2547
|
-
private getOverrides;
|
|
2548
|
-
private load;
|
|
2549
|
-
/**
|
|
2550
|
-
* Loads the full configuration for editing (settings page). Returns whether
|
|
2551
|
-
* the CK type is installed (so the page can show a clear "upgrade System.UI"
|
|
2552
|
-
* hint), the singleton rtId (null when not created yet), and the role rules.
|
|
2553
|
-
*/
|
|
2554
|
-
loadConfig(): Promise<TreeNavigationConfig>;
|
|
2555
|
-
/**
|
|
2556
|
-
* Creates or updates the singleton with the given rules, then invalidates the
|
|
2557
|
-
* resolve cache so the trees pick up the change on the next expand. Returns the
|
|
2558
|
-
* singleton rtId.
|
|
2559
|
-
*/
|
|
2560
|
-
saveConfig(rtId: string | null, roles: TreeNavigationRoleConfig[]): Promise<string>;
|
|
2561
|
-
/** Drops undefined fields so the record-array input only carries set values. */
|
|
2562
|
-
private toRoleInput;
|
|
2563
|
-
/** Probes the CK schema and (when present) loads the singleton's raw roles. */
|
|
2564
|
-
private fetchSingleton;
|
|
2565
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TreeNavigationConfigService, never>;
|
|
2566
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<TreeNavigationConfigService>;
|
|
2567
|
-
}
|
|
2568
|
-
declare const TREE_NAVIGATION_CONFIG_CONSTANTS: {
|
|
2569
|
-
CONFIG_CK_TYPE_ID: string;
|
|
2570
|
-
CONFIG_WELL_KNOWN_NAME: string;
|
|
2571
|
-
WILDCARD: string;
|
|
2572
|
-
};
|
|
2573
|
-
|
|
2574
2703
|
/**
|
|
2575
2704
|
* View model for a DataPointMapping entity with resolved source/target information.
|
|
2576
2705
|
* Used by the DataMappingOverviewComponent for display in the grid.
|
|
@@ -3314,4 +3443,4 @@ declare class TenantSwitcherComponent {
|
|
|
3314
3443
|
declare function provideOctoUi(): EnvironmentProviders;
|
|
3315
3444
|
|
|
3316
3445
|
export { AssociationValidationService, AttributeSelectorDialogComponent, AttributeSelectorDialogService, AttributeSortSelectorDialogComponent, AttributeSortSelectorDialogService, AttributeValueTypeDto, CkTypeSelectorDialogComponent, CkTypeSelectorDialogService, CkTypeSelectorInputComponent, DEFAULT_CK_TYPE_SELECTOR_DIALOG_MESSAGES, DEFAULT_CK_TYPE_SELECTOR_INPUT_MESSAGES, DEFAULT_DATA_POINT, DEFAULT_MAPPING_COVERAGE_TREE_CONFIG, DEFAULT_PROPERTY_GRID_MESSAGES, DEFAULT_RUNTIME_BROWSER_MESSAGES, DataMappingOverviewComponent, DataPointPickerComponent, DataPointResolverService, DefaultPropertyCategory, EntityDetailComponent, EntityIdInfoComponent, EntitySelectorDialogComponent, EntitySelectorDialogService, FieldFilterEditorComponent, MappingCoverageTreeComponent, MappingCoverageTreeDataSource, MappingEditDialogComponent, MappingEditDialogService, OctoGraphQlDataSource, OctoGraphQlHierarchyDataSource, OctoLoaderComponent, PropertyConverterService, PropertyDisplayMode, PropertyGridComponent, PropertyValueDisplayComponent, RUNTIME_BROWSER_MESSAGES, RecordDetailDialogComponent, RtEntityIdHelper, RuntimeBrowserComponent, RuntimeBrowserOutletComponent, RuntimeBrowserPageComponent, RuntimeBrowserStateService, RuntimeEntityVariableDialogComponent, RuntimeEntityVariableDialogService, TREE_NAVIGATION_CONFIG_CONSTANTS, TenantSwitcherComponent, TreeNavigationConfigService, account_tree, add, analytics, app_registration, article, botService, category, chat, checklist, code, component_exchange, computer, createRuntimeBrowserRoutes, customer, dashboard, event_list, extractDataPointNames, graphic_eq, group, identityService, insert_link, manage_accounts, more_time, notifications, page_info, pages, person_search, playlist_add_check, pool, power, provideOctoUi, publicIcon, query_builder, schedule_send, settings, sort, storage, swagger, swagger_asset, swagger_bot, swagger_communication, swagger_identity, team_dashboard, tenancy, text_snippet, travel_explore, user_diagnostics, webhook, work };
|
|
3317
|
-
export type { AttributeItemLike, AttributeSelectorDialogData, AttributeSelectorDialogResult, AttributeSelectorResult, AttributeSortItem, AttributeSortSelectorDialogData, AttributeSortSelectorDialogResult, AttributeSortSelectorResult, BinaryDownloadEvent, BrowserItem, BrowserState, CkAssociationRole, CkTypeSelectorDialogData, CkTypeSelectorDialogMessages, CkTypeSelectorDialogResult, CkTypeSelectorInputMessages, CkTypeSelectorResult, CoverageEntityRef, CoverageMappingItem, CoverageNodePayload, CoverageTreeIcons, CoverageTreeItem, DataPointMappingItem, DataPointMappingOverviewItem, EntitySelectorDialogData, EntitySelectorDialogResult, EntitySelectorResult, ExpressionValidationResult, ExpressionValidatorFn, FieldFilterItem, FilterVariable, MappingCoverageTreeConfig, MappingEditDialogData, MappingEditDialogResult, MappingEditValue, MappingOverviewSummary, MoveValidationResult, PropertyChangeEvent, PropertyGridConfig, PropertyGridItem, PropertyGridMessages, RtEntityId, RuntimeBrowserMessages, RuntimeBrowserRouteOptions, RuntimeEntityVariableDialogData, RuntimeEntityVariableDialogResult, RuntimeEntityVariableMapping, RuntimeEntityVariableResult, SortOption, TreeNavigationConfig, TreeNavigationRoleConfig, TreeNavigationRoleOverride, ValidationMessage };
|
|
3446
|
+
export type { AttributeItemLike, AttributeSelectorDialogData, AttributeSelectorDialogResult, AttributeSelectorResult, AttributeSortItem, AttributeSortSelectorDialogData, AttributeSortSelectorDialogResult, AttributeSortSelectorResult, BinaryDownloadEvent, BrowserItem, BrowserState, CkAssociationRole, CkTypeSelectorDialogData, CkTypeSelectorDialogMessages, CkTypeSelectorDialogResult, CkTypeSelectorInputMessages, CkTypeSelectorResult, CoverageEntityRef, CoverageMappingItem, CoverageNodePayload, CoverageTreeIcons, CoverageTreeItem, DataPointMappingItem, DataPointMappingOverviewItem, EntitySelectorDialogData, EntitySelectorDialogResult, EntitySelectorResult, ExpressionValidationResult, ExpressionValidatorFn, FieldFilterItem, FilterVariable, MappingCoverageTreeConfig, MappingEditDialogData, MappingEditDialogResult, MappingEditValue, MappingOverviewSummary, MoveValidationResult, PerspectiveDefinition, PerspectiveDirection, PerspectiveRootMode, PropertyChangeEvent, PropertyGridConfig, PropertyGridItem, PropertyGridMessages, RtEntityId, RuntimeBrowserMessages, RuntimeBrowserRouteOptions, RuntimeEntityVariableDialogData, RuntimeEntityVariableDialogResult, RuntimeEntityVariableMapping, RuntimeEntityVariableResult, SortOption, TreeNavigationConfig, TreeNavigationRoleConfig, TreeNavigationRoleOverride, ValidationMessage };
|