@ngroznykh/papirus 0.6.4 → 0.6.5
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 +13 -2
- package/README.ru.md +13 -2
- package/dist/core/ClipboardManager.d.ts +25 -0
- package/dist/core/ClipboardManager.d.ts.map +1 -0
- package/dist/core/ConnectionManager.d.ts +2 -3
- package/dist/core/ConnectionManager.d.ts.map +1 -1
- package/dist/core/DiagramRenderer.d.ts +11 -28
- package/dist/core/DiagramRenderer.d.ts.map +1 -1
- package/dist/core/DiagramSurface.d.ts +63 -0
- package/dist/core/DiagramSurface.d.ts.map +1 -0
- package/dist/core/DragManager.d.ts +2 -2
- package/dist/core/DragManager.d.ts.map +1 -1
- package/dist/core/EdgeEndpointUpdater.d.ts +18 -0
- package/dist/core/EdgeEndpointUpdater.d.ts.map +1 -0
- package/dist/core/HistoryManager.d.ts +0 -1
- package/dist/core/HistoryManager.d.ts.map +1 -1
- package/dist/core/InteractionManager.d.ts +4 -10
- package/dist/core/InteractionManager.d.ts.map +1 -1
- package/dist/core/NavigationManager.d.ts +2 -2
- package/dist/core/NavigationManager.d.ts.map +1 -1
- package/dist/core/PropertyChangeBatcher.d.ts +21 -0
- package/dist/core/PropertyChangeBatcher.d.ts.map +1 -0
- package/dist/core/ResizeManager.d.ts +2 -2
- package/dist/core/ResizeManager.d.ts.map +1 -1
- package/dist/core/ScrollbarController.d.ts +50 -0
- package/dist/core/ScrollbarController.d.ts.map +1 -0
- package/dist/core/SelectionManager.d.ts +2 -2
- package/dist/core/SelectionManager.d.ts.map +1 -1
- package/dist/core/overlays/MiniMap.d.ts +4 -7
- package/dist/core/overlays/MiniMap.d.ts.map +1 -1
- package/dist/elements/Edge.d.ts +1 -22
- package/dist/elements/Edge.d.ts.map +1 -1
- package/dist/elements/Element.d.ts +1 -0
- package/dist/elements/Element.d.ts.map +1 -1
- package/dist/elements/Node.d.ts.map +1 -1
- package/dist/elements/NodeImage.d.ts.map +1 -1
- package/dist/elements/Port.d.ts +1 -0
- package/dist/elements/Port.d.ts.map +1 -1
- package/dist/elements/TextLabel.d.ts +0 -1
- package/dist/elements/TextLabel.d.ts.map +1 -1
- package/dist/elements/composite/CComponent.d.ts +3 -2
- package/dist/elements/composite/CComponent.d.ts.map +1 -1
- package/dist/elements/composite/CContainer.d.ts +2 -3
- package/dist/elements/composite/CContainer.d.ts.map +1 -1
- package/dist/elements/composite/CDivider.d.ts +3 -8
- package/dist/elements/composite/CDivider.d.ts.map +1 -1
- package/dist/elements/composite/CIcon.d.ts +4 -10
- package/dist/elements/composite/CIcon.d.ts.map +1 -1
- package/dist/elements/composite/CShape.d.ts +4 -5
- package/dist/elements/composite/CShape.d.ts.map +1 -1
- package/dist/elements/composite/CText.d.ts +3 -8
- package/dist/elements/composite/CText.d.ts.map +1 -1
- package/dist/elements/composite/CompositeComponentBase.d.ts +25 -0
- package/dist/elements/composite/CompositeComponentBase.d.ts.map +1 -0
- package/dist/elements/edge/EdgeLabelRenderer.d.ts +17 -0
- package/dist/elements/edge/EdgeLabelRenderer.d.ts.map +1 -0
- package/dist/elements/edge/EdgeMarkerRenderer.d.ts +11 -0
- package/dist/elements/edge/EdgeMarkerRenderer.d.ts.map +1 -0
- package/dist/index.d.ts +13 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/papirus.js +1665 -1825
- package/dist/papirus.js.map +1 -1
- package/dist/utils/SvgExporter.d.ts +0 -8
- package/dist/utils/SvgExporter.d.ts.map +1 -1
- package/dist/utils/direction.d.ts +4 -0
- package/dist/utils/direction.d.ts.map +1 -1
- package/dist/utils/iconLayout.d.ts +34 -0
- package/dist/utils/iconLayout.d.ts.map +1 -0
- package/dist/utils/keymap.d.ts +11 -0
- package/dist/utils/keymap.d.ts.map +1 -0
- package/dist/utils/svgAssetLoader.d.ts +23 -0
- package/dist/utils/svgAssetLoader.d.ts.map +1 -0
- package/dist/utils/textMeasurer.d.ts +13 -0
- package/dist/utils/textMeasurer.d.ts.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -59,8 +59,12 @@ renderer.enableInteractions();
|
|
|
59
59
|
|
|
60
60
|
- [Docs Index](./docs/README.md)
|
|
61
61
|
- [API Overview](./docs/api.md)
|
|
62
|
+
- [CompositeNode](./docs/composite.md)
|
|
62
63
|
- [Elements](./docs/elements.md)
|
|
64
|
+
- [Renderer](./docs/renderer.md)
|
|
63
65
|
- [Interactions](./docs/interactions.md)
|
|
66
|
+
- [Input](./docs/input.md)
|
|
67
|
+
- [Search](./docs/search.md)
|
|
64
68
|
- [Overlays](./docs/overlays.md)
|
|
65
69
|
- [Utils](./docs/utils.md)
|
|
66
70
|
- [Changelog](./CHANGELOG.md)
|
|
@@ -175,7 +179,7 @@ const composite = new CompositeNode({
|
|
|
175
179
|
padding: 10,
|
|
176
180
|
gap: 6,
|
|
177
181
|
children: [
|
|
178
|
-
text({ id: 'name', text: 'Service API',
|
|
182
|
+
text({ id: 'name', text: 'Service API', bindToProperty: '__name__', style: { alignSelf: 'center' } }),
|
|
179
183
|
divider({}),
|
|
180
184
|
container({
|
|
181
185
|
direction: 'row',
|
|
@@ -217,7 +221,12 @@ Built-in themes: `DEFAULT_THEME`, `DARK_THEME`.
|
|
|
217
221
|
import { Serializer } from '@ngroznykh/papirus';
|
|
218
222
|
|
|
219
223
|
const serializer = new Serializer(renderer, {
|
|
220
|
-
nodeFactory: (data) =>
|
|
224
|
+
nodeFactory: (data) => {
|
|
225
|
+
if (data.type === 'composite') {
|
|
226
|
+
/* see docs/utils.md — deserializeCComponent + CompositeNode */
|
|
227
|
+
}
|
|
228
|
+
return new RectangleNode(data);
|
|
229
|
+
},
|
|
221
230
|
edgeFactory: (data) => new Edge(data),
|
|
222
231
|
});
|
|
223
232
|
|
|
@@ -225,6 +234,8 @@ const json = serializer.toJSON(true);
|
|
|
225
234
|
serializer.fromJSON(json);
|
|
226
235
|
```
|
|
227
236
|
|
|
237
|
+
See [Utils](./docs/utils.md) for multi-type and composite `nodeFactory` examples.
|
|
238
|
+
|
|
228
239
|
### Export
|
|
229
240
|
|
|
230
241
|
```ts
|
package/README.ru.md
CHANGED
|
@@ -59,8 +59,12 @@ renderer.enableInteractions();
|
|
|
59
59
|
|
|
60
60
|
- [Индекс документации](./docs/README.md)
|
|
61
61
|
- [Обзор API](./docs/api.md)
|
|
62
|
+
- [CompositeNode](./docs/composite.md)
|
|
62
63
|
- [Элементы](./docs/elements.md)
|
|
64
|
+
- [Рендерер](./docs/renderer.md)
|
|
63
65
|
- [Интерактивность](./docs/interactions.md)
|
|
66
|
+
- [Ввод](./docs/input.md)
|
|
67
|
+
- [Поиск](./docs/search.md)
|
|
64
68
|
- [Оверлеи](./docs/overlays.md)
|
|
65
69
|
- [Утилиты](./docs/utils.md)
|
|
66
70
|
- [Changelog](./CHANGELOG.ru.md)
|
|
@@ -176,7 +180,7 @@ const composite = new CompositeNode({
|
|
|
176
180
|
padding: 10,
|
|
177
181
|
gap: 6,
|
|
178
182
|
children: [
|
|
179
|
-
text({ id: 'name', text: 'Service API',
|
|
183
|
+
text({ id: 'name', text: 'Service API', bindToProperty: '__name__', style: { alignSelf: 'center' } }),
|
|
180
184
|
divider({}),
|
|
181
185
|
container({
|
|
182
186
|
direction: 'row',
|
|
@@ -218,7 +222,12 @@ renderer.setStyleManager(styles);
|
|
|
218
222
|
import { Serializer } from '@ngroznykh/papirus';
|
|
219
223
|
|
|
220
224
|
const serializer = new Serializer(renderer, {
|
|
221
|
-
nodeFactory: (data) =>
|
|
225
|
+
nodeFactory: (data) => {
|
|
226
|
+
if (data.type === 'composite') {
|
|
227
|
+
/* см. docs/utils.md — deserializeCComponent + CompositeNode */
|
|
228
|
+
}
|
|
229
|
+
return new RectangleNode(data);
|
|
230
|
+
},
|
|
222
231
|
edgeFactory: (data) => new Edge(data),
|
|
223
232
|
});
|
|
224
233
|
|
|
@@ -226,6 +235,8 @@ const json = serializer.toJSON(true);
|
|
|
226
235
|
serializer.fromJSON(json);
|
|
227
236
|
```
|
|
228
237
|
|
|
238
|
+
Примеры для нескольких типов узлов и composite: [Утилиты](./docs/utils.md).
|
|
239
|
+
|
|
229
240
|
### Экспорт
|
|
230
241
|
|
|
231
242
|
```ts
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Edge } from '../elements/Edge';
|
|
2
|
+
import { Node } from '../elements/Node';
|
|
3
|
+
import { SerializedEdge, SerializedNode } from '../types';
|
|
4
|
+
import { DiagramSurface } from './DiagramSurface';
|
|
5
|
+
import { HistoryManager } from './HistoryManager';
|
|
6
|
+
import { SelectionManager } from './SelectionManager';
|
|
7
|
+
export interface ClipboardManagerOptions {
|
|
8
|
+
renderer: DiagramSurface;
|
|
9
|
+
selectionManager: SelectionManager;
|
|
10
|
+
historyManager: HistoryManager;
|
|
11
|
+
nodeFactory?: (data: SerializedNode) => Node;
|
|
12
|
+
edgeFactory?: (data: SerializedEdge) => Edge;
|
|
13
|
+
}
|
|
14
|
+
export declare class ClipboardManager {
|
|
15
|
+
private readonly renderer;
|
|
16
|
+
private readonly selectionManager;
|
|
17
|
+
private readonly historyManager;
|
|
18
|
+
private readonly nodeFactory?;
|
|
19
|
+
private readonly edgeFactory?;
|
|
20
|
+
private clipboard;
|
|
21
|
+
constructor(options: ClipboardManagerOptions);
|
|
22
|
+
copySelection(): void;
|
|
23
|
+
pasteSelection(): void;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=ClipboardManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClipboardManager.d.ts","sourceRoot":"","sources":["../../src/core/ClipboardManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAS,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,cAAc,CAAC;IACzB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;CAC9C;AAOD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAiC;IAC9D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAiC;IAC9D,OAAO,CAAC,SAAS,CAAkC;gBAEvC,OAAO,EAAE,uBAAuB;IAQ5C,aAAa,IAAI,IAAI;IA4DrB,cAAc,IAAI,IAAI;CA6DvB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from '../events/EventEmitter';
|
|
2
|
-
import {
|
|
2
|
+
import { DiagramSurface } from './DiagramSurface';
|
|
3
3
|
import { InputEvent } from '../events/InputHandler';
|
|
4
4
|
import { Node } from '../elements/Node';
|
|
5
5
|
import { Edge } from '../elements/Edge';
|
|
@@ -20,7 +20,7 @@ export interface ConnectionEvents {
|
|
|
20
20
|
export type ConnectionValidator = (sourceNodeId: string, targetNodeId: string) => boolean;
|
|
21
21
|
export type ConnectionPreviewPathType = 'straight' | 'bezier';
|
|
22
22
|
export interface ConnectionManagerOptions {
|
|
23
|
-
renderer:
|
|
23
|
+
renderer: DiagramSurface;
|
|
24
24
|
createEdge: (from: EdgeEndpoint, to: EdgeEndpoint) => Edge;
|
|
25
25
|
addEdge?: (edge: Edge) => void;
|
|
26
26
|
snapToGrid?: boolean;
|
|
@@ -124,7 +124,6 @@ export declare class ConnectionManager extends EventEmitter<ConnectionEvents> {
|
|
|
124
124
|
private updateReconnectingEdge;
|
|
125
125
|
private getTargetPointForReconnect;
|
|
126
126
|
private getTargetDirForReconnect;
|
|
127
|
-
private getDirectionFromOutlineParam;
|
|
128
127
|
/**
|
|
129
128
|
* For editable polyline: return the nearest bend point for axis alignment.
|
|
130
129
|
* When reconnecting 'end', use last control point (or start). When reconnecting 'start', use first control point (or end).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionManager.d.ts","sourceRoot":"","sources":["../../src/core/ConnectionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"ConnectionManager.d.ts","sourceRoot":"","sources":["../../src/core/ConnectionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,8 @@ import { DiagramOptions, Point, ViewportState } from '../types';
|
|
|
7
7
|
import { InteractionManager, InteractionManagerOptions } from './InteractionManager';
|
|
8
8
|
import { AnimationManager } from './AnimationManager';
|
|
9
9
|
import { ContextMenuManager } from './ContextMenuManager';
|
|
10
|
+
import { ScrollbarAxis } from './ScrollbarController';
|
|
11
|
+
import { DiagramSurface, OverlayDragSession } from './DiagramSurface';
|
|
10
12
|
/**
|
|
11
13
|
* Events emitted by DiagramRenderer
|
|
12
14
|
*/
|
|
@@ -20,32 +22,26 @@ export interface DiagramEvents {
|
|
|
20
22
|
edgeAdd: [edge: Edge];
|
|
21
23
|
edgeRemove: [edge: Edge];
|
|
22
24
|
nodeBadgeClick: [nodeId: string, badgeId: string];
|
|
23
|
-
componentClick: [
|
|
25
|
+
componentClick: [
|
|
26
|
+
nodeId: string,
|
|
27
|
+
component: import('../elements/composite/CComponent').CComponent,
|
|
28
|
+
point: Point
|
|
29
|
+
];
|
|
24
30
|
}
|
|
25
31
|
export interface DiagramPlugin {
|
|
26
32
|
name?: string;
|
|
27
33
|
install(renderer: DiagramRenderer): void;
|
|
28
34
|
destroy?(renderer: DiagramRenderer): void;
|
|
29
35
|
}
|
|
30
|
-
|
|
31
|
-
beginOverlayDrag?(renderer: DiagramRenderer, screenX: number, screenY: number): unknown;
|
|
32
|
-
updateOverlayDrag?(renderer: DiagramRenderer, screenX: number, screenY: number, payload: unknown): boolean;
|
|
33
|
-
endOverlayDrag?(renderer: DiagramRenderer, payload: unknown): void;
|
|
34
|
-
}
|
|
35
|
-
export interface OverlayDragSession {
|
|
36
|
-
plugin: OverlayDragPlugin;
|
|
37
|
-
payload: unknown;
|
|
38
|
-
}
|
|
39
|
-
type ScrollbarAxis = 'horizontal' | 'vertical';
|
|
36
|
+
export type { OverlayDragSession } from './DiagramSurface';
|
|
40
37
|
/**
|
|
41
38
|
* Main diagram renderer class
|
|
42
39
|
* Manages canvas, coordinate system, and render loop
|
|
43
40
|
*/
|
|
44
|
-
export declare class DiagramRenderer extends EventEmitter<DiagramEvents> {
|
|
41
|
+
export declare class DiagramRenderer extends EventEmitter<DiagramEvents> implements DiagramSurface {
|
|
45
42
|
private readonly canvas;
|
|
46
43
|
private readonly ctx;
|
|
47
44
|
private readonly options;
|
|
48
|
-
private readonly scrollbar;
|
|
49
45
|
private plugins;
|
|
50
46
|
private styleManager?;
|
|
51
47
|
private underlayRenderers;
|
|
@@ -55,11 +51,9 @@ export declare class DiagramRenderer extends EventEmitter<DiagramEvents> {
|
|
|
55
51
|
private interactionManager;
|
|
56
52
|
private contextMenuManager;
|
|
57
53
|
private readonly animationManager;
|
|
54
|
+
private readonly scrollbarController;
|
|
55
|
+
private readonly edgeEndpointUpdater;
|
|
58
56
|
private frameTime;
|
|
59
|
-
private scrollbarHoveredAxis;
|
|
60
|
-
private scrollbarActiveAxis;
|
|
61
|
-
private scrollbarLastInteractionAt;
|
|
62
|
-
private lastScrollbarAlpha;
|
|
63
57
|
private _zoom;
|
|
64
58
|
private _offsetX;
|
|
65
59
|
private _offsetY;
|
|
@@ -283,12 +277,8 @@ export declare class DiagramRenderer extends EventEmitter<DiagramEvents> {
|
|
|
283
277
|
* Called during drag to keep control points in sync
|
|
284
278
|
*/
|
|
285
279
|
updateEdgeEndpointsForDrag(): void;
|
|
286
|
-
private updateEdgeEndpoints;
|
|
287
280
|
private getNodeObstacles;
|
|
288
|
-
private getDirectionFromOutlineParam;
|
|
289
|
-
private renderScrollbars;
|
|
290
281
|
private getContentBounds;
|
|
291
|
-
private getViewportBounds;
|
|
292
282
|
notifyScrollbarInteraction(): void;
|
|
293
283
|
setScrollbarActiveAxis(axis: ScrollbarAxis | null): void;
|
|
294
284
|
updateScrollbarHover(screenX: number, screenY: number): boolean;
|
|
@@ -310,12 +300,5 @@ export declare class DiagramRenderer extends EventEmitter<DiagramEvents> {
|
|
|
310
300
|
updateOverlayDrag(session: OverlayDragSession, screenX: number, screenY: number): boolean;
|
|
311
301
|
endOverlayDrag(session: OverlayDragSession): void;
|
|
312
302
|
screenToCanvas(screenX: number, screenY: number): Point | null;
|
|
313
|
-
private getScrollbarMetrics;
|
|
314
|
-
private resolveScrollbarOptions;
|
|
315
|
-
private resolveScrollbarColors;
|
|
316
|
-
private getScrollbarAlpha;
|
|
317
|
-
private hitTestScrollbarArea;
|
|
318
|
-
private getScrollState;
|
|
319
303
|
}
|
|
320
|
-
export {};
|
|
321
304
|
//# sourceMappingURL=DiagramRenderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiagramRenderer.d.ts","sourceRoot":"","sources":["../../src/core/DiagramRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAU,cAAc,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"DiagramRenderer.d.ts","sourceRoot":"","sources":["../../src/core/DiagramRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Edge } from '../elements/Edge';
|
|
2
|
+
import { Group } from '../elements/Group';
|
|
3
|
+
import { Node } from '../elements/Node';
|
|
4
|
+
import { CComponent } from '../elements/composite/CComponent';
|
|
5
|
+
import { Point } from '../types';
|
|
6
|
+
export interface OverlayDragSession {
|
|
7
|
+
plugin: unknown;
|
|
8
|
+
payload: unknown;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Rendering surface required by the interaction subsystem.
|
|
12
|
+
* Keeping this structural contract separate prevents interaction managers from
|
|
13
|
+
* depending on the concrete DiagramRenderer implementation.
|
|
14
|
+
*/
|
|
15
|
+
export interface DiagramSurface {
|
|
16
|
+
zoom: number;
|
|
17
|
+
offsetX: number;
|
|
18
|
+
offsetY: number;
|
|
19
|
+
attachToOutline: boolean;
|
|
20
|
+
readonly width: number;
|
|
21
|
+
readonly height: number;
|
|
22
|
+
readonly snapToGrid: boolean;
|
|
23
|
+
readonly nodes: ReadonlyMap<string, Node>;
|
|
24
|
+
readonly edges: ReadonlyMap<string, Edge>;
|
|
25
|
+
readonly groups: ReadonlyMap<string, Group>;
|
|
26
|
+
getCanvas(): HTMLCanvasElement;
|
|
27
|
+
getContext(): CanvasRenderingContext2D;
|
|
28
|
+
getNode(id: string): Node | undefined;
|
|
29
|
+
getEdge(id: string): Edge | undefined;
|
|
30
|
+
getGroup(id: string): Group | undefined;
|
|
31
|
+
addNode(node: Node): void;
|
|
32
|
+
addEdge(edge: Edge): void;
|
|
33
|
+
removeNode(id: string): boolean;
|
|
34
|
+
removeEdge(id: string): boolean;
|
|
35
|
+
markDirty(): void;
|
|
36
|
+
markStyleDirty(): void;
|
|
37
|
+
screenToWorld(screenX: number, screenY: number): Point;
|
|
38
|
+
worldToScreen(worldX: number, worldY: number): Point;
|
|
39
|
+
getInteractableElementAtPoint(worldPoint: Point, screenX: number, screenY: number): Node | Edge | Group | undefined;
|
|
40
|
+
updateBadgeHover(worldPoint: Point): void;
|
|
41
|
+
blocksDiagramPointerAtScreen(screenX: number, screenY: number): boolean;
|
|
42
|
+
addOverlayRenderer(renderer: (ctx: CanvasRenderingContext2D) => void): () => void;
|
|
43
|
+
beginOverlayDrag(screenX: number, screenY: number): OverlayDragSession | null;
|
|
44
|
+
updateOverlayDrag(session: OverlayDragSession, screenX: number, screenY: number): boolean;
|
|
45
|
+
endOverlayDrag(session: OverlayDragSession): void;
|
|
46
|
+
notifyScrollbarInteraction(): void;
|
|
47
|
+
setScrollbarActiveAxis(axis: 'horizontal' | 'vertical' | null): void;
|
|
48
|
+
updateScrollbarHover(screenX: number, screenY: number): boolean;
|
|
49
|
+
clearScrollbarHover(): void;
|
|
50
|
+
hitTestScrollbarThumb(screenX: number, screenY: number): {
|
|
51
|
+
axis: 'horizontal' | 'vertical';
|
|
52
|
+
pointerOffset: number;
|
|
53
|
+
} | null;
|
|
54
|
+
dragScrollbarThumb(axis: 'horizontal' | 'vertical', screenX: number, screenY: number, pointerOffset: number): boolean;
|
|
55
|
+
clickScrollbarTrack(screenX: number, screenY: number): boolean;
|
|
56
|
+
scrollViewportBy(screenDx: number, screenDy: number): boolean;
|
|
57
|
+
scrollViewportToStart(): boolean;
|
|
58
|
+
scrollViewportToEnd(): boolean;
|
|
59
|
+
emit(event: 'select', elementIds: string[]): void;
|
|
60
|
+
emit(event: 'nodeBadgeClick', nodeId: string, badgeId: string): void;
|
|
61
|
+
emit(event: 'componentClick', nodeId: string, component: CComponent, point: Point): void;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=DiagramSurface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiagramSurface.d.ts","sourceRoot":"","sources":["../../src/core/DiagramSurface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from '../events/EventEmitter';
|
|
2
|
-
import {
|
|
2
|
+
import { DiagramSurface } from './DiagramSurface';
|
|
3
3
|
import { SelectionManager } from './SelectionManager';
|
|
4
4
|
import { InputEvent } from '../events/InputHandler';
|
|
5
5
|
import { Point } from '../types';
|
|
@@ -12,7 +12,7 @@ export interface DragEvents {
|
|
|
12
12
|
dragend: [nodeIds: string[], endPoint: Point];
|
|
13
13
|
}
|
|
14
14
|
export interface DragManagerOptions {
|
|
15
|
-
renderer:
|
|
15
|
+
renderer: DiagramSurface;
|
|
16
16
|
selectionManager: SelectionManager;
|
|
17
17
|
snapToGrid?: boolean;
|
|
18
18
|
gridSize?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DragManager.d.ts","sourceRoot":"","sources":["../../src/core/DragManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"DragManager.d.ts","sourceRoot":"","sources":["../../src/core/DragManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAU,KAAK,EAAE,MAAM,SAAS,CAAC;AAe7C;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAClD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7D,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,cAAc,CAAC;IACzB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iGAAiG;IACjG,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,YAAY,CAAC,UAAU,CAAC;IACvD,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,wBAAwB,CAAS;IAEzC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,kBAAkB,CAGtB;IACJ,oGAAoG;IACpG,OAAO,CAAC,mCAAmC,CAAqB;IAChE,kEAAkE;IAClE,OAAO,CAAC,qCAAqC,CAA8B;IAC3E,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,qBAAqB,CAAS;gBAE1B,OAAO,EAAE,kBAAkB;IAUvC;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;OAEG;IACH,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,qBAAqB,CAAC,GAAG,EAAE,wBAAwB,GAAG,IAAI;IA0B1D;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAOxD;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQ3C;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAkG3C;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAoF3C;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IA6BzC;;OAEG;IACH,UAAU,IAAI,IAAI;IAwBlB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,KAAK;IAeb,OAAO,CAAC,+BAA+B;IA0EvC,OAAO,CAAC,yBAAyB;IA6BjC;;;OAGG;IACH,OAAO,CAAC,wCAAwC;IAiBhD,OAAO,CAAC,qBAAqB;IAuI7B,OAAO,CAAC,gBAAgB;CAczB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Edge } from '../elements/Edge';
|
|
2
|
+
import { Node } from '../elements/Node';
|
|
3
|
+
import { PathObstacle } from '../elements/paths';
|
|
4
|
+
export interface EdgeEndpointUpdaterHost {
|
|
5
|
+
getNodes(): ReadonlyMap<string, Node>;
|
|
6
|
+
getEdges(): ReadonlyMap<string, Edge>;
|
|
7
|
+
getNodeObstacles(): PathObstacle[];
|
|
8
|
+
}
|
|
9
|
+
export declare class EdgeEndpointUpdater {
|
|
10
|
+
private readonly host;
|
|
11
|
+
constructor(host: EdgeEndpointUpdaterHost);
|
|
12
|
+
updateForDrag(): void;
|
|
13
|
+
updateAll(): void;
|
|
14
|
+
private update;
|
|
15
|
+
private lockAnchors;
|
|
16
|
+
private resolveEndpoint;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=EdgeEndpointUpdater.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EdgeEndpointUpdater.d.ts","sourceRoot":"","sources":["../../src/core/EdgeEndpointUpdater.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIrD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACtC,QAAQ,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACtC,gBAAgB,IAAI,YAAY,EAAE,CAAC;CACpC;AAED,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,uBAAuB;IAE1D,aAAa,IAAI,IAAI;IAIrB,SAAS,IAAI,IAAI;IAIjB,OAAO,CAAC,MAAM;IAwBd,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,eAAe;CAkBxB"}
|
|
@@ -53,7 +53,6 @@ export declare class HistoryManager extends EventEmitter<HistoryEvents> {
|
|
|
53
53
|
clear(): void;
|
|
54
54
|
/**
|
|
55
55
|
* Handle keyboard shortcuts.
|
|
56
|
-
* Uses event.code for letter keys to work with any keyboard layout (e.g. Russian).
|
|
57
56
|
*/
|
|
58
57
|
handleKeyDown(event: KeyboardEvent): boolean;
|
|
59
58
|
private emitChange;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HistoryManager.d.ts","sourceRoot":"","sources":["../../src/core/HistoryManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"HistoryManager.d.ts","sourceRoot":"","sources":["../../src/core/HistoryManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGvC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzB,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,YAAY,CAAC,aAAa,CAAC;IAC7D,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,OAAO,GAAE,qBAA0B;IAK/C;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAe/B;;OAEG;IACH,IAAI,IAAI,OAAO;IAcf;;OAEG;IACH,IAAI,IAAI,OAAO;IAcf;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAc5C,OAAO,CAAC,UAAU;CAGnB;AAED,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,0CAA0C,EAC1C,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,2BAA2B,EAC3B,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DiagramSurface } from './DiagramSurface';
|
|
2
2
|
import { SelectionManager } from './SelectionManager';
|
|
3
3
|
import { DragManager } from './DragManager';
|
|
4
4
|
import { ResizeManager } from './ResizeManager';
|
|
@@ -17,7 +17,7 @@ export interface InteractionKeymap {
|
|
|
17
17
|
redoKey: string;
|
|
18
18
|
}
|
|
19
19
|
export interface InteractionManagerOptions {
|
|
20
|
-
renderer:
|
|
20
|
+
renderer: DiagramSurface;
|
|
21
21
|
createEdge?: (from: EdgeEndpoint, to: EdgeEndpoint) => Edge;
|
|
22
22
|
nodeFactory?: (data: SerializedNode) => Node;
|
|
23
23
|
edgeFactory?: (data: SerializedEdge) => Edge;
|
|
@@ -43,15 +43,14 @@ export declare class InteractionManager {
|
|
|
43
43
|
private readonly navigationManager;
|
|
44
44
|
private readonly connectionManager;
|
|
45
45
|
private readonly historyManager;
|
|
46
|
+
private readonly clipboardManager;
|
|
47
|
+
private readonly propertyChangeBatcher;
|
|
46
48
|
private readonly navigationOnly;
|
|
47
49
|
private keymap;
|
|
48
50
|
private overlayCleanup;
|
|
49
51
|
private dragStartPositions;
|
|
50
52
|
private dragStartEditablePolylinePoints;
|
|
51
53
|
private reconnectOrigins;
|
|
52
|
-
private clipboard;
|
|
53
|
-
private pendingPropertyChanges;
|
|
54
|
-
private propertyChangeDebounceMs;
|
|
55
54
|
private labelEditor;
|
|
56
55
|
private scrollbarDragState;
|
|
57
56
|
private handledScrollbarMouseDown;
|
|
@@ -98,13 +97,8 @@ export declare class InteractionManager {
|
|
|
98
97
|
private startCompositeNameEdit;
|
|
99
98
|
private findNameComponent;
|
|
100
99
|
private handleLabelCommit;
|
|
101
|
-
private queuePropertyChange;
|
|
102
|
-
private flushPendingPropertyChanges;
|
|
103
|
-
private flushPendingPropertyChange;
|
|
104
100
|
private deleteSelection;
|
|
105
101
|
private buildDeleteCommand;
|
|
106
|
-
private copySelection;
|
|
107
|
-
private pasteSelection;
|
|
108
102
|
private endpointsEqual;
|
|
109
103
|
private getSelectionBounds;
|
|
110
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InteractionManager.d.ts","sourceRoot":"","sources":["../../src/core/InteractionManager.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"InteractionManager.d.ts","sourceRoot":"","sources":["../../src/core/InteractionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from '../events/EventEmitter';
|
|
2
|
-
import {
|
|
2
|
+
import { DiagramSurface } from './DiagramSurface';
|
|
3
3
|
import { InputEvent, WheelInputEvent, PanInputEvent, PinchInputEvent } from '../events/InputHandler';
|
|
4
4
|
import { Bounds, Point } from '../types';
|
|
5
5
|
/**
|
|
@@ -12,7 +12,7 @@ export interface NavigationEvents {
|
|
|
12
12
|
zoomChange: [zoom: number, center: Point];
|
|
13
13
|
}
|
|
14
14
|
export interface NavigationManagerOptions {
|
|
15
|
-
renderer:
|
|
15
|
+
renderer: DiagramSurface;
|
|
16
16
|
zoomSensitivity?: number;
|
|
17
17
|
panButton?: number;
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationManager.d.ts","sourceRoot":"","sources":["../../src/core/NavigationManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"NavigationManager.d.ts","sourceRoot":"","sources":["../../src/core/NavigationManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,aAAa,EACb,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAG7C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,EAAE,CAAC;IACb,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,EAAE,EAAE,CAAC;IACX,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,cAAc,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,YAAY,CAAC,gBAAgB,CAAC;IACnE,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,EAAE,wBAAwB;IAO7C;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAuBzC;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAM5C;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAiBzC;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAS3C;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAiB3C;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAS1C;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAMzC;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IASvC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,IAAI;IAwB3C;;OAEG;IACH,SAAS,CAAC,OAAO,SAAK,GAAG,IAAI;IAY7B;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,SAAK,GAAG,IAAI;IAoB5C;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,SAAK,GAAG,IAAI;IAInD;;OAEG;IACH,SAAS,IAAI,IAAI;IAOjB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAMjC,OAAO,CAAC,MAAM;CAKf"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DiagramSurface } from './DiagramSurface';
|
|
2
|
+
import { HistoryManager } from './HistoryManager';
|
|
3
|
+
import { EdgeSnapshot, GroupSnapshot, NodeSnapshot } from './history/commands';
|
|
4
|
+
export type PropertyChangeKind = 'node' | 'edge' | 'group';
|
|
5
|
+
export type PropertySnapshot = NodeSnapshot | EdgeSnapshot | GroupSnapshot;
|
|
6
|
+
export interface PropertyChangeBatcherOptions {
|
|
7
|
+
renderer: DiagramSurface;
|
|
8
|
+
historyManager: HistoryManager;
|
|
9
|
+
debounceMs?: number;
|
|
10
|
+
}
|
|
11
|
+
export declare class PropertyChangeBatcher {
|
|
12
|
+
private readonly renderer;
|
|
13
|
+
private readonly historyManager;
|
|
14
|
+
private readonly debounceMs;
|
|
15
|
+
private readonly pendingChanges;
|
|
16
|
+
constructor(options: PropertyChangeBatcherOptions);
|
|
17
|
+
queue(kind: PropertyChangeKind, id: string, before: PropertySnapshot, after: PropertySnapshot): void;
|
|
18
|
+
flush(): void;
|
|
19
|
+
private flushOne;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=PropertyChangeBatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropertyChangeBatcher.d.ts","sourceRoot":"","sources":["../../src/core/PropertyChangeBatcher.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEpF,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAC3D,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,YAAY,GAAG,aAAa,CAAC;AAE3E,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,cAAc,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAUD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4C;gBAE/D,OAAO,EAAE,4BAA4B;IAMjD,KAAK,CACH,IAAI,EAAE,kBAAkB,EACxB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,gBAAgB,GACtB,IAAI;IAcP,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,QAAQ;CA6CjB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from '../events/EventEmitter';
|
|
2
|
-
import {
|
|
2
|
+
import { DiagramSurface } from './DiagramSurface';
|
|
3
3
|
import { SelectionManager } from './SelectionManager';
|
|
4
4
|
import { InputEvent } from '../events/InputHandler';
|
|
5
5
|
import { Bounds, Point } from '../types';
|
|
@@ -13,7 +13,7 @@ export interface ResizeEvents {
|
|
|
13
13
|
resizeEnd: [nodeId: string, bounds: Bounds];
|
|
14
14
|
}
|
|
15
15
|
export interface ResizeManagerOptions {
|
|
16
|
-
renderer:
|
|
16
|
+
renderer: DiagramSurface;
|
|
17
17
|
selectionManager: SelectionManager;
|
|
18
18
|
snapToGrid?: boolean;
|
|
19
19
|
gridSize?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResizeManager.d.ts","sourceRoot":"","sources":["../../src/core/ResizeManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"ResizeManager.d.ts","sourceRoot":"","sources":["../../src/core/ResizeManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGpD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IACzE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACvD,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,cAAc,CAAC;IACzB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,YAAY,CAAC,YAAY,CAAC;IAC3D,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,iBAAiB,CAAS;gBAEtB,OAAO,EAAE,oBAAoB;IAWzC;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;OAEG;IACH,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAOxD;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAiC3C;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAqC3C;;OAEG;IACH,aAAa,IAAI,OAAO;IAiBxB;;OAEG;IACH,YAAY,IAAI,IAAI;IAgBpB,OAAO,CAAC,eAAe;IAsDvB,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,KAAK;CASd"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Bounds, DiagramOptions, Point } from '../types';
|
|
2
|
+
export type ScrollbarAxis = 'horizontal' | 'vertical';
|
|
3
|
+
export interface ScrollbarHost {
|
|
4
|
+
getWidth(): number;
|
|
5
|
+
getHeight(): number;
|
|
6
|
+
getZoom(): number;
|
|
7
|
+
getOffsetX(): number;
|
|
8
|
+
setOffsetX(value: number): void;
|
|
9
|
+
getOffsetY(): number;
|
|
10
|
+
setOffsetY(value: number): void;
|
|
11
|
+
getPixelRatio(): number;
|
|
12
|
+
markDirty(): void;
|
|
13
|
+
screenToCanvas(screenX: number, screenY: number): Point | null;
|
|
14
|
+
getContentBounds(): Bounds | null;
|
|
15
|
+
isDarkTheme(): boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare class ScrollbarController {
|
|
18
|
+
private readonly host;
|
|
19
|
+
private readonly options;
|
|
20
|
+
private hoveredAxis;
|
|
21
|
+
private activeAxis;
|
|
22
|
+
private lastInteractionAt;
|
|
23
|
+
private lastAlpha;
|
|
24
|
+
constructor(host: ScrollbarHost, diagramOptions: DiagramOptions);
|
|
25
|
+
updateAnimation(now: number): boolean;
|
|
26
|
+
render(ctx: CanvasRenderingContext2D, frameTime: number): void;
|
|
27
|
+
notifyInteraction(): void;
|
|
28
|
+
setActiveAxis(axis: ScrollbarAxis | null): void;
|
|
29
|
+
updateHover(screenX: number, screenY: number): boolean;
|
|
30
|
+
clearHover(): void;
|
|
31
|
+
hitTestThumb(screenX: number, screenY: number): {
|
|
32
|
+
axis: ScrollbarAxis;
|
|
33
|
+
pointerOffset: number;
|
|
34
|
+
} | null;
|
|
35
|
+
dragThumb(axis: ScrollbarAxis, screenX: number, screenY: number, pointerOffset: number): boolean;
|
|
36
|
+
clickTrack(screenX: number, screenY: number): boolean;
|
|
37
|
+
scrollBy(screenDx: number, screenDy: number): boolean;
|
|
38
|
+
scrollToStart(): boolean;
|
|
39
|
+
scrollToEnd(): boolean;
|
|
40
|
+
private clickTrackAxis;
|
|
41
|
+
private getMetrics;
|
|
42
|
+
private createTrack;
|
|
43
|
+
private getScrollState;
|
|
44
|
+
private getViewportBounds;
|
|
45
|
+
private hitTestArea;
|
|
46
|
+
private getAlpha;
|
|
47
|
+
private resolveColors;
|
|
48
|
+
private static resolveOptions;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=ScrollbarController.d.ts.map
|