ngx-vflow 1.0.2 → 1.0.4
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
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { computed, effect, inject, signal } from '@angular/core';
|
|
2
|
-
import { isDynamicNode } from '../interfaces/node.interface';
|
|
2
|
+
import { isComponentDynamicNode, isComponentStaticNode, isDynamicNode, } from '../interfaces/node.interface';
|
|
3
3
|
import { isDefined } from '../utils/is-defined';
|
|
4
4
|
import { toObservable, toSignal } from '@angular/core/rxjs-interop';
|
|
5
5
|
import { FlowSettingsService } from '../services/flow-settings.service';
|
|
6
|
-
import { animationFrameScheduler, merge, observeOn, Subject
|
|
7
|
-
import { CustomNodeComponent } from '../public-components/custom-node/custom-node.component';
|
|
8
|
-
import { CustomDynamicNodeComponent } from '../public-components/custom-dynamic-node/custom-dynamic-node.component';
|
|
6
|
+
import { animationFrameScheduler, merge, observeOn, Subject } from 'rxjs';
|
|
9
7
|
import { FlowEntitiesService } from '../services/flow-entities.service';
|
|
10
8
|
// TODO bad naming around points
|
|
11
9
|
export class NodeModel {
|
|
@@ -20,7 +18,7 @@ export class NodeModel {
|
|
|
20
18
|
this.throttledPoint$ = toObservable(this.internalPoint).pipe(observeOn(animationFrameScheduler));
|
|
21
19
|
this.notThrottledPoint$ = new Subject();
|
|
22
20
|
this.point = toSignal(merge(this.throttledPoint$, this.notThrottledPoint$), {
|
|
23
|
-
initialValue: this.internalPoint()
|
|
21
|
+
initialValue: this.internalPoint(),
|
|
24
22
|
});
|
|
25
23
|
this.point$ = this.throttledPoint$;
|
|
26
24
|
this.size = signal({ width: 0, height: 0 });
|
|
@@ -49,16 +47,15 @@ export class NodeModel {
|
|
|
49
47
|
// disabled for configuration for now
|
|
50
48
|
this.magnetRadius = 20;
|
|
51
49
|
// TODO: not sure if we need to statically store it
|
|
52
|
-
this.isComponentType =
|
|
53
|
-
CustomDynamicNodeComponent.isPrototypeOf(this.node.type);
|
|
50
|
+
this.isComponentType = isComponentStaticNode(this.node) || isComponentDynamicNode(this.node);
|
|
54
51
|
// Default node specific thing
|
|
55
52
|
this.text = this.createTextSignal();
|
|
56
53
|
// Component node specific thing
|
|
57
54
|
this.componentTypeInputs = {
|
|
58
55
|
node: this.node,
|
|
59
56
|
};
|
|
60
|
-
this.parent = computed(() => this.entitiesService.nodes().find(n => n.node.id === this.parentId()) ?? null);
|
|
61
|
-
this.children = computed(() => this.entitiesService.nodes().filter(n => n.parentId() === this.node.id));
|
|
57
|
+
this.parent = computed(() => this.entitiesService.nodes().find((n) => n.node.id === this.parentId()) ?? null);
|
|
58
|
+
this.children = computed(() => this.entitiesService.nodes().filter((n) => n.parentId() === this.node.id));
|
|
62
59
|
this.color = signal(NodeModel.defaultColor);
|
|
63
60
|
this.resizable = signal(false);
|
|
64
61
|
this.resizing = signal(false);
|
|
@@ -125,7 +122,7 @@ export class NodeModel {
|
|
|
125
122
|
else {
|
|
126
123
|
this.size.set({
|
|
127
124
|
width: node.width ?? NodeModel.defaultWidth,
|
|
128
|
-
height: node.height ?? NodeModel.defaultHeight
|
|
125
|
+
height: node.height ?? NodeModel.defaultHeight,
|
|
129
126
|
});
|
|
130
127
|
}
|
|
131
128
|
}
|
|
@@ -161,9 +158,7 @@ export class NodeModel {
|
|
|
161
158
|
return signal('');
|
|
162
159
|
}
|
|
163
160
|
createInternalPointSignal() {
|
|
164
|
-
return isDynamicNode(this.node)
|
|
165
|
-
? this.node.point
|
|
166
|
-
: signal({ x: this.node.point.x, y: this.node.point.y });
|
|
161
|
+
return isDynamicNode(this.node) ? this.node.point : signal({ x: this.node.point.x, y: this.node.point.y });
|
|
167
162
|
}
|
|
168
163
|
}
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9tb2RlbHMvbm9kZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNyRixPQUFPLEVBQXFCLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBR25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sR0FBRyxNQUFNLE1BQU0sQ0FBQTtBQUUxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3REFBd0QsQ0FBQTtBQUM1RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQTtBQUNuSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUV2RSxnQ0FBZ0M7QUFDaEMsTUFBTSxPQUFPLFNBQVM7YUFDTCxpQkFBWSxHQUFHLEdBQUcsQUFBTixDQUFNO2FBQ2xCLGtCQUFhLEdBQUcsRUFBRSxBQUFMLENBQUs7YUFDbEIsaUJBQVksR0FBRyxTQUFTLEFBQVosQ0FBWTtJQTRGdkMsWUFDUyxJQUE4QjtRQUE5QixTQUFJLEdBQUosSUFBSSxDQUEwQjtRQTNGL0Isd0JBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFDakQsb0JBQWUsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUU5QyxrQkFBYSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFBO1FBRWhELG9CQUFlLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQzdELFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUNuQyxDQUFBO1FBRU8sdUJBQWtCLEdBQUcsSUFBSSxPQUFPLEVBQVMsQ0FBQTtRQUUxQyxVQUFLLEdBQUcsUUFBUSxDQUNyQixLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFDcEQ7WUFDRSxZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRTtTQUNuQyxDQUNGLENBQUE7UUFFTSxXQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUU5QixTQUFJLEdBQUcsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUN0QyxVQUFLLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUUvQixVQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN6QyxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUUzQyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUV2QixhQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3hCLGNBQVMsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRXZDLGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNqQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUE7WUFDMUIsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUN0QixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBRXRCLE9BQU8sTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUN2QixDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtnQkFDckIsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUE7Z0JBRXJCLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUE7WUFDMUIsQ0FBQztZQUVELE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUE7UUFDakIsQ0FBQyxDQUFDLENBQUE7UUFFSyxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDcEMsYUFBYSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDOUQsQ0FBQTtRQUVNLFlBQU8sR0FBRyxNQUFNLENBQWdCLEVBQUUsQ0FBQyxDQUFBO1FBRW5DLGFBQVEsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRXJDLGNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFeEIscUJBQWdCLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRW5DLHFDQUFxQztRQUNyQixpQkFBWSxHQUFHLEVBQUUsQ0FBQTtRQUVqQyxtREFBbUQ7UUFDNUMsb0JBQWUsR0FDcEIsbUJBQW1CLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ2pELDBCQUEwQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBRTFELDhCQUE4QjtRQUN2QixTQUFJLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUE7UUFFckMsZ0NBQWdDO1FBQ3pCLHdCQUFtQixHQUFHO1lBQzNCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtTQUNoQixDQUFBO1FBRU0sV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQzlFLENBQUE7UUFFTSxhQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUM5QixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUN4RSxDQUFBO1FBRU0sVUFBSyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUE7UUFFdEMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN6QixhQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3hCLG9CQUFlLEdBQUcsTUFBTSxDQUE4QixJQUFJLENBQUMsQ0FBQTtRQUUxRCxhQUFRLEdBQUcsTUFBTSxDQUFnQixJQUFJLENBQUMsQ0FBQTtRQUs1QyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUM5QixJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUE7WUFDakMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUNwQyxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzdCLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQTtZQUMvQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1lBQ2xDLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLGVBQWUsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEQsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFBO1lBQ3pCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDNUIsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssZUFBZSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwRCxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUE7WUFDakMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUNwQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTSxRQUFRLENBQUMsS0FBWSxFQUFFLFFBQWlCO1FBQzdDLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDckMsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLGdDQUFnQztRQUNyQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFBO1FBRXRCLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xCLEtBQUssU0FBUyxDQUFDO1lBQ2YsS0FBSyxlQUFlLENBQUM7WUFDckIsS0FBSyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RCLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ3hCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7d0JBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7NEJBQ1osS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLFNBQVMsQ0FBQyxZQUFZOzRCQUMvQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksU0FBUyxDQUFDLGFBQWE7eUJBQ25ELENBQUMsQ0FBQTtvQkFDSixDQUFDLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO2dCQUNqQyxDQUFDO3FCQUFNLENBQUM7b0JBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7d0JBQ1osS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDLFlBQVk7d0JBQzNDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQyxhQUFhO3FCQUMvQyxDQUFDLENBQUE7Z0JBQ0osQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLGVBQWUsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDMUQsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDeEIsTUFBTSxDQUFDLEdBQUcsRUFBRTtvQkFDVixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQzs0QkFDWixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRTs0QkFDbkIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7eUJBQ3RCLENBQUMsQ0FBQTtvQkFDSixDQUFDO2dCQUNILENBQUMsRUFBRSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7WUFDakMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO2dCQUMzRCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7UUFFdEIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVCLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUE7WUFDaEMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUE7WUFDaEMsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNuQixDQUFDO0lBRU8seUJBQXlCO1FBQy9CLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDN0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztZQUNqQixDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUM1RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmFsLCBUZW1wbGF0ZVJlZiwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRHluYW1pY05vZGUsIE5vZGUsIGlzRHluYW1pY05vZGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL25vZGUuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgaXNEZWZpbmVkIH0gZnJvbSAnLi4vdXRpbHMvaXMtZGVmaW5lZCdcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCdcbmltcG9ydCB7IEhhbmRsZU1vZGVsIH0gZnJvbSAnLi9oYW5kbGUubW9kZWwnXG5pbXBvcnQgeyBGbG93RW50aXR5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9mbG93LWVudGl0eS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBGbG93U2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZmxvdy1zZXR0aW5ncy5zZXJ2aWNlJ1xuaW1wb3J0IHsgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIsIG1lcmdlLCBvYnNlcnZlT24sIFN1YmplY3QsIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wb2ludC5pbnRlcmZhY2UnXG5pbXBvcnQgeyBDdXN0b21Ob2RlQ29tcG9uZW50IH0gZnJvbSAnLi4vcHVibGljLWNvbXBvbmVudHMvY3VzdG9tLW5vZGUvY3VzdG9tLW5vZGUuY29tcG9uZW50J1xuaW1wb3J0IHsgQ3VzdG9tRHluYW1pY05vZGVDb21wb25lbnQgfSBmcm9tICcuLi9wdWJsaWMtY29tcG9uZW50cy9jdXN0b20tZHluYW1pYy1ub2RlL2N1c3RvbS1keW5hbWljLW5vZGUuY29tcG9uZW50J1xuaW1wb3J0IHsgRmxvd0VudGl0aWVzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Zsb3ctZW50aXRpZXMuc2VydmljZSdcblxuLy8gVE9ETyBiYWQgbmFtaW5nIGFyb3VuZCBwb2ludHNcbmV4cG9ydCBjbGFzcyBOb2RlTW9kZWw8VCA9IHVua25vd24+IGltcGxlbWVudHMgRmxvd0VudGl0eSB7XG4gIHByaXZhdGUgc3RhdGljIGRlZmF1bHRXaWR0aCA9IDEwMFxuICBwcml2YXRlIHN0YXRpYyBkZWZhdWx0SGVpZ2h0ID0gNTBcbiAgcHJpdmF0ZSBzdGF0aWMgZGVmYXVsdENvbG9yID0gJyMxYjI2MmMnXG5cbiAgcHJpdmF0ZSBmbG93U2V0dGluZ3NTZXJ2aWNlID0gaW5qZWN0KEZsb3dTZXR0aW5nc1NlcnZpY2UpXG4gIHByaXZhdGUgZW50aXRpZXNTZXJ2aWNlID0gaW5qZWN0KEZsb3dFbnRpdGllc1NlcnZpY2UpO1xuXG4gIHByaXZhdGUgaW50ZXJuYWxQb2ludCA9IHRoaXMuY3JlYXRlSW50ZXJuYWxQb2ludFNpZ25hbCgpXG5cbiAgcHJpdmF0ZSB0aHJvdHRsZWRQb2ludCQgPSB0b09ic2VydmFibGUodGhpcy5pbnRlcm5hbFBvaW50KS5waXBlKFxuICAgIG9ic2VydmVPbihhbmltYXRpb25GcmFtZVNjaGVkdWxlcilcbiAgKVxuXG4gIHByaXZhdGUgbm90VGhyb3R0bGVkUG9pbnQkID0gbmV3IFN1YmplY3Q8UG9pbnQ+KClcblxuICBwdWJsaWMgcG9pbnQgPSB0b1NpZ25hbChcbiAgICBtZXJnZSh0aGlzLnRocm90dGxlZFBvaW50JCwgdGhpcy5ub3RUaHJvdHRsZWRQb2ludCQpLFxuICAgIHtcbiAgICAgIGluaXRpYWxWYWx1ZTogdGhpcy5pbnRlcm5hbFBvaW50KClcbiAgICB9XG4gIClcblxuICBwdWJsaWMgcG9pbnQkID0gdGhpcy50aHJvdHRsZWRQb2ludCQ7XG5cbiAgcHVibGljIHNpemUgPSBzaWduYWwoeyB3aWR0aDogMCwgaGVpZ2h0OiAwIH0pXG4gIHB1YmxpYyBzaXplJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLnNpemUpXG5cbiAgcHVibGljIHdpZHRoID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zaXplKCkud2lkdGgpXG4gIHB1YmxpYyBoZWlnaHQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNpemUoKS5oZWlnaHQpXG5cbiAgcHVibGljIHJlbmRlck9yZGVyID0gc2lnbmFsKDApXG5cbiAgcHVibGljIHNlbGVjdGVkID0gc2lnbmFsKGZhbHNlKVxuICBwdWJsaWMgc2VsZWN0ZWQkID0gdG9PYnNlcnZhYmxlKHRoaXMuc2VsZWN0ZWQpXG5cbiAgcHVibGljIGdsb2JhbFBvaW50ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGxldCBwYXJlbnQgPSB0aGlzLnBhcmVudCgpXG4gICAgbGV0IHggPSB0aGlzLnBvaW50KCkueFxuICAgIGxldCB5ID0gdGhpcy5wb2ludCgpLnlcblxuICAgIHdoaWxlIChwYXJlbnQgIT09IG51bGwpIHtcbiAgICAgIHggKz0gcGFyZW50LnBvaW50KCkueFxuICAgICAgeSArPSBwYXJlbnQucG9pbnQoKS55XG5cbiAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnQoKVxuICAgIH1cblxuICAgIHJldHVybiB7IHgsIHkgfVxuICB9KVxuXG4gIHB1YmxpYyBwb2ludFRyYW5zZm9ybSA9IGNvbXB1dGVkKCgpID0+XG4gICAgYHRyYW5zbGF0ZSgke3RoaXMuZ2xvYmFsUG9pbnQoKS54fSwgJHt0aGlzLmdsb2JhbFBvaW50KCkueX0pYFxuICApXG5cbiAgcHVibGljIGhhbmRsZXMgPSBzaWduYWw8SGFuZGxlTW9kZWxbXT4oW10pXG5cbiAgcHVibGljIGhhbmRsZXMkID0gdG9PYnNlcnZhYmxlKHRoaXMuaGFuZGxlcylcblxuICBwdWJsaWMgZHJhZ2dhYmxlID0gc2lnbmFsKHRydWUpXG5cbiAgcHVibGljIGRyYWdIYW5kbGVzQ291bnQgPSBzaWduYWwoMClcblxuICAvLyBkaXNhYmxlZCBmb3IgY29uZmlndXJhdGlvbiBmb3Igbm93XG4gIHB1YmxpYyByZWFkb25seSBtYWduZXRSYWRpdXMgPSAyMFxuXG4gIC8vIFRPRE86IG5vdCBzdXJlIGlmIHdlIG5lZWQgdG8gc3RhdGljYWxseSBzdG9yZSBpdFxuICBwdWJsaWMgaXNDb21wb25lbnRUeXBlID1cbiAgICBDdXN0b21Ob2RlQ29tcG9uZW50LmlzUHJvdG90eXBlT2YodGhpcy5ub2RlLnR5cGUpIHx8XG4gICAgQ3VzdG9tRHluYW1pY05vZGVDb21wb25lbnQuaXNQcm90b3R5cGVPZih0aGlzLm5vZGUudHlwZSlcblxuICAvLyBEZWZhdWx0IG5vZGUgc3BlY2lmaWMgdGhpbmdcbiAgcHVibGljIHRleHQgPSB0aGlzLmNyZWF0ZVRleHRTaWduYWwoKVxuXG4gIC8vIENvbXBvbmVudCBub2RlIHNwZWNpZmljIHRoaW5nXG4gIHB1YmxpYyBjb21wb25lbnRUeXBlSW5wdXRzID0ge1xuICAgIG5vZGU6IHRoaXMubm9kZSxcbiAgfVxuXG4gIHB1YmxpYyBwYXJlbnQgPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuZW50aXRpZXNTZXJ2aWNlLm5vZGVzKCkuZmluZChuID0+IG4ubm9kZS5pZCA9PT0gdGhpcy5wYXJlbnRJZCgpKSA/PyBudWxsXG4gIClcblxuICBwdWJsaWMgY2hpbGRyZW4gPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuZW50aXRpZXNTZXJ2aWNlLm5vZGVzKCkuZmlsdGVyKG4gPT4gbi5wYXJlbnRJZCgpID09PSB0aGlzLm5vZGUuaWQpXG4gIClcblxuICBwdWJsaWMgY29sb3IgPSBzaWduYWwoTm9kZU1vZGVsLmRlZmF1bHRDb2xvcilcblxuICBwdWJsaWMgcmVzaXphYmxlID0gc2lnbmFsKGZhbHNlKVxuICBwdWJsaWMgcmVzaXppbmcgPSBzaWduYWwoZmFsc2UpXG4gIHB1YmxpYyByZXNpemVyVGVtcGxhdGUgPSBzaWduYWw8VGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsPihudWxsKVxuXG4gIHByaXZhdGUgcGFyZW50SWQgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbClcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbm9kZTogTm9kZTxUPiB8IER5bmFtaWNOb2RlPFQ+XG4gICkge1xuICAgIGlmIChpc0RlZmluZWQobm9kZS5kcmFnZ2FibGUpKSB7XG4gICAgICBpZiAoaXNEeW5hbWljTm9kZShub2RlKSkge1xuICAgICAgICB0aGlzLmRyYWdnYWJsZSA9IG5vZGUuZHJhZ2dhYmxlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRyYWdnYWJsZS5zZXQobm9kZS5kcmFnZ2FibGUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzRGVmaW5lZChub2RlLnBhcmVudElkKSkge1xuICAgICAgaWYgKGlzRHluYW1pY05vZGUobm9kZSkpIHtcbiAgICAgICAgdGhpcy5wYXJlbnRJZCA9IG5vZGUucGFyZW50SWRcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucGFyZW50SWQuc2V0KG5vZGUucGFyZW50SWQpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gJ2RlZmF1bHQtZ3JvdXAnICYmIG5vZGUuY29sb3IpIHtcbiAgICAgIGlmIChpc0R5bmFtaWNOb2RlKG5vZGUpKSB7XG4gICAgICAgIHRoaXMuY29sb3IgPSBub2RlLmNvbG9yXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbG9yLnNldChub2RlLmNvbG9yKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChub2RlLnR5cGUgPT09ICdkZWZhdWx0LWdyb3VwJyAmJiBub2RlLnJlc2l6YWJsZSkge1xuICAgICAgaWYgKGlzRHluYW1pY05vZGUobm9kZSkpIHtcbiAgICAgICAgdGhpcy5yZXNpemFibGUgPSBub2RlLnJlc2l6YWJsZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZXNpemFibGUuc2V0KG5vZGUucmVzaXphYmxlKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRQb2ludChwb2ludDogUG9pbnQsIHRocm90dGxlOiBib29sZWFuKSB7XG4gICAgaWYgKHRocm90dGxlKSB7XG4gICAgICB0aGlzLmludGVybmFsUG9pbnQuc2V0KHBvaW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ub3RUaHJvdHRsZWRQb2ludCQubmV4dChwb2ludClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVE9ETyBmaW5kIHRoZSB3YXkgdG8gaW1wbGVtZW50IHRoaXMgYmV0dGVyXG4gICAqL1xuICBwdWJsaWMgbGlua0RlZmF1bHROb2RlU2l6ZVdpdGhNb2RlbFNpemUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMubm9kZVxuXG4gICAgc3dpdGNoIChub2RlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2RlZmF1bHQnOlxuICAgICAgY2FzZSAnZGVmYXVsdC1ncm91cCc6XG4gICAgICBjYXNlICd0ZW1wbGF0ZS1ncm91cCc6IHtcbiAgICAgICAgaWYgKGlzRHluYW1pY05vZGUobm9kZSkpIHtcbiAgICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zaXplLnNldCh7XG4gICAgICAgICAgICAgIHdpZHRoOiBub2RlLndpZHRoPy4oKSA/PyBOb2RlTW9kZWwuZGVmYXVsdFdpZHRoLFxuICAgICAgICAgICAgICBoZWlnaHQ6IG5vZGUuaGVpZ2h0Py4oKSA/PyBOb2RlTW9kZWwuZGVmYXVsdEhlaWdodCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSwgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2l6ZS5zZXQoe1xuICAgICAgICAgICAgd2lkdGg6IG5vZGUud2lkdGggPz8gTm9kZU1vZGVsLmRlZmF1bHRXaWR0aCxcbiAgICAgICAgICAgIGhlaWdodDogbm9kZS5oZWlnaHQgPz8gTm9kZU1vZGVsLmRlZmF1bHRIZWlnaHRcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gJ2h0bWwtdGVtcGxhdGUnIHx8IHRoaXMuaXNDb21wb25lbnRUeXBlKSB7XG4gICAgICBpZiAoaXNEeW5hbWljTm9kZShub2RlKSkge1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgIGlmIChub2RlLndpZHRoICYmIG5vZGUuaGVpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLnNpemUuc2V0KHtcbiAgICAgICAgICAgICAgd2lkdGg6IG5vZGUud2lkdGgoKSxcbiAgICAgICAgICAgICAgaGVpZ2h0OiBub2RlLmhlaWdodCgpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0sIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChub2RlLndpZHRoICYmIG5vZGUuaGVpZ2h0KSB7XG4gICAgICAgICAgdGhpcy5zaXplLnNldCh7IHdpZHRoOiBub2RlLndpZHRoLCBoZWlnaHQ6IG5vZGUuaGVpZ2h0IH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVRleHRTaWduYWwoKTogU2lnbmFsPHN0cmluZz4ge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLm5vZGVcblxuICAgIGlmIChub2RlLnR5cGUgPT09ICdkZWZhdWx0Jykge1xuICAgICAgaWYgKGlzRHluYW1pY05vZGUobm9kZSkpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUudGV4dCA/PyBzaWduYWwoJycpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gc2lnbmFsKG5vZGUudGV4dCA/PyAnJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc2lnbmFsKCcnKVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJbnRlcm5hbFBvaW50U2lnbmFsKCkge1xuICAgIHJldHVybiBpc0R5bmFtaWNOb2RlKHRoaXMubm9kZSlcbiAgICAgID8gdGhpcy5ub2RlLnBvaW50XG4gICAgICA6IHNpZ25hbCh7IHg6IHRoaXMubm9kZS5wb2ludC54LCB5OiB0aGlzLm5vZGUucG9pbnQueSB9KVxuICB9XG59XG4iXX0=
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9tb2RlbHMvbm9kZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBR0wsc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUNyQixhQUFhLEdBQ2QsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUdwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFeEUsZ0NBQWdDO0FBQ2hDLE1BQU0sT0FBTyxTQUFTO2FBQ0wsaUJBQVksR0FBRyxHQUFHLEFBQU4sQ0FBTzthQUNuQixrQkFBYSxHQUFHLEVBQUUsQUFBTCxDQUFNO2FBQ25CLGlCQUFZLEdBQUcsU0FBUyxBQUFaLENBQWE7SUErRXhDLFlBQW1CLElBQThCO1FBQTlCLFNBQUksR0FBSixJQUFJLENBQTBCO1FBN0V6Qyx3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNsRCxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRTlDLGtCQUFhLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFFakQsb0JBQWUsR0FBRyxZQUFZLENBQUMs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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmFsLCBUZW1wbGF0ZVJlZiwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIER5bmFtaWNOb2RlLFxuICBOb2RlLFxuICBpc0NvbXBvbmVudER5bmFtaWNOb2RlLFxuICBpc0NvbXBvbmVudFN0YXRpY05vZGUsXG4gIGlzRHluYW1pY05vZGUsXG59IGZyb20gJy4uL2ludGVyZmFjZXMvbm9kZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgaXNEZWZpbmVkIH0gZnJvbSAnLi4vdXRpbHMvaXMtZGVmaW5lZCc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgSGFuZGxlTW9kZWwgfSBmcm9tICcuL2hhbmRsZS5tb2RlbCc7XG5pbXBvcnQgeyBGbG93RW50aXR5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9mbG93LWVudGl0eS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmxvd1NldHRpbmdzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Zsb3ctc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBhbmltYXRpb25GcmFtZVNjaGVkdWxlciwgbWVyZ2UsIG9ic2VydmVPbiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvaW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBGbG93RW50aXRpZXNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZmxvdy1lbnRpdGllcy5zZXJ2aWNlJztcblxuLy8gVE9ETyBiYWQgbmFtaW5nIGFyb3VuZCBwb2ludHNcbmV4cG9ydCBjbGFzcyBOb2RlTW9kZWw8VCA9IHVua25vd24+IGltcGxlbWVudHMgRmxvd0VudGl0eSB7XG4gIHByaXZhdGUgc3RhdGljIGRlZmF1bHRXaWR0aCA9IDEwMDtcbiAgcHJpdmF0ZSBzdGF0aWMgZGVmYXVsdEhlaWdodCA9IDUwO1xuICBwcml2YXRlIHN0YXRpYyBkZWZhdWx0Q29sb3IgPSAnIzFiMjYyYyc7XG5cbiAgcHJpdmF0ZSBmbG93U2V0dGluZ3NTZXJ2aWNlID0gaW5qZWN0KEZsb3dTZXR0aW5nc1NlcnZpY2UpO1xuICBwcml2YXRlIGVudGl0aWVzU2VydmljZSA9IGluamVjdChGbG93RW50aXRpZXNTZXJ2aWNlKTtcblxuICBwcml2YXRlIGludGVybmFsUG9pbnQgPSB0aGlzLmNyZWF0ZUludGVybmFsUG9pbnRTaWduYWwoKTtcblxuICBwcml2YXRlIHRocm90dGxlZFBvaW50JCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmludGVybmFsUG9pbnQpLnBpcGUob2JzZXJ2ZU9uKGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKSk7XG5cbiAgcHJpdmF0ZSBub3RUaHJvdHRsZWRQb2ludCQgPSBuZXcgU3ViamVjdDxQb2ludD4oKTtcblxuICBwdWJsaWMgcG9pbnQgPSB0b1NpZ25hbChtZXJnZSh0aGlzLnRocm90dGxlZFBvaW50JCwgdGhpcy5ub3RUaHJvdHRsZWRQb2ludCQpLCB7XG4gICAgaW5pdGlhbFZhbHVlOiB0aGlzLmludGVybmFsUG9pbnQoKSxcbiAgfSk7XG5cbiAgcHVibGljIHBvaW50JCA9IHRoaXMudGhyb3R0bGVkUG9pbnQkO1xuXG4gIHB1YmxpYyBzaXplID0gc2lnbmFsKHsgd2lkdGg6IDAsIGhlaWdodDogMCB9KTtcbiAgcHVibGljIHNpemUkID0gdG9PYnNlcnZhYmxlKHRoaXMuc2l6ZSk7XG5cbiAgcHVibGljIHdpZHRoID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zaXplKCkud2lkdGgpO1xuICBwdWJsaWMgaGVpZ2h0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zaXplKCkuaGVpZ2h0KTtcblxuICBwdWJsaWMgcmVuZGVyT3JkZXIgPSBzaWduYWwoMCk7XG5cbiAgcHVibGljIHNlbGVjdGVkID0gc2lnbmFsKGZhbHNlKTtcbiAgcHVibGljIHNlbGVjdGVkJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLnNlbGVjdGVkKTtcblxuICBwdWJsaWMgZ2xvYmFsUG9pbnQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgbGV0IHBhcmVudCA9IHRoaXMucGFyZW50KCk7XG4gICAgbGV0IHggPSB0aGlzLnBvaW50KCkueDtcbiAgICBsZXQgeSA9IHRoaXMucG9pbnQoKS55O1xuXG4gICAgd2hpbGUgKHBhcmVudCAhPT0gbnVsbCkge1xuICAgICAgeCArPSBwYXJlbnQucG9pbnQoKS54O1xuICAgICAgeSArPSBwYXJlbnQucG9pbnQoKS55O1xuXG4gICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgeCwgeSB9O1xuICB9KTtcblxuICBwdWJsaWMgcG9pbnRUcmFuc2Zvcm0gPSBjb21wdXRlZCgoKSA9PiBgdHJhbnNsYXRlKCR7dGhpcy5nbG9iYWxQb2ludCgpLnh9LCAke3RoaXMuZ2xvYmFsUG9pbnQoKS55fSlgKTtcblxuICBwdWJsaWMgaGFuZGxlcyA9IHNpZ25hbDxIYW5kbGVNb2RlbFtdPihbXSk7XG5cbiAgcHVibGljIGhhbmRsZXMkID0gdG9PYnNlcnZhYmxlKHRoaXMuaGFuZGxlcyk7XG5cbiAgcHVibGljIGRyYWdnYWJsZSA9IHNpZ25hbCh0cnVlKTtcblxuICBwdWJsaWMgZHJhZ0hhbmRsZXNDb3VudCA9IHNpZ25hbCgwKTtcblxuICAvLyBkaXNhYmxlZCBmb3IgY29uZmlndXJhdGlvbiBmb3Igbm93XG4gIHB1YmxpYyByZWFkb25seSBtYWduZXRSYWRpdXMgPSAyMDtcblxuICAvLyBUT0RPOiBub3Qgc3VyZSBpZiB3ZSBuZWVkIHRvIHN0YXRpY2FsbHkgc3RvcmUgaXRcbiAgcHVibGljIGlzQ29tcG9uZW50VHlwZSA9IGlzQ29tcG9uZW50U3RhdGljTm9kZSh0aGlzLm5vZGUgYXMgTm9kZSkgfHwgaXNDb21wb25lbnREeW5hbWljTm9kZSh0aGlzLm5vZGUgYXMgRHluYW1pY05vZGUpO1xuXG4gIC8vIERlZmF1bHQgbm9kZSBzcGVjaWZpYyB0aGluZ1xuICBwdWJsaWMgdGV4dCA9IHRoaXMuY3JlYXRlVGV4dFNpZ25hbCgpO1xuXG4gIC8vIENvbXBvbmVudCBub2RlIHNwZWNpZmljIHRoaW5nXG4gIHB1YmxpYyBjb21wb25lbnRUeXBlSW5wdXRzID0ge1xuICAgIG5vZGU6IHRoaXMubm9kZSxcbiAgfTtcblxuICBwdWJsaWMgcGFyZW50ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5lbnRpdGllc1NlcnZpY2Uubm9kZXMoKS5maW5kKChuKSA9PiBuLm5vZGUuaWQgPT09IHRoaXMucGFyZW50SWQoKSkgPz8gbnVsbCk7XG5cbiAgcHVibGljIGNoaWxkcmVuID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5lbnRpdGllc1NlcnZpY2Uubm9kZXMoKS5maWx0ZXIoKG4pID0+IG4ucGFyZW50SWQoKSA9PT0gdGhpcy5ub2RlLmlkKSk7XG5cbiAgcHVibGljIGNvbG9yID0gc2lnbmFsKE5vZGVNb2RlbC5kZWZhdWx0Q29sb3IpO1xuXG4gIHB1YmxpYyByZXNpemFibGUgPSBzaWduYWwoZmFsc2UpO1xuICBwdWJsaWMgcmVzaXppbmcgPSBzaWduYWwoZmFsc2UpO1xuICBwdWJsaWMgcmVzaXplclRlbXBsYXRlID0gc2lnbmFsPFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbD4obnVsbCk7XG5cbiAgcHJpdmF0ZSBwYXJlbnRJZCA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbm9kZTogTm9kZTxUPiB8IER5bmFtaWNOb2RlPFQ+KSB7XG4gICAgaWYgKGlzRGVmaW5lZChub2RlLmRyYWdnYWJsZSkpIHtcbiAgICAgIGlmIChpc0R5bmFtaWNOb2RlKG5vZGUpKSB7XG4gICAgICAgIHRoaXMuZHJhZ2dhYmxlID0gbm9kZS5kcmFnZ2FibGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRyYWdnYWJsZS5zZXQobm9kZS5kcmFnZ2FibGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc0RlZmluZWQobm9kZS5wYXJlbnRJZCkpIHtcbiAgICAgIGlmIChpc0R5bmFtaWNOb2RlKG5vZGUpKSB7XG4gICAgICAgIHRoaXMucGFyZW50SWQgPSBub2RlLnBhcmVudElkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wYXJlbnRJZC5zZXQobm9kZS5wYXJlbnRJZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gJ2RlZmF1bHQtZ3JvdXAnICYmIG5vZGUuY29sb3IpIHtcbiAgICAgIGlmIChpc0R5bmFtaWNOb2RlKG5vZGUpKSB7XG4gICAgICAgIHRoaXMuY29sb3IgPSBub2RlLmNvbG9yO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jb2xvci5zZXQobm9kZS5jb2xvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gJ2RlZmF1bHQtZ3JvdXAnICYmIG5vZGUucmVzaXphYmxlKSB7XG4gICAgICBpZiAoaXNEeW5hbWljTm9kZShub2RlKSkge1xuICAgICAgICB0aGlzLnJlc2l6YWJsZSA9IG5vZGUucmVzaXphYmxlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZXNpemFibGUuc2V0KG5vZGUucmVzaXphYmxlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0UG9pbnQocG9pbnQ6IFBvaW50LCB0aHJvdHRsZTogYm9vbGVhbikge1xuICAgIGlmICh0aHJvdHRsZSkge1xuICAgICAgdGhpcy5pbnRlcm5hbFBvaW50LnNldChwb2ludCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubm90VGhyb3R0bGVkUG9pbnQkLm5leHQocG9pbnQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUT0RPIGZpbmQgdGhlIHdheSB0byBpbXBsZW1lbnQgdGhpcyBiZXR0ZXJcbiAgICovXG4gIHB1YmxpYyBsaW5rRGVmYXVsdE5vZGVTaXplV2l0aE1vZGVsU2l6ZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5ub2RlO1xuXG4gICAgc3dpdGNoIChub2RlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2RlZmF1bHQnOlxuICAgICAgY2FzZSAnZGVmYXVsdC1ncm91cCc6XG4gICAgICBjYXNlICd0ZW1wbGF0ZS1ncm91cCc6IHtcbiAgICAgICAgaWYgKGlzRHluYW1pY05vZGUobm9kZSkpIHtcbiAgICAgICAgICBlZmZlY3QoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc2l6ZS5zZXQoe1xuICAgICAgICAgICAgICAgIHdpZHRoOiBub2RlLndpZHRoPy4oKSA/PyBOb2RlTW9kZWwuZGVmYXVsdFdpZHRoLFxuICAgICAgICAgICAgICAgIGhlaWdodDogbm9kZS5oZWlnaHQ/LigpID8/IE5vZGVNb2RlbC5kZWZhdWx0SGVpZ2h0LFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNpemUuc2V0KHtcbiAgICAgICAgICAgIHdpZHRoOiBub2RlLndpZHRoID8/IE5vZGVNb2RlbC5kZWZhdWx0V2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQ6IG5vZGUuaGVpZ2h0ID8/IE5vZGVNb2RlbC5kZWZhdWx0SGVpZ2h0LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gJ2h0bWwtdGVtcGxhdGUnIHx8IHRoaXMuaXNDb21wb25lbnRUeXBlKSB7XG4gICAgICBpZiAoaXNEeW5hbWljTm9kZShub2RlKSkge1xuICAgICAgICBlZmZlY3QoXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKG5vZGUud2lkdGggJiYgbm9kZS5oZWlnaHQpIHtcbiAgICAgICAgICAgICAgdGhpcy5zaXplLnNldCh7XG4gICAgICAgICAgICAgICAgd2lkdGg6IG5vZGUud2lkdGgoKSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IG5vZGUuaGVpZ2h0KCksXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKG5vZGUud2lkdGggJiYgbm9kZS5oZWlnaHQpIHtcbiAgICAgICAgICB0aGlzLnNpemUuc2V0KHsgd2lkdGg6IG5vZGUud2lkdGgsIGhlaWdodDogbm9kZS5oZWlnaHQgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVRleHRTaWduYWwoKTogU2lnbmFsPHN0cmluZz4ge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLm5vZGU7XG5cbiAgICBpZiAobm9kZS50eXBlID09PSAnZGVmYXVsdCcpIHtcbiAgICAgIGlmIChpc0R5bmFtaWNOb2RlKG5vZGUpKSB7XG4gICAgICAgIHJldHVybiBub2RlLnRleHQgPz8gc2lnbmFsKCcnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBzaWduYWwobm9kZS50ZXh0ID8/ICcnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc2lnbmFsKCcnKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlSW50ZXJuYWxQb2ludFNpZ25hbCgpIHtcbiAgICByZXR1cm4gaXNEeW5hbWljTm9kZSh0aGlzLm5vZGUpID8gdGhpcy5ub2RlLnBvaW50IDogc2lnbmFsKHsgeDogdGhpcy5ub2RlLnBvaW50LngsIHk6IHRoaXMubm9kZS5wb2ludC55IH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { computed, signal } from
|
|
1
|
+
import { computed, signal } from '@angular/core';
|
|
2
2
|
export class ToolbarModel {
|
|
3
3
|
constructor(node) {
|
|
4
4
|
this.node = node;
|
|
@@ -10,22 +10,22 @@ export class ToolbarModel {
|
|
|
10
10
|
case 'top':
|
|
11
11
|
return {
|
|
12
12
|
x: this.node.size().width / 2 - this.size().width / 2,
|
|
13
|
-
y: -this.size().height - this.offset()
|
|
13
|
+
y: -this.size().height - this.offset(),
|
|
14
14
|
};
|
|
15
15
|
case 'bottom':
|
|
16
16
|
return {
|
|
17
17
|
x: this.node.size().width / 2 - this.size().width / 2,
|
|
18
|
-
y: this.node.size().height + this.offset()
|
|
18
|
+
y: this.node.size().height + this.offset(),
|
|
19
19
|
};
|
|
20
20
|
case 'left':
|
|
21
21
|
return {
|
|
22
22
|
x: -this.size().width - this.offset(),
|
|
23
|
-
y: this.node.size().height / 2 - this.size().height / 2
|
|
23
|
+
y: this.node.size().height / 2 - this.size().height / 2,
|
|
24
24
|
};
|
|
25
25
|
case 'right':
|
|
26
26
|
return {
|
|
27
27
|
x: this.node.size().width + this.offset(),
|
|
28
|
-
y: this.node.size().height / 2 - this.size().height / 2
|
|
28
|
+
y: this.node.size().height / 2 - this.size().height / 2,
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
31
|
});
|
|
@@ -33,4 +33,4 @@ export class ToolbarModel {
|
|
|
33
33
|
this.size = signal({ width: 0, height: 0 });
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9tb2RlbHMvdG9vbGJhci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUk5RCxNQUFNLE9BQU8sWUFBWTtJQW1DdkIsWUFBbUIsSUFBZTtRQUFmLFNBQUksR0FBSixJQUFJLENBQVc7UUFsQzNCLGFBQVEsR0FBRyxNQUFNLENBQVcsS0FBSyxDQUFDLENBQUM7UUFDbkMsYUFBUSxHQUFHLE1BQU0sQ0FBOEIsSUFBSSxDQUFDLENBQUM7UUFFckQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVwQixVQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUMzQixRQUFRLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO2dCQUN4QixLQUFLLEtBQUs7b0JBQ1IsT0FBTzt3QkFDTCxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQzt3QkFDckQsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFO3FCQUN2QyxDQUFDO2dCQUNKLEtBQUssUUFBUTtvQkFDWCxPQUFPO3dCQUNMLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDO3dCQUNyRCxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRTtxQkFDM0MsQ0FBQztnQkFDSixLQUFLLE1BQU07b0JBQ1QsT0FBTzt3QkFDTCxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUU7d0JBQ3JDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDO3FCQUN4RCxDQUFDO2dCQUNKLEtBQUssT0FBTztvQkFDVixPQUFPO3dCQUNMLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFO3dCQUN6QyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQztxQkFDeEQsQ0FBQztZQUNOLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVJLGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTlFLFNBQUksR0FBRyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRVQsQ0FBQztDQUN2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBzaWduYWwsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQb3NpdGlvbiB9IGZyb20gJy4uL3R5cGVzL3Bvc2l0aW9uLnR5cGUnO1xuaW1wb3J0IHsgTm9kZU1vZGVsIH0gZnJvbSAnLi9ub2RlLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIFRvb2xiYXJNb2RlbCB7XG4gIHB1YmxpYyBwb3NpdGlvbiA9IHNpZ25hbDxQb3NpdGlvbj4oJ3RvcCcpO1xuICBwdWJsaWMgdGVtcGxhdGUgPSBzaWduYWw8VGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsPihudWxsKTtcblxuICBwdWJsaWMgb2Zmc2V0ID0gc2lnbmFsKDEwKTtcblxuICBwdWJsaWMgcG9pbnQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgc3dpdGNoICh0aGlzLnBvc2l0aW9uKCkpIHtcbiAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgeDogdGhpcy5ub2RlLnNpemUoKS53aWR0aCAvIDIgLSB0aGlzLnNpemUoKS53aWR0aCAvIDIsXG4gICAgICAgICAgeTogLXRoaXMuc2l6ZSgpLmhlaWdodCAtIHRoaXMub2Zmc2V0KCksXG4gICAgICAgIH07XG4gICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHg6IHRoaXMubm9kZS5zaXplKCkud2lkdGggLyAyIC0gdGhpcy5zaXplKCkud2lkdGggLyAyLFxuICAgICAgICAgIHk6IHRoaXMubm9kZS5zaXplKCkuaGVpZ2h0ICsgdGhpcy5vZmZzZXQoKSxcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHg6IC10aGlzLnNpemUoKS53aWR0aCAtIHRoaXMub2Zmc2V0KCksXG4gICAgICAgICAgeTogdGhpcy5ub2RlLnNpemUoKS5oZWlnaHQgLyAyIC0gdGhpcy5zaXplKCkuaGVpZ2h0IC8gMixcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB4OiB0aGlzLm5vZGUuc2l6ZSgpLndpZHRoICsgdGhpcy5vZmZzZXQoKSxcbiAgICAgICAgICB5OiB0aGlzLm5vZGUuc2l6ZSgpLmhlaWdodCAvIDIgLSB0aGlzLnNpemUoKS5oZWlnaHQgLyAyLFxuICAgICAgICB9O1xuICAgIH1cbiAgfSk7XG5cbiAgcHVibGljIHRyYW5zZm9ybSA9IGNvbXB1dGVkKCgpID0+IGB0cmFuc2xhdGUoJHt0aGlzLnBvaW50KCkueH0sICR7dGhpcy5wb2ludCgpLnl9KWApO1xuXG4gIHB1YmxpYyBzaXplID0gc2lnbmFsKHsgd2lkdGg6IDAsIGhlaWdodDogMCB9KTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbm9kZTogTm9kZU1vZGVsKSB7fVxufVxuIl19
|
package/esm2022/lib/vflow/public-components/custom-dynamic-node/custom-dynamic-node.component.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Directive, input } from
|
|
2
|
-
import { CustomNodeBaseComponent } from
|
|
1
|
+
import { Directive, input } from '@angular/core';
|
|
2
|
+
import { CustomNodeBaseComponent } from '../../components/custom-node-base/custom-node-base.component';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class CustomDynamicNodeComponent extends CustomNodeBaseComponent {
|
|
5
5
|
constructor() {
|
|
@@ -22,4 +22,4 @@ export class CustomDynamicNodeComponent extends CustomNodeBaseComponent {
|
|
|
22
22
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomDynamicNodeComponent, decorators: [{
|
|
23
23
|
type: Directive
|
|
24
24
|
}] });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWR5bmFtaWMtbm9kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvcHVibGljLWNvbXBvbmVudHMvY3VzdG9tLWR5bmFtaWMtbm9kZS9jdXN0b20tZHluYW1pYy1ub2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7QUFHdkcsTUFBTSxPQUFnQiwwQkFBb0MsU0FBUSx1QkFBMEI7SUFENUY7O1FBRUU7O1dBRUc7UUFDSSxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBMkIsQ0FBQztLQVd6RDtJQVRpQixRQUFRO1FBQ3RCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFFOUIsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ25CLENBQUM7UUFFRCxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkIsQ0FBQzsrR0FkbUIsMEJBQTBCO21HQUExQiwwQkFBMEI7OzRGQUExQiwwQkFBMEI7a0JBRC9DLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGlucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudER5bmFtaWNOb2RlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9ub2RlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDdXN0b21Ob2RlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvY3VzdG9tLW5vZGUtYmFzZS9jdXN0b20tbm9kZS1iYXNlLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEN1c3RvbUR5bmFtaWNOb2RlQ29tcG9uZW50PFQgPSBhbnk+IGV4dGVuZHMgQ3VzdG9tTm9kZUJhc2VDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQge1xuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIG5vZGUgYm91bmQgdG8gdGhpcyBjb21wb25lbnRcbiAgICovXG4gIHB1YmxpYyBub2RlID0gaW5wdXQucmVxdWlyZWQ8Q29tcG9uZW50RHluYW1pY05vZGU8VD4+KCk7XG5cbiAgcHVibGljIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLm5vZGUoKS5kYXRhO1xuXG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIHRoaXMuZGF0YSA9IGRhdGE7XG4gICAgfVxuXG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgfVxufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Directive, input } from
|
|
2
|
-
import { CustomNodeBaseComponent } from
|
|
1
|
+
import { Directive, input } from '@angular/core';
|
|
2
|
+
import { CustomNodeBaseComponent } from '../../components/custom-node-base/custom-node-base.component';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class CustomNodeComponent extends CustomNodeBaseComponent {
|
|
5
5
|
constructor() {
|
|
@@ -21,4 +21,4 @@ export class CustomNodeComponent extends CustomNodeBaseComponent {
|
|
|
21
21
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomNodeComponent, decorators: [{
|
|
22
22
|
type: Directive
|
|
23
23
|
}] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLW5vZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L3B1YmxpYy1jb21wb25lbnRzL2N1c3RvbS1ub2RlL2N1c3RvbS1ub2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7QUFHdkcsTUFBTSxPQUFnQixtQkFBNkIsU0FBUSx1QkFBMEI7SUFEckY7O1FBRUU7O1dBRUc7UUFDSSxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBb0IsQ0FBQztLQVNsRDtJQVBpQixRQUFRO1FBQ3RCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBRUQsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25CLENBQUM7K0dBWm1CLG1CQUFtQjttR0FBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUR4QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnROb2RlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9ub2RlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDdXN0b21Ob2RlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvY3VzdG9tLW5vZGUtYmFzZS9jdXN0b20tbm9kZS1iYXNlLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEN1c3RvbU5vZGVDb21wb25lbnQ8VCA9IGFueT4gZXh0ZW5kcyBDdXN0b21Ob2RlQmFzZUNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gbm9kZSBib3VuZCB0byB0aGlzIGNvbXBvbmVudFxuICAgKi9cbiAgcHVibGljIG5vZGUgPSBpbnB1dC5yZXF1aXJlZDxDb21wb25lbnROb2RlPFQ+PigpO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ub2RlKCkuZGF0YSkge1xuICAgICAgdGhpcy5kYXRhLnNldCh0aGlzLm5vZGUoKS5kYXRhKTtcbiAgICB9XG5cbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICB9XG59XG4iXX0=
|
|
@@ -2,7 +2,7 @@ import { __decorate } from "tslib";
|
|
|
2
2
|
import { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, Injector, inject, input, } from '@angular/core';
|
|
3
3
|
import { HandleService } from '../../services/handle.service';
|
|
4
4
|
import { HandleModel } from '../../models/handle.model';
|
|
5
|
-
import { InjectionContext
|
|
5
|
+
import { InjectionContext } from '../../decorators/run-in-injection-context.decorator';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export class HandleComponent {
|
|
8
8
|
constructor() {
|
|
@@ -49,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
49
49
|
type: Component,
|
|
50
50
|
args: [{ standalone: true, selector: 'handle', changeDetection: ChangeDetectionStrategy.OnPush, template: "" }]
|
|
51
51
|
}], propDecorators: { ngOnInit: [] } });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9wdWJsaWMtY29tcG9uZW50cy9oYW5kbGUvaGFuZGxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9wdWJsaWMtY29tcG9uZW50cy9oYW5kbGUvaGFuZGxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFFBQVEsRUFHUixNQUFNLEVBQ04sS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFnQixNQUFNLHFEQUFxRCxDQUFDOztBQVFyRyxNQUFNLE9BQU8sZUFBZTtJQU41QjtRQU9TLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0Isa0JBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEMsWUFBTyxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQ3BFLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFeEM7O1dBRUc7UUFDSSxhQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBWSxDQUFDO1FBRTdDOztXQUVHO1FBQ0ksU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXVCLENBQUM7UUFFcEQ7O1dBRUc7UUFDSSxPQUFFLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFFckIsYUFBUSxHQUFHLEtBQUssRUFBb0IsQ0FBQztLQTJCN0M7SUF0QlEsUUFBUTtRQUNiLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFdkMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxXQUFXLENBQzFCO2dCQUNFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUN6QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDakIsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7Z0JBQ2IsZUFBZSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYztnQkFDNUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7YUFDMUIsRUFDRCxJQUFJLENBQ0wsQ0FBQztZQUVGLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU1QyxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7WUFFdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDaEYsQ0FBQztJQUNILENBQUM7K0dBL0NVLGVBQWU7bUdBQWYsZUFBZSxrakJDdEI1QixFQUFBOztBRGdEUztJQUROLGdCQUFnQjsrQ0FzQmhCOzRGQS9DVSxlQUFlO2tCQU4zQixTQUFTO2lDQUNJLElBQUksWUFDTixRQUFRLG1CQUVELHVCQUF1QixDQUFDLE1BQU07OEJBNEJ4QyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0b3IsXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIGluamVjdCxcbiAgaW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUG9zaXRpb24gfSBmcm9tICcuLi8uLi90eXBlcy9wb3NpdGlvbi50eXBlJztcbmltcG9ydCB7IEhhbmRsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9oYW5kbGUuc2VydmljZSc7XG5pbXBvcnQgeyBIYW5kbGVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9oYW5kbGUubW9kZWwnO1xuaW1wb3J0IHsgSW5qZWN0aW9uQ29udGV4dCwgV2l0aEluamVjdG9yIH0gZnJvbSAnLi4vLi4vZGVjb3JhdG9ycy9ydW4taW4taW5qZWN0aW9uLWNvbnRleHQuZGVjb3JhdG9yJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnaGFuZGxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hhbmRsZS5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBIYW5kbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIFdpdGhJbmplY3RvciB7XG4gIHB1YmxpYyBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByaXZhdGUgaGFuZGxlU2VydmljZSA9IGluamVjdChIYW5kbGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlbGVtZW50ID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50O1xuICBwcml2YXRlIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgLyoqXG4gICAqIEF0IHdoYXQgc2lkZSBvZiBub2RlIHRoaXMgY29tcG9uZW50IHNob3VsZCBiZSBwbGFjZWRcbiAgICovXG4gIHB1YmxpYyBwb3NpdGlvbiA9IGlucHV0LnJlcXVpcmVkPFBvc2l0aW9uPigpO1xuXG4gIC8qKlxuICAgKiBTb3VyY2Ugb3IgdGFyZ2V0XG4gICAqL1xuICBwdWJsaWMgdHlwZSA9IGlucHV0LnJlcXVpcmVkPCdzb3VyY2UnIHwgJ3RhcmdldCc+KCk7XG5cbiAgLyoqXG4gICAqIFNob3VsZCBiZSB1c2VkIGlmIG5vZGUgaGFzIG1vcmUgdGhhbiBvbmUgc291cmNlL3RhcmdldFxuICAgKi9cbiAgcHVibGljIGlkID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIHB1YmxpYyB0ZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4+KCk7XG5cbiAgcHVibGljIG1vZGVsITogSGFuZGxlTW9kZWw7XG5cbiAgQEluamVjdGlvbkNvbnRleHRcbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmhhbmRsZVNlcnZpY2Uubm9kZSgpO1xuXG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIHRoaXMubW9kZWwgPSBuZXcgSGFuZGxlTW9kZWwoXG4gICAgICAgIHtcbiAgICAgICAgICBwb3NpdGlvbjogdGhpcy5wb3NpdGlvbigpLFxuICAgICAgICAgIHR5cGU6IHRoaXMudHlwZSgpLFxuICAgICAgICAgIGlkOiB0aGlzLmlkKCksXG4gICAgICAgICAgcGFyZW50UmVmZXJlbmNlOiB0aGlzLmVsZW1lbnQucGFyZW50RWxlbWVudCEsXG4gICAgICAgICAgdGVtcGxhdGU6IHRoaXMudGVtcGxhdGUoKSxcbiAgICAgICAgfSxcbiAgICAgICAgbm9kZSxcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuaGFuZGxlU2VydmljZS5jcmVhdGVIYW5kbGUodGhpcy5tb2RlbCk7XG5cbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLm1vZGVsLnVwZGF0ZVBhcmVudCgpKTtcblxuICAgICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB0aGlzLmhhbmRsZVNlcnZpY2UuZGVzdHJveUhhbmRsZSh0aGlzLm1vZGVsKSk7XG4gICAgfVxuICB9XG59XG4iLCIiXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, computed, inject, Injector, signal, input, viewChild, } from '@angular/core';
|
|
1
|
+
import { Component, computed, inject, Injector, signal, input, viewChild, ChangeDetectionStrategy, } from '@angular/core';
|
|
2
2
|
import { FlowEntitiesService } from '../../services/flow-entities.service';
|
|
3
3
|
import { MinimapModel } from '../../models/minimap.model';
|
|
4
4
|
import { FlowSettingsService } from '../../services/flow-settings.service';
|
|
@@ -51,26 +51,18 @@ export class MiniMapComponent {
|
|
|
51
51
|
return { x: this.minimapOffset, y: this.minimapOffset };
|
|
52
52
|
case 'top-right':
|
|
53
53
|
return {
|
|
54
|
-
x: this.flowSettingsService.computedFlowWidth() -
|
|
55
|
-
this.minimapWidth() -
|
|
56
|
-
this.minimapOffset,
|
|
54
|
+
x: this.flowSettingsService.computedFlowWidth() - this.minimapWidth() - this.minimapOffset,
|
|
57
55
|
y: this.minimapOffset,
|
|
58
56
|
};
|
|
59
57
|
case 'bottom-left':
|
|
60
58
|
return {
|
|
61
59
|
x: this.minimapOffset,
|
|
62
|
-
y: this.flowSettingsService.computedFlowHeight() -
|
|
63
|
-
this.minimapHeight() -
|
|
64
|
-
this.minimapOffset,
|
|
60
|
+
y: this.flowSettingsService.computedFlowHeight() - this.minimapHeight() - this.minimapOffset,
|
|
65
61
|
};
|
|
66
62
|
case 'bottom-right':
|
|
67
63
|
return {
|
|
68
|
-
x: this.flowSettingsService.computedFlowWidth() -
|
|
69
|
-
|
|
70
|
-
this.minimapOffset,
|
|
71
|
-
y: this.flowSettingsService.computedFlowHeight() -
|
|
72
|
-
this.minimapHeight() -
|
|
73
|
-
this.minimapOffset,
|
|
64
|
+
x: this.flowSettingsService.computedFlowWidth() - this.minimapWidth() - this.minimapOffset,
|
|
65
|
+
y: this.flowSettingsService.computedFlowHeight() - this.minimapHeight() - this.minimapOffset,
|
|
74
66
|
};
|
|
75
67
|
}
|
|
76
68
|
});
|
|
@@ -107,10 +99,10 @@ export class MiniMapComponent {
|
|
|
107
99
|
return node;
|
|
108
100
|
}
|
|
109
101
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MiniMapComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
110
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: MiniMapComponent, isStandalone: true, selector: "mini-map", inputs: { maskColor: { classPropertyName: "maskColor", publicName: "maskColor", isSignal: true, isRequired: false, transformFunction: null }, strokeColor: { classPropertyName: "strokeColor", publicName: "strokeColor", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, scaleOnHover: { classPropertyName: "scaleOnHover", publicName: "scaleOnHover", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "minimap", first: true, predicate: ["minimap"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template #minimap>\n <svg:rect\n [attr.x]=\"minimapPoint().x\"\n [attr.y]=\"minimapPoint().y\"\n [attr.width]=\"minimapWidth()\"\n [attr.height]=\"minimapHeight()\"\n [attr.stroke]=\"strokeColor()\"
|
|
102
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: MiniMapComponent, isStandalone: true, selector: "mini-map", inputs: { maskColor: { classPropertyName: "maskColor", publicName: "maskColor", isSignal: true, isRequired: false, transformFunction: null }, strokeColor: { classPropertyName: "strokeColor", publicName: "strokeColor", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, scaleOnHover: { classPropertyName: "scaleOnHover", publicName: "scaleOnHover", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "minimap", first: true, predicate: ["minimap"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template #minimap>\n <svg:rect\n fill=\"none\"\n [attr.x]=\"minimapPoint().x\"\n [attr.y]=\"minimapPoint().y\"\n [attr.width]=\"minimapWidth()\"\n [attr.height]=\"minimapHeight()\"\n [attr.stroke]=\"strokeColor()\" />\n\n <svg:svg\n [attr.x]=\"minimapPoint().x\"\n [attr.y]=\"minimapPoint().y\"\n [attr.width]=\"minimapWidth()\"\n [attr.height]=\"minimapHeight()\"\n (mouseover)=\"hovered.set(true)\"\n (mouseleave)=\"hovered.set(false)\">\n <svg:rect [attr.width]=\"minimapWidth()\" [attr.height]=\"minimapHeight()\" [attr.fill]=\"maskColor()\" />\n\n <svg:g [attr.transform]=\"minimapTransform()\">\n <svg:rect\n [attr.fill]=\"viewportColor()\"\n [attr.transform]=\"viewportTransform()\"\n [attr.width]=\"minimapWidth()\"\n [attr.height]=\"minimapHeight()\" />\n\n @for (model of entitiesService.nodes(); track trackNodes($index, model)) {\n <ng-container>\n @if (model.node.type === 'default' || model.node.type === 'html-template' || model.isComponentType) {\n <svg:foreignObject\n [attr.transform]=\"model.pointTransform()\"\n [attr.width]=\"model.size().width\"\n [attr.height]=\"model.size().height\">\n <default-node\n [selected]=\"model.selected()\"\n [style.width.px]=\"model.size().width\"\n [style.height.px]=\"model.size().height\"\n [style.max-width.px]=\"model.size().width\"\n [style.max-height.px]=\"model.size().height\">\n <div [outerHTML]=\"model.text()\"></div>\n </default-node>\n </svg:foreignObject>\n }\n @if (model.node.type === 'default-group' || model.node.type === 'template-group') {\n <svg:rect\n class=\"default-group-node\"\n rx=\"5\"\n ry=\"5\"\n [attr.transform]=\"model.pointTransform()\"\n [class.default-group-node_selected]=\"model.selected()\"\n [attr.width]=\"model.size().width\"\n [attr.height]=\"model.size().height\"\n [style.stroke]=\"model.color()\"\n [style.fill]=\"model.color()\" />\n }\n </ng-container>\n }\n </svg:g>\n </svg:svg>\n</ng-template>\n", styles: [".default-group-node{stroke-width:1.5px;fill-opacity:.05}.default-group-node_selected{stroke-width:2px}\n"], dependencies: [{ kind: "component", type: DefaultNodeComponent, selector: "default-node", inputs: ["selected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
111
103
|
}
|
|
112
104
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MiniMapComponent, decorators: [{
|
|
113
105
|
type: Component,
|
|
114
|
-
args: [{ standalone: true, selector: 'mini-map', imports: [DefaultNodeComponent], template: "<ng-template #minimap>\n <svg:rect\n [attr.x]=\"minimapPoint().x\"\n [attr.y]=\"minimapPoint().y\"\n [attr.width]=\"minimapWidth()\"\n [attr.height]=\"minimapHeight()\"\n [attr.stroke]=\"strokeColor()\"
|
|
106
|
+
args: [{ standalone: true, selector: 'mini-map', imports: [DefaultNodeComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #minimap>\n <svg:rect\n fill=\"none\"\n [attr.x]=\"minimapPoint().x\"\n [attr.y]=\"minimapPoint().y\"\n [attr.width]=\"minimapWidth()\"\n [attr.height]=\"minimapHeight()\"\n [attr.stroke]=\"strokeColor()\" />\n\n <svg:svg\n [attr.x]=\"minimapPoint().x\"\n [attr.y]=\"minimapPoint().y\"\n [attr.width]=\"minimapWidth()\"\n [attr.height]=\"minimapHeight()\"\n (mouseover)=\"hovered.set(true)\"\n (mouseleave)=\"hovered.set(false)\">\n <svg:rect [attr.width]=\"minimapWidth()\" [attr.height]=\"minimapHeight()\" [attr.fill]=\"maskColor()\" />\n\n <svg:g [attr.transform]=\"minimapTransform()\">\n <svg:rect\n [attr.fill]=\"viewportColor()\"\n [attr.transform]=\"viewportTransform()\"\n [attr.width]=\"minimapWidth()\"\n [attr.height]=\"minimapHeight()\" />\n\n @for (model of entitiesService.nodes(); track trackNodes($index, model)) {\n <ng-container>\n @if (model.node.type === 'default' || model.node.type === 'html-template' || model.isComponentType) {\n <svg:foreignObject\n [attr.transform]=\"model.pointTransform()\"\n [attr.width]=\"model.size().width\"\n [attr.height]=\"model.size().height\">\n <default-node\n [selected]=\"model.selected()\"\n [style.width.px]=\"model.size().width\"\n [style.height.px]=\"model.size().height\"\n [style.max-width.px]=\"model.size().width\"\n [style.max-height.px]=\"model.size().height\">\n <div [outerHTML]=\"model.text()\"></div>\n </default-node>\n </svg:foreignObject>\n }\n @if (model.node.type === 'default-group' || model.node.type === 'template-group') {\n <svg:rect\n class=\"default-group-node\"\n rx=\"5\"\n ry=\"5\"\n [attr.transform]=\"model.pointTransform()\"\n [class.default-group-node_selected]=\"model.selected()\"\n [attr.width]=\"model.size().width\"\n [attr.height]=\"model.size().height\"\n [style.stroke]=\"model.color()\"\n [style.fill]=\"model.color()\" />\n }\n </ng-container>\n }\n </svg:g>\n </svg:svg>\n</ng-template>\n", styles: [".default-group-node{stroke-width:1.5px;fill-opacity:.05}.default-group-node_selected{stroke-width:2px}\n"] }]
|
|
115
107
|
}] });
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaW1hcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvcHVibGljLWNvbXBvbmVudHMvbWluaW1hcC9taW5pbWFwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9wdWJsaWMtY29tcG9uZW50cy9taW5pbWFwL21pbmltYXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFFBQVEsRUFHUixNQUFNLEVBRU4sS0FBSyxFQUNMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7QUFlNUYsTUFBTSxPQUFPLGdCQUFnQjtJQVA3QjtRQVFZLG9CQUFlLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDOUMsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDbEQsb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDMUMsYUFBUSxHQUFHLE1BQU0s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QUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUVwQyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN4QyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN4QyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUUvQyxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxLQUFLLEdBQUcsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztLQVlKO0lBVlEsUUFBUTtRQUNiLE1BQU0sS0FBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFFbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFUyxVQUFVLENBQUMsR0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFhO1FBQ25ELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzsrR0ExSVUsZ0JBQWdCO21HQUFoQixnQkFBZ0IsZ3VCQ2xDN0IscytFQTRFQSxrS0Q1Q1ksb0JBQW9COzs0RkFFbkIsZ0JBQWdCO2tCQVA1QixTQUFTO2lDQUNJLElBQUksWUFDTixVQUFVLFdBR1gsQ0FBQyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIGluamVjdCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIHNpZ25hbCxcbiAgVGVtcGxhdGVSZWYsXG4gIGlucHV0LFxuICB2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmxvd0VudGl0aWVzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zsb3ctZW50aXRpZXMuc2VydmljZSc7XG5pbXBvcnQgeyBNaW5pbWFwTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvbWluaW1hcC5tb2RlbCc7XG5pbXBvcnQgeyBOb2RlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvbm9kZS5tb2RlbCc7XG5pbXBvcnQgeyBGbG93U2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmxvdy1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IGdldFZpZXdwb3J0Rm9yQm91bmRzIH0gZnJvbSAnLi4vLi4vdXRpbHMvdmlld3BvcnQnO1xuaW1wb3J0IHsgZ2V0Tm9kZXNCb3VuZHMgfSBmcm9tICcuLi8uLi91dGlscy9ub2Rlcyc7XG5pbXBvcnQgeyBWaWV3cG9ydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy92aWV3cG9ydC5zZXJ2aWNlJztcbmltcG9ydCB7IERlZmF1bHROb2RlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9kZWZhdWx0LW5vZGUvZGVmYXVsdC1ub2RlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB0eXBlIE1pbmlNYXBQb3NpdGlvbiA9XG4gIHwgJ3RvcC1sZWZ0J1xuICB8ICd0b3AtcmlnaHQnXG4gIHwgJ2JvdHRvbS1sZWZ0J1xuICB8ICdib3R0b20tcmlnaHQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdtaW5pLW1hcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9taW5pbWFwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbYC4vbWluaW1hcC5jb21wb25lbnQuc2Nzc2BdLFxuICBpbXBvcnRzOiBbRGVmYXVsdE5vZGVDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBNaW5pTWFwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvdGVjdGVkIGVudGl0aWVzU2VydmljZSA9IGluamVjdChGbG93RW50aXRpZXNTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIGZsb3dTZXR0aW5nc1NlcnZpY2UgPSBpbmplY3QoRmxvd1NldHRpbmdzU2VydmljZSk7XG4gIHByb3RlY3RlZCB2aWV3cG9ydFNlcnZpY2UgPSBpbmplY3QoVmlld3BvcnRTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICAvKipcbiAgICogVGhlIGNvbG9yIG91dHNpZGUgdGhlIHZpZXdwb3J0IChpbnZpc2libGUgYXJlYSlcbiAgICovXG4gIHB1YmxpYyBtYXNrQ29sb3IgPSBpbnB1dChgcmdiYSgyMTUsIDIxNSwgMjE1LCAwLjYpYCk7XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbWFwIHN0cm9rZSBjb2xvclxuICAgKi9cbiAgcHVibGljIHN0cm9rZUNvbG9yID0gaW5wdXQoYHJnYigyMDAsIDIwMCwgMjAwKWApO1xuXG4gIC8qKlxuICAgKiBUaGUgY29ybmVyIG9mIHRoZSBmbG93IHdoZXJlIHRvIHJlbmRlciBhIG1pbmktbWFwXG4gICAqL1xuICBwdWJsaWMgcG9zaXRpb24gPSBpbnB1dDxNaW5pTWFwUG9zaXRpb24+KCdib3R0b20tcmlnaHQnKTtcblxuICAvKipcbiAgICogTWFrZSBhIG1pbmltYXAgYmlnZ2VyIG9uIGhvdmVyXG4gICAqL1xuICBwdWJsaWMgc2NhbGVPbkhvdmVyID0gaW5wdXQoZmFsc2UpO1xuXG4gIHByaXZhdGUgbWluaW1hcCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxUZW1wbGF0ZVJlZjx1bmtub3duPj4oJ21pbmltYXAnKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG1pbmltYXBPZmZzZXQgPSAxMDtcblxuICBwcml2YXRlIHJlYWRvbmx5IG1pbmltYXBTY2FsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5zY2FsZU9uSG92ZXIoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuaG92ZXJlZCgpID8gMC40IDogMC4yO1xuICAgIH1cblxuICAgIHJldHVybiAwLjI7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCB2aWV3cG9ydENvbG9yID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGJnID0gdGhpcy5mbG93U2V0dGluZ3NTZXJ2aWNlLmJhY2tncm91bmQoKTtcblxuICAgIGlmIChiZy50eXBlID09PSAnZG90cycgfHwgYmcudHlwZSA9PT0gJ3NvbGlkJykge1xuICAgICAgcmV0dXJuIGJnLmNvbG9yID8/ICcjZmZmJztcbiAgICB9XG5cbiAgICByZXR1cm4gJyNmZmYnO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgaG92ZXJlZCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcHJvdGVjdGVkIG1pbmltYXBQb2ludCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBzd2l0Y2ggKHRoaXMucG9zaXRpb24oKSkge1xuICAgICAgY2FzZSAndG9wLWxlZnQnOlxuICAgICAgICByZXR1cm4geyB4OiB0aGlzLm1pbmltYXBPZmZzZXQsIHk6IHRoaXMubWluaW1hcE9mZnNldCB9O1xuICAgICAgY2FzZSAndG9wLXJpZ2h0JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB4OlxuICAgICAgICAgICAgdGhpcy5mbG93U2V0dGluZ3NTZXJ2aWNlLmNvbXB1dGVkRmxvd1dpZHRoKCkgLVxuICAgICAgICAgICAgdGhpcy5taW5pbWFwV2lkdGgoKSAtXG4gICAgICAgICAgICB0aGlzLm1pbmltYXBPZmZzZXQsXG4gICAgICAgICAgeTogdGhpcy5taW5pbWFwT2Zmc2V0LFxuICAgICAgICB9O1xuICAgICAgY2FzZSAnYm90dG9tLWxlZnQnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHg6IHRoaXMubWluaW1hcE9mZnNldCxcbiAgICAgICAgICB5OlxuICAgICAgICAgICAgdGhpcy5mbG93U2V0dGluZ3NTZXJ2aWNlLmNvbXB1dGVkRmxvd0hlaWdodCgpIC1cbiAgICAgICAgICAgIHRoaXMubWluaW1hcEhlaWdodCgpIC1cbiAgICAgICAgICAgIHRoaXMubWluaW1hcE9mZnNldCxcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgJ2JvdHRvbS1yaWdodCc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgeDpcbiAgICAgICAgICAgIHRoaXMuZmxvd1NldHRpbmdzU2VydmljZS5jb21wdXRlZEZsb3dXaWR0aCgpIC1cbiAgICAgICAgICAgIHRoaXMubWluaW1hcFdpZHRoKCkgLVxuICAgICAgICAgICAgdGhpcy5taW5pbWFwT2Zmc2V0LFxuICAgICAgICAgIHk6XG4gICAgICAgICAgICB0aGlzLmZsb3dTZXR0aW5nc1NlcnZpY2UuY29tcHV0ZWRGbG93SGVpZ2h0KCkgLVxuICAgICAgICAgICAgdGhpcy5taW5pbWFwSGVpZ2h0KCkgLVxuICAgICAgICAgICAgdGhpcy5taW5pbWFwT2Zmc2V0LFxuICAgICAgICB9O1xuICAgIH1cbiAgfSk7XG5cbiAgcHJvdGVjdGVkIG1pbmltYXBXaWR0aCA9IGNvbXB1dGVkKFxuICAgICgpID0+IHRoaXMuZmxvd1NldHRpbmdzU2VydmljZS5jb21wdXRlZEZsb3dXaWR0aCgpICogdGhpcy5taW5pbWFwU2NhbGUoKSxcbiAgKTtcbiAgcHJvdGVjdGVkIG1pbmltYXBIZWlnaHQgPSBjb21wdXRlZChcbiAgICAoKSA9PiB0aGlzLmZsb3dTZXR0aW5nc1NlcnZpY2UuY29tcHV0ZWRGbG93SGVpZ2h0KCkgKiB0aGlzLm1pbmltYXBTY2FsZSgpLFxuICApO1xuXG4gIHByb3RlY3RlZCB2aWV3cG9ydFRyYW5zZm9ybSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB2aWV3cG9ydCA9IHRoaXMudmlld3BvcnRTZXJ2aWNlLnJlYWRhYmxlVmlld3BvcnQoKTtcbiAgICBsZXQgc2NhbGUgPSAxIC8gdmlld3BvcnQuem9vbTtcblxuICAgIGxldCB4ID0gLSh2aWV3cG9ydC54ICogdGhpcy5taW5pbWFwU2NhbGUoKSkgKiBzY2FsZTtcbiAgICB4IC89IHRoaXMubWluaW1hcFNjYWxlKCk7XG5cbiAgICBsZXQgeSA9IC0odmlld3BvcnQueSAqIHRoaXMubWluaW1hcFNjYWxlKCkpICogc2NhbGU7XG4gICAgeSAvPSB0aGlzLm1pbmltYXBTY2FsZSgpO1xuXG4gICAgc2NhbGUgLz0gdGhpcy5taW5pbWFwU2NhbGUoKTtcblxuICAgIHJldHVybiBgdHJhbnNsYXRlKCR7eH0sICR7eX0pIHNjYWxlKCR7c2NhbGV9KWA7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBib3VuZHNWaWV3cG9ydCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBub2RlcyA9IHRoaXMuZW50aXRpZXNTZXJ2aWNlLm5vZGVzKCk7XG5cbiAgICByZXR1cm4gZ2V0Vmlld3BvcnRGb3JCb3VuZHMoXG4gICAgICBnZXROb2Rlc0JvdW5kcyhub2RlcyksXG4gICAgICB0aGlzLmZsb3dTZXR0aW5nc1NlcnZpY2UuY29tcHV0ZWRGbG93V2lkdGgoKSxcbiAgICAgIHRoaXMuZmxvd1NldHRpbmdzU2VydmljZS5jb21wdXRlZEZsb3dIZWlnaHQoKSxcbiAgICAgIC1JbmZpbml0eSxcbiAgICAgIDEuNSxcbiAgICAgIDAsXG4gICAgKTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIG1pbmltYXBUcmFuc2Zvcm0gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgdnBvcnQgPSB0aGlzLmJvdW5kc1ZpZXdwb3J0KCk7XG5cbiAgICBjb25zdCB4ID0gdnBvcnQueCAqIHRoaXMubWluaW1hcFNjYWxlKCk7XG4gICAgY29uc3QgeSA9IHZwb3J0LnkgKiB0aGlzLm1pbmltYXBTY2FsZSgpO1xuICAgIGNvbnN0IHNjYWxlID0gdnBvcnQuem9vbSAqIHRoaXMubWluaW1hcFNjYWxlKCk7XG5cbiAgICByZXR1cm4gYHRyYW5zbGF0ZSgke3h9ICR7eX0pIHNjYWxlKCR7c2NhbGV9KWA7XG4gIH0pO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBtb2RlbCA9IG5ldyBNaW5pbWFwTW9kZWwoKTtcbiAgICBtb2RlbC50ZW1wbGF0ZS5zZXQodGhpcy5taW5pbWFwKCkpO1xuXG4gICAgdGhpcy5lbnRpdGllc1NlcnZpY2UubWluaW1hcC5zZXQobW9kZWwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRyYWNrTm9kZXMoaWR4OiBudW1iZXIsIHsgbm9kZSB9OiBOb2RlTW9kZWwpIHtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNtaW5pbWFwPlxuICA8c3ZnOnJlY3RcbiAgICBbYXR0ci54XT1cIm1pbmltYXBQb2ludCgpLnhcIlxuICAgIFthdHRyLnldPVwibWluaW1hcFBvaW50KCkueVwiXG4gICAgW2F0dHIud2lkdGhdPVwibWluaW1hcFdpZHRoKClcIlxuICAgIFthdHRyLmhlaWdodF09XCJtaW5pbWFwSGVpZ2h0KClcIlxuICAgIFthdHRyLnN0cm9rZV09XCJzdHJva2VDb2xvcigpXCJcbiAgICBmaWxsPVwibm9uZVwiXG4gIC8+XG5cbiAgPHN2ZzpzdmdcbiAgICBbYXR0ci54XT1cIm1pbmltYXBQb2ludCgpLnhcIlxuICAgIFthdHRyLnldPVwibWluaW1hcFBvaW50KCkueVwiXG4gICAgW2F0dHIud2lkdGhdPVwibWluaW1hcFdpZHRoKClcIlxuICAgIFthdHRyLmhlaWdodF09XCJtaW5pbWFwSGVpZ2h0KClcIlxuICAgIChtb3VzZW92ZXIpPVwiaG92ZXJlZC5zZXQodHJ1ZSlcIlxuICAgIChtb3VzZWxlYXZlKT1cImhvdmVyZWQuc2V0KGZhbHNlKVwiXG4gID5cbiAgICA8c3ZnOnJlY3RcbiAgICAgIFthdHRyLndpZHRoXT1cIm1pbmltYXBXaWR0aCgpXCJcbiAgICAgIFthdHRyLmhlaWdodF09XCJtaW5pbWFwSGVpZ2h0KClcIlxuICAgICAgW2F0dHIuZmlsbF09XCJtYXNrQ29sb3IoKVwiXG4gICAgLz5cblxuICAgIDxzdmc6ZyBbYXR0ci50cmFuc2Zvcm1dPVwibWluaW1hcFRyYW5zZm9ybSgpXCI+XG4gICAgICA8c3ZnOnJlY3RcbiAgICAgICAgW2F0dHIuZmlsbF09XCJ2aWV3cG9ydENvbG9yKClcIlxuICAgICAgICBbYXR0ci50cmFuc2Zvcm1dPVwidmlld3BvcnRUcmFuc2Zvcm0oKVwiXG4gICAgICAgIFthdHRyLndpZHRoXT1cIm1pbmltYXBXaWR0aCgpXCJcbiAgICAgICAgW2F0dHIuaGVpZ2h0XT1cIm1pbmltYXBIZWlnaHQoKVwiXG4gICAgICAvPlxuXG4gICAgICBAZm9yIChtb2RlbCBvZiBlbnRpdGllc1NlcnZpY2Uubm9kZXMoKTsgdHJhY2sgdHJhY2tOb2RlcygkaW5kZXgsIG1vZGVsKSkge1xuICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgIEBpZiAoXG4gICAgICAgICAgICBtb2RlbC5ub2RlLnR5cGUgPT09IFwiZGVmYXVsdFwiIHx8XG4gICAgICAgICAgICBtb2RlbC5ub2RlLnR5cGUgPT09IFwiaHRtbC10ZW1wbGF0ZVwiIHx8XG4gICAgICAgICAgICBtb2RlbC5pc0NvbXBvbmVudFR5cGVcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIDxzdmc6Zm9yZWlnbk9iamVjdFxuICAgICAgICAgICAgICBbYXR0ci50cmFuc2Zvcm1dPVwibW9kZWwucG9pbnRUcmFuc2Zvcm0oKVwiXG4gICAgICAgICAgICAgIFthdHRyLndpZHRoXT1cIm1vZGVsLnNpemUoKS53aWR0aFwiXG4gICAgICAgICAgICAgIFthdHRyLmhlaWdodF09XCJtb2RlbC5zaXplKCkuaGVpZ2h0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRlZmF1bHQtbm9kZVxuICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJtb2RlbC5zZWxlY3RlZCgpXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwibW9kZWwuc2l6ZSgpLndpZHRoXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cIm1vZGVsLnNpemUoKS5oZWlnaHRcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5tYXgtd2lkdGgucHhdPVwibW9kZWwuc2l6ZSgpLndpZHRoXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUubWF4LWhlaWdodC5weF09XCJtb2RlbC5zaXplKCkuaGVpZ2h0XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgW291dGVySFRNTF09XCJtb2RlbC50ZXh0KClcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPC9kZWZhdWx0LW5vZGU+XG4gICAgICAgICAgICA8L3N2Zzpmb3JlaWduT2JqZWN0PlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKFxuICAgICAgICAgICAgbW9kZWwubm9kZS50eXBlID09PSBcImRlZmF1bHQtZ3JvdXBcIiB8fFxuICAgICAgICAgICAgbW9kZWwubm9kZS50eXBlID09PSBcInRlbXBsYXRlLWdyb3VwXCJcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIDxzdmc6cmVjdFxuICAgICAgICAgICAgICBjbGFzcz1cImRlZmF1bHQtZ3JvdXAtbm9kZVwiXG4gICAgICAgICAgICAgIHJ4PVwiNVwiXG4gICAgICAgICAgICAgIHJ5PVwiNVwiXG4gICAgICAgICAgICAgIFthdHRyLnRyYW5zZm9ybV09XCJtb2RlbC5wb2ludFRyYW5zZm9ybSgpXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmRlZmF1bHQtZ3JvdXAtbm9kZV9zZWxlY3RlZF09XCJtb2RlbC5zZWxlY3RlZCgpXCJcbiAgICAgICAgICAgICAgW2F0dHIud2lkdGhdPVwibW9kZWwuc2l6ZSgpLndpZHRoXCJcbiAgICAgICAgICAgICAgW2F0dHIuaGVpZ2h0XT1cIm1vZGVsLnNpemUoKS5oZWlnaHRcIlxuICAgICAgICAgICAgICBbc3R5bGUuc3Ryb2tlXT1cIm1vZGVsLmNvbG9yKClcIlxuICAgICAgICAgICAgICBbc3R5bGUuZmlsbF09XCJtb2RlbC5jb2xvcigpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIH1cbiAgICA8L3N2ZzpnPlxuICA8L3N2Zzpzdmc+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaW1hcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvcHVibGljLWNvbXBvbmVudHMvbWluaW1hcC9taW5pbWFwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9wdWJsaWMtY29tcG9uZW50cy9taW5pbWFwL21pbmltYXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFFBQVEsRUFFUixNQUFNLEVBRU4sS0FBSyxFQUNMLFNBQVMsRUFDVCx1QkFBdUIsR0FDeEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0RBQXNELENBQUM7O0FBWTVGLE1BQU0sT0FBTyxnQkFBZ0I7SUFSN0I7UUFTWSxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzlDLHdCQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2xELG9CQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzFDLGFB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QUMsY0FBYyxFQUFFLENBQUM7WUFFcEMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFL0MsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxHQUFHLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7S0FZSjtJQVZRLFFBQVE7UUFDYixNQUFNLEtBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRW5DLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRVMsVUFBVSxDQUFDLEdBQVcsRUFBRSxFQUFFLElBQUksRUFBYTtRQUNuRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7K0dBMUhVLGdCQUFnQjttR0FBaEIsZ0JBQWdCLGd1QkMvQjdCLGd6RUEyREEsa0tEL0JZLG9CQUFvQjs7NEZBR25CLGdCQUFnQjtrQkFSNUIsU0FBUztpQ0FDSSxJQUFJLFlBQ04sVUFBVSxXQUdYLENBQUMsb0JBQW9CLENBQUMsbUJBQ2QsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIGluamVjdCxcbiAgSW5qZWN0b3IsXG4gIE9uSW5pdCxcbiAgc2lnbmFsLFxuICBUZW1wbGF0ZVJlZixcbiAgaW5wdXQsXG4gIHZpZXdDaGlsZCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmxvd0VudGl0aWVzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zsb3ctZW50aXRpZXMuc2VydmljZSc7XG5pbXBvcnQgeyBNaW5pbWFwTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvbWluaW1hcC5tb2RlbCc7XG5pbXBvcnQgeyBOb2RlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvbm9kZS5tb2RlbCc7XG5pbXBvcnQgeyBGbG93U2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmxvdy1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IGdldFZpZXdwb3J0Rm9yQm91bmRzIH0gZnJvbSAnLi4vLi4vdXRpbHMvdmlld3BvcnQnO1xuaW1wb3J0IHsgZ2V0Tm9kZXNCb3VuZHMgfSBmcm9tICcuLi8uLi91dGlscy9ub2Rlcyc7XG5pbXBvcnQgeyBWaWV3cG9ydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy92aWV3cG9ydC5zZXJ2aWNlJztcbmltcG9ydCB7IERlZmF1bHROb2RlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9kZWZhdWx0LW5vZGUvZGVmYXVsdC1ub2RlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB0eXBlIE1pbmlNYXBQb3NpdGlvbiA9ICd0b3AtbGVmdCcgfCAndG9wLXJpZ2h0JyB8ICdib3R0b20tbGVmdCcgfCAnYm90dG9tLXJpZ2h0JztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnbWluaS1tYXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWluaW1hcC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW2AuL21pbmltYXAuY29tcG9uZW50LnNjc3NgXSxcbiAgaW1wb3J0czogW0RlZmF1bHROb2RlQ29tcG9uZW50XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1pbmlNYXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm90ZWN0ZWQgZW50aXRpZXNTZXJ2aWNlID0gaW5qZWN0KEZsb3dFbnRpdGllc1NlcnZpY2UpO1xuICBwcm90ZWN0ZWQgZmxvd1NldHRpbmdzU2VydmljZSA9IGluamVjdChGbG93U2V0dGluZ3NTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHZpZXdwb3J0U2VydmljZSA9IGluamVjdChWaWV3cG9ydFNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIC8qKlxuICAgKiBUaGUgY29sb3Igb3V0c2lkZSB0aGUgdmlld3BvcnQgKGludmlzaWJsZSBhcmVhKVxuICAgKi9cbiAgcHVibGljIG1hc2tDb2xvciA9IGlucHV0KGByZ2JhKDIxNSwgMjE1LCAyMTUsIDAuNilgKTtcblxuICAvKipcbiAgICogVGhlIG1pbmltYXAgc3Ryb2tlIGNvbG9yXG4gICAqL1xuICBwdWJsaWMgc3Ryb2tlQ29sb3IgPSBpbnB1dChgcmdiKDIwMCwgMjAwLCAyMDApYCk7XG5cbiAgLyoqXG4gICAqIFRoZSBjb3JuZXIgb2YgdGhlIGZsb3cgd2hlcmUgdG8gcmVuZGVyIGEgbWluaS1tYXBcbiAgICovXG4gIHB1YmxpYyBwb3NpdGlvbiA9IGlucHV0PE1pbmlNYXBQb3NpdGlvbj4oJ2JvdHRvbS1yaWdodCcpO1xuXG4gIC8qKlxuICAgKiBNYWtlIGEgbWluaW1hcCBiaWdnZXIgb24gaG92ZXJcbiAgICovXG4gIHB1YmxpYyBzY2FsZU9uSG92ZXIgPSBpbnB1dChmYWxzZSk7XG5cbiAgcHJpdmF0ZSBtaW5pbWFwID0gdmlld0NoaWxkLnJlcXVpcmVkPFRlbXBsYXRlUmVmPHVua25vd24+PignbWluaW1hcCcpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbWluaW1hcE9mZnNldCA9IDEwO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbWluaW1hcFNjYWxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICh0aGlzLnNjYWxlT25Ib3ZlcigpKSB7XG4gICAgICByZXR1cm4gdGhpcy5ob3ZlcmVkKCkgPyAwLjQgOiAwLjI7XG4gICAgfVxuXG4gICAgcmV0dXJuIDAuMjtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHZpZXdwb3J0Q29sb3IgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYmcgPSB0aGlzLmZsb3dTZXR0aW5nc1NlcnZpY2UuYmFja2dyb3VuZCgpO1xuXG4gICAgaWYgKGJnLnR5cGUgPT09ICdkb3RzJyB8fCBiZy50eXBlID09PSAnc29saWQnKSB7XG4gICAgICByZXR1cm4gYmcuY29sb3IgPz8gJyNmZmYnO1xuICAgIH1cblxuICAgIHJldHVybiAnI2ZmZic7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBob3ZlcmVkID0gc2lnbmFsKGZhbHNlKTtcblxuICBwcm90ZWN0ZWQgbWluaW1hcFBvaW50ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHN3aXRjaCAodGhpcy5wb3NpdGlvbigpKSB7XG4gICAgICBjYXNlICd0b3AtbGVmdCc6XG4gICAgICAgIHJldHVybiB7IHg6IHRoaXMubWluaW1hcE9mZnNldCwgeTogdGhpcy5taW5pbWFwT2Zmc2V0IH07XG4gICAgICBjYXNlICd0b3AtcmlnaHQnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHg6IHRoaXMuZmxvd1NldHRpbmdzU2VydmljZS5jb21wdXRlZEZsb3dXaWR0aCgpIC0gdGhpcy5taW5pbWFwV2lkdGgoKSAtIHRoaXMubWluaW1hcE9mZnNldCxcbiAgICAgICAgICB5OiB0aGlzLm1pbmltYXBPZmZzZXQsXG4gICAgICAgIH07XG4gICAgICBjYXNlICdib3R0b20tbGVmdCc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgeDogdGhpcy5taW5pbWFwT2Zmc2V0LFxuICAgICAgICAgIHk6IHRoaXMuZmxvd1NldHRpbmdzU2VydmljZS5jb21wdXRlZEZsb3dIZWlnaHQoKSAtIHRoaXMubWluaW1hcEhlaWdodCgpIC0gdGhpcy5taW5pbWFwT2Zmc2V0LFxuICAgICAgICB9O1xuICAgICAgY2FzZSAnYm90dG9tLXJpZ2h0JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB4OiB0aGlzLmZsb3dTZXR0aW5nc1NlcnZpY2UuY29tcHV0ZWRGbG93V2lkdGgoKSAtIHRoaXMubWluaW1hcFdpZHRoKCkgLSB0aGlzLm1pbmltYXBPZmZzZXQsXG4gICAgICAgICAgeTogdGhpcy5mbG93U2V0dGluZ3NTZXJ2aWNlLmNvbXB1dGVkRmxvd0hlaWdodCgpIC0gdGhpcy5taW5pbWFwSGVpZ2h0KCkgLSB0aGlzLm1pbmltYXBPZmZzZXQsXG4gICAgICAgIH07XG4gICAgfVxuICB9KTtcblxuICBwcm90ZWN0ZWQgbWluaW1hcFdpZHRoID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5mbG93U2V0dGluZ3NTZXJ2aWNlLmNvbXB1dGVkRmxvd1dpZHRoKCkgKiB0aGlzLm1pbmltYXBTY2FsZSgpKTtcbiAgcHJvdGVjdGVkIG1pbmltYXBIZWlnaHQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmZsb3dTZXR0aW5nc1NlcnZpY2UuY29tcHV0ZWRGbG93SGVpZ2h0KCkgKiB0aGlzLm1pbmltYXBTY2FsZSgpKTtcblxuICBwcm90ZWN0ZWQgdmlld3BvcnRUcmFuc2Zvcm0gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgdmlld3BvcnQgPSB0aGlzLnZpZXdwb3J0U2VydmljZS5yZWFkYWJsZVZpZXdwb3J0KCk7XG4gICAgbGV0IHNjYWxlID0gMSAvIHZpZXdwb3J0Lnpvb207XG5cbiAgICBsZXQgeCA9IC0odmlld3BvcnQueCAqIHRoaXMubWluaW1hcFNjYWxlKCkpICogc2NhbGU7XG4gICAgeCAvPSB0aGlzLm1pbmltYXBTY2FsZSgpO1xuXG4gICAgbGV0IHkgPSAtKHZpZXdwb3J0LnkgKiB0aGlzLm1pbmltYXBTY2FsZSgpKSAqIHNjYWxlO1xuICAgIHkgLz0gdGhpcy5taW5pbWFwU2NhbGUoKTtcblxuICAgIHNjYWxlIC89IHRoaXMubWluaW1hcFNjYWxlKCk7XG5cbiAgICByZXR1cm4gYHRyYW5zbGF0ZSgke3h9LCAke3l9KSBzY2FsZSgke3NjYWxlfSlgO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgYm91bmRzVmlld3BvcnQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgbm9kZXMgPSB0aGlzLmVudGl0aWVzU2VydmljZS5ub2RlcygpO1xuXG4gICAgcmV0dXJuIGdldFZpZXdwb3J0Rm9yQm91bmRzKFxuICAgICAgZ2V0Tm9kZXNCb3VuZHMobm9kZXMpLFxuICAgICAgdGhpcy5mbG93U2V0dGluZ3NTZXJ2aWNlLmNvbXB1dGVkRmxvd1dpZHRoKCksXG4gICAgICB0aGlzLmZsb3dTZXR0aW5nc1NlcnZpY2UuY29tcHV0ZWRGbG93SGVpZ2h0KCksXG4gICAgICAtSW5maW5pdHksXG4gICAgICAxLjUsXG4gICAgICAwLFxuICAgICk7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBtaW5pbWFwVHJhbnNmb3JtID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHZwb3J0ID0gdGhpcy5ib3VuZHNWaWV3cG9ydCgpO1xuXG4gICAgY29uc3QgeCA9IHZwb3J0LnggKiB0aGlzLm1pbmltYXBTY2FsZSgpO1xuICAgIGNvbnN0IHkgPSB2cG9ydC55ICogdGhpcy5taW5pbWFwU2NhbGUoKTtcbiAgICBjb25zdCBzY2FsZSA9IHZwb3J0Lnpvb20gKiB0aGlzLm1pbmltYXBTY2FsZSgpO1xuXG4gICAgcmV0dXJuIGB0cmFuc2xhdGUoJHt4fSAke3l9KSBzY2FsZSgke3NjYWxlfSlgO1xuICB9KTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgbW9kZWwgPSBuZXcgTWluaW1hcE1vZGVsKCk7XG4gICAgbW9kZWwudGVtcGxhdGUuc2V0KHRoaXMubWluaW1hcCgpKTtcblxuICAgIHRoaXMuZW50aXRpZXNTZXJ2aWNlLm1pbmltYXAuc2V0KG1vZGVsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0cmFja05vZGVzKGlkeDogbnVtYmVyLCB7IG5vZGUgfTogTm9kZU1vZGVsKSB7XG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjbWluaW1hcD5cbiAgPHN2ZzpyZWN0XG4gICAgZmlsbD1cIm5vbmVcIlxuICAgIFthdHRyLnhdPVwibWluaW1hcFBvaW50KCkueFwiXG4gICAgW2F0dHIueV09XCJtaW5pbWFwUG9pbnQoKS55XCJcbiAgICBbYXR0ci53aWR0aF09XCJtaW5pbWFwV2lkdGgoKVwiXG4gICAgW2F0dHIuaGVpZ2h0XT1cIm1pbmltYXBIZWlnaHQoKVwiXG4gICAgW2F0dHIuc3Ryb2tlXT1cInN0cm9rZUNvbG9yKClcIiAvPlxuXG4gIDxzdmc6c3ZnXG4gICAgW2F0dHIueF09XCJtaW5pbWFwUG9pbnQoKS54XCJcbiAgICBbYXR0ci55XT1cIm1pbmltYXBQb2ludCgpLnlcIlxuICAgIFthdHRyLndpZHRoXT1cIm1pbmltYXBXaWR0aCgpXCJcbiAgICBbYXR0ci5oZWlnaHRdPVwibWluaW1hcEhlaWdodCgpXCJcbiAgICAobW91c2VvdmVyKT1cImhvdmVyZWQuc2V0KHRydWUpXCJcbiAgICAobW91c2VsZWF2ZSk9XCJob3ZlcmVkLnNldChmYWxzZSlcIj5cbiAgICA8c3ZnOnJlY3QgW2F0dHIud2lkdGhdPVwibWluaW1hcFdpZHRoKClcIiBbYXR0ci5oZWlnaHRdPVwibWluaW1hcEhlaWdodCgpXCIgW2F0dHIuZmlsbF09XCJtYXNrQ29sb3IoKVwiIC8+XG5cbiAgICA8c3ZnOmcgW2F0dHIudHJhbnNmb3JtXT1cIm1pbmltYXBUcmFuc2Zvcm0oKVwiPlxuICAgICAgPHN2ZzpyZWN0XG4gICAgICAgIFthdHRyLmZpbGxdPVwidmlld3BvcnRDb2xvcigpXCJcbiAgICAgICAgW2F0dHIudHJhbnNmb3JtXT1cInZpZXdwb3J0VHJhbnNmb3JtKClcIlxuICAgICAgICBbYXR0ci53aWR0aF09XCJtaW5pbWFwV2lkdGgoKVwiXG4gICAgICAgIFthdHRyLmhlaWdodF09XCJtaW5pbWFwSGVpZ2h0KClcIiAvPlxuXG4gICAgICBAZm9yIChtb2RlbCBvZiBlbnRpdGllc1NlcnZpY2Uubm9kZXMoKTsgdHJhY2sgdHJhY2tOb2RlcygkaW5kZXgsIG1vZGVsKSkge1xuICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgIEBpZiAobW9kZWwubm9kZS50eXBlID09PSAnZGVmYXVsdCcgfHwgbW9kZWwubm9kZS50eXBlID09PSAnaHRtbC10ZW1wbGF0ZScgfHwgbW9kZWwuaXNDb21wb25lbnRUeXBlKSB7XG4gICAgICAgICAgICA8c3ZnOmZvcmVpZ25PYmplY3RcbiAgICAgICAgICAgICAgW2F0dHIudHJhbnNmb3JtXT1cIm1vZGVsLnBvaW50VHJhbnNmb3JtKClcIlxuICAgICAgICAgICAgICBbYXR0ci53aWR0aF09XCJtb2RlbC5zaXplKCkud2lkdGhcIlxuICAgICAgICAgICAgICBbYXR0ci5oZWlnaHRdPVwibW9kZWwuc2l6ZSgpLmhlaWdodFwiPlxuICAgICAgICAgICAgICA8ZGVmYXVsdC1ub2RlXG4gICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cIm1vZGVsLnNlbGVjdGVkKClcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJtb2RlbC5zaXplKCkud2lkdGhcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwibW9kZWwuc2l6ZSgpLmhlaWdodFwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLm1heC13aWR0aC5weF09XCJtb2RlbC5zaXplKCkud2lkdGhcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5tYXgtaGVpZ2h0LnB4XT1cIm1vZGVsLnNpemUoKS5oZWlnaHRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IFtvdXRlckhUTUxdPVwibW9kZWwudGV4dCgpXCI+PC9kaXY+XG4gICAgICAgICAgICAgIDwvZGVmYXVsdC1ub2RlPlxuICAgICAgICAgICAgPC9zdmc6Zm9yZWlnbk9iamVjdD5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChtb2RlbC5ub2RlLnR5cGUgPT09ICdkZWZhdWx0LWdyb3VwJyB8fCBtb2RlbC5ub2RlLnR5cGUgPT09ICd0ZW1wbGF0ZS1ncm91cCcpIHtcbiAgICAgICAgICAgIDxzdmc6cmVjdFxuICAgICAgICAgICAgICBjbGFzcz1cImRlZmF1bHQtZ3JvdXAtbm9kZVwiXG4gICAgICAgICAgICAgIHJ4PVwiNVwiXG4gICAgICAgICAgICAgIHJ5PVwiNVwiXG4gICAgICAgICAgICAgIFthdHRyLnRyYW5zZm9ybV09XCJtb2RlbC5wb2ludFRyYW5zZm9ybSgpXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmRlZmF1bHQtZ3JvdXAtbm9kZV9zZWxlY3RlZF09XCJtb2RlbC5zZWxlY3RlZCgpXCJcbiAgICAgICAgICAgICAgW2F0dHIud2lkdGhdPVwibW9kZWwuc2l6ZSgpLndpZHRoXCJcbiAgICAgICAgICAgICAgW2F0dHIuaGVpZ2h0XT1cIm1vZGVsLnNpemUoKS5oZWlnaHRcIlxuICAgICAgICAgICAgICBbc3R5bGUuc3Ryb2tlXT1cIm1vZGVsLmNvbG9yKClcIlxuICAgICAgICAgICAgICBbc3R5bGUuZmlsbF09XCJtb2RlbC5jb2xvcigpXCIgLz5cbiAgICAgICAgICB9XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgfVxuICAgIDwvc3ZnOmc+XG4gIDwvc3ZnOnN2Zz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ElementRef, inject, input, viewChild, effect, forwardRef } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, inject, input, viewChild, effect, forwardRef, } from '@angular/core';
|
|
2
2
|
import { Directive } from '@angular/core';
|
|
3
3
|
import { ToolbarModel } from '../../models/toolbar.model';
|
|
4
4
|
import { OverlaysService } from '../../services/overlays.service';
|
|
@@ -57,7 +57,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
57
57
|
type: Directive,
|
|
58
58
|
args: [{
|
|
59
59
|
selector: '[nodeToolbarWrapper]',
|
|
60
|
-
standalone: true
|
|
60
|
+
standalone: true,
|
|
61
61
|
}]
|
|
62
62
|
}] });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9wdWJsaWMtY29tcG9uZW50cy9ub2RlLXRvb2xiYXIvbm9kZS10b29sYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUlOLEtBQUssRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBc0IzRSxNQUFNLE9BQU8sb0JBQW9CO0lBVS9CO1FBVFEsb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDMUMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUUzQyxhQUFRLEdBQUcsS0FBSyxDQUFXLEtBQUssQ0FBQyxDQUFDO1FBRWxDLDJCQUFzQixHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQXVCLFNBQVMsQ0FBQyxDQUFDO1FBRTFFLFVBQUssR0FBRyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRyxDQUFDLENBQUM7UUFHNUQsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQztRQUV2RCxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pELENBQUM7K0dBdEJVLG9CQUFvQjttR0FBcEIsb0JBQW9CLHdWQWpCckI7Ozs7OztHQU1ULDJIQXdDVSwyQkFBMkI7OzRGQTdCM0Isb0JBQW9CO2tCQXBCaEMsU0FBUztpQ0FDSSxJQUFJLFlBQ04sY0FBYyxZQUNkOzs7Ozs7R0FNVCxtQkFRZ0IsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDOztBQStCMUQsTUFBTSxPQUFPLDJCQUEyQjtJQUp4QztRQUtVLFlBQU8sR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBRXZELFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFnQixDQUFDO0tBUS9DO0lBTlEsUUFBUTtRQUNiLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ3BCLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxXQUFXO1lBQzdDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxZQUFZO1NBQ2hELENBQUMsQ0FBQztJQUNMLENBQUM7K0dBVlUsMkJBQTJCO21HQUEzQiwyQkFBMkI7OzRGQUEzQiwyQkFBMkI7a0JBSnZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIGlucHV0LFxuICB2aWV3Q2hpbGQsXG4gIGVmZmVjdCxcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvcG9zaXRpb24udHlwZSc7XG5pbXBvcnQgeyBUb29sYmFyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvdG9vbGJhci5tb2RlbCc7XG5pbXBvcnQgeyBPdmVybGF5c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vdmVybGF5cy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGVBY2Nlc3NvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub2RlLWFjY2Vzc29yLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdub2RlLXRvb2xiYXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy10ZW1wbGF0ZSAjdG9vbGJhcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCIgbm9kZVRvb2xiYXJXcmFwcGVyIFttb2RlbF09XCJtb2RlbFwiPlxuICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLndyYXBwZXIge1xuICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtmb3J3YXJkUmVmKCgpID0+IE5vZGVUb29sYmFyV3JhcHBlckRpcmVjdGl2ZSldLFxufSlcbmV4cG9ydCBjbGFzcyBOb2RlVG9vbGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBvdmVybGF5c1NlcnZpY2UgPSBpbmplY3QoT3ZlcmxheXNTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBub2RlU2VydmljZSA9IGluamVjdChOb2RlQWNjZXNzb3JTZXJ2aWNlKTtcblxuICBwdWJsaWMgcG9zaXRpb24gPSBpbnB1dDxQb3NpdGlvbj4oJ3RvcCcpO1xuXG4gIHB1YmxpYyB0b29sYmFyQ29udGVudFRlbXBsYXRlID0gdmlld0NoaWxkLnJlcXVpcmVkPFRlbXBsYXRlUmVmPHVua25vd24+PigndG9vbGJhcicpO1xuXG4gIHByb3RlY3RlZCBtb2RlbCA9IG5ldyBUb29sYmFyTW9kZWwodGhpcy5ub2RlU2VydmljZS5tb2RlbCgpISk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHRoaXMubW9kZWwucG9zaXRpb24uc2V0KHRoaXMucG9zaXRpb24oKSksIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5tb2RlbC50ZW1wbGF0ZS5zZXQodGhpcy50b29sYmFyQ29udGVudFRlbXBsYXRlKCkpO1xuXG4gICAgdGhpcy5vdmVybGF5c1NlcnZpY2UuYWRkVG9vbGJhcih0aGlzLm1vZGVsKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm92ZXJsYXlzU2VydmljZS5yZW1vdmVUb29sYmFyKHRoaXMubW9kZWwpO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tub2RlVG9vbGJhcldyYXBwZXJdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTm9kZVRvb2xiYXJXcmFwcGVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBlbGVtZW50ID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblxuICBwdWJsaWMgbW9kZWwgPSBpbnB1dC5yZXF1aXJlZDxUb29sYmFyTW9kZWw+KCk7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubW9kZWwoKS5zaXplLnNldCh7XG4gICAgICB3aWR0aDogdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGgsXG4gICAgICBoZWlnaHQ6IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCxcbiAgICB9KTtcbiAgfVxufVxuIl19
|