@ngroznykh/papirus 0.5.9 → 0.5.10
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/dist/core/HistoryManager.d.ts +1 -1
- package/dist/core/HistoryManager.d.ts.map +1 -1
- package/dist/core/InteractionManager.d.ts +10 -0
- package/dist/core/InteractionManager.d.ts.map +1 -1
- package/dist/core/history/commands.d.ts +13 -0
- package/dist/core/history/commands.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/papirus.js +111 -5
- package/dist/papirus.js.map +1 -1
- package/package.json +1 -1
|
@@ -58,5 +58,5 @@ export declare class HistoryManager extends EventEmitter<HistoryEvents> {
|
|
|
58
58
|
handleKeyDown(event: KeyboardEvent): boolean;
|
|
59
59
|
private emitChange;
|
|
60
60
|
}
|
|
61
|
-
export { MoveNodesCommand, AddNodeCommand, RemoveNodeCommand, CompositeCommand, ChangeNodePropertiesCommand, ChangeEdgePropertiesCommand, ChangeGroupPropertiesCommand, RemoveNodeFromGroupsCommand, createNodeSnapshot, createEdgeSnapshot, createGroupSnapshot, } from './history/commands';
|
|
61
|
+
export { MoveNodesCommand, AddNodeCommand, RemoveNodeCommand, CompositeCommand, ChangeEditablePolylineControlPointsCommand, ChangeNodePropertiesCommand, ChangeEdgePropertiesCommand, ChangeGroupPropertiesCommand, RemoveNodeFromGroupsCommand, createNodeSnapshot, createEdgeSnapshot, createGroupSnapshot, } from './history/commands';
|
|
62
62
|
//# sourceMappingURL=HistoryManager.d.ts.map
|
|
@@ -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;AAEvC;;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;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAmB5C,OAAO,CAAC,UAAU;CAGnB;AAED,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,2BAA2B,EAC3B,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,oBAAoB,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;AAEvC;;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;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAmB5C,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"}
|
|
@@ -47,6 +47,7 @@ export declare class InteractionManager {
|
|
|
47
47
|
private keymap;
|
|
48
48
|
private overlayCleanup;
|
|
49
49
|
private dragStartPositions;
|
|
50
|
+
private dragStartEditablePolylinePoints;
|
|
50
51
|
private reconnectOrigins;
|
|
51
52
|
private clipboard;
|
|
52
53
|
private pendingPropertyChanges;
|
|
@@ -63,6 +64,15 @@ export declare class InteractionManager {
|
|
|
63
64
|
get navigation(): NavigationManager;
|
|
64
65
|
get connection(): ConnectionManager;
|
|
65
66
|
get history(): HistoryManager;
|
|
67
|
+
/**
|
|
68
|
+
* Records drag-start positions for node IDs moved together with the selection by the host app
|
|
69
|
+
* (e.g. contained nodes while Papirus only reports the container in drag events).
|
|
70
|
+
* Call from a `dragstart` listener after the default handler; skips IDs already captured.
|
|
71
|
+
* Also snapshots editable-polyline control points for edges incident to those nodes (for undo).
|
|
72
|
+
*/
|
|
73
|
+
recordAdditionalDragStartPositions(nodeIds: string[]): void;
|
|
74
|
+
private snapshotEditablePolylineControlPointsForEdgesTouchingNodes;
|
|
75
|
+
private editablePolylinePointsEqual;
|
|
66
76
|
changeNodeProperties(nodeId: string, apply: (node: Node) => void): void;
|
|
67
77
|
changeEdgeProperties(edgeId: string, apply: (edge: Edge) => void): void;
|
|
68
78
|
changeGroupProperties(groupId: string, apply: (group: Group) => void): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InteractionManager.d.ts","sourceRoot":"","sources":["../../src/core/InteractionManager.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAIL,cAAc,EAMf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAU,YAAY,EAAS,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC3F,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"InteractionManager.d.ts","sourceRoot":"","sources":["../../src/core/InteractionManager.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAIL,cAAc,EAMf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAU,YAAY,EAAS,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC3F,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAU5C,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,eAAe,CAAC;IAC1B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,CAAC;IAC5D,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+GAA+G;IAC/G,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,sFAAsF;IACtF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wDAAwD;IACxD,eAAe,CAAC,EAAE,yBAAyB,CAAC;IAC5C,iFAAiF;IACjF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACrC;AAUD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,cAAc,CAA6B;IAEnD,OAAO,CAAC,kBAAkB,CAA+C;IACzE,OAAO,CAAC,+BAA+B,CAA8B;IACrE,OAAO,CAAC,gBAAgB,CAGpB;IAEJ,OAAO,CAAC,SAAS,CAGD;IAEhB,OAAO,CAAC,sBAAsB,CAe1B;IACJ,OAAO,CAAC,wBAAwB,CAAO;IACvC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,kBAAkB,CACnB;IACP,OAAO,CAAC,yBAAyB,CAAS;IAC1C,OAAO,CAAC,kBAAkB,CAAmC;IAC7D,OAAO,CAAC,uBAAuB,CAAS;gBAE5B,OAAO,EAAE,yBAAyB;IAoD9C,IAAI,SAAS,IAAI,gBAAgB,CAEhC;IAED,IAAI,IAAI,IAAI,WAAW,CAEtB;IAED,IAAI,MAAM,IAAI,aAAa,CAE1B;IAED,IAAI,UAAU,IAAI,iBAAiB,CAElC;IAED,IAAI,UAAU,IAAI,iBAAiB,CAElC;IAED,IAAI,OAAO,IAAI,cAAc,CAE5B;IAED;;;;;OAKG;IACH,kCAAkC,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAa3D,OAAO,CAAC,0DAA0D;IAgBlE,OAAO,CAAC,2BAA2B;IAcnC,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI;IAevE,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI;IAevE,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAe3E,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAuB/D,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI;IAWhC,eAAe,CAAC,OAAO,SAAK,GAAG,IAAI;IAOnC,OAAO,IAAI,IAAI;IAgBf,OAAO,CAAC,WAAW;IA4InB,OAAO,CAAC,eAAe;IAwEvB,OAAO,CAAC,eAAe;IAiGvB,OAAO,CAAC,aAAa;IAmCrB,OAAO,CAAC,WAAW;IA0BnB,OAAO,CAAC,iBAAiB;IA+CzB,OAAO,CAAC,mBAAmB;IAgC3B,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,aAAa;IA4CrB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,2BAA2B;IAuBnC,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,iBAAiB;IAoCzB,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,2BAA2B;IAOnC,OAAO,CAAC,0BAA0B;IAgDlC,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,kBAAkB;IA6E1B,OAAO,CAAC,aAAa;IA4DrB,OAAO,CAAC,cAAc;IA8DtB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,kBAAkB;CAU3B"}
|
|
@@ -60,6 +60,19 @@ export declare class MoveNodesCommand implements Command {
|
|
|
60
60
|
execute(): void;
|
|
61
61
|
undo(): void;
|
|
62
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Restores editable-polyline control points on undo (used with node drag composite).
|
|
65
|
+
*/
|
|
66
|
+
export declare class ChangeEditablePolylineControlPointsCommand implements Command {
|
|
67
|
+
private readonly changes;
|
|
68
|
+
private readonly getEdge;
|
|
69
|
+
constructor(getEdge: (id: string) => Edge | undefined, changes: Map<string, {
|
|
70
|
+
before: Point[];
|
|
71
|
+
after: Point[];
|
|
72
|
+
}>);
|
|
73
|
+
execute(): void;
|
|
74
|
+
undo(): void;
|
|
75
|
+
}
|
|
63
76
|
/**
|
|
64
77
|
* Command for adding a node
|
|
65
78
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/core/history/commands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EACV,iBAAiB,EACjB,SAAS,EACT,OAAO,EACP,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,SAAS,EACT,KAAK,EACL,SAAS,EACV,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/core/history/commands.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ export type { SearchManagerOptions, SearchFindOptions, SearchFilterOptions, Sear
|
|
|
19
19
|
export { AnimationManager } from './core/AnimationManager';
|
|
20
20
|
export type { AnimationState } from './core/AnimationManager';
|
|
21
21
|
export { HistoryManager } from './core/HistoryManager';
|
|
22
|
-
export { MoveNodesCommand, AddNodeCommand, RemoveNodeCommand, CompositeCommand } from './core/history/commands';
|
|
22
|
+
export { MoveNodesCommand, AddNodeCommand, RemoveNodeCommand, CompositeCommand, ChangeEditablePolylineControlPointsCommand, } from './core/history/commands';
|
|
23
23
|
export type { HistoryEvents, HistoryManagerOptions } from './core/HistoryManager';
|
|
24
24
|
export { Element, generateId, resetIdCounter } from './elements/Element';
|
|
25
25
|
export { Node } from './elements/Node';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,YAAY,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAE3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,YAAY,EACV,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,YAAY,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,YAAY,EACV,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,YAAY,GACb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/papirus.js
CHANGED
|
@@ -3125,6 +3125,33 @@ class MoveNodesCommand {
|
|
|
3125
3125
|
}
|
|
3126
3126
|
}
|
|
3127
3127
|
}
|
|
3128
|
+
class ChangeEditablePolylineControlPointsCommand {
|
|
3129
|
+
constructor(getEdge, changes) {
|
|
3130
|
+
this.getEdge = getEdge;
|
|
3131
|
+
this.changes = new Map(
|
|
3132
|
+
Array.from(changes.entries()).map(([id, v]) => [
|
|
3133
|
+
id,
|
|
3134
|
+
{ before: clonePoints(v.before), after: clonePoints(v.after) }
|
|
3135
|
+
])
|
|
3136
|
+
);
|
|
3137
|
+
}
|
|
3138
|
+
execute() {
|
|
3139
|
+
for (const [id, { after }] of this.changes) {
|
|
3140
|
+
const edge = this.getEdge(id);
|
|
3141
|
+
if (edge?.isEditablePolyline()) {
|
|
3142
|
+
edge.controlPoints = clonePoints(after);
|
|
3143
|
+
}
|
|
3144
|
+
}
|
|
3145
|
+
}
|
|
3146
|
+
undo() {
|
|
3147
|
+
for (const [id, { before }] of this.changes) {
|
|
3148
|
+
const edge = this.getEdge(id);
|
|
3149
|
+
if (edge?.isEditablePolyline()) {
|
|
3150
|
+
edge.controlPoints = clonePoints(before);
|
|
3151
|
+
}
|
|
3152
|
+
}
|
|
3153
|
+
}
|
|
3154
|
+
}
|
|
3128
3155
|
class AddNodeCommand {
|
|
3129
3156
|
constructor(nodeId, addNode, removeNode) {
|
|
3130
3157
|
this.nodeId = nodeId;
|
|
@@ -5286,6 +5313,7 @@ class InteractionManager {
|
|
|
5286
5313
|
constructor(options) {
|
|
5287
5314
|
this.overlayCleanup = null;
|
|
5288
5315
|
this.dragStartPositions = /* @__PURE__ */ new Map();
|
|
5316
|
+
this.dragStartEditablePolylinePoints = /* @__PURE__ */ new Map();
|
|
5289
5317
|
this.reconnectOrigins = /* @__PURE__ */ new Map();
|
|
5290
5318
|
this.clipboard = null;
|
|
5291
5319
|
this.pendingPropertyChanges = /* @__PURE__ */ new Map();
|
|
@@ -5357,6 +5385,52 @@ class InteractionManager {
|
|
|
5357
5385
|
get history() {
|
|
5358
5386
|
return this.historyManager;
|
|
5359
5387
|
}
|
|
5388
|
+
/**
|
|
5389
|
+
* Records drag-start positions for node IDs moved together with the selection by the host app
|
|
5390
|
+
* (e.g. contained nodes while Papirus only reports the container in drag events).
|
|
5391
|
+
* Call from a `dragstart` listener after the default handler; skips IDs already captured.
|
|
5392
|
+
* Also snapshots editable-polyline control points for edges incident to those nodes (for undo).
|
|
5393
|
+
*/
|
|
5394
|
+
recordAdditionalDragStartPositions(nodeIds) {
|
|
5395
|
+
for (const id of nodeIds) {
|
|
5396
|
+
if (this.dragStartPositions.has(id)) {
|
|
5397
|
+
continue;
|
|
5398
|
+
}
|
|
5399
|
+
const node = this.renderer.getNode(id);
|
|
5400
|
+
if (node !== void 0) {
|
|
5401
|
+
this.dragStartPositions.set(id, { x: node.x, y: node.y });
|
|
5402
|
+
}
|
|
5403
|
+
}
|
|
5404
|
+
this.snapshotEditablePolylineControlPointsForEdgesTouchingNodes(nodeIds);
|
|
5405
|
+
}
|
|
5406
|
+
snapshotEditablePolylineControlPointsForEdgesTouchingNodes(nodeIds) {
|
|
5407
|
+
const idSet = new Set(nodeIds);
|
|
5408
|
+
for (const edge of this.renderer.edges.values()) {
|
|
5409
|
+
if (!edge.hasEditableControlPoints()) {
|
|
5410
|
+
continue;
|
|
5411
|
+
}
|
|
5412
|
+
if (!idSet.has(edge.from.nodeId) && !idSet.has(edge.to.nodeId)) {
|
|
5413
|
+
continue;
|
|
5414
|
+
}
|
|
5415
|
+
if (this.dragStartEditablePolylinePoints.has(edge.id)) {
|
|
5416
|
+
continue;
|
|
5417
|
+
}
|
|
5418
|
+
this.dragStartEditablePolylinePoints.set(edge.id, clonePoints(edge.controlPoints));
|
|
5419
|
+
}
|
|
5420
|
+
}
|
|
5421
|
+
editablePolylinePointsEqual(a, b) {
|
|
5422
|
+
if (a.length !== b.length) {
|
|
5423
|
+
return false;
|
|
5424
|
+
}
|
|
5425
|
+
for (let i = 0; i < a.length; i++) {
|
|
5426
|
+
const p = a[i];
|
|
5427
|
+
const q = b[i];
|
|
5428
|
+
if (p.x !== q.x || p.y !== q.y) {
|
|
5429
|
+
return false;
|
|
5430
|
+
}
|
|
5431
|
+
}
|
|
5432
|
+
return true;
|
|
5433
|
+
}
|
|
5360
5434
|
changeNodeProperties(nodeId, apply) {
|
|
5361
5435
|
const node = this.renderer.getNode(nodeId);
|
|
5362
5436
|
if (!node) {
|
|
@@ -5476,17 +5550,19 @@ class InteractionManager {
|
|
|
5476
5550
|
this.dragManager.on("dragstart", (nodeIds) => {
|
|
5477
5551
|
this.connectionManager.disableHover();
|
|
5478
5552
|
this.dragStartPositions.clear();
|
|
5553
|
+
this.dragStartEditablePolylinePoints.clear();
|
|
5479
5554
|
for (const id of nodeIds) {
|
|
5480
5555
|
const node = this.renderer.getNode(id);
|
|
5481
5556
|
if (node) {
|
|
5482
5557
|
this.dragStartPositions.set(id, { x: node.x, y: node.y });
|
|
5483
5558
|
}
|
|
5484
5559
|
}
|
|
5560
|
+
this.snapshotEditablePolylineControlPointsForEdgesTouchingNodes(nodeIds);
|
|
5485
5561
|
});
|
|
5486
|
-
this.dragManager.on("dragend", (
|
|
5562
|
+
this.dragManager.on("dragend", () => {
|
|
5487
5563
|
this.connectionManager.enableHover();
|
|
5488
5564
|
const nodePositions = /* @__PURE__ */ new Map();
|
|
5489
|
-
for (const id of
|
|
5565
|
+
for (const id of this.dragStartPositions.keys()) {
|
|
5490
5566
|
const node = this.renderer.getNode(id);
|
|
5491
5567
|
const before = this.dragStartPositions.get(id);
|
|
5492
5568
|
if (!node || !before) continue;
|
|
@@ -5495,11 +5571,40 @@ class InteractionManager {
|
|
|
5495
5571
|
nodePositions.set(id, { before, after });
|
|
5496
5572
|
}
|
|
5497
5573
|
}
|
|
5498
|
-
|
|
5499
|
-
|
|
5500
|
-
|
|
5574
|
+
const polylineChanges = /* @__PURE__ */ new Map();
|
|
5575
|
+
for (const edge of this.renderer.edges.values()) {
|
|
5576
|
+
if (!edge.hasEditableControlPoints()) {
|
|
5577
|
+
continue;
|
|
5578
|
+
}
|
|
5579
|
+
const beforePts = this.dragStartEditablePolylinePoints.get(edge.id);
|
|
5580
|
+
if (beforePts === void 0) {
|
|
5581
|
+
continue;
|
|
5582
|
+
}
|
|
5583
|
+
const afterPts = clonePoints(edge.controlPoints);
|
|
5584
|
+
if (!this.editablePolylinePointsEqual(beforePts, afterPts)) {
|
|
5585
|
+
polylineChanges.set(edge.id, {
|
|
5586
|
+
before: clonePoints(beforePts),
|
|
5587
|
+
after: afterPts
|
|
5588
|
+
});
|
|
5589
|
+
}
|
|
5590
|
+
}
|
|
5591
|
+
const parts = [];
|
|
5592
|
+
if (polylineChanges.size > 0) {
|
|
5593
|
+
parts.push(
|
|
5594
|
+
new ChangeEditablePolylineControlPointsCommand(
|
|
5595
|
+
(id) => this.renderer.getEdge(id),
|
|
5596
|
+
polylineChanges
|
|
5597
|
+
)
|
|
5501
5598
|
);
|
|
5502
5599
|
}
|
|
5600
|
+
if (nodePositions.size > 0) {
|
|
5601
|
+
parts.push(new MoveNodesCommand((id) => this.renderer.getNode(id), nodePositions));
|
|
5602
|
+
}
|
|
5603
|
+
if (parts.length === 1) {
|
|
5604
|
+
this.historyManager.execute(parts[0]);
|
|
5605
|
+
} else if (parts.length > 1) {
|
|
5606
|
+
this.historyManager.execute(new CompositeCommand(parts));
|
|
5607
|
+
}
|
|
5503
5608
|
});
|
|
5504
5609
|
this.connectionManager.on("edgeReconnectStart", (edge, endpoint, original) => {
|
|
5505
5610
|
this.reconnectOrigins.set(edge.id, { endpoint, original: { ...original } });
|
|
@@ -12370,6 +12475,7 @@ export {
|
|
|
12370
12475
|
AnimationManager,
|
|
12371
12476
|
AutoLayout,
|
|
12372
12477
|
AutoRouting,
|
|
12478
|
+
ChangeEditablePolylineControlPointsCommand,
|
|
12373
12479
|
CircleNode,
|
|
12374
12480
|
CompositeCommand,
|
|
12375
12481
|
ConnectionManager,
|