@soonspacejs/plugin-drawing-topology 2.11.32 → 2.11.34

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/index.d.ts CHANGED
@@ -5,11 +5,12 @@ export interface StartOptions extends TopologyInfo {
5
5
  onCancel?: () => void;
6
6
  onAdd?: (node: TopologyNodeInfo, intersectObject: Object3D) => void;
7
7
  onUndo?: (node: TopologyNodeInfo) => void;
8
- onDone?: (nodes: TopologyNodeInfo[]) => void;
8
+ onDone?: (nodes: TopologyNodeInfo[], topology: Topology | null) => void;
9
9
  }
10
10
  export default class DrawIngTopologyPlugin {
11
11
  readonly ssp: SoonSpace;
12
12
  readonly viewport: SoonSpace['viewport'];
13
+ drawing: boolean;
13
14
  nodes: TopologyNodeInfo[];
14
15
  topology: Topology | null;
15
16
  private mouseDownNode;
@@ -18,6 +19,9 @@ export default class DrawIngTopologyPlugin {
18
19
  private options;
19
20
  constructor(ssp: SoonSpace);
20
21
  start(options: StartOptions): void;
22
+ undo(): void;
23
+ done(): void;
24
+ cancel(): void;
21
25
  private stop;
22
26
  private onMouseDowm;
23
27
  private onMouseMove;
@@ -26,6 +30,5 @@ export default class DrawIngTopologyPlugin {
26
30
  private onRightClick;
27
31
  private onKeyUp;
28
32
  private pushNode;
29
- private popNode;
30
33
  private renderTopology;
31
34
  }
package/dist/index.esm.js CHANGED
@@ -1 +1 @@
1
- class s{constructor(s){this.ssp=s,this.nodes=[],this.topology=null,this.mouseDownNode=null,this.mouseDownObject=null,this.mouseMoveNode=null,this.options={id:"drawing_topology",type:"line",nodes:[]},this.viewport=s.viewport,this.onMouseDowm=this.onMouseDowm.bind(this),this.onMouseMove=this.onMouseMove.bind(this),this.onClick=this.onClick.bind(this),this.onDblClick=this.onDblClick.bind(this),this.onRightClick=this.onRightClick.bind(this),this.onKeyUp=this.onKeyUp.bind(this)}start(s){this.options=s,this.ssp.signals.mouseDown.add(this.onMouseDowm),this.ssp.signals.mouseMove.add(this.onMouseMove),this.ssp.signals.click.add(this.onClick),this.ssp.signals.dblClick.add(this.onDblClick),this.ssp.signals.rightClick.add(this.onRightClick),this.ssp.signals.keyUp.add(this.onKeyUp)}stop(){this.nodes=[],this.mouseDownNode=null,this.mouseDownObject=null,this.mouseMoveNode=null,this.options={id:"drawing_topology",type:"line",nodes:[]},this.ssp.signals.mouseDown.remove(this.onMouseDowm),this.ssp.signals.mouseMove.remove(this.onMouseMove),this.ssp.signals.click.remove(this.onClick),this.ssp.signals.dblClick.remove(this.onDblClick),this.ssp.signals.rightClick.remove(this.onRightClick),this.ssp.signals.keyUp.remove(this.onKeyUp)}onMouseDowm(s){const[o]=this.ssp.viewport.getIntersects(s);if(o){const{object:s,point:i}=o;this.mouseDownNode={id:`node${this.nodes.length+1}`,name:`node${this.nodes.length+1}`,position:i.setY(i.y+.01),graphs:[]},this.mouseDownObject=s}}onMouseMove(s){const[o]=this.ssp.viewport.getIntersects(s);o&&(this.mouseMoveNode={id:`node${this.nodes.length+1}`,name:`node${this.nodes.length+1}`,position:o.point.clone().setY(o.point.y),graphs:[]},this.renderTopology([...this.nodes,this.mouseMoveNode]))}onClick(){this.pushNode()}onDblClick(){var s,o;this.pushNode(),null===(o=(s=this.options).onDone)||void 0===o||o.call(s,[...this.nodes]),this.stop()}onRightClick(s){this.popNode()}onKeyUp(s){var o,i,t,e;switch(s.code){case"Backspace":this.popNode();break;case"Enter":this.renderTopology(this.nodes),null===(i=(o=this.options).onDone)||void 0===i||i.call(o,[...this.nodes]),this.stop();break;case"Escape":this.ssp.removeTopologyById(this.options.id),null===(e=(t=this.options).onCancel)||void 0===e||e.call(t),this.stop()}}pushNode(){var s,o;this.mouseDownNode&&this.mouseDownObject&&(this.nodes.push(this.mouseDownNode),this.renderTopology(this.nodes),null===(o=(s=this.options).onAdd)||void 0===o||o.call(s,this.mouseDownNode,this.mouseDownObject),this.mouseDownNode=null,this.mouseDownObject=null)}popNode(){var s,o;const i=this.nodes.pop();i&&(this.renderTopology(this.nodes),null===(o=(s=this.options).onUndo)||void 0===o||o.call(s,i))}renderTopology(s){this.topology?this.ssp.resetTopologyNodes(this.topology,s):this.topology=this.ssp.createTopology(Object.assign(Object.assign({},this.options),{type:"line",nodes:s}))}}export{s as default};
1
+ import s from"soonspacejs";const{randomString:o}=s.utils;class i{constructor(s){this.ssp=s,this.drawing=!1,this.nodes=[],this.topology=null,this.mouseDownNode=null,this.mouseDownObject=null,this.mouseMoveNode=null,this.options={id:"drawing_topology",type:"line",nodes:[]},this.viewport=s.viewport,this.onMouseDowm=this.onMouseDowm.bind(this),this.onMouseMove=this.onMouseMove.bind(this),this.onClick=this.onClick.bind(this),this.onDblClick=this.onDblClick.bind(this),this.onRightClick=this.onRightClick.bind(this),this.onKeyUp=this.onKeyUp.bind(this)}start(s){this.options=s,this.drawing=!0,this.ssp.signals.mouseDown.add(this.onMouseDowm),this.ssp.signals.mouseMove.add(this.onMouseMove),this.ssp.signals.click.add(this.onClick),this.ssp.signals.dblClick.add(this.onDblClick),this.ssp.signals.rightClick.add(this.onRightClick),this.ssp.signals.keyUp.add(this.onKeyUp)}undo(){var s,o;const i=this.nodes.pop();i&&(this.renderTopology(this.nodes),null===(o=(s=this.options).onUndo)||void 0===o||o.call(s,i))}done(){var s,o;this.renderTopology(this.nodes),null===(o=(s=this.options).onDone)||void 0===o||o.call(s,[...this.nodes],this.topology),this.stop()}cancel(){var s,o;this.topology&&this.ssp.removeObject(this.topology),null===(o=(s=this.options).onCancel)||void 0===o||o.call(s),this.stop()}stop(){this.nodes=[],this.topology=null,this.mouseDownNode=null,this.mouseDownObject=null,this.mouseMoveNode=null,this.options={id:"drawing_topology",type:"line",nodes:[]},this.drawing=!1,this.ssp.signals.mouseDown.remove(this.onMouseDowm),this.ssp.signals.mouseMove.remove(this.onMouseMove),this.ssp.signals.click.remove(this.onClick),this.ssp.signals.dblClick.remove(this.onDblClick),this.ssp.signals.rightClick.remove(this.onRightClick),this.ssp.signals.keyUp.remove(this.onKeyUp)}onMouseDowm(s){const[i]=this.ssp.viewport.getIntersects(s);if(i){const{object:s,point:t}=i,e=o();this.mouseDownNode={id:`node${e}`,name:`node${e}`,position:t.setY(t.y+.01),graphs:[]},this.mouseDownObject=s}}onMouseMove(s){const[i]=this.ssp.viewport.getIntersects(s);if(i){const s=o();this.mouseMoveNode={id:`node${s}`,name:`node${s}`,position:i.point.clone().setY(i.point.y),graphs:[]},this.renderTopology([...this.nodes,this.mouseMoveNode])}}onClick(){this.pushNode()}onDblClick(){var s,o;this.pushNode(),null===(o=(s=this.options).onDone)||void 0===o||o.call(s,[...this.nodes],this.topology),this.stop()}onRightClick(){this.undo()}onKeyUp(s){switch(s.code){case"Backspace":this.undo();break;case"Enter":this.done();break;case"Escape":this.cancel()}}pushNode(){var s,o;this.mouseDownNode&&this.mouseDownObject&&(this.nodes.push(this.mouseDownNode),this.renderTopology(this.nodes),null===(o=(s=this.options).onAdd)||void 0===o||o.call(s,this.mouseDownNode,this.mouseDownObject),this.mouseDownNode=null,this.mouseDownObject=null)}renderTopology(s){this.topology?this.ssp.resetTopologyNodes(this.topology,s):this.topology=this.ssp.createTopology(Object.assign(Object.assign({},this.options),{type:"line",nodes:s}))}}export{i as default};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@soonspacejs/plugin-drawing-topology",
3
3
  "pluginName": "DrawingTopologyPlugin",
4
- "version": "2.11.32",
4
+ "version": "2.11.34",
5
5
  "description": "DrawingTopologyPlugin plugin for SoonSpace.js",
6
6
  "main": "dist/index.esm.js",
7
7
  "module": "dist/index.esm.js",
@@ -13,8 +13,8 @@
13
13
  ],
14
14
  "author": "xunwei",
15
15
  "license": "UNLICENSED",
16
- "gitHead": "2e35b99ca0c9957bfbc384500c2b9757cef64d6c",
16
+ "gitHead": "fc20122b59cab7d4208cf2ecefff34ae23f259bb",
17
17
  "peerDependencies": {
18
- "soonspacejs": "2.11.32"
18
+ "soonspacejs": "2.11.34"
19
19
  }
20
20
  }