ngx-vflow 0.13.0-0 → 0.13.0

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.
Files changed (26) hide show
  1. package/esm2022/lib/vflow/components/node/node.component.mjs +3 -3
  2. package/esm2022/lib/vflow/components/vflow/vflow.component.mjs +13 -4
  3. package/esm2022/lib/vflow/directives/root-pointer.directive.mjs +1 -1
  4. package/esm2022/lib/vflow/directives/selectable.directive.mjs +5 -2
  5. package/esm2022/lib/vflow/public-components/resizable/resizable.component.mjs +124 -180
  6. package/esm2022/lib/vflow/services/draggable.service.mjs +40 -19
  7. package/esm2022/lib/vflow/services/keyboard.service.mjs +45 -0
  8. package/esm2022/lib/vflow/services/node-changes.service.mjs +6 -7
  9. package/esm2022/lib/vflow/services/selection.service.mjs +12 -5
  10. package/esm2022/lib/vflow/types/keyboard-action.type.mjs +2 -0
  11. package/esm2022/lib/vflow/utils/get-os.mjs +24 -0
  12. package/esm2022/public-api.mjs +2 -1
  13. package/fesm2022/ngx-vflow.mjs +257 -214
  14. package/fesm2022/ngx-vflow.mjs.map +1 -1
  15. package/lib/vflow/components/vflow/vflow.component.d.ts +4 -1
  16. package/lib/vflow/directives/root-pointer.directive.d.ts +10 -16
  17. package/lib/vflow/directives/space-point-context.directive.d.ts +1 -15
  18. package/lib/vflow/models/edge.model.d.ts +17 -1
  19. package/lib/vflow/public-components/resizable/resizable.component.d.ts +6 -11
  20. package/lib/vflow/services/draggable.service.d.ts +2 -0
  21. package/lib/vflow/services/keyboard.service.d.ts +11 -0
  22. package/lib/vflow/services/selection.service.d.ts +1 -0
  23. package/lib/vflow/types/keyboard-action.type.d.ts +2 -0
  24. package/lib/vflow/utils/get-os.d.ts +1 -0
  25. package/package.json +1 -1
  26. package/public-api.d.ts +1 -0
@@ -0,0 +1,45 @@
1
+ import { Injectable, signal } from '@angular/core';
2
+ import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
3
+ import { fromEvent, merge, switchMap, tap } from 'rxjs';
4
+ import { getOS } from '../utils/get-os';
5
+ import * as i0 from "@angular/core";
6
+ export class KeyboardService {
7
+ constructor() {
8
+ this.actions = signal({
9
+ multiSelection: [
10
+ getOS() === 'macos' ? 'MetaLeft' : 'ControlLeft',
11
+ getOS() === 'macos' ? 'MetaRight' : 'ControlRight',
12
+ ]
13
+ });
14
+ this.actionsActive = {
15
+ multiSelection: false
16
+ };
17
+ toObservable(this.actions).pipe(switchMap(() => merge(fromEvent(document, 'keydown').pipe(tap(event => {
18
+ for (const action in this.actions()) {
19
+ const keyCodes = this.actions()[action] ?? [];
20
+ if (keyCodes.includes(event.code)) {
21
+ this.actionsActive[action] = true;
22
+ }
23
+ }
24
+ })), fromEvent(document, 'keyup').pipe(tap(event => {
25
+ for (const action in this.actions()) {
26
+ const keyCodes = this.actions()[action] ?? [];
27
+ if (keyCodes.includes(event.code)) {
28
+ this.actionsActive[action] = false;
29
+ }
30
+ }
31
+ })))), takeUntilDestroyed()).subscribe();
32
+ }
33
+ setShortcuts(newActions) {
34
+ this.actions.update((actions) => ({ ...actions, ...newActions }));
35
+ }
36
+ isActiveAction(action) {
37
+ return this.actionsActive[action];
38
+ }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: KeyboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
40
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: KeyboardService }); }
41
+ }
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: KeyboardService, decorators: [{
43
+ type: Injectable
44
+ }], ctorParameters: function () { return []; } });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9zZXJ2aWNlcy9rZXlib2FyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUVuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBR3hDLE1BQU0sT0FBTyxlQUFlO0lBWTFCO1FBWFEsWUFBTyxHQUFzQyxNQUFNLENBQUM7WUFDMUQsY0FBYyxFQUFFO2dCQUNkLEtBQUssRUFBRSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxhQUFhO2dCQUNoRCxLQUFLLEVBQUUsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsY0FBYzthQUNuRDtTQUNGLENBQUMsQ0FBQztRQUVLLGtCQUFhLEdBQW9DO1lBQ3ZELGNBQWMsRUFBRSxLQUFLO1NBQ3RCLENBQUM7UUFHQSxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDN0IsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUNiLEtBQUssQ0FDSCxTQUFTLENBQWdCLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQ2hELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNWLEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNuQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBd0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFFaEUsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUF3QixDQUFDLEdBQUcsSUFBSSxDQUFDO2lCQUNyRDthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsRUFFRCxTQUFTLENBQWdCLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQzlDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNWLEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNuQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBd0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFFaEUsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUF3QixDQUFDLEdBQUcsS0FBSyxDQUFDO2lCQUN0RDthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUNGLEVBQ0Qsa0JBQWtCLEVBQUUsQ0FDckIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRU0sWUFBWSxDQUFDLFVBQTZCO1FBQy9DLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVNLGNBQWMsQ0FBQyxNQUFzQjtRQUMxQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDbkMsQ0FBQzsrR0FuRFUsZUFBZTttSEFBZixlQUFlOzs0RkFBZixlQUFlO2tCQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS2V5Ym9hcmRBY3Rpb24sIEtleWJvYXJkU2hvcnRjdXRzIH0gZnJvbSAnLi4vdHlwZXMva2V5Ym9hcmQtYWN0aW9uLnR5cGUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkLCB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZ2V0T1MgfSBmcm9tICcuLi91dGlscy9nZXQtb3MnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgS2V5Ym9hcmRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBhY3Rpb25zOiBXcml0YWJsZVNpZ25hbDxLZXlib2FyZFNob3J0Y3V0cz4gPSBzaWduYWwoe1xuICAgIG11bHRpU2VsZWN0aW9uOiBbXG4gICAgICBnZXRPUygpID09PSAnbWFjb3MnID8gJ01ldGFMZWZ0JyA6ICdDb250cm9sTGVmdCcsXG4gICAgICBnZXRPUygpID09PSAnbWFjb3MnID8gJ01ldGFSaWdodCcgOiAnQ29udHJvbFJpZ2h0JyxcbiAgICBdXG4gIH0pO1xuXG4gIHByaXZhdGUgYWN0aW9uc0FjdGl2ZTogUmVjb3JkPEtleWJvYXJkQWN0aW9uLCBib29sZWFuPiA9IHtcbiAgICBtdWx0aVNlbGVjdGlvbjogZmFsc2VcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0b09ic2VydmFibGUodGhpcy5hY3Rpb25zKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgIG1lcmdlKFxuICAgICAgICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pihkb2N1bWVudCwgJ2tleWRvd24nKS5waXBlKFxuICAgICAgICAgICAgdGFwKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgZm9yIChjb25zdCBhY3Rpb24gaW4gdGhpcy5hY3Rpb25zKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXlDb2RlcyA9IHRoaXMuYWN0aW9ucygpW2FjdGlvbiBhcyBLZXlib2FyZEFjdGlvbl0gPz8gW107XG5cbiAgICAgICAgICAgICAgICBpZiAoa2V5Q29kZXMuaW5jbHVkZXMoZXZlbnQuY29kZSkpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aW9uc0FjdGl2ZVthY3Rpb24gYXMgS2V5Ym9hcmRBY3Rpb25dID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKSxcblxuICAgICAgICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pihkb2N1bWVudCwgJ2tleXVwJykucGlwZShcbiAgICAgICAgICAgIHRhcChldmVudCA9PiB7XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgYWN0aW9uIGluIHRoaXMuYWN0aW9ucygpKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5Q29kZXMgPSB0aGlzLmFjdGlvbnMoKVthY3Rpb24gYXMgS2V5Ym9hcmRBY3Rpb25dID8/IFtdO1xuXG4gICAgICAgICAgICAgICAgaWYgKGtleUNvZGVzLmluY2x1ZGVzKGV2ZW50LmNvZGUpKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbnNBY3RpdmVbYWN0aW9uIGFzIEtleWJvYXJkQWN0aW9uXSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICksXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKVxuICAgICkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0U2hvcnRjdXRzKG5ld0FjdGlvbnM6IEtleWJvYXJkU2hvcnRjdXRzKSB7XG4gICAgdGhpcy5hY3Rpb25zLnVwZGF0ZSgoYWN0aW9ucykgPT4gKHsgLi4uYWN0aW9ucywgLi4ubmV3QWN0aW9ucyB9KSk7XG4gIH1cblxuICBwdWJsaWMgaXNBY3RpdmVBY3Rpb24oYWN0aW9uOiBLZXlib2FyZEFjdGlvbikge1xuICAgIHJldHVybiB0aGlzLmFjdGlvbnNBY3RpdmVbYWN0aW9uXVxuICB9XG59XG4iXX0=
@@ -14,12 +14,11 @@ export class NodesChangeService {
14
14
  // Check for nodes list change and watch for specific node from this list change its position
15
15
  switchMap((nodes) => merge(...nodes.map(node => node.point$.pipe(
16
16
  // skip initial position from signal
17
- skip(1), map(() => node))))),
18
- // For now it's a single node, later this list will also be filled
19
- // with child node position changes
20
- map(changedNode => [
21
- { type: 'position', id: changedNode.node.id, point: changedNode.point() }
22
- ]));
17
+ skip(1), map(() => node))))), map((changedNode) => {
18
+ return this.entitiesService.nodes()
19
+ .filter(node => node === changedNode || node.selected())
20
+ .map(node => ({ type: 'position', id: node.node.id, point: node.point() }));
21
+ }));
23
22
  this.nodeSizeChange$ = toObservable(this.entitiesService.nodes)
24
23
  .pipe(switchMap((nodes) => merge(...nodes.map(node => node.size$.pipe(skip(1), map(() => node))))), map(changedNode => [
25
24
  { type: 'size', id: changedNode.node.id, size: changedNode.size() }
@@ -43,4 +42,4 @@ export class NodesChangeService {
43
42
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NodesChangeService, decorators: [{
44
43
  type: Injectable
45
44
  }] });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1jaGFuZ2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvc2VydmljZXMvbm9kZS1jaGFuZ2VzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksR0FBRyxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBYyxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUdsSSxtREFBbUQ7QUFDbkQseUNBQXlDO0FBQ3pDLE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxDQUFBO0FBRzlCLE1BQU0sT0FBTyxrQkFBa0I7SUFEL0I7UUFFWSxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBRTdDLHlCQUFvQixHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQzthQUN0RSxJQUFJO1FBQ0gsNkZBQTZGO1FBQzdGLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2xCLEtBQUssQ0FDSCxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJO1FBQ2Qsb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQ2hCLENBQ0YsQ0FDRixDQUNGO1FBQ0Qsa0VBQWtFO1FBQ2xF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QUMsRUFDUCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQ2hCLENBQ0YsQ0FDRixDQUNGLEVBQ0QsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUNuQixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLEVBQUU7U0FDOUUsQ0FBQyxDQUNnQyxDQUFBO1FBRXRCLGFBQVEsR0FBNkIsS0FBSyxDQUN4RCxJQUFJLENBQUMsb0JBQW9CLEVBQ3pCLElBQUksQ0FBQyxlQUFlLEVBQ3BCLElBQUksQ0FBQyxjQUFjLEVBQ25CLElBQUksQ0FBQyxpQkFBaUIsRUFDdEIsSUFBSSxDQUFDLG1CQUFtQixDQUN6QixDQUFDLElBQUk7UUFDSixtREFBbUQ7UUFDbkQsNkNBQTZDO1FBQzdDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLENBQUMsQ0FDL0MsQ0FBQTtLQUNGOytHQTlGWSxrQkFBa0I7bUhBQWxCLGtCQUFrQjs7NEZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmxvd0VudGl0aWVzU2VydmljZSB9IGZyb20gJy4vZmxvdy1lbnRpdGllcy5zZXJ2aWNlJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBhc3luY1NjaGVkdWxlciwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBtZXJnZSwgb2JzZXJ2ZU9uLCBwYWlyd2lzZSwgc2tpcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOb2RlQ2hhbmdlIH0gZnJvbSAnLi4vdHlwZXMvbm9kZS1jaGFuZ2UudHlwZSc7XG5cbi8vIHRoaXMgZGVsYXkgZml4ZXMgdGhlIGNhc2VzIHdoZW4gY2hhbmdlIHRyaWdnZXJlZFxuLy8gYnV0IHRoZSBmbG93IG5vdCB5ZXQgZnlsbHkgcmUtcmVuZGVyZWRcbmNvbnN0IERFTEFZX0ZPUl9TQ0hFRFVMRVIgPSAyNVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTm9kZXNDaGFuZ2VTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIGVudGl0aWVzU2VydmljZSA9IGluamVjdChGbG93RW50aXRpZXNTZXJ2aWNlKVxuXG4gIHByb3RlY3RlZCBub2Rlc1Bvc2l0aW9uQ2hhbmdlJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmVudGl0aWVzU2VydmljZS5ub2RlcylcbiAgICAucGlwZShcbiAgICAgIC8vIENoZWNrIGZvciBub2RlcyBsaXN0IGNoYW5nZSBhbmQgd2F0Y2ggZm9yIHNwZWNpZmljIG5vZGUgZnJvbSB0aGlzIGxpc3QgY2hhbmdlIGl0cyBwb3NpdGlvblxuICAgICAgc3dpdGNoTWFwKChub2RlcykgPT5cbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgLi4ubm9kZXMubWFwKG5vZGUgPT5cbiAgICAgICAgICAgIG5vZGUucG9pbnQkLnBpcGUoXG4gICAgICAgICAgICAgIC8vIHNraXAgaW5pdGlhbCBwb3NpdGlvbiBmcm9tIHNpZ25hbFxuICAgICAgICAgICAgICBza2lwKDEpLFxuICAgICAgICAgICAgICBtYXAoKCkgPT4gbm9kZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICksXG4gICAgICAvLyBGb3Igbm93IGl0J3MgYSBzaW5nbGUgbm9kZSwgbGF0ZXIgdGhpcyBsaXN0IHdpbGwgYWxzbyBiZSBmaWxsZWRcbiAgICAgIC8vIHdpdGggY2hpbGQgbm9kZSBwb3NpdGlvbiBjaGFuZ2VzXG4gICAgICBtYXAoY2hhbmdlZE5vZGUgPT4gW1xuICAgICAgICB7IHR5cGU6ICdwb3NpdGlvbicsIGlkOiBjaGFuZ2VkTm9kZS5ub2RlLmlkLCBwb2ludDogY2hhbmdlZE5vZGUucG9pbnQoKSB9XG4gICAgICBdKVxuICAgICkgc2F0aXNmaWVzIE9ic2VydmFibGU8Tm9kZUNoYW5nZVtdPlxuXG4gIHByb3RlY3RlZCBub2RlU2l6ZUNoYW5nZSQgPSB0b09ic2VydmFibGUodGhpcy5lbnRpdGllc1NlcnZpY2Uubm9kZXMpXG4gICAgLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKG5vZGVzKSA9PlxuICAgICAgICBtZXJnZShcbiAgICAgICAgICAuLi5ub2Rlcy5tYXAobm9kZSA9PlxuICAgICAgICAgICAgbm9kZS5zaXplJC5waXBlKFxuICAgICAgICAgICAgICBza2lwKDEpLFxuICAgICAgICAgICAgICBtYXAoKCkgPT4gbm9kZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICksXG4gICAgICBtYXAoY2hhbmdlZE5vZGUgPT4gW1xuICAgICAgICB7IHR5cGU6ICdzaXplJywgaWQ6IGNoYW5nZWROb2RlLm5vZGUuaWQsIHNpemU6IGNoYW5nZWROb2RlLnNpemUoKSB9XG4gICAgICBdKVxuICAgICkgc2F0aXNmaWVzIE9ic2VydmFibGU8Tm9kZUNoYW5nZVtdPlxuXG4gIHByb3RlY3RlZCBub2RlQWRkQ2hhbmdlJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmVudGl0aWVzU2VydmljZS5ub2RlcylcbiAgICAucGlwZShcbiAgICAgIHBhaXJ3aXNlKCksXG4gICAgICBtYXAoKFtvbGRMaXN0LCBuZXdMaXN0XSkgPT5cbiAgICAgICAgbmV3TGlzdC5maWx0ZXIobm9kZSA9PiAhb2xkTGlzdC5pbmNsdWRlcyhub2RlKSlcbiAgICAgICksXG4gICAgICBmaWx0ZXIoKG5vZGVzKSA9PiAhIW5vZGVzLmxlbmd0aCksXG4gICAgICBtYXAoKG5vZGVzKSA9PlxuICAgICAgICBub2Rlcy5tYXAobm9kZSA9PiAoeyB0eXBlOiAnYWRkJywgaWQ6IG5vZGUubm9kZS5pZCB9KSlcbiAgICAgIClcbiAgICApIHNhdGlzZmllcyBPYnNlcnZhYmxlPE5vZGVDaGFuZ2VbXT5cblxuICBwcm90ZWN0ZWQgbm9kZVJlbW92ZUNoYW5nZSQgPSB0b09ic2VydmFibGUodGhpcy5lbnRpdGllc1NlcnZpY2Uubm9kZXMpXG4gICAgLnBpcGUoXG4gICAgICBwYWlyd2lzZSgpLFxuICAgICAgbWFwKChbb2xkTGlzdCwgbmV3TGlzdF0pID0+XG4gICAgICAgIG9sZExpc3QuZmlsdGVyKG5vZGUgPT4gIW5ld0xpc3QuaW5jbHVkZXMobm9kZSkpXG4gICAgICApLFxuICAgICAgZmlsdGVyKChub2RlcykgPT4gISFub2Rlcy5sZW5ndGgpLFxuICAgICAgbWFwKChub2RlcykgPT5cbiAgICAgICAgbm9kZXMubWFwKG5vZGUgPT4gKHsgdHlwZTogJ3JlbW92ZScsIGlkOiBub2RlLm5vZGUuaWQgfSkpXG4gICAgICApXG4gICAgKSBzYXRpc2ZpZXMgT2JzZXJ2YWJsZTxOb2RlQ2hhbmdlW10+XG5cbiAgcHJvdGVjdGVkIG5vZGVTZWxlY3RlZENoYW5nZSQgPSB0b09ic2VydmFibGUodGhpcy5lbnRpdGllc1NlcnZpY2Uubm9kZXMpXG4gICAgLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKG5vZGVzKSA9PlxuICAgICAgICBtZXJnZShcbiAgICAgICAgICAuLi5ub2Rlcy5tYXAobm9kZSA9PlxuICAgICAgICAgICAgbm9kZS5zZWxlY3RlZCQucGlwZShcbiAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgICAgc2tpcCgxKSxcbiAgICAgICAgICAgICAgbWFwKCgpID0+IG5vZGUpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKSxcbiAgICAgIG1hcCgoY2hhbmdlZE5vZGUpID0+IFtcbiAgICAgICAgeyB0eXBlOiAnc2VsZWN0JywgaWQ6IGNoYW5nZWROb2RlLm5vZGUuaWQsIHNlbGVjdGVkOiBjaGFuZ2VkTm9kZS5zZWxlY3RlZCgpIH1cbiAgICAgIF0pXG4gICAgKSBzYXRpc2ZpZXMgT2JzZXJ2YWJsZTxOb2RlQ2hhbmdlW10+XG5cbiAgcHVibGljIHJlYWRvbmx5IGNoYW5nZXMkOiBPYnNlcnZhYmxlPE5vZGVDaGFuZ2VbXT4gPSBtZXJnZShcbiAgICB0aGlzLm5vZGVzUG9zaXRpb25DaGFuZ2UkLFxuICAgIHRoaXMubm9kZVNpemVDaGFuZ2UkLFxuICAgIHRoaXMubm9kZUFkZENoYW5nZSQsXG4gICAgdGhpcy5ub2RlUmVtb3ZlQ2hhbmdlJCxcbiAgICB0aGlzLm5vZGVTZWxlY3RlZENoYW5nZSRcbiAgKS5waXBlKFxuICAgIC8vIHRoaXMgZml4ZXMgYSBidWcgd2hlbiBvbiBmaXJlIG5vZGUgZXZlbnQgY2hhbmdlLFxuICAgIC8vIHlvdSBjYW4ndCBnZXQgdmFsaWQgbGlzdCBvZiBkZXRhY2hlZCBlZGdlc1xuICAgIG9ic2VydmVPbihhc3luY1NjaGVkdWxlciwgREVMQVlfRk9SX1NDSEVEVUxFUiksXG4gIClcbn1cbiJdfQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1jaGFuZ2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvc2VydmljZXMvbm9kZS1jaGFuZ2VzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksR0FBRyxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBYyxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFPLE1BQU0sTUFBTSxDQUFDOztBQUd2SSxtREFBbUQ7QUFDbkQseUNBQXlDO0FBQ3pDLE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxDQUFBO0FBRzlCLE1BQU0sT0FBTyxrQkFBa0I7SUFEL0I7UUFFWSxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBRTdDLHlCQUFvQixHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQzthQUN0RSxJQUFJO1FBQ0gsNkZBQTZGO1FBQzdGLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2xCLEtBQUssQ0FDSCxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJO1FBQ2Qsb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQ2hCLENBQ0YsQ0FDRixDQUNGLEVBQ0QsR0FBRyxDQUFDLENB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Q0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2xCLEtBQUssQ0FDSCxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ2pCLG9CQUFvQixFQUFFLEVBQ3RCLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQ2hCLENBQ0YsQ0FDRixDQUNGLEVBQ0QsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUNuQixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLEVBQUU7U0FDOUUsQ0FBQyxDQUNnQyxDQUFBO1FBRXRCLGFBQVEsR0FBNkIsS0FBSyxDQUN4RCxJQUFJLENBQUMsb0JBQW9CLEVBQ3pCLElBQUksQ0FBQyxlQUFlLEVBQ3BCLElBQUksQ0FBQyxjQUFjLEVBQ25CLElBQUksQ0FBQyxpQkFBaUIsRUFDdEIsSUFBSSxDQUFDLG1CQUFtQixDQUN6QixDQUFDLElBQUk7UUFDSixtREFBbUQ7UUFDbkQsNkNBQTZDO1FBQzdDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLENBQUMsQ0FDL0MsQ0FBQTtLQUNGOytHQTlGWSxrQkFBa0I7bUhBQWxCLGtCQUFrQjs7NEZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmxvd0VudGl0aWVzU2VydmljZSB9IGZyb20gJy4vZmxvdy1lbnRpdGllcy5zZXJ2aWNlJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBhc3luY1NjaGVkdWxlciwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBtZXJnZSwgb2JzZXJ2ZU9uLCBwYWlyd2lzZSwgc2tpcCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5vZGVDaGFuZ2UgfSBmcm9tICcuLi90eXBlcy9ub2RlLWNoYW5nZS50eXBlJztcblxuLy8gdGhpcyBkZWxheSBmaXhlcyB0aGUgY2FzZXMgd2hlbiBjaGFuZ2UgdHJpZ2dlcmVkXG4vLyBidXQgdGhlIGZsb3cgbm90IHlldCBmeWxseSByZS1yZW5kZXJlZFxuY29uc3QgREVMQVlfRk9SX1NDSEVEVUxFUiA9IDI1XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOb2Rlc0NoYW5nZVNlcnZpY2Uge1xuICBwcm90ZWN0ZWQgZW50aXRpZXNTZXJ2aWNlID0gaW5qZWN0KEZsb3dFbnRpdGllc1NlcnZpY2UpXG5cbiAgcHJvdGVjdGVkIG5vZGVzUG9zaXRpb25DaGFuZ2UkID0gdG9PYnNlcnZhYmxlKHRoaXMuZW50aXRpZXNTZXJ2aWNlLm5vZGVzKVxuICAgIC5waXBlKFxuICAgICAgLy8gQ2hlY2sgZm9yIG5vZGVzIGxpc3QgY2hhbmdlIGFuZCB3YXRjaCBmb3Igc3BlY2lmaWMgbm9kZSBmcm9tIHRoaXMgbGlzdCBjaGFuZ2UgaXRzIHBvc2l0aW9uXG4gICAgICBzd2l0Y2hNYXAoKG5vZGVzKSA9PlxuICAgICAgICBtZXJnZShcbiAgICAgICAgICAuLi5ub2Rlcy5tYXAobm9kZSA9PlxuICAgICAgICAgICAgbm9kZS5wb2ludCQucGlwZShcbiAgICAgICAgICAgICAgLy8gc2tpcCBpbml0aWFsIHBvc2l0aW9uIGZyb20gc2lnbmFsXG4gICAgICAgICAgICAgIHNraXAoMSksXG4gICAgICAgICAgICAgIG1hcCgoKSA9PiBub2RlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKSxcbiAgICAgIG1hcCgoY2hhbmdlZE5vZGUpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50aXRpZXNTZXJ2aWNlLm5vZGVzKClcbiAgICAgICAgICAuZmlsdGVyKG5vZGUgPT4gbm9kZSA9PT0gY2hhbmdlZE5vZGUgfHwgbm9kZS5zZWxlY3RlZCgpKVxuICAgICAgICAgIC5tYXAobm9kZSA9PiAoeyB0eXBlOiAncG9zaXRpb24nLCBpZDogbm9kZS5ub2RlLmlkLCBwb2ludDogbm9kZS5wb2ludCgpIH0pKVxuICAgICAgfSlcbiAgICApIHNhdGlzZmllcyBPYnNlcnZhYmxlPE5vZGVDaGFuZ2VbXT5cblxuICBwcm90ZWN0ZWQgbm9kZVNpemVDaGFuZ2UkID0gdG9PYnNlcnZhYmxlKHRoaXMuZW50aXRpZXNTZXJ2aWNlLm5vZGVzKVxuICAgIC5waXBlKFxuICAgICAgc3dpdGNoTWFwKChub2RlcykgPT5cbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgLi4ubm9kZXMubWFwKG5vZGUgPT5cbiAgICAgICAgICAgIG5vZGUuc2l6ZSQucGlwZShcbiAgICAgICAgICAgICAgc2tpcCgxKSxcbiAgICAgICAgICAgICAgbWFwKCgpID0+IG5vZGUpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApLFxuICAgICAgbWFwKGNoYW5nZWROb2RlID0+IFtcbiAgICAgICAgeyB0eXBlOiAnc2l6ZScsIGlkOiBjaGFuZ2VkTm9kZS5ub2RlLmlkLCBzaXplOiBjaGFuZ2VkTm9kZS5zaXplKCkgfVxuICAgICAgXSlcbiAgICApIHNhdGlzZmllcyBPYnNlcnZhYmxlPE5vZGVDaGFuZ2VbXT5cblxuICBwcm90ZWN0ZWQgbm9kZUFkZENoYW5nZSQgPSB0b09ic2VydmFibGUodGhpcy5lbnRpdGllc1NlcnZpY2Uubm9kZXMpXG4gICAgLnBpcGUoXG4gICAgICBwYWlyd2lzZSgpLFxuICAgICAgbWFwKChbb2xkTGlzdCwgbmV3TGlzdF0pID0+XG4gICAgICAgIG5ld0xpc3QuZmlsdGVyKG5vZGUgPT4gIW9sZExpc3QuaW5jbHVkZXMobm9kZSkpXG4gICAgICApLFxuICAgICAgZmlsdGVyKChub2RlcykgPT4gISFub2Rlcy5sZW5ndGgpLFxuICAgICAgbWFwKChub2RlcykgPT5cbiAgICAgICAgbm9kZXMubWFwKG5vZGUgPT4gKHsgdHlwZTogJ2FkZCcsIGlkOiBub2RlLm5vZGUuaWQgfSkpXG4gICAgICApXG4gICAgKSBzYXRpc2ZpZXMgT2JzZXJ2YWJsZTxOb2RlQ2hhbmdlW10+XG5cbiAgcHJvdGVjdGVkIG5vZGVSZW1vdmVDaGFuZ2UkID0gdG9PYnNlcnZhYmxlKHRoaXMuZW50aXRpZXNTZXJ2aWNlLm5vZGVzKVxuICAgIC5waXBlKFxuICAgICAgcGFpcndpc2UoKSxcbiAgICAgIG1hcCgoW29sZExpc3QsIG5ld0xpc3RdKSA9PlxuICAgICAgICBvbGRMaXN0LmZpbHRlcihub2RlID0+ICFuZXdMaXN0LmluY2x1ZGVzKG5vZGUpKVxuICAgICAgKSxcbiAgICAgIGZpbHRlcigobm9kZXMpID0+ICEhbm9kZXMubGVuZ3RoKSxcbiAgICAgIG1hcCgobm9kZXMpID0+XG4gICAgICAgIG5vZGVzLm1hcChub2RlID0+ICh7IHR5cGU6ICdyZW1vdmUnLCBpZDogbm9kZS5ub2RlLmlkIH0pKVxuICAgICAgKVxuICAgICkgc2F0aXNmaWVzIE9ic2VydmFibGU8Tm9kZUNoYW5nZVtdPlxuXG4gIHByb3RlY3RlZCBub2RlU2VsZWN0ZWRDaGFuZ2UkID0gdG9PYnNlcnZhYmxlKHRoaXMuZW50aXRpZXNTZXJ2aWNlLm5vZGVzKVxuICAgIC5waXBlKFxuICAgICAgc3dpdGNoTWFwKChub2RlcykgPT5cbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgLi4ubm9kZXMubWFwKG5vZGUgPT5cbiAgICAgICAgICAgIG5vZGUuc2VsZWN0ZWQkLnBpcGUoXG4gICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAgIHNraXAoMSksXG4gICAgICAgICAgICAgIG1hcCgoKSA9PiBub2RlKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICksXG4gICAgICBtYXAoKGNoYW5nZWROb2RlKSA9PiBbXG4gICAgICAgIHsgdHlwZTogJ3NlbGVjdCcsIGlkOiBjaGFuZ2VkTm9kZS5ub2RlLmlkLCBzZWxlY3RlZDogY2hhbmdlZE5vZGUuc2VsZWN0ZWQoKSB9XG4gICAgICBdKVxuICAgICkgc2F0aXNmaWVzIE9ic2VydmFibGU8Tm9kZUNoYW5nZVtdPlxuXG4gIHB1YmxpYyByZWFkb25seSBjaGFuZ2VzJDogT2JzZXJ2YWJsZTxOb2RlQ2hhbmdlW10+ID0gbWVyZ2UoXG4gICAgdGhpcy5ub2Rlc1Bvc2l0aW9uQ2hhbmdlJCxcbiAgICB0aGlzLm5vZGVTaXplQ2hhbmdlJCxcbiAgICB0aGlzLm5vZGVBZGRDaGFuZ2UkLFxuICAgIHRoaXMubm9kZVJlbW92ZUNoYW5nZSQsXG4gICAgdGhpcy5ub2RlU2VsZWN0ZWRDaGFuZ2UkXG4gICkucGlwZShcbiAgICAvLyB0aGlzIGZpeGVzIGEgYnVnIHdoZW4gb24gZmlyZSBub2RlIGV2ZW50IGNoYW5nZSxcbiAgICAvLyB5b3UgY2FuJ3QgZ2V0IHZhbGlkIGxpc3Qgb2YgZGV0YWNoZWQgZWRnZXNcbiAgICBvYnNlcnZlT24oYXN5bmNTY2hlZHVsZXIsIERFTEFZX0ZPUl9TQ0hFRFVMRVIpLFxuICApXG59XG4iXX0=
@@ -2,10 +2,12 @@ import { Injectable, inject } from '@angular/core';
2
2
  import { FlowEntitiesService } from './flow-entities.service';
3
3
  import { Subject, tap } from 'rxjs';
4
4
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
+ import { KeyboardService } from './keyboard.service';
5
6
  import * as i0 from "@angular/core";
6
7
  export class SelectionService {
7
8
  constructor() {
8
9
  this.flowEntitiesService = inject(FlowEntitiesService);
10
+ this.keyboardService = inject(KeyboardService);
9
11
  this.viewport$ = new Subject();
10
12
  this.resetSelection = this.viewport$.pipe(tap(({ start, end, target }) => {
11
13
  if (start && end && target) {
@@ -27,10 +29,15 @@ export class SelectionService {
27
29
  this.viewport$.next(viewport);
28
30
  }
29
31
  select(entity) {
30
- // undo select for previously selected nodes
31
- this.flowEntitiesService.entities()
32
- .filter(n => n.selected)
33
- .forEach(n => n.selected.set(false));
32
+ // ? May be not a responsibility of this method
33
+ // if entity already selected - do nothing
34
+ if (entity?.selected()) {
35
+ return;
36
+ }
37
+ if (!this.keyboardService.isActiveAction('multiSelection')) {
38
+ // undo select for previously selected nodes
39
+ this.flowEntitiesService.entities().forEach(n => n.selected.set(false));
40
+ }
34
41
  if (entity) {
35
42
  // select passed entity
36
43
  entity.selected.set(true);
@@ -42,4 +49,4 @@ export class SelectionService {
42
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectionService, decorators: [{
43
50
  type: Injectable
44
51
  }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvc2VydmljZXMvc2VsZWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRTlFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlELE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQVloRSxNQUFNLE9BQU8sZ0JBQWdCO0lBRDdCO1FBSVUsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFFL0MsY0FBUyxHQUFHLElBQUksT0FBTyxFQUF3QixDQUFBO1FBRS9DLG1CQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQzVDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO1lBQzdCLElBQUksS0FBSyxJQUFJLEdBQUcsSUFBSSxNQUFNLEVBQUU7Z0JBQzFCLE1BQU0sS0FBSyxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQTtnQkFFcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDdkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFFdkMsbUJBQW1CO2dCQUNuQixNQUFNLE9BQU8sR0FBRyxLQUFLLEdBQUcsS0FBSyxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUE7Z0JBQzlDLHdEQUF3RDtnQkFDeEQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFBO2dCQUV0RCxJQUFJLE9BQU8sSUFBSSxlQUFlLEVBQUU7b0JBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7aUJBQ2xCO2FBQ0Y7UUFDSCxDQUFDLENBQUMsRUFDRixrQkFBa0IsRUFBRSxDQUNyQixDQUFDLFNBQVMsRUFBRSxDQUFBO0tBa0JkO2FBM0NnQixVQUFLLEdBQUcsQ0FBQyxBQUFKLENBQUk7SUE0QmpCLFdBQVcsQ0FBQyxRQUE4QjtRQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUMvQixDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQXlCO1FBQ3JDLDRDQUE0QztRQUM1QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFO2FBQ2hDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7YUFDdkIsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUV0QyxJQUFJLE1BQU0sRUFBRTtZQUNWLHVCQUF1QjtZQUN2QixNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtTQUMxQjtJQUNILENBQUM7K0dBM0NVLGdCQUFnQjttSEFBaEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgZWZmZWN0LCBpbmplY3QsIHNpZ25hbCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWaWV3cG9ydFN0YXRlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy92aWV3cG9ydC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmxvd0VudGl0aWVzU2VydmljZSB9IGZyb20gJy4vZmxvdy1lbnRpdGllcy5zZXJ2aWNlJztcbmltcG9ydCB7IEZsb3dFbnRpdHkgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2Zsb3ctZW50aXR5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuZXhwb3J0IGludGVyZmFjZSBWaWV3cG9ydEZvclNlbGVjdGlvbiB7XG4gIHN0YXJ0OiBWaWV3cG9ydFN0YXRlXG4gIGVuZDogVmlld3BvcnRTdGF0ZVxuICAvKipcbiAgICogVGFyZ2V0IG1heSBub3QgZXhpc3QgaWYgdmlld3BvcnQgY2hhbmdlIG1hZGUgcHJvZ3JhbW1hdGljYWxseVxuICAgKi9cbiAgdGFyZ2V0PzogRWxlbWVudFxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2VsZWN0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgc3RhdGljIGRlbHRhID0gNlxuXG4gIHByaXZhdGUgZmxvd0VudGl0aWVzU2VydmljZSA9IGluamVjdChGbG93RW50aXRpZXNTZXJ2aWNlKVxuXG4gIHByb3RlY3RlZCB2aWV3cG9ydCQgPSBuZXcgU3ViamVjdDxWaWV3cG9ydEZvclNlbGVjdGlvbj4oKVxuXG4gIHByb3RlY3RlZCByZXNldFNlbGVjdGlvbiA9IHRoaXMudmlld3BvcnQkLnBpcGUoXG4gICAgdGFwKCh7IHN0YXJ0LCBlbmQsIHRhcmdldCB9KSA9PiB7XG4gICAgICBpZiAoc3RhcnQgJiYgZW5kICYmIHRhcmdldCkge1xuICAgICAgICBjb25zdCBkZWx0YSA9IFNlbGVjdGlvblNlcnZpY2UuZGVsdGFcblxuICAgICAgICBjb25zdCBkaWZmWCA9IE1hdGguYWJzKGVuZC54IC0gc3RhcnQueClcbiAgICAgICAgY29uc3QgZGlmZlkgPSBNYXRoLmFicyhlbmQueSAtIHN0YXJ0LnkpXG5cbiAgICAgICAgLy8gY2xpY2sgKG5vdCBkcmFnKVxuICAgICAgICBjb25zdCBpc0NsaWNrID0gZGlmZlggPCBkZWx0YSAmJiBkaWZmWSA8IGRlbHRhXG4gICAgICAgIC8vIGRvIG5vdCByZXNldCBpZiBldmVudCBjaGFpbiBjb250YWlucyBzZWxlY3RhYmxlIGVsZW1zXG4gICAgICAgIGNvbnN0IGlzTm90U2VsZWN0YWJsZSA9ICF0YXJnZXQuY2xvc2VzdCgnLnNlbGVjdGFibGUnKVxuXG4gICAgICAgIGlmIChpc0NsaWNrICYmIGlzTm90U2VsZWN0YWJsZSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0KG51bGwpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSxcbiAgICB0YWtlVW50aWxEZXN0cm95ZWQoKVxuICApLnN1YnNjcmliZSgpXG5cblxuICBwdWJsaWMgc2V0Vmlld3BvcnQodmlld3BvcnQ6IFZpZXdwb3J0Rm9yU2VsZWN0aW9uKSB7XG4gICAgdGhpcy52aWV3cG9ydCQubmV4dCh2aWV3cG9ydClcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3QoZW50aXR5OiBGbG93RW50aXR5IHwgbnVsbCkge1xuICAgIC8vIHVuZG8gc2VsZWN0IGZvciBwcmV2aW91c2x5IHNlbGVjdGVkIG5vZGVzXG4gICAgdGhpcy5mbG93RW50aXRpZXNTZXJ2aWNlLmVudGl0aWVzKClcbiAgICAgIC5maWx0ZXIobiA9PiBuLnNlbGVjdGVkKVxuICAgICAgLmZvckVhY2gobiA9PiBuLnNlbGVjdGVkLnNldChmYWxzZSkpXG5cbiAgICBpZiAoZW50aXR5KSB7XG4gICAgICAvLyBzZWxlY3QgcGFzc2VkIGVudGl0eVxuICAgICAgZW50aXR5LnNlbGVjdGVkLnNldCh0cnVlKVxuICAgIH1cbiAgfVxufVxuIl19
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvc2VydmljZXMvc2VsZWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRTlFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlELE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFZckQsTUFBTSxPQUFPLGdCQUFnQjtJQUQ3QjtRQUlVLHdCQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBQ2pELG9CQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXhDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBd0IsQ0FBQTtRQUUvQyxtQkFBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUM1QyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTtZQUM3QixJQUFJLEtBQUssSUFBSSxHQUFHLElBQUksTUFBTSxFQUFFO2dCQUMxQixNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUE7Z0JBRXBDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ3ZDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBRXZDLG1CQUFtQjtnQkFDbkIsTUFBTSxPQUFPLEdBQUcsS0FBSyxHQUFHLEtBQUssSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFBO2dCQUM5Qyx3REFBd0Q7Z0JBQ3hELE1BQU0sZUFBZSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTtnQkFFdEQsSUFBSSxPQUFPLElBQUksZUFBZSxFQUFFO29CQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO2lCQUNsQjthQUNGO1FBQ0gsQ0FBQyxDQUFDLEVBQ0Ysa0JBQWtCLEVBQUUsQ0FDckIsQ0FBQyxTQUFTLEVBQUUsQ0FBQTtLQXdCZDthQWxEZ0IsVUFBSyxHQUFHLENBQUMsQUFBSixDQUFJO0lBNkJqQixXQUFXLENBQUMsUUFBOEI7UUFDL0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDL0IsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUF5QjtRQUNyQywrQ0FBK0M7UUFDL0MsMENBQTBDO1FBQzFDLElBQUksTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFO1lBQ3RCLE9BQU07U0FDUDtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQzFELDRDQUE0QztZQUM1QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtTQUN4RTtRQUVELElBQUksTUFBTSxFQUFFO1lBQ1YsdUJBQXVCO1lBQ3ZCLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1NBQzFCO0lBQ0gsQ0FBQzsrR0FsRFUsZ0JBQWdCO21IQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBlZmZlY3QsIGluamVjdCwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZpZXdwb3J0U3RhdGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3ZpZXdwb3J0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBGbG93RW50aXRpZXNTZXJ2aWNlIH0gZnJvbSAnLi9mbG93LWVudGl0aWVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmxvd0VudGl0eSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZmxvdy1lbnRpdHkuaW50ZXJmYWNlJztcbmltcG9ydCB7IFN1YmplY3QsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgS2V5Ym9hcmRTZXJ2aWNlIH0gZnJvbSAnLi9rZXlib2FyZC5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBWaWV3cG9ydEZvclNlbGVjdGlvbiB7XG4gIHN0YXJ0OiBWaWV3cG9ydFN0YXRlXG4gIGVuZDogVmlld3BvcnRTdGF0ZVxuICAvKipcbiAgICogVGFyZ2V0IG1heSBub3QgZXhpc3QgaWYgdmlld3BvcnQgY2hhbmdlIG1hZGUgcHJvZ3JhbW1hdGljYWxseVxuICAgKi9cbiAgdGFyZ2V0PzogRWxlbWVudFxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2VsZWN0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgc3RhdGljIGRlbHRhID0gNlxuXG4gIHByaXZhdGUgZmxvd0VudGl0aWVzU2VydmljZSA9IGluamVjdChGbG93RW50aXRpZXNTZXJ2aWNlKVxuICBwcml2YXRlIGtleWJvYXJkU2VydmljZSA9IGluamVjdChLZXlib2FyZFNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCB2aWV3cG9ydCQgPSBuZXcgU3ViamVjdDxWaWV3cG9ydEZvclNlbGVjdGlvbj4oKVxuXG4gIHByb3RlY3RlZCByZXNldFNlbGVjdGlvbiA9IHRoaXMudmlld3BvcnQkLnBpcGUoXG4gICAgdGFwKCh7IHN0YXJ0LCBlbmQsIHRhcmdldCB9KSA9PiB7XG4gICAgICBpZiAoc3RhcnQgJiYgZW5kICYmIHRhcmdldCkge1xuICAgICAgICBjb25zdCBkZWx0YSA9IFNlbGVjdGlvblNlcnZpY2UuZGVsdGFcblxuICAgICAgICBjb25zdCBkaWZmWCA9IE1hdGguYWJzKGVuZC54IC0gc3RhcnQueClcbiAgICAgICAgY29uc3QgZGlmZlkgPSBNYXRoLmFicyhlbmQueSAtIHN0YXJ0LnkpXG5cbiAgICAgICAgLy8gY2xpY2sgKG5vdCBkcmFnKVxuICAgICAgICBjb25zdCBpc0NsaWNrID0gZGlmZlggPCBkZWx0YSAmJiBkaWZmWSA8IGRlbHRhXG4gICAgICAgIC8vIGRvIG5vdCByZXNldCBpZiBldmVudCBjaGFpbiBjb250YWlucyBzZWxlY3RhYmxlIGVsZW1zXG4gICAgICAgIGNvbnN0IGlzTm90U2VsZWN0YWJsZSA9ICF0YXJnZXQuY2xvc2VzdCgnLnNlbGVjdGFibGUnKVxuXG4gICAgICAgIGlmIChpc0NsaWNrICYmIGlzTm90U2VsZWN0YWJsZSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0KG51bGwpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSxcbiAgICB0YWtlVW50aWxEZXN0cm95ZWQoKVxuICApLnN1YnNjcmliZSgpXG5cblxuICBwdWJsaWMgc2V0Vmlld3BvcnQodmlld3BvcnQ6IFZpZXdwb3J0Rm9yU2VsZWN0aW9uKSB7XG4gICAgdGhpcy52aWV3cG9ydCQubmV4dCh2aWV3cG9ydClcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3QoZW50aXR5OiBGbG93RW50aXR5IHwgbnVsbCkge1xuICAgIC8vID8gTWF5IGJlIG5vdCBhIHJlc3BvbnNpYmlsaXR5IG9mIHRoaXMgbWV0aG9kXG4gICAgLy8gaWYgZW50aXR5IGFscmVhZHkgc2VsZWN0ZWQgLSBkbyBub3RoaW5nXG4gICAgaWYgKGVudGl0eT8uc2VsZWN0ZWQoKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmtleWJvYXJkU2VydmljZS5pc0FjdGl2ZUFjdGlvbignbXVsdGlTZWxlY3Rpb24nKSkge1xuICAgICAgLy8gdW5kbyBzZWxlY3QgZm9yIHByZXZpb3VzbHkgc2VsZWN0ZWQgbm9kZXNcbiAgICAgIHRoaXMuZmxvd0VudGl0aWVzU2VydmljZS5lbnRpdGllcygpLmZvckVhY2gobiA9PiBuLnNlbGVjdGVkLnNldChmYWxzZSkpXG4gICAgfVxuXG4gICAgaWYgKGVudGl0eSkge1xuICAgICAgLy8gc2VsZWN0IHBhc3NlZCBlbnRpdHlcbiAgICAgIGVudGl0eS5zZWxlY3RlZC5zZXQodHJ1ZSlcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQtYWN0aW9uLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvdHlwZXMva2V5Ym9hcmQtYWN0aW9uLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEtleWJvYXJkQWN0aW9uID0gJ211bHRpU2VsZWN0aW9uJ1xuXG5leHBvcnQgdHlwZSBLZXlib2FyZFNob3J0Y3V0cyA9IFJlY29yZDxLZXlib2FyZEFjdGlvbiwgbnVsbCB8IHN0cmluZ1tdPjtcbiJdfQ==
@@ -0,0 +1,24 @@
1
+ export function getOS() {
2
+ const userAgent = window.navigator.userAgent.toLowerCase();
3
+ const macosPlatforms = /(macintosh|macintel|macppc|mac68k|macos)/i;
4
+ const windowsPlatforms = /(win32|win64|windows|wince)/i;
5
+ const iosPlatforms = /(iphone|ipad|ipod)/i;
6
+ let os = null;
7
+ if (macosPlatforms.test(userAgent)) {
8
+ os = "macos";
9
+ }
10
+ else if (iosPlatforms.test(userAgent)) {
11
+ os = "ios";
12
+ }
13
+ else if (windowsPlatforms.test(userAgent)) {
14
+ os = "windows";
15
+ }
16
+ else if (/android/.test(userAgent)) {
17
+ os = "android";
18
+ }
19
+ else if (!os && /linux/.test(userAgent)) {
20
+ os = "linux";
21
+ }
22
+ return os;
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LW9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L3V0aWxzL2dldC1vcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsS0FBSztJQUNuQixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUMxRCxNQUFNLGNBQWMsR0FBRywyQ0FBMkMsQ0FBQTtJQUNsRSxNQUFNLGdCQUFnQixHQUFHLDhCQUE4QixDQUFBO0lBQ3ZELE1BQU0sWUFBWSxHQUFHLHFCQUFxQixDQUFBO0lBRTFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQTtJQUViLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUNsQyxFQUFFLEdBQUcsT0FBZ0IsQ0FBQztLQUN2QjtTQUFNLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUN2QyxFQUFFLEdBQUcsS0FBYyxDQUFDO0tBQ3JCO1NBQU0sSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDM0MsRUFBRSxHQUFHLFNBQWtCLENBQUM7S0FDekI7U0FBTSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDcEMsRUFBRSxHQUFHLFNBQWtCLENBQUM7S0FDekI7U0FBTSxJQUFJLENBQUMsRUFBRSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDekMsRUFBRSxHQUFHLE9BQWdCLENBQUM7S0FDdkI7SUFFRCxPQUFPLEVBQUUsQ0FBQTtBQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZ2V0T1MoKSB7XG4gIGNvbnN0IHVzZXJBZ2VudCA9IHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKClcbiAgY29uc3QgbWFjb3NQbGF0Zm9ybXMgPSAvKG1hY2ludG9zaHxtYWNpbnRlbHxtYWNwcGN8bWFjNjhrfG1hY29zKS9pXG4gIGNvbnN0IHdpbmRvd3NQbGF0Zm9ybXMgPSAvKHdpbjMyfHdpbjY0fHdpbmRvd3N8d2luY2UpL2lcbiAgY29uc3QgaW9zUGxhdGZvcm1zID0gLyhpcGhvbmV8aXBhZHxpcG9kKS9pXG5cbiAgbGV0IG9zID0gbnVsbFxuXG4gIGlmIChtYWNvc1BsYXRmb3Jtcy50ZXN0KHVzZXJBZ2VudCkpIHtcbiAgICBvcyA9IFwibWFjb3NcIiBhcyBjb25zdDtcbiAgfSBlbHNlIGlmIChpb3NQbGF0Zm9ybXMudGVzdCh1c2VyQWdlbnQpKSB7XG4gICAgb3MgPSBcImlvc1wiIGFzIGNvbnN0O1xuICB9IGVsc2UgaWYgKHdpbmRvd3NQbGF0Zm9ybXMudGVzdCh1c2VyQWdlbnQpKSB7XG4gICAgb3MgPSBcIndpbmRvd3NcIiBhcyBjb25zdDtcbiAgfSBlbHNlIGlmICgvYW5kcm9pZC8udGVzdCh1c2VyQWdlbnQpKSB7XG4gICAgb3MgPSBcImFuZHJvaWRcIiBhcyBjb25zdDtcbiAgfSBlbHNlIGlmICghb3MgJiYgL2xpbnV4Ly50ZXN0KHVzZXJBZ2VudCkpIHtcbiAgICBvcyA9IFwibGludXhcIiBhcyBjb25zdDtcbiAgfVxuXG4gIHJldHVybiBvc1xufVxuIl19
@@ -19,6 +19,7 @@ export * from './lib/vflow/types/edge-change.type';
19
19
  export * from './lib/vflow/types/position.type';
20
20
  export * from './lib/vflow/types/background.type';
21
21
  export * from './lib/vflow/types/connection-mode.type';
22
+ export * from './lib/vflow/types/keyboard-action.type';
22
23
  // Components
23
24
  export * from './lib/vflow/components/vflow/vflow.component';
24
25
  export * from './lib/vflow/components/handle/handle.component';
@@ -30,4 +31,4 @@ export * from './lib/vflow/directives/template.directive';
30
31
  export * from './lib/vflow/directives/connection-controller.directive';
31
32
  export * from './lib/vflow/directives/changes-controller.directive';
32
33
  export * from './lib/vflow/directives/selectable.directive';
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLGNBQWMsMEJBQTBCLENBQUM7QUFFekMsYUFBYTtBQUNiLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHlDQUF5QyxDQUFDO0FBRXhELGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLCtDQUErQyxDQUFDO0FBRTlELFFBQVE7QUFDUixjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsd0NBQXdDLENBQUM7QUFFdkQsYUFBYTtBQUNiLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMsaUZBQWlGLENBQUM7QUFDaEcsY0FBYyw2REFBNkQsQ0FBQztBQUU1RSxhQUFhO0FBQ2IsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyw2Q0FBNkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIE1vZHVsZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L3ZmbG93Lm1vZHVsZSc7XG5cbi8vIEludGVyZmFjZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L2ludGVyZmFjZXMvbm9kZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvaW50ZXJmYWNlcy9wb2ludC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvaW50ZXJmYWNlcy9lZGdlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy9pbnRlcmZhY2VzL2VkZ2UtbGFiZWwuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L2ludGVyZmFjZXMvY29ubmVjdGlvbi5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvaW50ZXJmYWNlcy9jb25uZWN0aW9uLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy9pbnRlcmZhY2VzL2Nvbm5lY3Rpb24tc2V0dGluZ3MuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L2ludGVyZmFjZXMvaGFuZGxlLXBvc2l0aW9ucy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvaW50ZXJmYWNlcy9tYXJrZXIuaW50ZXJmYWNlJztcbmV4cG9ydCB7IFZpZXdwb3J0U3RhdGUgfSBmcm9tICcuL2xpYi92Zmxvdy9pbnRlcmZhY2VzL3ZpZXdwb3J0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy9pbnRlcmZhY2VzL2NvbXBvbmVudC1ub2RlLWV2ZW50LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy9pbnRlcmZhY2VzL2ZpdC12aWV3LW9wdGlvbnMuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L2ludGVyZmFjZXMvb3B0aW1pemF0aW9uLmludGVyZmFjZSc7XG5cbi8vIFR5cGVzXG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy90eXBlcy9ub2RlLWNoYW5nZS50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L3R5cGVzL2VkZ2UtY2hhbmdlLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvdHlwZXMvcG9zaXRpb24udHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy90eXBlcy9iYWNrZ3JvdW5kLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvdHlwZXMvY29ubmVjdGlvbi1tb2RlLnR5cGUnO1xuXG4vLyBDb21wb25lbnRzXG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy9jb21wb25lbnRzL3ZmbG93L3ZmbG93LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy9jb21wb25lbnRzL2hhbmRsZS9oYW5kbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L3B1YmxpYy1jb21wb25lbnRzL2N1c3RvbS1ub2RlL2N1c3RvbS1ub2RlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy9wdWJsaWMtY29tcG9uZW50cy9jdXN0b20tZHluYW1pYy1ub2RlL2N1c3RvbS1keW5hbWljLW5vZGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L3B1YmxpYy1jb21wb25lbnRzL3Jlc2l6YWJsZS9yZXNpemFibGUuY29tcG9uZW50JztcblxuLy8gRGlyZWN0aXZlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvZGlyZWN0aXZlcy90ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvZGlyZWN0aXZlcy9jb25uZWN0aW9uLWNvbnRyb2xsZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L2RpcmVjdGl2ZXMvY2hhbmdlcy1jb250cm9sbGVyLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy9kaXJlY3RpdmVzL3NlbGVjdGFibGUuZGlyZWN0aXZlJztcbiJdfQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLGNBQWMsMEJBQTBCLENBQUM7QUFFekMsYUFBYTtBQUNiLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHlDQUF5QyxDQUFDO0FBRXhELGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLCtDQUErQyxDQUFDO0FBRTlELFFBQVE7QUFDUixjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx3Q0FBd0MsQ0FBQztBQUV2RCxhQUFhO0FBQ2IsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyxpRkFBaUYsQ0FBQztBQUNoRyxjQUFjLDZEQUE2RCxDQUFDO0FBRTVFLGFBQWE7QUFDYixjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLDZDQUE2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTW9kdWxlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvdmZsb3cubW9kdWxlJztcblxuLy8gSW50ZXJmYWNlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvaW50ZXJmYWNlcy9ub2RlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy9pbnRlcmZhY2VzL3BvaW50LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy9pbnRlcmZhY2VzL2VkZ2UuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L2ludGVyZmFjZXMvZWRnZS1sYWJlbC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvaW50ZXJmYWNlcy9jb25uZWN0aW9uLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy9pbnRlcmZhY2VzL2Nvbm5lY3Rpb24uaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L2ludGVyZmFjZXMvY29ubmVjdGlvbi1zZXR0aW5ncy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvaW50ZXJmYWNlcy9oYW5kbGUtcG9zaXRpb25zLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy9pbnRlcmZhY2VzL21hcmtlci5pbnRlcmZhY2UnO1xuZXhwb3J0IHsgVmlld3BvcnRTdGF0ZSB9IGZyb20gJy4vbGliL3ZmbG93L2ludGVyZmFjZXMvdmlld3BvcnQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L2ludGVyZmFjZXMvY29tcG9uZW50LW5vZGUtZXZlbnQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L2ludGVyZmFjZXMvZml0LXZpZXctb3B0aW9ucy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvaW50ZXJmYWNlcy9vcHRpbWl6YXRpb24uaW50ZXJmYWNlJztcblxuLy8gVHlwZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L3R5cGVzL25vZGUtY2hhbmdlLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvdHlwZXMvZWRnZS1jaGFuZ2UudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy90eXBlcy9wb3NpdGlvbi50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L3R5cGVzL2JhY2tncm91bmQudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy90eXBlcy9jb25uZWN0aW9uLW1vZGUudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy90eXBlcy9rZXlib2FyZC1hY3Rpb24udHlwZSc7XG5cbi8vIENvbXBvbmVudHNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L2NvbXBvbmVudHMvdmZsb3cvdmZsb3cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L2NvbXBvbmVudHMvaGFuZGxlL2hhbmRsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvcHVibGljLWNvbXBvbmVudHMvY3VzdG9tLW5vZGUvY3VzdG9tLW5vZGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L3B1YmxpYy1jb21wb25lbnRzL2N1c3RvbS1keW5hbWljLW5vZGUvY3VzdG9tLWR5bmFtaWMtbm9kZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvcHVibGljLWNvbXBvbmVudHMvcmVzaXphYmxlL3Jlc2l6YWJsZS5jb21wb25lbnQnO1xuXG4vLyBEaXJlY3RpdmVzXG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy9kaXJlY3RpdmVzL3RlbXBsYXRlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92Zmxvdy9kaXJlY3RpdmVzL2Nvbm5lY3Rpb24tY29udHJvbGxlci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmZsb3cvZGlyZWN0aXZlcy9jaGFuZ2VzLWNvbnRyb2xsZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZmbG93L2RpcmVjdGl2ZXMvc2VsZWN0YWJsZS5kaXJlY3RpdmUnO1xuIl19