rete-angular-plugin 2.0.0 → 2.1.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.
- package/12/bundles/rete-angular-plugin-ng12.umd.js +55 -23
- package/12/bundles/rete-angular-plugin-ng12.umd.js.map +1 -1
- package/12/core.d.ts +21 -1
- package/12/esm2015/core.js +17 -1
- package/12/esm2015/index.js +2 -1
- package/12/esm2015/module.js +3 -2
- package/12/esm2015/presets/classic/components/control/control.component.js +1 -1
- package/12/esm2015/presets/classic/components/node/node.component.js +4 -24
- package/12/esm2015/presets/classic/index.js +4 -1
- package/12/esm2015/presets/context-menu/index.js +4 -1
- package/12/esm2015/presets/index.js +5 -1
- package/12/esm2015/presets/minimap/index.js +4 -1
- package/12/esm2015/presets/reroute/index.js +4 -1
- package/12/esm2015/ref.js +27 -0
- package/12/fesm2015/rete-angular-plugin-ng12.js +57 -20
- package/12/fesm2015/rete-angular-plugin-ng12.js.map +1 -1
- package/12/index.d.ts +1 -0
- package/12/module.d.ts +8 -7
- package/12/presets/classic/components/node/node.component.d.ts +1 -10
- package/12/presets/classic/index.d.ts +3 -0
- package/12/presets/context-menu/index.d.ts +3 -0
- package/12/presets/index.d.ts +4 -0
- package/12/presets/minimap/index.d.ts +3 -0
- package/12/presets/reroute/index.d.ts +3 -0
- package/12/ref.d.ts +12 -0
- package/13/core.d.ts +21 -1
- package/13/esm2020/core.mjs +17 -1
- package/13/esm2020/index.mjs +2 -1
- package/13/esm2020/module.mjs +3 -2
- package/13/esm2020/presets/classic/components/control/control.component.mjs +1 -1
- package/13/esm2020/presets/classic/components/node/node.component.mjs +4 -24
- package/13/esm2020/presets/classic/index.mjs +4 -1
- package/13/esm2020/presets/context-menu/index.mjs +4 -1
- package/13/esm2020/presets/index.mjs +5 -1
- package/13/esm2020/presets/minimap/index.mjs +4 -1
- package/13/esm2020/presets/reroute/index.mjs +4 -1
- package/13/esm2020/ref.mjs +27 -0
- package/13/fesm2015/rete-angular-plugin-ng13.mjs +59 -22
- package/13/fesm2015/rete-angular-plugin-ng13.mjs.map +1 -1
- package/13/fesm2020/rete-angular-plugin-ng13.mjs +57 -20
- package/13/fesm2020/rete-angular-plugin-ng13.mjs.map +1 -1
- package/13/index.d.ts +1 -0
- package/13/module.d.ts +8 -7
- package/13/presets/classic/components/node/node.component.d.ts +1 -10
- package/13/presets/classic/index.d.ts +3 -0
- package/13/presets/context-menu/index.d.ts +3 -0
- package/13/presets/index.d.ts +4 -0
- package/13/presets/minimap/index.d.ts +3 -0
- package/13/presets/reroute/index.d.ts +3 -0
- package/13/ref.d.ts +12 -0
- package/14/core.d.ts +21 -1
- package/14/esm2020/core.mjs +17 -1
- package/14/esm2020/index.mjs +2 -1
- package/14/esm2020/module.mjs +3 -2
- package/14/esm2020/presets/classic/components/control/control.component.mjs +1 -1
- package/14/esm2020/presets/classic/components/node/node.component.mjs +4 -24
- package/14/esm2020/presets/classic/index.mjs +4 -1
- package/14/esm2020/presets/context-menu/index.mjs +4 -1
- package/14/esm2020/presets/index.mjs +5 -1
- package/14/esm2020/presets/minimap/index.mjs +4 -1
- package/14/esm2020/presets/reroute/index.mjs +4 -1
- package/14/esm2020/ref.mjs +27 -0
- package/14/fesm2015/rete-angular-plugin-ng14.mjs +59 -22
- package/14/fesm2015/rete-angular-plugin-ng14.mjs.map +1 -1
- package/14/fesm2020/rete-angular-plugin-ng14.mjs +57 -20
- package/14/fesm2020/rete-angular-plugin-ng14.mjs.map +1 -1
- package/14/index.d.ts +1 -0
- package/14/module.d.ts +8 -7
- package/14/presets/classic/components/node/node.component.d.ts +1 -10
- package/14/presets/classic/index.d.ts +3 -0
- package/14/presets/context-menu/index.d.ts +3 -0
- package/14/presets/index.d.ts +4 -0
- package/14/presets/minimap/index.d.ts +3 -0
- package/14/presets/reroute/index.d.ts +3 -0
- package/14/ref.d.ts +12 -0
- package/15/core.d.ts +21 -1
- package/15/esm2020/core.mjs +17 -1
- package/15/esm2020/index.mjs +2 -1
- package/15/esm2020/module.mjs +3 -2
- package/15/esm2020/presets/classic/components/control/control.component.mjs +1 -1
- package/15/esm2020/presets/classic/components/node/node.component.mjs +4 -24
- package/15/esm2020/presets/classic/index.mjs +4 -1
- package/15/esm2020/presets/context-menu/index.mjs +4 -1
- package/15/esm2020/presets/index.mjs +5 -1
- package/15/esm2020/presets/minimap/index.mjs +4 -1
- package/15/esm2020/presets/reroute/index.mjs +4 -1
- package/15/esm2020/ref.mjs +27 -0
- package/15/fesm2015/rete-angular-plugin-ng15.mjs +59 -22
- package/15/fesm2015/rete-angular-plugin-ng15.mjs.map +1 -1
- package/15/fesm2020/rete-angular-plugin-ng15.mjs +57 -20
- package/15/fesm2020/rete-angular-plugin-ng15.mjs.map +1 -1
- package/15/index.d.ts +1 -0
- package/15/module.d.ts +8 -7
- package/15/presets/classic/components/node/node.component.d.ts +1 -10
- package/15/presets/classic/index.d.ts +3 -0
- package/15/presets/context-menu/index.d.ts +3 -0
- package/15/presets/index.d.ts +4 -0
- package/15/presets/minimap/index.d.ts +3 -0
- package/15/presets/reroute/index.d.ts +3 -0
- package/15/ref.d.ts +12 -0
- package/16/core.d.ts +21 -1
- package/16/esm2022/core.mjs +17 -1
- package/16/esm2022/index.mjs +2 -1
- package/16/esm2022/module.mjs +3 -2
- package/16/esm2022/presets/classic/components/control/control.component.mjs +1 -1
- package/16/esm2022/presets/classic/components/node/node.component.mjs +4 -27
- package/16/esm2022/presets/classic/index.mjs +4 -1
- package/16/esm2022/presets/context-menu/index.mjs +4 -1
- package/16/esm2022/presets/index.mjs +5 -1
- package/16/esm2022/presets/minimap/index.mjs +4 -1
- package/16/esm2022/presets/reroute/index.mjs +4 -1
- package/16/esm2022/ref.mjs +30 -0
- package/16/fesm2022/rete-angular-plugin-ng16.mjs +60 -23
- package/16/fesm2022/rete-angular-plugin-ng16.mjs.map +1 -1
- package/16/index.d.ts +1 -0
- package/16/module.d.ts +8 -7
- package/16/presets/classic/components/node/node.component.d.ts +1 -10
- package/16/presets/classic/index.d.ts +3 -0
- package/16/presets/context-menu/index.d.ts +3 -0
- package/16/presets/index.d.ts +4 -0
- package/16/presets/minimap/index.d.ts +3 -0
- package/16/presets/reroute/index.d.ts +3 -0
- package/16/ref.d.ts +12 -0
- package/17/core.d.ts +68 -0
- package/17/esm2022/core.mjs +127 -0
- package/17/esm2022/index.mjs +12 -0
- package/17/esm2022/module.mjs +50 -0
- package/17/esm2022/presets/classic/components/connection/connection-wrapper.component.mjs +91 -0
- package/17/esm2022/presets/classic/components/connection/connection.component.mjs +33 -0
- package/17/esm2022/presets/classic/components/control/control.component.mjs +55 -0
- package/17/esm2022/presets/classic/components/index.mjs +6 -0
- package/17/esm2022/presets/classic/components/node/node.component.mjs +122 -0
- package/17/esm2022/presets/classic/components/socket/socket.component.mjs +35 -0
- package/17/esm2022/presets/classic/index.mjs +114 -0
- package/17/esm2022/presets/classic/types.mjs +2 -0
- package/17/esm2022/presets/context-menu/components/index.mjs +4 -0
- package/17/esm2022/presets/context-menu/components/item/item.component.mjs +115 -0
- package/17/esm2022/presets/context-menu/components/menu/menu.component.mjs +111 -0
- package/17/esm2022/presets/context-menu/components/search/search.component.mjs +24 -0
- package/17/esm2022/presets/context-menu/debounce.mjs +17 -0
- package/17/esm2022/presets/context-menu/index.mjs +41 -0
- package/17/esm2022/presets/context-menu/module.mjs +35 -0
- package/17/esm2022/presets/context-menu/types.mjs +2 -0
- package/17/esm2022/presets/index.mjs +9 -0
- package/17/esm2022/presets/minimap/components/index.mjs +4 -0
- package/17/esm2022/presets/minimap/components/mini-node/mini-node.component.mjs +55 -0
- package/17/esm2022/presets/minimap/components/mini-viewport/mini-viewport.component.mjs +81 -0
- package/17/esm2022/presets/minimap/components/minimap/minimap.component.mjs +110 -0
- package/17/esm2022/presets/minimap/index.mjs +45 -0
- package/17/esm2022/presets/minimap/module.mjs +35 -0
- package/17/esm2022/presets/minimap/types.mjs +2 -0
- package/17/esm2022/presets/reroute/components/index.mjs +3 -0
- package/17/esm2022/presets/reroute/components/pin/pin.component.mjs +86 -0
- package/17/esm2022/presets/reroute/components/pins/pins.component.mjs +58 -0
- package/17/esm2022/presets/reroute/index.mjs +43 -0
- package/17/esm2022/presets/reroute/module.mjs +30 -0
- package/17/esm2022/presets/reroute/types.mjs +2 -0
- package/17/esm2022/presets/types.mjs +2 -0
- package/17/esm2022/ref.mjs +30 -0
- package/17/esm2022/rete-angular-plugin-ng17.mjs +5 -0
- package/17/esm2022/shared/drag.mjs +23 -0
- package/17/esm2022/types.mjs +2 -0
- package/17/fesm2022/rete-angular-plugin-ng17.mjs +1527 -0
- package/17/fesm2022/rete-angular-plugin-ng17.mjs.map +1 -0
- package/17/index.d.ts +13 -0
- package/17/module.d.ts +13 -0
- package/17/package.json +24 -0
- package/17/presets/classic/components/connection/connection-wrapper.component.d.ts +30 -0
- package/17/presets/classic/components/connection/connection.component.d.ts +11 -0
- package/17/presets/classic/components/control/control.component.d.ts +14 -0
- package/17/presets/classic/components/index.d.ts +5 -0
- package/17/presets/classic/components/node/node.component.d.ts +19 -0
- package/17/presets/classic/components/socket/socket.component.d.ts +12 -0
- package/17/presets/classic/index.d.ts +21 -0
- package/17/presets/classic/types.d.ts +49 -0
- package/17/presets/context-menu/components/index.d.ts +3 -0
- package/17/presets/context-menu/components/item/item.component.d.ts +26 -0
- package/17/presets/context-menu/components/menu/menu.component.d.ts +27 -0
- package/17/presets/context-menu/components/search/search.component.d.ts +8 -0
- package/17/presets/context-menu/debounce.d.ts +5 -0
- package/17/presets/context-menu/index.d.ts +9 -0
- package/17/presets/context-menu/module.d.ts +10 -0
- package/17/presets/context-menu/types.d.ts +12 -0
- package/17/presets/index.d.ts +8 -0
- package/17/presets/minimap/components/index.d.ts +3 -0
- package/17/presets/minimap/components/mini-node/mini-node.component.d.ts +14 -0
- package/17/presets/minimap/components/mini-viewport/mini-viewport.component.d.ts +27 -0
- package/17/presets/minimap/components/minimap/minimap.component.d.ts +25 -0
- package/17/presets/minimap/index.d.ts +9 -0
- package/17/presets/minimap/module.d.ts +10 -0
- package/17/presets/minimap/types.d.ts +22 -0
- package/17/presets/reroute/components/index.d.ts +2 -0
- package/17/presets/reroute/components/pin/pin.component.d.ts +30 -0
- package/17/presets/reroute/components/pins/pins.component.d.ts +17 -0
- package/17/presets/reroute/index.d.ts +13 -0
- package/17/presets/reroute/module.d.ts +9 -0
- package/17/presets/reroute/types.d.ts +18 -0
- package/17/presets/types.d.ts +15 -0
- package/17/ref.d.ts +12 -0
- package/17/shared/drag.d.ts +10 -0
- package/17/types.d.ts +29 -0
- package/CHANGELOG.md +50 -0
- package/bundles/rete-angular-plugin.umd.js +66 -35
- package/bundles/rete-angular-plugin.umd.js.map +1 -1
- package/core.d.ts +21 -1
- package/esm2015/core.js +17 -1
- package/esm2015/index.js +2 -1
- package/esm2015/module.js +3 -2
- package/esm2015/presets/classic/components/control/control.component.js +1 -1
- package/esm2015/presets/classic/components/node/node.component.js +2 -23
- package/esm2015/presets/classic/index.js +4 -1
- package/esm2015/presets/context-menu/index.js +4 -1
- package/esm2015/presets/index.js +1 -1
- package/esm2015/presets/minimap/index.js +4 -1
- package/esm2015/presets/reroute/index.js +4 -1
- package/esm2015/ref.js +26 -0
- package/esm2015/rete-angular-plugin.js +14 -14
- package/fesm2015/rete-angular-plugin.js +54 -22
- package/fesm2015/rete-angular-plugin.js.map +1 -1
- package/index.d.ts +1 -0
- package/package.json +8 -8
- package/presets/classic/components/node/node.component.d.ts +1 -8
- package/presets/classic/index.d.ts +3 -0
- package/presets/context-menu/index.d.ts +3 -0
- package/presets/index.d.ts +4 -0
- package/presets/minimap/index.d.ts +3 -0
- package/presets/reroute/index.d.ts +3 -0
- package/ref.d.ts +9 -0
- package/rete-angular-plugin.d.ts +13 -13
- package/rete-angular-plugin.metadata.json +1 -1
package/16/module.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
-
import * as i1 from "./
|
|
3
|
-
import * as i2 from "./presets/classic/components/
|
|
4
|
-
import * as i3 from "./presets/classic/components/connection/connection
|
|
5
|
-
import * as i4 from "./presets/classic/components/
|
|
6
|
-
import * as i5 from "./presets/classic/components/
|
|
7
|
-
import * as i6 from "
|
|
2
|
+
import * as i1 from "./ref";
|
|
3
|
+
import * as i2 from "./presets/classic/components/node/node.component";
|
|
4
|
+
import * as i3 from "./presets/classic/components/connection/connection.component";
|
|
5
|
+
import * as i4 from "./presets/classic/components/connection/connection-wrapper.component";
|
|
6
|
+
import * as i5 from "./presets/classic/components/socket/socket.component";
|
|
7
|
+
import * as i6 from "./presets/classic/components/control/control.component";
|
|
8
|
+
import * as i7 from "@angular/common";
|
|
8
9
|
export declare class ReteModule {
|
|
9
10
|
static ɵfac: i0.ɵɵFactoryDeclaration<ReteModule, never>;
|
|
10
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<ReteModule, [typeof i1.RefDirective, typeof
|
|
11
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ReteModule, [typeof i1.RefDirective, typeof i2.NodeComponent, typeof i3.ConnectionComponent, typeof i4.ConnectionWrapperComponent, typeof i5.SocketComponent, typeof i6.ControlComponent], [typeof i7.CommonModule], [typeof i1.RefDirective, typeof i2.NodeComponent, typeof i3.ConnectionComponent, typeof i4.ConnectionWrapperComponent, typeof i5.SocketComponent, typeof i6.ControlComponent]>;
|
|
11
12
|
static ɵinj: i0.ɵɵInjectorDeclaration<ReteModule>;
|
|
12
13
|
}
|
|
@@ -1,16 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ChangeDetectorRef, OnChanges } from '@angular/core';
|
|
2
2
|
import { ClassicPreset as Classic } from 'rete';
|
|
3
3
|
import { KeyValue } from '@angular/common';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class RefDirective implements OnChanges {
|
|
6
|
-
private el;
|
|
7
|
-
data: any;
|
|
8
|
-
emit: any;
|
|
9
|
-
constructor(el: ElementRef);
|
|
10
|
-
ngOnChanges(): void;
|
|
11
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RefDirective, never>;
|
|
12
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<RefDirective, "[refComponent]", never, { "data": { "alias": "data"; "required": false; }; "emit": { "alias": "emit"; "required": false; }; }, {}, never, never, false, never>;
|
|
13
|
-
}
|
|
14
5
|
type SortValue<N extends Classic.Node> = (N['controls'] | N['inputs'] | N['outputs'])[string];
|
|
15
6
|
export declare class NodeComponent implements OnChanges {
|
|
16
7
|
private cdr;
|
|
@@ -14,5 +14,8 @@ type ClassicProps<Schemes extends ClassicScheme, K> = {
|
|
|
14
14
|
socketPositionWatcher?: SocketPositionWatcher<Scope<never, [K]>>;
|
|
15
15
|
customize?: CustomizationProps<Schemes>;
|
|
16
16
|
};
|
|
17
|
+
/**
|
|
18
|
+
* Classic preset for rendering nodes, connections, controls and sockets.
|
|
19
|
+
*/
|
|
17
20
|
export declare function setup<Schemes extends ClassicScheme, K extends AngularArea2D<Schemes>>(props?: ClassicProps<Schemes, K>): RenderPreset<Schemes, K>;
|
|
18
21
|
export {};
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { BaseSchemes } from 'rete';
|
|
2
2
|
import { ContextMenuRender } from './types';
|
|
3
3
|
import { RenderPreset } from '../types';
|
|
4
|
+
/**
|
|
5
|
+
* Preset for rendering context menu.
|
|
6
|
+
*/
|
|
4
7
|
export declare function setup<Schemes extends BaseSchemes, K extends ContextMenuRender>(props?: {
|
|
5
8
|
delay?: number;
|
|
6
9
|
}): RenderPreset<Schemes, K>;
|
package/16/presets/index.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { BaseSchemes } from 'rete';
|
|
2
2
|
import { RenderPreset } from '../types';
|
|
3
3
|
import { MinimapRender } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* Preset for rendering minimap.
|
|
6
|
+
*/
|
|
4
7
|
export declare function setup<Schemes extends BaseSchemes, K extends MinimapRender>(props?: {
|
|
5
8
|
size?: number;
|
|
6
9
|
}): RenderPreset<Schemes, K>;
|
|
@@ -6,5 +6,8 @@ type Props = {
|
|
|
6
6
|
contextMenu?: (id: string) => void;
|
|
7
7
|
pointerdown?: (id: string) => void;
|
|
8
8
|
};
|
|
9
|
+
/**
|
|
10
|
+
* Preset for rendering pins.
|
|
11
|
+
*/
|
|
9
12
|
export declare function setup<Schemes extends BaseSchemes, K extends PinsRender>(props?: Props): RenderPreset<Schemes, K>;
|
|
10
13
|
export {};
|
package/16/ref.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ElementRef, OnChanges, OnDestroy } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class RefDirective implements OnChanges, OnDestroy {
|
|
4
|
+
private el;
|
|
5
|
+
data: any;
|
|
6
|
+
emit: any;
|
|
7
|
+
constructor(el: ElementRef);
|
|
8
|
+
ngOnChanges(): void;
|
|
9
|
+
ngOnDestroy(): void;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RefDirective, never>;
|
|
11
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RefDirective, "[refComponent]", never, { "data": { "alias": "data"; "required": false; }; "emit": { "alias": "emit"; "required": false; }; }, {}, never, never, false, never>;
|
|
12
|
+
}
|
package/17/core.d.ts
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Injector } from '@angular/core';
|
|
2
|
+
import { BaseSchemes, CanAssignSignal, Scope } from 'rete';
|
|
3
|
+
import { NgElement, Position, RenderSignal } from './types';
|
|
4
|
+
import { RenderPreset } from './presets/types';
|
|
5
|
+
type Item = {
|
|
6
|
+
key: string;
|
|
7
|
+
ngElement: NgElement;
|
|
8
|
+
};
|
|
9
|
+
type Renderer = {
|
|
10
|
+
get(element: HTMLElement): Item | undefined;
|
|
11
|
+
mount(element: HTMLElement, key: string, component: any, injector: Injector, props: Record<string, unknown>): void;
|
|
12
|
+
update(item: Item, props: Record<string, unknown>): void;
|
|
13
|
+
unmount(element: HTMLElement): void;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Signals that can be emitted by the plugin
|
|
17
|
+
* @priority 10
|
|
18
|
+
*/
|
|
19
|
+
export type Produces<Schemes extends BaseSchemes> = {
|
|
20
|
+
type: 'connectionpath';
|
|
21
|
+
data: {
|
|
22
|
+
payload: Schemes['Connection'];
|
|
23
|
+
path?: string;
|
|
24
|
+
points: Position[];
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
type Requires<Schemes extends BaseSchemes> = RenderSignal<'node', {
|
|
28
|
+
payload: Schemes['Node'];
|
|
29
|
+
}> | RenderSignal<'connection', {
|
|
30
|
+
payload: Schemes['Connection'];
|
|
31
|
+
start?: Position;
|
|
32
|
+
end?: Position;
|
|
33
|
+
}> | {
|
|
34
|
+
type: 'unmount';
|
|
35
|
+
data: {
|
|
36
|
+
element: HTMLElement;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Angular plugin. Renders nodes, connections and other elements using React.
|
|
41
|
+
* @priority 9
|
|
42
|
+
* @emits connectionpath
|
|
43
|
+
* @listens render
|
|
44
|
+
* @listens unmount
|
|
45
|
+
*/
|
|
46
|
+
export declare class AngularPlugin<Schemes extends BaseSchemes, T = Requires<Schemes>> extends Scope<Produces<Schemes>, [Requires<Schemes> | T]> {
|
|
47
|
+
private params;
|
|
48
|
+
presets: RenderPreset<Schemes, T>[];
|
|
49
|
+
renderer: Renderer;
|
|
50
|
+
owners: WeakMap<HTMLElement, RenderPreset<Schemes, T>>;
|
|
51
|
+
/**
|
|
52
|
+
* @constructor
|
|
53
|
+
* @param params Plugin properties
|
|
54
|
+
* @param params.injector Angular's Injector instance
|
|
55
|
+
*/
|
|
56
|
+
constructor(params: {
|
|
57
|
+
injector: Injector;
|
|
58
|
+
});
|
|
59
|
+
setParent(scope: Scope<Requires<Schemes> | T>): void;
|
|
60
|
+
private unmount;
|
|
61
|
+
private mount;
|
|
62
|
+
/**
|
|
63
|
+
* Adds a preset to the plugin.
|
|
64
|
+
* @param preset Preset that can render nodes, connections and other elements.
|
|
65
|
+
*/
|
|
66
|
+
addPreset<K>(preset: RenderPreset<Schemes, CanAssignSignal<T, K> extends true ? K : 'Cannot apply preset. Provided signals are not compatible'>): void;
|
|
67
|
+
}
|
|
68
|
+
export {};
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { Scope } from 'rete';
|
|
2
|
+
import { createCustomElement } from '@angular/elements';
|
|
3
|
+
function getRenderer() {
|
|
4
|
+
const elements = new WeakMap();
|
|
5
|
+
return {
|
|
6
|
+
get(element) {
|
|
7
|
+
return elements.get(element);
|
|
8
|
+
},
|
|
9
|
+
mount(element, key, component, injector, props) {
|
|
10
|
+
// LIMITATION: If an element is remounted with the same identifier, the component cannot be replaced
|
|
11
|
+
const exists = customElements.get(key);
|
|
12
|
+
if (!exists) {
|
|
13
|
+
customElements.define(key, createCustomElement(component, { injector }));
|
|
14
|
+
}
|
|
15
|
+
const ngElement = document.createElement(key);
|
|
16
|
+
Object.keys(props).forEach(key => {
|
|
17
|
+
ngElement[key] = props[key];
|
|
18
|
+
});
|
|
19
|
+
element.appendChild(ngElement);
|
|
20
|
+
elements.set(element, { key, ngElement });
|
|
21
|
+
},
|
|
22
|
+
update({ ngElement }, props) {
|
|
23
|
+
Object.keys(props).forEach(key => {
|
|
24
|
+
ngElement.ngElementStrategy.setInputValue(key, props[key]);
|
|
25
|
+
});
|
|
26
|
+
ngElement.ngElementStrategy.setInputValue('seed', Math.random());
|
|
27
|
+
},
|
|
28
|
+
unmount(element) {
|
|
29
|
+
const existing = elements.get(element);
|
|
30
|
+
if (existing) {
|
|
31
|
+
existing.ngElement.remove();
|
|
32
|
+
elements.delete(element);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Angular plugin. Renders nodes, connections and other elements using React.
|
|
39
|
+
* @priority 9
|
|
40
|
+
* @emits connectionpath
|
|
41
|
+
* @listens render
|
|
42
|
+
* @listens unmount
|
|
43
|
+
*/
|
|
44
|
+
export class AngularPlugin extends Scope {
|
|
45
|
+
params;
|
|
46
|
+
presets = [];
|
|
47
|
+
renderer;
|
|
48
|
+
owners = new WeakMap();
|
|
49
|
+
/**
|
|
50
|
+
* @constructor
|
|
51
|
+
* @param params Plugin properties
|
|
52
|
+
* @param params.injector Angular's Injector instance
|
|
53
|
+
*/
|
|
54
|
+
constructor(params) {
|
|
55
|
+
super('angular-render');
|
|
56
|
+
this.params = params;
|
|
57
|
+
this.renderer = getRenderer();
|
|
58
|
+
this.addPipe(context => {
|
|
59
|
+
if (!context || typeof context !== 'object' || !('type' in context))
|
|
60
|
+
return context;
|
|
61
|
+
if (context.type === 'unmount') {
|
|
62
|
+
this.unmount(context.data.element);
|
|
63
|
+
}
|
|
64
|
+
else if (context.type === 'render') {
|
|
65
|
+
if ('filled' in context.data && context.data.filled) {
|
|
66
|
+
return context;
|
|
67
|
+
}
|
|
68
|
+
if (this.mount(context.data.element, context)) {
|
|
69
|
+
return {
|
|
70
|
+
...context,
|
|
71
|
+
data: {
|
|
72
|
+
...context.data,
|
|
73
|
+
filled: true
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return context;
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
setParent(scope) {
|
|
82
|
+
super.setParent(scope);
|
|
83
|
+
this.presets.forEach(preset => {
|
|
84
|
+
if (preset.attach)
|
|
85
|
+
preset.attach(this);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
unmount(element) {
|
|
89
|
+
this.owners.delete(element);
|
|
90
|
+
this.renderer.unmount(element);
|
|
91
|
+
}
|
|
92
|
+
mount(element, context) {
|
|
93
|
+
const existing = this.renderer.get(element);
|
|
94
|
+
if (existing) {
|
|
95
|
+
this.presets.forEach(preset => {
|
|
96
|
+
if (this.owners.get(element) !== preset)
|
|
97
|
+
return;
|
|
98
|
+
const result = preset.update(context, this);
|
|
99
|
+
if (result) {
|
|
100
|
+
this.renderer.update(existing, result);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
for (const preset of this.presets) {
|
|
106
|
+
const result = preset.mount(context, this);
|
|
107
|
+
if (!result)
|
|
108
|
+
continue;
|
|
109
|
+
const { key, component, props } = result;
|
|
110
|
+
this.renderer.mount(element, key, component, this.params.injector, props);
|
|
111
|
+
this.owners.set(element, preset);
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Adds a preset to the plugin.
|
|
118
|
+
* @param preset Preset that can render nodes, connections and other elements.
|
|
119
|
+
*/
|
|
120
|
+
addPreset(preset) {
|
|
121
|
+
const local = preset;
|
|
122
|
+
if (local.attach)
|
|
123
|
+
local.attach(this);
|
|
124
|
+
this.presets.push(local);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25nMTcvLnNyYy9jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBZ0MsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBYXhELFNBQVMsV0FBVztJQUNsQixNQUFNLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQTtJQUVqRCxPQUFPO1FBQ0wsR0FBRyxDQUFDLE9BQU87WUFDVCxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDOUIsQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSztZQUM1QyxvR0FBb0c7WUFDcEcsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUV0QyxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNYLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQTthQUN6RTtZQUVELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUF5QyxDQUFBO1lBRXJGLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUMvQixTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQzdCLENBQUMsQ0FBQyxDQUFBO1lBRUYsT0FBTyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUM5QixRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFB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QUFBO1FBRTNELElBQUksS0FBSyxDQUFDLE1BQU07WUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzFCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlU2NoZW1lcywgQ2FuQXNzaWduU2lnbmFsLCBTY29wZSB9IGZyb20gJ3JldGUnXG5pbXBvcnQgeyBjcmVhdGVDdXN0b21FbGVtZW50IH0gZnJvbSAnQGFuZ3VsYXIvZWxlbWVudHMnO1xuXG5pbXBvcnQgeyBOZ0VsZW1lbnQsIE5vZGVQcm9wcywgUG9zaXRpb24sIFJlbmRlclNpZ25hbCB9IGZyb20gJy4vdHlwZXMnXG5pbXBvcnQgeyBSZW5kZXJQcmVzZXQgfSBmcm9tICcuL3ByZXNldHMvdHlwZXMnO1xuXG50eXBlIEl0ZW0gPSB7IGtleTogc3RyaW5nLCBuZ0VsZW1lbnQ6IE5nRWxlbWVudCB9XG5cbnR5cGUgUmVuZGVyZXIgPSB7XG4gIGdldChlbGVtZW50OiBIVE1MRWxlbWVudCk6IEl0ZW0gfCB1bmRlZmluZWRcbiAgbW91bnQoZWxlbWVudDogSFRNTEVsZW1lbnQsIGtleTogc3RyaW5nLCBjb21wb25lbnQ6IGFueSwgaW5qZWN0b3I6IEluamVjdG9yLCBwcm9wczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiB2b2lkXG4gIHVwZGF0ZShpdGVtOiBJdGVtLCBwcm9wczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiB2b2lkXG4gIHVubW91bnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkXG59XG5mdW5jdGlvbiBnZXRSZW5kZXJlcigpOiBSZW5kZXJlciB7XG4gIGNvbnN0IGVsZW1lbnRzID0gbmV3IFdlYWtNYXA8SFRNTEVsZW1lbnQsIEl0ZW0+KClcblxuICByZXR1cm4ge1xuICAgIGdldChlbGVtZW50KSB7XG4gICAgICByZXR1cm4gZWxlbWVudHMuZ2V0KGVsZW1lbnQpXG4gICAgfSxcbiAgICBtb3VudChlbGVtZW50LCBrZXksIGNvbXBvbmVudCwgaW5qZWN0b3IsIHByb3BzKSB7XG4gICAgICAvLyBMSU1JVEFUSU9OOiBJZiBhbiBlbGVtZW50IGlzIHJlbW91bnRlZCB3aXRoIHRoZSBzYW1lIGlkZW50aWZpZXIsIHRoZSBjb21wb25lbnQgY2Fubm90IGJlIHJlcGxhY2VkXG4gICAgICBjb25zdCBleGlzdHMgPSBjdXN0b21FbGVtZW50cy5nZXQoa2V5KVxuXG4gICAgICBpZiAoIWV4aXN0cykge1xuICAgICAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoa2V5LCBjcmVhdGVDdXN0b21FbGVtZW50KGNvbXBvbmVudCwgeyBpbmplY3RvciB9KSlcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmdFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChrZXkpIGFzIE5vZGVQcm9wcyAmIE5nRWxlbWVudCAmIHR5cGVvZiBwcm9wc1xuXG4gICAgICBPYmplY3Qua2V5cyhwcm9wcykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBuZ0VsZW1lbnRba2V5XSA9IHByb3BzW2tleV1cbiAgICAgIH0pXG5cbiAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQobmdFbGVtZW50KVxuICAgICAgZWxlbWVudHMuc2V0KGVsZW1lbnQsIHsga2V5LCBuZ0VsZW1lbnQgfSlcbiAgICB9LFxuICAgIHVwZGF0ZSh7IG5nRWxlbWVudCB9LCBwcm9wcykge1xuICAgICAgT2JqZWN0LmtleXMocHJvcHMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgbmdFbGVtZW50Lm5nRWxlbWVudFN0cmF0ZWd5LnNldElucHV0VmFsdWUoa2V5LCBwcm9wc1trZXldKVxuICAgICAgfSlcbiAgICAgIG5nRWxlbWVudC5uZ0VsZW1lbnRTdHJhdGVneS5zZXRJbnB1dFZhbHVlKCdzZWVkJywgTWF0aC5yYW5kb20oKSlcbiAgICB9LFxuICAgIHVubW91bnQoZWxlbWVudCkge1xuICAgICAgY29uc3QgZXhpc3RpbmcgPSBlbGVtZW50cy5nZXQoZWxlbWVudClcblxuICAgICAgaWYgKGV4aXN0aW5nKSB7XG4gICAgICAgIGV4aXN0aW5nLm5nRWxlbWVudC5yZW1vdmUoKVxuICAgICAgICBlbGVtZW50cy5kZWxldGUoZWxlbWVudClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBTaWduYWxzIHRoYXQgY2FuIGJlIGVtaXR0ZWQgYnkgdGhlIHBsdWdpblxuICogQHByaW9yaXR5IDEwXG4gKi9cbmV4cG9ydCB0eXBlIFByb2R1Y2VzPFNjaGVtZXMgZXh0ZW5kcyBCYXNlU2NoZW1lcz4gPVxuICB8IHsgdHlwZTogJ2Nvbm5lY3Rpb25wYXRoJywgZGF0YTogeyBwYXlsb2FkOiBTY2hlbWVzWydDb25uZWN0aW9uJ10sIHBhdGg/OiBzdHJpbmcsIHBvaW50czogUG9zaXRpb25bXSB9IH1cblxudHlwZSBSZXF1aXJlczxTY2hlbWVzIGV4dGVuZHMgQmFzZVNjaGVtZXM+ID1cbiAgfCBSZW5kZXJTaWduYWw8J25vZGUnLCB7IHBheWxvYWQ6IFNjaGVtZXNbJ05vZGUnXSB9PlxuICB8IFJlbmRlclNpZ25hbDwnY29ubmVjdGlvbicsIHsgcGF5bG9hZDogU2NoZW1lc1snQ29ubmVjdGlvbiddLCBzdGFydD86IFBvc2l0aW9uLCBlbmQ/OiBQb3NpdGlvbiB9PlxuICB8IHsgdHlwZTogJ3VubW91bnQnLCBkYXRhOiB7IGVsZW1lbnQ6IEhUTUxFbGVtZW50IH0gfVxuXG4vKipcbiAqIEFuZ3VsYXIgcGx1Z2luLiBSZW5kZXJzIG5vZGVzLCBjb25uZWN0aW9ucyBhbmQgb3RoZXIgZWxlbWVudHMgdXNpbmcgUmVhY3QuXG4gKiBAcHJpb3JpdHkgOVxuICogQGVtaXRzIGNvbm5lY3Rpb25wYXRoXG4gKiBAbGlzdGVucyByZW5kZXJcbiAqIEBsaXN0ZW5zIHVubW91bnRcbiAqL1xuZXhwb3J0IGNsYXNzIEFuZ3VsYXJQbHVnaW48U2NoZW1lcyBleHRlbmRzIEJhc2VTY2hlbWVzLCBUID0gUmVxdWlyZXM8U2NoZW1lcz4+IGV4dGVuZHMgU2NvcGU8UHJvZHVjZXM8U2NoZW1lcz4sIFtSZXF1aXJlczxTY2hlbWVzPiB8IFRdPiB7XG4gIHByZXNldHM6IFJlbmRlclByZXNldDxTY2hlbWVzLCBUPltdID0gW11cbiAgcmVuZGVyZXI6IFJlbmRlcmVyXG4gIG93bmVycyA9IG5ldyBXZWFrTWFwPEhUTUxFbGVtZW50LCBSZW5kZXJQcmVzZXQ8U2NoZW1lcywgVD4+KClcblxuICAvKipcbiAgICogQGNvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSBwYXJhbXMgUGx1Z2luIHByb3BlcnRpZXNcbiAgICogQHBhcmFtIHBhcmFtcy5pbmplY3RvciBBbmd1bGFyJ3MgSW5qZWN0b3IgaW5zdGFuY2VcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFyYW1zOiB7IGluamVjdG9yOiBJbmplY3RvciB9KSB7XG4gICAgc3VwZXIoJ2FuZ3VsYXItcmVuZGVyJylcbiAgICB0aGlzLnJlbmRlcmVyID0gZ2V0UmVuZGVyZXIoKVxuXG4gICAgdGhpcy5hZGRQaXBlKGNvbnRleHQgPT4ge1xuICAgICAgaWYgKCFjb250ZXh0IHx8IHR5cGVvZiBjb250ZXh0ICE9PSAnb2JqZWN0JyB8fCAhKCd0eXBlJyBpbiBjb250ZXh0KSkgcmV0dXJuIGNvbnRleHRcbiAgICAgIGlmIChjb250ZXh0LnR5cGUgPT09ICd1bm1vdW50Jykge1xuICAgICAgICB0aGlzLnVubW91bnQoY29udGV4dC5kYXRhLmVsZW1lbnQpXG4gICAgICB9IGVsc2UgaWYgKGNvbnRleHQudHlwZSA9PT0gJ3JlbmRlcicpIHtcbiAgICAgICAgaWYgKCdmaWxsZWQnIGluIGNvbnRleHQuZGF0YSAmJiBjb250ZXh0LmRhdGEuZmlsbGVkKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbnRleHRcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tb3VudChjb250ZXh0LmRhdGEuZWxlbWVudCwgY29udGV4dCkpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uY29udGV4dCxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgLi4uY29udGV4dC5kYXRhLFxuICAgICAgICAgICAgICBmaWxsZWQ6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGFzIHR5cGVvZiBjb250ZXh0XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBjb250ZXh0XG4gICAgfSlcbiAgfVxuXG4gIHNldFBhcmVudChzY29wZTogU2NvcGU8UmVxdWlyZXM8U2NoZW1lcz4gfCBUPik6IHZvaWQge1xuICAgIHN1cGVyLnNldFBhcmVudChzY29wZSlcblxuICAgIHRoaXMucHJlc2V0cy5mb3JFYWNoKHByZXNldCA9PiB7XG4gICAgICBpZiAocHJlc2V0LmF0dGFjaCkgcHJlc2V0LmF0dGFjaCh0aGlzKVxuICAgIH0pXG4gIH1cblxuXG4gIHByaXZhdGUgdW5tb3VudChlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgIHRoaXMub3duZXJzLmRlbGV0ZShlbGVtZW50KVxuICAgIHRoaXMucmVuZGVyZXIudW5tb3VudChlbGVtZW50KVxuICB9XG5cbiAgcHJpdmF0ZSBtb3VudChlbGVtZW50OiBIVE1MRWxlbWVudCwgY29udGV4dDogUmVxdWlyZXM8U2NoZW1lcz4pIHtcbiAgICBjb25zdCBleGlzdGluZyA9IHRoaXMucmVuZGVyZXIuZ2V0KGVsZW1lbnQpXG5cbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgIHRoaXMucHJlc2V0cy5mb3JFYWNoKHByZXNldCA9PiB7XG4gICAgICAgIGlmICh0aGlzLm93bmVycy5nZXQoZWxlbWVudCkgIT09IHByZXNldCkgcmV0dXJuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHByZXNldC51cGRhdGUoY29udGV4dCBhcyB1bmtub3duIGFzIEV4dHJhY3Q8VCwgeyB0eXBlOiAncmVuZGVyJyB9PiwgdGhpcylcblxuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci51cGRhdGUoZXhpc3RpbmcsIHJlc3VsdClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBwcmVzZXQgb2YgdGhpcy5wcmVzZXRzKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBwcmVzZXQubW91bnQoY29udGV4dCBhcyB1bmtub3duIGFzIEV4dHJhY3Q8VCwgeyB0eXBlOiAncmVuZGVyJyB9PiwgdGhpcylcblxuICAgICAgaWYgKCFyZXN1bHQpIGNvbnRpbnVlXG5cbiAgICAgIGNvbnN0IHsga2V5LCBjb21wb25lbnQsIHByb3BzIH0gPSByZXN1bHRcblxuICAgICAgdGhpcy5yZW5kZXJlci5tb3VudChlbGVtZW50LCBrZXksIGNvbXBvbmVudCwgdGhpcy5wYXJhbXMuaW5qZWN0b3IsIHByb3BzKVxuXG4gICAgICB0aGlzLm93bmVycy5zZXQoZWxlbWVudCwgcHJlc2V0KVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgcmV0dXJuXG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHByZXNldCB0byB0aGUgcGx1Z2luLlxuICAgKiBAcGFyYW0gcHJlc2V0IFByZXNldCB0aGF0IGNhbiByZW5kZXIgbm9kZXMsIGNvbm5lY3Rpb25zIGFuZCBvdGhlciBlbGVtZW50cy5cbiAgICovXG4gIHB1YmxpYyBhZGRQcmVzZXQ8Sz4ocHJlc2V0OiBSZW5kZXJQcmVzZXQ8U2NoZW1lcywgQ2FuQXNzaWduU2lnbmFsPFQsIEs+IGV4dGVuZHMgdHJ1ZSA/IEsgOiAnQ2Fubm90IGFwcGx5IHByZXNldC4gUHJvdmlkZWQgc2lnbmFscyBhcmUgbm90IGNvbXBhdGlibGUnPikge1xuICAgIGNvbnN0IGxvY2FsID0gcHJlc2V0IGFzIHVua25vd24gYXMgUmVuZGVyUHJlc2V0PFNjaGVtZXMsIFQ+XG5cbiAgICBpZiAobG9jYWwuYXR0YWNoKSBsb2NhbC5hdHRhY2godGhpcylcbiAgICB0aGlzLnByZXNldHMucHVzaChsb2NhbClcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export * as Presets from './presets';
|
|
2
|
+
export { ReteModule } from './module';
|
|
3
|
+
export { ReteContextMenuModule } from './presets/context-menu/module';
|
|
4
|
+
export { ReteMinimapModule } from './presets/minimap/module';
|
|
5
|
+
export { ReteRerouteModule } from './presets/reroute/module';
|
|
6
|
+
export * from './presets/classic/components';
|
|
7
|
+
export * from './presets/context-menu/components';
|
|
8
|
+
export * from './presets/minimap/components';
|
|
9
|
+
export * from './presets/reroute/components';
|
|
10
|
+
export * from './ref';
|
|
11
|
+
export * from './core';
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9uZzE3Ly5zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxXQUFXLENBQUE7QUFHcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUVyQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUM1RCxjQUFjLDhCQUE4QixDQUFBO0FBQzVDLGNBQWMsbUNBQW1DLENBQUE7QUFDakQsY0FBYyw4QkFBOEIsQ0FBQTtBQUM1QyxjQUFjLDhCQUE4QixDQUFBO0FBQzVDLGNBQWMsT0FBTyxDQUFBO0FBQ3JCLGNBQWMsUUFBUSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogYXMgUHJlc2V0cyBmcm9tICcuL3ByZXNldHMnXG5cbmV4cG9ydCB7IEFuZ3VsYXJBcmVhMkQgfSBmcm9tICcuL3ByZXNldHMvY2xhc3NpYy90eXBlcydcbmV4cG9ydCB7IFJldGVNb2R1bGUgfSBmcm9tICcuL21vZHVsZSdcbmV4cG9ydCB7IFJlbmRlclByZXNldCB9IGZyb20gJy4vcHJlc2V0cy90eXBlcydcbmV4cG9ydCB7IFJldGVDb250ZXh0TWVudU1vZHVsZSB9IGZyb20gJy4vcHJlc2V0cy9jb250ZXh0LW1lbnUvbW9kdWxlJ1xuZXhwb3J0IHsgUmV0ZU1pbmltYXBNb2R1bGUgfSBmcm9tICcuL3ByZXNldHMvbWluaW1hcC9tb2R1bGUnXG5leHBvcnQgeyBSZXRlUmVyb3V0ZU1vZHVsZSB9IGZyb20gJy4vcHJlc2V0cy9yZXJvdXRlL21vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMnXG5leHBvcnQgKiBmcm9tICcuL3ByZXNldHMvY29udGV4dC1tZW51L2NvbXBvbmVudHMnXG5leHBvcnQgKiBmcm9tICcuL3ByZXNldHMvbWluaW1hcC9jb21wb25lbnRzJ1xuZXhwb3J0ICogZnJvbSAnLi9wcmVzZXRzL3Jlcm91dGUvY29tcG9uZW50cydcbmV4cG9ydCAqIGZyb20gJy4vcmVmJ1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlJ1xuIl19
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { NodeComponent } from './presets/classic/components/node/node.component';
|
|
4
|
+
import { ConnectionComponent } from './presets/classic/components/connection/connection.component';
|
|
5
|
+
import { SocketComponent } from './presets/classic/components/socket/socket.component';
|
|
6
|
+
import { ConnectionWrapperComponent } from './presets/classic/components/connection/connection-wrapper.component';
|
|
7
|
+
import { ControlComponent } from './presets/classic/components/control/control.component';
|
|
8
|
+
import { RefDirective } from './ref';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export class ReteModule {
|
|
11
|
+
static ɵfac = function ReteModule_Factory(t) { return new (t || ReteModule)(); };
|
|
12
|
+
static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ReteModule });
|
|
13
|
+
static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule] });
|
|
14
|
+
}
|
|
15
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReteModule, [{
|
|
16
|
+
type: NgModule,
|
|
17
|
+
args: [{
|
|
18
|
+
declarations: [
|
|
19
|
+
RefDirective,
|
|
20
|
+
NodeComponent,
|
|
21
|
+
ConnectionComponent,
|
|
22
|
+
ConnectionWrapperComponent,
|
|
23
|
+
SocketComponent,
|
|
24
|
+
ControlComponent
|
|
25
|
+
],
|
|
26
|
+
imports: [
|
|
27
|
+
CommonModule
|
|
28
|
+
],
|
|
29
|
+
exports: [
|
|
30
|
+
RefDirective,
|
|
31
|
+
NodeComponent,
|
|
32
|
+
ConnectionComponent,
|
|
33
|
+
ConnectionWrapperComponent,
|
|
34
|
+
SocketComponent,
|
|
35
|
+
ControlComponent
|
|
36
|
+
]
|
|
37
|
+
}]
|
|
38
|
+
}], null, null); })();
|
|
39
|
+
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(ReteModule, { declarations: [RefDirective,
|
|
40
|
+
NodeComponent,
|
|
41
|
+
ConnectionComponent,
|
|
42
|
+
ConnectionWrapperComponent,
|
|
43
|
+
SocketComponent,
|
|
44
|
+
ControlComponent], imports: [CommonModule], exports: [RefDirective,
|
|
45
|
+
NodeComponent,
|
|
46
|
+
ConnectionComponent,
|
|
47
|
+
ConnectionWrapperComponent,
|
|
48
|
+
SocketComponent,
|
|
49
|
+
ControlComponent] }); })();
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbmcxNy8uc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDbkcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxPQUFPLENBQUM7O0FBdUJyQyxNQUFNLE9BQU8sVUFBVTtvRUFBVixVQUFVOzREQUFWLFVBQVU7Z0VBWG5CLFlBQVk7O2lGQVdILFVBQVU7Y0FyQnRCLFFBQVE7ZUFBQztnQkFDUixZQUFZLEVBQUU7b0JBQ1osWUFBWTtvQkFDWixhQUFhO29CQUNiLG1CQUFtQjtvQkFDbkIsMEJBQTBCO29CQUMxQixlQUFlO29CQUNmLGdCQUFnQjtpQkFDakI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLFlBQVk7aUJBQ2I7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osYUFBYTtvQkFDYixtQkFBbUI7b0JBQ25CLDBCQUEwQjtvQkFDMUIsZUFBZTtvQkFDZixnQkFBZ0I7aUJBQ2pCO2FBQ0Y7O3dGQUNZLFVBQVUsbUJBbkJuQixZQUFZO1FBQ1osYUFBYTtRQUNiLG1CQUFtQjtRQUNuQiwwQkFBMEI7UUFDMUIsZUFBZTtRQUNmLGdCQUFnQixhQUdoQixZQUFZLGFBR1osWUFBWTtRQUNaLGFBQWE7UUFDYixtQkFBbUI7UUFDbkIsMEJBQTBCO1FBQzFCLGVBQWU7UUFDZixnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgTm9kZUNvbXBvbmVudCB9IGZyb20gJy4vcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMvbm9kZS9ub2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25uZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9wcmVzZXRzL2NsYXNzaWMvY29tcG9uZW50cy9jb25uZWN0aW9uL2Nvbm5lY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFNvY2tldENvbXBvbmVudCB9IGZyb20gJy4vcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMvc29ja2V0L3NvY2tldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29ubmVjdGlvbldyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL3ByZXNldHMvY2xhc3NpYy9jb21wb25lbnRzL2Nvbm5lY3Rpb24vY29ubmVjdGlvbi13cmFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb250cm9sQ29tcG9uZW50IH0gZnJvbSAnLi9wcmVzZXRzL2NsYXNzaWMvY29tcG9uZW50cy9jb250cm9sL2NvbnRyb2wuY29tcG9uZW50JztcbmltcG9ydCB7IFJlZkRpcmVjdGl2ZSB9IGZyb20gJy4vcmVmJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUmVmRGlyZWN0aXZlLFxuICAgIE5vZGVDb21wb25lbnQsXG4gICAgQ29ubmVjdGlvbkNvbXBvbmVudCxcbiAgICBDb25uZWN0aW9uV3JhcHBlckNvbXBvbmVudCxcbiAgICBTb2NrZXRDb21wb25lbnQsXG4gICAgQ29udHJvbENvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBSZWZEaXJlY3RpdmUsXG4gICAgTm9kZUNvbXBvbmVudCxcbiAgICBDb25uZWN0aW9uQ29tcG9uZW50LFxuICAgIENvbm5lY3Rpb25XcmFwcGVyQ29tcG9uZW50LFxuICAgIFNvY2tldENvbXBvbmVudCxcbiAgICBDb250cm9sQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUmV0ZU1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Component, Input, ChangeDetectorRef, ViewContainerRef, ComponentFactoryResolver } from '@angular/core';
|
|
2
|
+
import { ClassicPreset } from 'rete';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ConnectionWrapperComponent {
|
|
5
|
+
cdr;
|
|
6
|
+
viewContainerRef;
|
|
7
|
+
componentFactoryResolver;
|
|
8
|
+
data;
|
|
9
|
+
start;
|
|
10
|
+
end;
|
|
11
|
+
path;
|
|
12
|
+
rendered;
|
|
13
|
+
connectionComponent;
|
|
14
|
+
ref;
|
|
15
|
+
startOb = null;
|
|
16
|
+
get _start() {
|
|
17
|
+
return 'x' in this.start ? this.start : this.startOb;
|
|
18
|
+
}
|
|
19
|
+
endOb = null;
|
|
20
|
+
get _end() {
|
|
21
|
+
return 'x' in this.end ? this.end : this.endOb;
|
|
22
|
+
}
|
|
23
|
+
_path;
|
|
24
|
+
constructor(cdr, viewContainerRef, componentFactoryResolver) {
|
|
25
|
+
this.cdr = cdr;
|
|
26
|
+
this.viewContainerRef = viewContainerRef;
|
|
27
|
+
this.componentFactoryResolver = componentFactoryResolver;
|
|
28
|
+
this.cdr.detach();
|
|
29
|
+
}
|
|
30
|
+
async ngOnChanges() {
|
|
31
|
+
await this.updatePath();
|
|
32
|
+
requestAnimationFrame(() => this.rendered());
|
|
33
|
+
this.cdr.detectChanges();
|
|
34
|
+
this.update();
|
|
35
|
+
}
|
|
36
|
+
async updatePath() {
|
|
37
|
+
if (this._start && this._end) {
|
|
38
|
+
this._path = await this.path(this._start, this._end);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
ngOnInit() {
|
|
42
|
+
if (typeof this.start === 'function') {
|
|
43
|
+
this.start(async (value) => {
|
|
44
|
+
this.startOb = value;
|
|
45
|
+
await this.updatePath();
|
|
46
|
+
this.cdr.detectChanges();
|
|
47
|
+
this.update();
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
if (typeof this.end === 'function') {
|
|
51
|
+
this.end(async (value) => {
|
|
52
|
+
this.endOb = value;
|
|
53
|
+
await this.updatePath();
|
|
54
|
+
this.cdr.detectChanges();
|
|
55
|
+
this.update();
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
const componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.connectionComponent);
|
|
59
|
+
this.viewContainerRef.clear();
|
|
60
|
+
this.ref = this.viewContainerRef.createComponent(componentFactory);
|
|
61
|
+
this.update();
|
|
62
|
+
}
|
|
63
|
+
update() {
|
|
64
|
+
this.ref.instance.data = this.data;
|
|
65
|
+
this.ref.instance.start = this._start;
|
|
66
|
+
this.ref.instance.end = this._end;
|
|
67
|
+
this.ref.instance.path = this._path;
|
|
68
|
+
}
|
|
69
|
+
static ɵfac = function ConnectionWrapperComponent_Factory(t) { return new (t || ConnectionWrapperComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver)); };
|
|
70
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ConnectionWrapperComponent, selectors: [["ng-component"]], inputs: { data: "data", start: "start", end: "end", path: "path", rendered: "rendered", connectionComponent: "connectionComponent" }, features: [i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function ConnectionWrapperComponent_Template(rf, ctx) { }, encapsulation: 2 });
|
|
71
|
+
}
|
|
72
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ConnectionWrapperComponent, [{
|
|
73
|
+
type: Component,
|
|
74
|
+
args: [{
|
|
75
|
+
template: ''
|
|
76
|
+
}]
|
|
77
|
+
}], () => [{ type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }], { data: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}], start: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}], end: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}], path: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], rendered: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], connectionComponent: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}] }); })();
|
|
90
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ConnectionWrapperComponent, { className: "ConnectionWrapperComponent", filePath: "presets/classic/components/connection/connection-wrapper.component.ts", lineNumber: 10 }); })();
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25nMTcvLnNyYy9wcmVzZXRzL2NsYXNzaWMvY29tcG9uZW50cy9jb25uZWN0aW9uL2Nvbm5lY3Rpb24td3JhcHBlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsaUJBQWlCLEVBQWEsZ0JBQWdCLEVBQUUsd0JBQXdCLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ2pKLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBUXJDLE1BQU0sT0FBTywwQkFBMEI7SUFvQmpCO0lBQStCO0lBQTRDO0lBbkJ0RixJQUFJLENBQW9FO0lBQ3hFLEtBQUssQ0FBNkI7SUFDbEMsR0FBRyxDQUE2QjtJQUNoQyxJQUFJLENBQXNEO0lBQzFELFFBQVEsQ0FBTTtJQUNkLG1CQUFtQixDQUFNO0lBRWxDLEdBQUcsQ0FBb0I7SUFFdkIsT0FBTyxHQUFvQixJQUFJLENBQUE7SUFDL0IsSUFBSSxNQUFNO1FBQ1IsT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtJQUN0RCxDQUFDO0lBQ0QsS0FBSyxHQUFvQixJQUFJLENBQUE7SUFDN0IsSUFBSSxJQUFJO1FBQ04sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQTtJQUNoRCxDQUFDO0lBQ0QsS0FBSyxDQUFRO0lBRWIsWUFBb0IsR0FBc0IsRUFBUyxnQkFBa0MsRUFBVSx3QkFBa0Q7UUFBN0gsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBUyxxQkFBZ0Is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dGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIENoYW5nZURldGVjdG9yUmVmLCBPbkNoYW5nZXMsIFZpZXdDb250YWluZXJSZWYsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbGFzc2ljUHJlc2V0IH0gZnJvbSAncmV0ZSc7XG5pbXBvcnQgeyBQb3NpdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3R5cGVzJztcblxudHlwZSBQb3NpdGlvbldhdGNoZXIgPSAoY2I6ICh2YWx1ZTogUG9zaXRpb24pID0+IHZvaWQpID0+ICgoKSA9PiB2b2lkKVxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGNsYXNzIENvbm5lY3Rpb25XcmFwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXN7XG4gIEBJbnB1dCgpIGRhdGEhOiBDbGFzc2ljUHJlc2V0LkNvbm5lY3Rpb248Q2xhc3NpY1ByZXNldC5Ob2RlLCBDbGFzc2ljUHJlc2V0Lk5vZGU+O1xuICBASW5wdXQoKSBzdGFydCE6IFBvc2l0aW9uIHwgUG9zaXRpb25XYXRjaGVyXG4gIEBJbnB1dCgpIGVuZCE6IFBvc2l0aW9uIHwgUG9zaXRpb25XYXRjaGVyXG4gIEBJbnB1dCgpIHBhdGghOiAoc3RhcnQ6IFBvc2l0aW9uLCBlbmQ6IFBvc2l0aW9uKSA9PiBQcm9taXNlPHN0cmluZz5cbiAgQElucHV0KCkgcmVuZGVyZWQhOiBhbnlcbiAgQElucHV0KCkgY29ubmVjdGlvbkNvbXBvbmVudCE6IGFueVxuXG4gIHJlZiE6IENvbXBvbmVudFJlZjxhbnk+XG5cbiAgc3RhcnRPYjogUG9zaXRpb24gfCBudWxsID0gbnVsbFxuICBnZXQgX3N0YXJ0KCk6IFBvc2l0aW9uIHwgbnVsbCB7XG4gICAgcmV0dXJuICd4JyBpbiB0aGlzLnN0YXJ0ID8gdGhpcy5zdGFydCA6IHRoaXMuc3RhcnRPYlxuICB9XG4gIGVuZE9iOiBQb3NpdGlvbiB8IG51bGwgPSBudWxsXG4gIGdldCBfZW5kKCk6IFBvc2l0aW9uIHwgbnVsbCB7XG4gICAgcmV0dXJuICd4JyBpbiB0aGlzLmVuZCA/IHRoaXMuZW5kIDogdGhpcy5lbmRPYlxuICB9XG4gIF9wYXRoOiBzdHJpbmdcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHB1YmxpYyB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSAge1xuICAgIHRoaXMuY2RyLmRldGFjaCgpXG4gIH1cblxuICBhc3luYyBuZ09uQ2hhbmdlcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZVBhdGgoKVxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLnJlbmRlcmVkKCkpXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gICAgdGhpcy51cGRhdGUoKVxuICB9XG5cbiAgYXN5bmMgdXBkYXRlUGF0aCgpIHtcbiAgICBpZiAodGhpcy5fc3RhcnQgJiYgdGhpcy5fZW5kKSB7XG4gICAgICB0aGlzLl9wYXRoID0gYXdhaXQgdGhpcy5wYXRoKHRoaXMuX3N0YXJ0LCB0aGlzLl9lbmQpXG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnN0YXJ0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLnN0YXJ0KGFzeW5jIHZhbHVlID0+IHtcbiAgICAgICAgdGhpcy5zdGFydE9iID0gdmFsdWVcbiAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVQYXRoKClcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICAgIHRoaXMudXBkYXRlKClcbiAgICAgIH0pXG4gICAgfVxuICAgIGlmICh0eXBlb2YgdGhpcy5lbmQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuZW5kKGFzeW5jIHZhbHVlID0+IHtcbiAgICAgICAgdGhpcy5lbmRPYiA9IHZhbHVlXG4gICAgICAgIGF3YWl0IHRoaXMudXBkYXRlUGF0aCgpXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICAgICAgICB0aGlzLnVwZGF0ZSgpXG4gICAgICB9KVxuICAgIH1cbiAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodGhpcy5jb25uZWN0aW9uQ29tcG9uZW50KTtcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcblxuICAgIHRoaXMucmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5KTtcbiAgICB0aGlzLnVwZGF0ZSgpXG4gIH1cblxuICB1cGRhdGUoKSB7XG4gICAgdGhpcy5yZWYuaW5zdGFuY2UuZGF0YSA9IHRoaXMuZGF0YVxuICAgIHRoaXMucmVmLmluc3RhbmNlLnN0YXJ0ID0gdGhpcy5fc3RhcnRcbiAgICB0aGlzLnJlZi5pbnN0YW5jZS5lbmQgPSB0aGlzLl9lbmRcbiAgICB0aGlzLnJlZi5pbnN0YW5jZS5wYXRoID0gdGhpcy5fcGF0aFxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { ClassicPreset } from 'rete';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ConnectionComponent {
|
|
5
|
+
data;
|
|
6
|
+
start;
|
|
7
|
+
end;
|
|
8
|
+
path;
|
|
9
|
+
static ɵfac = function ConnectionComponent_Factory(t) { return new (t || ConnectionComponent)(); };
|
|
10
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ConnectionComponent, selectors: [["connection"]], inputs: { data: "data", start: "start", end: "end", path: "path" }, decls: 2, vars: 1, consts: [["data-testid", "connection"]], template: function ConnectionComponent_Template(rf, ctx) { if (rf & 1) {
|
|
11
|
+
i0.ɵɵnamespaceSVG();
|
|
12
|
+
i0.ɵɵelementStart(0, "svg", 0);
|
|
13
|
+
i0.ɵɵelement(1, "path");
|
|
14
|
+
i0.ɵɵelementEnd();
|
|
15
|
+
} if (rf & 2) {
|
|
16
|
+
i0.ɵɵadvance(1);
|
|
17
|
+
i0.ɵɵattribute("d", ctx.path);
|
|
18
|
+
} }, styles: ["svg[_ngcontent-%COMP%]{overflow:visible!important;position:absolute;pointer-events:none;width:9999px;height:9999px}svg[_ngcontent-%COMP%] path[_ngcontent-%COMP%]{fill:none;stroke-width:5px;stroke:#4682b4;pointer-events:auto}"] });
|
|
19
|
+
}
|
|
20
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ConnectionComponent, [{
|
|
21
|
+
type: Component,
|
|
22
|
+
args: [{ selector: 'connection', template: "<svg data-testid=\"connection\">\n <path [attr.d]=\"path\" />\n</svg>\n", styles: ["svg{overflow:visible!important;position:absolute;pointer-events:none;width:9999px;height:9999px}svg path{fill:none;stroke-width:5px;stroke:#4682b4;pointer-events:auto}\n"] }]
|
|
23
|
+
}], null, { data: [{
|
|
24
|
+
type: Input
|
|
25
|
+
}], start: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}], end: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}], path: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}] }); })();
|
|
32
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ConnectionComponent, { className: "ConnectionComponent", filePath: "presets/classic/components/connection/connection.component.ts", lineNumber: 12 }); })();
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9uZzE3Ly5zcmMvcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMvY29ubmVjdGlvbi9jb25uZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25nMTcvLnNyYy9wcmVzZXRzL2NsYXNzaWMvY29tcG9uZW50cy9jb25uZWN0aW9uL2Nvbm5lY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFVckMsTUFBTSxPQUFPLG1CQUFtQjtJQUNyQixJQUFJLENBQW9FO0lBQ3hFLEtBQUssQ0FBVTtJQUNmLEdBQUcsQ0FBVTtJQUNiLElBQUksQ0FBUTs2RUFKVixtQkFBbUI7NkRBQW5CLG1CQUFtQjtZQ1hoQyxtQkFBOEI7WUFBOUIsOEJBQThCO1lBQzFCLHVCQUF3QjtZQUM1QixpQkFBTTs7WUFESSxlQUFlO1lBQWYsNkJBQWU7OztpRkRVWixtQkFBbUI7Y0FML0IsU0FBUzsyQkFDRSxZQUFZO2dCQUtiLElBQUk7a0JBQVosS0FBSztZQUNHLEtBQUs7a0JBQWIsS0FBSztZQUNHLEdBQUc7a0JBQVgsS0FBSztZQUNHLElBQUk7a0JBQVosS0FBSzs7a0ZBSkssbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xhc3NpY1ByZXNldCB9IGZyb20gJ3JldGUnO1xuaW1wb3J0IHsgY2xhc3NpY0Nvbm5lY3Rpb25QYXRoIH0gZnJvbSAncmV0ZS1yZW5kZXItdXRpbHMnXG5pbXBvcnQgeyBQb3NpdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3R5cGVzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjb25uZWN0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nvbm5lY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb25uZWN0aW9uLmNvbXBvbmVudC5zYXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29ubmVjdGlvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGRhdGEhOiBDbGFzc2ljUHJlc2V0LkNvbm5lY3Rpb248Q2xhc3NpY1ByZXNldC5Ob2RlLCBDbGFzc2ljUHJlc2V0Lk5vZGU+O1xuICBASW5wdXQoKSBzdGFydDogUG9zaXRpb25cbiAgQElucHV0KCkgZW5kOiBQb3NpdGlvblxuICBASW5wdXQoKSBwYXRoOiBzdHJpbmdcbn1cbiIsIjxzdmcgZGF0YS10ZXN0aWQ9XCJjb25uZWN0aW9uXCI+XG4gICAgPHBhdGggW2F0dHIuZF09XCJwYXRoXCIgLz5cbjwvc3ZnPlxuIl19
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Component, Input, ChangeDetectorRef, HostListener } from '@angular/core';
|
|
2
|
+
import { ClassicPreset } from 'rete';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ControlComponent {
|
|
5
|
+
cdr;
|
|
6
|
+
data;
|
|
7
|
+
rendered;
|
|
8
|
+
pointerdown(event) {
|
|
9
|
+
event.stopPropagation();
|
|
10
|
+
}
|
|
11
|
+
constructor(cdr) {
|
|
12
|
+
this.cdr = cdr;
|
|
13
|
+
this.cdr.detach();
|
|
14
|
+
}
|
|
15
|
+
ngOnChanges(changes) {
|
|
16
|
+
const seed = changes['seed'];
|
|
17
|
+
const data = changes['data'];
|
|
18
|
+
if ((seed && seed.currentValue !== seed.previousValue)
|
|
19
|
+
|| (data && data.currentValue !== data.previousValue)) {
|
|
20
|
+
this.cdr.detectChanges();
|
|
21
|
+
}
|
|
22
|
+
requestAnimationFrame(() => this.rendered());
|
|
23
|
+
}
|
|
24
|
+
onChange(e) {
|
|
25
|
+
const target = e.target;
|
|
26
|
+
const value = (this.data.type === 'number'
|
|
27
|
+
? +target.value
|
|
28
|
+
: target.value);
|
|
29
|
+
this.data.setValue(value);
|
|
30
|
+
this.cdr.detectChanges();
|
|
31
|
+
}
|
|
32
|
+
static ɵfac = function ControlComponent_Factory(t) { return new (t || ControlComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
33
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ControlComponent, selectors: [["ng-component"]], hostBindings: function ControlComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
34
|
+
i0.ɵɵlistener("pointerdown", function ControlComponent_pointerdown_HostBindingHandler($event) { return ctx.pointerdown($event); });
|
|
35
|
+
} }, inputs: { data: "data", rendered: "rendered" }, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 3, consts: [[3, "value", "readonly", "type", "input"]], template: function ControlComponent_Template(rf, ctx) { if (rf & 1) {
|
|
36
|
+
i0.ɵɵelementStart(0, "input", 0);
|
|
37
|
+
i0.ɵɵlistener("input", function ControlComponent_Template_input_input_0_listener($event) { return ctx.onChange($event); });
|
|
38
|
+
i0.ɵɵelementEnd();
|
|
39
|
+
} if (rf & 2) {
|
|
40
|
+
i0.ɵɵproperty("value", ctx.data.value)("readonly", ctx.data.readonly)("type", ctx.data.type);
|
|
41
|
+
} }, styles: ["input[_ngcontent-%COMP%]{width:130px;border-radius:30px;background-color:#fff;padding:2px 6px;border:1px solid #999;font-size:110%}"] });
|
|
42
|
+
}
|
|
43
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ControlComponent, [{
|
|
44
|
+
type: Component,
|
|
45
|
+
args: [{ template: "<input\n [value]=\"data.value\"\n [readonly]=\"data.readonly\"\n [type]=\"data.type\"\n (input)=\"onChange($event)\"\n/>\n", styles: ["input{width:130px;border-radius:30px;background-color:#fff;padding:2px 6px;border:1px solid #999;font-size:110%}\n"] }]
|
|
46
|
+
}], () => [{ type: i0.ChangeDetectorRef }], { data: [{
|
|
47
|
+
type: Input
|
|
48
|
+
}], rendered: [{
|
|
49
|
+
type: Input
|
|
50
|
+
}], pointerdown: [{
|
|
51
|
+
type: HostListener,
|
|
52
|
+
args: ['pointerdown', ['$event']]
|
|
53
|
+
}] }); })();
|
|
54
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ControlComponent, { className: "ControlComponent", filePath: "presets/classic/components/control/control.component.ts", lineNumber: 8 }); })();
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9uZzE3Ly5zcmMvcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMvY29udHJvbC9jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25nMTcvLnNyYy9wcmVzZXRzL2NsYXNzaWMvY29tcG9uZW50cy9jb250cm9sL2NvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTRCLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU1yQyxNQUFNLE9BQU8sZ0JBQWdCO0lBVVA7SUFUWCxJQUFJLENBQWlDO0lBQ3JDLFFBQVEsQ0FBTztJQUlqQixXQUFXLENBQUMsS0FBVTtRQUMzQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDbkIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDNUIsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBRTVCLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsYUFBYSxDQUFDO2VBQ2pELENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ3ZELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7U0FDekI7UUFDRCxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUM5QyxDQUFDO0lBRUQsUUFBUSxDQUFDLENBQVE7UUFDZixNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBMEIsQ0FBQTtRQUMzQyxNQUFNLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVE7WUFDeEMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDZixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBMkMsQ0FBQTtRQUUzRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQzFCLENBQUM7MEVBakNVLGdCQUFnQjs2REFBaEIsZ0JBQWdCO21IQUFoQix1QkFBbUI7O1lDUGhDLGdDQUtFO1lBREEsa0dBQVMsb0JBQWdCLElBQUM7WUFKNUIsaUJBS0U7O1lBSkEsc0NBQW9CLCtCQUFBLHVCQUFBOzs7aUZETVQsZ0JBQWdCO2NBSjVCLFNBQVM7O2tEQUtDLElBQUk7a0JBQVosS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFJQyxXQUFXO2tCQURqQixZQUFZO21CQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7a0ZBTDVCLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgQ2hhbmdlRGV0ZWN0b3JSZWYsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xhc3NpY1ByZXNldCB9IGZyb20gJ3JldGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6IGAuL2NvbnRyb2wuY29tcG9uZW50Lmh0bWxgLFxuICBzdHlsZVVybHM6IFsnLi9jb250cm9sLmNvbXBvbmVudC5zYXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29udHJvbENvbXBvbmVudDxUIGV4dGVuZHMgJ3RleHQnIHwgJ251bWJlcic+IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgZGF0YSE6IENsYXNzaWNQcmVzZXQuSW5wdXRDb250cm9sPFQ+O1xuICBASW5wdXQoKSByZW5kZXJlZCE6IGFueTtcblxuXG4gIEBIb3N0TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgWyckZXZlbnQnXSlcbiAgcHVibGljIHBvaW50ZXJkb3duKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHRoaXMuY2RyLmRldGFjaCgpXG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3Qgc2VlZCA9IGNoYW5nZXNbJ3NlZWQnXVxuICAgIGNvbnN0IGRhdGEgPSBjaGFuZ2VzWydkYXRhJ11cblxuICAgIGlmICgoc2VlZCAmJiBzZWVkLmN1cnJlbnRWYWx1ZSAhPT0gc2VlZC5wcmV2aW91c1ZhbHVlKVxuICAgICAgfHwgKGRhdGEgJiYgZGF0YS5jdXJyZW50VmFsdWUgIT09IGRhdGEucHJldmlvdXNWYWx1ZSkpIHtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICAgIH1cbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdGhpcy5yZW5kZXJlZCgpKVxuICB9XG5cbiAgb25DaGFuZ2UoZTogRXZlbnQpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50XG4gICAgY29uc3QgdmFsdWUgPSAodGhpcy5kYXRhLnR5cGUgPT09ICdudW1iZXInXG4gICAgICA/ICt0YXJnZXQudmFsdWVcbiAgICAgIDogdGFyZ2V0LnZhbHVlKSBhcyBDbGFzc2ljUHJlc2V0LklucHV0Q29udHJvbDxUPlsndmFsdWUnXVxuXG4gICAgdGhpcy5kYXRhLnNldFZhbHVlKHZhbHVlKVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICB9XG59XG4iLCI8aW5wdXRcbiAgW3ZhbHVlXT1cImRhdGEudmFsdWVcIlxuICBbcmVhZG9ubHldPVwiZGF0YS5yZWFkb25seVwiXG4gIFt0eXBlXT1cImRhdGEudHlwZVwiXG4gIChpbnB1dCk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbi8+XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './node/node.component';
|
|
2
|
+
export * from './connection/connection-wrapper.component';
|
|
3
|
+
export * from './connection/connection.component';
|
|
4
|
+
export * from './control/control.component';
|
|
5
|
+
export * from './socket/socket.component';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9uZzE3Ly5zcmMvcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLDJDQUEyQyxDQUFBO0FBQ3pELGNBQWMsbUNBQW1DLENBQUE7QUFDakQsY0FBYyw2QkFBNkIsQ0FBQTtBQUMzQyxjQUFjLDJCQUEyQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgKiBmcm9tICcuL25vZGUvbm9kZS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2Nvbm5lY3Rpb24vY29ubmVjdGlvbi13cmFwcGVyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vY29ubmVjdGlvbi9jb25uZWN0aW9uLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbC9jb250cm9sLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vc29ja2V0L3NvY2tldC5jb21wb25lbnQnXG4iXX0=
|