ngx-vflow 1.0.2 → 1.0.5
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/README.md +10 -10
- package/esm2022/lib/vflow/components/background/background.component.mjs +6 -10
- package/esm2022/lib/vflow/components/connection/connection.component.mjs +8 -10
- package/esm2022/lib/vflow/components/custom-node-base/custom-node-base.component.mjs +2 -2
- package/esm2022/lib/vflow/components/default-node/default-node.component.mjs +4 -4
- package/esm2022/lib/vflow/components/defs/defs.component.mjs +3 -3
- package/esm2022/lib/vflow/components/edge/edge.component.mjs +3 -3
- package/esm2022/lib/vflow/components/edge-label/edge-label.component.mjs +5 -7
- package/esm2022/lib/vflow/components/node/node.component.mjs +7 -8
- package/esm2022/lib/vflow/components/vflow/vflow.component.mjs +5 -8
- package/esm2022/lib/vflow/decorators/microtask.decorator.mjs +1 -1
- package/esm2022/lib/vflow/decorators/run-in-injection-context.decorator.mjs +2 -2
- package/esm2022/lib/vflow/directives/changes-controller.directive.mjs +64 -22
- package/esm2022/lib/vflow/directives/connection-controller.directive.mjs +6 -3
- package/esm2022/lib/vflow/directives/drag-handle.directive.mjs +3 -3
- package/esm2022/lib/vflow/directives/flow-size-controller.directive.mjs +6 -4
- package/esm2022/lib/vflow/directives/handle-size-controller.directive.mjs +2 -2
- package/esm2022/lib/vflow/directives/map-context.directive.mjs +16 -14
- package/esm2022/lib/vflow/directives/pointer.directive.mjs +2 -2
- package/esm2022/lib/vflow/directives/reference.directive.mjs +1 -1
- package/esm2022/lib/vflow/directives/root-pointer.directive.mjs +7 -11
- package/esm2022/lib/vflow/directives/root-svg-context.directive.mjs +1 -1
- package/esm2022/lib/vflow/directives/selectable.directive.mjs +1 -1
- package/esm2022/lib/vflow/directives/space-point-context.directive.mjs +2 -2
- package/esm2022/lib/vflow/directives/template.directive.mjs +6 -6
- package/esm2022/lib/vflow/interfaces/box.mjs +1 -1
- package/esm2022/lib/vflow/interfaces/component-node-event.interface.mjs +1 -1
- package/esm2022/lib/vflow/interfaces/connection-settings.interface.mjs +1 -1
- package/esm2022/lib/vflow/interfaces/connection.interface.mjs +1 -1
- package/esm2022/lib/vflow/interfaces/connection.internal.interface.mjs +1 -1
- package/esm2022/lib/vflow/interfaces/edge-label.interface.mjs +1 -1
- package/esm2022/lib/vflow/interfaces/edge.interface.mjs +1 -1
- package/esm2022/lib/vflow/interfaces/fit-view-options.interface.mjs +1 -1
- package/esm2022/lib/vflow/interfaces/flow-entity.interface.mjs +1 -1
- package/esm2022/lib/vflow/interfaces/marker.interface.mjs +1 -1
- package/esm2022/lib/vflow/interfaces/node.interface.mjs +5 -5
- package/esm2022/lib/vflow/interfaces/optimization.interface.mjs +1 -1
- package/esm2022/lib/vflow/interfaces/path-data.interface.mjs +1 -1
- package/esm2022/lib/vflow/interfaces/point.interface.mjs +1 -1
- package/esm2022/lib/vflow/interfaces/rect.mjs +1 -1
- package/esm2022/lib/vflow/interfaces/template-context.interface.mjs +1 -1
- package/esm2022/lib/vflow/interfaces/viewport.interface.mjs +1 -1
- package/esm2022/lib/vflow/math/edge-path/bezier-path.mjs +4 -10
- package/esm2022/lib/vflow/math/edge-path/smooth-step-path.mjs +3 -3
- package/esm2022/lib/vflow/math/edge-path/straigh-path.mjs +6 -6
- package/esm2022/lib/vflow/math/point-on-line-by-ratio.mjs +1 -1
- package/esm2022/lib/vflow/models/connection.model.mjs +1 -1
- package/esm2022/lib/vflow/models/edge-label.model.mjs +2 -2
- package/esm2022/lib/vflow/models/edge.model.mjs +25 -25
- package/esm2022/lib/vflow/models/handle.model.mjs +41 -37
- package/esm2022/lib/vflow/models/minimap.model.mjs +2 -2
- package/esm2022/lib/vflow/models/node.model.mjs +9 -14
- package/esm2022/lib/vflow/models/toolbar.model.mjs +6 -6
- package/esm2022/lib/vflow/public-components/custom-dynamic-node/custom-dynamic-node.component.mjs +3 -3
- package/esm2022/lib/vflow/public-components/custom-node/custom-node.component.mjs +3 -3
- package/esm2022/lib/vflow/public-components/handle/handle.component.mjs +2 -2
- package/esm2022/lib/vflow/public-components/minimap/minimap.component.mjs +8 -16
- package/esm2022/lib/vflow/public-components/node-toolbar/node-toolbar.component.mjs +3 -3
- package/esm2022/lib/vflow/public-components/resizable/resizable.component.mjs +11 -17
- package/esm2022/lib/vflow/services/component-event-bus.service.mjs +1 -1
- package/esm2022/lib/vflow/services/draggable.service.mjs +10 -12
- package/esm2022/lib/vflow/services/edge-changes.service.mjs +14 -20
- package/esm2022/lib/vflow/services/flow-entities.service.mjs +7 -10
- package/esm2022/lib/vflow/services/flow-settings.service.mjs +1 -1
- package/esm2022/lib/vflow/services/flow-status.service.mjs +2 -2
- package/esm2022/lib/vflow/services/handle.service.mjs +3 -3
- package/esm2022/lib/vflow/services/keyboard.service.mjs +8 -6
- package/esm2022/lib/vflow/services/node-accessor.service.mjs +1 -1
- package/esm2022/lib/vflow/services/node-changes.service.mjs +13 -21
- package/esm2022/lib/vflow/services/node-rendering.service.mjs +6 -7
- package/esm2022/lib/vflow/services/overlays.service.mjs +2 -2
- package/esm2022/lib/vflow/services/selection.service.mjs +6 -4
- package/esm2022/lib/vflow/services/viewport.service.mjs +13 -11
- package/esm2022/lib/vflow/testing-utils/provide-custom-node-mocks.mjs +25 -25
- package/esm2022/lib/vflow/types/background.type.mjs +1 -1
- package/esm2022/lib/vflow/types/connection-mode.type.mjs +1 -1
- package/esm2022/lib/vflow/types/edge-change.type.mjs +1 -1
- package/esm2022/lib/vflow/types/handle-type.type.mjs +1 -1
- package/esm2022/lib/vflow/types/keyboard-action.type.mjs +1 -1
- package/esm2022/lib/vflow/types/node-change.type.mjs +1 -1
- package/esm2022/lib/vflow/types/position.type.mjs +1 -1
- package/esm2022/lib/vflow/types/using-points.type.mjs +1 -1
- package/esm2022/lib/vflow/types/viewport-change-type.type.mjs +1 -1
- package/esm2022/lib/vflow/utils/add-nodes-to-edges.mjs +2 -2
- package/esm2022/lib/vflow/utils/adjust-direction.mjs +1 -1
- package/esm2022/lib/vflow/utils/get-os.mjs +6 -6
- package/esm2022/lib/vflow/utils/hash.mjs +2 -2
- package/esm2022/lib/vflow/utils/id.mjs +1 -1
- package/esm2022/lib/vflow/utils/is-defined.mjs +1 -1
- package/esm2022/lib/vflow/utils/is-group-node.mjs +1 -1
- package/esm2022/lib/vflow/utils/nodes.mjs +2 -2
- package/esm2022/lib/vflow/utils/reference-keeper.mjs +7 -7
- package/esm2022/lib/vflow/utils/resizable.mjs +4 -4
- package/esm2022/lib/vflow/utils/round.mjs +1 -1
- package/esm2022/lib/vflow/utils/transform-background.mjs +2 -4
- package/esm2022/lib/vflow/utils/viewport.mjs +1 -1
- package/esm2022/lib/vflow/vflow.mjs +10 -10
- package/esm2022/public-api.mjs +1 -1
- package/fesm2022/ngx-vflow.mjs +320 -322
- package/fesm2022/ngx-vflow.mjs.map +1 -1
- package/lib/vflow/components/node/node.component.d.ts +1 -1
- package/lib/vflow/components/vflow/vflow.component.d.ts +1 -1
- package/lib/vflow/decorators/run-in-injection-context.decorator.d.ts +1 -1
- package/lib/vflow/directives/changes-controller.directive.d.ts +29 -29
- package/lib/vflow/directives/connection-controller.directive.d.ts +4 -2
- package/lib/vflow/directives/pointer.directive.d.ts +4 -4
- package/lib/vflow/interfaces/component-node-event.interface.d.ts +5 -5
- package/lib/vflow/interfaces/connection-settings.interface.d.ts +4 -4
- package/lib/vflow/interfaces/connection.internal.interface.d.ts +2 -2
- package/lib/vflow/interfaces/edge.interface.d.ts +3 -3
- package/lib/vflow/interfaces/flow-entity.interface.d.ts +1 -1
- package/lib/vflow/interfaces/node.interface.d.ts +4 -4
- package/lib/vflow/interfaces/path-data.interface.d.ts +2 -2
- package/lib/vflow/interfaces/template-context.interface.d.ts +2 -2
- package/lib/vflow/interfaces/viewport.interface.d.ts +2 -2
- package/lib/vflow/math/edge-path/straigh-path.d.ts +3 -3
- package/lib/vflow/math/point-on-line-by-ratio.d.ts +1 -1
- package/lib/vflow/models/connection.model.d.ts +3 -3
- package/lib/vflow/models/edge-label.model.d.ts +1 -1
- package/lib/vflow/models/edge.model.d.ts +8 -9
- package/lib/vflow/models/handle.model.d.ts +2 -2
- package/lib/vflow/models/minimap.model.d.ts +1 -1
- package/lib/vflow/models/toolbar.model.d.ts +3 -3
- package/lib/vflow/public-components/custom-dynamic-node/custom-dynamic-node.component.d.ts +2 -2
- package/lib/vflow/public-components/custom-node/custom-node.component.d.ts +2 -2
- package/lib/vflow/public-components/handle/handle.component.d.ts +1 -1
- package/lib/vflow/services/flow-status.service.d.ts +1 -1
- package/lib/vflow/testing-utils/provide-custom-node-mocks.d.ts +1 -1
- package/lib/vflow/types/node-change.type.d.ts +1 -1
- package/lib/vflow/types/viewport-change-type.type.d.ts +1 -3
- package/lib/vflow/utils/add-nodes-to-edges.d.ts +2 -2
- package/lib/vflow/utils/adjust-direction.d.ts +1 -1
- package/lib/vflow/utils/is-group-node.d.ts +1 -1
- package/lib/vflow/utils/nodes.d.ts +2 -2
- package/lib/vflow/utils/reference-keeper.d.ts +3 -3
- package/lib/vflow/utils/resizable.d.ts +2 -2
- package/lib/vflow/utils/transform-background.d.ts +1 -1
- package/lib/vflow/utils/viewport.d.ts +2 -2
- package/lib/vflow/vflow.d.ts +8 -8
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@ npm i ngx-vflow --save
|
|
|
13
13
|
## Version Compatibility
|
|
14
14
|
|
|
15
15
|
| ngx-vlow | Angular |
|
|
16
|
-
|
|
16
|
+
| -------- | --------- |
|
|
17
17
|
| v0.x | v16.2.0+ |
|
|
18
18
|
| v1.x | v17.3.12+ |
|
|
19
19
|
|
|
@@ -26,7 +26,7 @@ The following code describes 3 nodes and creates 2 edges between them.
|
|
|
26
26
|
template: `<vflow [nodes]="nodes" [edges]="edges" />`,
|
|
27
27
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
28
28
|
standalone: true,
|
|
29
|
-
imports: [Vflow]
|
|
29
|
+
imports: [Vflow],
|
|
30
30
|
})
|
|
31
31
|
export class DefaultEdgesDemoComponent {
|
|
32
32
|
public nodes: Node[] = [
|
|
@@ -34,34 +34,34 @@ export class DefaultEdgesDemoComponent {
|
|
|
34
34
|
id: '1',
|
|
35
35
|
point: { x: 10, y: 200 },
|
|
36
36
|
type: 'default',
|
|
37
|
-
text: '1'
|
|
37
|
+
text: '1',
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
40
|
id: '2',
|
|
41
41
|
point: { x: 200, y: 100 },
|
|
42
42
|
type: 'default',
|
|
43
|
-
text: '2'
|
|
43
|
+
text: '2',
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
id: '3',
|
|
47
47
|
point: { x: 200, y: 300 },
|
|
48
48
|
type: 'default',
|
|
49
|
-
text: '3'
|
|
49
|
+
text: '3',
|
|
50
50
|
},
|
|
51
|
-
]
|
|
51
|
+
];
|
|
52
52
|
|
|
53
53
|
public edges: Edge[] = [
|
|
54
54
|
{
|
|
55
55
|
id: '1 -> 2',
|
|
56
56
|
source: '1',
|
|
57
|
-
target: '2'
|
|
57
|
+
target: '2',
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
60
|
id: '1 -> 3',
|
|
61
61
|
source: '1',
|
|
62
|
-
target: '3'
|
|
62
|
+
target: '3',
|
|
63
63
|
},
|
|
64
|
-
]
|
|
64
|
+
];
|
|
65
65
|
}
|
|
66
66
|
```
|
|
67
67
|
|
|
@@ -80,6 +80,6 @@ Host directives for `vflow` that you may find helpful:
|
|
|
80
80
|
- https://www.ngx-vflow.org/api/ngx-vflow/classes/ConnectionControllerDirective
|
|
81
81
|
- https://www.ngx-vflow.org/api/ngx-vflow/classes/ChangesControllerDirective
|
|
82
82
|
|
|
83
|
-
## License
|
|
83
|
+
## License
|
|
84
84
|
|
|
85
85
|
MIT
|
|
@@ -71,9 +71,7 @@ export class BackgroundComponent {
|
|
|
71
71
|
if (!background.repeat) {
|
|
72
72
|
return background.fixed ? 0 : this.viewportService.readableViewport().x;
|
|
73
73
|
}
|
|
74
|
-
return background.fixed
|
|
75
|
-
? 0
|
|
76
|
-
: this.viewportService.readableViewport().x % this.scaledImageWidth();
|
|
74
|
+
return background.fixed ? 0 : this.viewportService.readableViewport().x % this.scaledImageWidth();
|
|
77
75
|
}
|
|
78
76
|
return 0;
|
|
79
77
|
});
|
|
@@ -83,9 +81,7 @@ export class BackgroundComponent {
|
|
|
83
81
|
if (!background.repeat) {
|
|
84
82
|
return background.fixed ? 0 : this.viewportService.readableViewport().y;
|
|
85
83
|
}
|
|
86
|
-
return background.fixed
|
|
87
|
-
? 0
|
|
88
|
-
: this.viewportService.readableViewport().y % this.scaledImageHeight();
|
|
84
|
+
return background.fixed ? 0 : this.viewportService.readableViewport().y % this.scaledImageHeight();
|
|
89
85
|
}
|
|
90
86
|
return 0;
|
|
91
87
|
});
|
|
@@ -108,17 +104,17 @@ export class BackgroundComponent {
|
|
|
108
104
|
});
|
|
109
105
|
}
|
|
110
106
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BackgroundComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
111
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: BackgroundComponent, isStandalone: true, selector: "g[background]", ngImport: i0, template: "@if (backgroundSignal().type === 'dots') {\n <svg:pattern\n [attr.id]=\"patternId\"\n [attr.x]=\"x()\"\n [attr.y]=\"y()\"\n [attr.width]=\"scaledGap()\"\n [attr.height]=\"scaledGap()\"
|
|
107
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: BackgroundComponent, isStandalone: true, selector: "g[background]", ngImport: i0, template: "@if (backgroundSignal().type === 'dots') {\n <svg:pattern\n patternUnits=\"userSpaceOnUse\"\n [attr.id]=\"patternId\"\n [attr.x]=\"x()\"\n [attr.y]=\"y()\"\n [attr.width]=\"scaledGap()\"\n [attr.height]=\"scaledGap()\">\n <svg:circle\n [attr.cx]=\"patternSize()\"\n [attr.cy]=\"patternSize()\"\n [attr.r]=\"patternSize()\"\n [attr.fill]=\"patternColor()\" />\n </svg:pattern>\n\n <svg:rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" [attr.fill]=\"patternUrl\" />\n}\n\n@if (backgroundSignal().type === 'image') {\n @if (repeated()) {\n <svg:pattern\n patternUnits=\"userSpaceOnUse\"\n [attr.id]=\"patternId\"\n [attr.x]=\"imageX()\"\n [attr.y]=\"imageY()\"\n [attr.width]=\"scaledImageWidth()\"\n [attr.height]=\"scaledImageHeight()\">\n <svg:image [attr.href]=\"bgImageSrc()\" [attr.width]=\"scaledImageWidth()\" [attr.height]=\"scaledImageHeight()\" />\n </svg:pattern>\n\n <svg:rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" [attr.fill]=\"patternUrl\" />\n }\n\n @if (!repeated()) {\n <svg:image\n [attr.x]=\"imageX()\"\n [attr.y]=\"imageY()\"\n [attr.width]=\"scaledImageWidth()\"\n [attr.height]=\"scaledImageHeight()\"\n [attr.href]=\"bgImageSrc()\" />\n }\n}\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
112
108
|
}
|
|
113
109
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BackgroundComponent, decorators: [{
|
|
114
110
|
type: Component,
|
|
115
|
-
args: [{ standalone: true, selector: 'g[background]', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (backgroundSignal().type === 'dots') {\n <svg:pattern\n [attr.id]=\"patternId\"\n [attr.x]=\"x()\"\n [attr.y]=\"y()\"\n [attr.width]=\"scaledGap()\"\n [attr.height]=\"scaledGap()\"
|
|
111
|
+
args: [{ standalone: true, selector: 'g[background]', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (backgroundSignal().type === 'dots') {\n <svg:pattern\n patternUnits=\"userSpaceOnUse\"\n [attr.id]=\"patternId\"\n [attr.x]=\"x()\"\n [attr.y]=\"y()\"\n [attr.width]=\"scaledGap()\"\n [attr.height]=\"scaledGap()\">\n <svg:circle\n [attr.cx]=\"patternSize()\"\n [attr.cy]=\"patternSize()\"\n [attr.r]=\"patternSize()\"\n [attr.fill]=\"patternColor()\" />\n </svg:pattern>\n\n <svg:rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" [attr.fill]=\"patternUrl\" />\n}\n\n@if (backgroundSignal().type === 'image') {\n @if (repeated()) {\n <svg:pattern\n patternUnits=\"userSpaceOnUse\"\n [attr.id]=\"patternId\"\n [attr.x]=\"imageX()\"\n [attr.y]=\"imageY()\"\n [attr.width]=\"scaledImageWidth()\"\n [attr.height]=\"scaledImageHeight()\">\n <svg:image [attr.href]=\"bgImageSrc()\" [attr.width]=\"scaledImageWidth()\" [attr.height]=\"scaledImageHeight()\" />\n </svg:pattern>\n\n <svg:rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" [attr.fill]=\"patternUrl\" />\n }\n\n @if (!repeated()) {\n <svg:image\n [attr.x]=\"imageX()\"\n [attr.y]=\"imageY()\"\n [attr.width]=\"scaledImageWidth()\"\n [attr.height]=\"scaledImageHeight()\"\n [attr.href]=\"bgImageSrc()\" />\n }\n}\n" }]
|
|
116
112
|
}], ctorParameters: () => [] });
|
|
117
113
|
function createImage(url) {
|
|
118
114
|
const image = new Image();
|
|
119
115
|
image.src = url;
|
|
120
|
-
return new Promise(resolve => {
|
|
116
|
+
return new Promise((resolve) => {
|
|
121
117
|
image.onload = () => resolve(image);
|
|
122
118
|
});
|
|
123
119
|
}
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2dyb3VuZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvY29tcG9uZW50cy9iYWNrZ3JvdW5kL2JhY2tncm91bmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2NvbXBvbmVudHMvYmFja2dyb3VuZC9iYWNrZ3JvdW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUV0QyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUE7QUFDeEIsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFBO0FBQ3JCLE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBQTtBQUN4QixNQUFNLGVBQWUsR0FBRyxvQkFBb0IsQ0FBQTtBQUM1QyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQTtBQUM3QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUE7QUFRNUIsTUFBTSxPQUFPLG1CQUFtQjtJQThIOUI7UUE3SFEsb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDekMsWUFBTyxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQTtRQUNuRCxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRTVDLHFCQUFnQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFBO1FBRTVELGVBQWU7UUFDTCxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNsQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtZQUUxQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBQy9CLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFJLENBQUE7Z0JBRXpELE9BQU8sSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxVQUFVLENBQUMsQ0FBQTtZQUM5QyxDQUFDO1lBRUQsT0FBTyxDQUFDLENBQUE7UUFDVixDQUFDLENBQUMsQ0FBQTtRQUVRLE1BQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUVoRixNQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7UUFFaEYsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3JDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1lBRWxDLElBQUksRUFBRSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDdkIsT0FBTyxFQUFFLENBQUMsS0FBSyxJQUFJLGVBQWUsQ0FBQTtZQUNwQyxDQUFDO1lBRUQsT0FBTyxlQUFlLENBQUE7UUFDeEIsQ0FBQyxDQUFDLENBQUE7UUFFUSxnQkFBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDcEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUE7WUFFMUMsSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO2dCQUMvQixPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksY0FBYyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDakcsQ0FBQztZQUVELE9BQU8sQ0FBQyxDQUFBO1FBQ1YsQ0FBQyxDQUFDLENBQUE7UUFFRixnQkFBZ0I7UUFDTixlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNuQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtZQUUxQyxPQUFPLFVBQVUsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7UUFDMUQsQ0FBQyxDQUFDLENBQUE7UUFFUSxjQUFTLEdBQUcsUUFBUSxDQUM1QixZQUFZLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUN0QyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQy9DLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUM3RSxFQUNELEVBQUUsWUFBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDMUMsQ0FBQTtRQUVTLHFCQUFnQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDekMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUE7WUFFMUMsSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUNoQyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFJLENBQUE7Z0JBRWhGLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJLGlCQUFpQixDQUFDLENBQUE7WUFDaEYsQ0FBQztZQUVELE9BQU8sQ0FBQyxDQUFBO1FBQ1YsQ0FBQyxDQUFDLENBQUE7UUFFUSxzQkFBaUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzFDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1lBRTFDLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixFQUFFLENBQUMsSUFBSSxDQUFBO2dCQUVoRixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxpQkFBaUIsQ0FBQyxDQUFBO1lBQ2pGLENBQUM7WUFFRCxPQUFPLENBQUMsQ0FBQTtRQUNWLENBQUMsQ0FBQyxDQUFDO1FBRU8sV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUE7WUFFMUMsSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN2QixPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQTtnQkFDekUsQ0FBQztnQkFFRCxPQUFPLFVBQVUsQ0FBQyxLQUFLO29CQUNyQixDQUFDLENBQUMsQ0FBQztvQkFDSCxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtZQUN6RSxDQUFDO1lBRUQsT0FBTyxDQUFDLENBQUE7UUFDVixDQUFDLENBQUMsQ0FBQztRQUVPLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQy9CLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1lBRTFDLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDdkIsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUE7Z0JBQ3pFLENBQUM7Z0JBRUQsT0FBTyxVQUFVLENBQUMsS0FBSztvQkFDckIsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUE7WUFDMUUsQ0FBQztZQUVELE9BQU8sQ0FBQyxDQUFBO1FBQ1YsQ0FBQyxDQUFDLENBQUM7UUFFTyxhQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNqQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtZQUUxQyxPQUFPLFVBQVUsQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxlQUFlLENBQUMsQ0FBQTtRQUM5RSxDQUFDLENBQUMsQ0FBQTtRQUVGLDJFQUEyRTtRQUMzRSx5Q0FBeUM7UUFDL0IsY0FBUyxHQUFHLEVBQUUsRUFBRSxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxRQUFRLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQTtRQUc5QyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUE7WUFFMUMsSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsVUFBVSxDQUFDLGVBQWUsSUFBSSxTQUFTLENBQUE7WUFDOUUsQ0FBQztZQUVELElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUE7WUFDdkQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzsrR0ExSVUsbUJBQW1CO21HQUFuQixtQkFBbUIseUVDckJoQywwNUNBOERBOzs0RkR6Q2EsbUJBQW1CO2tCQU4vQixTQUFTO2lDQUNJLElBQUksWUFDTixlQUFlLG1CQUVSLHVCQUF1QixDQUFDLE1BQU07O0FBK0lqRCxTQUFTLFdBQVcsQ0FBQyxHQUFXO0lBQzlCLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUE7SUFFekIsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUE7SUFFZixPQUFPLElBQUksT0FBTyxDQUFtQixPQUFPLENBQUMsRUFBRTtRQUM3QyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNyQyxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZpZXdwb3J0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ZpZXdwb3J0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUm9vdFN2Z1JlZmVyZW5jZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvcmVmZXJlbmNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBpZCB9IGZyb20gJy4uLy4uL3V0aWxzL2lkJztcbmltcG9ydCB7IEZsb3dTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mbG93LXNldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5cbmNvbnN0IGRlZmF1bHRCZyA9ICcjZmZmJ1xuY29uc3QgZGVmYXVsdEdhcCA9IDIwXG5jb25zdCBkZWZhdWx0RG90U2l6ZSA9IDJcbmNvbnN0IGRlZmF1bHREb3RDb2xvciA9ICdyZ2IoMTc3LCAxNzcsIDE4MyknXG5jb25zdCBkZWZhdWx0SW1hZ2VTY2FsZSA9IDAuMVxuY29uc3QgZGVmYXVsdFJlcGVhdGVkID0gdHJ1ZVxuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdnW2JhY2tncm91bmRdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JhY2tncm91bmQuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQmFja2dyb3VuZENvbXBvbmVudCB7XG4gIHByaXZhdGUgdmlld3BvcnRTZXJ2aWNlID0gaW5qZWN0KFZpZXdwb3J0U2VydmljZSlcbiAgcHJpdmF0ZSByb290U3ZnID0gaW5qZWN0KFJvb3RTdmdSZWZlcmVuY2VEaXJlY3RpdmUpLmVsZW1lbnRcbiAgcHJpdmF0ZSBzZXR0aW5nc1NlcnZpY2UgPSBpbmplY3QoRmxvd1NldHRpbmdzU2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIGJhY2tncm91bmRTaWduYWwgPSB0aGlzLnNldHRpbmdzU2VydmljZS5iYWNrZ3JvdW5kXG5cbiAgLy8gRE9UUyBQQVRURVJOXG4gIHByb3RlY3RlZCBzY2FsZWRHYXAgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYmFja2dyb3VuZCA9IHRoaXMuYmFja2dyb3VuZFNpZ25hbCgpXG5cbiAgICBpZiAoYmFja2dyb3VuZC50eXBlID09PSAnZG90cycpIHtcbiAgICAgIGNvbnN0IHpvb20gPSB0aGlzLnZpZXdwb3J0U2VydmljZS5yZWFkYWJsZVZpZXdwb3J0KCkuem9vbVxuXG4gICAgICByZXR1cm4gem9vbSAqIChiYWNrZ3JvdW5kLmdhcCA/PyBkZWZhdWx0R2FwKVxuICAgIH1cblxuICAgIHJldHVybiAwXG4gIH0pXG5cbiAgcHJvdGVjdGVkIHggPSBjb21wdXRlZCgoKSA9PiB0aGlzLnZpZXdwb3J0U2VydmljZS5yZWFkYWJsZVZpZXdwb3J0KCkueCAlIHRoaXMuc2NhbGVkR2FwKCkpXG5cbiAgcHJvdGVjdGVkIHkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnZpZXdwb3J0U2VydmljZS5yZWFkYWJsZVZpZXdwb3J0KCkueSAlIHRoaXMuc2NhbGVkR2FwKCkpXG5cbiAgcHJvdGVjdGVkIHBhdHRlcm5Db2xvciA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBiZyA9IHRoaXMuYmFja2dyb3VuZFNpZ25hbCgpXG5cbiAgICBpZiAoYmcudHlwZSA9PT0gJ2RvdHMnKSB7XG4gICAgICByZXR1cm4gYmcuY29sb3IgPz8gZGVmYXVsdERvdENvbG9yXG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmF1bHREb3RDb2xvclxuICB9KVxuXG4gIHByb3RlY3RlZCBwYXR0ZXJuU2l6ZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBiYWNrZ3JvdW5kID0gdGhpcy5iYWNrZ3JvdW5kU2lnbmFsKClcblxuICAgIGlmIChiYWNrZ3JvdW5kLnR5cGUgPT09ICdkb3RzJykge1xuICAgICAgcmV0dXJuICh0aGlzLnZpZXdwb3J0U2VydmljZS5yZWFkYWJsZVZpZXdwb3J0KCkuem9vbSAqIChiYWNrZ3JvdW5kLnNpemUgPz8gZGVmYXVsdERvdFNpemUpKSAvIDJcbiAgICB9XG5cbiAgICByZXR1cm4gMFxuICB9KVxuXG4gIC8vIElNQUdFIFBBVFRFUk5cbiAgcHJvdGVjdGVkIGJnSW1hZ2VTcmMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYmFja2dyb3VuZCA9IHRoaXMuYmFja2dyb3VuZFNpZ25hbCgpXG5cbiAgICByZXR1cm4gYmFja2dyb3VuZC50eXBlID09PSAnaW1hZ2UnID8gYmFja2dyb3VuZC5zcmMgOiAnJ1xuICB9KVxuXG4gIHByb3RlY3RlZCBpbWFnZVNpemUgPSB0b1NpZ25hbChcbiAgICB0b09ic2VydmFibGUodGhpcy5iYWNrZ3JvdW5kU2lnbmFsKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IGNyZWF0ZUltYWdlKHRoaXMuYmdJbWFnZVNyYygpKSksXG4gICAgICBtYXAoKGltYWdlKSA9PiAoeyB3aWR0aDogaW1hZ2UubmF0dXJhbFdpZHRoLCBoZWlnaHQ6IGltYWdlLm5hdHVyYWxIZWlnaHQgfSkpLFxuICAgICksXG4gICAgeyBpbml0aWFsVmFsdWU6IHsgd2lkdGg6IDAsIGhlaWdodDogMCB9IH1cbiAgKVxuXG4gIHByb3RlY3RlZCBzY2FsZWRJbWFnZVdpZHRoID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGJhY2tncm91bmQgPSB0aGlzLmJhY2tncm91bmRTaWduYWwoKVxuXG4gICAgaWYgKGJhY2tncm91bmQudHlwZSA9PT0gJ2ltYWdlJykge1xuICAgICAgY29uc3Qgem9vbSA9IGJhY2tncm91bmQuZml4ZWQgPyAxIDogdGhpcy52aWV3cG9ydFNlcnZpY2UucmVhZGFibGVWaWV3cG9ydCgpLnpvb21cblxuICAgICAgcmV0dXJuIHRoaXMuaW1hZ2VTaXplKCkud2lkdGggKiB6b29tICogKGJhY2tncm91bmQuc2NhbGUgPz8gZGVmYXVsdEltYWdlU2NhbGUpXG4gICAgfVxuXG4gICAgcmV0dXJuIDBcbiAgfSlcblxuICBwcm90ZWN0ZWQgc2NhbGVkSW1hZ2VIZWlnaHQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYmFja2dyb3VuZCA9IHRoaXMuYmFja2dyb3VuZFNpZ25hbCgpXG5cbiAgICBpZiAoYmFja2dyb3VuZC50eXBlID09PSAnaW1hZ2UnKSB7XG4gICAgICBjb25zdCB6b29tID0gYmFja2dyb3VuZC5maXhlZCA/IDEgOiB0aGlzLnZpZXdwb3J0U2VydmljZS5yZWFkYWJsZVZpZXdwb3J0KCkuem9vbVxuXG4gICAgICByZXR1cm4gdGhpcy5pbWFnZVNpemUoKS5oZWlnaHQgKiB6b29tICogKGJhY2tncm91bmQuc2NhbGUgPz8gZGVmYXVsdEltYWdlU2NhbGUpXG4gICAgfVxuXG4gICAgcmV0dXJuIDBcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGltYWdlWCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBiYWNrZ3JvdW5kID0gdGhpcy5iYWNrZ3JvdW5kU2lnbmFsKClcblxuICAgIGlmIChiYWNrZ3JvdW5kLnR5cGUgPT09ICdpbWFnZScpIHtcbiAgICAgIGlmICghYmFja2dyb3VuZC5yZXBlYXQpIHtcbiAgICAgICAgcmV0dXJuIGJhY2tncm91bmQuZml4ZWQgPyAwIDogdGhpcy52aWV3cG9ydFNlcnZpY2UucmVhZGFibGVWaWV3cG9ydCgpLnhcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGJhY2tncm91bmQuZml4ZWRcbiAgICAgICAgPyAwXG4gICAgICAgIDogdGhpcy52aWV3cG9ydFNlcnZpY2UucmVhZGFibGVWaWV3cG9ydCgpLnggJSB0aGlzLnNjYWxlZEltYWdlV2lkdGgoKVxuICAgIH1cblxuICAgIHJldHVybiAwXG4gIH0pO1xuXG4gIHByb3RlY3RlZCBpbWFnZVkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYmFja2dyb3VuZCA9IHRoaXMuYmFja2dyb3VuZFNpZ25hbCgpXG5cbiAgICBpZiAoYmFja2dyb3VuZC50eXBlID09PSAnaW1hZ2UnKSB7XG4gICAgICBpZiAoIWJhY2tncm91bmQucmVwZWF0KSB7XG4gICAgICAgIHJldHVybiBiYWNrZ3JvdW5kLmZpeGVkID8gMCA6IHRoaXMudmlld3BvcnRTZXJ2aWNlLnJlYWRhYmxlVmlld3BvcnQoKS55XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBiYWNrZ3JvdW5kLmZpeGVkXG4gICAgICAgID8gMFxuICAgICAgICA6IHRoaXMudmlld3BvcnRTZXJ2aWNlLnJlYWRhYmxlVmlld3BvcnQoKS55ICUgdGhpcy5zY2FsZWRJbWFnZUhlaWdodCgpXG4gICAgfVxuXG4gICAgcmV0dXJuIDBcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHJlcGVhdGVkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGJhY2tncm91bmQgPSB0aGlzLmJhY2tncm91bmRTaWduYWwoKVxuXG4gICAgcmV0dXJuIGJhY2tncm91bmQudHlwZSA9PT0gJ2ltYWdlJyAmJiAoYmFja2dyb3VuZC5yZXBlYXQgPz8gZGVmYXVsdFJlcGVhdGVkKVxuICB9KVxuXG4gIC8vIFdpdGhvdXQgSUQgdGhlcmUgd2lsbCBiZSBwYXR0ZXJuIGNvbGxpc2lvbiBmb3Igc2V2ZXJhbCBmbG93cyBvbiB0aGUgcGFnZVxuICAvLyBMYXRlciBwYXR0ZXJuIElEIG1heSBiZSBleHBvc2VkIHRvIEFQSVxuICBwcm90ZWN0ZWQgcGF0dGVybklkID0gaWQoKTtcbiAgcHJvdGVjdGVkIHBhdHRlcm5VcmwgPSBgdXJsKCMke3RoaXMucGF0dGVybklkfSlgXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGJhY2tncm91bmQgPSB0aGlzLmJhY2tncm91bmRTaWduYWwoKVxuXG4gICAgICBpZiAoYmFja2dyb3VuZC50eXBlID09PSAnZG90cycpIHtcbiAgICAgICAgdGhpcy5yb290U3ZnLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGJhY2tncm91bmQuYmFja2dyb3VuZENvbG9yID8/IGRlZmF1bHRCZ1xuICAgICAgfVxuXG4gICAgICBpZiAoYmFja2dyb3VuZC50eXBlID09PSAnc29saWQnKSB7XG4gICAgICAgIHRoaXMucm9vdFN2Zy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBiYWNrZ3JvdW5kLmNvbG9yXG4gICAgICB9XG4gICAgfSlcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVJbWFnZSh1cmw6IHN0cmluZykge1xuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpXG5cbiAgaW1hZ2Uuc3JjID0gdXJsXG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlPEhUTUxJbWFnZUVsZW1lbnQ+KHJlc29sdmUgPT4ge1xuICAgIGltYWdlLm9ubG9hZCA9ICgpID0+IHJlc29sdmUoaW1hZ2UpXG4gIH0pXG59XG4iLCJAaWYgKGJhY2tncm91bmRTaWduYWwoKS50eXBlID09PSAnZG90cycpIHtcbiAgPHN2ZzpwYXR0ZXJuXG4gICAgW2F0dHIuaWRdPVwicGF0dGVybklkXCJcbiAgICBbYXR0ci54XT1cIngoKVwiXG4gICAgW2F0dHIueV09XCJ5KClcIlxuICAgIFthdHRyLndpZHRoXT1cInNjYWxlZEdhcCgpXCJcbiAgICBbYXR0ci5oZWlnaHRdPVwic2NhbGVkR2FwKClcIlxuICAgIHBhdHRlcm5Vbml0cz1cInVzZXJTcGFjZU9uVXNlXCJcbiAgICA+XG4gICAgPHN2ZzpjaXJjbGVcbiAgICAgIFthdHRyLmN4XT1cInBhdHRlcm5TaXplKClcIlxuICAgICAgW2F0dHIuY3ldPVwicGF0dGVyblNpemUoKVwiXG4gICAgICBbYXR0ci5yXT1cInBhdHRlcm5TaXplKClcIlxuICAgICAgW2F0dHIuZmlsbF09XCJwYXR0ZXJuQ29sb3IoKVwiXG4gICAgICAvPlxuICA8L3N2ZzpwYXR0ZXJuPlxuXG4gIDxzdmc6cmVjdFxuICAgIHg9XCIwXCJcbiAgICB5PVwiMFwiXG4gICAgd2lkdGg9XCIxMDAlXCJcbiAgICBoZWlnaHQ9XCIxMDAlXCJcbiAgICBbYXR0ci5maWxsXT1cInBhdHRlcm5VcmxcIlxuICAgIC8+XG59XG5cbkBpZiAoYmFja2dyb3VuZFNpZ25hbCgpLnR5cGUgPT09ICdpbWFnZScpIHtcbiAgQGlmIChyZXBlYXRlZCgpKSB7XG4gICAgPHN2ZzpwYXR0ZXJuXG4gICAgICBbYXR0ci5pZF09XCJwYXR0ZXJuSWRcIlxuICAgICAgW2F0dHIueF09XCJpbWFnZVgoKVwiXG4gICAgICBbYXR0ci55XT1cImltYWdlWSgpXCJcbiAgICAgIFthdHRyLndpZHRoXT1cInNjYWxlZEltYWdlV2lkdGgoKVwiXG4gICAgICBbYXR0ci5oZWlnaHRdPVwic2NhbGVkSW1hZ2VIZWlnaHQoKVwiXG4gICAgICBwYXR0ZXJuVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiXG4gICAgICA+XG4gICAgICA8c3ZnOmltYWdlXG4gICAgICAgIFthdHRyLmhyZWZdPVwiYmdJbWFnZVNyYygpXCJcbiAgICAgICAgW2F0dHIud2lkdGhdPVwic2NhbGVkSW1hZ2VXaWR0aCgpXCJcbiAgICAgICAgW2F0dHIuaGVpZ2h0XT1cInNjYWxlZEltYWdlSGVpZ2h0KClcIlxuICAgICAgICAvPlxuICAgIDwvc3ZnOnBhdHRlcm4+XG5cbiAgICA8c3ZnOnJlY3RcbiAgICAgIHg9XCIwXCJcbiAgICAgIHk9XCIwXCJcbiAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICBoZWlnaHQ9XCIxMDAlXCJcbiAgICAgIFthdHRyLmZpbGxdPVwicGF0dGVyblVybFwiXG4gICAgICAvPlxuICB9XG5cbiAgQGlmICghcmVwZWF0ZWQoKSkge1xuICAgIDxzdmc6aW1hZ2VcbiAgICAgIFthdHRyLnhdPVwiaW1hZ2VYKClcIlxuICAgICAgW2F0dHIueV09XCJpbWFnZVkoKVwiXG4gICAgICBbYXR0ci53aWR0aF09XCJzY2FsZWRJbWFnZVdpZHRoKClcIlxuICAgICAgW2F0dHIuaGVpZ2h0XT1cInNjYWxlZEltYWdlSGVpZ2h0KClcIlxuICAgICAgW2F0dHIuaHJlZl09XCJiZ0ltYWdlU3JjKClcIlxuICAgICAgLz5cbiAgfVxufVxuIl19
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2dyb3VuZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvY29tcG9uZW50cy9iYWNrZ3JvdW5kL2JhY2tncm91bmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2NvbXBvbmVudHMvYmFja2dyb3VuZC9iYWNrZ3JvdW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUV0QyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUM7QUFDekIsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBQztBQUN6QixNQUFNLGVBQWUsR0FBRyxvQkFBb0IsQ0FBQztBQUM3QyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztBQUM5QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUM7QUFRN0IsTUFBTSxPQUFPLG1CQUFtQjtJQTBIOUI7UUF6SFEs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QUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZpZXdwb3J0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ZpZXdwb3J0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUm9vdFN2Z1JlZmVyZW5jZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvcmVmZXJlbmNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBpZCB9IGZyb20gJy4uLy4uL3V0aWxzL2lkJztcbmltcG9ydCB7IEZsb3dTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mbG93LXNldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5cbmNvbnN0IGRlZmF1bHRCZyA9ICcjZmZmJztcbmNvbnN0IGRlZmF1bHRHYXAgPSAyMDtcbmNvbnN0IGRlZmF1bHREb3RTaXplID0gMjtcbmNvbnN0IGRlZmF1bHREb3RDb2xvciA9ICdyZ2IoMTc3LCAxNzcsIDE4MyknO1xuY29uc3QgZGVmYXVsdEltYWdlU2NhbGUgPSAwLjE7XG5jb25zdCBkZWZhdWx0UmVwZWF0ZWQgPSB0cnVlO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdnW2JhY2tncm91bmRdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JhY2tncm91bmQuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQmFja2dyb3VuZENvbXBvbmVudCB7XG4gIHByaXZhdGUgdmlld3BvcnRTZXJ2aWNlID0gaW5qZWN0KFZpZXdwb3J0U2VydmljZSk7XG4gIHByaXZhdGUgcm9vdFN2ZyA9IGluamVjdChSb290U3ZnUmVmZXJlbmNlRGlyZWN0aXZlKS5lbGVtZW50O1xuICBwcml2YXRlIHNldHRpbmdzU2VydmljZSA9IGluamVjdChGbG93U2V0dGluZ3NTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgYmFja2dyb3VuZFNpZ25hbCA9IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmJhY2tncm91bmQ7XG5cbiAgLy8gRE9UUyBQQVRURVJOXG4gIHByb3RlY3RlZCBzY2FsZWRHYXAgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYmFja2dyb3VuZCA9IHRoaXMuYmFja2dyb3VuZFNpZ25hbCgpO1xuXG4gICAgaWYgKGJhY2tncm91bmQudHlwZSA9PT0gJ2RvdHMnKSB7XG4gICAgICBjb25zdCB6b29tID0gdGhpcy52aWV3cG9ydFNlcnZpY2UucmVhZGFibGVWaWV3cG9ydCgpLnpvb207XG5cbiAgICAgIHJldHVybiB6b29tICogKGJhY2tncm91bmQuZ2FwID8/IGRlZmF1bHRHYXApO1xuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgeCA9IGNvbXB1dGVkKCgpID0+IHRoaXMudmlld3BvcnRTZXJ2aWNlLnJlYWRhYmxlVmlld3BvcnQoKS54ICUgdGhpcy5zY2FsZWRHYXAoKSk7XG5cbiAgcHJvdGVjdGVkIHkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnZpZXdwb3J0U2VydmljZS5yZWFkYWJsZVZpZXdwb3J0KCkueSAlIHRoaXMuc2NhbGVkR2FwKCkpO1xuXG4gIHByb3RlY3RlZCBwYXR0ZXJuQ29sb3IgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYmcgPSB0aGlzLmJhY2tncm91bmRTaWduYWwoKTtcblxuICAgIGlmIChiZy50eXBlID09PSAnZG90cycpIHtcbiAgICAgIHJldHVybiBiZy5jb2xvciA/PyBkZWZhdWx0RG90Q29sb3I7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmF1bHREb3RDb2xvcjtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHBhdHRlcm5TaXplID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGJhY2tncm91bmQgPSB0aGlzLmJhY2tncm91bmRTaWduYWwoKTtcblxuICAgIGlmIChiYWNrZ3JvdW5kLnR5cGUgPT09ICdkb3RzJykge1xuICAgICAgcmV0dXJuICh0aGlzLnZpZXdwb3J0U2VydmljZS5yZWFkYWJsZVZpZXdwb3J0KCkuem9vbSAqIChiYWNrZ3JvdW5kLnNpemUgPz8gZGVmYXVsdERvdFNpemUpKSAvIDI7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH0pO1xuXG4gIC8vIElNQUdFIFBBVFRFUk5cbiAgcHJvdGVjdGVkIGJnSW1hZ2VTcmMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYmFja2dyb3VuZCA9IHRoaXMuYmFja2dyb3VuZFNpZ25hbCgpO1xuXG4gICAgcmV0dXJuIGJhY2tncm91bmQudHlwZSA9PT0gJ2ltYWdlJyA/IGJhY2tncm91bmQuc3JjIDogJyc7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBpbWFnZVNpemUgPSB0b1NpZ25hbChcbiAgICB0b09ic2VydmFibGUodGhpcy5iYWNrZ3JvdW5kU2lnbmFsKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IGNyZWF0ZUltYWdlKHRoaXMuYmdJbWFnZVNyYygpKSksXG4gICAgICBtYXAoKGltYWdlKSA9PiAoeyB3aWR0aDogaW1hZ2UubmF0dXJhbFdpZHRoLCBoZWlnaHQ6IGltYWdlLm5hdHVyYWxIZWlnaHQgfSkpLFxuICAgICksXG4gICAgeyBpbml0aWFsVmFsdWU6IHsgd2lkdGg6IDAsIGhlaWdodDogMCB9IH0sXG4gICk7XG5cbiAgcHJvdGVjdGVkIHNjYWxlZEltYWdlV2lkdGggPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYmFja2dyb3VuZCA9IHRoaXMuYmFja2dyb3VuZFNpZ25hbCgpO1xuXG4gICAgaWYgKGJhY2tncm91bmQudHlwZSA9PT0gJ2ltYWdlJykge1xuICAgICAgY29uc3Qgem9vbSA9IGJhY2tncm91bmQuZml4ZWQgPyAxIDogdGhpcy52aWV3cG9ydFNlcnZpY2UucmVhZGFibGVWaWV3cG9ydCgpLnpvb207XG5cbiAgICAgIHJldHVybiB0aGlzLmltYWdlU2l6ZSgpLndpZHRoICogem9vbSAqIChiYWNrZ3JvdW5kLnNjYWxlID8/IGRlZmF1bHRJbWFnZVNjYWxlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gMDtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHNjYWxlZEltYWdlSGVpZ2h0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGJhY2tncm91bmQgPSB0aGlzLmJhY2tncm91bmRTaWduYWwoKTtcblxuICAgIGlmIChiYWNrZ3JvdW5kLnR5cGUgPT09ICdpbWFnZScpIHtcbiAgICAgIGNvbnN0IHpvb20gPSBiYWNrZ3JvdW5kLmZpeGVkID8gMSA6IHRoaXMudmlld3BvcnRTZXJ2aWNlLnJlYWRhYmxlVmlld3BvcnQoKS56b29tO1xuXG4gICAgICByZXR1cm4gdGhpcy5pbWFnZVNpemUoKS5oZWlnaHQgKiB6b29tICogKGJhY2tncm91bmQuc2NhbGUgPz8gZGVmYXVsdEltYWdlU2NhbGUpO1xuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgaW1hZ2VYID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGJhY2tncm91bmQgPSB0aGlzLmJhY2tncm91bmRTaWduYWwoKTtcblxuICAgIGlmIChiYWNrZ3JvdW5kLnR5cGUgPT09ICdpbWFnZScpIHtcbiAgICAgIGlmICghYmFja2dyb3VuZC5yZXBlYXQpIHtcbiAgICAgICAgcmV0dXJuIGJhY2tncm91bmQuZml4ZWQgPyAwIDogdGhpcy52aWV3cG9ydFNlcnZpY2UucmVhZGFibGVWaWV3cG9ydCgpLng7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBiYWNrZ3JvdW5kLmZpeGVkID8gMCA6IHRoaXMudmlld3BvcnRTZXJ2aWNlLnJlYWRhYmxlVmlld3BvcnQoKS54ICUgdGhpcy5zY2FsZWRJbWFnZVdpZHRoKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBpbWFnZVkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYmFja2dyb3VuZCA9IHRoaXMuYmFja2dyb3VuZFNpZ25hbCgpO1xuXG4gICAgaWYgKGJhY2tncm91bmQudHlwZSA9PT0gJ2ltYWdlJykge1xuICAgICAgaWYgKCFiYWNrZ3JvdW5kLnJlcGVhdCkge1xuICAgICAgICByZXR1cm4gYmFja2dyb3VuZC5maXhlZCA/IDAgOiB0aGlzLnZpZXdwb3J0U2VydmljZS5yZWFkYWJsZVZpZXdwb3J0KCkueTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGJhY2tncm91bmQuZml4ZWQgPyAwIDogdGhpcy52aWV3cG9ydFNlcnZpY2UucmVhZGFibGVWaWV3cG9ydCgpLnkgJSB0aGlzLnNjYWxlZEltYWdlSGVpZ2h0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZXBlYXRlZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBiYWNrZ3JvdW5kID0gdGhpcy5iYWNrZ3JvdW5kU2lnbmFsKCk7XG5cbiAgICByZXR1cm4gYmFja2dyb3VuZC50eXBlID09PSAnaW1hZ2UnICYmIChiYWNrZ3JvdW5kLnJlcGVhdCA/PyBkZWZhdWx0UmVwZWF0ZWQpO1xuICB9KTtcblxuICAvLyBXaXRob3V0IElEIHRoZXJlIHdpbGwgYmUgcGF0dGVybiBjb2xsaXNpb24gZm9yIHNldmVyYWwgZmxvd3Mgb24gdGhlIHBhZ2VcbiAgLy8gTGF0ZXIgcGF0dGVybiBJRCBtYXkgYmUgZXhwb3NlZCB0byBBUElcbiAgcHJvdGVjdGVkIHBhdHRlcm5JZCA9IGlkKCk7XG4gIHByb3RlY3RlZCBwYXR0ZXJuVXJsID0gYHVybCgjJHt0aGlzLnBhdHRlcm5JZH0pYDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgYmFja2dyb3VuZCA9IHRoaXMuYmFja2dyb3VuZFNpZ25hbCgpO1xuXG4gICAgICBpZiAoYmFja2dyb3VuZC50eXBlID09PSAnZG90cycpIHtcbiAgICAgICAgdGhpcy5yb290U3ZnLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGJhY2tncm91bmQuYmFja2dyb3VuZENvbG9yID8/IGRlZmF1bHRCZztcbiAgICAgIH1cblxuICAgICAgaWYgKGJhY2tncm91bmQudHlwZSA9PT0gJ3NvbGlkJykge1xuICAgICAgICB0aGlzLnJvb3RTdmcuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gYmFja2dyb3VuZC5jb2xvcjtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVJbWFnZSh1cmw6IHN0cmluZykge1xuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xuXG4gIGltYWdlLnNyYyA9IHVybDtcblxuICByZXR1cm4gbmV3IFByb21pc2U8SFRNTEltYWdlRWxlbWVudD4oKHJlc29sdmUpID0+IHtcbiAgICBpbWFnZS5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKGltYWdlKTtcbiAgfSk7XG59XG4iLCJAaWYgKGJhY2tncm91bmRTaWduYWwoKS50eXBlID09PSAnZG90cycpIHtcbiAgPHN2ZzpwYXR0ZXJuXG4gICAgcGF0dGVyblVuaXRzPVwidXNlclNwYWNlT25Vc2VcIlxuICAgIFthdHRyLmlkXT1cInBhdHRlcm5JZFwiXG4gICAgW2F0dHIueF09XCJ4KClcIlxuICAgIFthdHRyLnldPVwieSgpXCJcbiAgICBbYXR0ci53aWR0aF09XCJzY2FsZWRHYXAoKVwiXG4gICAgW2F0dHIuaGVpZ2h0XT1cInNjYWxlZEdhcCgpXCI+XG4gICAgPHN2ZzpjaXJjbGVcbiAgICAgIFthdHRyLmN4XT1cInBhdHRlcm5TaXplKClcIlxuICAgICAgW2F0dHIuY3ldPVwicGF0dGVyblNpemUoKVwiXG4gICAgICBbYXR0ci5yXT1cInBhdHRlcm5TaXplKClcIlxuICAgICAgW2F0dHIuZmlsbF09XCJwYXR0ZXJuQ29sb3IoKVwiIC8+XG4gIDwvc3ZnOnBhdHRlcm4+XG5cbiAgPHN2ZzpyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgW2F0dHIuZmlsbF09XCJwYXR0ZXJuVXJsXCIgLz5cbn1cblxuQGlmIChiYWNrZ3JvdW5kU2lnbmFsKCkudHlwZSA9PT0gJ2ltYWdlJykge1xuICBAaWYgKHJlcGVhdGVkKCkpIHtcbiAgICA8c3ZnOnBhdHRlcm5cbiAgICAgIHBhdHRlcm5Vbml0cz1cInVzZXJTcGFjZU9uVXNlXCJcbiAgICAgIFthdHRyLmlkXT1cInBhdHRlcm5JZFwiXG4gICAgICBbYXR0ci54XT1cImltYWdlWCgpXCJcbiAgICAgIFthdHRyLnldPVwiaW1hZ2VZKClcIlxuICAgICAgW2F0dHIud2lkdGhdPVwic2NhbGVkSW1hZ2VXaWR0aCgpXCJcbiAgICAgIFthdHRyLmhlaWdodF09XCJzY2FsZWRJbWFnZUhlaWdodCgpXCI+XG4gICAgICA8c3ZnOmltYWdlIFthdHRyLmhyZWZdPVwiYmdJbWFnZVNyYygpXCIgW2F0dHIud2lkdGhdPVwic2NhbGVkSW1hZ2VXaWR0aCgpXCIgW2F0dHIuaGVpZ2h0XT1cInNjYWxlZEltYWdlSGVpZ2h0KClcIiAvPlxuICAgIDwvc3ZnOnBhdHRlcm4+XG5cbiAgICA8c3ZnOnJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIiBbYXR0ci5maWxsXT1cInBhdHRlcm5VcmxcIiAvPlxuICB9XG5cbiAgQGlmICghcmVwZWF0ZWQoKSkge1xuICAgIDxzdmc6aW1hZ2VcbiAgICAgIFthdHRyLnhdPVwiaW1hZ2VYKClcIlxuICAgICAgW2F0dHIueV09XCJpbWFnZVkoKVwiXG4gICAgICBbYXR0ci53aWR0aF09XCJzY2FsZWRJbWFnZVdpZHRoKClcIlxuICAgICAgW2F0dHIuaGVpZ2h0XT1cInNjYWxlZEltYWdlSGVpZ2h0KClcIlxuICAgICAgW2F0dHIuaHJlZl09XCJiZ0ltYWdlU3JjKClcIiAvPlxuICB9XG59XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, computed, inject, input
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';
|
|
2
2
|
import { FlowStatusService } from '../../services/flow-status.service';
|
|
3
3
|
import { straightPath } from '../../math/edge-path/straigh-path';
|
|
4
4
|
import { SpacePointContextDirective } from '../../directives/space-point-context.directive';
|
|
@@ -79,12 +79,11 @@ export class ConnectionComponent {
|
|
|
79
79
|
@if (model().type === 'default') {
|
|
80
80
|
@if (path(); as path) {
|
|
81
81
|
<svg:path
|
|
82
|
-
[attr.d]="path"
|
|
83
|
-
[attr.marker-end]="markerUrl()"
|
|
84
|
-
[attr.stroke]="defaultColor"
|
|
85
82
|
fill="none"
|
|
86
83
|
stroke-width="2"
|
|
87
|
-
|
|
84
|
+
[attr.d]="path"
|
|
85
|
+
[attr.marker-end]="markerUrl()"
|
|
86
|
+
[attr.stroke]="defaultColor" />
|
|
88
87
|
}
|
|
89
88
|
}
|
|
90
89
|
|
|
@@ -104,12 +103,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
104
103
|
@if (model().type === 'default') {
|
|
105
104
|
@if (path(); as path) {
|
|
106
105
|
<svg:path
|
|
107
|
-
[attr.d]="path"
|
|
108
|
-
[attr.marker-end]="markerUrl()"
|
|
109
|
-
[attr.stroke]="defaultColor"
|
|
110
106
|
fill="none"
|
|
111
107
|
stroke-width="2"
|
|
112
|
-
|
|
108
|
+
[attr.d]="path"
|
|
109
|
+
[attr.marker-end]="markerUrl()"
|
|
110
|
+
[attr.stroke]="defaultColor" />
|
|
113
111
|
}
|
|
114
112
|
}
|
|
115
113
|
|
|
@@ -135,4 +133,4 @@ function getOppositePostion(position) {
|
|
|
135
133
|
return 'left';
|
|
136
134
|
}
|
|
137
135
|
}
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvY29tcG9uZW50cy9jb25uZWN0aW9uL2Nvbm5lY3Rpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUU1RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUEyQm5ELE1BQU0sT0FBTyxtQkFBbUI7SUF6QmhDO1FBMEJTLFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFtQixDQUFDO1FBRTFDLGFBQVEsR0FBRyxLQUFLLEVBQW9CLENBQUM7UUFFcEMsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDOUMsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFFckQsU0FBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRS9DLElBQUksTUFBTSxD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XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIFRlbXBsYXRlUmVmLFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGbG93U3RhdHVzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zsb3ctc3RhdHVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgc3RyYWlnaHRQYXRoIH0gZnJvbSAnLi4vLi4vbWF0aC9lZGdlLXBhdGgvc3RyYWlnaC1wYXRoJztcbmltcG9ydCB7IFNwYWNlUG9pbnRDb250ZXh0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9zcGFjZS1wb2ludC1jb250ZXh0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb25uZWN0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvY29ubmVjdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBiZXppZXJQYXRoIH0gZnJvbSAnLi4vLi4vbWF0aC9lZGdlLXBhdGgvYmV6aWVyLXBhdGgnO1xuaW1wb3J0IHsgaGFzaENvZGUgfSBmcm9tICcuLi8uLi91dGlscy9oYXNoJztcbmltcG9ydCB7IFBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvcG9zaXRpb24udHlwZSc7XG5pbXBvcnQgeyBzbW9vdGhTdGVwUGF0aCB9IGZyb20gJy4uLy4uL21hdGgvZWRnZS1wYXRoL3Ntb290aC1zdGVwLXBhdGgnO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2dbY29ubmVjdGlvbl0nLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAobW9kZWwoKS50eXBlID09PSAnZGVmYXVsdCcpIHtcbiAgICAgIEBpZiAocGF0aCgpOyBhcyBwYXRoKSB7XG4gICAgICAgIDxzdmc6cGF0aFxuICAgICAgICAgIFthdHRyLmRdPVwicGF0aFwiXG4gICAgICAgICAgW2F0dHIubWFya2VyLWVuZF09XCJtYXJrZXJVcmwoKVwiXG4gICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cImRlZmF1bHRDb2xvclwiXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxuICAgICAgICAvPlxuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAobW9kZWwoKS50eXBlID09PSAndGVtcGxhdGUnKSB7XG4gICAgICBAaWYgKHRlbXBsYXRlKCk7IGFzIHRlbXBsYXRlKSB7XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZTsgY29udGV4dDogZ2V0Q29udGV4dCgpXCIgLz5cbiAgICAgIH1cbiAgICB9XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldF0sXG59KVxuZXhwb3J0IGNsYXNzIENvbm5lY3Rpb25Db21wb25lbnQge1xuICBwdWJsaWMgbW9kZWwgPSBpbnB1dC5yZXF1aXJlZDxDb25uZWN0aW9uTW9kZWw+KCk7XG5cbiAgcHVibGljIHRlbXBsYXRlID0gaW5wdXQ8VGVtcGxhdGVSZWY8YW55Pj4oKTtcblxuICBwcml2YXRlIGZsb3dTdGF0dXNTZXJ2aWNlID0gaW5qZWN0KEZsb3dTdGF0dXNTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBzcGFjZVBvaW50Q29udGV4dCA9IGluamVjdChTcGFjZVBvaW50Q29udGV4dERpcmVjdGl2ZSk7XG5cbiAgcHJvdGVjdGVkIHBhdGggPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5mbG93U3RhdHVzU2VydmljZS5zdGF0dXMoKTtcblxuICAgIGlmIChzdGF0dXMuc3RhdGUgPT09ICdjb25uZWN0aW9uLXN0YXJ0Jykge1xuICAgICAgY29uc3Qgc291cmNlSGFuZGxlID0gc3RhdHVzLnBheWxvYWQuc291cmNlSGFuZGxlO1xuICAgICAgY29uc3Qgc291cmNlUG9pbnQgPSBzb3VyY2VIYW5kbGUucG9pbnRBYnNvbHV0ZSgpO1xuICAgICAgY29uc3Qgc291cmNlUG9zaXRpb24gPSBzb3VyY2VIYW5kbGUucmF3SGFuZGxlLnBvc2l0aW9uO1xuXG4gICAgICBjb25zdCB0YXJnZXRQb2ludCA9IHRoaXMuc3BhY2VQb2ludENvbnRleHQuc3ZnQ3VycmVudFNwYWNlUG9pbnQoKTtcbiAgICAgIGNvbnN0IHRhcmdldFBvc2l0aW9uID0gZ2V0T3Bwb3NpdGVQb3N0aW9uKFxuICAgICAgICBzb3VyY2VIYW5kbGUucmF3SGFuZGxlLnBvc2l0aW9uLFxuICAgICAgKTtcblxuICAgICAgc3dpdGNoICh0aGlzLm1vZGVsKCkuY3VydmUpIHtcbiAgICAgICAgY2FzZSAnc3RyYWlnaHQnOlxuICAgICAgICAgIHJldHVybiBzdHJhaWdodFBhdGgoc291cmNlUG9pbnQsIHRhcmdldFBvaW50KS5wYXRoO1xuICAgICAgICBjYXNlICdiZXppZXInOlxuICAgICAgICAgIHJldHVybiBiZXppZXJQYXRoKFxuICAgICAgICAgICAgc291cmNlUG9pbnQsXG4gICAgICAgICAgICB0YXJnZXRQb2ludCxcbiAgICAgICAgICAgIHNvdXJjZVBvc2l0aW9uLFxuICAgICAgICAgICAgdGFyZ2V0UG9zaXRpb24sXG4gICAgICAgICAgKS5wYXRoO1xuICAgICAgICBjYXNlICdzbW9vdGgtc3RlcCc6XG4gICAgICAgICAgcmV0dXJuIHNtb290aFN0ZXBQYXRoKFxuICAgICAgICAgICAgc291cmNlUG9pbnQsXG4gICAgICAgICAgICB0YXJnZXRQb2ludCxcbiAgICAgICAgICAgIHNvdXJjZVBvc2l0aW9uLFxuICAgICAgICAgICAgdGFyZ2V0UG9zaXRpb24sXG4gICAgICAgICAgKS5wYXRoO1xuICAgICAgICBjYXNlICdzdGVwJzpcbiAgICAgICAgICByZXR1cm4gc21vb3RoU3RlcFBhdGgoXG4gICAgICAgICAgICBzb3VyY2VQb2ludCxcbiAgICAgICAgICAgIHRhcmdldFBvaW50LFxuICAgICAgICAgICAgc291cmNlUG9zaXRpb24sXG4gICAgICAgICAgICB0YXJnZXRQb3NpdGlvbixcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgKS5wYXRoO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzdGF0dXMuc3RhdGUgPT09ICdjb25uZWN0aW9uLXZhbGlkYXRpb24nKSB7XG4gICAgICBjb25zdCBzb3VyY2VIYW5kbGUgPSBzdGF0dXMucGF5bG9hZC5zb3VyY2VIYW5kbGU7XG4gICAgICBjb25zdCBzb3VyY2VQb2ludCA9IHNvdXJjZUhhbmRsZS5wb2ludEFic29sdXRlKCk7XG4gICAgICBjb25zdCBzb3VyY2VQb3NpdGlvbiA9IHNvdXJjZUhhbmRsZS5yYXdIYW5kbGUucG9zaXRpb247XG5cbiAgICAgIGNvbnN0IHRhcmdldEhhbmRsZSA9IHN0YXR1cy5wYXlsb2FkLnRhcmdldEhhbmRsZTtcbiAgICAgIC8vIGlnbm9yZSBtYWduZXQgaWYgdmFsaWRhdGlvbiBmYWlsZWRcbiAgICAgIGNvbnN0IHRhcmdldFBvaW50ID0gc3RhdHVzLnBheWxvYWQudmFsaWRcbiAgICAgICAgPyB0YXJnZXRIYW5kbGUucG9pbnRBYnNvbHV0ZSgpXG4gICAgICAgIDogdGhpcy5zcGFjZVBvaW50Q29udGV4dC5zdmdDdXJyZW50U3BhY2VQb2ludCgpO1xuICAgICAgY29uc3QgdGFyZ2V0UG9zaXRpb24gPSBzdGF0dXMucGF5bG9hZC52YWxpZFxuICAgICAgICA/IHRhcmdldEhhbmRsZS5yYXdIYW5kbGUucG9zaXRpb25cbiAgICAgICAgOiBnZXRPcHBvc2l0ZVBvc3Rpb24oc291cmNlSGFuZGxlLnJhd0hhbmRsZS5wb3NpdGlvbik7XG5cbiAgICAgIHN3aXRjaCAodGhpcy5tb2RlbCgpLmN1cnZlKSB7XG4gICAgICAgIGNhc2UgJ3N0cmFpZ2h0JzpcbiAgICAgICAgICByZXR1cm4gc3RyYWlnaHRQYXRoKHNvdXJjZVBvaW50LCB0YXJnZXRQb2ludCkucGF0aDtcbiAgICAgICAgY2FzZSAnYmV6aWVyJzpcbiAgICAgICAgICByZXR1cm4gYmV6aWVyUGF0aChcbiAgICAgICAgICAgIHNvdXJjZVBvaW50LFxuICAgICAgICAgICAgdGFyZ2V0UG9pbnQsXG4gICAgICAgICAgICBzb3VyY2VQb3NpdGlvbixcbiAgICAgICAgICAgIHRhcmdldFBvc2l0aW9uLFxuICAgICAgICAgICkucGF0aDtcbiAgICAgICAgY2FzZSAnc21vb3RoLXN0ZXAnOlxuICAgICAgICAgIHJldHVybiBzbW9vdGhTdGVwUGF0aChcbiAgICAgICAgICAgIHNvdXJjZVBvaW50LFxuICAgICAgICAgICAgdGFyZ2V0UG9pbnQsXG4gICAgICAgICAgICBzb3VyY2VQb3NpdGlvbixcbiAgICAgICAgICAgIHRhcmdldFBvc2l0aW9uLFxuICAgICAgICAgICkucGF0aDtcbiAgICAgICAgY2FzZSAnc3RlcCc6XG4gICAgICAgICAgcmV0dXJuIHNtb290aFN0ZXBQYXRoKFxuICAgICAgICAgICAgc291cmNlUG9pbnQsXG4gICAgICAgICAgICB0YXJnZXRQb2ludCxcbiAgICAgICAgICAgIHNvdXJjZVBvc2l0aW9uLFxuICAgICAgICAgICAgdGFyZ2V0UG9zaXRpb24sXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICkucGF0aDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIG1hcmtlclVybCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBtYXJrZXIgPSB0aGlzLm1vZGVsKCkuc2V0dGluZ3MubWFya2VyO1xuXG4gICAgaWYgKG1hcmtlcikge1xuICAgICAgcmV0dXJuIGB1cmwoIyR7aGFzaENvZGUoSlNPTi5zdHJpbmdpZnkobWFya2VyKSl9KWA7XG4gICAgfVxuXG4gICAgcmV0dXJuICcnO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVmYXVsdENvbG9yID0gJ3JnYigxNzcsIDE3NywgMTgzKSc7XG5cbiAgcHJvdGVjdGVkIGdldENvbnRleHQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICRpbXBsaWNpdDoge1xuICAgICAgICBwYXRoOiB0aGlzLnBhdGgsXG4gICAgICAgIG1hcmtlcjogdGhpcy5tYXJrZXJVcmwsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0T3Bwb3NpdGVQb3N0aW9uKHBvc2l0aW9uOiBQb3NpdGlvbik6IFBvc2l0aW9uIHtcbiAgc3dpdGNoIChwb3NpdGlvbikge1xuICAgIGNhc2UgJ3RvcCc6XG4gICAgICByZXR1cm4gJ2JvdHRvbSc7XG4gICAgY2FzZSAnYm90dG9tJzpcbiAgICAgIHJldHVybiAndG9wJztcbiAgICBjYXNlICdsZWZ0JzpcbiAgICAgIHJldHVybiAncmlnaHQnO1xuICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgIHJldHVybiAnbGVmdCc7XG4gIH1cbn1cbiJdfQ==
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvY29tcG9uZW50cy9jb25uZWN0aW9uL2Nvbm5lY3Rpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRTVGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQTBCbkQsTUFBTSxPQUFPLG1CQUFtQjtJQXhCaEM7UUF5QlMsVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQW1CLENBQUM7UUFFMUMsYUFBUSxHQUFHLEtBQUssRUFBb0IsQ0FBQztRQUVwQyxzQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM5QyxzQkFBaUIsR0FBRyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUVyRCxTQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM3QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFL0MsSUFBSSxNQUFNLENB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aGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZsb3dTdGF0dXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmxvdy1zdGF0dXMuc2VydmljZSc7XG5pbXBvcnQgeyBzdHJhaWdodFBhdGggfSBmcm9tICcuLi8uLi9tYXRoL2VkZ2UtcGF0aC9zdHJhaWdoLXBhdGgnO1xuaW1wb3J0IHsgU3BhY2VQb2ludENvbnRleHREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3NwYWNlLXBvaW50LWNvbnRleHQuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbm5lY3Rpb25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9jb25uZWN0aW9uLm1vZGVsJztcbmltcG9ydCB7IGJlemllclBhdGggfSBmcm9tICcuLi8uLi9tYXRoL2VkZ2UtcGF0aC9iZXppZXItcGF0aCc7XG5pbXBvcnQgeyBoYXNoQ29kZSB9IGZyb20gJy4uLy4uL3V0aWxzL2hhc2gnO1xuaW1wb3J0IHsgUG9zaXRpb24gfSBmcm9tICcuLi8uLi90eXBlcy9wb3NpdGlvbi50eXBlJztcbmltcG9ydCB7IHNtb290aFN0ZXBQYXRoIH0gZnJvbSAnLi4vLi4vbWF0aC9lZGdlLXBhdGgvc21vb3RoLXN0ZXAtcGF0aCc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnZ1tjb25uZWN0aW9uXScsXG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmIChtb2RlbCgpLnR5cGUgPT09ICdkZWZhdWx0Jykge1xuICAgICAgQGlmIChwYXRoKCk7IGFzIHBhdGgpIHtcbiAgICAgICAgPHN2ZzpwYXRoXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxuICAgICAgICAgIFthdHRyLmRdPVwicGF0aFwiXG4gICAgICAgICAgW2F0dHIubWFya2VyLWVuZF09XCJtYXJrZXJVcmwoKVwiXG4gICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cImRlZmF1bHRDb2xvclwiIC8+XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmIChtb2RlbCgpLnR5cGUgPT09ICd0ZW1wbGF0ZScpIHtcbiAgICAgIEBpZiAodGVtcGxhdGUoKTsgYXMgdGVtcGxhdGUpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlOyBjb250ZXh0OiBnZXRDb250ZXh0KClcIiAvPlxuICAgICAgfVxuICAgIH1cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0XSxcbn0pXG5leHBvcnQgY2xhc3MgQ29ubmVjdGlvbkNvbXBvbmVudCB7XG4gIHB1YmxpYyBtb2RlbCA9IGlucHV0LnJlcXVpcmVkPENvbm5lY3Rpb25Nb2RlbD4oKTtcblxuICBwdWJsaWMgdGVtcGxhdGUgPSBpbnB1dDxUZW1wbGF0ZVJlZjxhbnk+PigpO1xuXG4gIHByaXZhdGUgZmxvd1N0YXR1c1NlcnZpY2UgPSBpbmplY3QoRmxvd1N0YXR1c1NlcnZpY2UpO1xuICBwcml2YXRlIHNwYWNlUG9pbnRDb250ZXh0ID0gaW5qZWN0KFNwYWNlUG9pbnRDb250ZXh0RGlyZWN0aXZlKTtcblxuICBwcm90ZWN0ZWQgcGF0aCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzdGF0dXMgPSB0aGlzLmZsb3dTdGF0dXNTZXJ2aWNlLnN0YXR1cygpO1xuXG4gICAgaWYgKHN0YXR1cy5zdGF0ZSA9PT0gJ2Nvbm5lY3Rpb24tc3RhcnQnKSB7XG4gICAgICBjb25zdCBzb3VyY2VIYW5kbGUgPSBzdGF0dXMucGF5bG9hZC5zb3VyY2VIYW5kbGU7XG4gICAgICBjb25zdCBzb3VyY2VQb2ludCA9IHNvdXJjZUhhbmRsZS5wb2ludEFic29sdXRlKCk7XG4gICAgICBjb25zdCBzb3VyY2VQb3NpdGlvbiA9IHNvdXJjZUhhbmRsZS5yYXdIYW5kbGUucG9zaXRpb247XG5cbiAgICAgIGNvbnN0IHRhcmdldFBvaW50ID0gdGhpcy5zcGFjZVBvaW50Q29udGV4dC5zdmdDdXJyZW50U3BhY2VQb2ludCgpO1xuICAgICAgY29uc3QgdGFyZ2V0UG9zaXRpb24gPSBnZXRPcHBvc2l0ZVBvc3Rpb24oc291cmNlSGFuZGxlLnJhd0hhbmRsZS5wb3NpdGlvbik7XG5cbiAgICAgIHN3aXRjaCAodGhpcy5tb2RlbCgpLmN1cnZlKSB7XG4gICAgICAgIGNhc2UgJ3N0cmFpZ2h0JzpcbiAgICAgICAgICByZXR1cm4gc3RyYWlnaHRQYXRoKHNvdXJjZVBvaW50LCB0YXJnZXRQb2ludCkucGF0aDtcbiAgICAgICAgY2FzZSAnYmV6aWVyJzpcbiAgICAgICAgICByZXR1cm4gYmV6aWVyUGF0aChzb3VyY2VQb2ludCwgdGFyZ2V0UG9pbnQsIHNvdXJjZVBvc2l0aW9uLCB0YXJnZXRQb3NpdGlvbikucGF0aDtcbiAgICAgICAgY2FzZSAnc21vb3RoLXN0ZXAnOlxuICAgICAgICAgIHJldHVybiBzbW9vdGhTdGVwUGF0aChzb3VyY2VQb2ludCwgdGFyZ2V0UG9pbnQsIHNvdXJjZVBvc2l0aW9uLCB0YXJnZXRQb3NpdGlvbikucGF0aDtcbiAgICAgICAgY2FzZSAnc3RlcCc6XG4gICAgICAgICAgcmV0dXJuIHNtb290aFN0ZXBQYXRoKHNvdXJjZVBvaW50LCB0YXJnZXRQb2ludCwgc291cmNlUG9zaXRpb24sIHRhcmdldFBvc2l0aW9uLCAwKS5wYXRoO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzdGF0dXMuc3RhdGUgPT09ICdjb25uZWN0aW9uLXZhbGlkYXRpb24nKSB7XG4gICAgICBjb25zdCBzb3VyY2VIYW5kbGUgPSBzdGF0dXMucGF5bG9hZC5zb3VyY2VIYW5kbGU7XG4gICAgICBjb25zdCBzb3VyY2VQb2ludCA9IHNvdXJjZUhhbmRsZS5wb2ludEFic29sdXRlKCk7XG4gICAgICBjb25zdCBzb3VyY2VQb3NpdGlvbiA9IHNvdXJjZUhhbmRsZS5yYXdIYW5kbGUucG9zaXRpb247XG5cbiAgICAgIGNvbnN0IHRhcmdldEhhbmRsZSA9IHN0YXR1cy5wYXlsb2FkLnRhcmdldEhhbmRsZTtcbiAgICAgIC8vIGlnbm9yZSBtYWduZXQgaWYgdmFsaWRhdGlvbiBmYWlsZWRcbiAgICAgIGNvbnN0IHRhcmdldFBvaW50ID0gc3RhdHVzLnBheWxvYWQudmFsaWRcbiAgICAgICAgPyB0YXJnZXRIYW5kbGUucG9pbnRBYnNvbHV0ZSgpXG4gICAgICAgIDogdGhpcy5zcGFjZVBvaW50Q29udGV4dC5zdmdDdXJyZW50U3BhY2VQb2ludCgpO1xuICAgICAgY29uc3QgdGFyZ2V0UG9zaXRpb24gPSBzdGF0dXMucGF5bG9hZC52YWxpZFxuICAgICAgICA/IHRhcmdldEhhbmRsZS5yYXdIYW5kbGUucG9zaXRpb25cbiAgICAgICAgOiBnZXRPcHBvc2l0ZVBvc3Rpb24oc291cmNlSGFuZGxlLnJhd0hhbmRsZS5wb3NpdGlvbik7XG5cbiAgICAgIHN3aXRjaCAodGhpcy5tb2RlbCgpLmN1cnZlKSB7XG4gICAgICAgIGNhc2UgJ3N0cmFpZ2h0JzpcbiAgICAgICAgICByZXR1cm4gc3RyYWlnaHRQYXRoKHNvdXJjZVBvaW50LCB0YXJnZXRQb2ludCkucGF0aDtcbiAgICAgICAgY2FzZSAnYmV6aWVyJzpcbiAgICAgICAgICByZXR1cm4gYmV6aWVyUGF0aChzb3VyY2VQb2ludCwgdGFyZ2V0UG9pbnQsIHNvdXJjZVBvc2l0aW9uLCB0YXJnZXRQb3NpdGlvbikucGF0aDtcbiAgICAgICAgY2FzZSAnc21vb3RoLXN0ZXAnOlxuICAgICAgICAgIHJldHVybiBzbW9vdGhTdGVwUGF0aChzb3VyY2VQb2ludCwgdGFyZ2V0UG9pbnQsIHNvdXJjZVBvc2l0aW9uLCB0YXJnZXRQb3NpdGlvbikucGF0aDtcbiAgICAgICAgY2FzZSAnc3RlcCc6XG4gICAgICAgICAgcmV0dXJuIHNtb290aFN0ZXBQYXRoKHNvdXJjZVBvaW50LCB0YXJnZXRQb2ludCwgc291cmNlUG9zaXRpb24sIHRhcmdldFBvc2l0aW9uLCAwKS5wYXRoO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgbWFya2VyVXJsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG1hcmtlciA9IHRoaXMubW9kZWwoKS5zZXR0aW5ncy5tYXJrZXI7XG5cbiAgICBpZiAobWFya2VyKSB7XG4gICAgICByZXR1cm4gYHVybCgjJHtoYXNoQ29kZShKU09OLnN0cmluZ2lmeShtYXJrZXIpKX0pYDtcbiAgICB9XG5cbiAgICByZXR1cm4gJyc7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBkZWZhdWx0Q29sb3IgPSAncmdiKDE3NywgMTc3LCAxODMpJztcblxuICBwcm90ZWN0ZWQgZ2V0Q29udGV4dCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJGltcGxpY2l0OiB7XG4gICAgICAgIHBhdGg6IHRoaXMucGF0aCxcbiAgICAgICAgbWFya2VyOiB0aGlzLm1hcmtlclVybCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRPcHBvc2l0ZVBvc3Rpb24ocG9zaXRpb246IFBvc2l0aW9uKTogUG9zaXRpb24ge1xuICBzd2l0Y2ggKHBvc2l0aW9uKSB7XG4gICAgY2FzZSAndG9wJzpcbiAgICAgIHJldHVybiAnYm90dG9tJztcbiAgICBjYXNlICdib3R0b20nOlxuICAgICAgcmV0dXJuICd0b3AnO1xuICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgcmV0dXJuICdyaWdodCc7XG4gICAgY2FzZSAncmlnaHQnOlxuICAgICAgcmV0dXJuICdsZWZ0JztcbiAgfVxufVxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DestroyRef, Directive, EventEmitter, inject, signal, OutputEmitterRef
|
|
1
|
+
import { DestroyRef, Directive, EventEmitter, inject, signal, OutputEmitterRef } from '@angular/core';
|
|
2
2
|
import { merge, Observable, tap } from 'rxjs';
|
|
3
3
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { ComponentEventBusService } from '../../services/component-event-bus.service';
|
|
@@ -54,4 +54,4 @@ function outputRefToObservable(ref) {
|
|
|
54
54
|
};
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLW5vZGUtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvY29tcG9uZW50cy9jdXN0b20tbm9kZS1iYXNlL2N1c3RvbS1ub2RlLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFHM0UsTUFBTSxPQUFnQix1QkFBdUI7SUFEN0M7UUFFVSxhQUFRLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDNUMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUV4QyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTFDOztXQUVHO1FBQ0ksYUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFHLENBQUMsUUFBUSxDQUFDO1FBRTlDLFNBQUksR0FBRyxNQUFNLENBQWdCLFNBQVMsQ0FBQyxDQUFDO0tBb0NoRDtJQWxDUSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMzRSxDQUFDO0lBRU8sV0FBVztRQUNqQixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLEVBQStCLENBQUM7UUFDOUQsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN6QixNQUFNLEtBQUssR0FBSSxJQUFnQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXRELElBQUksS0FBSyxZQUFZLFlBQVksRUFBRSxDQUFDO2dCQUNsQyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNsQyxDQUFDO1lBRUQsSUFBSSxLQUFLLFlBQVksZ0JBQWdCLEVBQUUsQ0FBQztnQkFDdEMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN6RCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUNWLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNuRCxPQUFPLENBQUMsSUFBSSxDQUNWLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7Z0JBQ3RCLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRTtnQkFDL0MsU0FBUyxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFFO2dCQUN2QyxZQUFZLEVBQUUsS0FBSzthQUNwQixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FDSCxDQUNGLENBQ0YsQ0FBQztJQUNKLENBQUM7K0dBOUNtQix1QkFBdUI7bUdBQXZCLHVCQUF1Qjs7NEZBQXZCLHVCQUF1QjtrQkFENUMsU0FBUzs7QUFrRFYsU0FBUyxxQkFBcUIsQ0FBQyxHQUE4QjtJQUMzRCxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7UUFDbkMsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzNDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEdBQUcsRUFBRTtZQUNWLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBpbmplY3QsIHNpZ25hbCwgT3V0cHV0RW1pdHRlclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UsIE9ic2VydmFibGUsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQ29tcG9uZW50RXZlbnRCdXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29tcG9uZW50LWV2ZW50LWJ1cy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGVBY2Nlc3NvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub2RlLWFjY2Vzc29yLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDdXN0b21Ob2RlQmFzZUNvbXBvbmVudDxUID0gYW55PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgZXZlbnRCdXMgPSBpbmplY3QoQ29tcG9uZW50RXZlbnRCdXNTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBub2RlU2VydmljZSA9IGluamVjdChOb2RlQWNjZXNzb3JTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAvKipcbiAgICogU2lnbmFsIHdpdGggc2VsZWN0ZWQgc3RhdGUgb2Ygbm9kZVxuICAgKi9cbiAgcHVibGljIHNlbGVjdGVkID0gdGhpcy5ub2RlU2VydmljZS5tb2RlbCgpIS5zZWxlY3RlZDtcblxuICBwdWJsaWMgZGF0YSA9IHNpZ25hbDxUIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRyYWNrRXZlbnRzKCkucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHRyYWNrRXZlbnRzKCkge1xuICAgIGNvbnN0IHByb3BzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcyk7XG5cbiAgICBjb25zdCBlbWl0dGVyc09yUmVmcyA9IG5ldyBNYXA8T2JzZXJ2YWJsZTx1bmtub3duPiwgc3RyaW5nPigpO1xuICAgIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wcykge1xuICAgICAgY29uc3QgZmllbGQgPSAodGhpcyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbcHJvcF07XG5cbiAgICAgIGlmIChmaWVsZCBpbnN0YW5jZW9mIEV2ZW50RW1pdHRlcikge1xuICAgICAgICBlbWl0dGVyc09yUmVmcy5zZXQoZmllbGQsIHByb3ApO1xuICAgICAgfVxuXG4gICAgICBpZiAoZmllbGQgaW5zdGFuY2VvZiBPdXRwdXRFbWl0dGVyUmVmKSB7XG4gICAgICAgIGVtaXR0ZXJzT3JSZWZzLnNldChvdXRwdXRSZWZUb09ic2VydmFibGUoZmllbGQpLCBwcm9wKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWVyZ2UoXG4gICAgICAuLi5BcnJheS5mcm9tKGVtaXR0ZXJzT3JSZWZzLmtleXMoKSkubWFwKChlbWl0dGVyKSA9PlxuICAgICAgICBlbWl0dGVyLnBpcGUoXG4gICAgICAgICAgdGFwKChldmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ldmVudEJ1cy5wdXNoRXZlbnQoe1xuICAgICAgICAgICAgICBub2RlSWQ6IHRoaXMubm9kZVNlcnZpY2UubW9kZWwoKT8ubm9kZS5pZCA/PyAnJyxcbiAgICAgICAgICAgICAgZXZlbnROYW1lOiBlbWl0dGVyc09yUmVmcy5nZXQoZW1pdHRlcikhLFxuICAgICAgICAgICAgICBldmVudFBheWxvYWQ6IGV2ZW50LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG4gIH1cbn1cblxuZnVuY3Rpb24gb3V0cHV0UmVmVG9PYnNlcnZhYmxlKHJlZjogT3V0cHV0RW1pdHRlclJlZjx1bmtub3duPikge1xuICByZXR1cm4gbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZXIpID0+IHtcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSByZWYuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTtcbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9O1xuICB9KTtcbn1cbiJdfQ==
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { Component, input } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class DefaultNodeComponent {
|
|
4
4
|
constructor() {
|
|
5
5
|
this.selected = input(false);
|
|
6
6
|
}
|
|
7
7
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: DefaultNodeComponent, isStandalone: true, selector: "default-node", inputs: { selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.selected": "selected()" } }, ngImport: i0, template: "<ng-content />\n", styles: [":host{border:1.5px solid #1b262c;border-radius:5px;display:flex;align-items:center;justify-content:center;color:#000;background-color:#fff}:host(.selected){border-width:2px}\n"] }); }
|
|
8
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: DefaultNodeComponent, isStandalone: true, selector: "default-node", inputs: { selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.selected": "selected()" } }, ngImport: i0, template: "<ng-content />\n", styles: [":host{border:1.5px solid #1b262c;border-radius:5px;display:flex;align-items:center;justify-content:center;color:#000;background-color:#fff}:host(.selected){border-width:2px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9
9
|
}
|
|
10
10
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultNodeComponent, decorators: [{
|
|
11
11
|
type: Component,
|
|
12
12
|
args: [{ standalone: true, selector: 'default-node', host: {
|
|
13
13
|
'[class.selected]': 'selected()',
|
|
14
|
-
}, template: "<ng-content />\n", styles: [":host{border:1.5px solid #1b262c;border-radius:5px;display:flex;align-items:center;justify-content:center;color:#000;background-color:#fff}:host(.selected){border-width:2px}\n"] }]
|
|
14
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content />\n", styles: [":host{border:1.5px solid #1b262c;border-radius:5px;display:flex;align-items:center;justify-content:center;color:#000;background-color:#fff}:host(.selected){border-width:2px}\n"] }]
|
|
15
15
|
}] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1ub2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9jb21wb25lbnRzL2RlZmF1bHQtbm9kZS9kZWZhdWx0LW5vZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2NvbXBvbmVudHMvZGVmYXVsdC1ub2RlL2RlZmF1bHQtbm9kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFZMUUsTUFBTSxPQUFPLG9CQUFvQjtJQVZqQztRQVdTLGFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDaEM7K0dBRlksb0JBQW9CO21HQUFwQixvQkFBb0IsK1FDWmpDLGtCQUNBOzs0RkRXYSxvQkFBb0I7a0JBVmhDLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLGNBQWMsUUFHbEI7d0JBQ0osa0JBQWtCLEVBQUUsWUFBWTtxQkFDakMsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdkZWZhdWx0LW5vZGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGVmYXVsdC1ub2RlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbYC4vZGVmYXVsdC1ub2RlLmNvbXBvbmVudC5zY3NzYF0sXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLnNlbGVjdGVkXSc6ICdzZWxlY3RlZCgpJyxcbiAgfSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERlZmF1bHROb2RlQ29tcG9uZW50IHtcbiAgcHVibGljIHNlbGVjdGVkID0gaW5wdXQoZmFsc2UpO1xufVxuIiwiPG5nLWNvbnRlbnQgLz5cbiJdfQ==
|
|
@@ -7,10 +7,10 @@ export class DefsComponent {
|
|
|
7
7
|
this.defaultColor = 'rgb(177, 177, 183)';
|
|
8
8
|
}
|
|
9
9
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DefsComponent, isStandalone: true, selector: "defs[flowDefs]", inputs: { markers: { classPropertyName: "markers", publicName: "markers", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@for (marker of markers() | keyvalue; track marker) {\n <svg:marker\n [attr.id]=\"marker.key\"\n [attr.markerWidth]=\"marker.value.width ?? 16.5\"\n [attr.markerHeight]=\"marker.value.height ?? 16.5\"\n [attr.orient]=\"marker.value.orient ?? 'auto-start-reverse'\"\n
|
|
10
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DefsComponent, isStandalone: true, selector: "defs[flowDefs]", inputs: { markers: { classPropertyName: "markers", publicName: "markers", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@for (marker of markers() | keyvalue; track marker) {\n <svg:marker\n viewBox=\"-10 -10 20 20\"\n refX=\"0\"\n refY=\"0\"\n [attr.id]=\"marker.key\"\n [attr.markerWidth]=\"marker.value.width ?? 16.5\"\n [attr.markerHeight]=\"marker.value.height ?? 16.5\"\n [attr.orient]=\"marker.value.orient ?? 'auto-start-reverse'\"\n [attr.markerUnits]=\"marker.value.markerUnits ?? 'userSpaceOnUse'\">\n @if (marker.value.type === 'arrow-closed' || !marker.value.type) {\n <polyline\n class=\"marker__arrow_closed\"\n points=\"-5,-4 1,0 -5,4 -5,-4\"\n [style.stroke]=\"marker.value.color ?? defaultColor\"\n [style.stroke-width]=\"marker.value.strokeWidth ?? 2\"\n [style.fill]=\"marker.value.color ?? defaultColor\" />\n }\n\n @if (marker.value.type === 'arrow') {\n <polyline\n class=\"marker__arrow_default\"\n points=\"-5,-4 0,0 -5,4\"\n [style.stroke]=\"marker.value.color ?? defaultColor\"\n [style.stroke-width]=\"marker.value.strokeWidth ?? 2\" />\n }\n </svg:marker>\n}\n", styles: [".marker__arrow_default{stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;fill:none}.marker__arrow_closed{stroke-linecap:round;stroke-linejoin:round}\n"], dependencies: [{ kind: "pipe", type: KeyValuePipe, name: "keyvalue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11
11
|
}
|
|
12
12
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefsComponent, decorators: [{
|
|
13
13
|
type: Component,
|
|
14
|
-
args: [{ standalone: true, selector: 'defs[flowDefs]', changeDetection: ChangeDetectionStrategy.OnPush, imports: [KeyValuePipe], template: "@for (marker of markers() | keyvalue; track marker) {\n <svg:marker\n [attr.id]=\"marker.key\"\n [attr.markerWidth]=\"marker.value.width ?? 16.5\"\n [attr.markerHeight]=\"marker.value.height ?? 16.5\"\n [attr.orient]=\"marker.value.orient ?? 'auto-start-reverse'\"\n
|
|
14
|
+
args: [{ standalone: true, selector: 'defs[flowDefs]', changeDetection: ChangeDetectionStrategy.OnPush, imports: [KeyValuePipe], template: "@for (marker of markers() | keyvalue; track marker) {\n <svg:marker\n viewBox=\"-10 -10 20 20\"\n refX=\"0\"\n refY=\"0\"\n [attr.id]=\"marker.key\"\n [attr.markerWidth]=\"marker.value.width ?? 16.5\"\n [attr.markerHeight]=\"marker.value.height ?? 16.5\"\n [attr.orient]=\"marker.value.orient ?? 'auto-start-reverse'\"\n [attr.markerUnits]=\"marker.value.markerUnits ?? 'userSpaceOnUse'\">\n @if (marker.value.type === 'arrow-closed' || !marker.value.type) {\n <polyline\n class=\"marker__arrow_closed\"\n points=\"-5,-4 1,0 -5,4 -5,-4\"\n [style.stroke]=\"marker.value.color ?? defaultColor\"\n [style.stroke-width]=\"marker.value.strokeWidth ?? 2\"\n [style.fill]=\"marker.value.color ?? defaultColor\" />\n }\n\n @if (marker.value.type === 'arrow') {\n <polyline\n class=\"marker__arrow_default\"\n points=\"-5,-4 0,0 -5,4\"\n [style.stroke]=\"marker.value.color ?? defaultColor\"\n [style.stroke-width]=\"marker.value.strokeWidth ?? 2\" />\n }\n </svg:marker>\n}\n", styles: [".marker__arrow_default{stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;fill:none}.marker__arrow_closed{stroke-linecap:round;stroke-linejoin:round}\n"] }]
|
|
15
15
|
}] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvY29tcG9uZW50cy9kZWZzL2RlZnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2NvbXBvbmVudHMvZGVmcy9kZWZzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFVL0MsTUFBTSxPQUFPLGFBQWE7SUFSMUI7UUFTUyxZQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBdUIsQ0FBQztRQUVwQyxpQkFBWSxHQUFHLG9CQUFvQixDQUFDO0tBQ3hEOytHQUpZLGFBQWE7bUdBQWIsYUFBYSxtTkNaMUIseWpDQTRCQSxxTkRsQlksWUFBWTs7NEZBRVgsYUFBYTtrQkFSekIsU0FBUztpQ0FDSSxJQUFJLFlBQ04sZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWFya2VyIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9tYXJrZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IEtleVZhbHVlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2RlZnNbZmxvd0RlZnNdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RlZnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kZWZzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbS2V5VmFsdWVQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgRGVmc0NvbXBvbmVudCB7XG4gIHB1YmxpYyBtYXJrZXJzID0gaW5wdXQucmVxdWlyZWQ8TWFwPG51bWJlciwgTWFya2VyPj4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVmYXVsdENvbG9yID0gJ3JnYigxNzcsIDE3NywgMTgzKSc7XG59XG4iLCJAZm9yIChtYXJrZXIgb2YgbWFya2VycygpIHwga2V5dmFsdWU7IHRyYWNrIG1hcmtlcikge1xuICA8c3ZnOm1hcmtlclxuICAgIHZpZXdCb3g9XCItMTAgLTEwIDIwIDIwXCJcbiAgICByZWZYPVwiMFwiXG4gICAgcmVmWT1cIjBcIlxuICAgIFthdHRyLmlkXT1cIm1hcmtlci5rZXlcIlxuICAgIFthdHRyLm1hcmtlcldpZHRoXT1cIm1hcmtlci52YWx1ZS53aWR0aCA/PyAxNi41XCJcbiAgICBbYXR0ci5tYXJrZXJIZWlnaHRdPVwibWFya2VyLnZhbHVlLmhlaWdodCA/PyAxNi41XCJcbiAgICBbYXR0ci5vcmllbnRdPVwibWFya2VyLnZhbHVlLm9yaWVudCA/PyAnYXV0by1zdGFydC1yZXZlcnNlJ1wiXG4gICAgW2F0dHIubWFya2VyVW5pdHNdPVwibWFya2VyLnZhbHVlLm1hcmtlclVuaXRzID8/ICd1c2VyU3BhY2VPblVzZSdcIj5cbiAgICBAaWYgKG1hcmtlci52YWx1ZS50eXBlID09PSAnYXJyb3ctY2xvc2VkJyB8fCAhbWFya2VyLnZhbHVlLnR5cGUpIHtcbiAgICAgIDxwb2x5bGluZVxuICAgICAgICBjbGFzcz1cIm1hcmtlcl9fYXJyb3dfY2xvc2VkXCJcbiAgICAgICAgcG9pbnRzPVwiLTUsLTQgMSwwIC01LDQgLTUsLTRcIlxuICAgICAgICBbc3R5bGUuc3Ryb2tlXT1cIm1hcmtlci52YWx1ZS5jb2xvciA/PyBkZWZhdWx0Q29sb3JcIlxuICAgICAgICBbc3R5bGUuc3Ryb2tlLXdpZHRoXT1cIm1hcmtlci52YWx1ZS5zdHJva2VXaWR0aCA/PyAyXCJcbiAgICAgICAgW3N0eWxlLmZpbGxdPVwibWFya2VyLnZhbHVlLmNvbG9yID8/IGRlZmF1bHRDb2xvclwiIC8+XG4gICAgfVxuXG4gICAgQGlmIChtYXJrZXIudmFsdWUudHlwZSA9PT0gJ2Fycm93Jykge1xuICAgICAgPHBvbHlsaW5lXG4gICAgICAgIGNsYXNzPVwibWFya2VyX19hcnJvd19kZWZhdWx0XCJcbiAgICAgICAgcG9pbnRzPVwiLTUsLTQgMCwwIC01LDRcIlxuICAgICAgICBbc3R5bGUuc3Ryb2tlXT1cIm1hcmtlci52YWx1ZS5jb2xvciA/PyBkZWZhdWx0Q29sb3JcIlxuICAgICAgICBbc3R5bGUuc3Ryb2tlLXdpZHRoXT1cIm1hcmtlci52YWx1ZS5zdHJva2VXaWR0aCA/PyAyXCIgLz5cbiAgICB9XG4gIDwvc3ZnOm1hcmtlcj5cbn1cbiJdfQ==
|
|
@@ -40,12 +40,12 @@ export class EdgeComponent {
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EdgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: EdgeComponent, isStandalone: true, selector: "g[edge]", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: true, transformFunction: null }, edgeTemplate: { classPropertyName: "edgeTemplate", publicName: "edgeTemplate", isSignal: true, isRequired: false, transformFunction: null }, edgeLabelHtmlTemplate: { classPropertyName: "edgeLabelHtmlTemplate", publicName: "edgeLabelHtmlTemplate", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "selectable" }, ngImport: i0, template: "@if (model().type ===
|
|
43
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: EdgeComponent, isStandalone: true, selector: "g[edge]", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: true, transformFunction: null }, edgeTemplate: { classPropertyName: "edgeTemplate", publicName: "edgeTemplate", isSignal: true, isRequired: false, transformFunction: null }, edgeLabelHtmlTemplate: { classPropertyName: "edgeLabelHtmlTemplate", publicName: "edgeLabelHtmlTemplate", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "selectable" }, ngImport: i0, template: "@if (model().type === 'default') {\n <svg:path\n class=\"edge\"\n [attr.d]=\"model().path().path\"\n [attr.marker-start]=\"markerStartUrl()\"\n [attr.marker-end]=\"markerEndUrl()\"\n [class.edge_selected]=\"model().selected()\"\n (mousedown)=\"onEdgeMouseDown()\" />\n}\n\n@if (model().type === 'template' && edgeTemplate()) {\n @if (edgeTemplate(); as edgeTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"edgeTemplate\"\n [ngTemplateOutletContext]=\"edgeContext\"\n [ngTemplateOutletInjector]=\"injector\" />\n }\n}\n\n@if (model().edgeLabels.start; as label) {\n <svg:g\n edgeLabel\n [model]=\"label\"\n [point]=\"model().path().points.start\"\n [edgeModel]=\"model()\"\n [htmlTemplate]=\"edgeLabelHtmlTemplate()\" />\n}\n\n@if (model().edgeLabels.center; as label) {\n <svg:g\n edgeLabel\n [model]=\"label\"\n [point]=\"model().path().points.center\"\n [edgeModel]=\"model()\"\n [htmlTemplate]=\"edgeLabelHtmlTemplate()\" />\n}\n\n@if (model().edgeLabels.end; as label) {\n <svg:g\n edgeLabel\n [model]=\"label\"\n [point]=\"model().path().points.end\"\n [edgeModel]=\"model()\"\n [htmlTemplate]=\"edgeLabelHtmlTemplate()\" />\n}\n", styles: [".edge{fill:none;stroke-width:2;stroke:#b1b1b7}.edge_selected{stroke-width:2.5;stroke:#0f4c75}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EdgeLabelComponent, selector: "g[edgeLabel]", inputs: ["model", "edgeModel", "point", "htmlTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
44
44
|
}
|
|
45
45
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EdgeComponent, decorators: [{
|
|
46
46
|
type: Component,
|
|
47
47
|
args: [{ standalone: true, selector: 'g[edge]', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
48
48
|
class: 'selectable',
|
|
49
|
-
}, imports: [NgTemplateOutlet, EdgeLabelComponent], template: "@if (model().type ===
|
|
49
|
+
}, imports: [NgTemplateOutlet, EdgeLabelComponent], template: "@if (model().type === 'default') {\n <svg:path\n class=\"edge\"\n [attr.d]=\"model().path().path\"\n [attr.marker-start]=\"markerStartUrl()\"\n [attr.marker-end]=\"markerEndUrl()\"\n [class.edge_selected]=\"model().selected()\"\n (mousedown)=\"onEdgeMouseDown()\" />\n}\n\n@if (model().type === 'template' && edgeTemplate()) {\n @if (edgeTemplate(); as edgeTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"edgeTemplate\"\n [ngTemplateOutletContext]=\"edgeContext\"\n [ngTemplateOutletInjector]=\"injector\" />\n }\n}\n\n@if (model().edgeLabels.start; as label) {\n <svg:g\n edgeLabel\n [model]=\"label\"\n [point]=\"model().path().points.start\"\n [edgeModel]=\"model()\"\n [htmlTemplate]=\"edgeLabelHtmlTemplate()\" />\n}\n\n@if (model().edgeLabels.center; as label) {\n <svg:g\n edgeLabel\n [model]=\"label\"\n [point]=\"model().path().points.center\"\n [edgeModel]=\"model()\"\n [htmlTemplate]=\"edgeLabelHtmlTemplate()\" />\n}\n\n@if (model().edgeLabels.end; as label) {\n <svg:g\n edgeLabel\n [model]=\"label\"\n [point]=\"model().path().points.end\"\n [edgeModel]=\"model()\"\n [htmlTemplate]=\"edgeLabelHtmlTemplate()\" />\n}\n", styles: [".edge{fill:none;stroke-width:2;stroke:#b1b1b7}.edge_selected{stroke-width:2.5;stroke:#0f4c75}\n"] }]
|
|
50
50
|
}] });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvY29tcG9uZW50cy9lZGdlL2VkZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2NvbXBvbmVudHMvZWRnZS9lZGdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFHUixRQUFRLEVBQ1IsTUFBTSxFQUNOLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBYW5ELE1BQU0sT0FBTyxhQUFhO0lBWDFCO1FBWVksYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1Qyx3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUVuRCxVQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBYSxDQUFDO1FBRXBDLGlCQUFZLEdBQUcsS0FBSyxFQUE0QixDQUFDO1FBRWpELDBCQUFxQixHQUFHLEtBQUssRUFBb0IsQ0FBQztRQUUvQyxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO1lBRWhELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ25FLENBQUMsQ0FBQyxDQUFDO1FBRU8saUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3JDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQztZQUU5QyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNuRSxDQUFDLENBQUMsQ0FBQztLQXNCSjtJQWxCUSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFdBQVcsR0FBRztZQUNqQixTQUFTLEVBQUU7Z0JBQ1QsbUNBQW1DO2dCQUNuQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUk7Z0JBQ3ZCLElBQUksRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQztnQkFDOUMsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjO2dCQUNoQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQzVCLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRTthQUM3QztTQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUM7WUFDbEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM3QyxDQUFDO0lBQ0gsQ0FBQzsrR0ExQ1UsYUFBYTttR0FBYixhQUFhLG1pQkM3QjFCLHlzQ0E2Q0EseUpEbEJZLGdCQUFnQixvSkFBRSxrQkFBa0I7OzRGQUVuQyxhQUFhO2tCQVh6QixTQUFTO2lDQUNJLElBQUksWUFDTixTQUFTLG1CQUdGLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osS0FBSyxFQUFFLFlBQVk7cUJBQ3BCLFdBQ1EsQ0FBQyxnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEluamVjdG9yLFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFZGdlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZWRnZS5tb2RlbCc7XG5pbXBvcnQgeyBoYXNoQ29kZSB9IGZyb20gJy4uLy4uL3V0aWxzL2hhc2gnO1xuaW1wb3J0IHsgRWRnZUNvbnRleHQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3RlbXBsYXRlLWNvbnRleHQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBGbG93U2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmxvdy1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IEVkZ2VMYWJlbENvbXBvbmVudCB9IGZyb20gJy4uL2VkZ2UtbGFiZWwvZWRnZS1sYWJlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2dbZWRnZV0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZWRnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VkZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ3NlbGVjdGFibGUnLFxuICB9LFxuICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldCwgRWRnZUxhYmVsQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRWRnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb3RlY3RlZCBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByaXZhdGUgc2VsZWN0aW9uU2VydmljZSA9IGluamVjdChTZWxlY3Rpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBmbG93U2V0dGluZ3NTZXJ2aWNlID0gaW5qZWN0KEZsb3dTZXR0aW5nc1NlcnZpY2UpO1xuXG4gIHB1YmxpYyBtb2RlbCA9IGlucHV0LnJlcXVpcmVkPEVkZ2VNb2RlbD4oKTtcblxuICBwdWJsaWMgZWRnZVRlbXBsYXRlID0gaW5wdXQ8VGVtcGxhdGVSZWY8RWRnZUNvbnRleHQ+PigpO1xuXG4gIHB1YmxpYyBlZGdlTGFiZWxIdG1sVGVtcGxhdGUgPSBpbnB1dDxUZW1wbGF0ZVJlZjxhbnk+PigpO1xuXG4gIHByb3RlY3RlZCBtYXJrZXJTdGFydFVybCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBtYXJrZXIgPSB0aGlzLm1vZGVsKCkuZWRnZS5tYXJrZXJzPy5zdGFydDtcblxuICAgIHJldHVybiBtYXJrZXIgPyBgdXJsKCMke2hhc2hDb2RlKEpTT04uc3RyaW5naWZ5KG1hcmtlcikpfSlgIDogJyc7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBtYXJrZXJFbmRVcmwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbWFya2VyID0gdGhpcy5tb2RlbCgpLmVkZ2UubWFya2Vycz8uZW5kO1xuXG4gICAgcmV0dXJuIG1hcmtlciA/IGB1cmwoIyR7aGFzaENvZGUoSlNPTi5zdHJpbmdpZnkobWFya2VyKSl9KWAgOiAnJztcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGVkZ2VDb250ZXh0ITogRWRnZUNvbnRleHQ7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZWRnZUNvbnRleHQgPSB7XG4gICAgICAkaW1wbGljaXQ6IHtcbiAgICAgICAgLy8gVE9ETzogY2hlY2sgaWYgZWRnZSBjb3VsZCBjaGFuZ2VcbiAgICAgICAgZWRnZTogdGhpcy5tb2RlbCgpLmVkZ2UsXG4gICAgICAgIHBhdGg6IGNvbXB1dGVkKCgpID0+IHRoaXMubW9kZWwoKS5wYXRoKCkucGF0aCksXG4gICAgICAgIG1hcmtlclN0YXJ0OiB0aGlzLm1hcmtlclN0YXJ0VXJsLFxuICAgICAgICBtYXJrZXJFbmQ6IHRoaXMubWFya2VyRW5kVXJsLFxuICAgICAgICBzZWxlY3RlZDogdGhpcy5tb2RlbCgpLnNlbGVjdGVkLmFzUmVhZG9ubHkoKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBvbkVkZ2VNb3VzZURvd24oKSB7XG4gICAgaWYgKHRoaXMuZmxvd1NldHRpbmdzU2VydmljZS5lbnRpdGllc1NlbGVjdGFibGUoKSkge1xuICAgICAgdGhpcy5zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdCh0aGlzLm1vZGVsKCkpO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmIChtb2RlbCgpLnR5cGUgPT09ICdkZWZhdWx0Jykge1xuICA8c3ZnOnBhdGhcbiAgICBjbGFzcz1cImVkZ2VcIlxuICAgIFthdHRyLmRdPVwibW9kZWwoKS5wYXRoKCkucGF0aFwiXG4gICAgW2F0dHIubWFya2VyLXN0YXJ0XT1cIm1hcmtlclN0YXJ0VXJsKClcIlxuICAgIFthdHRyLm1hcmtlci1lbmRdPVwibWFya2VyRW5kVXJsKClcIlxuICAgIFtjbGFzcy5lZGdlX3NlbGVjdGVkXT1cIm1vZGVsKCkuc2VsZWN0ZWQoKVwiXG4gICAgKG1vdXNlZG93bik9XCJvbkVkZ2VNb3VzZURvd24oKVwiIC8+XG59XG5cbkBpZiAobW9kZWwoKS50eXBlID09PSAndGVtcGxhdGUnICYmIGVkZ2VUZW1wbGF0ZSgpKSB7XG4gIEBpZiAoZWRnZVRlbXBsYXRlKCk7IGFzIGVkZ2VUZW1wbGF0ZSkge1xuICAgIDxuZy1jb250YWluZXJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImVkZ2VUZW1wbGF0ZVwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZWRnZUNvbnRleHRcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRJbmplY3Rvcl09XCJpbmplY3RvclwiIC8+XG4gIH1cbn1cblxuQGlmIChtb2RlbCgpLmVkZ2VMYWJlbHMuc3RhcnQ7IGFzIGxhYmVsKSB7XG4gIDxzdmc6Z1xuICAgIGVkZ2VMYWJlbFxuICAgIFttb2RlbF09XCJsYWJlbFwiXG4gICAgW3BvaW50XT1cIm1vZGVsKCkucGF0aCgpLnBvaW50cy5zdGFydFwiXG4gICAgW2VkZ2VNb2RlbF09XCJtb2RlbCgpXCJcbiAgICBbaHRtbFRlbXBsYXRlXT1cImVkZ2VMYWJlbEh0bWxUZW1wbGF0ZSgpXCIgLz5cbn1cblxuQGlmIChtb2RlbCgpLmVkZ2VMYWJlbHMuY2VudGVyOyBhcyBsYWJlbCkge1xuICA8c3ZnOmdcbiAgICBlZGdlTGFiZWxcbiAgICBbbW9kZWxdPVwibGFiZWxcIlxuICAgIFtwb2ludF09XCJtb2RlbCgpLnBhdGgoKS5wb2ludHMuY2VudGVyXCJcbiAgICBbZWRnZU1vZGVsXT1cIm1vZGVsKClcIlxuICAgIFtodG1sVGVtcGxhdGVdPVwiZWRnZUxhYmVsSHRtbFRlbXBsYXRlKClcIiAvPlxufVxuXG5AaWYgKG1vZGVsKCkuZWRnZUxhYmVscy5lbmQ7IGFzIGxhYmVsKSB7XG4gIDxzdmc6Z1xuICAgIGVkZ2VMYWJlbFxuICAgIFttb2RlbF09XCJsYWJlbFwiXG4gICAgW3BvaW50XT1cIm1vZGVsKCkucGF0aCgpLnBvaW50cy5lbmRcIlxuICAgIFtlZGdlTW9kZWxdPVwibW9kZWwoKVwiXG4gICAgW2h0bWxUZW1wbGF0ZV09XCJlZGdlTGFiZWxIdG1sVGVtcGxhdGUoKVwiIC8+XG59XG4iXX0=
|
|
@@ -29,10 +29,8 @@ export class EdgeLabelComponent {
|
|
|
29
29
|
// this is a fix for visual artifact in chrome that for some reason adresses only for edge label.
|
|
30
30
|
// the bug reproduces if edgeLabelWrapperRef size fully matched the size of parent foreignObject
|
|
31
31
|
const MAGIC_VALUE_TO_FIX_GLITCH_IN_CHROME = 2;
|
|
32
|
-
const width = this.edgeLabelWrapperRef().nativeElement.clientWidth +
|
|
33
|
-
|
|
34
|
-
const height = this.edgeLabelWrapperRef().nativeElement.clientHeight +
|
|
35
|
-
MAGIC_VALUE_TO_FIX_GLITCH_IN_CHROME;
|
|
32
|
+
const width = this.edgeLabelWrapperRef().nativeElement.clientWidth + MAGIC_VALUE_TO_FIX_GLITCH_IN_CHROME;
|
|
33
|
+
const height = this.edgeLabelWrapperRef().nativeElement.clientHeight + MAGIC_VALUE_TO_FIX_GLITCH_IN_CHROME;
|
|
36
34
|
this.model().size.set({ width, height });
|
|
37
35
|
}
|
|
38
36
|
getLabelContext() {
|
|
@@ -44,13 +42,13 @@ export class EdgeLabelComponent {
|
|
|
44
42
|
};
|
|
45
43
|
}
|
|
46
44
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EdgeLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
47
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: EdgeLabelComponent, isStandalone: true, selector: "g[edgeLabel]", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: true, transformFunction: null }, edgeModel: { classPropertyName: "edgeModel", publicName: "edgeModel", isSignal: true, isRequired: true, transformFunction: null }, point: { classPropertyName: "point", publicName: "point", isSignal: true, isRequired: false, transformFunction: null }, htmlTemplate: { classPropertyName: "htmlTemplate", publicName: "htmlTemplate", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "edgeLabelWrapperRef", first: true, predicate: ["edgeLabelWrapper"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (model().edgeLabel.type ===
|
|
45
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: EdgeLabelComponent, isStandalone: true, selector: "g[edgeLabel]", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: true, transformFunction: null }, edgeModel: { classPropertyName: "edgeModel", publicName: "edgeModel", isSignal: true, isRequired: true, transformFunction: null }, point: { classPropertyName: "point", publicName: "point", isSignal: true, isRequired: false, transformFunction: null }, htmlTemplate: { classPropertyName: "htmlTemplate", publicName: "htmlTemplate", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "edgeLabelWrapperRef", first: true, predicate: ["edgeLabelWrapper"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (model().edgeLabel.type === 'html-template' && htmlTemplate()) {\n @if (htmlTemplate(); as htmlTemplate) {\n <svg:foreignObject\n [attr.x]=\"edgeLabelPoint().x\"\n [attr.y]=\"edgeLabelPoint().y\"\n [attr.width]=\"model().size().width\"\n [attr.height]=\"model().size().height\">\n <div #edgeLabelWrapper class=\"edge-label-wrapper\">\n <ng-container *ngTemplateOutlet=\"htmlTemplate; context: getLabelContext()\" />\n </div>\n </svg:foreignObject>\n }\n}\n", styles: [".edge-label-wrapper{width:max-content;margin-top:1px;margin-left:1px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
48
46
|
}
|
|
49
47
|
__decorate([
|
|
50
48
|
Microtask
|
|
51
49
|
], EdgeLabelComponent.prototype, "ngAfterViewInit", null);
|
|
52
50
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EdgeLabelComponent, decorators: [{
|
|
53
51
|
type: Component,
|
|
54
|
-
args: [{ standalone: true, selector: 'g[edgeLabel]', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgTemplateOutlet], template: "@if (model().edgeLabel.type ===
|
|
52
|
+
args: [{ standalone: true, selector: 'g[edgeLabel]', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgTemplateOutlet], template: "@if (model().edgeLabel.type === 'html-template' && htmlTemplate()) {\n @if (htmlTemplate(); as htmlTemplate) {\n <svg:foreignObject\n [attr.x]=\"edgeLabelPoint().x\"\n [attr.y]=\"edgeLabelPoint().y\"\n [attr.width]=\"model().size().width\"\n [attr.height]=\"model().size().height\">\n <div #edgeLabelWrapper class=\"edge-label-wrapper\">\n <ng-container *ngTemplateOutlet=\"htmlTemplate; context: getLabelContext()\" />\n </div>\n </svg:foreignObject>\n }\n}\n", styles: [".edge-label-wrapper{width:max-content;margin-top:1px;margin-left:1px}\n"] }]
|
|
55
53
|
}], propDecorators: { ngAfterViewInit: [] } });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1sYWJlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvY29tcG9uZW50cy9lZGdlLWxhYmVsL2VkZ2UtbGFiZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2NvbXBvbmVudHMvZWRnZS1sYWJlbC9lZGdlLWxhYmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFHVCxRQUFRLEVBQ1IsS0FBSyxFQUNMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBdUJuRCxNQUFNLE9BQU8sa0JBQWtCO0lBckIvQjtRQXNCRSx3QkFBd0I7UUFDakIsVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWtCLENBQUM7UUFFekMsY0FBUyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWEsQ0FBQztRQUV4QyxVQUFLLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU5QixpQkFBWSxHQUFHLEtBQUssRUFBb0IsQ0FBQztRQUV6Qyx3QkFBbUIsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUE2QixrQkFBa0IsQ0FBQyxDQUFDO1FBRWhHOzs7O1dBSUc7UUFDTyxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBRTNCLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1lBRTlDLE9BQU87Z0JBQ0wsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUM7Z0JBQ3RCLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLE1BQU0sR0FBRyxDQUFDO2FBQ3hCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztLQXNCSjtJQW5CUSxlQUFlO1FBQ3BCLGlHQUFpRztRQUNqRyxnR0FBZ0c7UUFDaEcsTUFBTSxtQ0FBbUMsR0FBRyxDQUFDLENBQUM7UUFFOUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsR0FBRyxtQ0FBbUMsQ0FBQztRQUN6RyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxhQUFhLENBQUMsWUFBWSxHQUFHLG1DQUFtQyxDQUFDO1FBRTNHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVTLGVBQWU7UUFDdkIsT0FBTztZQUNMLFNBQVMsRUFBRTtnQkFDVCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUk7Z0JBQzNCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUzthQUM5QjtTQUNGLENBQUM7SUFDSixDQUFDOytHQS9DVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw0dEJDcEMvQiwyZkFhQSxpSURxQlksZ0JBQWdCOztBQStCbkI7SUFETixTQUFTO3lEQVVUOzRGQXRDVSxrQkFBa0I7a0JBckI5QixTQUFTO2lDQUNJLElBQUksWUFDTixjQUFjLG1CQWdCUCx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsZ0JBQWdCLENBQUM7OEJBK0JwQixlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgVGVtcGxhdGVSZWYsXG4gIGNvbXB1dGVkLFxuICBpbnB1dCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVkZ2VMYWJlbE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VkZ2UtbGFiZWwubW9kZWwnO1xuaW1wb3J0IHsgRWRnZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VkZ2UubW9kZWwnO1xuaW1wb3J0IHsgTWljcm90YXNrIH0gZnJvbSAnLi4vLi4vZGVjb3JhdG9ycy9taWNyb3Rhc2suZGVjb3JhdG9yJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdnW2VkZ2VMYWJlbF0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZWRnZS1sYWJlbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5lZGdlLWxhYmVsLXdyYXBwZXIge1xuICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG5cbiAgICAgICAgLypcbiAgICAgICAgdGhpcyBpcyBhIGZpeCBmb3IgYnVnIGluIGNocm9tZSwgZm9yIHNvbWUgcmVhc29uIGlmIHRoZSBkaXYgZnVsbHkgbWF0Y2hlcyB0aGUgc2l6ZVxuICAgICAgICBvZiBmb3JlaWduT2JqZWN0IHRoZXJlIGFyZSBvY2N1cnMgc29tZSB2aXN1YWwgYXJ0aWZhY3RzIGFyb3VuZCB0aGlzIGRpdlxuICAgICAgICovXG4gICAgICAgIG1hcmdpbi10b3A6IDFweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDFweDtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXRdLFxufSlcbmV4cG9ydCBjbGFzcyBFZGdlTGFiZWxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgLy8gVE9ETzogdG9vIG1hbnkgaW5wdXRzXG4gIHB1YmxpYyBtb2RlbCA9IGlucHV0LnJlcXVpcmVkPEVkZ2VMYWJlbE1vZGVsPigpO1xuXG4gIHB1YmxpYyBlZGdlTW9kZWwgPSBpbnB1dC5yZXF1aXJlZDxFZGdlTW9kZWw+KCk7XG5cbiAgcHVibGljIHBvaW50ID0gaW5wdXQoeyB4OiAwLCB5OiAwIH0pO1xuXG4gIHB1YmxpYyBodG1sVGVtcGxhdGUgPSBpbnB1dDxUZW1wbGF0ZVJlZjxhbnk+PigpO1xuXG4gIHB1YmxpYyBlZGdlTGFiZWxXcmFwcGVyUmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PignZWRnZUxhYmVsV3JhcHBlcicpO1xuXG4gIC8qKlxuICAgKiBDZW50ZXJlZCBwb2ludCBvZiBsYWJlbFxuICAgKlxuICAgKiBUT0RPOiBtYXliZSBwdXQgaXQgaW50byBFZGdlTGFiZWxNb2RlbFxuICAgKi9cbiAgcHJvdGVjdGVkIGVkZ2VMYWJlbFBvaW50ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHBvaW50ID0gdGhpcy5wb2ludCgpO1xuXG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSB0aGlzLm1vZGVsKCkuc2l6ZSgpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHg6IHBvaW50LnggLSB3aWR0aCAvIDIsXG4gICAgICB5OiBwb2ludC55IC0gaGVpZ2h0IC8gMixcbiAgICB9O1xuICB9KTtcblxuICBATWljcm90YXNrXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gdGhpcyBpcyBhIGZpeCBmb3IgdmlzdWFsIGFydGlmYWN0IGluIGNocm9tZSB0aGF0IGZvciBzb21lIHJlYXNvbiBhZHJlc3NlcyBvbmx5IGZvciBlZGdlIGxhYmVsLlxuICAgIC8vIHRoZSBidWcgcmVwcm9kdWNlcyBpZiBlZGdlTGFiZWxXcmFwcGVyUmVmIHNpemUgZnVsbHkgbWF0Y2hlZCB0aGUgc2l6ZSBvZiBwYXJlbnQgZm9yZWlnbk9iamVjdFxuICAgIGNvbnN0IE1BR0lDX1ZBTFVFX1RPX0ZJWF9HTElUQ0hfSU5fQ0hST01FID0gMjtcblxuICAgIGNvbnN0IHdpZHRoID0gdGhpcy5lZGdlTGFiZWxXcmFwcGVyUmVmKCkubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCArIE1BR0lDX1ZBTFVFX1RPX0ZJWF9HTElUQ0hfSU5fQ0hST01FO1xuICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuZWRnZUxhYmVsV3JhcHBlclJlZigpLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0ICsgTUFHSUNfVkFMVUVfVE9fRklYX0dMSVRDSF9JTl9DSFJPTUU7XG5cbiAgICB0aGlzLm1vZGVsKCkuc2l6ZS5zZXQoeyB3aWR0aCwgaGVpZ2h0IH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldExhYmVsQ29udGV4dCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJGltcGxpY2l0OiB7XG4gICAgICAgIGVkZ2U6IHRoaXMuZWRnZU1vZGVsKCkuZWRnZSxcbiAgICAgICAgbGFiZWw6IHRoaXMubW9kZWwoKS5lZGdlTGFiZWwsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiIsIkBpZiAobW9kZWwoKS5lZGdlTGFiZWwudHlwZSA9PT0gJ2h0bWwtdGVtcGxhdGUnICYmIGh0bWxUZW1wbGF0ZSgpKSB7XG4gIEBpZiAoaHRtbFRlbXBsYXRlKCk7IGFzIGh0bWxUZW1wbGF0ZSkge1xuICAgIDxzdmc6Zm9yZWlnbk9iamVjdFxuICAgICAgW2F0dHIueF09XCJlZGdlTGFiZWxQb2ludCgpLnhcIlxuICAgICAgW2F0dHIueV09XCJlZGdlTGFiZWxQb2ludCgpLnlcIlxuICAgICAgW2F0dHIud2lkdGhdPVwibW9kZWwoKS5zaXplKCkud2lkdGhcIlxuICAgICAgW2F0dHIuaGVpZ2h0XT1cIm1vZGVsKCkuc2l6ZSgpLmhlaWdodFwiPlxuICAgICAgPGRpdiAjZWRnZUxhYmVsV3JhcHBlciBjbGFzcz1cImVkZ2UtbGFiZWwtd3JhcHBlclwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaHRtbFRlbXBsYXRlOyBjb250ZXh0OiBnZXRMYWJlbENvbnRleHQoKVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L3N2Zzpmb3JlaWduT2JqZWN0PlxuICB9XG59XG4iXX0=
|