@praxisui/page-builder 9.0.66 → 9.0.68-rc.0
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 +353 -8
- package/ai/component-registry.json +83 -35
- package/fesm2022/praxisui-page-builder.mjs +3607 -2064
- package/package.json +4 -4
- package/types/praxisui-page-builder.d.ts +198 -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.0",
|
|
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.0",
|
|
12
|
+
"@praxisui/core": "^9.0.68-rc.0",
|
|
13
|
+
"@praxisui/settings-panel": "^9.0.68-rc.0",
|
|
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,18 +166,47 @@ 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;
|
|
191
|
+
menuPlacementLabel(): string;
|
|
192
|
+
shellText(key: string): string;
|
|
193
|
+
pagePresetLabel(): string;
|
|
194
|
+
hasAppearanceErrors(): boolean;
|
|
167
195
|
appearanceError(): string;
|
|
196
|
+
stickyHeaderLabel(): string;
|
|
168
197
|
form: FormGroup<{
|
|
169
198
|
kind: FormControl<"none" | "dashboard-card">;
|
|
170
199
|
preset: FormControl<string>;
|
|
171
200
|
applyToAll: FormControl<boolean>;
|
|
172
201
|
title: FormControl<string>;
|
|
173
202
|
subtitle: FormControl<string>;
|
|
203
|
+
avatarEnabled: FormControl<boolean>;
|
|
204
|
+
avatarImage: FormControl<string>;
|
|
205
|
+
avatarName: FormControl<string>;
|
|
206
|
+
avatarInitials: FormControl<string>;
|
|
174
207
|
icon: FormControl<string>;
|
|
175
208
|
showHeader: FormControl<"auto" | "true" | "false">;
|
|
209
|
+
stickyHeader: FormControl<boolean>;
|
|
176
210
|
collapsible: FormControl<boolean>;
|
|
177
211
|
cardBg: FormControl<string>;
|
|
178
212
|
cardBorder: FormControl<string>;
|
|
@@ -202,35 +236,42 @@ declare class WidgetShellEditorComponent implements SettingsValueProvider {
|
|
|
202
236
|
private initialTitle;
|
|
203
237
|
private initialSubtitle;
|
|
204
238
|
private readonly actionCopySources;
|
|
205
|
-
presetOptions:
|
|
206
|
-
id: string;
|
|
207
|
-
label: string;
|
|
208
|
-
}>;
|
|
239
|
+
presetOptions: ShellPresetOption[];
|
|
209
240
|
private presets;
|
|
210
241
|
availableActions: AvailableShellAction[];
|
|
242
|
+
readonly compositionLinks: readonly CompositionLink[];
|
|
243
|
+
private readonly getActionAvailability?;
|
|
211
244
|
actionQuery: FormControl<string>;
|
|
212
245
|
showScopeShell: boolean;
|
|
213
246
|
showScopeAny: boolean;
|
|
214
247
|
showScopeToolbar: boolean;
|
|
248
|
+
showNotificationActions: boolean;
|
|
215
249
|
showScopeContext: boolean;
|
|
216
250
|
setInputPresets: SetInputPreset[];
|
|
217
251
|
setInputTarget: FormControl<string>;
|
|
218
252
|
setInputValue: FormControl<any>;
|
|
219
|
-
previewCollapsed: boolean;
|
|
220
|
-
previewExpanded: boolean;
|
|
221
253
|
pagePreset: string | null;
|
|
222
254
|
private readonly authoringCapabilities;
|
|
223
255
|
constructor(data?: ShellInputs | null, registry?: (ComponentMetadataRegistry | null) | undefined);
|
|
224
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;
|
|
225
263
|
get hasAvailableActions(): boolean;
|
|
226
264
|
canEditShellIdentity(): boolean;
|
|
227
265
|
canEditShellAppearance(): boolean;
|
|
228
266
|
canEditShellActions(): boolean;
|
|
229
267
|
canPromotePagePreset(): boolean;
|
|
268
|
+
actionIdIssue(group: AbstractControl): 'required' | 'duplicate' | 'reserved' | null;
|
|
269
|
+
private validateActionIds;
|
|
230
270
|
addAction(seed?: Partial<WidgetShellAction>): void;
|
|
231
271
|
removeAction(index: number): void;
|
|
232
272
|
getSettingsValue(): ShellEditorResult;
|
|
233
273
|
onSave(): ShellEditorResult;
|
|
274
|
+
acceptAppliedValue(value: unknown): void;
|
|
234
275
|
reset(): void;
|
|
235
276
|
private applyShell;
|
|
236
277
|
private loadAvailableActions;
|
|
@@ -240,23 +281,22 @@ declare class WidgetShellEditorComponent implements SettingsValueProvider {
|
|
|
240
281
|
private buildAppearance;
|
|
241
282
|
private cloneAppearance;
|
|
242
283
|
private isShellCapabilityEnabled;
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
private
|
|
284
|
+
private readonly appearanceControls;
|
|
285
|
+
appearanceOverrideCount(): number;
|
|
286
|
+
clearAppearanceOverrides(): void;
|
|
287
|
+
private previewCacheKey;
|
|
288
|
+
private previewCache?;
|
|
289
|
+
previewShell(): WidgetShellConfig;
|
|
248
290
|
private mergeAppearance;
|
|
249
|
-
togglePreviewCollapse(): void;
|
|
250
|
-
togglePreviewExpand(): void;
|
|
251
|
-
previewHeaderActions(): WidgetShellAction[];
|
|
252
|
-
previewOverflowCount(): number;
|
|
253
|
-
previewWindowActions(): WidgetShellAction[];
|
|
254
291
|
private normalizeAction;
|
|
255
292
|
private editableText;
|
|
256
293
|
private preserveTextDescriptor;
|
|
257
294
|
private tryParsePayload;
|
|
258
295
|
private snapshotValue;
|
|
296
|
+
enabledActionScopeCount(): number;
|
|
259
297
|
filteredAvailableActions(): AvailableShellAction[];
|
|
298
|
+
actionUnavailable(action: AvailableShellAction): boolean;
|
|
299
|
+
actionAvailabilityText(action: AvailableShellAction): string;
|
|
260
300
|
isActionSelected(action: AvailableShellAction): boolean;
|
|
261
301
|
toggleAvailableAction(action: AvailableShellAction): void;
|
|
262
302
|
scopeLabel(scope?: string): string;
|
|
@@ -267,7 +307,6 @@ declare class WidgetShellEditorComponent implements SettingsValueProvider {
|
|
|
267
307
|
currentSetInputValues(): SetInputValueOption[];
|
|
268
308
|
addSetInputAction(): void;
|
|
269
309
|
private findActionIndex;
|
|
270
|
-
private previewActions;
|
|
271
310
|
private loadSetInputPresets;
|
|
272
311
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WidgetShellEditorComponent, [{ optional: true; }, { optional: true; }]>;
|
|
273
312
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WidgetShellEditorComponent, "praxis-widget-shell-editor", never, {}, {}, never, never, true, never>;
|
|
@@ -280,6 +319,8 @@ interface ConnectionEditorPort {
|
|
|
280
319
|
label: string;
|
|
281
320
|
kind: ConnectionEditorPortKind;
|
|
282
321
|
endpoint: EndpointRef;
|
|
322
|
+
/** Transient registry evidence; never serialized into a composition endpoint. */
|
|
323
|
+
contract?: PortContract;
|
|
283
324
|
nestedPath?: ComponentPortPathSegment[];
|
|
284
325
|
}
|
|
285
326
|
interface ConnectionEditorNode {
|
|
@@ -347,6 +388,41 @@ interface ConnectionEditorTraceStep {
|
|
|
347
388
|
blocked: boolean;
|
|
348
389
|
}
|
|
349
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
|
+
|
|
350
426
|
interface ConnectionsViewerNode {
|
|
351
427
|
widgetId: string;
|
|
352
428
|
componentType: string;
|
|
@@ -384,20 +460,6 @@ interface ConnectionsViewerModel {
|
|
|
384
460
|
diagnosticLinks: number;
|
|
385
461
|
}
|
|
386
462
|
|
|
387
|
-
interface ConnectionEditorPoint {
|
|
388
|
-
x: number;
|
|
389
|
-
y: number;
|
|
390
|
-
}
|
|
391
|
-
interface ConnectionEditorSegmentGeometry {
|
|
392
|
-
port: ConnectionEditorPort;
|
|
393
|
-
path: string;
|
|
394
|
-
anchor: ConnectionEditorPoint;
|
|
395
|
-
label: ConnectionEditorPoint;
|
|
396
|
-
icon: ConnectionEditorPoint;
|
|
397
|
-
normalAngle: number;
|
|
398
|
-
color: string;
|
|
399
|
-
}
|
|
400
|
-
|
|
401
463
|
type ConnectionEditorPortOrderState = Record<string, string[]>;
|
|
402
464
|
|
|
403
465
|
type ConnectionsEditorFilter = 'all' | 'condition' | 'transform' | 'policy' | 'diagnostic';
|
|
@@ -472,9 +534,12 @@ interface ConnectionEditorDockTabDefinition {
|
|
|
472
534
|
}
|
|
473
535
|
declare class ConnectionEditorComponent {
|
|
474
536
|
readonly stateNodeId = "__page_state__";
|
|
537
|
+
protected readonly minZoom = 0.2;
|
|
538
|
+
protected readonly maxZoom = 1.8;
|
|
475
539
|
readonly nodeViewBox = "0 0 168 168";
|
|
476
540
|
readonly canvasViewBox = "0 0 900 540";
|
|
477
541
|
readonly nodeHaloPaths: string[];
|
|
542
|
+
private readonly injector;
|
|
478
543
|
private readonly i18n;
|
|
479
544
|
private readonly hostElement;
|
|
480
545
|
private readonly globalActionCatalog;
|
|
@@ -501,6 +566,7 @@ declare class ConnectionEditorComponent {
|
|
|
501
566
|
readonly draftTargets: _angular_core.Signal<ConnectionEditorPort[]>;
|
|
502
567
|
readonly draftDiagnostics: _angular_core.Signal<_praxisui_core.DiagnosticRecord[]>;
|
|
503
568
|
readonly draftDuplicate: _angular_core.Signal<boolean>;
|
|
569
|
+
readonly draftExistingRoute: _angular_core.Signal<ConnectionEditorConnection | null>;
|
|
504
570
|
readonly canApplyDraft: _angular_core.Signal<boolean>;
|
|
505
571
|
readonly activeMode: _angular_core.WritableSignal<ConnectionEditorFlowMode>;
|
|
506
572
|
readonly activeFilter: _angular_core.WritableSignal<ConnectionsEditorFilter>;
|
|
@@ -512,12 +578,18 @@ declare class ConnectionEditorComponent {
|
|
|
512
578
|
readonly expandedNodeId: _angular_core.WritableSignal<string | null>;
|
|
513
579
|
readonly activeDockTab: _angular_core.WritableSignal<ConnectionEditorDockTab>;
|
|
514
580
|
readonly dockCollapsed: _angular_core.WritableSignal<boolean>;
|
|
581
|
+
readonly inspectorOpen: _angular_core.WritableSignal<boolean>;
|
|
582
|
+
readonly connectionIntents: _angular_core.Signal<_praxisui_core.LinkIntent[]>;
|
|
515
583
|
readonly traceEnabled: _angular_core.WritableSignal<boolean>;
|
|
516
584
|
readonly traceStepIndex: _angular_core.WritableSignal<number>;
|
|
517
585
|
readonly traceSourceNodeId: _angular_core.WritableSignal<string | null>;
|
|
586
|
+
readonly traceSourceEndpoint: _angular_core.WritableSignal<EndpointRef | null>;
|
|
518
587
|
readonly selectedPort: _angular_core.WritableSignal<ConnectionEditorPort | null>;
|
|
519
588
|
readonly hoveredNodeId: _angular_core.WritableSignal<string | null>;
|
|
520
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;
|
|
521
593
|
readonly globalActionPayloadError: _angular_core.WritableSignal<string | null>;
|
|
522
594
|
readonly pendingSegmentState: _angular_core.WritableSignal<PendingSegmentState | null>;
|
|
523
595
|
readonly dragState: _angular_core.WritableSignal<DragState | null>;
|
|
@@ -526,6 +598,7 @@ declare class ConnectionEditorComponent {
|
|
|
526
598
|
readonly panState: _angular_core.WritableSignal<PanState | null>;
|
|
527
599
|
readonly minimapPanState: _angular_core.WritableSignal<MinimapPanState | null>;
|
|
528
600
|
readonly rotationState: _angular_core.WritableSignal<RotationState | null>;
|
|
601
|
+
readonly captionLayoutScale: _angular_core.WritableSignal<number>;
|
|
529
602
|
readonly viewport: _angular_core.WritableSignal<ViewportState>;
|
|
530
603
|
readonly portOrder: _angular_core.WritableSignal<ConnectionEditorPortOrderState>;
|
|
531
604
|
readonly nodeRotations: _angular_core.WritableSignal<Record<string, number>>;
|
|
@@ -600,9 +673,14 @@ declare class ConnectionEditorComponent {
|
|
|
600
673
|
readonly connectedNodeIds: _angular_core.Signal<Set<string>>;
|
|
601
674
|
readonly connectedPortIds: _angular_core.Signal<Set<string>>;
|
|
602
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>>;
|
|
603
680
|
readonly navigationBounds: _angular_core.Signal<ConnectionEditorBounds>;
|
|
604
681
|
readonly minimapViewBox: _angular_core.Signal<string>;
|
|
605
682
|
readonly editorConnections: _angular_core.Signal<ConnectionEditorConnection[]>;
|
|
683
|
+
readonly dockConnections: _angular_core.Signal<ConnectionEditorConnection[]>;
|
|
606
684
|
readonly canvasEditorConnections: _angular_core.Signal<ConnectionEditorConnection[]>;
|
|
607
685
|
readonly visibleEditorConnections: _angular_core.Signal<ConnectionEditorConnection[]>;
|
|
608
686
|
readonly modeMatchedConnectionIds: _angular_core.Signal<Set<string>>;
|
|
@@ -611,14 +689,38 @@ declare class ConnectionEditorComponent {
|
|
|
611
689
|
readonly smartSuggestions: _angular_core.Signal<ConnectionEditorSuggestion[]>;
|
|
612
690
|
readonly recommendedMasterDetailSuggestion: _angular_core.Signal<ConnectionEditorSuggestion | null>;
|
|
613
691
|
readonly masterDetailReadinessDiagnostic: _angular_core.Signal<string | null>;
|
|
692
|
+
readonly compactStage: _angular_core.WritableSignal<boolean>;
|
|
614
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>;
|
|
615
706
|
readonly activeTraceStepIndex: _angular_core.Signal<number>;
|
|
616
|
-
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
|
+
}>;
|
|
617
717
|
readonly tracedConnectionIds: _angular_core.Signal<Set<string>>;
|
|
618
718
|
readonly traceProgressPercent: _angular_core.Signal<number>;
|
|
619
719
|
readonly traceProgressLabel: _angular_core.Signal<string>;
|
|
620
720
|
readonly traceSourceNodeIds: _angular_core.Signal<Set<string>>;
|
|
621
721
|
readonly traceReactingNodeIds: _angular_core.Signal<Set<string>>;
|
|
722
|
+
private readonly syncTracePresentation;
|
|
723
|
+
private revealInScrollRegion;
|
|
622
724
|
readonly focusedConnectionNodeIds: _angular_core.Signal<Set<string>>;
|
|
623
725
|
readonly focusedConnectionPortIds: _angular_core.Signal<Set<string>>;
|
|
624
726
|
readonly diagnosticConnectionIds: _angular_core.Signal<Set<string>>;
|
|
@@ -629,6 +731,7 @@ declare class ConnectionEditorComponent {
|
|
|
629
731
|
readonly canvasInteractionActive: _angular_core.Signal<boolean>;
|
|
630
732
|
readonly visibleConnectionTooltip: _angular_core.Signal<ConnectionEditorConnection | null>;
|
|
631
733
|
readonly visibleExpandedNodeId: _angular_core.Signal<string | null>;
|
|
734
|
+
readonly expandedEditorNode: _angular_core.Signal<ConnectionEditorNode | null>;
|
|
632
735
|
readonly canUndo: _angular_core.Signal<boolean>;
|
|
633
736
|
readonly canRedo: _angular_core.Signal<boolean>;
|
|
634
737
|
readonly hasVisualPortOrder: _angular_core.Signal<boolean>;
|
|
@@ -657,11 +760,19 @@ declare class ConnectionEditorComponent {
|
|
|
657
760
|
width: number;
|
|
658
761
|
height: number;
|
|
659
762
|
}>;
|
|
660
|
-
|
|
763
|
+
private inspectorInvoker;
|
|
764
|
+
private portInvoker;
|
|
765
|
+
private inspectorPortContext;
|
|
766
|
+
selectNode(nodeId: string, event?: Event): void;
|
|
661
767
|
selectSegment(port: ConnectionEditorPort, event: MouseEvent): void;
|
|
662
768
|
selectWidget(node: ConnectionsViewerNode): void;
|
|
663
769
|
selectLink(edge: ConnectionsViewerEdge): void;
|
|
664
|
-
|
|
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;
|
|
665
776
|
jumpToConnection(connection: ConnectionEditorConnection, event: Event): void;
|
|
666
777
|
previewConnection(connection: ConnectionEditorConnection): void;
|
|
667
778
|
clearPreviewConnection(connection: ConnectionEditorConnection): void;
|
|
@@ -674,6 +785,7 @@ declare class ConnectionEditorComponent {
|
|
|
674
785
|
setDockTab(tab: ConnectionEditorDockTab): void;
|
|
675
786
|
handleDockTabKeydown(event: KeyboardEvent, tab: ConnectionEditorDockTab): void;
|
|
676
787
|
toggleDock(): void;
|
|
788
|
+
followConnectionPath(connection: ConnectionEditorConnection, event: Event): void;
|
|
677
789
|
toggleTrace(event: Event): void;
|
|
678
790
|
selectTraceSource(nodeId: string | null, event: Event): void;
|
|
679
791
|
moveTraceStep(delta: -1 | 1, event: Event): void;
|
|
@@ -720,6 +832,8 @@ declare class ConnectionEditorComponent {
|
|
|
720
832
|
enableTransform(connection: ConnectionEditorConnection, event: Event): void;
|
|
721
833
|
addTransformStep(connection: ConnectionEditorConnection, kind: TransformKind, event: Event): void;
|
|
722
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;
|
|
723
837
|
clearTransform(connection: ConnectionEditorConnection, event: Event): void;
|
|
724
838
|
applyConditionPreset(connection: ConnectionEditorConnection, preset: ConnectionEditorConditionPreset, event: Event): void;
|
|
725
839
|
clearCondition(connection: ConnectionEditorConnection, event: Event): void;
|
|
@@ -734,6 +848,9 @@ declare class ConnectionEditorComponent {
|
|
|
734
848
|
nestedPortPathText(port: ConnectionEditorPort): string;
|
|
735
849
|
portDescription(port: ConnectionEditorPort): string;
|
|
736
850
|
segmentKindGlyph(kind: ConnectionEditorPortKind): string;
|
|
851
|
+
nodeHue(id: string): number;
|
|
852
|
+
compactConnections(nodeId: string): ConnectionEditorConnection[];
|
|
853
|
+
connectionsForPort(port: ConnectionEditorPort): ConnectionEditorConnection[];
|
|
737
854
|
nodeIcon(node: ConnectionEditorNode): string;
|
|
738
855
|
dockTabLabel(tab: ConnectionEditorDockTabDefinition): string;
|
|
739
856
|
dockTabId(tab: ConnectionEditorDockTab): string;
|
|
@@ -753,6 +870,15 @@ declare class ConnectionEditorComponent {
|
|
|
753
870
|
isModeDimmedPort(port: ConnectionEditorPort): boolean;
|
|
754
871
|
isGuidedQuietNode(node: ConnectionEditorNode): boolean;
|
|
755
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;
|
|
756
882
|
isGuidedPortVisible(port: ConnectionEditorPort): boolean;
|
|
757
883
|
isGuidedSegmentLabelVisible(port: ConnectionEditorPort): boolean;
|
|
758
884
|
clearHoveredNode(nodeId: string): void;
|
|
@@ -779,7 +905,13 @@ declare class ConnectionEditorComponent {
|
|
|
779
905
|
connectionCreatedFeedback(connection: ConnectionEditorConnection): string;
|
|
780
906
|
portAriaLabel(node: ConnectionEditorNode, port: ConnectionEditorPort, role: 'input' | 'output' | 'state'): string;
|
|
781
907
|
transformKindText(kind: TransformKind): string;
|
|
782
|
-
|
|
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;
|
|
783
915
|
private isSelectionToDetailConnection;
|
|
784
916
|
private isSuggestedMasterDetail;
|
|
785
917
|
private isCanonicalSelectionToDetailConnection;
|
|
@@ -804,6 +936,7 @@ declare class ConnectionEditorComponent {
|
|
|
804
936
|
} | null;
|
|
805
937
|
wireLabelTransform(connection: ConnectionEditorConnection, endpoint: 'source' | 'target'): string;
|
|
806
938
|
minimapWirePath(connection: ConnectionEditorConnection): string;
|
|
939
|
+
connectionTooltipWidth(): number;
|
|
807
940
|
connectionTooltipPosition(connection: ConnectionEditorConnection): ConnectionEditorTooltipPosition;
|
|
808
941
|
connectionTooltipCalloutX(connection: ConnectionEditorConnection): number;
|
|
809
942
|
connectionTooltipKind(connection: ConnectionEditorConnection): string;
|
|
@@ -835,6 +968,7 @@ declare class ConnectionEditorComponent {
|
|
|
835
968
|
cancelDraft(): void;
|
|
836
969
|
private clearDraft;
|
|
837
970
|
closeEditor(): void;
|
|
971
|
+
nodeCaptionHeight(): number;
|
|
838
972
|
nodeCaptionWidth(): number;
|
|
839
973
|
togglePresentation(): void;
|
|
840
974
|
tx(key: string, fallback: string): string;
|
|
@@ -883,6 +1017,7 @@ declare class ConnectionEditorComponent {
|
|
|
883
1017
|
private fitViewportState;
|
|
884
1018
|
private clampViewport;
|
|
885
1019
|
private connectionEditorNavigationBounds;
|
|
1020
|
+
private needsCompactStage;
|
|
886
1021
|
private stageClientSize;
|
|
887
1022
|
private stageRect;
|
|
888
1023
|
private shouldIgnorePanTarget;
|
|
@@ -948,6 +1083,7 @@ type DeviceVariantForm = FormGroup<{
|
|
|
948
1083
|
columns: FormControl<number | null>;
|
|
949
1084
|
rowUnit: FormControl<string>;
|
|
950
1085
|
gap: FormControl<string>;
|
|
1086
|
+
paddingInline: FormControl<string>;
|
|
951
1087
|
autoRows: FormControl<'fixed' | 'content' | ''>;
|
|
952
1088
|
groupingOverrides: FormControl<string>;
|
|
953
1089
|
widgetOverrides: FormControl<string>;
|
|
@@ -983,14 +1119,12 @@ declare class DynamicPageConfigEditorComponent implements OnInit, SettingsValueP
|
|
|
983
1119
|
pageChange: EventEmitter<WidgetPageDefinition>;
|
|
984
1120
|
readonly layoutPresetEntries: LayoutPresetEntry[];
|
|
985
1121
|
readonly themePresetEntries: ThemePresetEntry[];
|
|
986
|
-
readonly shellPresetEntries:
|
|
987
|
-
id: string;
|
|
988
|
-
label: string;
|
|
989
|
-
}[];
|
|
1122
|
+
readonly shellPresetEntries: readonly WidgetShellPresetDefinition[];
|
|
990
1123
|
readonly deviceKeys: DeviceKey[];
|
|
991
1124
|
readonly deviceLabels: Record<DeviceKey, string>;
|
|
992
1125
|
readonly canvasColumnsControl: FormControl<number>;
|
|
993
1126
|
readonly canvasRowUnitControl: FormControl<string>;
|
|
1127
|
+
readonly paddingInlineControl: FormControl<string>;
|
|
994
1128
|
readonly canvasGapControl: FormControl<string>;
|
|
995
1129
|
readonly canvasAutoRowsControl: FormControl<"content" | "fixed">;
|
|
996
1130
|
readonly layoutPresetControl: FormControl<string>;
|
|
@@ -1016,9 +1150,12 @@ declare class DynamicPageConfigEditorComponent implements OnInit, SettingsValueP
|
|
|
1016
1150
|
isErrorState: (control: FormControl | null) => boolean;
|
|
1017
1151
|
};
|
|
1018
1152
|
private readonly injectedData;
|
|
1153
|
+
readonly isHostedInSettingsPanel: boolean;
|
|
1019
1154
|
private readonly i18n;
|
|
1020
1155
|
private pageInput;
|
|
1021
1156
|
private snapshot;
|
|
1157
|
+
readonly stackedDevices: Set<DeviceKey>;
|
|
1158
|
+
readonly activeDevice: WritableSignal<DeviceKey>;
|
|
1022
1159
|
private hydrating;
|
|
1023
1160
|
private renderedCandidate;
|
|
1024
1161
|
private renderedValidationFingerprint;
|
|
@@ -1030,6 +1167,8 @@ declare class DynamicPageConfigEditorComponent implements OnInit, SettingsValueP
|
|
|
1030
1167
|
get hasPendingChanges(): boolean;
|
|
1031
1168
|
get validationStateLabel(): string;
|
|
1032
1169
|
get dirtyStateLabel(): string;
|
|
1170
|
+
get nonLimitError(): string | null;
|
|
1171
|
+
get limitsSummaryError(): string | null;
|
|
1033
1172
|
get selectedLayoutPresetLabel(): string;
|
|
1034
1173
|
get selectedThemePresetLabel(): string;
|
|
1035
1174
|
get selectedLayoutPresetEntry(): LayoutPresetEntry | null;
|
|
@@ -1041,6 +1180,9 @@ declare class DynamicPageConfigEditorComponent implements OnInit, SettingsValueP
|
|
|
1041
1180
|
onSave(): WidgetPageDefinition | null;
|
|
1042
1181
|
reset(): void;
|
|
1043
1182
|
pinRecommendedThemePreset(): void;
|
|
1183
|
+
get hasCanvasWidgets(): boolean;
|
|
1184
|
+
stackDevice(device: DeviceKey): void;
|
|
1185
|
+
private stackedCanvas;
|
|
1044
1186
|
addGroupingNode(seed?: WidgetPageGroupingDefinition): void;
|
|
1045
1187
|
removeGroupingNode(index: number): void;
|
|
1046
1188
|
layoutPresetSummary(preset: LayoutPresetEntry): string;
|
|
@@ -1050,6 +1192,7 @@ declare class DynamicPageConfigEditorComponent implements OnInit, SettingsValueP
|
|
|
1050
1192
|
inheritedThemeHelp(theme: ThemePresetEntry): string;
|
|
1051
1193
|
groupLabel(index: number): string;
|
|
1052
1194
|
tx(key: string, fallback: string): string;
|
|
1195
|
+
shellPresetLabel(preset: WidgetShellPresetDefinition): string;
|
|
1053
1196
|
limitsTargetLabel(index: number): string;
|
|
1054
1197
|
limitFieldError(control: FormControl<number | null>): string;
|
|
1055
1198
|
private draftFingerprint;
|
|
@@ -1064,6 +1207,8 @@ declare class DynamicPageConfigEditorComponent implements OnInit, SettingsValueP
|
|
|
1064
1207
|
private replaceGroupingNodes;
|
|
1065
1208
|
private buildCurrentPage;
|
|
1066
1209
|
private buildGrouping;
|
|
1210
|
+
/** A grid must place every existing widget before replacing the flow layout. */
|
|
1211
|
+
private completeCanvasItems;
|
|
1067
1212
|
private buildDeviceLayouts;
|
|
1068
1213
|
private invalidate;
|
|
1069
1214
|
private refreshPanelState;
|
|
@@ -1174,6 +1319,7 @@ declare class PageConfigEditorComponent implements SettingsValueProvider$1 {
|
|
|
1174
1319
|
rowHeight: FormControl<number | null>;
|
|
1175
1320
|
gap: FormControl<number | null>;
|
|
1176
1321
|
}>;
|
|
1322
|
+
readonly paddingInlineControl: FormControl<string>;
|
|
1177
1323
|
readonly contextControl: FormControl<string>;
|
|
1178
1324
|
readonly shellPresetControl: FormControl<string>;
|
|
1179
1325
|
readonly layoutPresetControl: FormControl<string>;
|
|
@@ -1188,6 +1334,7 @@ declare class PageConfigEditorComponent implements SettingsValueProvider$1 {
|
|
|
1188
1334
|
orientation: FormControl<string>;
|
|
1189
1335
|
columns: FormControl<number | null>;
|
|
1190
1336
|
gap: FormControl<string>;
|
|
1337
|
+
paddingInline: FormControl<string>;
|
|
1191
1338
|
breakpointsJson: FormControl<string>;
|
|
1192
1339
|
groupingOverridesJson: FormControl<string>;
|
|
1193
1340
|
widgetOverridesJson: FormControl<string>;
|
|
@@ -1196,6 +1343,7 @@ declare class PageConfigEditorComponent implements SettingsValueProvider$1 {
|
|
|
1196
1343
|
orientation: FormControl<string>;
|
|
1197
1344
|
columns: FormControl<number | null>;
|
|
1198
1345
|
gap: FormControl<string>;
|
|
1346
|
+
paddingInline: FormControl<string>;
|
|
1199
1347
|
breakpointsJson: FormControl<string>;
|
|
1200
1348
|
groupingOverridesJson: FormControl<string>;
|
|
1201
1349
|
widgetOverridesJson: FormControl<string>;
|
|
@@ -1204,6 +1352,7 @@ declare class PageConfigEditorComponent implements SettingsValueProvider$1 {
|
|
|
1204
1352
|
orientation: FormControl<string>;
|
|
1205
1353
|
columns: FormControl<number | null>;
|
|
1206
1354
|
gap: FormControl<string>;
|
|
1355
|
+
paddingInline: FormControl<string>;
|
|
1207
1356
|
breakpointsJson: FormControl<string>;
|
|
1208
1357
|
groupingOverridesJson: FormControl<string>;
|
|
1209
1358
|
widgetOverridesJson: FormControl<string>;
|
|
@@ -1212,10 +1361,7 @@ declare class PageConfigEditorComponent implements SettingsValueProvider$1 {
|
|
|
1212
1361
|
readonly layoutError: _angular_core.WritableSignal<string | null>;
|
|
1213
1362
|
readonly stateError: _angular_core.WritableSignal<string | null>;
|
|
1214
1363
|
readonly activeTab: _angular_core.WritableSignal<EditorTabId>;
|
|
1215
|
-
readonly shellPresetEntries:
|
|
1216
|
-
id: string;
|
|
1217
|
-
label: string;
|
|
1218
|
-
}>;
|
|
1364
|
+
readonly shellPresetEntries: readonly WidgetShellPresetDefinition[];
|
|
1219
1365
|
private lastContext;
|
|
1220
1366
|
private lastGrouping;
|
|
1221
1367
|
private lastDeviceLayouts;
|
|
@@ -1253,6 +1399,7 @@ declare class PageConfigEditorComponent implements SettingsValueProvider$1 {
|
|
|
1253
1399
|
protected get transformerOptionsHint(): string;
|
|
1254
1400
|
constructor();
|
|
1255
1401
|
protected tx(key: string, fallback: string): string;
|
|
1402
|
+
shellPresetLabel(preset: WidgetShellPresetDefinition | undefined): string;
|
|
1256
1403
|
addSchemaNode(seed?: {
|
|
1257
1404
|
path?: string;
|
|
1258
1405
|
config?: WidgetStateNode;
|
|
@@ -1976,7 +2123,13 @@ declare function preflightUiCompositionPlanResources(plan: UiCompositionPlan, re
|
|
|
1976
2123
|
declare class UiCompositionResourcePreflightService {
|
|
1977
2124
|
private readonly registry;
|
|
1978
2125
|
private readonly discovery;
|
|
2126
|
+
private readonly pageSchemas;
|
|
1979
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;
|
|
1980
2133
|
private resolveSchema;
|
|
1981
2134
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UiCompositionResourcePreflightService, never>;
|
|
1982
2135
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<UiCompositionResourcePreflightService>;
|