diff --git a/package.json b/package.json index 37b92022..dc912301 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rete", - "version": "1.4.0", + "version": "1.4.1-rc.1", "description": "JavaScript framework", "main": "build/rete.common.js", "module": "build/rete.esm.js", diff --git a/src/events.ts b/src/events.ts index b7e93857..27e869b7 100644 --- a/src/events.ts +++ b/src/events.ts @@ -27,6 +27,7 @@ export class EditorEvents extends Events { nodetranslated: [], nodedraged: [], selectnode: [], + multiselectnode: [], nodeselect: [], nodeselected: [], rendernode: [], @@ -68,6 +69,11 @@ export interface EventsTypes extends DefaultEventsTypes { node: Node; accumulate: boolean; }; + multiselectnode: { + node: Node; + accumulate: boolean; + e: MouseEvent; + }; nodeselect: Node; nodeselected: Node; rendernode: { diff --git a/src/view/node.ts b/src/view/node.ts index d82de947..3459ffef 100644 --- a/src/view/node.ts +++ b/src/view/node.ts @@ -70,9 +70,12 @@ export class NodeView extends Emitter { return socket.getPosition(this.node); } - onSelect(e: MouseEvent) { + onSelect(e: MouseEvent) { + const payload = { node: this.node, accumulate: e.ctrlKey, e }; + this.onStart(); - this.trigger('selectnode', { node: this.node, accumulate: e.ctrlKey }); + this.trigger('multiselectnode', payload); + this.trigger('selectnode', payload); } onStart() {