Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
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);
this.engine.getModel().addLink(this.link);
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({ name: 'starting-state' });
this.childStates = [new SelectingState()];
this.dragCanvas = new DragCanvasState();
this.createLink = new CreateLinkState();
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) {
return;
}
// move the items (and potentially link points)
else {
this.transitionWithEvent(this.dragItems, event);
}
}