ngx-vflow 1.16.3 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -69
- package/fesm2022/ngx-vflow-testing.mjs +77 -67
- package/fesm2022/ngx-vflow-testing.mjs.map +1 -1
- package/fesm2022/ngx-vflow.mjs +926 -559
- package/fesm2022/ngx-vflow.mjs.map +1 -1
- package/lib/vflow/components/custom-node-base/custom-node-base.component.d.ts +1 -1
- package/lib/vflow/components/vflow/vflow.component.d.ts +18 -9
- package/lib/vflow/directives/auto-pan.directive.d.ts +16 -0
- package/lib/vflow/directives/changes-controller.directive.d.ts +13 -87
- package/lib/vflow/directives/connection-controller.directive.d.ts +8 -10
- package/lib/vflow/directives/space-point-context.directive.d.ts +2 -1
- package/lib/vflow/interfaces/component-node-event.interface.d.ts +1 -2
- package/lib/vflow/interfaces/connection-events.interface.d.ts +66 -0
- package/lib/vflow/interfaces/connection-settings.interface.d.ts +7 -1
- package/lib/vflow/interfaces/connection.interface.d.ts +0 -5
- package/lib/vflow/interfaces/curve-factory.interface.d.ts +2 -2
- package/lib/vflow/interfaces/edge-label.interface.d.ts +0 -4
- package/lib/vflow/interfaces/edge.interface.d.ts +36 -8
- package/lib/vflow/interfaces/node.interface.d.ts +44 -63
- package/lib/vflow/interfaces/selection-strategy.interface.d.ts +16 -0
- package/lib/vflow/interfaces/template-context.interface.d.ts +8 -3
- package/lib/vflow/models/connection.model.d.ts +1 -1
- package/lib/vflow/models/edge.model.d.ts +20 -23
- package/lib/vflow/models/handle.model.d.ts +1 -1
- package/lib/vflow/models/node.model.d.ts +4 -7
- package/lib/vflow/public-components/custom-node/custom-node.component.d.ts +1 -1
- package/lib/vflow/public-components/custom-template-edge/custom-template-edge.component.d.ts +2 -1
- package/lib/vflow/public-components/minimap/minimap.component.d.ts +1 -1
- package/lib/vflow/services/draggable.service.d.ts +3 -0
- package/lib/vflow/services/flow-entities.service.d.ts +2 -2
- package/lib/vflow/services/flow-settings.service.d.ts +3 -0
- package/lib/vflow/services/flow-status.service.d.ts +35 -7
- package/lib/vflow/services/selection.service.d.ts +4 -1
- package/lib/vflow/strategies/default-selection.strategy.d.ts +6 -0
- package/lib/vflow/strategies/manual-selection.strategy.d.ts +5 -0
- package/lib/vflow/types/selection-mode.type.d.ts +1 -0
- package/lib/vflow/types/unwrap-signal.type.d.ts +4 -0
- package/lib/vflow/utils/adjust-direction.d.ts +2 -6
- package/lib/vflow/utils/identity-checker/reference-identity-checker.d.ts +2 -2
- package/lib/vflow/utils/is-vflow-component.d.ts +0 -2
- package/lib/vflow/utils/signals/to-lazy-signal.d.ts +4 -4
- package/package.json +3 -7
- package/public-api.d.ts +3 -2
- package/testing/component-mocks/vflow-mock.component.d.ts +8 -6
- package/testing/directive-mocks/connection-controller-mock.directive.d.ts +8 -6
- package/esm2022/lib/vflow/components/alignment-helper/alignment-helper.component.mjs +0 -103
- package/esm2022/lib/vflow/components/background/background.component.mjs +0 -121
- package/esm2022/lib/vflow/components/connection/connection.component.mjs +0 -157
- package/esm2022/lib/vflow/components/custom-node-base/custom-node-base.component.mjs +0 -57
- package/esm2022/lib/vflow/components/default-node/default-node.component.mjs +0 -16
- package/esm2022/lib/vflow/components/defs/defs.component.mjs +0 -16
- package/esm2022/lib/vflow/components/edge/edge.component.mjs +0 -54
- package/esm2022/lib/vflow/components/edge-label/edge-label.component.mjs +0 -76
- package/esm2022/lib/vflow/components/node/node.component.mjs +0 -107
- package/esm2022/lib/vflow/components/preview-flow/draw-node.mjs +0 -100
- package/esm2022/lib/vflow/components/preview-flow/preview-flow.component.mjs +0 -62
- package/esm2022/lib/vflow/components/vflow/vflow.component.mjs +0 -437
- package/esm2022/lib/vflow/constants/magic-number-to-fix-glitch-in-chrome.constant.mjs +0 -4
- package/esm2022/lib/vflow/decorators/microtask.decorator.mjs +0 -11
- package/esm2022/lib/vflow/directives/changes-controller.directive.mjs +0 -165
- package/esm2022/lib/vflow/directives/connection-controller.directive.mjs +0 -145
- package/esm2022/lib/vflow/directives/drag-handle.directive.mjs +0 -28
- package/esm2022/lib/vflow/directives/flow-size-controller.directive.mjs +0 -40
- package/esm2022/lib/vflow/directives/handle-size-controller.directive.mjs +0 -41
- package/esm2022/lib/vflow/directives/map-context.directive.mjs +0 -116
- package/esm2022/lib/vflow/directives/node-handles-controller.directive.mjs +0 -33
- package/esm2022/lib/vflow/directives/node-resize-controller.directive.mjs +0 -37
- package/esm2022/lib/vflow/directives/pointer.directive.mjs +0 -84
- package/esm2022/lib/vflow/directives/reference.directive.mjs +0 -17
- package/esm2022/lib/vflow/directives/root-pointer.directive.mjs +0 -58
- package/esm2022/lib/vflow/directives/root-svg-context.directive.mjs +0 -35
- package/esm2022/lib/vflow/directives/selectable.directive.mjs +0 -48
- package/esm2022/lib/vflow/directives/space-point-context.directive.mjs +0 -42
- package/esm2022/lib/vflow/directives/template.directive.mjs +0 -119
- package/esm2022/lib/vflow/interfaces/alignment-helper-settings.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/box.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/component-node-event.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/connection-settings.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/connection.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/connection.internal.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/contextable.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/curve-factory.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/edge-label.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/edge.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/fit-view-options.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/flow-entity.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/intersecting-nodes-options.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/marker.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/node-preview.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/node.interface.mjs +0 -53
- package/esm2022/lib/vflow/interfaces/optimization.interface.mjs +0 -7
- package/esm2022/lib/vflow/interfaces/point.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/rect.mjs +0 -10
- package/esm2022/lib/vflow/interfaces/template-context.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/viewport.interface.mjs +0 -2
- package/esm2022/lib/vflow/math/edge-path/bezier-path.mjs +0 -66
- package/esm2022/lib/vflow/math/edge-path/smooth-step-path.mjs +0 -226
- package/esm2022/lib/vflow/math/edge-path/straigh-path.mjs +0 -12
- package/esm2022/lib/vflow/math/point-on-line-by-ratio.mjs +0 -12
- package/esm2022/lib/vflow/models/connection.model.mjs +0 -31
- package/esm2022/lib/vflow/models/edge-label.model.mjs +0 -8
- package/esm2022/lib/vflow/models/edge.model.mjs +0 -208
- package/esm2022/lib/vflow/models/handle.model.mjs +0 -98
- package/esm2022/lib/vflow/models/minimap.model.mjs +0 -7
- package/esm2022/lib/vflow/models/node.model.mjs +0 -181
- package/esm2022/lib/vflow/models/toolbar.model.mjs +0 -36
- package/esm2022/lib/vflow/public-components/custom-dynamic-node/custom-dynamic-node.component.mjs +0 -25
- package/esm2022/lib/vflow/public-components/custom-node/custom-node.component.mjs +0 -24
- package/esm2022/lib/vflow/public-components/custom-template-edge/custom-template-edge.component.mjs +0 -29
- package/esm2022/lib/vflow/public-components/handle/handle.component.mjs +0 -53
- package/esm2022/lib/vflow/public-components/minimap/minimap.component.mjs +0 -108
- package/esm2022/lib/vflow/public-components/node-toolbar/node-toolbar.component.mjs +0 -73
- package/esm2022/lib/vflow/public-components/resizable/resizable.component.mjs +0 -272
- package/esm2022/lib/vflow/services/component-event-bus.service.mjs +0 -18
- package/esm2022/lib/vflow/services/draggable.service.mjs +0 -124
- package/esm2022/lib/vflow/services/edge-changes.service.mjs +0 -43
- package/esm2022/lib/vflow/services/edge-rendering.service.mjs +0 -40
- package/esm2022/lib/vflow/services/flow-entities.service.mjs +0 -56
- package/esm2022/lib/vflow/services/flow-rendering.service.mjs +0 -41
- package/esm2022/lib/vflow/services/flow-settings.service.mjs +0 -33
- package/esm2022/lib/vflow/services/flow-status.service.mjs +0 -49
- package/esm2022/lib/vflow/services/handle.service.mjs +0 -30
- package/esm2022/lib/vflow/services/keyboard.service.mjs +0 -47
- package/esm2022/lib/vflow/services/node-accessor.service.mjs +0 -16
- package/esm2022/lib/vflow/services/node-changes.service.mjs +0 -41
- package/esm2022/lib/vflow/services/node-rendering.service.mjs +0 -66
- package/esm2022/lib/vflow/services/overlays.service.mjs +0 -35
- package/esm2022/lib/vflow/services/preview-flow-render-strategy.service.mjs +0 -21
- package/esm2022/lib/vflow/services/selection.service.mjs +0 -54
- package/esm2022/lib/vflow/services/viewport.service.mjs +0 -64
- package/esm2022/lib/vflow/types/background.type.mjs +0 -2
- package/esm2022/lib/vflow/types/connection-mode.type.mjs +0 -2
- package/esm2022/lib/vflow/types/edge-change.type.mjs +0 -2
- package/esm2022/lib/vflow/types/handle-type.type.mjs +0 -2
- package/esm2022/lib/vflow/types/keyboard-action.type.mjs +0 -2
- package/esm2022/lib/vflow/types/node-change.type.mjs +0 -2
- package/esm2022/lib/vflow/types/position.type.mjs +0 -2
- package/esm2022/lib/vflow/types/viewport-change-type.type.mjs +0 -2
- package/esm2022/lib/vflow/utils/add-nodes-to-edges.mjs +0 -11
- package/esm2022/lib/vflow/utils/adjust-direction.mjs +0 -30
- package/esm2022/lib/vflow/utils/align-number.mjs +0 -4
- package/esm2022/lib/vflow/utils/assert-injector.mjs +0 -27
- package/esm2022/lib/vflow/utils/event.mjs +0 -4
- package/esm2022/lib/vflow/utils/get-os.mjs +0 -24
- package/esm2022/lib/vflow/utils/get-overlapping-area.mjs +0 -6
- package/esm2022/lib/vflow/utils/get-space-points.mjs +0 -25
- package/esm2022/lib/vflow/utils/hash.mjs +0 -7
- package/esm2022/lib/vflow/utils/id.mjs +0 -5
- package/esm2022/lib/vflow/utils/identity-checker/reference-identity-checker.mjs +0 -28
- package/esm2022/lib/vflow/utils/is-callable.mjs +0 -10
- package/esm2022/lib/vflow/utils/is-defined.mjs +0 -4
- package/esm2022/lib/vflow/utils/is-group-node.mjs +0 -4
- package/esm2022/lib/vflow/utils/is-vflow-component.mjs +0 -9
- package/esm2022/lib/vflow/utils/nodes.mjs +0 -60
- package/esm2022/lib/vflow/utils/resizable.mjs +0 -11
- package/esm2022/lib/vflow/utils/round.mjs +0 -2
- package/esm2022/lib/vflow/utils/signals/extended-computed.mjs +0 -15
- package/esm2022/lib/vflow/utils/signals/to-lazy-signal.mjs +0 -35
- package/esm2022/lib/vflow/utils/to-unified-node.mjs +0 -24
- package/esm2022/lib/vflow/utils/transform-background.mjs +0 -4
- package/esm2022/lib/vflow/utils/viewport.mjs +0 -51
- package/esm2022/lib/vflow/vflow.mjs +0 -29
- package/esm2022/ngx-vflow.mjs +0 -5
- package/esm2022/public-api.mjs +0 -55
- package/esm2022/testing/component-mocks/custom-template-edge-mock.component.mjs +0 -16
- package/esm2022/testing/component-mocks/handle-mock.component.mjs +0 -26
- package/esm2022/testing/component-mocks/minimap-mock.component.mjs +0 -24
- package/esm2022/testing/component-mocks/node-toolbar-mock.component.mjs +0 -23
- package/esm2022/testing/component-mocks/resizable-mock.component.mjs +0 -27
- package/esm2022/testing/component-mocks/vflow-mock.component.mjs +0 -299
- package/esm2022/testing/directive-mocks/connection-controller-mock.directive.mjs +0 -29
- package/esm2022/testing/directive-mocks/drag-handle-mock.directive.mjs +0 -11
- package/esm2022/testing/directive-mocks/selectable-mock.directive.mjs +0 -14
- package/esm2022/testing/directive-mocks/template-mock.directive.mjs +0 -101
- package/esm2022/testing/ngx-vflow-testing.mjs +0 -5
- package/esm2022/testing/provide-custom-node-mocks.mjs +0 -60
- package/esm2022/testing/public-api.mjs +0 -13
- package/esm2022/testing/types.mjs +0 -2
- package/esm2022/testing/vflow-mocks.mjs +0 -28
- package/lib/vflow/public-components/custom-dynamic-node/custom-dynamic-node.component.d.ts +0 -13
- package/lib/vflow/utils/to-unified-node.d.ts +0 -2
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export function Microtask(target, key, descriptor) {
|
|
2
|
-
const originalMethod = descriptor.value;
|
|
3
|
-
descriptor.value = function (...args) {
|
|
4
|
-
queueMicrotask(() => {
|
|
5
|
-
originalMethod?.apply(this, args);
|
|
6
|
-
});
|
|
7
|
-
};
|
|
8
|
-
// Return the modified descriptor
|
|
9
|
-
return descriptor;
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm90YXNrLmRlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9kZWNvcmF0b3JzL21pY3JvdGFzay5kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLFNBQVMsQ0FBQyxNQUFXLEVBQUUsR0FBVyxFQUFFLFVBQTZEO0lBQy9HLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFFeEMsVUFBVSxDQUFDLEtBQUssR0FBRyxVQUFVLEdBQUcsSUFBVztRQUN6QyxjQUFjLENBQUMsR0FBRyxFQUFFO1lBQ2xCLGNBQWMsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsaUNBQWlDO0lBQ2pDLE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gTWljcm90YXNrKHRhcmdldDogYW55LCBrZXk6IHN0cmluZywgZGVzY3JpcHRvcjogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8KC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkPikge1xuICBjb25zdCBvcmlnaW5hbE1ldGhvZCA9IGRlc2NyaXB0b3IudmFsdWU7XG5cbiAgZGVzY3JpcHRvci52YWx1ZSA9IGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgIG9yaWdpbmFsTWV0aG9kPy5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICB9KTtcbiAgfTtcblxuICAvLyBSZXR1cm4gdGhlIG1vZGlmaWVkIGRlc2NyaXB0b3JcbiAgcmV0dXJuIGRlc2NyaXB0b3I7XG59XG4iXX0=
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import { Directive, inject } from '@angular/core';
|
|
2
|
-
import { EdgeChangesService } from '../services/edge-changes.service';
|
|
3
|
-
import { NodesChangeService } from '../services/node-changes.service';
|
|
4
|
-
import { filter, map } from 'rxjs';
|
|
5
|
-
import { outputFromObservable } from '@angular/core/rxjs-interop';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class ChangesControllerDirective {
|
|
8
|
-
constructor() {
|
|
9
|
-
this.nodesChangeService = inject(NodesChangeService);
|
|
10
|
-
this.edgesChangeService = inject(EdgeChangesService);
|
|
11
|
-
/**
|
|
12
|
-
* Watch nodes change
|
|
13
|
-
*/
|
|
14
|
-
this.onNodesChange = outputFromObservable(this.nodesChangeService.changes$);
|
|
15
|
-
this.onNodesChangePosition = outputFromObservable(this.nodeChangesOfType('position'), {
|
|
16
|
-
alias: 'onNodesChange.position',
|
|
17
|
-
});
|
|
18
|
-
/**
|
|
19
|
-
* @deprecated use `onNodesChange.position` instead
|
|
20
|
-
*/
|
|
21
|
-
this.onNodesChangePositionSignle = outputFromObservable(this.singleChange(this.nodeChangesOfType('position')), { alias: 'onNodesChange.position.single' });
|
|
22
|
-
/**
|
|
23
|
-
* @deprecated use `onNodesChange.position` instead
|
|
24
|
-
*/
|
|
25
|
-
this.onNodesChangePositionMany = outputFromObservable(this.manyChanges(this.nodeChangesOfType('position')), { alias: 'onNodesChange.position.many' });
|
|
26
|
-
this.onNodesChangeSize = outputFromObservable(this.nodeChangesOfType('size'), {
|
|
27
|
-
alias: 'onNodesChange.size',
|
|
28
|
-
});
|
|
29
|
-
/**
|
|
30
|
-
* @deprecated use `onNodesChange.size` instead
|
|
31
|
-
*/
|
|
32
|
-
this.onNodesChangeSizeSingle = outputFromObservable(this.singleChange(this.nodeChangesOfType('size')), {
|
|
33
|
-
alias: 'onNodesChange.size.single',
|
|
34
|
-
});
|
|
35
|
-
/**
|
|
36
|
-
* @deprecated use `onNodesChange.size` instead
|
|
37
|
-
*/
|
|
38
|
-
this.onNodesChangeSizeMany = outputFromObservable(this.manyChanges(this.nodeChangesOfType('size')), {
|
|
39
|
-
alias: 'onNodesChange.size.many',
|
|
40
|
-
});
|
|
41
|
-
this.onNodesChangeAdd = outputFromObservable(this.nodeChangesOfType('add'), {
|
|
42
|
-
alias: 'onNodesChange.add',
|
|
43
|
-
});
|
|
44
|
-
/**
|
|
45
|
-
* @deprecated use `onNodesChange.add` instead
|
|
46
|
-
*/
|
|
47
|
-
this.onNodesChangeAddSingle = outputFromObservable(this.singleChange(this.nodeChangesOfType('add')), {
|
|
48
|
-
alias: 'onNodesChange.add.single',
|
|
49
|
-
});
|
|
50
|
-
/**
|
|
51
|
-
* @deprecated use `onNodesChange.add` instead
|
|
52
|
-
*/
|
|
53
|
-
this.onNodesChangeAddMany = outputFromObservable(this.manyChanges(this.nodeChangesOfType('add')), {
|
|
54
|
-
alias: 'onNodesChange.add.many',
|
|
55
|
-
});
|
|
56
|
-
this.onNodesChangeRemove = outputFromObservable(this.nodeChangesOfType('remove'), {
|
|
57
|
-
alias: 'onNodesChange.remove',
|
|
58
|
-
});
|
|
59
|
-
/**
|
|
60
|
-
* @deprecated use `onNodesChange.remove` instead
|
|
61
|
-
*/
|
|
62
|
-
this.onNodesChangeRemoveSingle = outputFromObservable(this.singleChange(this.nodeChangesOfType('remove')), { alias: 'onNodesChange.remove.single' });
|
|
63
|
-
/**
|
|
64
|
-
* @deprecated use `onNodesChange.remove` instead
|
|
65
|
-
*/
|
|
66
|
-
this.onNodesChangeRemoveMany = outputFromObservable(this.manyChanges(this.nodeChangesOfType('remove')), {
|
|
67
|
-
alias: 'onNodesChange.remove.many',
|
|
68
|
-
});
|
|
69
|
-
this.onNodesChangeSelect = outputFromObservable(this.nodeChangesOfType('select'), {
|
|
70
|
-
alias: 'onNodesChange.select',
|
|
71
|
-
});
|
|
72
|
-
/**
|
|
73
|
-
* @deprecated use `onNodesChange.select` instead
|
|
74
|
-
*/
|
|
75
|
-
this.onNodesChangeSelectSingle = outputFromObservable(this.singleChange(this.nodeChangesOfType('select')), { alias: 'onNodesChange.select.single' });
|
|
76
|
-
/**
|
|
77
|
-
* @deprecated use `onNodesChange.select` instead
|
|
78
|
-
*/
|
|
79
|
-
this.onNodesChangeSelectMany = outputFromObservable(this.manyChanges(this.nodeChangesOfType('select')), {
|
|
80
|
-
alias: 'onNodesChange.select.many',
|
|
81
|
-
});
|
|
82
|
-
/**
|
|
83
|
-
* Watch edges change
|
|
84
|
-
*/
|
|
85
|
-
this.onEdgesChange = outputFromObservable(this.edgesChangeService.changes$);
|
|
86
|
-
this.onNodesChangeDetached = outputFromObservable(this.edgeChangesOfType('detached'), {
|
|
87
|
-
alias: 'onEdgesChange.detached',
|
|
88
|
-
});
|
|
89
|
-
/**
|
|
90
|
-
* @deprecated use `onEdgesChange.detached` instead
|
|
91
|
-
*/
|
|
92
|
-
this.onNodesChangeDetachedSingle = outputFromObservable(this.singleChange(this.edgeChangesOfType('detached')), { alias: 'onEdgesChange.detached.single' });
|
|
93
|
-
/**
|
|
94
|
-
* @deprecated use `onEdgesChange.detached` instead
|
|
95
|
-
*/
|
|
96
|
-
this.onNodesChangeDetachedMany = outputFromObservable(this.manyChanges(this.edgeChangesOfType('detached')), { alias: 'onEdgesChange.detached.many' });
|
|
97
|
-
this.onEdgesChangeAdd = outputFromObservable(this.edgeChangesOfType('add'), {
|
|
98
|
-
alias: 'onEdgesChange.add',
|
|
99
|
-
});
|
|
100
|
-
/**
|
|
101
|
-
* @deprecated use `onEdgesChange.add` instead
|
|
102
|
-
*/
|
|
103
|
-
this.onEdgeChangeAddSingle = outputFromObservable(this.singleChange(this.edgeChangesOfType('add')), {
|
|
104
|
-
alias: 'onEdgesChange.add.single',
|
|
105
|
-
});
|
|
106
|
-
/**
|
|
107
|
-
* @deprecated use `onEdgesChange.add` instead
|
|
108
|
-
*/
|
|
109
|
-
this.onEdgeChangeAddMany = outputFromObservable(this.manyChanges(this.edgeChangesOfType('add')), {
|
|
110
|
-
alias: 'onEdgesChange.add.many',
|
|
111
|
-
});
|
|
112
|
-
this.onEdgeChangeRemove = outputFromObservable(this.edgeChangesOfType('remove'), {
|
|
113
|
-
alias: 'onEdgesChange.remove',
|
|
114
|
-
});
|
|
115
|
-
/**
|
|
116
|
-
* @deprecated use `onEdgesChange.remove` instead
|
|
117
|
-
*/
|
|
118
|
-
this.onEdgeChangeRemoveSingle = outputFromObservable(this.singleChange(this.edgeChangesOfType('remove')), {
|
|
119
|
-
alias: 'onEdgesChange.remove.single',
|
|
120
|
-
});
|
|
121
|
-
/**
|
|
122
|
-
* @deprecated use `onEdgesChange.remove` instead
|
|
123
|
-
*/
|
|
124
|
-
this.onEdgeChangeRemoveMany = outputFromObservable(this.manyChanges(this.edgeChangesOfType('remove')), {
|
|
125
|
-
alias: 'onEdgesChange.remove.many',
|
|
126
|
-
});
|
|
127
|
-
this.onEdgeChangeSelect = outputFromObservable(this.edgeChangesOfType('select'), {
|
|
128
|
-
alias: 'onEdgesChange.select',
|
|
129
|
-
});
|
|
130
|
-
/**
|
|
131
|
-
* @deprecated use `onEdgesChange.select` instead
|
|
132
|
-
*/
|
|
133
|
-
this.onEdgeChangeSelectSingle = outputFromObservable(this.singleChange(this.edgeChangesOfType('select')), {
|
|
134
|
-
alias: 'onEdgesChange.select.single',
|
|
135
|
-
});
|
|
136
|
-
/**
|
|
137
|
-
* @deprecated use `onEdgesChange.select` instead
|
|
138
|
-
*/
|
|
139
|
-
this.onEdgeChangeSelectMany = outputFromObservable(this.manyChanges(this.edgeChangesOfType('select')), {
|
|
140
|
-
alias: 'onEdgesChange.select.many',
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
nodeChangesOfType(type) {
|
|
144
|
-
return this.nodesChangeService.changes$.pipe(map((changes) => changes.filter((c) => c.type === type)), filter((changes) => !!changes.length));
|
|
145
|
-
}
|
|
146
|
-
edgeChangesOfType(type) {
|
|
147
|
-
return this.edgesChangeService.changes$.pipe(map((changes) => changes.filter((c) => c.type === type)), filter((changes) => !!changes.length));
|
|
148
|
-
}
|
|
149
|
-
singleChange(changes$) {
|
|
150
|
-
return changes$.pipe(filter((changes) => changes.length === 1), map(([first]) => first));
|
|
151
|
-
}
|
|
152
|
-
manyChanges(changes$) {
|
|
153
|
-
return changes$.pipe(filter((changes) => changes.length > 1));
|
|
154
|
-
}
|
|
155
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChangesControllerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
156
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: ChangesControllerDirective, isStandalone: true, selector: "[changesController]", outputs: { onNodesChange: "onNodesChange", onNodesChangePosition: "onNodesChange.position", onNodesChangePositionSignle: "onNodesChange.position.single", onNodesChangePositionMany: "onNodesChange.position.many", onNodesChangeSize: "onNodesChange.size", onNodesChangeSizeSingle: "onNodesChange.size.single", onNodesChangeSizeMany: "onNodesChange.size.many", onNodesChangeAdd: "onNodesChange.add", onNodesChangeAddSingle: "onNodesChange.add.single", onNodesChangeAddMany: "onNodesChange.add.many", onNodesChangeRemove: "onNodesChange.remove", onNodesChangeRemoveSingle: "onNodesChange.remove.single", onNodesChangeRemoveMany: "onNodesChange.remove.many", onNodesChangeSelect: "onNodesChange.select", onNodesChangeSelectSingle: "onNodesChange.select.single", onNodesChangeSelectMany: "onNodesChange.select.many", onEdgesChange: "onEdgesChange", onNodesChangeDetached: "onEdgesChange.detached", onNodesChangeDetachedSingle: "onEdgesChange.detached.single", onNodesChangeDetachedMany: "onEdgesChange.detached.many", onEdgesChangeAdd: "onEdgesChange.add", onEdgeChangeAddSingle: "onEdgesChange.add.single", onEdgeChangeAddMany: "onEdgesChange.add.many", onEdgeChangeRemove: "onEdgesChange.remove", onEdgeChangeRemoveSingle: "onEdgesChange.remove.single", onEdgeChangeRemoveMany: "onEdgesChange.remove.many", onEdgeChangeSelect: "onEdgesChange.select", onEdgeChangeSelectSingle: "onEdgesChange.select.single", onEdgeChangeSelectMany: "onEdgesChange.select.many" }, ngImport: i0 }); }
|
|
157
|
-
}
|
|
158
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChangesControllerDirective, decorators: [{
|
|
159
|
-
type: Directive,
|
|
160
|
-
args: [{
|
|
161
|
-
selector: '[changesController]',
|
|
162
|
-
standalone: true,
|
|
163
|
-
}]
|
|
164
|
-
}] });
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlcy1jb250cm9sbGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9kaXJlY3RpdmVzL2NoYW5nZXMtY29udHJvbGxlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFTbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFjLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFRL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBTWxFLE1BQU0sT0FBTywwQkFBMEI7SUFKdkM7UUFLWSx1QkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNoRCx1QkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUUxRDs7V0FFRztRQUNhLGtCQUFhLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXZFLDBCQUFxQixHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUMvRixLQUFLLEVBQUUsd0JBQXdCO1NBQ2hDLENBQUMsQ0FBQztRQUVIOztXQUVHO1FBQ2EsZ0NBQTJCLEdBQUcsb0JBQW9CLENBQ2hFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQ3JELEVBQUUsS0FBSyxFQUFFLCtCQUErQixFQUFFLENBQzNDLENBQUM7UUFFRjs7V0FFRztRQUNh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LGlCQUFpQixDQUErQixJQUFPO1FBQzdELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQzFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBeUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsRUFDL0UsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUN0QyxDQUFDO0lBQ0osQ0FBQztJQUVPLFlBQVksQ0FBSSxRQUF5QjtRQUMvQyxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQ2xCLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsRUFDekMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQ3hCLENBQUM7SUFDSixDQUFDO0lBRU8sV0FBVyxDQUFJLFFBQXlCO1FBQzlDLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDOytHQTdNVSwwQkFBMEI7bUdBQTFCLDBCQUEwQjs7NEZBQTFCLDBCQUEwQjtrQkFKdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgTm9kZUFkZENoYW5nZSxcbiAgTm9kZUNoYW5nZSxcbiAgTm9kZVBvc2l0aW9uQ2hhbmdlLFxuICBOb2RlUmVtb3ZlQ2hhbmdlLFxuICBOb2RlU2VsZWN0ZWRDaGFuZ2UsXG4gIE5vZGVTaXplQ2hhbmdlLFxufSBmcm9tICcuLi90eXBlcy9ub2RlLWNoYW5nZS50eXBlJztcbmltcG9ydCB7IEVkZ2VDaGFuZ2VzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2VkZ2UtY2hhbmdlcy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGVzQ2hhbmdlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL25vZGUtY2hhbmdlcy5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBFZGdlQWRkQ2hhbmdlLFxuICBFZGdlQ2hhbmdlLFxuICBFZGdlRGV0YWNoZWRDaGFuZ2UsXG4gIEVkZ2VSZW1vdmVDaGFuZ2UsXG4gIEVkZ2VTZWxlY3RDaGFuZ2UsXG59IGZyb20gJy4uL3R5cGVzL2VkZ2UtY2hhbmdlLnR5cGUnO1xuaW1wb3J0IHsgb3V0cHV0RnJvbU9ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjaGFuZ2VzQ29udHJvbGxlcl0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBDaGFuZ2VzQ29udHJvbGxlckRpcmVjdGl2ZSB7XG4gIHByb3RlY3RlZCBub2Rlc0NoYW5nZVNlcnZpY2UgPSBpbmplY3QoTm9kZXNDaGFuZ2VTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIGVkZ2VzQ2hhbmdlU2VydmljZSA9IGluamVjdChFZGdlQ2hhbmdlc1NlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBXYXRjaCBub2RlcyBjaGFuZ2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvbk5vZGVzQ2hhbmdlID0gb3V0cHV0RnJvbU9ic2VydmFibGUodGhpcy5ub2Rlc0NoYW5nZVNlcnZpY2UuY2hhbmdlcyQpO1xuXG4gIHB1YmxpYyByZWFkb25seSBvbk5vZGVzQ2hhbmdlUG9zaXRpb24gPSBvdXRwdXRGcm9tT2JzZXJ2YWJsZSh0aGlzLm5vZGVDaGFuZ2VzT2ZUeXBlKCdwb3NpdGlvbicpLCB7XG4gICAgYWxpYXM6ICdvbk5vZGVzQ2hhbmdlLnBvc2l0aW9uJyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgb25Ob2Rlc0NoYW5nZS5wb3NpdGlvbmAgaW5zdGVhZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9uTm9kZXNDaGFuZ2VQb3NpdGlvblNpZ25sZSA9IG91dHB1dEZyb21PYnNlcnZhYmxlKFxuICAgIHRoaXMuc2luZ2xlQ2hhbmdlKHRoaXMubm9kZUNoYW5nZXNPZlR5cGUoJ3Bvc2l0aW9uJykpLFxuICAgIHsgYWxpYXM6ICdvbk5vZGVzQ2hhbmdlLnBvc2l0aW9uLnNpbmdsZScgfSxcbiAgKTtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGBvbk5vZGVzQ2hhbmdlLnBvc2l0aW9uYCBpbnN0ZWFkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgb25Ob2Rlc0NoYW5nZVBvc2l0aW9uTWFueSA9IG91dHB1dEZyb21PYnNlcnZhYmxlKFxuICAgIHRoaXMubWFueUNoYW5nZXModGhpcy5ub2RlQ2hhbmdlc09mVHlwZSgncG9zaXRpb24nKSksXG4gICAgeyBhbGlhczogJ29uTm9kZXNDaGFuZ2UucG9zaXRpb24ubWFueScgfSxcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgb25Ob2Rlc0NoYW5nZVNpemUgPSBvdXRwdXRGcm9tT2JzZXJ2YWJsZSh0aGlzLm5vZGVDaGFuZ2VzT2ZUeXBlKCdzaXplJyksIHtcbiAgICBhbGlhczogJ29uTm9kZXNDaGFuZ2Uuc2l6ZScsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYG9uTm9kZXNDaGFuZ2Uuc2l6ZWAgaW5zdGVhZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9uTm9kZXNDaGFuZ2VTaXplU2luZ2xlID0gb3V0cHV0RnJvbU9ic2VydmFibGUodGhpcy5zaW5nbGVDaGFuZ2UodGhpcy5ub2RlQ2hhbmdlc09mVHlwZSgnc2l6ZScpKSwge1xuICAgIGFsaWFzOiAnb25Ob2Rlc0NoYW5nZS5zaXplLnNpbmdsZScsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYG9uTm9kZXNDaGFuZ2Uuc2l6ZWAgaW5zdGVhZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9uTm9kZXNDaGFuZ2VTaXplTWFueSA9IG91dHB1dEZyb21PYnNlcnZhYmxlKHRoaXMubWFueUNoYW5nZXModGhpcy5ub2RlQ2hhbmdlc09mVHlwZSgnc2l6ZScpKSwge1xuICAgIGFsaWFzOiAnb25Ob2Rlc0NoYW5nZS5zaXplLm1hbnknLFxuICB9KTtcblxuICBwdWJsaWMgcmVhZG9ubHkgb25Ob2Rlc0NoYW5nZUFkZCA9IG91dHB1dEZyb21PYnNlcnZhYmxlKHRoaXMubm9kZUNoYW5nZXNPZlR5cGUoJ2FkZCcpLCB7XG4gICAgYWxpYXM6ICdvbk5vZGVzQ2hhbmdlLmFkZCcsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYG9uTm9kZXNDaGFuZ2UuYWRkYCBpbnN0ZWFkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgb25Ob2Rlc0NoYW5nZUFkZFNpbmdsZSA9IG91dHB1dEZyb21PYnNlcnZhYmxlKHRoaXMuc2luZ2xlQ2hhbmdlKHRoaXMubm9kZUNoYW5nZXNPZlR5cGUoJ2FkZCcpKSwge1xuICAgIGFsaWFzOiAnb25Ob2Rlc0NoYW5nZS5hZGQuc2luZ2xlJyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgb25Ob2Rlc0NoYW5nZS5hZGRgIGluc3RlYWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvbk5vZGVzQ2hhbmdlQWRkTWFueSA9IG91dHB1dEZyb21PYnNlcnZhYmxlKHRoaXMubWFueUNoYW5nZXModGhpcy5ub2RlQ2hhbmdlc09mVHlwZSgnYWRkJykpLCB7XG4gICAgYWxpYXM6ICdvbk5vZGVzQ2hhbmdlLmFkZC5tYW55JyxcbiAgfSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IG9uTm9kZXNDaGFuZ2VSZW1vdmUgPSBvdXRwdXRGcm9tT2JzZXJ2YWJsZSh0aGlzLm5vZGVDaGFuZ2VzT2ZUeXBlKCdyZW1vdmUnKSwge1xuICAgIGFsaWFzOiAnb25Ob2Rlc0NoYW5nZS5yZW1vdmUnLFxuICB9KTtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGBvbk5vZGVzQ2hhbmdlLnJlbW92ZWAgaW5zdGVhZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9uTm9kZXNDaGFuZ2VSZW1vdmVTaW5nbGUgPSBvdXRwdXRGcm9tT2JzZXJ2YWJsZShcbiAgICB0aGlzLnNpbmdsZUNoYW5nZSh0aGlzLm5vZGVDaGFuZ2VzT2ZUeXBlKCdyZW1vdmUnKSksXG4gICAgeyBhbGlhczogJ29uTm9kZXNDaGFuZ2UucmVtb3ZlLnNpbmdsZScgfSxcbiAgKTtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGBvbk5vZGVzQ2hhbmdlLnJlbW92ZWAgaW5zdGVhZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9uTm9kZXNDaGFuZ2VSZW1vdmVNYW55ID0gb3V0cHV0RnJvbU9ic2VydmFibGUodGhpcy5tYW55Q2hhbmdlcyh0aGlzLm5vZGVDaGFuZ2VzT2ZUeXBlKCdyZW1vdmUnKSksIHtcbiAgICBhbGlhczogJ29uTm9kZXNDaGFuZ2UucmVtb3ZlLm1hbnknLFxuICB9KTtcblxuICBwdWJsaWMgcmVhZG9ubHkgb25Ob2Rlc0NoYW5nZVNlbGVjdCA9IG91dHB1dEZyb21PYnNlcnZhYmxlKHRoaXMubm9kZUNoYW5nZXNPZlR5cGUoJ3NlbGVjdCcpLCB7XG4gICAgYWxpYXM6ICdvbk5vZGVzQ2hhbmdlLnNlbGVjdCcsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYG9uTm9kZXNDaGFuZ2Uuc2VsZWN0YCBpbnN0ZWFkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgb25Ob2Rlc0NoYW5nZVNlbGVjdFNpbmdsZSA9IG91dHB1dEZyb21PYnNlcnZhYmxlKFxuICAgIHRoaXMuc2luZ2xlQ2hhbmdlKHRoaXMubm9kZUNoYW5nZXNPZlR5cGUoJ3NlbGVjdCcpKSxcbiAgICB7IGFsaWFzOiAnb25Ob2Rlc0NoYW5nZS5zZWxlY3Quc2luZ2xlJyB9LFxuICApO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYG9uTm9kZXNDaGFuZ2Uuc2VsZWN0YCBpbnN0ZWFkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgb25Ob2Rlc0NoYW5nZVNlbGVjdE1hbnkgPSBvdXRwdXRGcm9tT2JzZXJ2YWJsZSh0aGlzLm1hbnlDaGFuZ2VzKHRoaXMubm9kZUNoYW5nZXNPZlR5cGUoJ3NlbGVjdCcpKSwge1xuICAgIGFsaWFzOiAnb25Ob2Rlc0NoYW5nZS5zZWxlY3QubWFueScsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBXYXRjaCBlZGdlcyBjaGFuZ2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvbkVkZ2VzQ2hhbmdlID0gb3V0cHV0RnJvbU9ic2VydmFibGUodGhpcy5lZGdlc0NoYW5nZVNlcnZpY2UuY2hhbmdlcyQpO1xuXG4gIHB1YmxpYyByZWFkb25seSBvbk5vZGVzQ2hhbmdlRGV0YWNoZWQgPSBvdXRwdXRGcm9tT2JzZXJ2YWJsZSh0aGlzLmVkZ2VDaGFuZ2VzT2ZUeXBlKCdkZXRhY2hlZCcpLCB7XG4gICAgYWxpYXM6ICdvbkVkZ2VzQ2hhbmdlLmRldGFjaGVkJyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgb25FZGdlc0NoYW5nZS5kZXRhY2hlZGAgaW5zdGVhZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9uTm9kZXNDaGFuZ2VEZXRhY2hlZFNpbmdsZSA9IG91dHB1dEZyb21PYnNlcnZhYmxlKFxuICAgIHRoaXMuc2luZ2xlQ2hhbmdlKHRoaXMuZWRnZUNoYW5nZXNPZlR5cGUoJ2RldGFjaGVkJykpLFxuICAgIHsgYWxpYXM6ICdvbkVkZ2VzQ2hhbmdlLmRldGFjaGVkLnNpbmdsZScgfSxcbiAgKTtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGBvbkVkZ2VzQ2hhbmdlLmRldGFjaGVkYCBpbnN0ZWFkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgb25Ob2Rlc0NoYW5nZURldGFjaGVkTWFueSA9IG91dHB1dEZyb21PYnNlcnZhYmxlKFxuICAgIHRoaXMubWFueUNoYW5nZXModGhpcy5lZGdlQ2hhbmdlc09mVHlwZSgnZGV0YWNoZWQnKSksXG4gICAgeyBhbGlhczogJ29uRWRnZXNDaGFuZ2UuZGV0YWNoZWQubWFueScgfSxcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgb25FZGdlc0NoYW5nZUFkZCA9IG91dHB1dEZyb21PYnNlcnZhYmxlKHRoaXMuZWRnZUNoYW5nZXNPZlR5cGUoJ2FkZCcpLCB7XG4gICAgYWxpYXM6ICdvbkVkZ2VzQ2hhbmdlLmFkZCcsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYG9uRWRnZXNDaGFuZ2UuYWRkYCBpbnN0ZWFkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgb25FZGdlQ2hhbmdlQWRkU2luZ2xlID0gb3V0cHV0RnJvbU9ic2VydmFibGUodGhpcy5zaW5nbGVDaGFuZ2UodGhpcy5lZGdlQ2hhbmdlc09mVHlwZSgnYWRkJykpLCB7XG4gICAgYWxpYXM6ICdvbkVkZ2VzQ2hhbmdlLmFkZC5zaW5nbGUnLFxuICB9KTtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGBvbkVkZ2VzQ2hhbmdlLmFkZGAgaW5zdGVhZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9uRWRnZUNoYW5nZUFkZE1hbnkgPSBvdXRwdXRGcm9tT2JzZXJ2YWJsZSh0aGlzLm1hbnlDaGFuZ2VzKHRoaXMuZWRnZUNoYW5nZXNPZlR5cGUoJ2FkZCcpKSwge1xuICAgIGFsaWFzOiAnb25FZGdlc0NoYW5nZS5hZGQubWFueScsXG4gIH0pO1xuXG4gIHB1YmxpYyByZWFkb25seSBvbkVkZ2VDaGFuZ2VSZW1vdmUgPSBvdXRwdXRGcm9tT2JzZXJ2YWJsZSh0aGlzLmVkZ2VDaGFuZ2VzT2ZUeXBlKCdyZW1vdmUnKSwge1xuICAgIGFsaWFzOiAnb25FZGdlc0NoYW5nZS5yZW1vdmUnLFxuICB9KTtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGBvbkVkZ2VzQ2hhbmdlLnJlbW92ZWAgaW5zdGVhZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9uRWRnZUNoYW5nZVJlbW92ZVNpbmdsZSA9IG91dHB1dEZyb21PYnNlcnZhYmxlKHRoaXMuc2luZ2xlQ2hhbmdlKHRoaXMuZWRnZUNoYW5nZXNPZlR5cGUoJ3JlbW92ZScpKSwge1xuICAgIGFsaWFzOiAnb25FZGdlc0NoYW5nZS5yZW1vdmUuc2luZ2xlJyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgb25FZGdlc0NoYW5nZS5yZW1vdmVgIGluc3RlYWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvbkVkZ2VDaGFuZ2VSZW1vdmVNYW55ID0gb3V0cHV0RnJvbU9ic2VydmFibGUodGhpcy5tYW55Q2hhbmdlcyh0aGlzLmVkZ2VDaGFuZ2VzT2ZUeXBlKCdyZW1vdmUnKSksIHtcbiAgICBhbGlhczogJ29uRWRnZXNDaGFuZ2UucmVtb3ZlLm1hbnknLFxuICB9KTtcblxuICBwdWJsaWMgcmVhZG9ubHkgb25FZGdlQ2hhbmdlU2VsZWN0ID0gb3V0cHV0RnJvbU9ic2VydmFibGUodGhpcy5lZGdlQ2hhbmdlc09mVHlwZSgnc2VsZWN0JyksIHtcbiAgICBhbGlhczogJ29uRWRnZXNDaGFuZ2Uuc2VsZWN0JyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgb25FZGdlc0NoYW5nZS5zZWxlY3RgIGluc3RlYWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvbkVkZ2VDaGFuZ2VTZWxlY3RTaW5nbGUgPSBvdXRwdXRGcm9tT2JzZXJ2YWJsZSh0aGlzLnNpbmdsZUNoYW5nZSh0aGlzLmVkZ2VDaGFuZ2VzT2ZUeXBlKCdzZWxlY3QnKSksIHtcbiAgICBhbGlhczogJ29uRWRnZXNDaGFuZ2Uuc2VsZWN0LnNpbmdsZScsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYG9uRWRnZXNDaGFuZ2Uuc2VsZWN0YCBpbnN0ZWFkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgb25FZGdlQ2hhbmdlU2VsZWN0TWFueSA9IG91dHB1dEZyb21PYnNlcnZhYmxlKHRoaXMubWFueUNoYW5nZXModGhpcy5lZGdlQ2hhbmdlc09mVHlwZSgnc2VsZWN0JykpLCB7XG4gICAgYWxpYXM6ICdvbkVkZ2VzQ2hhbmdlLnNlbGVjdC5tYW55JyxcbiAgfSk7XG5cbiAgcHJpdmF0ZSBub2RlQ2hhbmdlc09mVHlwZTxUIGV4dGVuZHMgTm9kZUNoYW5nZVsndHlwZSddPih0eXBlOiBUKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZXNDaGFuZ2VTZXJ2aWNlLmNoYW5nZXMkLnBpcGUoXG4gICAgICBtYXAoKGNoYW5nZXMpID0+IGNoYW5nZXMuZmlsdGVyKChjKTogYyBpcyBOb2RlQ2hhbmdlTWFwW1RdID0+IGMudHlwZSA9PT0gdHlwZSkpLFxuICAgICAgZmlsdGVyKChjaGFuZ2VzKSA9PiAhIWNoYW5nZXMubGVuZ3RoKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBlZGdlQ2hhbmdlc09mVHlwZTxUIGV4dGVuZHMgRWRnZUNoYW5nZVsndHlwZSddPih0eXBlOiBUKSB7XG4gICAgcmV0dXJuIHRoaXMuZWRnZXNDaGFuZ2VTZXJ2aWNlLmNoYW5nZXMkLnBpcGUoXG4gICAgICBtYXAoKGNoYW5nZXMpID0+IGNoYW5nZXMuZmlsdGVyKChjKTogYyBpcyBFZGdlQ2hhbmdlTWFwW1RdID0+IGMudHlwZSA9PT0gdHlwZSkpLFxuICAgICAgZmlsdGVyKChjaGFuZ2VzKSA9PiAhIWNoYW5nZXMubGVuZ3RoKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzaW5nbGVDaGFuZ2U8VD4oY2hhbmdlcyQ6IE9ic2VydmFibGU8VFtdPikge1xuICAgIHJldHVybiBjaGFuZ2VzJC5waXBlKFxuICAgICAgZmlsdGVyKChjaGFuZ2VzKSA9PiBjaGFuZ2VzLmxlbmd0aCA9PT0gMSksXG4gICAgICBtYXAoKFtmaXJzdF0pID0+IGZpcnN0KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBtYW55Q2hhbmdlczxUPihjaGFuZ2VzJDogT2JzZXJ2YWJsZTxUW10+KSB7XG4gICAgcmV0dXJuIGNoYW5nZXMkLnBpcGUoZmlsdGVyKChjaGFuZ2VzKSA9PiBjaGFuZ2VzLmxlbmd0aCA+IDEpKTtcbiAgfVxufVxuXG4vLyBUT0RPOiBkbyBub3Qgd3JpdGUgdGhpcyB0eXBlcyBtYW51YWxseVxudHlwZSBOb2RlQ2hhbmdlTWFwID0ge1xuICBwb3NpdGlvbjogTm9kZVBvc2l0aW9uQ2hhbmdlO1xuICBzaXplOiBOb2RlU2l6ZUNoYW5nZTtcbiAgYWRkOiBOb2RlQWRkQ2hhbmdlO1xuICByZW1vdmU6IE5vZGVSZW1vdmVDaGFuZ2U7XG4gIHNlbGVjdDogTm9kZVNlbGVjdGVkQ2hhbmdlO1xufTtcblxudHlwZSBFZGdlQ2hhbmdlTWFwID0ge1xuICBkZXRhY2hlZDogRWRnZURldGFjaGVkQ2hhbmdlO1xuICBhZGQ6IEVkZ2VBZGRDaGFuZ2U7XG4gIHJlbW92ZTogRWRnZVJlbW92ZUNoYW5nZTtcbiAgc2VsZWN0OiBFZGdlU2VsZWN0Q2hhbmdlO1xufTtcbiJdfQ==
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { Directive, computed, inject } from '@angular/core';
|
|
2
|
-
import { FlowStatusService } from '../services/flow-status.service';
|
|
3
|
-
import { FlowEntitiesService } from '../services/flow-entities.service';
|
|
4
|
-
import { adjustDirection } from '../utils/adjust-direction';
|
|
5
|
-
import { outputFromObservable, toObservable } from '@angular/core/rxjs-interop';
|
|
6
|
-
import { filter, map, tap } from 'rxjs';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export class ConnectionControllerDirective {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.statusService = inject(FlowStatusService);
|
|
11
|
-
this.flowEntitiesService = inject(FlowEntitiesService);
|
|
12
|
-
/**
|
|
13
|
-
* This event fires when user tries to create new Edge.
|
|
14
|
-
*
|
|
15
|
-
* `Connection` is an entity that contains data about source and target nodes.
|
|
16
|
-
*
|
|
17
|
-
* Also it's important to note, that this event only fires when connection is valid by validator function in `ConnectionSettings`,
|
|
18
|
-
* by default without passing the validator every connection concidered valid.
|
|
19
|
-
*
|
|
20
|
-
* @deprecated use `connect` output instead
|
|
21
|
-
*/
|
|
22
|
-
// eslint-disable-next-line @angular-eslint/no-output-on-prefix
|
|
23
|
-
this.onConnect = outputFromObservable(toObservable(this.statusService.status).pipe(filter((status) => status.state === 'connection-end'), map((status) => statusToConnection(status, this.isStrictMode())), tap(() => this.statusService.setIdleStatus()), filter((connection) => this.flowEntitiesService.connection().validator(connection))));
|
|
24
|
-
this.connect = outputFromObservable(toObservable(this.statusService.status).pipe(filter((status) => status.state === 'connection-end'), map((status) => statusToConnection(status, this.isStrictMode())), tap(() => this.statusService.setIdleStatus()), filter((connection) => this.flowEntitiesService.connection().validator(connection))));
|
|
25
|
-
/**
|
|
26
|
-
* @deprecated use `reconnect` output instead
|
|
27
|
-
*/
|
|
28
|
-
this.onReconnect = outputFromObservable(toObservable(this.statusService.status).pipe(filter((status) => status.state === 'reconnection-end'), map((status) => {
|
|
29
|
-
const connection = statusToConnection(status, this.isStrictMode());
|
|
30
|
-
const oldEdge = status.payload.oldEdge.edge;
|
|
31
|
-
return { connection, oldEdge };
|
|
32
|
-
}), tap(() => this.statusService.setIdleStatus()), filter(({ connection }) => this.flowEntitiesService.connection().validator(connection))));
|
|
33
|
-
this.reconnect = outputFromObservable(toObservable(this.statusService.status).pipe(filter((status) => status.state === 'reconnection-end'), map((status) => {
|
|
34
|
-
const connection = statusToConnection(status, this.isStrictMode());
|
|
35
|
-
const oldEdge = status.payload.oldEdge.edge;
|
|
36
|
-
return { connection, oldEdge };
|
|
37
|
-
}), tap(() => this.statusService.setIdleStatus()), filter(({ connection }) => this.flowEntitiesService.connection().validator(connection))));
|
|
38
|
-
this.isStrictMode = computed(() => this.flowEntitiesService.connection().mode === 'strict');
|
|
39
|
-
}
|
|
40
|
-
startConnection(handle) {
|
|
41
|
-
this.statusService.setConnectionStartStatus(handle.parentNode, handle);
|
|
42
|
-
}
|
|
43
|
-
startReconnection(handle, oldEdge) {
|
|
44
|
-
this.statusService.setReconnectionStartStatus(handle.parentNode, handle, oldEdge);
|
|
45
|
-
}
|
|
46
|
-
validateConnection(handle) {
|
|
47
|
-
const status = this.statusService.status();
|
|
48
|
-
if (status.state === 'connection-start' || status.state === 'reconnection-start') {
|
|
49
|
-
const isReconnection = status.state === 'reconnection-start';
|
|
50
|
-
let source = status.payload.source;
|
|
51
|
-
let target = handle.parentNode;
|
|
52
|
-
let sourceHandle = status.payload.sourceHandle;
|
|
53
|
-
let targetHandle = handle;
|
|
54
|
-
if (this.isStrictMode()) {
|
|
55
|
-
// swap direction (if needed) according to actual source and target of strict mode
|
|
56
|
-
const adjusted = adjustDirection({
|
|
57
|
-
source: status.payload.source,
|
|
58
|
-
sourceHandle: status.payload.sourceHandle,
|
|
59
|
-
target: handle.parentNode,
|
|
60
|
-
targetHandle: handle,
|
|
61
|
-
});
|
|
62
|
-
source = adjusted.source;
|
|
63
|
-
target = adjusted.target;
|
|
64
|
-
sourceHandle = adjusted.sourceHandle;
|
|
65
|
-
targetHandle = adjusted.targetHandle;
|
|
66
|
-
}
|
|
67
|
-
const valid = this.flowEntitiesService.connection().validator({
|
|
68
|
-
source: source.rawNode.id,
|
|
69
|
-
target: target.rawNode.id,
|
|
70
|
-
sourceHandle: sourceHandle.rawHandle.id,
|
|
71
|
-
targetHandle: targetHandle.rawHandle.id,
|
|
72
|
-
});
|
|
73
|
-
// TODO: check how react flow handles highlight of handle
|
|
74
|
-
// if direction changes
|
|
75
|
-
handle.state.set(valid ? 'valid' : 'invalid');
|
|
76
|
-
// status is about how we draw connection, so we don't need
|
|
77
|
-
// swapped diretion here
|
|
78
|
-
isReconnection
|
|
79
|
-
? this.statusService.setReconnectionValidationStatus(valid, status.payload.source, handle.parentNode, status.payload.sourceHandle, handle, status.payload.oldEdge)
|
|
80
|
-
: this.statusService.setConnectionValidationStatus(valid, status.payload.source, handle.parentNode, status.payload.sourceHandle, handle);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
resetValidateConnection(targetHandle) {
|
|
84
|
-
targetHandle.state.set('idle');
|
|
85
|
-
// drop back to start status
|
|
86
|
-
const status = this.statusService.status();
|
|
87
|
-
if (status.state === 'connection-validation' || status.state === 'reconnection-validation') {
|
|
88
|
-
const isReconnection = status.state === 'reconnection-validation';
|
|
89
|
-
isReconnection
|
|
90
|
-
? this.statusService.setReconnectionStartStatus(status.payload.source, status.payload.sourceHandle, status.payload.oldEdge)
|
|
91
|
-
: this.statusService.setConnectionStartStatus(status.payload.source, status.payload.sourceHandle);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
endConnection() {
|
|
95
|
-
const status = this.statusService.status();
|
|
96
|
-
if (status.state === 'connection-validation' || status.state === 'reconnection-validation') {
|
|
97
|
-
const isReconnection = status.state === 'reconnection-validation';
|
|
98
|
-
const source = status.payload.source;
|
|
99
|
-
const sourceHandle = status.payload.sourceHandle;
|
|
100
|
-
const target = status.payload.target;
|
|
101
|
-
const targetHandle = status.payload.targetHandle;
|
|
102
|
-
isReconnection
|
|
103
|
-
? this.statusService.setReconnectionEndStatus(source, target, sourceHandle, targetHandle, status.payload.oldEdge)
|
|
104
|
-
: this.statusService.setConnectionEndStatus(source, target, sourceHandle, targetHandle);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConnectionControllerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
108
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: ConnectionControllerDirective, isStandalone: true, selector: "[onConnect], [onReconnect], [connect], [reconnect]", outputs: { onConnect: "onConnect", connect: "connect", onReconnect: "onReconnect", reconnect: "reconnect" }, ngImport: i0 }); }
|
|
109
|
-
}
|
|
110
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConnectionControllerDirective, decorators: [{
|
|
111
|
-
type: Directive,
|
|
112
|
-
args: [{
|
|
113
|
-
selector: '[onConnect], [onReconnect], [connect], [reconnect]',
|
|
114
|
-
standalone: true,
|
|
115
|
-
}]
|
|
116
|
-
}] });
|
|
117
|
-
function statusToConnection(status, isStrictMode) {
|
|
118
|
-
let source = status.payload.source;
|
|
119
|
-
let target = status.payload.target;
|
|
120
|
-
let sourceHandle = status.payload.sourceHandle;
|
|
121
|
-
let targetHandle = status.payload.targetHandle;
|
|
122
|
-
if (isStrictMode) {
|
|
123
|
-
const adjusted = adjustDirection({
|
|
124
|
-
source: status.payload.source,
|
|
125
|
-
sourceHandle: status.payload.sourceHandle,
|
|
126
|
-
target: status.payload.target,
|
|
127
|
-
targetHandle: status.payload.targetHandle,
|
|
128
|
-
});
|
|
129
|
-
source = adjusted.source;
|
|
130
|
-
target = adjusted.target;
|
|
131
|
-
sourceHandle = adjusted.sourceHandle;
|
|
132
|
-
targetHandle = adjusted.targetHandle;
|
|
133
|
-
}
|
|
134
|
-
const sourceId = source.rawNode.id;
|
|
135
|
-
const targetId = target.rawNode.id;
|
|
136
|
-
const sourceHandleId = sourceHandle.rawHandle.id;
|
|
137
|
-
const targetHandleId = targetHandle.rawHandle.id;
|
|
138
|
-
return {
|
|
139
|
-
source: sourceId,
|
|
140
|
-
target: targetId,
|
|
141
|
-
sourceHandle: sourceHandleId,
|
|
142
|
-
targetHandle: targetHandleId,
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi1jb250cm9sbGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9kaXJlY3RpdmVzL2Nvbm5lY3Rpb24tY29udHJvbGxlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFBc0QsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV4SCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFPeEMsTUFBTSxPQUFPLDZCQUE2QjtJQUoxQztRQUtVLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDMUMsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFMUQ7Ozs7Ozs7OztXQVNHO1FBQ0gsK0RBQStEO1FBQy9DLGNBQVMsR0FBRyxvQkFBb0IsQ0FDOUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUMxQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQXFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLGdCQUFnQixDQUFDLEVBQ3hGLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZ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TSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTTtZQUM3QixZQUFZLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZO1NBQzFDLENBQUMsQ0FBQztRQUVILE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ3pCLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ3pCLFlBQVksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQ3JDLFlBQVksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUNuQyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUVuQyxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztJQUNqRCxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztJQUVqRCxPQUFPO1FBQ0wsTUFBTSxFQUFFLFFBQVE7UUFDaEIsTUFBTSxFQUFFLFFBQVE7UUFDaEIsWUFBWSxFQUFFLGNBQWM7UUFDNUIsWUFBWSxFQUFFLGNBQWM7S0FDN0IsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbm5lY3Rpb24sIFJlY29ubmVjdGlvbkV2ZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb25uZWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGbG93U3RhdHVzQ29ubmVjdGlvbkVuZCwgRmxvd1N0YXR1c1JlY29ubmVjdGlvbkVuZCwgRmxvd1N0YXR1c1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9mbG93LXN0YXR1cy5zZXJ2aWNlJztcblxuaW1wb3J0IHsgRmxvd0VudGl0aWVzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Zsb3ctZW50aXRpZXMuc2VydmljZSc7XG5pbXBvcnQgeyBIYW5kbGVNb2RlbCB9IGZyb20gJy4uL21vZGVscy9oYW5kbGUubW9kZWwnO1xuaW1wb3J0IHsgYWRqdXN0RGlyZWN0aW9uIH0gZnJvbSAnLi4vdXRpbHMvYWRqdXN0LWRpcmVjdGlvbic7XG5pbXBvcnQgeyBvdXRwdXRGcm9tT2JzZXJ2YWJsZSwgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRWRnZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2VkZ2UubW9kZWwnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbb25Db25uZWN0XSwgW29uUmVjb25uZWN0XSwgW2Nvbm5lY3RdLCBbcmVjb25uZWN0XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENvbm5lY3Rpb25Db250cm9sbGVyRGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSBzdGF0dXNTZXJ2aWNlID0gaW5qZWN0KEZsb3dTdGF0dXNTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBmbG93RW50aXRpZXNTZXJ2aWNlID0gaW5qZWN0KEZsb3dFbnRpdGllc1NlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGZpcmVzIHdoZW4gdXNlciB0cmllcyB0byBjcmVhdGUgbmV3IEVkZ2UuXG4gICAqXG4gICAqIGBDb25uZWN0aW9uYCBpcyBhbiBlbnRpdHkgdGhhdCBjb250YWlucyBkYXRhIGFib3V0IHNvdXJjZSBhbmQgdGFyZ2V0IG5vZGVzLlxuICAgKlxuICAgKiBBbHNvIGl0J3MgaW1wb3J0YW50IHRvIG5vdGUsIHRoYXQgdGhpcyBldmVudCBvbmx5IGZpcmVzIHdoZW4gY29ubmVjdGlvbiBpcyB2YWxpZCBieSB2YWxpZGF0b3IgZnVuY3Rpb24gaW4gYENvbm5lY3Rpb25TZXR0aW5nc2AsXG4gICAqIGJ5IGRlZmF1bHQgd2l0aG91dCBwYXNzaW5nIHRoZSB2YWxpZGF0b3IgZXZlcnkgY29ubmVjdGlvbiBjb25jaWRlcmVkIHZhbGlkLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYGNvbm5lY3RgIG91dHB1dCBpbnN0ZWFkXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgcHVibGljIHJlYWRvbmx5IG9uQ29ubmVjdCA9IG91dHB1dEZyb21PYnNlcnZhYmxlPENvbm5lY3Rpb24+KFxuICAgIHRvT2JzZXJ2YWJsZSh0aGlzLnN0YXR1c1NlcnZpY2Uuc3RhdHVzKS5waXBlKFxuICAgICAgZmlsdGVyKChzdGF0dXMpOiBzdGF0dXMgaXMgRmxvd1N0YXR1c0Nvbm5lY3Rpb25FbmQgPT4gc3RhdHVzLnN0YXRlID09PSAnY29ubmVjdGlvbi1lbmQnKSxcbiAgICAgIG1hcCgoc3RhdHVzKSA9PiBzdGF0dXNUb0Nvbm5lY3Rpb24oc3RhdHVzLCB0aGlzLmlzU3RyaWN0TW9kZSgpKSksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5zdGF0dXNTZXJ2aWNlLnNldElkbGVTdGF0dXMoKSksXG4gICAgICBmaWx0ZXIoKGNvbm5lY3Rpb24pID0+IHRoaXMuZmxvd0VudGl0aWVzU2VydmljZS5jb25uZWN0aW9uKCkudmFsaWRhdG9yKGNvbm5lY3Rpb24pKSxcbiAgICApLFxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0ID0gb3V0cHV0RnJvbU9ic2VydmFibGU8Q29ubmVjdGlvbj4oXG4gICAgdG9PYnNlcnZhYmxlKHRoaXMuc3RhdHVzU2VydmljZS5zdGF0dXMpLnBpcGUoXG4gICAgICBmaWx0ZXIoKHN0YXR1cyk6IHN0YXR1cyBpcyBGbG93U3RhdHVzQ29ubmVjdGlvbkVuZCA9PiBzdGF0dXMuc3RhdGUgPT09ICdjb25uZWN0aW9uLWVuZCcpLFxuICAgICAgbWFwKChzdGF0dXMpID0+IHN0YXR1c1RvQ29ubmVjdGlvbihzdGF0dXMsIHRoaXMuaXNTdHJpY3RNb2RlKCkpKSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnN0YXR1c1NlcnZpY2Uuc2V0SWRsZVN0YXR1cygpKSxcbiAgICAgIGZpbHRlcigoY29ubmVjdGlvbikgPT4gdGhpcy5mbG93RW50aXRpZXNTZXJ2aWNlLmNvbm5lY3Rpb24oKS52YWxpZGF0b3IoY29ubmVjdGlvbikpLFxuICAgICksXG4gICk7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgcmVjb25uZWN0YCBvdXRwdXQgaW5zdGVhZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9uUmVjb25uZWN0ID0gb3V0cHV0RnJvbU9ic2VydmFibGU8UmVjb25uZWN0aW9uRXZlbnQ+KFxuICAgIHRvT2JzZXJ2YWJsZSh0aGlzLnN0YXR1c1NlcnZpY2Uuc3RhdHVzKS5waXBlKFxuICAgICAgZmlsdGVyKChzdGF0dXMpOiBzdGF0dXMgaXMgRmxvd1N0YXR1c1JlY29ubmVjdGlvbkVuZCA9PiBzdGF0dXMuc3RhdGUgPT09ICdyZWNvbm5lY3Rpb24tZW5kJyksXG4gICAgICBtYXAoKHN0YXR1cykgPT4ge1xuICAgICAgICBjb25zdCBjb25uZWN0aW9uID0gc3RhdHVzVG9Db25uZWN0aW9uKHN0YXR1cywgdGhpcy5pc1N0cmljdE1vZGUoKSk7XG4gICAgICAgIGNvbnN0IG9sZEVkZ2UgPSBzdGF0dXMucGF5bG9hZC5vbGRFZGdlLmVkZ2U7XG5cbiAgICAgICAgcmV0dXJuIHsgY29ubmVjdGlvbiwgb2xkRWRnZSB9O1xuICAgICAgfSksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5zdGF0dXNTZXJ2aWNlLnNldElkbGVTdGF0dXMoKSksXG4gICAgICBmaWx0ZXIoKHsgY29ubmVjdGlvbiB9KSA9PiB0aGlzLmZsb3dFbnRpdGllc1NlcnZpY2UuY29ubmVjdGlvbigpLnZhbGlkYXRvcihjb25uZWN0aW9uKSksXG4gICAgKSxcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcmVjb25uZWN0ID0gb3V0cHV0RnJvbU9ic2VydmFibGU8UmVjb25uZWN0aW9uRXZlbnQ+KFxuICAgIHRvT2JzZXJ2YWJsZSh0aGlzLnN0YXR1c1NlcnZpY2Uuc3RhdHVzKS5waXBlKFxuICAgICAgZmlsdGVyKChzdGF0dXMpOiBzdGF0dXMgaXMgRmxvd1N0YXR1c1JlY29ubmVjdGlvbkVuZCA9PiBzdGF0dXMuc3RhdGUgPT09ICdyZWNvbm5lY3Rpb24tZW5kJyksXG4gICAgICBtYXAoKHN0YXR1cykgPT4ge1xuICAgICAgICBjb25zdCBjb25uZWN0aW9uID0gc3RhdHVzVG9Db25uZWN0aW9uKHN0YXR1cywgdGhpcy5pc1N0cmljdE1vZGUoKSk7XG4gICAgICAgIGNvbnN0IG9sZEVkZ2UgPSBzdGF0dXMucGF5bG9hZC5vbGRFZGdlLmVkZ2U7XG5cbiAgICAgICAgcmV0dXJuIHsgY29ubmVjdGlvbiwgb2xkRWRnZSB9O1xuICAgICAgfSksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5zdGF0dXNTZXJ2aWNlLnNldElkbGVTdGF0dXMoKSksXG4gICAgICBmaWx0ZXIoKHsgY29ubmVjdGlvbiB9KSA9PiB0aGlzLmZsb3dFbnRpdGllc1NlcnZpY2UuY29ubmVjdGlvbigpLnZhbGlkYXRvcihjb25uZWN0aW9uKSksXG4gICAgKSxcbiAgKTtcblxuICBwcm90ZWN0ZWQgaXNTdHJpY3RNb2RlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5mbG93RW50aXRpZXNTZXJ2aWNlLmNvbm5lY3Rpb24oKS5tb2RlID09PSAnc3RyaWN0Jyk7XG5cbiAgcHVibGljIHN0YXJ0Q29ubmVjdGlvbihoYW5kbGU6IEhhbmRsZU1vZGVsKSB7XG4gICAgdGhpcy5zdGF0dXNTZXJ2aWNlLnNldENvbm5lY3Rpb25TdGFydFN0YXR1cyhoYW5kbGUucGFyZW50Tm9kZSwgaGFuZGxlKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGFydFJlY29ubmVjdGlvbihoYW5kbGU6IEhhbmRsZU1vZGVsLCBvbGRFZGdlOiBFZGdlTW9kZWwpIHtcbiAgICB0aGlzLnN0YXR1c1NlcnZpY2Uuc2V0UmVjb25uZWN0aW9uU3RhcnRTdGF0dXMoaGFuZGxlLnBhcmVudE5vZGUsIGhhbmRsZSwgb2xkRWRnZSk7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGVDb25uZWN0aW9uKGhhbmRsZTogSGFuZGxlTW9kZWwpIHtcbiAgICBjb25zdCBzdGF0dXMgPSB0aGlzLnN0YXR1c1NlcnZpY2Uuc3RhdHVzKCk7XG5cbiAgICBpZiAoc3RhdHVzLnN0YXRlID09PSAnY29ubmVjdGlvbi1zdGFydCcgfHwgc3RhdHVzLnN0YXRlID09PSAncmVjb25uZWN0aW9uLXN0YXJ0Jykge1xuICAgICAgY29uc3QgaXNSZWNvbm5lY3Rpb24gPSBzdGF0dXMuc3RhdGUgPT09ICdyZWNvbm5lY3Rpb24tc3RhcnQnO1xuXG4gICAgICBsZXQgc291cmNlID0gc3RhdHVzLnBheWxvYWQuc291cmNlO1xuICAgICAgbGV0IHRhcmdldCA9IGhhbmRsZS5wYXJlbnROb2RlO1xuICAgICAgbGV0IHNvdXJjZUhhbmRsZSA9IHN0YXR1cy5wYXlsb2FkLnNvdXJjZUhhbmRsZTtcbiAgICAgIGxldCB0YXJnZXRIYW5kbGUgPSBoYW5kbGU7XG5cbiAgICAgIGlmICh0aGlzLmlzU3RyaWN0TW9kZSgpKSB7XG4gICAgICAgIC8vIHN3YXAgZGlyZWN0aW9uIChpZiBuZWVkZWQpIGFjY29yZGluZyB0byBhY3R1YWwgc291cmNlIGFuZCB0YXJnZXQgb2Ygc3RyaWN0IG1vZGVcbiAgICAgICAgY29uc3QgYWRqdXN0ZWQgPSBhZGp1c3REaXJlY3Rpb24oe1xuICAgICAgICAgIHNvdXJjZTogc3RhdHVzLnBheWxvYWQuc291cmNlLFxuICAgICAgICAgIHNvdXJjZUhhbmRsZTogc3RhdHVzLnBheWxvYWQuc291cmNlSGFuZGxlLFxuICAgICAgICAgIHRhcmdldDogaGFuZGxlLnBhcmVudE5vZGUsXG4gICAgICAgICAgdGFyZ2V0SGFuZGxlOiBoYW5kbGUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHNvdXJjZSA9IGFkanVzdGVkLnNvdXJjZTtcbiAgICAgICAgdGFyZ2V0ID0gYWRqdXN0ZWQudGFyZ2V0O1xuICAgICAgICBzb3VyY2VIYW5kbGUgPSBhZGp1c3RlZC5zb3VyY2VIYW5kbGU7XG4gICAgICAgIHRhcmdldEhhbmRsZSA9IGFkanVzdGVkLnRhcmdldEhhbmRsZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsaWQgPSB0aGlzLmZsb3dFbnRpdGllc1NlcnZpY2UuY29ubmVjdGlvbigpLnZhbGlkYXRvcih7XG4gICAgICAgIHNvdXJjZTogc291cmNlLnJhd05vZGUuaWQsXG4gICAgICAgIHRhcmdldDogdGFyZ2V0LnJhd05vZGUuaWQsXG4gICAgICAgIHNvdXJjZUhhbmRsZTogc291cmNlSGFuZGxlLnJhd0hhbmRsZS5pZCxcbiAgICAgICAgdGFyZ2V0SGFuZGxlOiB0YXJnZXRIYW5kbGUucmF3SGFuZGxlLmlkLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFRPRE86IGNoZWNrIGhvdyByZWFjdCBmbG93IGhhbmRsZXMgaGlnaGxpZ2h0IG9mIGhhbmRsZVxuICAgICAgLy8gaWYgZGlyZWN0aW9uIGNoYW5nZXNcbiAgICAgIGhhbmRsZS5zdGF0ZS5zZXQodmFsaWQgPyAndmFsaWQnIDogJ2ludmFsaWQnKTtcblxuICAgICAgLy8gc3RhdHVzIGlzIGFib3V0IGhvdyB3ZSBkcmF3IGNvbm5lY3Rpb24sIHNvIHdlIGRvbid0IG5lZWRcbiAgICAgIC8vIHN3YXBwZWQgZGlyZXRpb24gaGVyZVxuICAgICAgaXNSZWNvbm5lY3Rpb25cbiAgICAgICAgPyB0aGlzLnN0YXR1c1NlcnZpY2Uuc2V0UmVjb25uZWN0aW9uVmFsaWRhdGlvblN0YXR1cyhcbiAgICAgICAgICAgIHZhbGlkLFxuICAgICAgICAgICAgc3RhdHVzLnBheWxvYWQuc291cmNlLFxuICAgICAgICAgICAgaGFuZGxlLnBhcmVudE5vZGUsXG4gICAgICAgICAgICBzdGF0dXMucGF5bG9hZC5zb3VyY2VIYW5kbGUsXG4gICAgICAgICAgICBoYW5kbGUsXG4gICAgICAgICAgICBzdGF0dXMucGF5bG9hZC5vbGRFZGdlLFxuICAgICAgICAgIClcbiAgICAgICAgOiB0aGlzLnN0YXR1c1NlcnZpY2Uuc2V0Q29ubmVjdGlvblZhbGlkYXRpb25TdGF0dXMoXG4gICAgICAgICAgICB2YWxpZCxcbiAgICAgICAgICAgIHN0YXR1cy5wYXlsb2FkLnNvdXJjZSxcbiAgICAgICAgICAgIGhhbmRsZS5wYXJlbnROb2RlLFxuICAgICAgICAgICAgc3RhdHVzLnBheWxvYWQuc291cmNlSGFuZGxlLFxuICAgICAgICAgICAgaGFuZGxlLFxuICAgICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlc2V0VmFsaWRhdGVDb25uZWN0aW9uKHRhcmdldEhhbmRsZTogSGFuZGxlTW9kZWwpIHtcbiAgICB0YXJnZXRIYW5kbGUuc3RhdGUuc2V0KCdpZGxlJyk7XG5cbiAgICAvLyBkcm9wIGJhY2sgdG8gc3RhcnQgc3RhdHVzXG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5zdGF0dXNTZXJ2aWNlLnN0YXR1cygpO1xuICAgIGlmIChzdGF0dXMuc3RhdGUgPT09ICdjb25uZWN0aW9uLXZhbGlkYXRpb24nIHx8IHN0YXR1cy5zdGF0ZSA9PT0gJ3JlY29ubmVjdGlvbi12YWxpZGF0aW9uJykge1xuICAgICAgY29uc3QgaXNSZWNvbm5lY3Rpb24gPSBzdGF0dXMuc3RhdGUgPT09ICdyZWNvbm5lY3Rpb24tdmFsaWRhdGlvbic7XG5cbiAgICAgIGlzUmVjb25uZWN0aW9uXG4gICAgICAgID8gdGhpcy5zdGF0dXNTZXJ2aWNlLnNldFJlY29ubmVjdGlvblN0YXJ0U3RhdHVzKFxuICAgICAgICAgICAgc3RhdHVzLnBheWxvYWQuc291cmNlLFxuICAgICAgICAgICAgc3RhdHVzLnBheWxvYWQuc291cmNlSGFuZGxlLFxuICAgICAgICAgICAgc3RhdHVzLnBheWxvYWQub2xkRWRnZSxcbiAgICAgICAgICApXG4gICAgICAgIDogdGhpcy5zdGF0dXNTZXJ2aWNlLnNldENvbm5lY3Rpb25TdGFydFN0YXR1cyhzdGF0dXMucGF5bG9hZC5zb3VyY2UsIHN0YXR1cy5wYXlsb2FkLnNvdXJjZUhhbmRsZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGVuZENvbm5lY3Rpb24oKSB7XG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5zdGF0dXNTZXJ2aWNlLnN0YXR1cygpO1xuXG4gICAgaWYgKHN0YXR1cy5zdGF0ZSA9PT0gJ2Nvbm5lY3Rpb24tdmFsaWRhdGlvbicgfHwgc3RhdHVzLnN0YXRlID09PSAncmVjb25uZWN0aW9uLXZhbGlkYXRpb24nKSB7XG4gICAgICBjb25zdCBpc1JlY29ubmVjdGlvbiA9IHN0YXR1cy5zdGF0ZSA9PT0gJ3JlY29ubmVjdGlvbi12YWxpZGF0aW9uJztcblxuICAgICAgY29uc3Qgc291cmNlID0gc3RhdHVzLnBheWxvYWQuc291cmNlO1xuICAgICAgY29uc3Qgc291cmNlSGFuZGxlID0gc3RhdHVzLnBheWxvYWQuc291cmNlSGFuZGxlO1xuICAgICAgY29uc3QgdGFyZ2V0ID0gc3RhdHVzLnBheWxvYWQudGFyZ2V0O1xuICAgICAgY29uc3QgdGFyZ2V0SGFuZGxlID0gc3RhdHVzLnBheWxvYWQudGFyZ2V0SGFuZGxlO1xuXG4gICAgICBpc1JlY29ubmVjdGlvblxuICAgICAgICA/IHRoaXMuc3RhdHVzU2VydmljZS5zZXRSZWNvbm5lY3Rpb25FbmRTdGF0dXMoXG4gICAgICAgICAgICBzb3VyY2UsXG4gICAgICAgICAgICB0YXJnZXQsXG4gICAgICAgICAgICBzb3VyY2VIYW5kbGUsXG4gICAgICAgICAgICB0YXJnZXRIYW5kbGUsXG4gICAgICAgICAgICBzdGF0dXMucGF5bG9hZC5vbGRFZGdlLFxuICAgICAgICAgIClcbiAgICAgICAgOiB0aGlzLnN0YXR1c1NlcnZpY2Uuc2V0Q29ubmVjdGlvbkVuZFN0YXR1cyhzb3VyY2UsIHRhcmdldCwgc291cmNlSGFuZGxlLCB0YXJnZXRIYW5kbGUpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBzdGF0dXNUb0Nvbm5lY3Rpb24oXG4gIHN0YXR1czogRmxvd1N0YXR1c0Nvbm5lY3Rpb25FbmQgfCBGbG93U3RhdHVzUmVjb25uZWN0aW9uRW5kLFxuICBpc1N0cmljdE1vZGU6IGJvb2xlYW4sXG4pOiBDb25uZWN0aW9uIHtcbiAgbGV0IHNvdXJjZSA9IHN0YXR1cy5wYXlsb2FkLnNvdXJjZTtcbiAgbGV0IHRhcmdldCA9IHN0YXR1cy5wYXlsb2FkLnRhcmdldDtcbiAgbGV0IHNvdXJjZUhhbmRsZSA9IHN0YXR1cy5wYXlsb2FkLnNvdXJjZUhhbmRsZTtcbiAgbGV0IHRhcmdldEhhbmRsZSA9IHN0YXR1cy5wYXlsb2FkLnRhcmdldEhhbmRsZTtcblxuICBpZiAoaXNTdHJpY3RNb2RlKSB7XG4gICAgY29uc3QgYWRqdXN0ZWQgPSBhZGp1c3REaXJlY3Rpb24oe1xuICAgICAgc291cmNlOiBzdGF0dXMucGF5bG9hZC5zb3VyY2UsXG4gICAgICBzb3VyY2VIYW5kbGU6IHN0YXR1cy5wYXlsb2FkLnNvdXJjZUhhbmRsZSxcbiAgICAgIHRhcmdldDogc3RhdHVzLnBheWxvYWQudGFyZ2V0LFxuICAgICAgdGFyZ2V0SGFuZGxlOiBzdGF0dXMucGF5bG9hZC50YXJnZXRIYW5kbGUsXG4gICAgfSk7XG5cbiAgICBzb3VyY2UgPSBhZGp1c3RlZC5zb3VyY2U7XG4gICAgdGFyZ2V0ID0gYWRqdXN0ZWQudGFyZ2V0O1xuICAgIHNvdXJjZUhhbmRsZSA9IGFkanVzdGVkLnNvdXJjZUhhbmRsZTtcbiAgICB0YXJnZXRIYW5kbGUgPSBhZGp1c3RlZC50YXJnZXRIYW5kbGU7XG4gIH1cblxuICBjb25zdCBzb3VyY2VJZCA9IHNvdXJjZS5yYXdOb2RlLmlkO1xuICBjb25zdCB0YXJnZXRJZCA9IHRhcmdldC5yYXdOb2RlLmlkO1xuXG4gIGNvbnN0IHNvdXJjZUhhbmRsZUlkID0gc291cmNlSGFuZGxlLnJhd0hhbmRsZS5pZDtcbiAgY29uc3QgdGFyZ2V0SGFuZGxlSWQgPSB0YXJnZXRIYW5kbGUucmF3SGFuZGxlLmlkO1xuXG4gIHJldHVybiB7XG4gICAgc291cmNlOiBzb3VyY2VJZCxcbiAgICB0YXJnZXQ6IHRhcmdldElkLFxuICAgIHNvdXJjZUhhbmRsZTogc291cmNlSGFuZGxlSWQsXG4gICAgdGFyZ2V0SGFuZGxlOiB0YXJnZXRIYW5kbGVJZCxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { DestroyRef, Directive, inject } from '@angular/core';
|
|
2
|
-
import { NodeAccessorService } from '../services/node-accessor.service';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class DragHandleDirective {
|
|
5
|
-
get model() {
|
|
6
|
-
return this.nodeAccessor.model();
|
|
7
|
-
}
|
|
8
|
-
constructor() {
|
|
9
|
-
this.nodeAccessor = inject(NodeAccessorService);
|
|
10
|
-
this.model.dragHandlesCount.update((count) => count + 1);
|
|
11
|
-
inject(DestroyRef).onDestroy(() => {
|
|
12
|
-
this.model.dragHandlesCount.update((count) => count - 1);
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DragHandleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
16
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: DragHandleDirective, isStandalone: true, selector: "[dragHandle]", host: { classAttribute: "vflow-drag-handle" }, ngImport: i0 }); }
|
|
17
|
-
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DragHandleDirective, decorators: [{
|
|
19
|
-
type: Directive,
|
|
20
|
-
args: [{
|
|
21
|
-
standalone: true,
|
|
22
|
-
selector: '[dragHandle]',
|
|
23
|
-
host: {
|
|
24
|
-
class: 'vflow-drag-handle',
|
|
25
|
-
},
|
|
26
|
-
}]
|
|
27
|
-
}], ctorParameters: () => [] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1oYW5kbGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2RpcmVjdGl2ZXMvZHJhZy1oYW5kbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFTeEUsTUFBTSxPQUFPLG1CQUFtQjtJQUc5QixJQUFZLEtBQUs7UUFDZixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFHLENBQUM7SUFDcEMsQ0FBQztJQUVEO1FBTlEsaUJBQVksR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQU9qRCxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRXpELE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQWJVLG1CQUFtQjttR0FBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQVAvQixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsY0FBYztvQkFDeEIsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxtQkFBbUI7cUJBQzNCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdHJveVJlZiwgRGlyZWN0aXZlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vZGVBY2Nlc3NvclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9ub2RlLWFjY2Vzc29yLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdbZHJhZ0hhbmRsZV0nLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICd2Zmxvdy1kcmFnLWhhbmRsZScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIERyYWdIYW5kbGVEaXJlY3RpdmUge1xuICBwcml2YXRlIG5vZGVBY2Nlc3NvciA9IGluamVjdChOb2RlQWNjZXNzb3JTZXJ2aWNlKTtcblxuICBwcml2YXRlIGdldCBtb2RlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlQWNjZXNzb3IubW9kZWwoKSE7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLm1vZGVsLmRyYWdIYW5kbGVzQ291bnQudXBkYXRlKChjb3VudCkgPT4gY291bnQgKyAxKTtcblxuICAgIGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgdGhpcy5tb2RlbC5kcmFnSGFuZGxlc0NvdW50LnVwZGF0ZSgoY291bnQpID0+IGNvdW50IC0gMSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, NgZone, computed, inject } from '@angular/core';
|
|
2
|
-
import { resizable } from '../utils/resizable';
|
|
3
|
-
import { tap } from 'rxjs';
|
|
4
|
-
import { FlowSettingsService } from '../services/flow-settings.service';
|
|
5
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class FlowSizeControllerDirective {
|
|
8
|
-
constructor() {
|
|
9
|
-
this.host = inject(ElementRef);
|
|
10
|
-
this.flowSettingsService = inject(FlowSettingsService);
|
|
11
|
-
this.flowWidth = computed(() => {
|
|
12
|
-
const view = this.flowSettingsService.view();
|
|
13
|
-
return view === 'auto' ? '100%' : view[0];
|
|
14
|
-
});
|
|
15
|
-
this.flowHeight = computed(() => {
|
|
16
|
-
const view = this.flowSettingsService.view();
|
|
17
|
-
return view === 'auto' ? '100%' : view[1];
|
|
18
|
-
});
|
|
19
|
-
resizable([this.host.nativeElement], inject(NgZone))
|
|
20
|
-
.pipe(tap(([entry]) => {
|
|
21
|
-
this.flowSettingsService.computedFlowWidth.set(entry.contentRect.width);
|
|
22
|
-
this.flowSettingsService.computedFlowHeight.set(entry.contentRect.height);
|
|
23
|
-
}), takeUntilDestroyed())
|
|
24
|
-
.subscribe();
|
|
25
|
-
}
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FlowSizeControllerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
27
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: FlowSizeControllerDirective, isStandalone: true, selector: "svg[flowSizeController]", host: { properties: { "attr.width": "flowWidth()", "attr.height": "flowHeight()" } }, ngImport: i0 }); }
|
|
28
|
-
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FlowSizeControllerDirective, decorators: [{
|
|
30
|
-
type: Directive,
|
|
31
|
-
args: [{
|
|
32
|
-
standalone: true,
|
|
33
|
-
selector: 'svg[flowSizeController]',
|
|
34
|
-
host: {
|
|
35
|
-
'[attr.width]': 'flowWidth()',
|
|
36
|
-
'[attr.height]': 'flowHeight()',
|
|
37
|
-
},
|
|
38
|
-
}]
|
|
39
|
-
}], ctorParameters: () => [] });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1zaXplLWNvbnRyb2xsZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2RpcmVjdGl2ZXMvZmxvdy1zaXplLWNvbnRyb2xsZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQVVoRSxNQUFNLE9BQU8sMkJBQTJCO0lBZ0J0QztRQWZRLFNBQUksR0FBRyxNQUFNLENBQTRCLFVBQVUsQ0FBQyxDQUFDO1FBQ3JELHdCQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRW5ELGNBQVMsR0FBNEIsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN4RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFN0MsT0FBTyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztRQUVJLGVBQVUsR0FBNEIsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN6RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFN0MsT0FBTyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztRQUdELFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ2pELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDZCxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVFLENBQUMsQ0FBQyxFQUNGLGtCQUFrQixFQUFFLENBQ3JCO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQzsrR0ExQlUsMkJBQTJCO21HQUEzQiwyQkFBMkI7OzRGQUEzQiwyQkFBMkI7a0JBUnZDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLElBQUksRUFBRTt3QkFDSixjQUFjLEVBQUUsYUFBYTt3QkFDN0IsZUFBZSxFQUFFLGNBQWM7cUJBQ2hDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBOZ1pvbmUsIFNpZ25hbCwgY29tcHV0ZWQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcmVzaXphYmxlIH0gZnJvbSAnLi4vdXRpbHMvcmVzaXphYmxlJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmxvd1NldHRpbmdzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Zsb3ctc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3N2Z1tmbG93U2l6ZUNvbnRyb2xsZXJdJyxcbiAgaG9zdDoge1xuICAgICdbYXR0ci53aWR0aF0nOiAnZmxvd1dpZHRoKCknLFxuICAgICdbYXR0ci5oZWlnaHRdJzogJ2Zsb3dIZWlnaHQoKScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIEZsb3dTaXplQ29udHJvbGxlckRpcmVjdGl2ZSB7XG4gIHByaXZhdGUgaG9zdCA9IGluamVjdDxFbGVtZW50UmVmPFNWR1NWR0VsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSBmbG93U2V0dGluZ3NTZXJ2aWNlID0gaW5qZWN0KEZsb3dTZXR0aW5nc1NlcnZpY2UpO1xuXG4gIHB1YmxpYyBmbG93V2lkdGg6IFNpZ25hbDxzdHJpbmcgfCBudW1iZXI+ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHZpZXcgPSB0aGlzLmZsb3dTZXR0aW5nc1NlcnZpY2UudmlldygpO1xuXG4gICAgcmV0dXJuIHZpZXcgPT09ICdhdXRvJyA/ICcxMDAlJyA6IHZpZXdbMF07XG4gIH0pO1xuXG4gIHB1YmxpYyBmbG93SGVpZ2h0OiBTaWduYWw8c3RyaW5nIHwgbnVtYmVyPiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB2aWV3ID0gdGhpcy5mbG93U2V0dGluZ3NTZXJ2aWNlLnZpZXcoKTtcblxuICAgIHJldHVybiB2aWV3ID09PSAnYXV0bycgPyAnMTAwJScgOiB2aWV3WzFdO1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICByZXNpemFibGUoW3RoaXMuaG9zdC5uYXRpdmVFbGVtZW50XSwgaW5qZWN0KE5nWm9uZSkpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChbZW50cnldKSA9PiB7XG4gICAgICAgICAgdGhpcy5mbG93U2V0dGluZ3NTZXJ2aWNlLmNvbXB1dGVkRmxvd1dpZHRoLnNldChlbnRyeS5jb250ZW50UmVjdC53aWR0aCk7XG4gICAgICAgICAgdGhpcy5mbG93U2V0dGluZ3NTZXJ2aWNlLmNvbXB1dGVkRmxvd0hlaWdodC5zZXQoZW50cnkuY29udGVudFJlY3QuaGVpZ2h0KTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, inject, input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class HandleSizeControllerDirective {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.handleModel = input.required({
|
|
6
|
-
alias: 'handleSizeController',
|
|
7
|
-
});
|
|
8
|
-
this.handleWrapper = inject(ElementRef);
|
|
9
|
-
}
|
|
10
|
-
ngAfterViewInit() {
|
|
11
|
-
const element = this.handleWrapper.nativeElement;
|
|
12
|
-
const rect = element.getBBox();
|
|
13
|
-
const stroke = getChildStrokeWidth(element);
|
|
14
|
-
this.handleModel().size.set({
|
|
15
|
-
width: rect.width + stroke,
|
|
16
|
-
height: rect.height + stroke,
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HandleSizeControllerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
20
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "17.3.12", type: HandleSizeControllerDirective, isStandalone: true, selector: "[handleSizeController]", inputs: { handleModel: { classPropertyName: "handleModel", publicName: "handleSizeController", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }
|
|
21
|
-
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HandleSizeControllerDirective, decorators: [{
|
|
23
|
-
type: Directive,
|
|
24
|
-
args: [{
|
|
25
|
-
standalone: true,
|
|
26
|
-
selector: '[handleSizeController]',
|
|
27
|
-
}]
|
|
28
|
-
}] });
|
|
29
|
-
function getChildStrokeWidth(element) {
|
|
30
|
-
const child = element.firstElementChild;
|
|
31
|
-
if (child) {
|
|
32
|
-
const stroke = getComputedStyle(child).strokeWidth;
|
|
33
|
-
const strokeAsNumber = Number(stroke.replace('px', ''));
|
|
34
|
-
if (isNaN(strokeAsNumber)) {
|
|
35
|
-
return 0;
|
|
36
|
-
}
|
|
37
|
-
return strokeAsNumber;
|
|
38
|
-
}
|
|
39
|
-
return 0;
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLXNpemUtY29udHJvbGxlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvZGlyZWN0aXZlcy9oYW5kbGUtc2l6ZS1jb250cm9sbGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPcEYsTUFBTSxPQUFPLDZCQUE2QjtJQUoxQztRQUtTLGdCQUFXLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBYztZQUMvQyxLQUFLLEVBQUUsc0JBQXNCO1NBQzlCLENBQUMsQ0FBQztRQUVLLGtCQUFhLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBNEIsQ0FBQztLQVl2RTtJQVZRLGVBQWU7UUFDcEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUM7UUFDakQsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRS9CLE1BQU0sTUFBTSxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQzFCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU07WUFDMUIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTTtTQUM3QixDQUFDLENBQUM7SUFDTCxDQUFDOytHQWhCVSw2QkFBNkI7bUdBQTdCLDZCQUE2Qjs7NEZBQTdCLDZCQUE2QjtrQkFKekMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHdCQUF3QjtpQkFDbkM7O0FBb0JELFNBQVMsbUJBQW1CLENBQUMsT0FBb0I7SUFDL0MsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0lBRXhDLElBQUksS0FBSyxFQUFFLENBQUM7UUFDVixNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFDbkQsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFeEQsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUMxQixPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7UUFFRCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRUQsT0FBTyxDQUFDLENBQUM7QUFDWCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIYW5kbGVNb2RlbCB9IGZyb20gJy4uL21vZGVscy9oYW5kbGUubW9kZWwnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdbaGFuZGxlU2l6ZUNvbnRyb2xsZXJdJyxcbn0pXG5leHBvcnQgY2xhc3MgSGFuZGxlU2l6ZUNvbnRyb2xsZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHVibGljIGhhbmRsZU1vZGVsID0gaW5wdXQucmVxdWlyZWQ8SGFuZGxlTW9kZWw+KHtcbiAgICBhbGlhczogJ2hhbmRsZVNpemVDb250cm9sbGVyJyxcbiAgfSk7XG5cbiAgcHJpdmF0ZSBoYW5kbGVXcmFwcGVyID0gaW5qZWN0KEVsZW1lbnRSZWYpIGFzIEVsZW1lbnRSZWY8U1ZHR0VsZW1lbnQ+O1xuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuaGFuZGxlV3JhcHBlci5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHJlY3QgPSBlbGVtZW50LmdldEJCb3goKTtcblxuICAgIGNvbnN0IHN0cm9rZSA9IGdldENoaWxkU3Ryb2tlV2lkdGgoZWxlbWVudCk7XG4gICAgdGhpcy5oYW5kbGVNb2RlbCgpLnNpemUuc2V0KHtcbiAgICAgIHdpZHRoOiByZWN0LndpZHRoICsgc3Ryb2tlLFxuICAgICAgaGVpZ2h0OiByZWN0LmhlaWdodCArIHN0cm9rZSxcbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRDaGlsZFN0cm9rZVdpZHRoKGVsZW1lbnQ6IFNWR0dFbGVtZW50KSB7XG4gIGNvbnN0IGNoaWxkID0gZWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZDtcblxuICBpZiAoY2hpbGQpIHtcbiAgICBjb25zdCBzdHJva2UgPSBnZXRDb21wdXRlZFN0eWxlKGNoaWxkKS5zdHJva2VXaWR0aDtcbiAgICBjb25zdCBzdHJva2VBc051bWJlciA9IE51bWJlcihzdHJva2UucmVwbGFjZSgncHgnLCAnJykpO1xuXG4gICAgaWYgKGlzTmFOKHN0cm9rZUFzTnVtYmVyKSkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0cm9rZUFzTnVtYmVyO1xuICB9XG5cbiAgcmV0dXJuIDA7XG59XG4iXX0=
|