rete-angular-plugin 2.1.2 → 2.2.1

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 (80) hide show
  1. package/18/core.d.ts +68 -0
  2. package/18/esm2022/core.mjs +127 -0
  3. package/18/esm2022/index.mjs +12 -0
  4. package/18/esm2022/module.mjs +50 -0
  5. package/18/esm2022/presets/classic/components/connection/connection-wrapper.component.mjs +91 -0
  6. package/18/esm2022/presets/classic/components/connection/connection.component.mjs +33 -0
  7. package/18/esm2022/presets/classic/components/control/control.component.mjs +55 -0
  8. package/18/esm2022/presets/classic/components/index.mjs +6 -0
  9. package/18/esm2022/presets/classic/components/node/node.component.mjs +134 -0
  10. package/18/esm2022/presets/classic/components/socket/socket.component.mjs +35 -0
  11. package/18/esm2022/presets/classic/index.mjs +114 -0
  12. package/18/esm2022/presets/classic/types.mjs +2 -0
  13. package/18/esm2022/presets/context-menu/components/index.mjs +4 -0
  14. package/18/esm2022/presets/context-menu/components/item/item.component.mjs +115 -0
  15. package/18/esm2022/presets/context-menu/components/menu/menu.component.mjs +111 -0
  16. package/18/esm2022/presets/context-menu/components/search/search.component.mjs +24 -0
  17. package/18/esm2022/presets/context-menu/debounce.mjs +17 -0
  18. package/18/esm2022/presets/context-menu/index.mjs +41 -0
  19. package/18/esm2022/presets/context-menu/module.mjs +35 -0
  20. package/18/esm2022/presets/context-menu/types.mjs +2 -0
  21. package/18/esm2022/presets/index.mjs +9 -0
  22. package/18/esm2022/presets/minimap/components/index.mjs +4 -0
  23. package/18/esm2022/presets/minimap/components/mini-node/mini-node.component.mjs +55 -0
  24. package/18/esm2022/presets/minimap/components/mini-viewport/mini-viewport.component.mjs +81 -0
  25. package/18/esm2022/presets/minimap/components/minimap/minimap.component.mjs +110 -0
  26. package/18/esm2022/presets/minimap/index.mjs +45 -0
  27. package/18/esm2022/presets/minimap/module.mjs +35 -0
  28. package/18/esm2022/presets/minimap/types.mjs +2 -0
  29. package/18/esm2022/presets/reroute/components/index.mjs +3 -0
  30. package/18/esm2022/presets/reroute/components/pin/pin.component.mjs +86 -0
  31. package/18/esm2022/presets/reroute/components/pins/pins.component.mjs +58 -0
  32. package/18/esm2022/presets/reroute/index.mjs +43 -0
  33. package/18/esm2022/presets/reroute/module.mjs +30 -0
  34. package/18/esm2022/presets/reroute/types.mjs +2 -0
  35. package/18/esm2022/presets/types.mjs +2 -0
  36. package/18/esm2022/ref.mjs +30 -0
  37. package/18/esm2022/rete-angular-plugin-ng18.mjs +5 -0
  38. package/18/esm2022/shared/drag.mjs +23 -0
  39. package/18/esm2022/types.mjs +2 -0
  40. package/18/fesm2022/rete-angular-plugin-ng18.mjs +1540 -0
  41. package/18/fesm2022/rete-angular-plugin-ng18.mjs.map +1 -0
  42. package/18/index.d.ts +13 -0
  43. package/18/module.d.ts +13 -0
  44. package/18/package.json +24 -0
  45. package/18/presets/classic/components/connection/connection-wrapper.component.d.ts +30 -0
  46. package/18/presets/classic/components/connection/connection.component.d.ts +11 -0
  47. package/18/presets/classic/components/control/control.component.d.ts +14 -0
  48. package/18/presets/classic/components/index.d.ts +5 -0
  49. package/18/presets/classic/components/node/node.component.d.ts +25 -0
  50. package/18/presets/classic/components/socket/socket.component.d.ts +12 -0
  51. package/18/presets/classic/index.d.ts +21 -0
  52. package/18/presets/classic/types.d.ts +49 -0
  53. package/18/presets/context-menu/components/index.d.ts +3 -0
  54. package/18/presets/context-menu/components/item/item.component.d.ts +26 -0
  55. package/18/presets/context-menu/components/menu/menu.component.d.ts +27 -0
  56. package/18/presets/context-menu/components/search/search.component.d.ts +8 -0
  57. package/18/presets/context-menu/debounce.d.ts +5 -0
  58. package/18/presets/context-menu/index.d.ts +9 -0
  59. package/18/presets/context-menu/module.d.ts +10 -0
  60. package/18/presets/context-menu/types.d.ts +12 -0
  61. package/18/presets/index.d.ts +8 -0
  62. package/18/presets/minimap/components/index.d.ts +3 -0
  63. package/18/presets/minimap/components/mini-node/mini-node.component.d.ts +14 -0
  64. package/18/presets/minimap/components/mini-viewport/mini-viewport.component.d.ts +27 -0
  65. package/18/presets/minimap/components/minimap/minimap.component.d.ts +25 -0
  66. package/18/presets/minimap/index.d.ts +9 -0
  67. package/18/presets/minimap/module.d.ts +10 -0
  68. package/18/presets/minimap/types.d.ts +22 -0
  69. package/18/presets/reroute/components/index.d.ts +2 -0
  70. package/18/presets/reroute/components/pin/pin.component.d.ts +30 -0
  71. package/18/presets/reroute/components/pins/pins.component.d.ts +17 -0
  72. package/18/presets/reroute/index.d.ts +13 -0
  73. package/18/presets/reroute/module.d.ts +9 -0
  74. package/18/presets/reroute/types.d.ts +18 -0
  75. package/18/presets/types.d.ts +15 -0
  76. package/18/ref.d.ts +12 -0
  77. package/18/shared/drag.d.ts +10 -0
  78. package/18/types.d.ts +29 -0
  79. package/CHANGELOG.md +14 -0
  80. package/package.json +4 -4
package/18/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25nMTgvLnNyYy9jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBZ0MsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBYXhELFNBQVMsV0FBVztJQUNsQixNQUFNLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQTtJQUVqRCxPQUFPO1FBQ0wsR0FBRyxDQUFDLE9BQU87WUFDVCxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDOUIsQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSztZQUM1QyxvR0FBb0c7WUFDcEcsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUV0QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1osY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUMsU0FBUyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQzFFLENBQUM7WUFFRCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBeUMsQ0FBQTtZQUVyRixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDL0IsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUM3QixDQUFDLENBQUMsQ0FBQTtZQUVGLE9BQU8sQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUE7WUFDOUIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFF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UUFDYixDQUFDO1FBQ0QsT0FBTTtJQUNSLENBQUM7SUFFRDs7O09BR0c7SUFDSSxTQUFTLENBQUksTUFBa0k7UUFDcEosTUFBTSxLQUFLLEdBQUcsTUFBNkMsQ0FBQTtRQUUzRCxJQUFJLEtBQUssQ0FBQyxNQUFNO1lBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMxQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZVNjaGVtZXMsIENhbkFzc2lnblNpZ25hbCwgU2NvcGUgfSBmcm9tICdyZXRlJ1xuaW1wb3J0IHsgY3JlYXRlQ3VzdG9tRWxlbWVudCB9IGZyb20gJ0Bhbmd1bGFyL2VsZW1lbnRzJztcblxuaW1wb3J0IHsgTmdFbGVtZW50LCBOb2RlUHJvcHMsIFBvc2l0aW9uLCBSZW5kZXJTaWduYWwgfSBmcm9tICcuL3R5cGVzJ1xuaW1wb3J0IHsgUmVuZGVyUHJlc2V0IH0gZnJvbSAnLi9wcmVzZXRzL3R5cGVzJztcblxudHlwZSBJdGVtID0geyBrZXk6IHN0cmluZywgbmdFbGVtZW50OiBOZ0VsZW1lbnQgfVxuXG50eXBlIFJlbmRlcmVyID0ge1xuICBnZXQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBJdGVtIHwgdW5kZWZpbmVkXG4gIG1vdW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBrZXk6IHN0cmluZywgY29tcG9uZW50OiBhbnksIGluamVjdG9yOiBJbmplY3RvciwgcHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogdm9pZFxuICB1cGRhdGUoaXRlbTogSXRlbSwgcHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogdm9pZFxuICB1bm1vdW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZFxufVxuZnVuY3Rpb24gZ2V0UmVuZGVyZXIoKTogUmVuZGVyZXIge1xuICBjb25zdCBlbGVtZW50cyA9IG5ldyBXZWFrTWFwPEhUTUxFbGVtZW50LCBJdGVtPigpXG5cbiAgcmV0dXJuIHtcbiAgICBnZXQoZWxlbWVudCkge1xuICAgICAgcmV0dXJuIGVsZW1lbnRzLmdldChlbGVtZW50KVxuICAgIH0sXG4gICAgbW91bnQoZWxlbWVudCwga2V5LCBjb21wb25lbnQsIGluamVjdG9yLCBwcm9wcykge1xuICAgICAgLy8gTElNSVRBVElPTjogSWYgYW4gZWxlbWVudCBpcyByZW1vdW50ZWQgd2l0aCB0aGUgc2FtZSBpZGVudGlmaWVyLCB0aGUgY29tcG9uZW50IGNhbm5vdCBiZSByZXBsYWNlZFxuICAgICAgY29uc3QgZXhpc3RzID0gY3VzdG9tRWxlbWVudHMuZ2V0KGtleSlcblxuICAgICAgaWYgKCFleGlzdHMpIHtcbiAgICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKGtleSwgY3JlYXRlQ3VzdG9tRWxlbWVudChjb21wb25lbnQsIHsgaW5qZWN0b3IgfSkpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5nRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoa2V5KSBhcyBOb2RlUHJvcHMgJiBOZ0VsZW1lbnQgJiB0eXBlb2YgcHJvcHNcblxuICAgICAgT2JqZWN0LmtleXMocHJvcHMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgbmdFbGVtZW50W2tleV0gPSBwcm9wc1trZXldXG4gICAgICB9KVxuXG4gICAgICBlbGVtZW50LmFwcGVuZENoaWxkKG5nRWxlbWVudClcbiAgICAgIGVsZW1lbnRzLnNldChlbGVtZW50LCB7IGtleSwgbmdFbGVtZW50IH0pXG4gICAgfSxcbiAgICB1cGRhdGUoeyBuZ0VsZW1lbnQgfSwgcHJvcHMpIHtcbiAgICAgIE9iamVjdC5rZXlzKHByb3BzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIG5nRWxlbWVudC5uZ0VsZW1lbnRTdHJhdGVneS5zZXRJbnB1dFZhbHVlKGtleSwgcHJvcHNba2V5XSlcbiAgICAgIH0pXG4gICAgICBuZ0VsZW1lbnQubmdFbGVtZW50U3RyYXRlZ3kuc2V0SW5wdXRWYWx1ZSgnc2VlZCcsIE1hdGgucmFuZG9tKCkpXG4gICAgfSxcbiAgICB1bm1vdW50KGVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nID0gZWxlbWVudHMuZ2V0KGVsZW1lbnQpXG5cbiAgICAgIGlmIChleGlzdGluZykge1xuICAgICAgICBleGlzdGluZy5uZ0VsZW1lbnQucmVtb3ZlKClcbiAgICAgICAgZWxlbWVudHMuZGVsZXRlKGVsZW1lbnQpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogU2lnbmFscyB0aGF0IGNhbiBiZSBlbWl0dGVkIGJ5IHRoZSBwbHVnaW5cbiAqIEBwcmlvcml0eSAxMFxuICovXG5leHBvcnQgdHlwZSBQcm9kdWNlczxTY2hlbWVzIGV4dGVuZHMgQmFzZVNjaGVtZXM+ID1cbiAgfCB7IHR5cGU6ICdjb25uZWN0aW9ucGF0aCcsIGRhdGE6IHsgcGF5bG9hZDogU2NoZW1lc1snQ29ubmVjdGlvbiddLCBwYXRoPzogc3RyaW5nLCBwb2ludHM6IFBvc2l0aW9uW10gfSB9XG5cbnR5cGUgUmVxdWlyZXM8U2NoZW1lcyBleHRlbmRzIEJhc2VTY2hlbWVzPiA9XG4gIHwgUmVuZGVyU2lnbmFsPCdub2RlJywgeyBwYXlsb2FkOiBTY2hlbWVzWydOb2RlJ10gfT5cbiAgfCBSZW5kZXJTaWduYWw8J2Nvbm5lY3Rpb24nLCB7IHBheWxvYWQ6IFNjaGVtZXNbJ0Nvbm5lY3Rpb24nXSwgc3RhcnQ/OiBQb3NpdGlvbiwgZW5kPzogUG9zaXRpb24gfT5cbiAgfCB7IHR5cGU6ICd1bm1vdW50JywgZGF0YTogeyBlbGVtZW50OiBIVE1MRWxlbWVudCB9IH1cblxuLyoqXG4gKiBBbmd1bGFyIHBsdWdpbi4gUmVuZGVycyBub2RlcywgY29ubmVjdGlvbnMgYW5kIG90aGVyIGVsZW1lbnRzIHVzaW5nIFJlYWN0LlxuICogQHByaW9yaXR5IDlcbiAqIEBlbWl0cyBjb25uZWN0aW9ucGF0aFxuICogQGxpc3RlbnMgcmVuZGVyXG4gKiBAbGlzdGVucyB1bm1vdW50XG4gKi9cbmV4cG9ydCBjbGFzcyBBbmd1bGFyUGx1Z2luPFNjaGVtZXMgZXh0ZW5kcyBCYXNlU2NoZW1lcywgVCA9IFJlcXVpcmVzPFNjaGVtZXM+PiBleHRlbmRzIFNjb3BlPFByb2R1Y2VzPFNjaGVtZXM+LCBbUmVxdWlyZXM8U2NoZW1lcz4gfCBUXT4ge1xuICBwcmVzZXRzOiBSZW5kZXJQcmVzZXQ8U2NoZW1lcywgVD5bXSA9IFtdXG4gIHJlbmRlcmVyOiBSZW5kZXJlclxuICBvd25lcnMgPSBuZXcgV2Vha01hcDxIVE1MRWxlbWVudCwgUmVuZGVyUHJlc2V0PFNjaGVtZXMsIFQ+PigpXG5cbiAgLyoqXG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0gcGFyYW1zIFBsdWdpbiBwcm9wZXJ0aWVzXG4gICAqIEBwYXJhbSBwYXJhbXMuaW5qZWN0b3IgQW5ndWxhcidzIEluamVjdG9yIGluc3RhbmNlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhcmFtczogeyBpbmplY3RvcjogSW5qZWN0b3IgfSkge1xuICAgIHN1cGVyKCdhbmd1bGFyLXJlbmRlcicpXG4gICAgdGhpcy5yZW5kZXJlciA9IGdldFJlbmRlcmVyKClcblxuICAgIHRoaXMuYWRkUGlwZShjb250ZXh0ID0+IHtcbiAgICAgIGlmICghY29udGV4dCB8fCB0eXBlb2YgY29udGV4dCAhPT0gJ29iamVjdCcgfHwgISgndHlwZScgaW4gY29udGV4dCkpIHJldHVybiBjb250ZXh0XG4gICAgICBpZiAoY29udGV4dC50eXBlID09PSAndW5tb3VudCcpIHtcbiAgICAgICAgdGhpcy51bm1vdW50KGNvbnRleHQuZGF0YS5lbGVtZW50KVxuICAgICAgfSBlbHNlIGlmIChjb250ZXh0LnR5cGUgPT09ICdyZW5kZXInKSB7XG4gICAgICAgIGlmICgnZmlsbGVkJyBpbiBjb250ZXh0LmRhdGEgJiYgY29udGV4dC5kYXRhLmZpbGxlZCkge1xuICAgICAgICAgIHJldHVybiBjb250ZXh0XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubW91bnQoY29udGV4dC5kYXRhLmVsZW1lbnQsIGNvbnRleHQpKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIC4uLmNvbnRleHQuZGF0YSxcbiAgICAgICAgICAgICAgZmlsbGVkOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBhcyB0eXBlb2YgY29udGV4dFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gY29udGV4dFxuICAgIH0pXG4gIH1cblxuICBzZXRQYXJlbnQoc2NvcGU6IFNjb3BlPFJlcXVpcmVzPFNjaGVtZXM+IHwgVD4pOiB2b2lkIHtcbiAgICBzdXBlci5zZXRQYXJlbnQoc2NvcGUpXG5cbiAgICB0aGlzLnByZXNldHMuZm9yRWFjaChwcmVzZXQgPT4ge1xuICAgICAgaWYgKHByZXNldC5hdHRhY2gpIHByZXNldC5hdHRhY2godGhpcylcbiAgICB9KVxuICB9XG5cblxuICBwcml2YXRlIHVubW91bnQoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLm93bmVycy5kZWxldGUoZWxlbWVudClcbiAgICB0aGlzLnJlbmRlcmVyLnVubW91bnQoZWxlbWVudClcbiAgfVxuXG4gIHByaXZhdGUgbW91bnQoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNvbnRleHQ6IFJlcXVpcmVzPFNjaGVtZXM+KSB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLnJlbmRlcmVyLmdldChlbGVtZW50KVxuXG4gICAgaWYgKGV4aXN0aW5nKSB7XG4gICAgICB0aGlzLnByZXNldHMuZm9yRWFjaChwcmVzZXQgPT4ge1xuICAgICAgICBpZiAodGhpcy5vd25lcnMuZ2V0KGVsZW1lbnQpICE9PSBwcmVzZXQpIHJldHVyblxuICAgICAgICBjb25zdCByZXN1bHQgPSBwcmVzZXQudXBkYXRlKGNvbnRleHQgYXMgdW5rbm93biBhcyBFeHRyYWN0PFQsIHsgdHlwZTogJ3JlbmRlcicgfT4sIHRoaXMpXG5cbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIHRoaXMucmVuZGVyZXIudXBkYXRlKGV4aXN0aW5nLCByZXN1bHQpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgcHJlc2V0IG9mIHRoaXMucHJlc2V0cykge1xuICAgICAgY29uc3QgcmVzdWx0ID0gcHJlc2V0Lm1vdW50KGNvbnRleHQgYXMgdW5rbm93biBhcyBFeHRyYWN0PFQsIHsgdHlwZTogJ3JlbmRlcicgfT4sIHRoaXMpXG5cbiAgICAgIGlmICghcmVzdWx0KSBjb250aW51ZVxuXG4gICAgICBjb25zdCB7IGtleSwgY29tcG9uZW50LCBwcm9wcyB9ID0gcmVzdWx0XG5cbiAgICAgIHRoaXMucmVuZGVyZXIubW91bnQoZWxlbWVudCwga2V5LCBjb21wb25lbnQsIHRoaXMucGFyYW1zLmluamVjdG9yLCBwcm9wcylcblxuICAgICAgdGhpcy5vd25lcnMuc2V0KGVsZW1lbnQsIHByZXNldClcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIHJldHVyblxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBwcmVzZXQgdG8gdGhlIHBsdWdpbi5cbiAgICogQHBhcmFtIHByZXNldCBQcmVzZXQgdGhhdCBjYW4gcmVuZGVyIG5vZGVzLCBjb25uZWN0aW9ucyBhbmQgb3RoZXIgZWxlbWVudHMuXG4gICAqL1xuICBwdWJsaWMgYWRkUHJlc2V0PEs+KHByZXNldDogUmVuZGVyUHJlc2V0PFNjaGVtZXMsIENhbkFzc2lnblNpZ25hbDxULCBLPiBleHRlbmRzIHRydWUgPyBLIDogJ0Nhbm5vdCBhcHBseSBwcmVzZXQuIFByb3ZpZGVkIHNpZ25hbHMgYXJlIG5vdCBjb21wYXRpYmxlJz4pIHtcbiAgICBjb25zdCBsb2NhbCA9IHByZXNldCBhcyB1bmtub3duIGFzIFJlbmRlclByZXNldDxTY2hlbWVzLCBUPlxuXG4gICAgaWYgKGxvY2FsLmF0dGFjaCkgbG9jYWwuYXR0YWNoKHRoaXMpXG4gICAgdGhpcy5wcmVzZXRzLnB1c2gobG9jYWwpXG4gIH1cbn1cbiJdfQ==
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9uZzE4Ly5zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxXQUFXLENBQUE7QUFHcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUVyQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUM1RCxjQUFjLDhCQUE4QixDQUFBO0FBQzVDLGNBQWMsbUNBQW1DLENBQUE7QUFDakQsY0FBYyw4QkFBOEIsQ0FBQTtBQUM1QyxjQUFjLDhCQUE4QixDQUFBO0FBQzVDLGNBQWMsT0FBTyxDQUFBO0FBQ3JCLGNBQWMsUUFBUSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogYXMgUHJlc2V0cyBmcm9tICcuL3ByZXNldHMnXG5cbmV4cG9ydCB7IEFuZ3VsYXJBcmVhMkQgfSBmcm9tICcuL3ByZXNldHMvY2xhc3NpYy90eXBlcydcbmV4cG9ydCB7IFJldGVNb2R1bGUgfSBmcm9tICcuL21vZHVsZSdcbmV4cG9ydCB7IFJlbmRlclByZXNldCB9IGZyb20gJy4vcHJlc2V0cy90eXBlcydcbmV4cG9ydCB7IFJldGVDb250ZXh0TWVudU1vZHVsZSB9IGZyb20gJy4vcHJlc2V0cy9jb250ZXh0LW1lbnUvbW9kdWxlJ1xuZXhwb3J0IHsgUmV0ZU1pbmltYXBNb2R1bGUgfSBmcm9tICcuL3ByZXNldHMvbWluaW1hcC9tb2R1bGUnXG5leHBvcnQgeyBSZXRlUmVyb3V0ZU1vZHVsZSB9IGZyb20gJy4vcHJlc2V0cy9yZXJvdXRlL21vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMnXG5leHBvcnQgKiBmcm9tICcuL3ByZXNldHMvY29udGV4dC1tZW51L2NvbXBvbmVudHMnXG5leHBvcnQgKiBmcm9tICcuL3ByZXNldHMvbWluaW1hcC9jb21wb25lbnRzJ1xuZXhwb3J0ICogZnJvbSAnLi9wcmVzZXRzL3Jlcm91dGUvY29tcG9uZW50cydcbmV4cG9ydCAqIGZyb20gJy4vcmVmJ1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlJ1xuIl19
@@ -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(__ngFactoryType__) { return new (__ngFactoryType__ || 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbmcxOC8uc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDbkcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxPQUFPLENBQUM7O0FBdUJyQyxNQUFNLE9BQU8sVUFBVTtvR0FBVixVQUFVOzREQUFWLFVBQVU7Z0VBWG5CLFlBQVk7O2lGQVdILFVBQVU7Y0FyQnRCLFFBQVE7ZUFBQztnQkFDUixZQUFZLEVBQUU7b0JBQ1osWUFBWTtvQkFDWixhQUFhO29CQUNiLG1CQUFtQjtvQkFDbkIsMEJBQTBCO29CQUMxQixlQUFlO29CQUNmLGdCQUFnQjtpQkFDakI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLFlBQVk7aUJBQ2I7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osYUFBYTtvQkFDYixtQkFBbUI7b0JBQ25CLDBCQUEwQjtvQkFDMUIsZUFBZTtvQkFDZixnQkFBZ0I7aUJBQ2pCO2FBQ0Y7O3dGQUNZLFVBQVUsbUJBbkJuQixZQUFZO1FBQ1osYUFBYTtRQUNiLG1CQUFtQjtRQUNuQiwwQkFBMEI7UUFDMUIsZUFBZTtRQUNmLGdCQUFnQixhQUdoQixZQUFZLGFBR1osWUFBWTtRQUNaLGFBQWE7UUFDYixtQkFBbUI7UUFDbkIsMEJBQTBCO1FBQzFCLGVBQWU7UUFDZixnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgTm9kZUNvbXBvbmVudCB9IGZyb20gJy4vcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMvbm9kZS9ub2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25uZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9wcmVzZXRzL2NsYXNzaWMvY29tcG9uZW50cy9jb25uZWN0aW9uL2Nvbm5lY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFNvY2tldENvbXBvbmVudCB9IGZyb20gJy4vcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMvc29ja2V0L3NvY2tldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29ubmVjdGlvbldyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL3ByZXNldHMvY2xhc3NpYy9jb21wb25lbnRzL2Nvbm5lY3Rpb24vY29ubmVjdGlvbi13cmFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb250cm9sQ29tcG9uZW50IH0gZnJvbSAnLi9wcmVzZXRzL2NsYXNzaWMvY29tcG9uZW50cy9jb250cm9sL2NvbnRyb2wuY29tcG9uZW50JztcbmltcG9ydCB7IFJlZkRpcmVjdGl2ZSB9IGZyb20gJy4vcmVmJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUmVmRGlyZWN0aXZlLFxuICAgIE5vZGVDb21wb25lbnQsXG4gICAgQ29ubmVjdGlvbkNvbXBvbmVudCxcbiAgICBDb25uZWN0aW9uV3JhcHBlckNvbXBvbmVudCxcbiAgICBTb2NrZXRDb21wb25lbnQsXG4gICAgQ29udHJvbENvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBSZWZEaXJlY3RpdmUsXG4gICAgTm9kZUNvbXBvbmVudCxcbiAgICBDb25uZWN0aW9uQ29tcG9uZW50LFxuICAgIENvbm5lY3Rpb25XcmFwcGVyQ29tcG9uZW50LFxuICAgIFNvY2tldENvbXBvbmVudCxcbiAgICBDb250cm9sQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUmV0ZU1vZHVsZSB7IH1cbiJdfQ==
@@ -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(__ngFactoryType__) { return new (__ngFactoryType__ || 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25nMTgvLnNyYy9wcmVzZXRzL2NsYXNzaWMvY29tcG9uZW50cy9jb25uZWN0aW9uL2Nvbm5lY3Rpb24td3JhcHBlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsaUJBQWlCLEVBQWEsZ0JBQWdCLEVBQUUsd0JBQXdCLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ2pKLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBUXJDLE1BQU0sT0FBTywwQkFBMEI7SUFvQmpCO0lBQStCO0lBQTRDO0lBbkJ0RixJQUFJLENBQW9FO0lBQ3hFLEtBQUssQ0FBNkI7SUFDbEMsR0FBRyxDQUE2QjtJQUNoQyxJQUFJLENBQXNEO0lBQzFELFFBQVEsQ0FBTTtJQUNkLG1CQUFtQixDQUFNO0lBRWxDLEdBQUcsQ0FBb0I7SUFFdkIsT0FBTyxHQUFvQixJQUFJLENBQUE7SUFDL0IsSUFBSSxNQUFNO1FBQ1IsT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtJQUN0RCxDQUFDO0lBQ0QsS0FBSyxHQUFvQixJQUFJLENBQUE7SUFDN0IsSUFBSSxJQUFJO1FBQ04sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQTtJQUNoRCxDQUFDO0lBQ0QsS0FBSyxDQUFRO0lBRWIsWUFBb0IsR0FBc0IsRUFBUyxnQkFBa0MsRUFBVSx3QkFBa0Q7UUFBN0gsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBUyxxQkFBZ0Is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QUFLOztrRkFOSywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIENoYW5nZURldGVjdG9yUmVmLCBPbkNoYW5nZXMsIFZpZXdDb250YWluZXJSZWYsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbGFzc2ljUHJlc2V0IH0gZnJvbSAncmV0ZSc7XG5pbXBvcnQgeyBQb3NpdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3R5cGVzJztcblxudHlwZSBQb3NpdGlvbldhdGNoZXIgPSAoY2I6ICh2YWx1ZTogUG9zaXRpb24pID0+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(__ngFactoryType__) { return new (__ngFactoryType__ || 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();
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9uZzE4Ly5zcmMvcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMvY29ubmVjdGlvbi9jb25uZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25nMTgvLnNyYy9wcmVzZXRzL2NsYXNzaWMvY29tcG9uZW50cy9jb25uZWN0aW9uL2Nvbm5lY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFVckMsTUFBTSxPQUFPLG1CQUFtQjtJQUNyQixJQUFJLENBQW9FO0lBQ3hFLEtBQUssQ0FBVTtJQUNmLEdBQUcsQ0FBVTtJQUNiLElBQUksQ0FBUTs2R0FKVixtQkFBbUI7NkRBQW5CLG1CQUFtQjs7WUNYaEMsOEJBQThCO1lBQzFCLHVCQUF3QjtZQUM1QixpQkFBTTs7WUFESSxjQUFlOzs7O2lGRFVaLG1CQUFtQjtjQUwvQixTQUFTOzJCQUNFLFlBQVk7Z0JBS2IsSUFBSTtrQkFBWixLQUFLO1lBQ0csS0FBSztrQkFBYixLQUFLO1lBQ0csR0FBRztrQkFBWCxLQUFLO1lBQ0csSUFBSTtrQkFBWixLQUFLOztrRkFKSyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbGFzc2ljUHJlc2V0IH0gZnJvbSAncmV0ZSc7XG5pbXBvcnQgeyBjbGFzc2ljQ29ubmVjdGlvblBhdGggfSBmcm9tICdyZXRlLXJlbmRlci11dGlscydcbmltcG9ydCB7IFBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vdHlwZXMnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nvbm5lY3Rpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29ubmVjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Nvbm5lY3Rpb24uY29tcG9uZW50LnNhc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb25uZWN0aW9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZGF0YSE6IENsYXNzaWNQcmVzZXQuQ29ubmVjdGlvbjxDbGFzc2ljUHJlc2V0Lk5vZGUsIENsYXNzaWNQcmVzZXQuTm9kZT47XG4gIEBJbnB1dCgpIHN0YXJ0OiBQb3NpdGlvblxuICBASW5wdXQoKSBlbmQ6IFBvc2l0aW9uXG4gIEBJbnB1dCgpIHBhdGg6IHN0cmluZ1xufVxuIiwiPHN2ZyBkYXRhLXRlc3RpZD1cImNvbm5lY3Rpb25cIj5cbiAgICA8cGF0aCBbYXR0ci5kXT1cInBhdGhcIiAvPlxuPC9zdmc+XG4iXX0=
@@ -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(__ngFactoryType__) { return new (__ngFactoryType__ || 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, "input", "value", "readonly", "type"]], 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:100%;border-radius:30px;background-color:#fff;padding:2px 6px;border:1px solid #999;font-size:110%;box-sizing:border-box}"] });
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:100%;border-radius:30px;background-color:#fff;padding:2px 6px;border:1px solid #999;font-size:110%;box-sizing:border-box}\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9uZzE4Ly5zcmMvcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMvY29udHJvbC9jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25nMTgvLnNyYy9wcmVzZXRzL2NsYXNzaWMvY29tcG9uZW50cy9jb250cm9sL2NvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTRCLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU1yQyxNQUFNLE9BQU8sZ0JBQWdCO0lBVVA7SUFUWCxJQUFJLENBQWlDO0lBQ3JDLFFBQVEsQ0FBTztJQUlqQixXQUFXLENBQUMsS0FBVTtRQUMzQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDbkIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDNUIsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBRTVCLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsYUFBYSxDQUFDO2VBQ2pELENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDeEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUMxQixDQUFDO1FBQ0QscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7SUFDOUMsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUFRO1FBQ2YsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQTBCLENBQUE7UUFDM0MsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRO1lBQ3hDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ2YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQTJDLENBQUE7UUFFM0QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUMxQixDQUFDOzBHQWpDVSxnQkFBZ0I7NkRBQWhCLGdCQUFnQjtZQUFoQix1R0FBQSx1QkFBbUIsSUFBSDs7WUNQN0IsZ0NBS0U7WUFEQSxrR0FBUyxvQkFBZ0IsSUFBQztZQUo1QixpQkFLRTs7WUFGQSxBQURBLEFBREEsc0NBQW9CLCtCQUNNLHVCQUNSOzs7aUZESVAsZ0JBQWdCO2NBSjVCLFNBQVM7O2tEQUtDLElBQUk7a0JBQVosS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFJQyxXQUFXO2tCQURqQixZQUFZO21CQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7a0ZBTDVCLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgQ2hhbmdlRGV0ZWN0b3JSZWYsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xhc3NpY1ByZXNldCB9IGZyb20gJ3JldGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6IGAuL2NvbnRyb2wuY29tcG9uZW50Lmh0bWxgLFxuICBzdHlsZVVybHM6IFsnLi9jb250cm9sLmNvbXBvbmVudC5zYXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29udHJvbENvbXBvbmVudDxUIGV4dGVuZHMgJ3RleHQnIHwgJ251bWJlcic+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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9uZzE4Ly5zcmMvcHJlc2V0cy9jbGFzc2ljL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLDJDQUEyQyxDQUFBO0FBQ3pELGNBQWMsbUNBQW1DLENBQUE7QUFDakQsY0FBYyw2QkFBNkIsQ0FBQTtBQUMzQyxjQUFjLDJCQUEyQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgKiBmcm9tICcuL25vZGUvbm9kZS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2Nvbm5lY3Rpb24vY29ubmVjdGlvbi13cmFwcGVyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vY29ubmVjdGlvbi9jb25uZWN0aW9uLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbC9jb250cm9sLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vc29ja2V0L3NvY2tldC5jb21wb25lbnQnXG4iXX0=