Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
this.transitionWithEvent(this.dragCanvas, event);
}
// initiate dragging a new link
else if (element instanceof PortModel) {
return;
}
// move the items (and potentially link points)
else {
this.transitionWithEvent(this.dragItems, event);
}
}
})
);
this.registerAction(
new Action({
type: InputType.MOUSE_UP,
fire: (event: ActionEvent) => {
const element = this.engine.getActionEventBus().getModelForEvent(event);
if (element instanceof PortModel) this.transitionWithEvent(this.createLink, event);
}
})
);
}
}
this.link.setTargetPort(element);
element.reportPosition();
this.clearState();
this.eject();
}
} else if (element === this.link.getLastPoint()) {
this.link.point(clientX - ox, clientY - oy, -1);
}
this.engine.repaintCanvas();
}
})
);
this.registerAction(
new Action({
type: InputType.MOUSE_MOVE,
fire: (actionEvent: ActionEvent) => {
if (!this.link) return;
const { event } = actionEvent;
this.link.getLastPoint().setPosition(event.clientX, event.clientY);
this.engine.repaintCanvas();
}
})
);
this.registerAction(
new Action({
type: InputType.KEY_UP,
fire: (actionEvent: ActionEvent) => {
// on esc press remove any started link and pop back to default state
if (actionEvent.event.keyCode === 27) {
constructor() {
super({
name: 'default-diagrams'
});
this.childStates = [new SelectingState()];
this.dragCanvas = new DragCanvasState();
this.dragNewLink = new DragNewLinkState();
this.dragItems = new DragDiagramItemsState();
// determine what was clicked on
this.registerAction(
new Action({
type: InputType.MOUSE_DOWN,
fire: (event: ActionEvent) => {
const element = this.engine.getActionEventBus().getModelForEvent(event);
// the canvas was clicked on, transition to the dragging canvas state
if (!element) {
this.transitionWithEvent(this.dragCanvas, event);
}
// initiate dragging a new link
else if (element instanceof PortModel) {
this.transitionWithEvent(this.dragNewLink, event);
}
// move the items (and potentially link points)
else {
this.transitionWithEvent(this.dragItems, event);
}
constructor() {
super();
this.registerAction(
new Action({
type: InputType.MOUSE_UP,
fire: (event: ActionEvent) => {
const item = this.engine.getMouseElement(event.event);
if (item instanceof PortModel) {
_.forEach(this.initialPositions, position => {
if (position.item instanceof PointModel) {
const link = position.item.getParent() as LinkModel;
// only care about the last links
if (link.getLastPoint() !== position.item) {
return;
}
if (link.getSourcePort().canLinkToPort(item)) {
link.setTargetPort(item);
item.reportPosition();
this.engine.repaintCanvas();
constructor(options: DragNewLinkStateOptions = {}) {
super({
name: 'drag-new-link'
});
this.config = {
allowLooseLinks: true,
allowLinksFromLockedPorts: false,
...options
};
this.registerAction(
new Action({
type: InputType.MOUSE_DOWN,
fire: (event: ActionEvent) => {
this.port = this.engine.getMouseElement(event.event) as PortModel;
if (!this.config.allowLinksFromLockedPorts && this.port.isLocked()) {
this.eject();
return;
}
this.link = this.port.createLinkModel();
// if no link is given, just eject the state
if (!this.link) {
this.eject();
return;
}
this.link.setSelected(true);
this.link.setSourcePort(this.port);
stateChanged: event => {
if (event.newState instanceof AbstractDisplacementState) {
const deRegister = engine.getActionEventBus().registerAction(
new Action({
type: InputType.MOUSE_UP,
fire: () => {
this.calculateRoutingMatrix();
engine.repaintCanvas();
deRegister();
}
})
);
}
}
});