@stocksharp/diagram 0.1.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.
Files changed (87) hide show
  1. package/LICENSE +30 -0
  2. package/NOTICE +21 -0
  3. package/README.md +346 -0
  4. package/dist/esm/canvas-renderer.js +3226 -0
  5. package/dist/esm/canvas-renderer.js.map +1 -0
  6. package/dist/esm/core/action-registry.js +35 -0
  7. package/dist/esm/core/action-registry.js.map +1 -0
  8. package/dist/esm/core/document.js +350 -0
  9. package/dist/esm/core/document.js.map +1 -0
  10. package/dist/esm/core/history.js +136 -0
  11. package/dist/esm/core/history.js.map +1 -0
  12. package/dist/esm/core/model.js +2 -0
  13. package/dist/esm/core/model.js.map +1 -0
  14. package/dist/esm/core/state.js +73 -0
  15. package/dist/esm/core/state.js.map +1 -0
  16. package/dist/esm/core/view-state.js +70 -0
  17. package/dist/esm/core/view-state.js.map +1 -0
  18. package/dist/esm/diagram/api.js +2 -0
  19. package/dist/esm/diagram/api.js.map +1 -0
  20. package/dist/esm/diagram/catalog.js +45 -0
  21. package/dist/esm/diagram/catalog.js.map +1 -0
  22. package/dist/esm/diagram/event-emitter.js +42 -0
  23. package/dist/esm/diagram/event-emitter.js.map +1 -0
  24. package/dist/esm/diagram/palette.js +269 -0
  25. package/dist/esm/diagram/palette.js.map +1 -0
  26. package/dist/esm/diagram/stocksharp-diagram.js +784 -0
  27. package/dist/esm/diagram/stocksharp-diagram.js.map +1 -0
  28. package/dist/esm/diagram/types.js +105 -0
  29. package/dist/esm/diagram/types.js.map +1 -0
  30. package/dist/esm/embed.js +398 -0
  31. package/dist/esm/embed.js.map +1 -0
  32. package/dist/esm/i18n.js +12 -0
  33. package/dist/esm/i18n.js.map +1 -0
  34. package/dist/esm/index.js +12 -0
  35. package/dist/esm/index.js.map +1 -0
  36. package/dist/ssdiagram.js +5141 -0
  37. package/dist/ssdiagram.js.map +7 -0
  38. package/dist/types/canvas-renderer.d.ts +512 -0
  39. package/dist/types/canvas-renderer.d.ts.map +1 -0
  40. package/dist/types/core/action-registry.d.ts +18 -0
  41. package/dist/types/core/action-registry.d.ts.map +1 -0
  42. package/dist/types/core/document.d.ts +12 -0
  43. package/dist/types/core/document.d.ts.map +1 -0
  44. package/dist/types/core/history.d.ts +33 -0
  45. package/dist/types/core/history.d.ts.map +1 -0
  46. package/dist/types/core/model.d.ts +85 -0
  47. package/dist/types/core/model.d.ts.map +1 -0
  48. package/dist/types/core/state.d.ts +68 -0
  49. package/dist/types/core/state.d.ts.map +1 -0
  50. package/dist/types/core/view-state.d.ts +14 -0
  51. package/dist/types/core/view-state.d.ts.map +1 -0
  52. package/dist/types/diagram/api.d.ts +213 -0
  53. package/dist/types/diagram/api.d.ts.map +1 -0
  54. package/dist/types/diagram/catalog.d.ts +19 -0
  55. package/dist/types/diagram/catalog.d.ts.map +1 -0
  56. package/dist/types/diagram/event-emitter.d.ts +9 -0
  57. package/dist/types/diagram/event-emitter.d.ts.map +1 -0
  58. package/dist/types/diagram/palette.d.ts +63 -0
  59. package/dist/types/diagram/palette.d.ts.map +1 -0
  60. package/dist/types/diagram/stocksharp-diagram.d.ts +157 -0
  61. package/dist/types/diagram/stocksharp-diagram.d.ts.map +1 -0
  62. package/dist/types/diagram/types.d.ts +171 -0
  63. package/dist/types/diagram/types.d.ts.map +1 -0
  64. package/dist/types/embed.d.ts +35 -0
  65. package/dist/types/embed.d.ts.map +1 -0
  66. package/dist/types/i18n.d.ts +167 -0
  67. package/dist/types/i18n.d.ts.map +1 -0
  68. package/dist/types/index.d.ts +22 -0
  69. package/dist/types/index.d.ts.map +1 -0
  70. package/package.json +126 -0
  71. package/sample.png +0 -0
  72. package/src/canvas-renderer.ts +3249 -0
  73. package/src/core/action-registry.ts +46 -0
  74. package/src/core/document.ts +387 -0
  75. package/src/core/history.ts +154 -0
  76. package/src/core/model.ts +99 -0
  77. package/src/core/state.ts +148 -0
  78. package/src/core/view-state.ts +82 -0
  79. package/src/diagram/api.ts +257 -0
  80. package/src/diagram/catalog.ts +55 -0
  81. package/src/diagram/event-emitter.ts +44 -0
  82. package/src/diagram/palette.ts +312 -0
  83. package/src/diagram/stocksharp-diagram.ts +945 -0
  84. package/src/diagram/types.ts +332 -0
  85. package/src/embed.ts +508 -0
  86. package/src/i18n.ts +210 -0
  87. package/src/index.ts +171 -0
@@ -0,0 +1,512 @@
1
+ import type { DiagramDocument, DiagramParameterSchema, JsonObject } from './core/model.js';
2
+ import type { DiagramGlobalErrorKind, DiagramInteractionPermissions, DiagramPortRuntimeState, DiagramRuntimeState, DiagramSelection, DiagramViewState } from './core/state.js';
3
+ export type PortDirection = 'in' | 'out';
4
+ export type PortClickAction = 'leftClick' | 'rightClick';
5
+ export interface PortInit {
6
+ id: string;
7
+ name: string;
8
+ description?: string;
9
+ type?: string;
10
+ maxLinks?: number;
11
+ availableTypes?: string[];
12
+ isDynamic?: boolean;
13
+ dynamicMode?: string;
14
+ isSibling?: boolean;
15
+ metadata?: JsonObject;
16
+ }
17
+ /** Mutable port properties. Port identity and direction remain stable. */
18
+ export type PortUpdate = Partial<Omit<PortInit, 'id'>>;
19
+ export interface DiagramNodeInit {
20
+ id?: string;
21
+ typeId?: string;
22
+ name: string;
23
+ description?: string;
24
+ groupName?: string;
25
+ color?: string;
26
+ border?: string;
27
+ icon?: string;
28
+ x?: number;
29
+ y?: number;
30
+ inPorts?: PortInit[];
31
+ outPorts?: PortInit[];
32
+ /** Non-empty host action enables node double-click tracking. */
33
+ openAction?: string;
34
+ /** Transient error discovered while loading a scheme. */
35
+ loadError?: string;
36
+ /** Persistent host text. Runtime/load errors are stored separately. */
37
+ message?: string;
38
+ parameters?: DiagramParameterSchema[];
39
+ paramValues?: Record<string, string>;
40
+ metadata?: JsonObject;
41
+ /** Transient missing-catalog marker; excluded from saveDocument(). */
42
+ isPlaceholder?: boolean;
43
+ }
44
+ export interface LinkInit {
45
+ id?: string;
46
+ from: string;
47
+ fromPort: string;
48
+ to: string;
49
+ toPort: string;
50
+ metadata?: JsonObject;
51
+ }
52
+ export type DiagramNodeSnapshot = DiagramNodeInit & Required<Pick<DiagramNodeInit, 'id' | 'typeId' | 'name' | 'color' | 'border' | 'x' | 'y'>> & {
53
+ inPorts: PortInit[];
54
+ outPorts: PortInit[];
55
+ };
56
+ export interface DiagramSnapshot {
57
+ nodes: DiagramNodeSnapshot[];
58
+ links: Array<Required<Pick<LinkInit, 'from' | 'fromPort' | 'to' | 'toPort'>>>;
59
+ }
60
+ export interface DiagramOptions {
61
+ host: HTMLElement;
62
+ background?: string;
63
+ gridColor?: string;
64
+ /** Snap dragged nodes to a world-space grid. Defaults to false for the low-level renderer. */
65
+ gridSnap?: boolean;
66
+ /** Positive world-space grid step. Defaults to 28. */
67
+ gridSize?: number;
68
+ /** Optional explicit socket-type → colour map; unknown types hash to a hue. */
69
+ typeColors?: Record<string, string>;
70
+ /** Ceiling (0..1) for link/socket colour lightness. Unset = full palette (tuned for a dark
71
+ * canvas). A light theme sets a low ceiling so the otherwise-light link colours darken enough
72
+ * to stay visible on a light canvas. */
73
+ linkMaxLightness?: number;
74
+ /** Optional minimap colours. When omitted they are derived from the
75
+ * current canvas background, so a normal light/dark theme switch also
76
+ * rethemes the overview. */
77
+ overviewBackground?: string;
78
+ overviewBorderColor?: string;
79
+ overviewViewportColor?: string;
80
+ overviewViewportFill?: string;
81
+ }
82
+ export type DiagramScreenshotScope = 'viewport' | 'content';
83
+ export interface DiagramScreenshotOptions {
84
+ /** Current viewport (Charts/WPF parity) or the complete graph bounds. Defaults to viewport. */
85
+ scope?: DiagramScreenshotScope;
86
+ /** World-to-CSS-pixel scale for content export. Defaults to 1. */
87
+ scale?: number;
88
+ /** CSS-pixel padding around content export. Defaults to 32. */
89
+ padding?: number;
90
+ /** Output pixel density. Defaults to the renderer's current device pixel ratio. */
91
+ pixelRatio?: number;
92
+ /** Optional export-only background override. */
93
+ background?: string;
94
+ /** Defaults to true. */
95
+ includeGrid?: boolean;
96
+ /** Defaults to the current value for viewport and false for content. */
97
+ includeOverview?: boolean;
98
+ /** Defaults to true for viewport and false for content. */
99
+ includeSelection?: boolean;
100
+ /** Include debugger and error state. Defaults to true. */
101
+ includeRuntimeState?: boolean;
102
+ }
103
+ export interface LinkValidatorArgs {
104
+ fromNode: NodeModel;
105
+ fromPort: PortModel;
106
+ toNode: NodeModel;
107
+ toPort: PortModel;
108
+ }
109
+ export type LinkValidator = (args: LinkValidatorArgs) => boolean;
110
+ export type LinkValidationReason = 'allowed' | 'missing-link' | 'missing-node' | 'missing-port' | 'same-node' | 'invalid-direction' | 'incompatible-type' | 'duplicate-link' | 'source-limit' | 'target-limit' | 'host-rejected';
111
+ export interface LinkValidationResult {
112
+ allowed: boolean;
113
+ reason: LinkValidationReason;
114
+ }
115
+ export type NodeErrorKind = 'runtime' | 'load';
116
+ export interface NodeErrorOptions {
117
+ /** Runtime errors flash the border; load errors use a red background. */
118
+ kind?: NodeErrorKind;
119
+ /** Disable the initial runtime-error border flash. Defaults to true. */
120
+ animate?: boolean;
121
+ }
122
+ export interface DiagramEvents {
123
+ nodeAdded: {
124
+ node: NodeModel;
125
+ };
126
+ nodeRemoved: {
127
+ node: NodeModel;
128
+ };
129
+ nodeMoved: {
130
+ node: NodeModel;
131
+ };
132
+ nodeChanged: {
133
+ node: NodeModel;
134
+ };
135
+ nodeSelected: {
136
+ node: NodeModel | null;
137
+ selected: boolean;
138
+ };
139
+ nodeHover: {
140
+ node: NodeModel;
141
+ hovering: boolean;
142
+ };
143
+ linkAdded: {
144
+ link: LinkModel;
145
+ };
146
+ linkRemoved: {
147
+ link: LinkModel;
148
+ };
149
+ linkRelinked: {
150
+ link: LinkModel;
151
+ previous: LinkInit & {
152
+ id: string;
153
+ };
154
+ };
155
+ linkSelected: {
156
+ link: LinkModel | null;
157
+ selected: boolean;
158
+ };
159
+ linkHover: {
160
+ link: LinkModel;
161
+ hovering: boolean;
162
+ };
163
+ linkValidation: {
164
+ fromNode: NodeModel;
165
+ from: PortModel;
166
+ toNode: NodeModel;
167
+ to: PortModel;
168
+ allowed: boolean;
169
+ reason: LinkValidationReason;
170
+ };
171
+ portSelected: {
172
+ node: NodeModel;
173
+ port: PortModel;
174
+ };
175
+ portClicked: {
176
+ node: NodeModel;
177
+ port: PortModel;
178
+ action: PortClickAction;
179
+ ctrlKey: boolean;
180
+ shiftKey: boolean;
181
+ altKey: boolean;
182
+ metaKey: boolean;
183
+ };
184
+ portHover: {
185
+ node: NodeModel;
186
+ port: PortModel;
187
+ hovering: boolean;
188
+ };
189
+ nodeOpen: {
190
+ node: NodeModel;
191
+ };
192
+ loadFinished: {
193
+ nodes: NodeModel[];
194
+ links: LinkModel[];
195
+ };
196
+ zoomChanged: {
197
+ scale: number;
198
+ };
199
+ viewChanged: DiagramViewState;
200
+ contextMenu: {
201
+ x: number;
202
+ y: number;
203
+ link: LinkModel | null;
204
+ node: NodeModel | null;
205
+ port: {
206
+ node: NodeModel;
207
+ port: PortModel;
208
+ } | null;
209
+ };
210
+ undoStackChanged: {
211
+ canUndo: boolean;
212
+ canRedo: boolean;
213
+ };
214
+ selectionChanged: DiagramSelection;
215
+ runtimeStateChanged: {
216
+ state: DiagramRuntimeState;
217
+ };
218
+ }
219
+ type EvName = keyof DiagramEvents;
220
+ export declare class PortModel {
221
+ id: string;
222
+ name: string;
223
+ description: string;
224
+ type: string;
225
+ direction: PortDirection;
226
+ maxLinks: number;
227
+ availableTypes: string[];
228
+ isDynamic: boolean;
229
+ dynamicMode: string;
230
+ isSibling: boolean;
231
+ metadata: JsonObject;
232
+ cx: number;
233
+ cy: number;
234
+ constructor(init: PortInit, dir: PortDirection);
235
+ toInit(): PortInit;
236
+ }
237
+ export declare class NodeModel {
238
+ id: string;
239
+ typeId: string;
240
+ name: string;
241
+ description: string;
242
+ groupName: string;
243
+ color: string;
244
+ border: string;
245
+ icon: string;
246
+ openAction: string;
247
+ message: string;
248
+ parameters: DiagramParameterSchema[];
249
+ paramValues: Record<string, string>;
250
+ metadata: JsonObject;
251
+ isPlaceholder: boolean;
252
+ loadError: string;
253
+ runtimeError: string;
254
+ errorFlashStart: number | null;
255
+ x: number;
256
+ y: number;
257
+ inPorts: PortModel[];
258
+ outPorts: PortModel[];
259
+ w: number;
260
+ h: number;
261
+ constructor(init: DiagramNodeInit, id: string);
262
+ port(id: string): PortModel | undefined;
263
+ toInit(includeRuntimeState?: boolean): DiagramNodeInit & {
264
+ id: string;
265
+ };
266
+ }
267
+ export declare class LinkModel {
268
+ from: string;
269
+ fromPort: string;
270
+ to: string;
271
+ toPort: string;
272
+ readonly id: string;
273
+ readonly metadata: JsonObject;
274
+ constructor(from: string, fromPort: string, to: string, toPort: string, id?: string, metadata?: JsonObject);
275
+ key(): string;
276
+ toInit(): LinkInit & {
277
+ id: string;
278
+ };
279
+ }
280
+ export declare class Diagram {
281
+ private readonly host;
282
+ private readonly canvas;
283
+ private ctx;
284
+ private readonly opts;
285
+ private nodes;
286
+ private links;
287
+ private idSeq;
288
+ private linkSeq;
289
+ private documentMetadata;
290
+ private runtimeState;
291
+ private runtimePulse;
292
+ private globalErrorFlashStart;
293
+ private scale;
294
+ private offX;
295
+ private offY;
296
+ private width;
297
+ private height;
298
+ private dpr;
299
+ private drawScheduled;
300
+ private gridSnapEnabled;
301
+ private gridSize;
302
+ private selectedNode;
303
+ private selectedNodes;
304
+ private selectedLink;
305
+ private selectedPort;
306
+ private dragNode;
307
+ private dragStart;
308
+ private dragAnchor;
309
+ private dragDX;
310
+ private dragDY;
311
+ private panning;
312
+ private panX;
313
+ private panY;
314
+ private permissions;
315
+ private showNodeMessages;
316
+ private iconCache;
317
+ private rubber;
318
+ private clip;
319
+ private linking;
320
+ private relinking;
321
+ private relinkCandidate;
322
+ private linkSnap;
323
+ private cursor;
324
+ private hoverPort;
325
+ private hoverNode;
326
+ private hoveredLink;
327
+ private tipTimer;
328
+ private tipShow;
329
+ private tipTarget;
330
+ private lpTimer;
331
+ private lpStart;
332
+ private readonly lpDelayMs;
333
+ private readonly lpMoveTol;
334
+ private readonly history;
335
+ private readonly domDisposables;
336
+ private destroyed;
337
+ private introStart;
338
+ private overviewVisible;
339
+ private ovDragging;
340
+ private ovGeo;
341
+ private validator;
342
+ private handlers;
343
+ constructor(opts: DiagramOptions);
344
+ on<K extends EvName>(ev: K, h: (p: DiagramEvents[K]) => void): () => void;
345
+ private emit;
346
+ setLinkValidator(fn: LinkValidator | null): void;
347
+ setGridSnap(enabled: boolean, size?: number): void;
348
+ getGridSnap(): {
349
+ enabled: boolean;
350
+ size: number;
351
+ };
352
+ private normalizeGridSize;
353
+ private nextNodeId;
354
+ private nextLinkId;
355
+ addDiagramNode(init: DiagramNodeInit): string;
356
+ private doAddNode;
357
+ removeDiagramNode(id: string): void;
358
+ private doRemoveNode;
359
+ moveNode(id: string, x: number, y: number): void;
360
+ nudgeSelection(dx: number, dy: number): boolean;
361
+ private doMoveNode;
362
+ addLink(init: LinkInit): boolean;
363
+ private addLinkApplied;
364
+ private doAddLink;
365
+ removeLink(link: {
366
+ id?: string;
367
+ from: string;
368
+ fromPort: string;
369
+ to: string;
370
+ toPort: string;
371
+ }): void;
372
+ private removeLinkInternal;
373
+ private doRemoveLink;
374
+ private createDynamicSibling;
375
+ private pruneDynamicSibling;
376
+ canUndo(): boolean;
377
+ canRedo(): boolean;
378
+ undo(): void;
379
+ redo(): void;
380
+ cutSelection(): void;
381
+ withTransaction<T>(label: string, fn: () => T): T;
382
+ private record;
383
+ deleteSelection(): void;
384
+ clear(): void;
385
+ relink(linkId: string, next: Pick<LinkInit, 'from' | 'fromPort' | 'to' | 'toPort'>): LinkValidationResult;
386
+ private doRelink;
387
+ addPort(nodeId: string, direction: PortDirection, init: PortInit): boolean;
388
+ removePort(nodeId: string, direction: PortDirection, portId: string): boolean;
389
+ updatePortType(nodeId: string, direction: PortDirection, portId: string, type: string): boolean;
390
+ updatePort(nodeId: string, direction: PortDirection, portId: string, patch: PortUpdate): boolean;
391
+ setNodePorts(nodeId: string, inPorts: readonly PortInit[], outPorts: readonly PortInit[]): boolean;
392
+ updateNode(nodeId: string, patch: Partial<Pick<DiagramNodeInit, 'name' | 'description' | 'color' | 'border' | 'message' | 'openAction'>>): boolean;
393
+ setNodeParamValue(nodeId: string, name: string, value: string | undefined): boolean;
394
+ setShowNodeMessages(show: boolean): void;
395
+ private updateNodeState;
396
+ private applyNodeSnapshot;
397
+ private reconcileSelectedPort;
398
+ load(nodes: DiagramNodeInit[], links: LinkInit[]): void;
399
+ save(): DiagramSnapshot;
400
+ loadDocument(source: DiagramDocument | string): void;
401
+ saveDocument(): DiagramDocument;
402
+ selectedNodeId(): string | null;
403
+ getSelection(): DiagramSelection;
404
+ selectNodesById(ids: readonly string[]): void;
405
+ selectLinkById(id: string | null): void;
406
+ selectPortById(nodeId: string, direction: PortDirection, portId: string): void;
407
+ getViewState(): DiagramViewState;
408
+ setViewState(state: DiagramViewState): void;
409
+ findNode(id: string): NodeModel | undefined;
410
+ requestRedraw(): void;
411
+ /**
412
+ * Creates a detached canvas. With no options it is an exact copy of the
413
+ * current frame, matching Charts.takeScreenshot(). Content scope renders
414
+ * the whole graph without changing the visible viewport.
415
+ */
416
+ takeScreenshot(options?: DiagramScreenshotOptions): HTMLCanvasElement;
417
+ private positiveScreenshotNumber;
418
+ private nonNegativeScreenshotNumber;
419
+ getRuntimeState(): DiagramRuntimeState;
420
+ setRuntimeState(state: DiagramRuntimeState): void;
421
+ clearRuntimeState(): void;
422
+ setActiveNode(nodeId: string | null): boolean;
423
+ setPortRuntimeState(nodeId: string, direction: PortDirection, portId: string, patch: Partial<DiagramPortRuntimeState>): boolean;
424
+ setGlobalError(message: string | null, kind?: DiagramGlobalErrorKind): void;
425
+ setNodeError(id: string, message: string, options?: NodeErrorOptions): boolean;
426
+ clearNodeError(id: string, kind?: NodeErrorKind): boolean;
427
+ private emitRuntimeStateChanged;
428
+ viewToWorld(sx: number, sy: number): [number, number];
429
+ worldToView(wx: number, wy: number): [number, number];
430
+ selectNodeById(id: string | null): void;
431
+ setZoom(scale: number): void;
432
+ zoomToFit(): void;
433
+ playIntro(): void;
434
+ setOverviewVisible(v: boolean): void;
435
+ setTypeColors(colors: Readonly<Record<string, string>>): void;
436
+ setTheme(t: {
437
+ background?: string;
438
+ gridColor?: string;
439
+ linkMaxLightness?: number;
440
+ overviewBackground?: string;
441
+ overviewBorderColor?: string;
442
+ overviewViewportColor?: string;
443
+ overviewViewportFill?: string;
444
+ }): void;
445
+ private graphBounds;
446
+ resize(w: number, h: number): void;
447
+ getInteractionPermissions(): DiagramInteractionPermissions;
448
+ setInteractionPermissions(patch: Partial<DiagramInteractionPermissions>): void;
449
+ /** View-only mode keeps selection, inspection and copy enabled. */
450
+ setReadOnly(value: boolean): void;
451
+ destroy(): void;
452
+ private layoutNode;
453
+ private relayout;
454
+ private toScreen;
455
+ private toWorld;
456
+ private portColor;
457
+ private portAt;
458
+ private selectedLinkEndpointAt;
459
+ private directRelinkAtPort;
460
+ private nodeAt;
461
+ private obstaclesFor;
462
+ private routeLink;
463
+ private linkAt;
464
+ private endpoint;
465
+ validateLink(init: Pick<LinkInit, 'from' | 'fromPort' | 'to' | 'toPort'>, excludeLinkId?: string): LinkValidationResult;
466
+ private validateLinkModels;
467
+ private removeIncompatibleLinks;
468
+ private canExistingLinkRemain;
469
+ private findSnap;
470
+ private selectNode;
471
+ private toggleSelect;
472
+ private setSelection;
473
+ private selectLink;
474
+ private selectPort;
475
+ private emitSelectionChanged;
476
+ copySelection(): void;
477
+ copySelectionDocument(): DiagramDocument | null;
478
+ hasClipboard(): boolean;
479
+ getClipboardDocument(): DiagramDocument | null;
480
+ setClipboardDocument(source: DiagramDocument | string): void;
481
+ pasteSelection(): string[];
482
+ pasteDocument(source: DiagramDocument | string, offset?: {
483
+ x: number;
484
+ y: number;
485
+ }): string[];
486
+ private cancelLongPress;
487
+ private fireContextMenu;
488
+ private listen;
489
+ private bind;
490
+ private scheduleDraw;
491
+ private draw;
492
+ private drawGlobalError;
493
+ private drawTooltip;
494
+ private wrapTooltip;
495
+ private drawGrid;
496
+ private getIcon;
497
+ private drawNode;
498
+ private drawPort;
499
+ private portRuntimeState;
500
+ private strokeRoute;
501
+ private drawArrow;
502
+ private drawSelectedLinkEndpoints;
503
+ private drawPendingLink;
504
+ private overviewRect;
505
+ private drawOverview;
506
+ private ovHit;
507
+ private ovPanTo;
508
+ private emitViewChanged;
509
+ }
510
+ export declare const version = "0.1.0";
511
+ export {};
512
+ //# sourceMappingURL=canvas-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-renderer.d.ts","sourceRoot":"","sources":["../../src/canvas-renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export interface DiagramAction<TId extends string, TContext> {
2
+ readonly id: TId;
3
+ canExecute(context: TContext): boolean;
4
+ execute(context: TContext): void;
5
+ }
6
+ export interface DiagramActionState<TId extends string> {
7
+ id: TId;
8
+ enabled: boolean;
9
+ }
10
+ export declare class DiagramActionRegistry<TId extends string, TContext> {
11
+ private readonly actions;
12
+ register(action: DiagramAction<TId, TContext>): () => void;
13
+ get(id: TId): DiagramAction<TId, TContext> | null;
14
+ states(context: TContext): DiagramActionState<TId>[];
15
+ canExecute(id: TId, context: TContext): boolean;
16
+ execute(id: TId, context: TContext): boolean;
17
+ }
18
+ //# sourceMappingURL=action-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-registry.d.ts","sourceRoot":"","sources":["../../../src/core/action-registry.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa,CAAC,GAAG,SAAS,MAAM,EAAE,QAAQ;IACvD,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;IACjB,UAAU,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC;IACvC,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,kBAAkB,CAAC,GAAG,SAAS,MAAM;IAClD,EAAE,EAAE,GAAG,CAAC;IACR,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,qBAAqB,CAAC,GAAG,SAAS,MAAM,EAAE,QAAQ;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgD;IAExE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,MAAM,IAAI;IAU1D,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,IAAI;IAIjD,MAAM,CAAC,OAAO,EAAE,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE;IAOpD,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO;IAI/C,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO;CAM/C"}
@@ -0,0 +1,12 @@
1
+ import { type DiagramDocument, type DiagramDocumentInput } from './model.js';
2
+ export { DIAGRAM_DOCUMENT_VERSION } from './model.js';
3
+ export type { DiagramDocument, DiagramDocumentEndpoint, DiagramDocumentInput, DiagramDocumentLink, DiagramDocumentLinkInput, DiagramDocumentNode, DiagramDocumentNodeInput, DiagramDocumentPort, DiagramDocumentPortInput, DiagramDocumentVersion, DiagramParameterSchema, JsonObject, JsonPrimitive, JsonValue, } from './model.js';
4
+ export declare class DiagramDocumentError extends Error {
5
+ readonly path: string;
6
+ constructor(message: string, path?: string);
7
+ }
8
+ export declare function createDiagramDocument(input?: DiagramDocumentInput): DiagramDocument;
9
+ export declare function cloneDiagramDocument(document: DiagramDocument): DiagramDocument;
10
+ export declare function serializeDiagramDocument(document: DiagramDocument, space?: number): string;
11
+ export declare function parseDiagramDocument(source: string | unknown): DiagramDocument;
12
+ //# sourceMappingURL=document.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../src/core/document.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,eAAe,EAEpB,KAAK,oBAAoB,EAU5B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,YAAY,EACR,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,UAAU,EACV,aAAa,EACb,SAAS,GACZ,MAAM,YAAY,CAAC;AAEpB,qBAAa,oBAAqB,SAAQ,KAAK;IACd,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAtC,OAAO,EAAE,MAAM,EAAW,IAAI,GAAE,MAAY;CAI3D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,GAAE,oBAAyB,GAAG,eAAe,CAgCvF;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,eAAe,GAAG,eAAe,CAE/E;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1F;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,eAAe,CAwB9E"}
@@ -0,0 +1,33 @@
1
+ export interface DiagramCommand {
2
+ readonly label: string;
3
+ execute(): void;
4
+ undo(): void;
5
+ }
6
+ export interface DiagramHistoryState {
7
+ canUndo: boolean;
8
+ canRedo: boolean;
9
+ undoDepth: number;
10
+ redoDepth: number;
11
+ undoLabel: string | null;
12
+ redoLabel: string | null;
13
+ }
14
+ export type DiagramHistoryListener = (state: DiagramHistoryState) => void;
15
+ export declare class DiagramCommandHistory {
16
+ private readonly listener?;
17
+ private readonly undoCommands;
18
+ private readonly redoCommands;
19
+ private readonly transactions;
20
+ private replaying;
21
+ constructor(listener?: DiagramHistoryListener | undefined);
22
+ get state(): DiagramHistoryState;
23
+ execute(command: DiagramCommand): void;
24
+ /** Records a gesture that already changed the document, such as pointer drag. */
25
+ recordApplied(command: DiagramCommand): void;
26
+ transaction<T>(label: string, action: () => T): T;
27
+ undo(): boolean;
28
+ redo(): boolean;
29
+ clear(): void;
30
+ private replay;
31
+ private notify;
32
+ }
33
+ //# sourceMappingURL=history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../src/core/history.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,OAAO,IAAI,IAAI,CAAC;IAChB,IAAI,IAAI,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,MAAM,sBAAsB,GAAG,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;AAO1E,qBAAa,qBAAqB;IAMlB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IALtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0B;IACvD,OAAO,CAAC,SAAS,CAAS;gBAEG,QAAQ,CAAC,EAAE,sBAAsB,YAAA;IAE9D,IAAI,KAAK,IAAI,mBAAmB,CAS/B;IAED,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAStC,iFAAiF;IACjF,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAY5C,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC;IAkBjD,IAAI,IAAI,OAAO;IAcf,IAAI,IAAI,OAAO;IAcf,KAAK,IAAI,IAAI;IASb,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,MAAM;CAGjB"}