@praxisui/page-builder 9.0.67 → 9.0.68-rc.1
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/README.md +302 -10
- package/ai/component-registry.json +76 -34
- package/fesm2022/praxisui-page-builder.mjs +3315 -1949
- package/package.json +4 -4
- package/types/praxisui-page-builder.d.ts +183 -45
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/page-builder",
|
|
3
|
-
"version": "9.0.
|
|
3
|
+
"version": "9.0.68-rc.1",
|
|
4
4
|
"description": "Page and widget builder utilities for Praxis UI (grid, dynamic widgets, editors).",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/common": "^21.0.0",
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
"@angular/forms": "^21.0.0",
|
|
9
9
|
"@angular/cdk": "^21.0.0",
|
|
10
10
|
"@angular/material": "^21.0.0",
|
|
11
|
-
"@praxisui/ai": "^9.0.
|
|
12
|
-
"@praxisui/core": "^9.0.
|
|
13
|
-
"@praxisui/settings-panel": "^9.0.
|
|
11
|
+
"@praxisui/ai": "^9.0.68-rc.1",
|
|
12
|
+
"@praxisui/core": "^9.0.68-rc.1",
|
|
13
|
+
"@praxisui/settings-panel": "^9.0.68-rc.1",
|
|
14
14
|
"rxjs": "~7.8.0"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
@@ -2,10 +2,10 @@ import { MatDialogRef, MatDialog } from '@angular/material/dialog';
|
|
|
2
2
|
import * as _angular_core from '@angular/core';
|
|
3
3
|
import { EventEmitter, OnInit, WritableSignal, InjectionToken, Provider, OnChanges, OnDestroy, Type, SimpleChanges } from '@angular/core';
|
|
4
4
|
import * as _praxisui_core from '@praxisui/core';
|
|
5
|
-
import { ComponentDocMeta, ComponentMetadataRegistry, PraxisI18nService,
|
|
5
|
+
import { ComponentDocMeta, WidgetShellConfig, ComponentMetadataRegistry, PraxisI18nService, SettingsEditorSection, EndpointRef, PraxisTextValue, WidgetShellPresetCategory, CompositionLink, WidgetShellAction, WidgetPageAuthoringCapabilities, PortContract, ComponentPortPathSegment, LinkIntent, WidgetPageDefinition, SurfaceOpenActionEditorComponent, TransformKind, TransformPipeline, SurfaceOpenPayload, WidgetPageDeviceKind, SettingsValueProvider as SettingsValueProvider$1, WidgetShellPresetDefinition, WidgetPageGroupingDefinition, BUILTIN_PAGE_LAYOUT_PRESETS, BUILTIN_PAGE_THEME_PRESETS, PageIdentity, WidgetStateNode, WidgetDerivedStateNode, AiCapability, AiCapabilityCategory, AiCapabilityCatalog, AiValueKind, WidgetPageCanvasLayout, WidgetPageDeviceLayouts, WidgetPageSlotAssignments, WidgetPageStateInput, WidgetInstance, TransformOutputHint, TransformSemanticKind, ConfigAuthoringSource, DomainKnowledgeChangeSetRequest, DomainKnowledgeChangeSet, DomainKnowledgeChangeSetTimelineResponse, DomainKnowledgeChangeSetFilters, DomainKnowledgeValidationResponse, DomainKnowledgeStatusTransitionRequest, DomainRuleIntakeRequest, DomainRuleIntakeResponse, DomainRuleDefinitionRequest, DomainRuleDefinition, DomainRuleSimulationRequest, DomainRuleSimulationResponse, DomainRuleStatusTransitionRequest, DomainRulePublicationRequest, DomainRulePublicationResponse, DomainRuleMaterializationFilters, DomainRuleMaterialization, DomainRuleTimelineResponse, PraxisRuntimeComponentObservationEnvelope, ComponentContextPack, ComponentAuthoringManifest, DiagnosticRecord, NestedPortCatalogRegistry, CompositionValidatorService, ApiUrlEntry, DynamicWidgetPageComponent, ConfigDocument, WidgetEventEnvelope, ObservabilityAgenticTurnMetrics, SettingsPanelBridge, ObservabilityAgenticTurnMetricBucket, RichTimelineItem } from '@praxisui/core';
|
|
6
6
|
import * as rxjs from 'rxjs';
|
|
7
7
|
import { BehaviorSubject, Observable } from 'rxjs';
|
|
8
|
-
import { FormGroup, FormControl, FormArray } from '@angular/forms';
|
|
8
|
+
import { FormGroup, FormControl, FormArray, AbstractControl } from '@angular/forms';
|
|
9
9
|
import { SettingsValueProvider } from '@praxisui/settings-panel';
|
|
10
10
|
import { AgenticAuthoringAttachmentSummaryContract, AgenticAuthoringCandidateContract, AiJsonValue, AgenticAuthoringComponentCapabilitiesResultContract, AgenticAuthoringComponentCapabilityCatalogContract, AgenticAuthoringComponentCapabilityContract, AgenticAuthoringComponentFieldAliasContract, AgenticAuthoringComponentCapabilityExampleContract, AgenticAuthoringConversationMessageContract, AgenticAuthoringIntentResolutionRequestContract, AiJsonObject, AgenticAuthoringQuickReplyContract, AgenticAuthoringPendingClarificationContract, AiContextHintsContract, AgenticAuthoringSemanticDecisionContract, AgenticAuthoringPlanRequestContract, AgenticAuthoringResourceCandidatesRequestContract, AgenticAuthoringResourceCandidatesResultContract, AgenticAuthoringTurnStreamContextHintsContract, AgenticAuthoringTurnStreamEnvelopeContract, AgenticAuthoringTurnStreamStartResponseContract, PraxisAssistantVoiceInputMode, PraxisAssistantShellMessage, PraxisAssistantShellQuickReply, PraxisAssistantShellAttachment, PraxisAssistantShellLayout, PraxisAssistantSessionSnapshot, PraxisAssistantShellLabels, PraxisAssistantRecommendedIntent, PraxisAssistantShellAction, PraxisAssistantShellState, PraxisAssistantShellContextItem } from '@praxisui/ai';
|
|
11
11
|
import * as _praxisui_page_builder from '@praxisui/page-builder';
|
|
@@ -70,6 +70,7 @@ interface ComponentPaletteSelection {
|
|
|
70
70
|
componentId: string;
|
|
71
71
|
presetId?: string;
|
|
72
72
|
inputs?: Record<string, unknown>;
|
|
73
|
+
shell?: WidgetShellConfig;
|
|
73
74
|
}
|
|
74
75
|
interface ComponentPaletteData {
|
|
75
76
|
title?: string;
|
|
@@ -88,6 +89,7 @@ interface ComponentPaletteEntry {
|
|
|
88
89
|
badges: ComponentPaletteBadge[];
|
|
89
90
|
searchText: string;
|
|
90
91
|
inputs?: Record<string, unknown>;
|
|
92
|
+
shell?: WidgetShellConfig;
|
|
91
93
|
}
|
|
92
94
|
interface ComponentPaletteBadge {
|
|
93
95
|
label: string;
|
|
@@ -127,6 +129,9 @@ declare class ComponentPaletteDialogComponent implements OnInit {
|
|
|
127
129
|
}
|
|
128
130
|
|
|
129
131
|
type ShellInputs = {
|
|
132
|
+
/** Canonical page links supplied only for inspection; never persisted by this editor. */
|
|
133
|
+
compositionLinks?: readonly CompositionLink[];
|
|
134
|
+
getActionAvailability?: (action: WidgetShellAction) => Pick<WidgetShellAction, 'disabled' | 'tooltip'> | undefined;
|
|
130
135
|
shell?: WidgetShellConfig | null;
|
|
131
136
|
widgetKey?: string;
|
|
132
137
|
widgetType?: string;
|
|
@@ -161,10 +166,32 @@ type SetInputPreset = {
|
|
|
161
166
|
icon?: string;
|
|
162
167
|
values: SetInputValueOption[];
|
|
163
168
|
};
|
|
169
|
+
type ShellPresetOption = {
|
|
170
|
+
id: string;
|
|
171
|
+
label: PraxisTextValue;
|
|
172
|
+
description: PraxisTextValue;
|
|
173
|
+
category: WidgetShellPresetCategory | 'custom';
|
|
174
|
+
appearance?: WidgetShellConfig['appearance'];
|
|
175
|
+
};
|
|
164
176
|
declare class WidgetShellEditorComponent implements SettingsValueProvider {
|
|
165
177
|
private registry?;
|
|
178
|
+
readonly sectionsHosted: boolean;
|
|
179
|
+
readonly topicPanelId: string;
|
|
180
|
+
readonly selectedTopic: _angular_core.WritableSignal<string>;
|
|
181
|
+
editorTopics(): Array<{
|
|
182
|
+
id: string;
|
|
183
|
+
label: string;
|
|
184
|
+
}>;
|
|
185
|
+
currentTopic(): string;
|
|
186
|
+
getSettingsSections(): readonly SettingsEditorSection[];
|
|
187
|
+
selectSettingsSection(id: string): void;
|
|
188
|
+
endpointLabel(endpoint: EndpointRef): string;
|
|
189
|
+
currentTopicLabel(): string;
|
|
166
190
|
private readonly i18n;
|
|
167
191
|
menuPlacementLabel(): string;
|
|
192
|
+
shellText(key: string): string;
|
|
193
|
+
pagePresetLabel(): string;
|
|
194
|
+
hasAppearanceErrors(): boolean;
|
|
168
195
|
appearanceError(): string;
|
|
169
196
|
stickyHeaderLabel(): string;
|
|
170
197
|
form: FormGroup<{
|
|
@@ -173,6 +200,10 @@ declare class WidgetShellEditorComponent implements SettingsValueProvider {
|
|
|
173
200
|
applyToAll: FormControl<boolean>;
|
|
174
201
|
title: FormControl<string>;
|
|
175
202
|
subtitle: FormControl<string>;
|
|
203
|
+
avatarEnabled: FormControl<boolean>;
|
|
204
|
+
avatarImage: FormControl<string>;
|
|
205
|
+
avatarName: FormControl<string>;
|
|
206
|
+
avatarInitials: FormControl<string>;
|
|
176
207
|
icon: FormControl<string>;
|
|
177
208
|
showHeader: FormControl<"auto" | "true" | "false">;
|
|
178
209
|
stickyHeader: FormControl<boolean>;
|
|
@@ -205,35 +236,42 @@ declare class WidgetShellEditorComponent implements SettingsValueProvider {
|
|
|
205
236
|
private initialTitle;
|
|
206
237
|
private initialSubtitle;
|
|
207
238
|
private readonly actionCopySources;
|
|
208
|
-
presetOptions:
|
|
209
|
-
id: string;
|
|
210
|
-
label: string;
|
|
211
|
-
}>;
|
|
239
|
+
presetOptions: ShellPresetOption[];
|
|
212
240
|
private presets;
|
|
213
241
|
availableActions: AvailableShellAction[];
|
|
242
|
+
readonly compositionLinks: readonly CompositionLink[];
|
|
243
|
+
private readonly getActionAvailability?;
|
|
214
244
|
actionQuery: FormControl<string>;
|
|
215
245
|
showScopeShell: boolean;
|
|
216
246
|
showScopeAny: boolean;
|
|
217
247
|
showScopeToolbar: boolean;
|
|
248
|
+
showNotificationActions: boolean;
|
|
218
249
|
showScopeContext: boolean;
|
|
219
250
|
setInputPresets: SetInputPreset[];
|
|
220
251
|
setInputTarget: FormControl<string>;
|
|
221
252
|
setInputValue: FormControl<any>;
|
|
222
|
-
previewCollapsed: boolean;
|
|
223
|
-
previewExpanded: boolean;
|
|
224
253
|
pagePreset: string | null;
|
|
225
254
|
private readonly authoringCapabilities;
|
|
226
255
|
constructor(data?: ShellInputs | null, registry?: (ComponentMetadataRegistry | null) | undefined);
|
|
227
256
|
get actions(): FormArray<FormGroup>;
|
|
257
|
+
selectPreset(id: string): void;
|
|
258
|
+
presetLabel(preset: ShellPresetOption): string;
|
|
259
|
+
presetDescription(preset: ShellPresetOption): string;
|
|
260
|
+
presetTitle(): string;
|
|
261
|
+
noPresetLabel(): string;
|
|
262
|
+
noPresetDescription(): string;
|
|
228
263
|
get hasAvailableActions(): boolean;
|
|
229
264
|
canEditShellIdentity(): boolean;
|
|
230
265
|
canEditShellAppearance(): boolean;
|
|
231
266
|
canEditShellActions(): boolean;
|
|
232
267
|
canPromotePagePreset(): boolean;
|
|
268
|
+
actionIdIssue(group: AbstractControl): 'required' | 'duplicate' | 'reserved' | null;
|
|
269
|
+
private validateActionIds;
|
|
233
270
|
addAction(seed?: Partial<WidgetShellAction>): void;
|
|
234
271
|
removeAction(index: number): void;
|
|
235
272
|
getSettingsValue(): ShellEditorResult;
|
|
236
273
|
onSave(): ShellEditorResult;
|
|
274
|
+
acceptAppliedValue(value: unknown): void;
|
|
237
275
|
reset(): void;
|
|
238
276
|
private applyShell;
|
|
239
277
|
private loadAvailableActions;
|
|
@@ -243,23 +281,22 @@ declare class WidgetShellEditorComponent implements SettingsValueProvider {
|
|
|
243
281
|
private buildAppearance;
|
|
244
282
|
private cloneAppearance;
|
|
245
283
|
private isShellCapabilityEnabled;
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
private
|
|
284
|
+
private readonly appearanceControls;
|
|
285
|
+
appearanceOverrideCount(): number;
|
|
286
|
+
clearAppearanceOverrides(): void;
|
|
287
|
+
private previewCacheKey;
|
|
288
|
+
private previewCache?;
|
|
289
|
+
previewShell(): WidgetShellConfig;
|
|
251
290
|
private mergeAppearance;
|
|
252
|
-
togglePreviewCollapse(): void;
|
|
253
|
-
togglePreviewExpand(): void;
|
|
254
|
-
previewHeaderActions(): WidgetShellAction[];
|
|
255
|
-
previewOverflowCount(): number;
|
|
256
|
-
previewWindowActions(): WidgetShellAction[];
|
|
257
291
|
private normalizeAction;
|
|
258
292
|
private editableText;
|
|
259
293
|
private preserveTextDescriptor;
|
|
260
294
|
private tryParsePayload;
|
|
261
295
|
private snapshotValue;
|
|
296
|
+
enabledActionScopeCount(): number;
|
|
262
297
|
filteredAvailableActions(): AvailableShellAction[];
|
|
298
|
+
actionUnavailable(action: AvailableShellAction): boolean;
|
|
299
|
+
actionAvailabilityText(action: AvailableShellAction): string;
|
|
263
300
|
isActionSelected(action: AvailableShellAction): boolean;
|
|
264
301
|
toggleAvailableAction(action: AvailableShellAction): void;
|
|
265
302
|
scopeLabel(scope?: string): string;
|
|
@@ -270,7 +307,6 @@ declare class WidgetShellEditorComponent implements SettingsValueProvider {
|
|
|
270
307
|
currentSetInputValues(): SetInputValueOption[];
|
|
271
308
|
addSetInputAction(): void;
|
|
272
309
|
private findActionIndex;
|
|
273
|
-
private previewActions;
|
|
274
310
|
private loadSetInputPresets;
|
|
275
311
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WidgetShellEditorComponent, [{ optional: true; }, { optional: true; }]>;
|
|
276
312
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WidgetShellEditorComponent, "praxis-widget-shell-editor", never, {}, {}, never, never, true, never>;
|
|
@@ -352,6 +388,41 @@ interface ConnectionEditorTraceStep {
|
|
|
352
388
|
blocked: boolean;
|
|
353
389
|
}
|
|
354
390
|
|
|
391
|
+
interface ConnectionEditorPoint {
|
|
392
|
+
x: number;
|
|
393
|
+
y: number;
|
|
394
|
+
}
|
|
395
|
+
interface ConnectionEditorSegmentGeometry {
|
|
396
|
+
port: ConnectionEditorPort;
|
|
397
|
+
path: string;
|
|
398
|
+
anchor: ConnectionEditorPoint;
|
|
399
|
+
label: ConnectionEditorPoint;
|
|
400
|
+
icon: ConnectionEditorPoint;
|
|
401
|
+
normalAngle: number;
|
|
402
|
+
color: string;
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
type CaptionSide = 'top' | 'right' | 'bottom' | 'left';
|
|
406
|
+
interface ConnectionEditorCaption {
|
|
407
|
+
side: CaptionSide;
|
|
408
|
+
x: number;
|
|
409
|
+
y: number;
|
|
410
|
+
width: number;
|
|
411
|
+
height: number;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
interface ConnectionEditorWireRoute {
|
|
415
|
+
path: string;
|
|
416
|
+
source: ConnectionEditorPoint;
|
|
417
|
+
sourceStub: ConnectionEditorPoint;
|
|
418
|
+
sourceControl: ConnectionEditorPoint;
|
|
419
|
+
targetControl: ConnectionEditorPoint;
|
|
420
|
+
targetStub: ConnectionEditorPoint;
|
|
421
|
+
target: ConnectionEditorPoint;
|
|
422
|
+
midpoint: ConnectionEditorPoint;
|
|
423
|
+
offset: number;
|
|
424
|
+
}
|
|
425
|
+
|
|
355
426
|
interface ConnectionsViewerNode {
|
|
356
427
|
widgetId: string;
|
|
357
428
|
componentType: string;
|
|
@@ -389,20 +460,6 @@ interface ConnectionsViewerModel {
|
|
|
389
460
|
diagnosticLinks: number;
|
|
390
461
|
}
|
|
391
462
|
|
|
392
|
-
interface ConnectionEditorPoint {
|
|
393
|
-
x: number;
|
|
394
|
-
y: number;
|
|
395
|
-
}
|
|
396
|
-
interface ConnectionEditorSegmentGeometry {
|
|
397
|
-
port: ConnectionEditorPort;
|
|
398
|
-
path: string;
|
|
399
|
-
anchor: ConnectionEditorPoint;
|
|
400
|
-
label: ConnectionEditorPoint;
|
|
401
|
-
icon: ConnectionEditorPoint;
|
|
402
|
-
normalAngle: number;
|
|
403
|
-
color: string;
|
|
404
|
-
}
|
|
405
|
-
|
|
406
463
|
type ConnectionEditorPortOrderState = Record<string, string[]>;
|
|
407
464
|
|
|
408
465
|
type ConnectionsEditorFilter = 'all' | 'condition' | 'transform' | 'policy' | 'diagnostic';
|
|
@@ -477,9 +534,12 @@ interface ConnectionEditorDockTabDefinition {
|
|
|
477
534
|
}
|
|
478
535
|
declare class ConnectionEditorComponent {
|
|
479
536
|
readonly stateNodeId = "__page_state__";
|
|
537
|
+
protected readonly minZoom = 0.2;
|
|
538
|
+
protected readonly maxZoom = 1.8;
|
|
480
539
|
readonly nodeViewBox = "0 0 168 168";
|
|
481
540
|
readonly canvasViewBox = "0 0 900 540";
|
|
482
541
|
readonly nodeHaloPaths: string[];
|
|
542
|
+
private readonly injector;
|
|
483
543
|
private readonly i18n;
|
|
484
544
|
private readonly hostElement;
|
|
485
545
|
private readonly globalActionCatalog;
|
|
@@ -506,6 +566,7 @@ declare class ConnectionEditorComponent {
|
|
|
506
566
|
readonly draftTargets: _angular_core.Signal<ConnectionEditorPort[]>;
|
|
507
567
|
readonly draftDiagnostics: _angular_core.Signal<_praxisui_core.DiagnosticRecord[]>;
|
|
508
568
|
readonly draftDuplicate: _angular_core.Signal<boolean>;
|
|
569
|
+
readonly draftExistingRoute: _angular_core.Signal<ConnectionEditorConnection | null>;
|
|
509
570
|
readonly canApplyDraft: _angular_core.Signal<boolean>;
|
|
510
571
|
readonly activeMode: _angular_core.WritableSignal<ConnectionEditorFlowMode>;
|
|
511
572
|
readonly activeFilter: _angular_core.WritableSignal<ConnectionsEditorFilter>;
|
|
@@ -517,12 +578,18 @@ declare class ConnectionEditorComponent {
|
|
|
517
578
|
readonly expandedNodeId: _angular_core.WritableSignal<string | null>;
|
|
518
579
|
readonly activeDockTab: _angular_core.WritableSignal<ConnectionEditorDockTab>;
|
|
519
580
|
readonly dockCollapsed: _angular_core.WritableSignal<boolean>;
|
|
581
|
+
readonly inspectorOpen: _angular_core.WritableSignal<boolean>;
|
|
582
|
+
readonly connectionIntents: _angular_core.Signal<_praxisui_core.LinkIntent[]>;
|
|
520
583
|
readonly traceEnabled: _angular_core.WritableSignal<boolean>;
|
|
521
584
|
readonly traceStepIndex: _angular_core.WritableSignal<number>;
|
|
522
585
|
readonly traceSourceNodeId: _angular_core.WritableSignal<string | null>;
|
|
586
|
+
readonly traceSourceEndpoint: _angular_core.WritableSignal<EndpointRef | null>;
|
|
523
587
|
readonly selectedPort: _angular_core.WritableSignal<ConnectionEditorPort | null>;
|
|
524
588
|
readonly hoveredNodeId: _angular_core.WritableSignal<string | null>;
|
|
525
589
|
readonly visualDensity: _angular_core.WritableSignal<ConnectionEditorVisualDensity>;
|
|
590
|
+
private readonly invalidSurfaceDrafts;
|
|
591
|
+
readonly surfaceDraftInvalid: _angular_core.WritableSignal<boolean>;
|
|
592
|
+
onSurfaceDraftValidity(source: SurfaceOpenActionEditorComponent, connection: ConnectionEditorConnection, valid: boolean): void;
|
|
526
593
|
readonly globalActionPayloadError: _angular_core.WritableSignal<string | null>;
|
|
527
594
|
readonly pendingSegmentState: _angular_core.WritableSignal<PendingSegmentState | null>;
|
|
528
595
|
readonly dragState: _angular_core.WritableSignal<DragState | null>;
|
|
@@ -531,6 +598,7 @@ declare class ConnectionEditorComponent {
|
|
|
531
598
|
readonly panState: _angular_core.WritableSignal<PanState | null>;
|
|
532
599
|
readonly minimapPanState: _angular_core.WritableSignal<MinimapPanState | null>;
|
|
533
600
|
readonly rotationState: _angular_core.WritableSignal<RotationState | null>;
|
|
601
|
+
readonly captionLayoutScale: _angular_core.WritableSignal<number>;
|
|
534
602
|
readonly viewport: _angular_core.WritableSignal<ViewportState>;
|
|
535
603
|
readonly portOrder: _angular_core.WritableSignal<ConnectionEditorPortOrderState>;
|
|
536
604
|
readonly nodeRotations: _angular_core.WritableSignal<Record<string, number>>;
|
|
@@ -605,9 +673,14 @@ declare class ConnectionEditorComponent {
|
|
|
605
673
|
readonly connectedNodeIds: _angular_core.Signal<Set<string>>;
|
|
606
674
|
readonly connectedPortIds: _angular_core.Signal<Set<string>>;
|
|
607
675
|
readonly editorNodes: _angular_core.Signal<ConnectionEditorNode[]>;
|
|
676
|
+
readonly nodeCaptions: _angular_core.Signal<Map<string, ConnectionEditorCaption>>;
|
|
677
|
+
protected readonly captionRenderRatio: _angular_core.Signal<number>;
|
|
678
|
+
protected readonly renderedNodeCaptions: _angular_core.Signal<Map<string, ConnectionEditorCaption>>;
|
|
679
|
+
readonly wireRoutes: _angular_core.Signal<Map<string, ConnectionEditorWireRoute | null>>;
|
|
608
680
|
readonly navigationBounds: _angular_core.Signal<ConnectionEditorBounds>;
|
|
609
681
|
readonly minimapViewBox: _angular_core.Signal<string>;
|
|
610
682
|
readonly editorConnections: _angular_core.Signal<ConnectionEditorConnection[]>;
|
|
683
|
+
readonly dockConnections: _angular_core.Signal<ConnectionEditorConnection[]>;
|
|
611
684
|
readonly canvasEditorConnections: _angular_core.Signal<ConnectionEditorConnection[]>;
|
|
612
685
|
readonly visibleEditorConnections: _angular_core.Signal<ConnectionEditorConnection[]>;
|
|
613
686
|
readonly modeMatchedConnectionIds: _angular_core.Signal<Set<string>>;
|
|
@@ -616,14 +689,38 @@ declare class ConnectionEditorComponent {
|
|
|
616
689
|
readonly smartSuggestions: _angular_core.Signal<ConnectionEditorSuggestion[]>;
|
|
617
690
|
readonly recommendedMasterDetailSuggestion: _angular_core.Signal<ConnectionEditorSuggestion | null>;
|
|
618
691
|
readonly masterDetailReadinessDiagnostic: _angular_core.Signal<string | null>;
|
|
692
|
+
readonly compactStage: _angular_core.WritableSignal<boolean>;
|
|
619
693
|
readonly traceSteps: _angular_core.Signal<ConnectionEditorTraceStep[]>;
|
|
694
|
+
readonly traceConnectionSteps: _angular_core.Signal<{
|
|
695
|
+
order: number;
|
|
696
|
+
id: string;
|
|
697
|
+
connectionId: string;
|
|
698
|
+
phase: ConnectionEditorTracePhase;
|
|
699
|
+
fromLabel: string;
|
|
700
|
+
toLabel: string;
|
|
701
|
+
intent: string;
|
|
702
|
+
blocked: boolean;
|
|
703
|
+
}[]>;
|
|
704
|
+
readonly activeTraceOperations: _angular_core.Signal<ConnectionEditorTraceStep[]>;
|
|
705
|
+
readonly activeTraceSummary: _angular_core.Signal<string>;
|
|
620
706
|
readonly activeTraceStepIndex: _angular_core.Signal<number>;
|
|
621
|
-
readonly traceActiveStep: _angular_core.Signal<
|
|
707
|
+
readonly traceActiveStep: _angular_core.Signal<{
|
|
708
|
+
order: number;
|
|
709
|
+
id: string;
|
|
710
|
+
connectionId: string;
|
|
711
|
+
phase: ConnectionEditorTracePhase;
|
|
712
|
+
fromLabel: string;
|
|
713
|
+
toLabel: string;
|
|
714
|
+
intent: string;
|
|
715
|
+
blocked: boolean;
|
|
716
|
+
}>;
|
|
622
717
|
readonly tracedConnectionIds: _angular_core.Signal<Set<string>>;
|
|
623
718
|
readonly traceProgressPercent: _angular_core.Signal<number>;
|
|
624
719
|
readonly traceProgressLabel: _angular_core.Signal<string>;
|
|
625
720
|
readonly traceSourceNodeIds: _angular_core.Signal<Set<string>>;
|
|
626
721
|
readonly traceReactingNodeIds: _angular_core.Signal<Set<string>>;
|
|
722
|
+
private readonly syncTracePresentation;
|
|
723
|
+
private revealInScrollRegion;
|
|
627
724
|
readonly focusedConnectionNodeIds: _angular_core.Signal<Set<string>>;
|
|
628
725
|
readonly focusedConnectionPortIds: _angular_core.Signal<Set<string>>;
|
|
629
726
|
readonly diagnosticConnectionIds: _angular_core.Signal<Set<string>>;
|
|
@@ -634,6 +731,7 @@ declare class ConnectionEditorComponent {
|
|
|
634
731
|
readonly canvasInteractionActive: _angular_core.Signal<boolean>;
|
|
635
732
|
readonly visibleConnectionTooltip: _angular_core.Signal<ConnectionEditorConnection | null>;
|
|
636
733
|
readonly visibleExpandedNodeId: _angular_core.Signal<string | null>;
|
|
734
|
+
readonly expandedEditorNode: _angular_core.Signal<ConnectionEditorNode | null>;
|
|
637
735
|
readonly canUndo: _angular_core.Signal<boolean>;
|
|
638
736
|
readonly canRedo: _angular_core.Signal<boolean>;
|
|
639
737
|
readonly hasVisualPortOrder: _angular_core.Signal<boolean>;
|
|
@@ -662,11 +760,19 @@ declare class ConnectionEditorComponent {
|
|
|
662
760
|
width: number;
|
|
663
761
|
height: number;
|
|
664
762
|
}>;
|
|
665
|
-
|
|
763
|
+
private inspectorInvoker;
|
|
764
|
+
private portInvoker;
|
|
765
|
+
private inspectorPortContext;
|
|
766
|
+
selectNode(nodeId: string, event?: Event): void;
|
|
666
767
|
selectSegment(port: ConnectionEditorPort, event: MouseEvent): void;
|
|
667
768
|
selectWidget(node: ConnectionsViewerNode): void;
|
|
668
769
|
selectLink(edge: ConnectionsViewerEdge): void;
|
|
669
|
-
|
|
770
|
+
inspectPortConnection(connection: ConnectionEditorConnection, event: Event): void;
|
|
771
|
+
protected toggleInspector(event: Event): void;
|
|
772
|
+
private rememberInspectorPortContext;
|
|
773
|
+
closeInspector(): void;
|
|
774
|
+
selectConnection(connection: ConnectionEditorConnection, event?: Event): void;
|
|
775
|
+
private focusInspectorAfterRender;
|
|
670
776
|
jumpToConnection(connection: ConnectionEditorConnection, event: Event): void;
|
|
671
777
|
previewConnection(connection: ConnectionEditorConnection): void;
|
|
672
778
|
clearPreviewConnection(connection: ConnectionEditorConnection): void;
|
|
@@ -679,6 +785,7 @@ declare class ConnectionEditorComponent {
|
|
|
679
785
|
setDockTab(tab: ConnectionEditorDockTab): void;
|
|
680
786
|
handleDockTabKeydown(event: KeyboardEvent, tab: ConnectionEditorDockTab): void;
|
|
681
787
|
toggleDock(): void;
|
|
788
|
+
followConnectionPath(connection: ConnectionEditorConnection, event: Event): void;
|
|
682
789
|
toggleTrace(event: Event): void;
|
|
683
790
|
selectTraceSource(nodeId: string | null, event: Event): void;
|
|
684
791
|
moveTraceStep(delta: -1 | 1, event: Event): void;
|
|
@@ -725,6 +832,8 @@ declare class ConnectionEditorComponent {
|
|
|
725
832
|
enableTransform(connection: ConnectionEditorConnection, event: Event): void;
|
|
726
833
|
addTransformStep(connection: ConnectionEditorConnection, kind: TransformKind, event: Event): void;
|
|
727
834
|
removeTransformStep(connection: ConnectionEditorConnection, index: number, event: Event): void;
|
|
835
|
+
formatStepOption(step: TransformPipeline['steps'][number], key: string): string;
|
|
836
|
+
updateFormatStep(connection: ConnectionEditorConnection, index: number, key: string, value: string): void;
|
|
728
837
|
clearTransform(connection: ConnectionEditorConnection, event: Event): void;
|
|
729
838
|
applyConditionPreset(connection: ConnectionEditorConnection, preset: ConnectionEditorConditionPreset, event: Event): void;
|
|
730
839
|
clearCondition(connection: ConnectionEditorConnection, event: Event): void;
|
|
@@ -739,6 +848,9 @@ declare class ConnectionEditorComponent {
|
|
|
739
848
|
nestedPortPathText(port: ConnectionEditorPort): string;
|
|
740
849
|
portDescription(port: ConnectionEditorPort): string;
|
|
741
850
|
segmentKindGlyph(kind: ConnectionEditorPortKind): string;
|
|
851
|
+
nodeHue(id: string): number;
|
|
852
|
+
compactConnections(nodeId: string): ConnectionEditorConnection[];
|
|
853
|
+
connectionsForPort(port: ConnectionEditorPort): ConnectionEditorConnection[];
|
|
742
854
|
nodeIcon(node: ConnectionEditorNode): string;
|
|
743
855
|
dockTabLabel(tab: ConnectionEditorDockTabDefinition): string;
|
|
744
856
|
dockTabId(tab: ConnectionEditorDockTab): string;
|
|
@@ -758,6 +870,15 @@ declare class ConnectionEditorComponent {
|
|
|
758
870
|
isModeDimmedPort(port: ConnectionEditorPort): boolean;
|
|
759
871
|
isGuidedQuietNode(node: ConnectionEditorNode): boolean;
|
|
760
872
|
areNodePortsVisible(node: ConnectionEditorNode): boolean;
|
|
873
|
+
closePortDetails(): void;
|
|
874
|
+
private focusInvoker;
|
|
875
|
+
private restoreInspectionFocus;
|
|
876
|
+
private isRestorableInspectionTarget;
|
|
877
|
+
beginConnectionFromPort(port: ConnectionEditorPort, event: Event): void;
|
|
878
|
+
wireTerminalPath(connection: ConnectionEditorConnection): string;
|
|
879
|
+
portPanelWidth(): number;
|
|
880
|
+
portPanelHeight(): number;
|
|
881
|
+
portPanelPosition(node: ConnectionEditorNode): ConnectionEditorPoint;
|
|
761
882
|
isGuidedPortVisible(port: ConnectionEditorPort): boolean;
|
|
762
883
|
isGuidedSegmentLabelVisible(port: ConnectionEditorPort): boolean;
|
|
763
884
|
clearHoveredNode(nodeId: string): void;
|
|
@@ -784,7 +905,13 @@ declare class ConnectionEditorComponent {
|
|
|
784
905
|
connectionCreatedFeedback(connection: ConnectionEditorConnection): string;
|
|
785
906
|
portAriaLabel(node: ConnectionEditorNode, port: ConnectionEditorPort, role: 'input' | 'output' | 'state'): string;
|
|
786
907
|
transformKindText(kind: TransformKind): string;
|
|
787
|
-
|
|
908
|
+
businessPortLabel(port: ConnectionEditorPort): string;
|
|
909
|
+
authoredStateName(port: ConnectionEditorPort): string;
|
|
910
|
+
stateNamingPorts(connection: ConnectionEditorConnection): ConnectionEditorPort[];
|
|
911
|
+
applyStateName(port: ConnectionEditorPort, name: string): void;
|
|
912
|
+
businessPortDescription(port: ConnectionEditorPort | null | undefined): string;
|
|
913
|
+
private editorialPort;
|
|
914
|
+
readableEndpointLabel(connection: ConnectionEditorConnection, side: 'from' | 'to'): string;
|
|
788
915
|
private isSelectionToDetailConnection;
|
|
789
916
|
private isSuggestedMasterDetail;
|
|
790
917
|
private isCanonicalSelectionToDetailConnection;
|
|
@@ -809,6 +936,7 @@ declare class ConnectionEditorComponent {
|
|
|
809
936
|
} | null;
|
|
810
937
|
wireLabelTransform(connection: ConnectionEditorConnection, endpoint: 'source' | 'target'): string;
|
|
811
938
|
minimapWirePath(connection: ConnectionEditorConnection): string;
|
|
939
|
+
connectionTooltipWidth(): number;
|
|
812
940
|
connectionTooltipPosition(connection: ConnectionEditorConnection): ConnectionEditorTooltipPosition;
|
|
813
941
|
connectionTooltipCalloutX(connection: ConnectionEditorConnection): number;
|
|
814
942
|
connectionTooltipKind(connection: ConnectionEditorConnection): string;
|
|
@@ -840,6 +968,7 @@ declare class ConnectionEditorComponent {
|
|
|
840
968
|
cancelDraft(): void;
|
|
841
969
|
private clearDraft;
|
|
842
970
|
closeEditor(): void;
|
|
971
|
+
nodeCaptionHeight(): number;
|
|
843
972
|
nodeCaptionWidth(): number;
|
|
844
973
|
togglePresentation(): void;
|
|
845
974
|
tx(key: string, fallback: string): string;
|
|
@@ -888,6 +1017,7 @@ declare class ConnectionEditorComponent {
|
|
|
888
1017
|
private fitViewportState;
|
|
889
1018
|
private clampViewport;
|
|
890
1019
|
private connectionEditorNavigationBounds;
|
|
1020
|
+
private needsCompactStage;
|
|
891
1021
|
private stageClientSize;
|
|
892
1022
|
private stageRect;
|
|
893
1023
|
private shouldIgnorePanTarget;
|
|
@@ -953,6 +1083,7 @@ type DeviceVariantForm = FormGroup<{
|
|
|
953
1083
|
columns: FormControl<number | null>;
|
|
954
1084
|
rowUnit: FormControl<string>;
|
|
955
1085
|
gap: FormControl<string>;
|
|
1086
|
+
paddingInline: FormControl<string>;
|
|
956
1087
|
autoRows: FormControl<'fixed' | 'content' | ''>;
|
|
957
1088
|
groupingOverrides: FormControl<string>;
|
|
958
1089
|
widgetOverrides: FormControl<string>;
|
|
@@ -988,14 +1119,12 @@ declare class DynamicPageConfigEditorComponent implements OnInit, SettingsValueP
|
|
|
988
1119
|
pageChange: EventEmitter<WidgetPageDefinition>;
|
|
989
1120
|
readonly layoutPresetEntries: LayoutPresetEntry[];
|
|
990
1121
|
readonly themePresetEntries: ThemePresetEntry[];
|
|
991
|
-
readonly shellPresetEntries:
|
|
992
|
-
id: string;
|
|
993
|
-
label: string;
|
|
994
|
-
}[];
|
|
1122
|
+
readonly shellPresetEntries: readonly WidgetShellPresetDefinition[];
|
|
995
1123
|
readonly deviceKeys: DeviceKey[];
|
|
996
1124
|
readonly deviceLabels: Record<DeviceKey, string>;
|
|
997
1125
|
readonly canvasColumnsControl: FormControl<number>;
|
|
998
1126
|
readonly canvasRowUnitControl: FormControl<string>;
|
|
1127
|
+
readonly paddingInlineControl: FormControl<string>;
|
|
999
1128
|
readonly canvasGapControl: FormControl<string>;
|
|
1000
1129
|
readonly canvasAutoRowsControl: FormControl<"content" | "fixed">;
|
|
1001
1130
|
readonly layoutPresetControl: FormControl<string>;
|
|
@@ -1063,6 +1192,7 @@ declare class DynamicPageConfigEditorComponent implements OnInit, SettingsValueP
|
|
|
1063
1192
|
inheritedThemeHelp(theme: ThemePresetEntry): string;
|
|
1064
1193
|
groupLabel(index: number): string;
|
|
1065
1194
|
tx(key: string, fallback: string): string;
|
|
1195
|
+
shellPresetLabel(preset: WidgetShellPresetDefinition): string;
|
|
1066
1196
|
limitsTargetLabel(index: number): string;
|
|
1067
1197
|
limitFieldError(control: FormControl<number | null>): string;
|
|
1068
1198
|
private draftFingerprint;
|
|
@@ -1189,6 +1319,7 @@ declare class PageConfigEditorComponent implements SettingsValueProvider$1 {
|
|
|
1189
1319
|
rowHeight: FormControl<number | null>;
|
|
1190
1320
|
gap: FormControl<number | null>;
|
|
1191
1321
|
}>;
|
|
1322
|
+
readonly paddingInlineControl: FormControl<string>;
|
|
1192
1323
|
readonly contextControl: FormControl<string>;
|
|
1193
1324
|
readonly shellPresetControl: FormControl<string>;
|
|
1194
1325
|
readonly layoutPresetControl: FormControl<string>;
|
|
@@ -1203,6 +1334,7 @@ declare class PageConfigEditorComponent implements SettingsValueProvider$1 {
|
|
|
1203
1334
|
orientation: FormControl<string>;
|
|
1204
1335
|
columns: FormControl<number | null>;
|
|
1205
1336
|
gap: FormControl<string>;
|
|
1337
|
+
paddingInline: FormControl<string>;
|
|
1206
1338
|
breakpointsJson: FormControl<string>;
|
|
1207
1339
|
groupingOverridesJson: FormControl<string>;
|
|
1208
1340
|
widgetOverridesJson: FormControl<string>;
|
|
@@ -1211,6 +1343,7 @@ declare class PageConfigEditorComponent implements SettingsValueProvider$1 {
|
|
|
1211
1343
|
orientation: FormControl<string>;
|
|
1212
1344
|
columns: FormControl<number | null>;
|
|
1213
1345
|
gap: FormControl<string>;
|
|
1346
|
+
paddingInline: FormControl<string>;
|
|
1214
1347
|
breakpointsJson: FormControl<string>;
|
|
1215
1348
|
groupingOverridesJson: FormControl<string>;
|
|
1216
1349
|
widgetOverridesJson: FormControl<string>;
|
|
@@ -1219,6 +1352,7 @@ declare class PageConfigEditorComponent implements SettingsValueProvider$1 {
|
|
|
1219
1352
|
orientation: FormControl<string>;
|
|
1220
1353
|
columns: FormControl<number | null>;
|
|
1221
1354
|
gap: FormControl<string>;
|
|
1355
|
+
paddingInline: FormControl<string>;
|
|
1222
1356
|
breakpointsJson: FormControl<string>;
|
|
1223
1357
|
groupingOverridesJson: FormControl<string>;
|
|
1224
1358
|
widgetOverridesJson: FormControl<string>;
|
|
@@ -1227,10 +1361,7 @@ declare class PageConfigEditorComponent implements SettingsValueProvider$1 {
|
|
|
1227
1361
|
readonly layoutError: _angular_core.WritableSignal<string | null>;
|
|
1228
1362
|
readonly stateError: _angular_core.WritableSignal<string | null>;
|
|
1229
1363
|
readonly activeTab: _angular_core.WritableSignal<EditorTabId>;
|
|
1230
|
-
readonly shellPresetEntries:
|
|
1231
|
-
id: string;
|
|
1232
|
-
label: string;
|
|
1233
|
-
}>;
|
|
1364
|
+
readonly shellPresetEntries: readonly WidgetShellPresetDefinition[];
|
|
1234
1365
|
private lastContext;
|
|
1235
1366
|
private lastGrouping;
|
|
1236
1367
|
private lastDeviceLayouts;
|
|
@@ -1268,6 +1399,7 @@ declare class PageConfigEditorComponent implements SettingsValueProvider$1 {
|
|
|
1268
1399
|
protected get transformerOptionsHint(): string;
|
|
1269
1400
|
constructor();
|
|
1270
1401
|
protected tx(key: string, fallback: string): string;
|
|
1402
|
+
shellPresetLabel(preset: WidgetShellPresetDefinition | undefined): string;
|
|
1271
1403
|
addSchemaNode(seed?: {
|
|
1272
1404
|
path?: string;
|
|
1273
1405
|
config?: WidgetStateNode;
|
|
@@ -1991,7 +2123,13 @@ declare function preflightUiCompositionPlanResources(plan: UiCompositionPlan, re
|
|
|
1991
2123
|
declare class UiCompositionResourcePreflightService {
|
|
1992
2124
|
private readonly registry;
|
|
1993
2125
|
private readonly discovery;
|
|
2126
|
+
private readonly pageSchemas;
|
|
1994
2127
|
preflight(plan: UiCompositionPlan, registry?: ComponentMetadataRegistry): Promise<UiCompositionPlanPreflightResult>;
|
|
2128
|
+
/** Revalidates an authored page without reconstructing or trusting its original plan. */
|
|
2129
|
+
preflightPage(page: WidgetPageDefinition, registry?: ComponentMetadataRegistry, options?: {
|
|
2130
|
+
refreshSchemas?: boolean;
|
|
2131
|
+
}): Promise<UiCompositionPlanPreflightResult>;
|
|
2132
|
+
private resolvePageSchema;
|
|
1995
2133
|
private resolveSchema;
|
|
1996
2134
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UiCompositionResourcePreflightService, never>;
|
|
1997
2135
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<UiCompositionResourcePreflightService>;
|