@foblex/flow 12.1.1 → 12.1.2

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.
@@ -1,22 +1,38 @@
1
- import { PointExtensions } from '@foblex/core';
2
1
  import { FPathBuilderBase } from './f-path-builder-base';
3
2
  import { EFConnectableSide } from '../../../f-connectors';
4
3
  import { CalculateConnectionCenterHandler, CalculateConnectionCenterRequest } from './calculate-connection-center';
5
4
  export class FBezierPathBuilder extends FPathBuilderBase {
6
- static getAnglePoint(side, source, target) {
7
- let result = PointExtensions.initialize(source.x, 0.5 * (source.y + target.y));
8
- if (side === EFConnectableSide.LEFT || side === EFConnectableSide.RIGHT) {
9
- result = PointExtensions.initialize(0.5 * (source.x + target.x), source.y);
5
+ static getConnectorOffset(distance, offset) {
6
+ if (distance >= offset) {
7
+ return distance;
8
+ }
9
+ return offset * Math.sqrt(offset - distance);
10
+ }
11
+ static getAnglePoint(side, source, target, offset) {
12
+ let result = { x: source.x, y: source.y };
13
+ switch (side) {
14
+ case EFConnectableSide.LEFT:
15
+ result.x -= FBezierPathBuilder.getConnectorOffset(source.x - target.x, offset);
16
+ break;
17
+ case EFConnectableSide.RIGHT:
18
+ result.x += FBezierPathBuilder.getConnectorOffset(target.x - source.x, offset);
19
+ break;
20
+ case EFConnectableSide.TOP:
21
+ result.y -= FBezierPathBuilder.getConnectorOffset(source.y - target.y, offset);
22
+ break;
23
+ case EFConnectableSide.BOTTOM:
24
+ result.y += FBezierPathBuilder.getConnectorOffset(target.y - source.y, offset);
25
+ break;
10
26
  }
11
27
  return result;
12
28
  }
13
29
  handle(request) {
14
- const { source, sourceSide, target, targetSide } = request;
15
- const sourceAnglePoint = FBezierPathBuilder.getAnglePoint(sourceSide, source, target);
16
- const targetAnglePoint = FBezierPathBuilder.getAnglePoint(targetSide, source, target);
30
+ const { source, sourceSide, target, targetSide, offset } = request;
31
+ const sourceAnglePoint = FBezierPathBuilder.getAnglePoint(sourceSide, source, target, offset);
32
+ const targetAnglePoint = FBezierPathBuilder.getAnglePoint(targetSide, target, source, offset);
17
33
  const path = `M ${source.x} ${source.y} C ${sourceAnglePoint.x} ${sourceAnglePoint.y}, ${targetAnglePoint.x} ${targetAnglePoint.y}, ${target.x + 0.0001} ${target.y + 0.0001}`;
18
34
  const center = new CalculateConnectionCenterHandler().handle(new CalculateConnectionCenterRequest([source, sourceAnglePoint, targetAnglePoint, target]));
19
35
  return { path, center };
20
36
  }
21
37
  }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1iZXppZXIucGF0aC1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vY29tbW9uL2RvbWFpbi9mLWJlemllci5wYXRoLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUcxRCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVuSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsZ0JBQWdCO0lBRTlDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBdUIsRUFBRSxNQUFjLEVBQUUsTUFBYztRQUNsRixJQUFJLE1BQU0sR0FBVyxlQUFlLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV2RixJQUFJLElBQUksS0FBSyxpQkFBaUIsQ0FBQyxJQUFJLElBQUksSUFBSSxLQUFLLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3hFLE1BQU0sR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RSxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUE2QjtRQUN6QyxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBRTNELE1BQU0sZ0JBQWdCLEdBQUcsa0JBQWtCLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFdEYsTUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUV0RixNQUFNLElBQUksR0FBRyxLQUFNLE1BQU0sQ0FBQyxDQUFFLElBQUssTUFBTSxDQUFDLENBQUUsTUFBTyxnQkFBZ0IsQ0FBQyxDQUFFLElBQUssZ0JBQWdCLENBQUMsQ0FBRSxLQUFNLGdCQUFnQixDQUFDLENBQUUsSUFBSyxnQkFBZ0IsQ0FBQyxDQUFFLEtBQU0sTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFPLElBQUssTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFPLEVBQUUsQ0FBQztRQUUvTCxNQUFNLE1BQU0sR0FBRyxJQUFJLGdDQUFnQyxFQUFFLENBQUMsTUFBTSxDQUN4RCxJQUFJLGdDQUFnQyxDQUFDLENBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQzdGLENBQUM7UUFFRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzFCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2ludCwgUG9pbnRFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IEZQYXRoQnVpbGRlckJhc2UgfSBmcm9tICcuL2YtcGF0aC1idWlsZGVyLWJhc2UnO1xuaW1wb3J0IHsgRUZDb25uZWN0YWJsZVNpZGUgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgSUZQYXRoQnVpbGRlclJlcXVlc3QgfSBmcm9tICcuL2ktZi1wYXRoLWJ1aWxkZXItcmVxdWVzdCc7XG5pbXBvcnQgeyBJRlBhdGhCdWlsZGVyUmVzcG9uc2UgfSBmcm9tICcuL2ktZi1wYXRoLWJ1aWxkZXItcmVzcG9uc2UnO1xuaW1wb3J0IHsgQ2FsY3VsYXRlQ29ubmVjdGlvbkNlbnRlckhhbmRsZXIsIENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJSZXF1ZXN0IH0gZnJvbSAnLi9jYWxjdWxhdGUtY29ubmVjdGlvbi1jZW50ZXInO1xuXG5leHBvcnQgY2xhc3MgRkJlemllclBhdGhCdWlsZGVyIGV4dGVuZHMgRlBhdGhCdWlsZGVyQmFzZSB7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0QW5nbGVQb2ludChzaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSwgc291cmNlOiBJUG9pbnQsIHRhcmdldDogSVBvaW50KTogSVBvaW50IHtcbiAgICBsZXQgcmVzdWx0OiBJUG9pbnQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZShzb3VyY2UueCwgMC41ICogKHNvdXJjZS55ICsgdGFyZ2V0LnkpKTtcblxuICAgIGlmIChzaWRlID09PSBFRkNvbm5lY3RhYmxlU2lkZS5MRUZUIHx8IHNpZGUgPT09IEVGQ29ubmVjdGFibGVTaWRlLlJJR0hUKSB7XG4gICAgICByZXN1bHQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgwLjUgKiAoc291cmNlLnggKyB0YXJnZXQueCksIHNvdXJjZS55KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBJRlBhdGhCdWlsZGVyUmVxdWVzdCk6IElGUGF0aEJ1aWxkZXJSZXNwb25zZSB7XG4gICAgY29uc3QgeyBzb3VyY2UsIHNvdXJjZVNpZGUsIHRhcmdldCwgdGFyZ2V0U2lkZSB9ID0gcmVxdWVzdDtcblxuICAgIGNvbnN0IHNvdXJjZUFuZ2xlUG9pbnQgPSBGQmV6aWVyUGF0aEJ1aWxkZXIuZ2V0QW5nbGVQb2ludChzb3VyY2VTaWRlLCBzb3VyY2UsIHRhcmdldCk7XG5cbiAgICBjb25zdCB0YXJnZXRBbmdsZVBvaW50ID0gRkJlemllclBhdGhCdWlsZGVyLmdldEFuZ2xlUG9pbnQodGFyZ2V0U2lkZSwgc291cmNlLCB0YXJnZXQpO1xuXG4gICAgY29uc3QgcGF0aCA9IGBNICR7IHNvdXJjZS54IH0gJHsgc291cmNlLnkgfSBDICR7IHNvdXJjZUFuZ2xlUG9pbnQueCB9ICR7IHNvdXJjZUFuZ2xlUG9pbnQueSB9LCAkeyB0YXJnZXRBbmdsZVBvaW50LnggfSAkeyB0YXJnZXRBbmdsZVBvaW50LnkgfSwgJHsgdGFyZ2V0LnggKyAwLjAwMDEgfSAkeyB0YXJnZXQueSArIDAuMDAwMSB9YDtcblxuICAgIGNvbnN0IGNlbnRlciA9IG5ldyBDYWxjdWxhdGVDb25uZWN0aW9uQ2VudGVySGFuZGxlcigpLmhhbmRsZShcbiAgICAgICAgbmV3IENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJSZXF1ZXN0KFtzb3VyY2UsIHNvdXJjZUFuZ2xlUG9pbnQsIHRhcmdldEFuZ2xlUG9pbnQsIHRhcmdldF0pXG4gICAgKTtcblxuICAgIHJldHVybiB7IHBhdGgsIGNlbnRlciB9O1xuICB9XG59XG4iXX0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1iZXppZXIucGF0aC1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vY29tbW9uL2RvbWFpbi9mLWJlemllci5wYXRoLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHMUQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFbkgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGdCQUFnQjtJQUU5QyxNQUFNLENBQUMsa0JBQWtCLENBQUMsUUFBZ0IsRUFBRSxNQUFjO1FBQ2hFLElBQUksUUFBUSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFDRCxPQUFPLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUF1QixFQUFFLE1BQWMsRUFBRSxNQUFjLEVBQUUsTUFBYztRQUVsRyxJQUFJLE1BQU0sR0FBVyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFbEQsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNiLEtBQUssaUJBQWlCLENBQUMsSUFBSTtnQkFDekIsTUFBTSxDQUFDLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQy9FLE1BQU07WUFDUixLQUFLLGlCQUFpQixDQUFDLEtBQUs7Z0JBQzFCLE1BQU0sQ0FBQyxDQUFDLElBQUksa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUMvRSxNQUFNO1lBQ1IsS0FBSyxpQkFBaUIsQ0FBQyxHQUFHO2dCQUN4QixNQUFNLENBQUMsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDL0UsTUFBTTtZQUNSLEtBQUssaUJBQWlCLENBQUMsTUFBTTtnQkFDM0IsTUFBTSxDQUFDLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQy9FLE1BQU07UUFDVixDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUE2QjtRQUN6QyxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUVuRSxNQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUU5RixNQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUU5RixNQUFNLElBQUksR0FBRyxLQUFNLE1BQU0sQ0FBQyxDQUFFLElBQUssTUFBTSxDQUFDLENBQUUsTUFBTyxnQkFBZ0IsQ0FBQyxDQUFFLElBQUssZ0JBQWdCLENBQUMsQ0FBRSxLQUFNLGdCQUFnQixDQUFDLENBQUUsSUFBSyxnQkFBZ0IsQ0FBQyxDQUFFLEtBQU0sTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFPLElBQUssTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFPLEVBQUUsQ0FBQztRQUUvTCxNQUFNLE1BQU0sR0FBRyxJQUFJLGdDQUFnQyxFQUFFLENBQUMsTUFBTSxDQUMxRCxJQUFJLGdDQUFnQyxDQUFDLENBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sQ0FBRSxDQUFDLENBQzdGLENBQUM7UUFFRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzFCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2ludCB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBGUGF0aEJ1aWxkZXJCYXNlIH0gZnJvbSAnLi9mLXBhdGgtYnVpbGRlci1iYXNlJztcbmltcG9ydCB7IEVGQ29ubmVjdGFibGVTaWRlIH0gZnJvbSAnLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IElGUGF0aEJ1aWxkZXJSZXF1ZXN0IH0gZnJvbSAnLi9pLWYtcGF0aC1idWlsZGVyLXJlcXVlc3QnO1xuaW1wb3J0IHsgSUZQYXRoQnVpbGRlclJlc3BvbnNlIH0gZnJvbSAnLi9pLWYtcGF0aC1idWlsZGVyLXJlc3BvbnNlJztcbmltcG9ydCB7IENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJIYW5kbGVyLCBDYWxjdWxhdGVDb25uZWN0aW9uQ2VudGVyUmVxdWVzdCB9IGZyb20gJy4vY2FsY3VsYXRlLWNvbm5lY3Rpb24tY2VudGVyJztcblxuZXhwb3J0IGNsYXNzIEZCZXppZXJQYXRoQnVpbGRlciBleHRlbmRzIEZQYXRoQnVpbGRlckJhc2Uge1xuXG4gIHByaXZhdGUgc3RhdGljIGdldENvbm5lY3Rvck9mZnNldChkaXN0YW5jZTogbnVtYmVyLCBvZmZzZXQ6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKGRpc3RhbmNlID49IG9mZnNldCkge1xuICAgICAgcmV0dXJuIGRpc3RhbmNlO1xuICAgIH1cbiAgICByZXR1cm4gb2Zmc2V0ICogTWF0aC5zcXJ0KG9mZnNldCAtIGRpc3RhbmNlKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldEFuZ2xlUG9pbnQoc2lkZTogRUZDb25uZWN0YWJsZVNpZGUsIHNvdXJjZTogSVBvaW50LCB0YXJnZXQ6IElQb2ludCwgb2Zmc2V0OiBudW1iZXIpOiBJUG9pbnQge1xuXG4gICAgbGV0IHJlc3VsdDogSVBvaW50ID0geyB4OiBzb3VyY2UueCwgeTogc291cmNlLnkgfTtcblxuICAgIHN3aXRjaCAoc2lkZSkge1xuICAgICAgY2FzZSBFRkNvbm5lY3RhYmxlU2lkZS5MRUZUOlxuICAgICAgICByZXN1bHQueCAtPSBGQmV6aWVyUGF0aEJ1aWxkZXIuZ2V0Q29ubmVjdG9yT2Zmc2V0KHNvdXJjZS54IC0gdGFyZ2V0LngsIG9mZnNldCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFRkNvbm5lY3RhYmxlU2lkZS5SSUdIVDpcbiAgICAgICAgcmVzdWx0LnggKz0gRkJlemllclBhdGhCdWlsZGVyLmdldENvbm5lY3Rvck9mZnNldCh0YXJnZXQueCAtIHNvdXJjZS54LCBvZmZzZXQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuVE9QOlxuICAgICAgICByZXN1bHQueSAtPSBGQmV6aWVyUGF0aEJ1aWxkZXIuZ2V0Q29ubmVjdG9yT2Zmc2V0KHNvdXJjZS55IC0gdGFyZ2V0LnksIG9mZnNldCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFRkNvbm5lY3RhYmxlU2lkZS5CT1RUT006XG4gICAgICAgIHJlc3VsdC55ICs9IEZCZXppZXJQYXRoQnVpbGRlci5nZXRDb25uZWN0b3JPZmZzZXQodGFyZ2V0LnkgLSBzb3VyY2UueSwgb2Zmc2V0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogSUZQYXRoQnVpbGRlclJlcXVlc3QpOiBJRlBhdGhCdWlsZGVyUmVzcG9uc2Uge1xuICAgIGNvbnN0IHsgc291cmNlLCBzb3VyY2VTaWRlLCB0YXJnZXQsIHRhcmdldFNpZGUsIG9mZnNldCB9ID0gcmVxdWVzdDtcblxuICAgIGNvbnN0IHNvdXJjZUFuZ2xlUG9pbnQgPSBGQmV6aWVyUGF0aEJ1aWxkZXIuZ2V0QW5nbGVQb2ludChzb3VyY2VTaWRlLCBzb3VyY2UsIHRhcmdldCwgb2Zmc2V0KTtcblxuICAgIGNvbnN0IHRhcmdldEFuZ2xlUG9pbnQgPSBGQmV6aWVyUGF0aEJ1aWxkZXIuZ2V0QW5nbGVQb2ludCh0YXJnZXRTaWRlLCB0YXJnZXQsIHNvdXJjZSwgb2Zmc2V0KTtcblxuICAgIGNvbnN0IHBhdGggPSBgTSAkeyBzb3VyY2UueCB9ICR7IHNvdXJjZS55IH0gQyAkeyBzb3VyY2VBbmdsZVBvaW50LnggfSAkeyBzb3VyY2VBbmdsZVBvaW50LnkgfSwgJHsgdGFyZ2V0QW5nbGVQb2ludC54IH0gJHsgdGFyZ2V0QW5nbGVQb2ludC55IH0sICR7IHRhcmdldC54ICsgMC4wMDAxIH0gJHsgdGFyZ2V0LnkgKyAwLjAwMDEgfWA7XG5cbiAgICBjb25zdCBjZW50ZXIgPSBuZXcgQ2FsY3VsYXRlQ29ubmVjdGlvbkNlbnRlckhhbmRsZXIoKS5oYW5kbGUoXG4gICAgICBuZXcgQ2FsY3VsYXRlQ29ubmVjdGlvbkNlbnRlclJlcXVlc3QoWyBzb3VyY2UsIHNvdXJjZUFuZ2xlUG9pbnQsIHRhcmdldEFuZ2xlUG9pbnQsIHRhcmdldCBdKVxuICAgICk7XG5cbiAgICByZXR1cm4geyBwYXRoLCBjZW50ZXIgfTtcbiAgfVxufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { Directive } from '@angular/core';
2
- import { DomElementExtensions, VectorExtensions } from '@foblex/core';
2
+ import { DomElementExtensions, sanitizeElementId, VectorExtensions } from '@foblex/core';
3
3
  import { Subject } from 'rxjs';
4
4
  import { mixinChangeConnectionSelection, mixinChangeConnectionVisibility } from './mixins';
5
5
  import { getFlowUid } from '../../get-flow-uid';
@@ -51,7 +51,7 @@ export class FConnectionBase extends MIXIN_BASE {
51
51
  this.fDefs.nativeElement.innerHTML = '';
52
52
  this.fMarkers.forEach((marker) => {
53
53
  const markerElement = DomElementExtensions.createSvgElement('marker');
54
- markerElement.setAttribute('id', getFlowUid() + '-' + marker.type + '-' + this.fConnectionId);
54
+ markerElement.setAttribute('id', this.getMarkerId(getFlowUid() + '-' + marker.type + '-' + this.fConnectionId));
55
55
  markerElement.setAttribute('markerHeight', `${marker.height}`);
56
56
  markerElement.setAttribute('markerWidth', `${marker.width}`);
57
57
  markerElement.setAttribute('orient', 'auto');
@@ -69,6 +69,9 @@ export class FConnectionBase extends MIXIN_BASE {
69
69
  marker.hostElement.remove();
70
70
  });
71
71
  }
72
+ getMarkerId(id) {
73
+ return sanitizeElementId(id);
74
+ }
72
75
  redraw() {
73
76
  this.fPath.setPath(this.path);
74
77
  this.fSelection.setPath(this.path);
@@ -82,4 +85,4 @@ export class FConnectionBase extends MIXIN_BASE {
82
85
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FConnectionBase, decorators: [{
83
86
  type: Directive
84
87
  }], ctorParameters: () => [{ type: i0.ElementRef }] });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vZi1jb25uZWN0aW9uLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBeUIsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFvQyxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4RyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBTS9CLE9BQU8sRUFHTCw4QkFBOEIsRUFDOUIsK0JBQStCLEVBQ2hDLE1BQU0sVUFBVSxDQUFDO0FBUWxCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVoRCxPQUFPLEVBQW9CLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUVsRSxNQUFNLFVBQVUsR0FBRyw4QkFBOEIsQ0FDN0MsK0JBQStCLENBQzNCO0lBQ0UsWUFDVyxXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUVuQyxDQUFDO0NBQ0YsQ0FBQyxDQUFDLENBQUM7QUFHWixNQUFNLE9BQWdCLGVBQWdCLFNBQVEsVUFBVTtJQW9EdEQsWUFBc0IsZ0JBQXlDO1FBQzdELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQXJDakMsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUVsQixXQUFNLEdBQVksZ0JBQWdCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFdkMsaUJBQVksR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQThCM0QsaUJBQVksR0FBcUIsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO0lBSW5FLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsU0FB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VyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQWdCLENBQUM7WUFDaEUsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQzlCLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMvQixNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxDQUFDOzhHQTdIbUIsZUFBZTtrR0FBZixlQUFlOzsyRkFBZixlQUFlO2tCQURwQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbUVsZW1lbnRFeHRlbnNpb25zLCBJSGFzSG9zdEVsZW1lbnQsIElQb2ludCwgSVZlY3RvciwgVmVjdG9yRXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFRkNvbm5lY3Rpb25CZWhhdmlvciB9IGZyb20gJy4vZS1mLWNvbm5lY3Rpb24tYmVoYXZpb3InO1xuaW1wb3J0IHsgRUZDb25uZWN0aW9uVHlwZSB9IGZyb20gJy4vZS1mLWNvbm5lY3Rpb24tdHlwZSc7XG5pbXBvcnQgeyBJSGFzQ29ubmVjdGlvbkNvbG9yIH0gZnJvbSAnLi9pLWhhcy1jb25uZWN0aW9uLWNvbG9yJztcbmltcG9ydCB7IElIYXNDb25uZWN0aW9uRnJvbVRvIH0gZnJvbSAnLi9pLWhhcy1jb25uZWN0aW9uLWZyb20tdG8nO1xuaW1wb3J0IHsgSUhhc0Nvbm5lY3Rpb25UZXh0IH0gZnJvbSAnLi9pLWhhcy1jb25uZWN0aW9uLXRleHQnO1xuaW1wb3J0IHtcbiAgSUNhbkNoYW5nZUNvbm5lY3Rpb25WaXNpYmlsaXR5LFxuICBJU2VsZWN0YWJsZSxcbiAgbWl4aW5DaGFuZ2VDb25uZWN0aW9uU2VsZWN0aW9uLFxuICBtaXhpbkNoYW5nZUNvbm5lY3Rpb25WaXNpYmlsaXR5XG59IGZyb20gJy4vbWl4aW5zJztcbmltcG9ydCB7IElDb25uZWN0aW9uUGF0aCB9IGZyb20gJy4vZi1wYXRoJztcbmltcG9ydCB7IElDb25uZWN0aW9uR3JhZGllbnQgfSBmcm9tICcuL2YtZ3JhZGllbnQnO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25EcmFnSGFuZGxlQ29tcG9uZW50IH0gZnJvbSAnLi9mLWRyYWctaGFuZGxlJztcbmltcG9ydCB7IEZDb25uZWN0aW9uU2VsZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9mLXNlbGVjdGlvbic7XG5pbXBvcnQgeyBJQ29ubmVjdGlvblRleHQgfSBmcm9tICcuL2YtY29ubmVjdGlvbi10ZXh0JztcbmltcG9ydCB7IElIYXNTdGF0ZUNoYW5nZXMgfSBmcm9tICcuLi8uLi9pLWhhcy1zdGF0ZS1jaGFuZ2VzJztcbmltcG9ydCB7IEZNYXJrZXJCYXNlIH0gZnJvbSAnLi4vZi1tYXJrZXInO1xuaW1wb3J0IHsgZ2V0Rmxvd1VpZCB9IGZyb20gJy4uLy4uL2dldC1mbG93LXVpZCc7XG5pbXBvcnQgeyBFRkNvbm5lY3RhYmxlU2lkZSB9IGZyb20gJy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBGUGF0aEJ1aWxkZXJCYXNlLCBGUGF0aEJ1aWxkZXJTZWxlY3RvciB9IGZyb20gJy4vZG9tYWluJztcblxuY29uc3QgTUlYSU5fQkFTRSA9IG1peGluQ2hhbmdlQ29ubmVjdGlvblNlbGVjdGlvbihcbiAgICBtaXhpbkNoYW5nZUNvbm5lY3Rpb25WaXNpYmlsaXR5KFxuICAgICAgICBjbGFzcyB7XG4gICAgICAgICAgY29uc3RydWN0b3IoXG4gICAgICAgICAgICAgIHB1YmxpYyBob3N0RWxlbWVudDogSFRNTEVsZW1lbnRcbiAgICAgICAgICApIHtcbiAgICAgICAgICB9XG4gICAgICAgIH0pKTtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRkNvbm5lY3Rpb25CYXNlIGV4dGVuZHMgTUlYSU5fQkFTRVxuICAgIGltcGxlbWVudHMgSUhhc0hvc3RFbGVtZW50LCBJU2VsZWN0YWJsZSxcbiAgICAgICAgICAgICAgIElDYW5DaGFuZ2VDb25uZWN0aW9uVmlzaWJpbGl0eSxcbiAgICAgICAgICAgICAgIElIYXNTdGF0ZUNoYW5nZXMsIElIYXNDb25uZWN0aW9uQ29sb3IsXG4gICAgICAgICAgICAgICBJSGFzQ29ubmVjdGlvbkZyb21UbywgSUhhc0Nvbm5lY3Rpb25UZXh0IHtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkNvbm5lY3Rpb25JZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmU3RhcnRDb2xvcjogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmRW5kQ29sb3I6IHN0cmluZztcblxuICBwdWJsaWMgYWJzdHJhY3QgZk91dHB1dElkOiBzdHJpbmc7XG5cbiAgcHVibGljIGFic3RyYWN0IGZJbnB1dElkOiBzdHJpbmc7XG5cbiAgcHVibGljIHBhdGg6IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyB2ZWN0b3I6IElWZWN0b3IgPSBWZWN0b3JFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkRyYWdnaW5nRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGFic3RyYWN0IGZTZWxlY3Rpb25EaXNhYmxlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgYWJzdHJhY3QgYm91bmRpbmdFbGVtZW50OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQ7XG5cbiAgcHVibGljIGFic3RyYWN0IGZCZWhhdmlvcjogRUZDb25uZWN0aW9uQmVoYXZpb3I7XG5cbiAgcHVibGljIGFic3RyYWN0IGZUeXBlOiBFRkNvbm5lY3Rpb25UeXBlO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmRGVmczogRWxlbWVudFJlZjxTVkdEZWZzRWxlbWVudD47XG5cbiAgcHVibGljIGFic3RyYWN0IGZNYXJrZXJzOiBRdWVyeUxpc3Q8Rk1hcmtlckJhc2U+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmUGF0aDogSUNvbm5lY3Rpb25QYXRoO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmR3JhZGllbnQ6IElDb25uZWN0aW9uR3JhZGllbnQ7XG5cbiAgcHVibGljIGFic3RyYWN0IGZEcmFnSGFuZGxlOiBGQ29ubmVjdGlvbkRyYWdIYW5kbGVDb21wb25lbnQ7XG5cbiAgcHVibGljIGFic3RyYWN0IGZTZWxlY3Rpb246IEZDb25uZWN0aW9uU2VsZWN0aW9uQ29tcG9uZW50O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmVGV4dENvbXBvbmVudDogSUNvbm5lY3Rpb25UZXh0O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmVGV4dDogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmQ29ubmVjdGlvbkNlbnRlcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgcHVibGljIGZQYXRoQnVpbGRlcjogRlBhdGhCdWlsZGVyQmFzZSA9IG5ldyBGUGF0aEJ1aWxkZXJTZWxlY3RvcigpO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihlbGVtZW50UmVmZXJlbmNlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgIHN1cGVyKGVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmZQYXRoLmluaXRpYWxpemUoKTtcbiAgICB0aGlzLmZHcmFkaWVudC5pbml0aWFsaXplKCk7XG4gICAgdGhpcy5yZWRyYXcoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5wYXRoID0gJyc7XG4gICAgdGhpcy5mUGF0aC5pbml0aWFsaXplKCk7XG4gICAgdGhpcy5mR3JhZGllbnQuaW5pdGlhbGl6ZSgpO1xuICAgIHRoaXMucmVkcmF3KCk7XG4gIH1cblxuICBwdWJsaWMgaXNDb250YWlucyhlbGVtZW50OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuaG9zdEVsZW1lbnQuZmlyc3RDaGlsZD8ubGFzdENoaWxkIGFzIEhUTUxFbGVtZW50KS5jb250YWlucyhlbGVtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRWZWN0b3IoZnJvbTogSVBvaW50LCBmcm9tU2lkZTogRUZDb25uZWN0YWJsZVNpZGUsIHRvOiBJUG9pbnQsIHRvU2lkZTogRUZDb25uZWN0YWJsZVNpZGUpOiB2b2lkIHtcbiAgICB0aGlzLnZlY3RvciA9IHsgcG9pbnQxOiBmcm9tLCBwb2ludDI6IHRvIH07XG4gICAgY29uc3QgcGF0aFJlc3VsdCA9IHRoaXMuZlBhdGhCdWlsZGVyLmhhbmRsZShcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IHRoaXMuZlR5cGUsXG4gICAgICAgICAgc291cmNlOiBmcm9tLFxuICAgICAgICAgIHNvdXJjZVNpZGU6IGZyb21TaWRlLFxuICAgICAgICAgIHRhcmdldDogdG8sXG4gICAgICAgICAgdGFyZ2V0U2lkZTogdG9TaWRlLFxuICAgICAgICAgIHJhZGl1czogOCxcbiAgICAgICAgICBvZmZzZXQ6IDMyXG4gICAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5wYXRoID0gcGF0aFJlc3VsdC5wYXRoO1xuXG4gICAgY29uc3QgdHJhbnNmb3JtID0gYHBvc2l0aW9uOiBhYnNvbHV0ZTsgcG9pbnRlckV2ZW50czogYWxsOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgbGVmdDogJHsgcGF0aFJlc3VsdC5jZW50ZXIueCB9cHg7IHRvcDogJHsgcGF0aFJlc3VsdC5jZW50ZXIueSB9cHhgO1xuXG4gICAgdGhpcy5mQ29ubmVjdGlvbkNlbnRlcj8ubmF0aXZlRWxlbWVudD8uc2V0QXR0cmlidXRlKCdzdHlsZScsIHRyYW5zZm9ybSk7XG4gIH1cblxuICBwdWJsaWMgc2V0TWFya2VycygpOiB2b2lkIHtcbiAgICB0aGlzLmZEZWZzLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gJyc7XG4gICAgdGhpcy5mTWFya2Vycy5mb3JFYWNoKChtYXJrZXIpID0+IHtcbiAgICAgIGNvbnN0IG1hcmtlckVsZW1lbnQgPSBEb21FbGVtZW50RXh0ZW5zaW9ucy5jcmVhdGVTdmdFbGVtZW50KCdtYXJrZXInKTtcbiAgICAgIG1hcmtlckVsZW1lbnQuc2V0QXR0cmlidXRlKCdpZCcsIGdldEZsb3dVaWQoKSArICctJyArIG1hcmtlci50eXBlICsgJy0nICsgdGhpcy5mQ29ubmVjdGlvbklkKTtcbiAgICAgIG1hcmtlckVsZW1lbnQuc2V0QXR0cmlidXRlKCdtYXJrZXJIZWlnaHQnLCBgJHsgbWFya2VyLmhlaWdodCB9YCk7XG4gICAgICBtYXJrZXJFbGVtZW50LnNldEF0dHJpYnV0ZSgnbWFya2VyV2lkdGgnLCBgJHsgbWFya2VyLndpZHRoIH1gKTtcbiAgICAgIG1hcmtlckVsZW1lbnQuc2V0QXR0cmlidXRlKCdvcmllbnQnLCAnYXV0bycpO1xuICAgICAgbWFya2VyRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3JlZlgnLCBgJHsgbWFya2VyLnJlZlggfWApO1xuICAgICAgbWFya2VyRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3JlZlknLCBgJHsgbWFya2VyLnJlZlkgfWApO1xuICAgICAgbWFya2VyRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ21hcmtlclVuaXRzJywgJ3N0cm9rZVdpZHRoJyk7XG5cbiAgICAgIG1hcmtlci5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2hlaWdodCcsIGAkeyBtYXJrZXIuaGVpZ2h0IH1gKTtcbiAgICAgIG1hcmtlci5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgYCR7IG1hcmtlci53aWR0aCB9YCk7XG4gICAgICBjb25zdCBjbG9uZSA9IG1hcmtlci5ob3N0RWxlbWVudC5jbG9uZU5vZGUodHJ1ZSkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjbG9uZS5zdHlsZS5kaXNwbGF5ID0gJ3Vuc2V0JztcbiAgICAgIG1hcmtlckVsZW1lbnQuYXBwZW5kKGNsb25lKTtcblxuICAgICAgdGhpcy5mRGVmcy5uYXRpdmVFbGVtZW50LmFwcGVuZChtYXJrZXJFbGVtZW50KTtcbiAgICB9KTtcbiAgICB0aGlzLmZNYXJrZXJzLmZvckVhY2goKG1hcmtlcikgPT4ge1xuICAgICAgbWFya2VyLmhvc3RFbGVtZW50LnJlbW92ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlZHJhdygpOiB2b2lkIHtcbiAgICB0aGlzLmZQYXRoLnNldFBhdGgodGhpcy5wYXRoKTtcbiAgICB0aGlzLmZTZWxlY3Rpb24uc2V0UGF0aCh0aGlzLnBhdGgpO1xuICAgIHRoaXMuZkdyYWRpZW50LnJlZHJhdyh0aGlzLnZlY3Rvcik7XG4gICAgdGhpcy5mRHJhZ0hhbmRsZS5yZWRyYXcodGhpcy52ZWN0b3IucG9pbnQyKTtcbiAgICB0aGlzLmZUZXh0Q29tcG9uZW50LnJlZHJhdyh0aGlzLnZlY3Rvcik7XG4gIH1cbn1cbiJdfQ==
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vZi1jb25uZWN0aW9uLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBeUIsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUNMLG9CQUFvQixFQUlwQixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2pCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFNL0IsT0FBTyxFQUdMLDhCQUE4QixFQUM5QiwrQkFBK0IsRUFDaEMsTUFBTSxVQUFVLENBQUM7QUFRbEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhELE9BQU8sRUFBb0Isb0JBQW9CLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBRWxFLE1BQU0sVUFBVSxHQUFHLDhCQUE4QixDQUM3QywrQkFBK0IsQ0FDM0I7SUFDRSxZQUNXLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBRW5DLENBQUM7Q0FDRixDQUFDLENBQUMsQ0FBQztBQUdaLE1BQU0sT0FBZ0IsZUFBZ0IsU0FBUSxVQUFVO0lBb0R0RCxZQUFzQixnQkFBeUM7UUFDN0QsS0FBSyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBckNqQyxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBRWxCLFdBQU0sR0FBWSxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUV2QyxpQkFBWSxHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO1FBOEIzRCxpQkFBWSxHQUFxQixJQUFJLG9CQUFvQixFQUFFLENBQUM7SUFJbkUsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hC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Q0FBQztZQUM5RCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQWdCLENBQUM7WUFDaEUsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQzlCLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMvQixNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFdBQVcsQ0FBQyxFQUFVO1FBQzVCLE9BQU8saUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxDQUFDOzhHQWpJbUIsZUFBZTtrR0FBZixlQUFlOzsyRkFBZixlQUFlO2tCQURwQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIERvbUVsZW1lbnRFeHRlbnNpb25zLFxuICBJSGFzSG9zdEVsZW1lbnQsXG4gIElQb2ludCxcbiAgSVZlY3RvcixcbiAgc2FuaXRpemVFbGVtZW50SWQsXG4gIFZlY3RvckV4dGVuc2lvbnNcbn0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVGQ29ubmVjdGlvbkJlaGF2aW9yIH0gZnJvbSAnLi9lLWYtY29ubmVjdGlvbi1iZWhhdmlvcic7XG5pbXBvcnQgeyBFRkNvbm5lY3Rpb25UeXBlIH0gZnJvbSAnLi9lLWYtY29ubmVjdGlvbi10eXBlJztcbmltcG9ydCB7IElIYXNDb25uZWN0aW9uQ29sb3IgfSBmcm9tICcuL2ktaGFzLWNvbm5lY3Rpb24tY29sb3InO1xuaW1wb3J0IHsgSUhhc0Nvbm5lY3Rpb25Gcm9tVG8gfSBmcm9tICcuL2ktaGFzLWNvbm5lY3Rpb24tZnJvbS10byc7XG5pbXBvcnQgeyBJSGFzQ29ubmVjdGlvblRleHQgfSBmcm9tICcuL2ktaGFzLWNvbm5lY3Rpb24tdGV4dCc7XG5pbXBvcnQge1xuICBJQ2FuQ2hhbmdlQ29ubmVjdGlvblZpc2liaWxpdHksXG4gIElTZWxlY3RhYmxlLFxuICBtaXhpbkNoYW5nZUNvbm5lY3Rpb25TZWxlY3Rpb24sXG4gIG1peGluQ2hhbmdlQ29ubmVjdGlvblZpc2liaWxpdHlcbn0gZnJvbSAnLi9taXhpbnMnO1xuaW1wb3J0IHsgSUNvbm5lY3Rpb25QYXRoIH0gZnJvbSAnLi9mLXBhdGgnO1xuaW1wb3J0IHsgSUNvbm5lY3Rpb25HcmFkaWVudCB9IGZyb20gJy4vZi1ncmFkaWVudCc7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbkRyYWdIYW5kbGVDb21wb25lbnQgfSBmcm9tICcuL2YtZHJhZy1oYW5kbGUnO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25TZWxlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2Ytc2VsZWN0aW9uJztcbmltcG9ydCB7IElDb25uZWN0aW9uVGV4dCB9IGZyb20gJy4vZi1jb25uZWN0aW9uLXRleHQnO1xuaW1wb3J0IHsgSUhhc1N0YXRlQ2hhbmdlcyB9IGZyb20gJy4uLy4uL2ktaGFzLXN0YXRlLWNoYW5nZXMnO1xuaW1wb3J0IHsgRUZNYXJrZXJUeXBlLCBGTWFya2VyQmFzZSB9IGZyb20gJy4uL2YtbWFya2VyJztcbmltcG9ydCB7IGdldEZsb3dVaWQgfSBmcm9tICcuLi8uLi9nZXQtZmxvdy11aWQnO1xuaW1wb3J0IHsgRUZDb25uZWN0YWJsZVNpZGUgfSBmcm9tICcuLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRlBhdGhCdWlsZGVyQmFzZSwgRlBhdGhCdWlsZGVyU2VsZWN0b3IgfSBmcm9tICcuL2RvbWFpbic7XG5cbmNvbnN0IE1JWElOX0JBU0UgPSBtaXhpbkNoYW5nZUNvbm5lY3Rpb25TZWxlY3Rpb24oXG4gICAgbWl4aW5DaGFuZ2VDb25uZWN0aW9uVmlzaWJpbGl0eShcbiAgICAgICAgY2xhc3Mge1xuICAgICAgICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICAgICAgICBwdWJsaWMgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50XG4gICAgICAgICAgKSB7XG4gICAgICAgICAgfVxuICAgICAgICB9KSk7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZDb25uZWN0aW9uQmFzZSBleHRlbmRzIE1JWElOX0JBU0VcbiAgICBpbXBsZW1lbnRzIElIYXNIb3N0RWxlbWVudCwgSVNlbGVjdGFibGUsXG4gICAgICAgICAgICAgICBJQ2FuQ2hhbmdlQ29ubmVjdGlvblZpc2liaWxpdHksXG4gICAgICAgICAgICAgICBJSGFzU3RhdGVDaGFuZ2VzLCBJSGFzQ29ubmVjdGlvbkNvbG9yLFxuICAgICAgICAgICAgICAgSUhhc0Nvbm5lY3Rpb25Gcm9tVG8sIElIYXNDb25uZWN0aW9uVGV4dCB7XG5cbiAgcHVibGljIGFic3RyYWN0IGZDb25uZWN0aW9uSWQ6IHN0cmluZztcblxuICBwdWJsaWMgYWJzdHJhY3QgZlN0YXJ0Q29sb3I6IHN0cmluZztcblxuICBwdWJsaWMgYWJzdHJhY3QgZkVuZENvbG9yOiBzdHJpbmc7XG5cbiAgcHVibGljIGFic3RyYWN0IGZPdXRwdXRJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmSW5wdXRJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBwYXRoOiBzdHJpbmcgPSAnJztcblxuICBwdWJsaWMgdmVjdG9yOiBJVmVjdG9yID0gVmVjdG9yRXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHN0YXRlQ2hhbmdlczogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIGFic3RyYWN0IGZEcmFnZ2luZ0Rpc2FibGVkOiBib29sZWFuO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmU2VsZWN0aW9uRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGFic3RyYWN0IGJvdW5kaW5nRWxlbWVudDogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmQmVoYXZpb3I6IEVGQ29ubmVjdGlvbkJlaGF2aW9yO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmVHlwZTogRUZDb25uZWN0aW9uVHlwZTtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkRlZnM6IEVsZW1lbnRSZWY8U1ZHRGVmc0VsZW1lbnQ+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmTWFya2VyczogUXVlcnlMaXN0PEZNYXJrZXJCYXNlPjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZlBhdGg6IElDb25uZWN0aW9uUGF0aDtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkdyYWRpZW50OiBJQ29ubmVjdGlvbkdyYWRpZW50O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmRHJhZ0hhbmRsZTogRkNvbm5lY3Rpb25EcmFnSGFuZGxlQ29tcG9uZW50O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmU2VsZWN0aW9uOiBGQ29ubmVjdGlvblNlbGVjdGlvbkNvbXBvbmVudDtcblxuICBwdWJsaWMgYWJzdHJhY3QgZlRleHRDb21wb25lbnQ6IElDb25uZWN0aW9uVGV4dDtcblxuICBwdWJsaWMgYWJzdHJhY3QgZlRleHQ6IHN0cmluZztcblxuICBwdWJsaWMgYWJzdHJhY3QgZkNvbm5lY3Rpb25DZW50ZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIHB1YmxpYyBmUGF0aEJ1aWxkZXI6IEZQYXRoQnVpbGRlckJhc2UgPSBuZXcgRlBhdGhCdWlsZGVyU2VsZWN0b3IoKTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICBzdXBlcihlbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgdGhpcy5mUGF0aC5pbml0aWFsaXplKCk7XG4gICAgdGhpcy5mR3JhZGllbnQuaW5pdGlhbGl6ZSgpO1xuICAgIHRoaXMucmVkcmF3KCk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMucGF0aCA9ICcnO1xuICAgIHRoaXMuZlBhdGguaW5pdGlhbGl6ZSgpO1xuICAgIHRoaXMuZkdyYWRpZW50LmluaXRpYWxpemUoKTtcbiAgICB0aGlzLnJlZHJhdygpO1xuICB9XG5cbiAgcHVibGljIGlzQ29udGFpbnMoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLmhvc3RFbGVtZW50LmZpcnN0Q2hpbGQ/Lmxhc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuY29udGFpbnMoZWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgc2V0VmVjdG9yKGZyb206IElQb2ludCwgZnJvbVNpZGU6IEVGQ29ubmVjdGFibGVTaWRlLCB0bzogSVBvaW50LCB0b1NpZGU6IEVGQ29ubmVjdGFibGVTaWRlKTogdm9pZCB7XG4gICAgdGhpcy52ZWN0b3IgPSB7IHBvaW50MTogZnJvbSwgcG9pbnQyOiB0byB9O1xuICAgIGNvbnN0IHBhdGhSZXN1bHQgPSB0aGlzLmZQYXRoQnVpbGRlci5oYW5kbGUoXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiB0aGlzLmZUeXBlLFxuICAgICAgICAgIHNvdXJjZTogZnJvbSxcbiAgICAgICAgICBzb3VyY2VTaWRlOiBmcm9tU2lkZSxcbiAgICAgICAgICB0YXJnZXQ6IHRvLFxuICAgICAgICAgIHRhcmdldFNpZGU6IHRvU2lkZSxcbiAgICAgICAgICByYWRpdXM6IDgsXG4gICAgICAgICAgb2Zmc2V0OiAzMlxuICAgICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMucGF0aCA9IHBhdGhSZXN1bHQucGF0aDtcblxuICAgIGNvbnN0IHRyYW5zZm9ybSA9IGBwb3NpdGlvbjogYWJzb2x1dGU7IHBvaW50ZXJFdmVudHM6IGFsbDsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IGxlZnQ6ICR7IHBhdGhSZXN1bHQuY2VudGVyLnggfXB4OyB0b3A6ICR7IHBhdGhSZXN1bHQuY2VudGVyLnkgfXB4YDtcblxuICAgIHRoaXMuZkNvbm5lY3Rpb25DZW50ZXI/Lm5hdGl2ZUVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCB0cmFuc2Zvcm0pO1xuICB9XG5cbiAgcHVibGljIHNldE1hcmtlcnMoKTogdm9pZCB7XG4gICAgdGhpcy5mRGVmcy5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9ICcnO1xuICAgIHRoaXMuZk1hcmtlcnMuZm9yRWFjaCgobWFya2VyKSA9PiB7XG4gICAgICBjb25zdCBtYXJrZXJFbGVtZW50ID0gRG9tRWxlbWVudEV4dGVuc2lvbnMuY3JlYXRlU3ZnRWxlbWVudCgnbWFya2VyJyk7XG4gICAgICBtYXJrZXJFbGVtZW50LnNldEF0dHJpYnV0ZSgnaWQnLCB0aGlzLmdldE1hcmtlcklkKGdldEZsb3dVaWQoKSArICctJyArIG1hcmtlci50eXBlICsgJy0nICsgdGhpcy5mQ29ubmVjdGlvbklkKSk7XG4gICAgICBtYXJrZXJFbGVtZW50LnNldEF0dHJpYnV0ZSgnbWFya2VySGVpZ2h0JywgYCR7IG1hcmtlci5oZWlnaHQgfWApO1xuICAgICAgbWFya2VyRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ21hcmtlcldpZHRoJywgYCR7IG1hcmtlci53aWR0aCB9YCk7XG4gICAgICBtYXJrZXJFbGVtZW50LnNldEF0dHJpYnV0ZSgnb3JpZW50JywgJ2F1dG8nKTtcbiAgICAgIG1hcmtlckVsZW1lbnQuc2V0QXR0cmlidXRlKCdyZWZYJywgYCR7IG1hcmtlci5yZWZYIH1gKTtcbiAgICAgIG1hcmtlckVsZW1lbnQuc2V0QXR0cmlidXRlKCdyZWZZJywgYCR7IG1hcmtlci5yZWZZIH1gKTtcbiAgICAgIG1hcmtlckVsZW1lbnQuc2V0QXR0cmlidXRlKCdtYXJrZXJVbml0cycsICdzdHJva2VXaWR0aCcpO1xuXG4gICAgICBtYXJrZXIuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKCdoZWlnaHQnLCBgJHsgbWFya2VyLmhlaWdodCB9YCk7XG4gICAgICBtYXJrZXIuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKCd3aWR0aCcsIGAkeyBtYXJrZXIud2lkdGggfWApO1xuICAgICAgY29uc3QgY2xvbmUgPSBtYXJrZXIuaG9zdEVsZW1lbnQuY2xvbmVOb2RlKHRydWUpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgY2xvbmUuc3R5bGUuZGlzcGxheSA9ICd1bnNldCc7XG4gICAgICBtYXJrZXJFbGVtZW50LmFwcGVuZChjbG9uZSk7XG5cbiAgICAgIHRoaXMuZkRlZnMubmF0aXZlRWxlbWVudC5hcHBlbmQobWFya2VyRWxlbWVudCk7XG4gICAgfSk7XG4gICAgdGhpcy5mTWFya2Vycy5mb3JFYWNoKChtYXJrZXIpID0+IHtcbiAgICAgIG1hcmtlci5ob3N0RWxlbWVudC5yZW1vdmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TWFya2VySWQoaWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHNhbml0aXplRWxlbWVudElkKGlkKTtcbiAgfVxuXG4gIHB1YmxpYyByZWRyYXcoKTogdm9pZCB7XG4gICAgdGhpcy5mUGF0aC5zZXRQYXRoKHRoaXMucGF0aCk7XG4gICAgdGhpcy5mU2VsZWN0aW9uLnNldFBhdGgodGhpcy5wYXRoKTtcbiAgICB0aGlzLmZHcmFkaWVudC5yZWRyYXcodGhpcy52ZWN0b3IpO1xuICAgIHRoaXMuZkRyYWdIYW5kbGUucmVkcmF3KHRoaXMudmVjdG9yLnBvaW50Mik7XG4gICAgdGhpcy5mVGV4dENvbXBvbmVudC5yZWRyYXcodGhpcy52ZWN0b3IpO1xuICB9XG59XG4iXX0=
@@ -60,4 +60,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
60
60
  type: Inject,
61
61
  args: [F_CONNECTION]
62
62
  }] }] });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLXBhdGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vY29tbW9uL2YtcGF0aC9mLWNvbm5lY3Rpb24tcGF0aC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQW1CLE1BQU0scUJBQXFCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBYTlDLE1BQU0sT0FBTyx3QkFBd0I7SUFFbkMsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sd0JBQXdCLENBQUMsY0FBYyxDQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FDbkUsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFXLGdCQUFnQjtRQUN6QixPQUFPLHdCQUF3QixDQUFDLFlBQVksQ0FDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQ25FLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQztJQUM3QyxDQUFDO0lBRUQsWUFDWSxnQkFBNEMsRUFDdEIsSUFBZ0Q7UUFEdEUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUE0QjtRQUN0QixTQUFJLEdBQUosSUFBSSxDQUE0QztJQUVsRixDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRU0sT0FBTyxDQUFDLElBQVk7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLEdBQUksSUFBSyxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxRQUFTLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBRSxHQUFHLENBQUMsQ0FBQztRQUMxRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsUUFBUyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUUsR0FBRyxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsUUFBUyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUUsR0FBRyxDQUFDLENBQUM7UUFDakcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLFFBQVMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFTyxXQUFXLENBQUMsSUFBa0I7UUFDcEMsT0FBTyxpQkFBaUIsQ0FBQyxHQUFJLFVBQVUsRUFBRyxJQUFLLElBQUssSUFBSyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWMsRUFBRSxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxLQUFLLFFBQVMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFFLEdBQUcsQ0FBQTtJQUNySCxDQUFDOzhHQWhEVSx3QkFBd0IsNENBb0J2QixZQUFZO2tHQXBCYix3QkFBd0IsNkxBRnhCLENBQUUsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBRSxDQUFFLDBCQVB4RSxFQUFFOzsyRkFTRCx3QkFBd0I7a0JBWHBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsK0JBQStCO3dCQUN0QyxXQUFXLEVBQUUsa0JBQWtCO3dCQUMvQixlQUFlLEVBQUUsZ0JBQWdCO3FCQUNsQztvQkFDRCxTQUFTLEVBQUUsQ0FBRSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVywwQkFBMEIsRUFBRSxDQUFFO2lCQUNuRjs7MEJBcUJNLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGX0NPTk5FQ1RJT05fSURFTlRJRklFUlMgfSBmcm9tICcuLi9mLWNvbm5lY3Rpb24taWRlbnRpZmllcnMnO1xuaW1wb3J0IHsgSUhhc0Nvbm5lY3Rpb25Db2xvciB9IGZyb20gJy4uL2ktaGFzLWNvbm5lY3Rpb24tY29sb3InO1xuaW1wb3J0IHsgSUhhc0Nvbm5lY3Rpb25Gcm9tVG8gfSBmcm9tICcuLi9pLWhhcy1jb25uZWN0aW9uLWZyb20tdG8nO1xuaW1wb3J0IHsgRl9DT05ORUNUSU9OIH0gZnJvbSAnLi4vZi1jb25uZWN0aW9uLmluamVjdGlvbi10b2tlbic7XG5pbXBvcnQgeyBDT05ORUNUSU9OX1BBVEgsIElDb25uZWN0aW9uUGF0aCB9IGZyb20gJy4vaS1jb25uZWN0aW9uLXBhdGgnO1xuaW1wb3J0IHsgc2FuaXRpemVFbGVtZW50SWQgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgZ2V0Rmxvd1VpZCB9IGZyb20gJy4uLy4uLy4uL2dldC1mbG93LXVpZCc7XG5pbXBvcnQgeyBFRk1hcmtlclR5cGUgfSBmcm9tICcuLi8uLi9mLW1hcmtlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJwYXRoW2YtY29ubmVjdGlvbi1wYXRoXVwiLFxuICB0ZW1wbGF0ZTogJycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgY2xhc3M6IFwiZi1jb21wb25lbnQgZi1jb25uZWN0aW9uLXBhdGhcIixcbiAgICAnW2F0dHIuaWRdJzogJ2F0dHJDb25uZWN0aW9uSWQnLFxuICAgICdbYXR0ci5zdHJva2VdJzogJ2xpbmtUb0dyYWRpZW50JyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbIHsgcHJvdmlkZTogQ09OTkVDVElPTl9QQVRILCB1c2VFeGlzdGluZzogRkNvbm5lY3Rpb25QYXRoQ29tcG9uZW50IH0gXSxcbn0pXG5leHBvcnQgY2xhc3MgRkNvbm5lY3Rpb25QYXRoQ29tcG9uZW50IGltcGxlbWVudHMgSUNvbm5lY3Rpb25QYXRoIHtcblxuICBwdWJsaWMgZ2V0IGxpbmtUb0dyYWRpZW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEZfQ09OTkVDVElPTl9JREVOVElGSUVSUy5saW5rVG9HcmFkaWVudChcbiAgICAgIHRoaXMuYmFzZS5mQ29ubmVjdGlvbklkICsgdGhpcy5iYXNlLmZPdXRwdXRJZCArIHRoaXMuYmFzZS5mSW5wdXRJZFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGF0dHJDb25uZWN0aW9uSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gRl9DT05ORUNUSU9OX0lERU5USUZJRVJTLmNvbm5lY3Rpb25JZChcbiAgICAgIHRoaXMuYmFzZS5mQ29ubmVjdGlvbklkICsgdGhpcy5iYXNlLmZPdXRwdXRJZCArIHRoaXMuYmFzZS5mSW5wdXRJZFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhvc3RFbGVtZW50KCk6IFNWR1BhdGhFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxTVkdQYXRoRWxlbWVudD4sXG4gICAgICBASW5qZWN0KEZfQ09OTkVDVElPTikgcHJpdmF0ZSBiYXNlOiBJSGFzQ29ubmVjdGlvbkNvbG9yICYgSUhhc0Nvbm5lY3Rpb25Gcm9tVG9cbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc2VsZWN0KCk7XG4gIH1cblxuICBwdWJsaWMgc2V0UGF0aChwYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZShcImRcIiwgYCR7IHBhdGggfWApO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZSgnbWFya2VyLXN0YXJ0JywgYHVybCgjJHsgdGhpcy5nZXRNYXJrZXJJZChFRk1hcmtlclR5cGUuU0VMRUNURURfU1RBUlQpIH0pYCk7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ21hcmtlci1lbmQnLCBgdXJsKCMkeyB0aGlzLmdldE1hcmtlcklkKEVGTWFya2VyVHlwZS5TRUxFQ1RFRF9FTkQpIH0pYCk7XG4gIH1cblxuICBwdWJsaWMgZGVzZWxlY3QoKTogdm9pZCB7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ21hcmtlci1zdGFydCcsIGB1cmwoIyR7IHRoaXMuZ2V0TWFya2VySWQoRUZNYXJrZXJUeXBlLlNUQVJUKSB9KWApO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKCdtYXJrZXItZW5kJywgYHVybCgjJHsgdGhpcy5nZXRNYXJrZXJJZChFRk1hcmtlclR5cGUuRU5EKSB9KWApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRNYXJrZXJJZCh0eXBlOiBFRk1hcmtlclR5cGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBzYW5pdGl6ZUVsZW1lbnRJZChgJHsgZ2V0Rmxvd1VpZCgpIH0tJHsgdHlwZSB9LSR7IHRoaXMuYmFzZS5mQ29ubmVjdGlvbklkIH1gKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1NlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhvc3RFbGVtZW50LmdldEF0dHJpYnV0ZSgnbWFya2VyLXN0YXJ0JykgPT09IGB1cmwoIyR7IHRoaXMuZ2V0TWFya2VySWQoRUZNYXJrZXJUeXBlLlNFTEVDVEVEX1NUQVJUKSB9KWBcbiAgfVxufVxuIl19
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLXBhdGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vY29tbW9uL2YtcGF0aC9mLWNvbm5lY3Rpb24tcGF0aC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQW1CLE1BQU0scUJBQXFCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBYTlDLE1BQU0sT0FBTyx3QkFBd0I7SUFFbkMsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sd0JBQXdCLENBQUMsY0FBYyxDQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FDbkUsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFXLGdCQUFnQjtRQUN6QixPQUFPLHdCQUF3QixDQUFDLFlBQVksQ0FDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQ25FLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQztJQUM3QyxDQUFDO0lBRUQsWUFDVSxnQkFBNEMsRUFDdEIsSUFBZ0Q7UUFEdEUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUE0QjtRQUN0QixTQUFJLEdBQUosSUFBSSxDQUE0QztJQUVoRixDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRU0sT0FBTyxDQUFDLElBQVk7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLEdBQUksSUFBSyxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxRQUFTLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBRSxHQUFHLENBQUMsQ0FBQztRQUMxRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsUUFBUyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUUsR0FBRyxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsUUFBUyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUUsR0FBRyxDQUFDLENBQUM7UUFDakcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLFFBQVMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFTyxXQUFXLENBQUMsSUFBa0I7UUFDcEMsT0FBTyxpQkFBaUIsQ0FBQyxHQUFJLFVBQVUsRUFBRyxJQUFLLElBQUssSUFBSyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWMsRUFBRSxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxLQUFLLFFBQVMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFFLEdBQUcsQ0FBQTtJQUNySCxDQUFDOzhHQWhEVSx3QkFBd0IsNENBb0J6QixZQUFZO2tHQXBCWCx3QkFBd0IsNkxBRnhCLENBQUUsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBRSxDQUFFLDBCQVB4RSxFQUFFOzsyRkFTRCx3QkFBd0I7a0JBWHBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsK0JBQStCO3dCQUN0QyxXQUFXLEVBQUUsa0JBQWtCO3dCQUMvQixlQUFlLEVBQUUsZ0JBQWdCO3FCQUNsQztvQkFDRCxTQUFTLEVBQUUsQ0FBRSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVywwQkFBMEIsRUFBRSxDQUFFO2lCQUNuRjs7MEJBcUJJLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGX0NPTk5FQ1RJT05fSURFTlRJRklFUlMgfSBmcm9tICcuLi9mLWNvbm5lY3Rpb24taWRlbnRpZmllcnMnO1xuaW1wb3J0IHsgSUhhc0Nvbm5lY3Rpb25Db2xvciB9IGZyb20gJy4uL2ktaGFzLWNvbm5lY3Rpb24tY29sb3InO1xuaW1wb3J0IHsgSUhhc0Nvbm5lY3Rpb25Gcm9tVG8gfSBmcm9tICcuLi9pLWhhcy1jb25uZWN0aW9uLWZyb20tdG8nO1xuaW1wb3J0IHsgRl9DT05ORUNUSU9OIH0gZnJvbSAnLi4vZi1jb25uZWN0aW9uLmluamVjdGlvbi10b2tlbic7XG5pbXBvcnQgeyBDT05ORUNUSU9OX1BBVEgsIElDb25uZWN0aW9uUGF0aCB9IGZyb20gJy4vaS1jb25uZWN0aW9uLXBhdGgnO1xuaW1wb3J0IHsgc2FuaXRpemVFbGVtZW50SWQgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgZ2V0Rmxvd1VpZCB9IGZyb20gJy4uLy4uLy4uL2dldC1mbG93LXVpZCc7XG5pbXBvcnQgeyBFRk1hcmtlclR5cGUgfSBmcm9tICcuLi8uLi9mLW1hcmtlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJwYXRoW2YtY29ubmVjdGlvbi1wYXRoXVwiLFxuICB0ZW1wbGF0ZTogJycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgY2xhc3M6IFwiZi1jb21wb25lbnQgZi1jb25uZWN0aW9uLXBhdGhcIixcbiAgICAnW2F0dHIuaWRdJzogJ2F0dHJDb25uZWN0aW9uSWQnLFxuICAgICdbYXR0ci5zdHJva2VdJzogJ2xpbmtUb0dyYWRpZW50JyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbIHsgcHJvdmlkZTogQ09OTkVDVElPTl9QQVRILCB1c2VFeGlzdGluZzogRkNvbm5lY3Rpb25QYXRoQ29tcG9uZW50IH0gXSxcbn0pXG5leHBvcnQgY2xhc3MgRkNvbm5lY3Rpb25QYXRoQ29tcG9uZW50IGltcGxlbWVudHMgSUNvbm5lY3Rpb25QYXRoIHtcblxuICBwdWJsaWMgZ2V0IGxpbmtUb0dyYWRpZW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEZfQ09OTkVDVElPTl9JREVOVElGSUVSUy5saW5rVG9HcmFkaWVudChcbiAgICAgIHRoaXMuYmFzZS5mQ29ubmVjdGlvbklkICsgdGhpcy5iYXNlLmZPdXRwdXRJZCArIHRoaXMuYmFzZS5mSW5wdXRJZFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGF0dHJDb25uZWN0aW9uSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gRl9DT05ORUNUSU9OX0lERU5USUZJRVJTLmNvbm5lY3Rpb25JZChcbiAgICAgIHRoaXMuYmFzZS5mQ29ubmVjdGlvbklkICsgdGhpcy5iYXNlLmZPdXRwdXRJZCArIHRoaXMuYmFzZS5mSW5wdXRJZFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhvc3RFbGVtZW50KCk6IFNWR1BhdGhFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8U1ZHUGF0aEVsZW1lbnQ+LFxuICAgIEBJbmplY3QoRl9DT05ORUNUSU9OKSBwcml2YXRlIGJhc2U6IElIYXNDb25uZWN0aW9uQ29sb3IgJiBJSGFzQ29ubmVjdGlvbkZyb21Ub1xuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgIHRoaXMuZGVzZWxlY3QoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRQYXRoKHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKFwiZFwiLCBgJHsgcGF0aCB9YCk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0KCk6IHZvaWQge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKCdtYXJrZXItc3RhcnQnLCBgdXJsKCMkeyB0aGlzLmdldE1hcmtlcklkKEVGTWFya2VyVHlwZS5TRUxFQ1RFRF9TVEFSVCkgfSlgKTtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZSgnbWFya2VyLWVuZCcsIGB1cmwoIyR7IHRoaXMuZ2V0TWFya2VySWQoRUZNYXJrZXJUeXBlLlNFTEVDVEVEX0VORCkgfSlgKTtcbiAgfVxuXG4gIHB1YmxpYyBkZXNlbGVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZSgnbWFya2VyLXN0YXJ0JywgYHVybCgjJHsgdGhpcy5nZXRNYXJrZXJJZChFRk1hcmtlclR5cGUuU1RBUlQpIH0pYCk7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ21hcmtlci1lbmQnLCBgdXJsKCMkeyB0aGlzLmdldE1hcmtlcklkKEVGTWFya2VyVHlwZS5FTkQpIH0pYCk7XG4gIH1cblxuICBwcml2YXRlIGdldE1hcmtlcklkKHR5cGU6IEVGTWFya2VyVHlwZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHNhbml0aXplRWxlbWVudElkKGAkeyBnZXRGbG93VWlkKCkgfS0keyB0eXBlIH0tJHsgdGhpcy5iYXNlLmZDb25uZWN0aW9uSWQgfWApO1xuICB9XG5cbiAgcHVibGljIGlzU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaG9zdEVsZW1lbnQuZ2V0QXR0cmlidXRlKCdtYXJrZXItc3RhcnQnKSA9PT0gYHVybCgjJHsgdGhpcy5nZXRNYXJrZXJJZChFRk1hcmtlclR5cGUuU0VMRUNURURfU1RBUlQpIH0pYFxuICB9XG59XG4iXX0=
@@ -1,16 +1,18 @@
1
1
  import { Injectable } from '@angular/core';
2
+ import { isNodeInput } from '../../../f-connectors';
2
3
  import { OutputNotFound } from '../../../errors';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "../../../f-components-store";
5
- import * as i2 from "./inputs-under-pointer";
6
- import * as i3 from "./first-not-connected-input-of-node-under-pointer";
6
+ import * as i2 from "./first-not-connected-input-of-node-under-pointer";
7
7
  export class FindInputsUnderPointerHandler {
8
8
  get fNodes() {
9
9
  return this.fComponentsStore.fNodes;
10
10
  }
11
- constructor(fComponentsStore, inputsUnderPointerHandler, firstNotConnectedInputOfNodeUnderPointerHandler) {
11
+ get fInputs() {
12
+ return this.fComponentsStore.fInputs;
13
+ }
14
+ constructor(fComponentsStore, firstNotConnectedInputOfNodeUnderPointerHandler) {
12
15
  this.fComponentsStore = fComponentsStore;
13
- this.inputsUnderPointerHandler = inputsUnderPointerHandler;
14
16
  this.firstNotConnectedInputOfNodeUnderPointerHandler = firstNotConnectedInputOfNodeUnderPointerHandler;
15
17
  }
16
18
  handle(payload) {
@@ -29,7 +31,7 @@ export class FindInputsUnderPointerHandler {
29
31
  });
30
32
  }
31
33
  getInputsUnderPointer(payload) {
32
- let inputs = this.inputsUnderPointerHandler.handle(payload.event);
34
+ let inputs = this.inputsUnderPointer(payload.event.getPosition());
33
35
  const input = this.firstNotConnectedInputOfNodeUnderPointerHandler.handle(payload.event);
34
36
  if (input) {
35
37
  inputs.push(input);
@@ -37,10 +39,16 @@ export class FindInputsUnderPointerHandler {
37
39
  inputs = inputs.filter((x) => x.canBeConnected);
38
40
  return inputs;
39
41
  }
40
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FindInputsUnderPointerHandler, deps: [{ token: i1.FComponentsStore }, { token: i2.InputsUnderPointerHandler }, { token: i3.FirstNotConnectedInputOfNodeUnderPointerHandler }], target: i0.ɵɵFactoryTarget.Injectable }); }
42
+ inputsUnderPointer(position) {
43
+ const elementsFromPoint = document.elementsFromPoint(position.x, position.y);
44
+ return elementsFromPoint.filter((x) => isNodeInput(x)).map((element) => {
45
+ return this.fInputs.find((x) => x.isContains(element));
46
+ }).filter((x) => !!x);
47
+ }
48
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FindInputsUnderPointerHandler, deps: [{ token: i1.FComponentsStore }, { token: i2.FirstNotConnectedInputOfNodeUnderPointerHandler }], target: i0.ɵɵFactoryTarget.Injectable }); }
41
49
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FindInputsUnderPointerHandler }); }
42
50
  }
43
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FindInputsUnderPointerHandler, decorators: [{
44
52
  type: Injectable
45
- }], ctorParameters: () => [{ type: i1.FComponentsStore }, { type: i2.InputsUnderPointerHandler }, { type: i3.FirstNotConnectedInputOfNodeUnderPointerHandler }] });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1pbnB1dHMtdW5kZXItcG9pbnRlci5oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9jb25uZWN0aW9ucy9maW5kLWlucHV0cy11bmRlci1wb2ludGVyL2ZpbmQtaW5wdXRzLXVuZGVyLXBvaW50ZXIuaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTTNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFHakQsTUFBTSxPQUFPLDZCQUE2QjtJQUd4QyxJQUFZLE1BQU07UUFDaEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxZQUNVLGdCQUFrQyxFQUNsQyx5QkFBb0QsRUFDcEQsK0NBQWdHO1FBRmhHLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQjtRQUNwRCxvREFBK0MsR0FBL0MsK0NBQStDLENBQWlEO0lBRTFHLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBc0M7UUFDbEQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0QsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0csSUFBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pHLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLGNBQWMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNyRixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUN4RSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUM3RSxPQUFPLFVBQVUsRUFBRSxXQUFXLEtBQUssVUFBVSxFQUFFLFdBQVcsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxPQUFzQztRQUNsRSxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVsRSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsK0NBQStDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6RixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixDQUFDO1FBQ0QsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzhHQXhDVSw2QkFBNkI7a0hBQTdCLDZCQUE2Qjs7MkZBQTdCLDZCQUE2QjtrQkFEekMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElIYW5kbGVyIH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IEZpbmRJbnB1dHNVbmRlclBvaW50ZXJSZXF1ZXN0IH0gZnJvbSAnLi9maW5kLWlucHV0cy11bmRlci1wb2ludGVyLnJlcXVlc3QnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2YtY29tcG9uZW50cy1zdG9yZSc7XG5pbXBvcnQgeyBJbnB1dHNVbmRlclBvaW50ZXJIYW5kbGVyIH0gZnJvbSAnLi9pbnB1dHMtdW5kZXItcG9pbnRlcic7XG5pbXBvcnQgeyBGaXJzdE5vdENvbm5lY3RlZElucHV0T2ZOb2RlVW5kZXJQb2ludGVySGFuZGxlciB9IGZyb20gJy4vZmlyc3Qtbm90LWNvbm5lY3RlZC1pbnB1dC1vZi1ub2RlLXVuZGVyLXBvaW50ZXInO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1ub2RlJztcbmltcG9ydCB7IEZDb25uZWN0b3JCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IE91dHB1dE5vdEZvdW5kIH0gZnJvbSAnLi4vLi4vLi4vZXJyb3JzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZpbmRJbnB1dHNVbmRlclBvaW50ZXJIYW5kbGVyXG4gIGltcGxlbWVudHMgSUhhbmRsZXI8RmluZElucHV0c1VuZGVyUG9pbnRlclJlcXVlc3QsIEZDb25uZWN0b3JCYXNlW10+IHtcblxuICBwcml2YXRlIGdldCBmTm9kZXMoKTogRk5vZGVCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZk5vZGVzO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlLFxuICAgIHByaXZhdGUgaW5wdXRzVW5kZXJQb2ludGVySGFuZGxlcjogSW5wdXRzVW5kZXJQb2ludGVySGFuZGxlcixcbiAgICBwcml2YXRlIGZpcnN0Tm90Q29ubmVjdGVkSW5wdXRPZk5vZGVVbmRlclBvaW50ZXJIYW5kbGVyOiBGaXJzdE5vdENvbm5lY3RlZElucHV0T2ZOb2RlVW5kZXJQb2ludGVySGFuZGxlcixcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKHBheWxvYWQ6IEZpbmRJbnB1dHNVbmRlclBvaW50ZXJSZXF1ZXN0KTogRkNvbm5lY3RvckJhc2VbXSB7XG4gICAgY29uc3QgaW5wdXRzVW5kZXJQb2ludGVyID0gdGhpcy5nZXRJbnB1dHNVbmRlclBvaW50ZXIocGF5bG9hZCk7XG4gICAgbGV0IG91dHB1dCA9IHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mT3V0cHV0cy5maW5kKCh4KSA9PiB4LmlkID09PSBwYXlsb2FkLmRyYWdIYW5kbGVyLmNvbm5lY3Rpb24uZk91dHB1dElkKTtcbiAgICBpZighb3V0cHV0KSB7XG4gICAgICBvdXRwdXQgPSB0aGlzLmZDb21wb25lbnRzU3RvcmUuZk91dGxldHMuZmluZCgoeCkgPT4geC5pZCA9PT0gcGF5bG9hZC5kcmFnSGFuZGxlci5jb25uZWN0aW9uLmZPdXRwdXRJZCk7XG4gICAgfVxuICAgIGlmICghb3V0cHV0KSB7XG4gICAgICB0aHJvdyBPdXRwdXROb3RGb3VuZChwYXlsb2FkLmRyYWdIYW5kbGVyLmNvbm5lY3Rpb24uZk91dHB1dElkKTtcbiAgICB9XG4gICAgcmV0dXJuIG91dHB1dC5pc1NlbGZDb25uZWN0YWJsZSA/IGlucHV0c1VuZGVyUG9pbnRlciA6IGlucHV0c1VuZGVyUG9pbnRlci5maWx0ZXIoKHgpID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldE5vZGUgPSB0aGlzLmZOb2Rlcy5maW5kKCh5KSA9PiB5LmlzQ29udGFpbnMoeC5ob3N0RWxlbWVudCkpO1xuICAgICAgY29uc3Qgc291cmNlTm9kZSA9IHRoaXMuZk5vZGVzLmZpbmQoKHkpID0+IHkuaXNDb250YWlucyhvdXRwdXQuaG9zdEVsZW1lbnQpKTtcbiAgICAgIHJldHVybiBzb3VyY2VOb2RlPy5ob3N0RWxlbWVudCAhPT0gdGFyZ2V0Tm9kZT8uaG9zdEVsZW1lbnQ7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldElucHV0c1VuZGVyUG9pbnRlcihwYXlsb2FkOiBGaW5kSW5wdXRzVW5kZXJQb2ludGVyUmVxdWVzdCk6IEZDb25uZWN0b3JCYXNlW10ge1xuICAgIGxldCBpbnB1dHMgPSB0aGlzLmlucHV0c1VuZGVyUG9pbnRlckhhbmRsZXIuaGFuZGxlKHBheWxvYWQuZXZlbnQpO1xuXG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLmZpcnN0Tm90Q29ubmVjdGVkSW5wdXRPZk5vZGVVbmRlclBvaW50ZXJIYW5kbGVyLmhhbmRsZShwYXlsb2FkLmV2ZW50KTtcblxuICAgIGlmIChpbnB1dCkge1xuICAgICAgaW5wdXRzLnB1c2goaW5wdXQpO1xuICAgIH1cbiAgICBpbnB1dHMgPSBpbnB1dHMuZmlsdGVyKCh4KSA9PiB4LmNhbkJlQ29ubmVjdGVkKTtcbiAgICByZXR1cm4gaW5wdXRzO1xuICB9XG59XG4iXX0=
53
+ }], ctorParameters: () => [{ type: i1.FComponentsStore }, { type: i2.FirstNotConnectedInputOfNodeUnderPointerHandler }] });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1pbnB1dHMtdW5kZXItcG9pbnRlci5oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9jb25uZWN0aW9ucy9maW5kLWlucHV0cy11bmRlci1wb2ludGVyL2ZpbmQtaW5wdXRzLXVuZGVyLXBvaW50ZXIuaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBR2pELE1BQU0sT0FBTyw2QkFBNkI7SUFHeEMsSUFBWSxNQUFNO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBWSxPQUFPO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztJQUN2QyxDQUFDO0lBRUQsWUFDVSxnQkFBa0MsRUFDbEMsK0NBQWdHO1FBRGhHLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsb0RBQStDLEdBQS9DLCtDQUErQyxDQUFpRDtJQUUxRyxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQXNDO1FBQ2xELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9ELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNHLElBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNYLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6RyxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osTUFBTSxjQUFjLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDckYsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDeEUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDOUUsT0FBTyxVQUFVLEVBQUUsV0FBVyxLQUFLLFVBQVUsRUFBRSxXQUFXLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8scUJBQXFCLENBQUMsT0FBc0M7UUFDbEUsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUVsRSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsK0NBQStDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6RixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixDQUFDO1FBQ0QsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sa0JBQWtCLENBQUMsUUFBZ0I7UUFDekMsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFrQixDQUFDO1FBQzlGLE9BQU8saUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDcEYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBRSxDQUFBO1FBQ3pELENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7OEdBbERVLDZCQUE2QjtrSEFBN0IsNkJBQTZCOzsyRkFBN0IsNkJBQTZCO2tCQUR6QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUhhbmRsZXIsIElQb2ludCB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBGaW5kSW5wdXRzVW5kZXJQb2ludGVyUmVxdWVzdCB9IGZyb20gJy4vZmluZC1pbnB1dHMtdW5kZXItcG9pbnRlci5yZXF1ZXN0JztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9mLWNvbXBvbmVudHMtc3RvcmUnO1xuaW1wb3J0IHsgRmlyc3ROb3RDb25uZWN0ZWRJbnB1dE9mTm9kZVVuZGVyUG9pbnRlckhhbmRsZXIgfSBmcm9tICcuL2ZpcnN0LW5vdC1jb25uZWN0ZWQtaW5wdXQtb2Ytbm9kZS11bmRlci1wb2ludGVyJztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uLy4uL2Ytbm9kZSc7XG5pbXBvcnQgeyBGQ29ubmVjdG9yQmFzZSwgaXNOb2RlSW5wdXQgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgT3V0cHV0Tm90Rm91bmQgfSBmcm9tICcuLi8uLi8uLi9lcnJvcnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmluZElucHV0c1VuZGVyUG9pbnRlckhhbmRsZXJcbiAgaW1wbGVtZW50cyBJSGFuZGxlcjxGaW5kSW5wdXRzVW5kZXJQb2ludGVyUmVxdWVzdCwgRkNvbm5lY3RvckJhc2VbXT4ge1xuXG4gIHByaXZhdGUgZ2V0IGZOb2RlcygpOiBGTm9kZUJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mTm9kZXM7XG4gIH1cblxuICBwcml2YXRlIGdldCBmSW5wdXRzKCk6IEZDb25uZWN0b3JCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZklucHV0cztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICBwcml2YXRlIGZpcnN0Tm90Q29ubmVjdGVkSW5wdXRPZk5vZGVVbmRlclBvaW50ZXJIYW5kbGVyOiBGaXJzdE5vdENvbm5lY3RlZElucHV0T2ZOb2RlVW5kZXJQb2ludGVySGFuZGxlcixcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKHBheWxvYWQ6IEZpbmRJbnB1dHNVbmRlclBvaW50ZXJSZXF1ZXN0KTogRkNvbm5lY3RvckJhc2VbXSB7XG4gICAgY29uc3QgaW5wdXRzVW5kZXJQb2ludGVyID0gdGhpcy5nZXRJbnB1dHNVbmRlclBvaW50ZXIocGF5bG9hZCk7XG4gICAgbGV0IG91dHB1dCA9IHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mT3V0cHV0cy5maW5kKCh4KSA9PiB4LmlkID09PSBwYXlsb2FkLmRyYWdIYW5kbGVyLmNvbm5lY3Rpb24uZk91dHB1dElkKTtcbiAgICBpZighb3V0cHV0KSB7XG4gICAgICBvdXRwdXQgPSB0aGlzLmZDb21wb25lbnRzU3RvcmUuZk91dGxldHMuZmluZCgoeCkgPT4geC5pZCA9PT0gcGF5bG9hZC5kcmFnSGFuZGxlci5jb25uZWN0aW9uLmZPdXRwdXRJZCk7XG4gICAgfVxuICAgIGlmICghb3V0cHV0KSB7XG4gICAgICB0aHJvdyBPdXRwdXROb3RGb3VuZChwYXlsb2FkLmRyYWdIYW5kbGVyLmNvbm5lY3Rpb24uZk91dHB1dElkKTtcbiAgICB9XG4gICAgcmV0dXJuIG91dHB1dC5pc1NlbGZDb25uZWN0YWJsZSA/IGlucHV0c1VuZGVyUG9pbnRlciA6IGlucHV0c1VuZGVyUG9pbnRlci5maWx0ZXIoKHgpID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldE5vZGUgPSB0aGlzLmZOb2Rlcy5maW5kKCh5KSA9PiB5LmlzQ29udGFpbnMoeC5ob3N0RWxlbWVudCkpO1xuICAgICAgY29uc3Qgc291cmNlTm9kZSA9IHRoaXMuZk5vZGVzLmZpbmQoKHkpID0+IHkuaXNDb250YWlucyhvdXRwdXQhLmhvc3RFbGVtZW50KSk7XG4gICAgICByZXR1cm4gc291cmNlTm9kZT8uaG9zdEVsZW1lbnQgIT09IHRhcmdldE5vZGU/Lmhvc3RFbGVtZW50O1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnB1dHNVbmRlclBvaW50ZXIocGF5bG9hZDogRmluZElucHV0c1VuZGVyUG9pbnRlclJlcXVlc3QpOiBGQ29ubmVjdG9yQmFzZVtdIHtcbiAgICBsZXQgaW5wdXRzID0gdGhpcy5pbnB1dHNVbmRlclBvaW50ZXIocGF5bG9hZC5ldmVudC5nZXRQb3NpdGlvbigpKTtcblxuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5maXJzdE5vdENvbm5lY3RlZElucHV0T2ZOb2RlVW5kZXJQb2ludGVySGFuZGxlci5oYW5kbGUocGF5bG9hZC5ldmVudCk7XG5cbiAgICBpZiAoaW5wdXQpIHtcbiAgICAgIGlucHV0cy5wdXNoKGlucHV0KTtcbiAgICB9XG4gICAgaW5wdXRzID0gaW5wdXRzLmZpbHRlcigoeCkgPT4geC5jYW5CZUNvbm5lY3RlZCk7XG4gICAgcmV0dXJuIGlucHV0cztcbiAgfVxuXG4gIHByaXZhdGUgaW5wdXRzVW5kZXJQb2ludGVyKHBvc2l0aW9uOiBJUG9pbnQpOiBGQ29ubmVjdG9yQmFzZVtdIHtcbiAgICBjb25zdCBlbGVtZW50c0Zyb21Qb2ludCA9IGRvY3VtZW50LmVsZW1lbnRzRnJvbVBvaW50KHBvc2l0aW9uLngsIHBvc2l0aW9uLnkpIGFzIEhUTUxFbGVtZW50W107XG4gICAgcmV0dXJuIGVsZW1lbnRzRnJvbVBvaW50LmZpbHRlcigoeCkgPT4gaXNOb2RlSW5wdXQoeCBhcyBIVE1MRWxlbWVudCkpLm1hcCgoZWxlbWVudCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZklucHV0cy5maW5kKCh4KSA9PiB4LmlzQ29udGFpbnMoZWxlbWVudCkpIVxuICAgIH0pLmZpbHRlcigoeCkgPT4gISF4KTtcbiAgfVxufVxuIl19
@@ -1,5 +1,4 @@
1
1
  export * from './first-not-connected-input-of-node-under-pointer';
2
- export * from './inputs-under-pointer';
3
2
  export * from './find-inputs-under-pointer.request';
4
3
  export * from './find-inputs-under-pointer.handler';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Nvbm5lY3Rpb25zL2ZpbmQtaW5wdXRzLXVuZGVyLXBvaW50ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxxQ0FBcUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZmlyc3Qtbm90LWNvbm5lY3RlZC1pbnB1dC1vZi1ub2RlLXVuZGVyLXBvaW50ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dHMtdW5kZXItcG9pbnRlcic7XG5leHBvcnQgKiBmcm9tICcuL2ZpbmQtaW5wdXRzLXVuZGVyLXBvaW50ZXIucmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbmQtaW5wdXRzLXVuZGVyLXBvaW50ZXIuaGFuZGxlcic7XG4iXX0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2Nvbm5lY3Rpb25zL2ZpbmQtaW5wdXRzLXVuZGVyLXBvaW50ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMscUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZpcnN0LW5vdC1jb25uZWN0ZWQtaW5wdXQtb2Ytbm9kZS11bmRlci1wb2ludGVyJztcbmV4cG9ydCAqIGZyb20gJy4vZmluZC1pbnB1dHMtdW5kZXItcG9pbnRlci5yZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vZmluZC1pbnB1dHMtdW5kZXItcG9pbnRlci5oYW5kbGVyJztcbiJdfQ==
@@ -1,14 +1,13 @@
1
1
  import { CreateConnectionOnPointerUp, CreateConnectionPrepareDragSequence, FindFirstCanBeConnectedOutputByOutletHandler } from './create-connection';
2
- import { FindInputsUnderPointerHandler, FirstNotConnectedInputOfNodeUnderPointerHandler, InputsUnderPointerHandler } from './find-inputs-under-pointer';
2
+ import { FindInputsUnderPointerHandler, FirstNotConnectedInputOfNodeUnderPointerHandler, } from './find-inputs-under-pointer';
3
3
  import { ReassignConnectionOnPointerUp, ReassignConnectionPrepareDragSequence } from './reassign-connection';
4
4
  export const CONNECTIONS_PROVIDERS = [
5
5
  FindFirstCanBeConnectedOutputByOutletHandler,
6
6
  CreateConnectionOnPointerUp,
7
7
  CreateConnectionPrepareDragSequence,
8
8
  FirstNotConnectedInputOfNodeUnderPointerHandler,
9
- InputsUnderPointerHandler,
10
9
  FindInputsUnderPointerHandler,
11
10
  ReassignConnectionOnPointerUp,
12
11
  ReassignConnectionPrepareDragSequence
13
12
  ];
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9jb25uZWN0aW9ucy9wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixtQ0FBbUMsRUFDbkMsNENBQTRDLEVBQzdDLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUNMLDZCQUE2QixFQUM3QiwrQ0FBK0MsRUFDL0MseUJBQXlCLEVBQzFCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLHFDQUFxQyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFN0csTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUc7SUFFbkMsNENBQTRDO0lBRTVDLDJCQUEyQjtJQUUzQixtQ0FBbUM7SUFFbkMsK0NBQStDO0lBRS9DLHlCQUF5QjtJQUV6Qiw2QkFBNkI7SUFFN0IsNkJBQTZCO0lBRTdCLHFDQUFxQztDQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ3JlYXRlQ29ubmVjdGlvbk9uUG9pbnRlclVwLFxuICBDcmVhdGVDb25uZWN0aW9uUHJlcGFyZURyYWdTZXF1ZW5jZSxcbiAgRmluZEZpcnN0Q2FuQmVDb25uZWN0ZWRPdXRwdXRCeU91dGxldEhhbmRsZXJcbn0gZnJvbSAnLi9jcmVhdGUtY29ubmVjdGlvbic7XG5pbXBvcnQge1xuICBGaW5kSW5wdXRzVW5kZXJQb2ludGVySGFuZGxlcixcbiAgRmlyc3ROb3RDb25uZWN0ZWRJbnB1dE9mTm9kZVVuZGVyUG9pbnRlckhhbmRsZXIsXG4gIElucHV0c1VuZGVyUG9pbnRlckhhbmRsZXJcbn0gZnJvbSAnLi9maW5kLWlucHV0cy11bmRlci1wb2ludGVyJztcbmltcG9ydCB7IFJlYXNzaWduQ29ubmVjdGlvbk9uUG9pbnRlclVwLCBSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJlRHJhZ1NlcXVlbmNlIH0gZnJvbSAnLi9yZWFzc2lnbi1jb25uZWN0aW9uJztcblxuZXhwb3J0IGNvbnN0IENPTk5FQ1RJT05TX1BST1ZJREVSUyA9IFtcblxuICBGaW5kRmlyc3RDYW5CZUNvbm5lY3RlZE91dHB1dEJ5T3V0bGV0SGFuZGxlcixcblxuICBDcmVhdGVDb25uZWN0aW9uT25Qb2ludGVyVXAsXG5cbiAgQ3JlYXRlQ29ubmVjdGlvblByZXBhcmVEcmFnU2VxdWVuY2UsXG5cbiAgRmlyc3ROb3RDb25uZWN0ZWRJbnB1dE9mTm9kZVVuZGVyUG9pbnRlckhhbmRsZXIsXG5cbiAgSW5wdXRzVW5kZXJQb2ludGVySGFuZGxlcixcblxuICBGaW5kSW5wdXRzVW5kZXJQb2ludGVySGFuZGxlcixcblxuICBSZWFzc2lnbkNvbm5lY3Rpb25PblBvaW50ZXJVcCxcblxuICBSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJlRHJhZ1NlcXVlbmNlXG5dO1xuIl19
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9jb25uZWN0aW9ucy9wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixtQ0FBbUMsRUFDbkMsNENBQTRDLEVBQzdDLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUNMLDZCQUE2QixFQUM3QiwrQ0FBK0MsR0FDaEQsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUscUNBQXFDLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU3RyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUVuQyw0Q0FBNEM7SUFFNUMsMkJBQTJCO0lBRTNCLG1DQUFtQztJQUVuQywrQ0FBK0M7SUFFL0MsNkJBQTZCO0lBRTdCLDZCQUE2QjtJQUU3QixxQ0FBcUM7Q0FDdEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENyZWF0ZUNvbm5lY3Rpb25PblBvaW50ZXJVcCxcbiAgQ3JlYXRlQ29ubmVjdGlvblByZXBhcmVEcmFnU2VxdWVuY2UsXG4gIEZpbmRGaXJzdENhbkJlQ29ubmVjdGVkT3V0cHV0QnlPdXRsZXRIYW5kbGVyXG59IGZyb20gJy4vY3JlYXRlLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHtcbiAgRmluZElucHV0c1VuZGVyUG9pbnRlckhhbmRsZXIsXG4gIEZpcnN0Tm90Q29ubmVjdGVkSW5wdXRPZk5vZGVVbmRlclBvaW50ZXJIYW5kbGVyLFxufSBmcm9tICcuL2ZpbmQtaW5wdXRzLXVuZGVyLXBvaW50ZXInO1xuaW1wb3J0IHsgUmVhc3NpZ25Db25uZWN0aW9uT25Qb2ludGVyVXAsIFJlYXNzaWduQ29ubmVjdGlvblByZXBhcmVEcmFnU2VxdWVuY2UgfSBmcm9tICcuL3JlYXNzaWduLWNvbm5lY3Rpb24nO1xuXG5leHBvcnQgY29uc3QgQ09OTkVDVElPTlNfUFJPVklERVJTID0gW1xuXG4gIEZpbmRGaXJzdENhbkJlQ29ubmVjdGVkT3V0cHV0QnlPdXRsZXRIYW5kbGVyLFxuXG4gIENyZWF0ZUNvbm5lY3Rpb25PblBvaW50ZXJVcCxcblxuICBDcmVhdGVDb25uZWN0aW9uUHJlcGFyZURyYWdTZXF1ZW5jZSxcblxuICBGaXJzdE5vdENvbm5lY3RlZElucHV0T2ZOb2RlVW5kZXJQb2ludGVySGFuZGxlcixcblxuICBGaW5kSW5wdXRzVW5kZXJQb2ludGVySGFuZGxlcixcblxuICBSZWFzc2lnbkNvbm5lY3Rpb25PblBvaW50ZXJVcCxcblxuICBSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJlRHJhZ1NlcXVlbmNlXG5dO1xuIl19
@@ -2,6 +2,7 @@ import { FPathBuilderBase } from './f-path-builder-base';
2
2
  import { IFPathBuilderRequest } from './i-f-path-builder-request';
3
3
  import { IFPathBuilderResponse } from './i-f-path-builder-response';
4
4
  export declare class FBezierPathBuilder extends FPathBuilderBase {
5
+ private static getConnectorOffset;
5
6
  private static getAnglePoint;
6
7
  handle(request: IFPathBuilderRequest): IFPathBuilderResponse;
7
8
  }
@@ -52,6 +52,7 @@ export declare abstract class FConnectionBase extends MIXIN_BASE implements IHas
52
52
  isContains(element: HTMLElement | SVGElement): boolean;
53
53
  setVector(from: IPoint, fromSide: EFConnectableSide, to: IPoint, toSide: EFConnectableSide): void;
54
54
  setMarkers(): void;
55
+ private getMarkerId;
55
56
  redraw(): void;
56
57
  static ɵfac: i0.ɵɵFactoryDeclaration<FConnectionBase, never>;
57
58
  static ɵdir: i0.ɵɵDirectiveDeclaration<FConnectionBase, never, never, {}, {}, never, never, false, never>;
@@ -1,18 +1,18 @@
1
1
  import { IHandler } from '@foblex/core';
2
2
  import { FindInputsUnderPointerRequest } from './find-inputs-under-pointer.request';
3
3
  import { FComponentsStore } from '../../../f-components-store';
4
- import { InputsUnderPointerHandler } from './inputs-under-pointer';
5
4
  import { FirstNotConnectedInputOfNodeUnderPointerHandler } from './first-not-connected-input-of-node-under-pointer';
6
5
  import { FConnectorBase } from '../../../f-connectors';
7
6
  import * as i0 from "@angular/core";
8
7
  export declare class FindInputsUnderPointerHandler implements IHandler<FindInputsUnderPointerRequest, FConnectorBase[]> {
9
8
  private fComponentsStore;
10
- private inputsUnderPointerHandler;
11
9
  private firstNotConnectedInputOfNodeUnderPointerHandler;
12
10
  private get fNodes();
13
- constructor(fComponentsStore: FComponentsStore, inputsUnderPointerHandler: InputsUnderPointerHandler, firstNotConnectedInputOfNodeUnderPointerHandler: FirstNotConnectedInputOfNodeUnderPointerHandler);
11
+ private get fInputs();
12
+ constructor(fComponentsStore: FComponentsStore, firstNotConnectedInputOfNodeUnderPointerHandler: FirstNotConnectedInputOfNodeUnderPointerHandler);
14
13
  handle(payload: FindInputsUnderPointerRequest): FConnectorBase[];
15
14
  private getInputsUnderPointer;
15
+ private inputsUnderPointer;
16
16
  static ɵfac: i0.ɵɵFactoryDeclaration<FindInputsUnderPointerHandler, never>;
17
17
  static ɵprov: i0.ɵɵInjectableDeclaration<FindInputsUnderPointerHandler>;
18
18
  }
@@ -1,4 +1,3 @@
1
1
  export * from './first-not-connected-input-of-node-under-pointer';
2
- export * from './inputs-under-pointer';
3
2
  export * from './find-inputs-under-pointer.request';
4
3
  export * from './find-inputs-under-pointer.handler';
@@ -1,4 +1,4 @@
1
1
  import { CreateConnectionOnPointerUp, CreateConnectionPrepareDragSequence, FindFirstCanBeConnectedOutputByOutletHandler } from './create-connection';
2
- import { FindInputsUnderPointerHandler, FirstNotConnectedInputOfNodeUnderPointerHandler, InputsUnderPointerHandler } from './find-inputs-under-pointer';
2
+ import { FindInputsUnderPointerHandler, FirstNotConnectedInputOfNodeUnderPointerHandler } from './find-inputs-under-pointer';
3
3
  import { ReassignConnectionOnPointerUp, ReassignConnectionPrepareDragSequence } from './reassign-connection';
4
- export declare const CONNECTIONS_PROVIDERS: (typeof FindFirstCanBeConnectedOutputByOutletHandler | typeof FirstNotConnectedInputOfNodeUnderPointerHandler | typeof InputsUnderPointerHandler | typeof ReassignConnectionOnPointerUp | typeof ReassignConnectionPrepareDragSequence | typeof FindInputsUnderPointerHandler | typeof CreateConnectionOnPointerUp | typeof CreateConnectionPrepareDragSequence)[];
4
+ export declare const CONNECTIONS_PROVIDERS: (typeof FindFirstCanBeConnectedOutputByOutletHandler | typeof FirstNotConnectedInputOfNodeUnderPointerHandler | typeof ReassignConnectionOnPointerUp | typeof ReassignConnectionPrepareDragSequence | typeof FindInputsUnderPointerHandler | typeof CreateConnectionOnPointerUp | typeof CreateConnectionPrepareDragSequence)[];
@@ -657,17 +657,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
657
657
  }] } });
658
658
 
659
659
  class FBezierPathBuilder extends FPathBuilderBase {
660
- static getAnglePoint(side, source, target) {
661
- let result = PointExtensions.initialize(source.x, 0.5 * (source.y + target.y));
662
- if (side === EFConnectableSide.LEFT || side === EFConnectableSide.RIGHT) {
663
- result = PointExtensions.initialize(0.5 * (source.x + target.x), source.y);
660
+ static getConnectorOffset(distance, offset) {
661
+ if (distance >= offset) {
662
+ return distance;
663
+ }
664
+ return offset * Math.sqrt(offset - distance);
665
+ }
666
+ static getAnglePoint(side, source, target, offset) {
667
+ let result = { x: source.x, y: source.y };
668
+ switch (side) {
669
+ case EFConnectableSide.LEFT:
670
+ result.x -= FBezierPathBuilder.getConnectorOffset(source.x - target.x, offset);
671
+ break;
672
+ case EFConnectableSide.RIGHT:
673
+ result.x += FBezierPathBuilder.getConnectorOffset(target.x - source.x, offset);
674
+ break;
675
+ case EFConnectableSide.TOP:
676
+ result.y -= FBezierPathBuilder.getConnectorOffset(source.y - target.y, offset);
677
+ break;
678
+ case EFConnectableSide.BOTTOM:
679
+ result.y += FBezierPathBuilder.getConnectorOffset(target.y - source.y, offset);
680
+ break;
664
681
  }
665
682
  return result;
666
683
  }
667
684
  handle(request) {
668
- const { source, sourceSide, target, targetSide } = request;
669
- const sourceAnglePoint = FBezierPathBuilder.getAnglePoint(sourceSide, source, target);
670
- const targetAnglePoint = FBezierPathBuilder.getAnglePoint(targetSide, source, target);
685
+ const { source, sourceSide, target, targetSide, offset } = request;
686
+ const sourceAnglePoint = FBezierPathBuilder.getAnglePoint(sourceSide, source, target, offset);
687
+ const targetAnglePoint = FBezierPathBuilder.getAnglePoint(targetSide, target, source, offset);
671
688
  const path = `M ${source.x} ${source.y} C ${sourceAnglePoint.x} ${sourceAnglePoint.y}, ${targetAnglePoint.x} ${targetAnglePoint.y}, ${target.x + 0.0001} ${target.y + 0.0001}`;
672
689
  const center = new CalculateConnectionCenterHandler().handle(new CalculateConnectionCenterRequest([source, sourceAnglePoint, targetAnglePoint, target]));
673
690
  return { path, center };
@@ -1303,7 +1320,7 @@ class FConnectionBase extends MIXIN_BASE$1 {
1303
1320
  this.fDefs.nativeElement.innerHTML = '';
1304
1321
  this.fMarkers.forEach((marker) => {
1305
1322
  const markerElement = DomElementExtensions.createSvgElement('marker');
1306
- markerElement.setAttribute('id', getFlowUid() + '-' + marker.type + '-' + this.fConnectionId);
1323
+ markerElement.setAttribute('id', this.getMarkerId(getFlowUid() + '-' + marker.type + '-' + this.fConnectionId));
1307
1324
  markerElement.setAttribute('markerHeight', `${marker.height}`);
1308
1325
  markerElement.setAttribute('markerWidth', `${marker.width}`);
1309
1326
  markerElement.setAttribute('orient', 'auto');
@@ -1321,6 +1338,9 @@ class FConnectionBase extends MIXIN_BASE$1 {
1321
1338
  marker.hostElement.remove();
1322
1339
  });
1323
1340
  }
1341
+ getMarkerId(id) {
1342
+ return sanitizeElementId(id);
1343
+ }
1324
1344
  redraw() {
1325
1345
  this.fPath.setPath(this.path);
1326
1346
  this.fSelection.setPath(this.path);
@@ -2167,27 +2187,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
2167
2187
  type: Injectable
2168
2188
  }], ctorParameters: () => [{ type: FComponentsStore }] });
2169
2189
 
2170
- class InputsUnderPointerHandler {
2171
- get fInputs() {
2172
- return this.fComponentsStore.fInputs;
2173
- }
2174
- constructor(fComponentsStore) {
2175
- this.fComponentsStore = fComponentsStore;
2176
- }
2177
- handle(event) {
2178
- const position = event.getPosition();
2179
- const elementsFromPoint = document.elementsFromPoint(position.x, position.y);
2180
- return elementsFromPoint.filter((x) => isNodeInput(x)).map((element) => {
2181
- return this.fInputs.find((x) => x.isContains(element));
2182
- }).filter((x) => !!x);
2183
- }
2184
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: InputsUnderPointerHandler, deps: [{ token: FComponentsStore }], target: i0.ɵɵFactoryTarget.Injectable }); }
2185
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: InputsUnderPointerHandler }); }
2186
- }
2187
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: InputsUnderPointerHandler, decorators: [{
2188
- type: Injectable
2189
- }], ctorParameters: () => [{ type: FComponentsStore }] });
2190
-
2191
2190
  class FindInputsUnderPointerRequest {
2192
2191
  constructor(event, dragHandler) {
2193
2192
  this.event = event;
@@ -2232,9 +2231,11 @@ class FindInputsUnderPointerHandler {
2232
2231
  get fNodes() {
2233
2232
  return this.fComponentsStore.fNodes;
2234
2233
  }
2235
- constructor(fComponentsStore, inputsUnderPointerHandler, firstNotConnectedInputOfNodeUnderPointerHandler) {
2234
+ get fInputs() {
2235
+ return this.fComponentsStore.fInputs;
2236
+ }
2237
+ constructor(fComponentsStore, firstNotConnectedInputOfNodeUnderPointerHandler) {
2236
2238
  this.fComponentsStore = fComponentsStore;
2237
- this.inputsUnderPointerHandler = inputsUnderPointerHandler;
2238
2239
  this.firstNotConnectedInputOfNodeUnderPointerHandler = firstNotConnectedInputOfNodeUnderPointerHandler;
2239
2240
  }
2240
2241
  handle(payload) {
@@ -2253,7 +2254,7 @@ class FindInputsUnderPointerHandler {
2253
2254
  });
2254
2255
  }
2255
2256
  getInputsUnderPointer(payload) {
2256
- let inputs = this.inputsUnderPointerHandler.handle(payload.event);
2257
+ let inputs = this.inputsUnderPointer(payload.event.getPosition());
2257
2258
  const input = this.firstNotConnectedInputOfNodeUnderPointerHandler.handle(payload.event);
2258
2259
  if (input) {
2259
2260
  inputs.push(input);
@@ -2261,12 +2262,18 @@ class FindInputsUnderPointerHandler {
2261
2262
  inputs = inputs.filter((x) => x.canBeConnected);
2262
2263
  return inputs;
2263
2264
  }
2264
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FindInputsUnderPointerHandler, deps: [{ token: FComponentsStore }, { token: InputsUnderPointerHandler }, { token: FirstNotConnectedInputOfNodeUnderPointerHandler }], target: i0.ɵɵFactoryTarget.Injectable }); }
2265
+ inputsUnderPointer(position) {
2266
+ const elementsFromPoint = document.elementsFromPoint(position.x, position.y);
2267
+ return elementsFromPoint.filter((x) => isNodeInput(x)).map((element) => {
2268
+ return this.fInputs.find((x) => x.isContains(element));
2269
+ }).filter((x) => !!x);
2270
+ }
2271
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FindInputsUnderPointerHandler, deps: [{ token: FComponentsStore }, { token: FirstNotConnectedInputOfNodeUnderPointerHandler }], target: i0.ɵɵFactoryTarget.Injectable }); }
2265
2272
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FindInputsUnderPointerHandler }); }
2266
2273
  }
2267
2274
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FindInputsUnderPointerHandler, decorators: [{
2268
2275
  type: Injectable
2269
- }], ctorParameters: () => [{ type: FComponentsStore }, { type: InputsUnderPointerHandler }, { type: FirstNotConnectedInputOfNodeUnderPointerHandler }] });
2276
+ }], ctorParameters: () => [{ type: FComponentsStore }, { type: FirstNotConnectedInputOfNodeUnderPointerHandler }] });
2270
2277
 
2271
2278
  class CreateConnectionOnPointerUp {
2272
2279
  constructor(fComponentsStore, fDraggableDataContext, findInputsUnderPointerHandler, findFirstCanBeConnectedOutputByOutletHandler) {
@@ -2501,7 +2508,6 @@ const CONNECTIONS_PROVIDERS = [
2501
2508
  CreateConnectionOnPointerUp,
2502
2509
  CreateConnectionPrepareDragSequence,
2503
2510
  FirstNotConnectedInputOfNodeUnderPointerHandler,
2504
- InputsUnderPointerHandler,
2505
2511
  FindInputsUnderPointerHandler,
2506
2512
  ReassignConnectionOnPointerUp,
2507
2513
  ReassignConnectionPrepareDragSequence
@@ -4604,5 +4610,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
4604
4610
  * Generated bundle index. Do not edit.
4605
4611
  */
4606
4612
 
4607
- export { CANVAS_PROVIDERS, COMMON_PROVIDERS, CONNECTIONS_PROVIDERS, CONNECTION_GRADIENT, CONNECTION_PATH, CONNECTION_TEXT, CalculateCenterBetweenPointsHandler, CalculateCenterBetweenPointsRequest, CalculateConnectionCenterHandler, CalculateConnectionCenterRequest, CalculateConnectorConnectableSideHandler, CalculateConnectorConnectableSideRequest, CanvasDragHandler, CanvasOnPointerUp, CanvasPrepareDragSequence, ClearSelectionHandler, ClearSelectionRequest, ConnectionDragHandler, ConnectionSourceDragHandler, ConnectionTargetDragHandler, CreateConnectionDragHandler, CreateConnectionOnPointerUp, CreateConnectionPrepareDragSequence, EFConnectableSide, EFConnectionBehavior, EFConnectionType, EFDraggableType, EFMarkerType, EXTERNAL_ITEM_PROVIDERS, ExternalItemDragHandler, ExternalItemOnPointerUp, ExternalItemPrepareDragSequence, FBackgroundBase, FBackgroundComponent, FBezierPathBuilder, FCanvasBase, FCanvasChangeEvent, FCanvasComponent, FCellPatternComponent, FComponentsStore, FConnectionBase, FConnectionCenterDirective, FConnectionComponent, FConnectionDragHandleComponent, FConnectionForCreateComponent, FConnectionGradientComponent, FConnectionPathComponent, FConnectionSelectionComponent, FConnectionTextComponent, FConnectionTextPathDirective, FConnectorBase, FCreateConnectionEvent, FCreateNodeEvent, FDragHandleDirective, FDraggableBase, FDraggableDataContext, FDraggableDirective, FExternalItemBase, FExternalItemDirective, FExternalItemService, FFlowBase, FFlowComponent, FFlowMediator, FFlowModule, FHandlerRegister, FLOW, FLineAlignmentBase, FLineAlignmentComponent, FMarkerBase, FMarkerDirective, FNodeBase, FNodeDirective, FNodeInputBase, FNodeInputDirective, FNodeOutletBase, FNodeOutletDirective, FNodeOutputBase, FNodeOutputDirective, FPathBuilderBase, FPathBuilderSelector, FReassignConnectionEvent, FResizeObserver, FSegmentPathBuilder, FSelectionAreaBase, FSelectionAreaComponent, FSelectionChangeEvent, FStraightPathBuilder, FZoomBase, FZoomDirective, F_BACKGROUND, F_BACKGROUND_PATTERN, F_CANVAS, F_CONNECTION_DRAG_HANDLE_CLASS, F_CONNECTION_IDENTIFIERS, F_DRAGGABLE, F_DRAG_HANDLE, F_EXTERNAL_ITEM, F_FLOW, F_LINE_ALIGNMENT, F_MARKER, F_NODE, F_NODE_INPUT, F_NODE_OUTLET, F_NODE_OUTPUT, F_SELECTED_CLASS, F_SELECTION_AREA, F_ZOOM, FindFirstCanBeConnectedOutputByOutletHandler, FindInputsUnderPointerHandler, FindInputsUnderPointerRequest, FirstNotConnectedInputOfNodeUnderPointerHandler, GetCanBeSelectedItemsHandler, GetConnectionHandler, GetConnectionVectorHandler, GetConnectionVectorRequest, GetElementRectInFlowHandler, GetElementRectInFlowRequest, GetIncomingConnectionsHandler, GetInputRectInFlowHandler, GetInputRectInFlowRequest, GetInputRectInFlowResponse, GetNodesRectHandler, GetNodesRectRequest, GetOutgoingConnectionsHandler, GetOutputRectInFlowHandler, GetOutputRectInFlowRequest, GetOutputRectInFlowResponse, GetSelectionHandler, GetSelectionRequest, InputsUnderPointerHandler, IsConnectionUnderNodeHandler, LineElement, LineService, MOUSE_EVENT_IGNORE_TIME, NODE_PROVIDERS, NearestCoordinateFinder, NodeDragHandler, NodeOnPointerUp, NodePrepareDragSequence, ReassignConnectionDragHandler, ReassignConnectionOnPointerUp, ReassignConnectionPrepareDragSequence, RedrawConnectionsHandler, RedrawConnectionsRequest, SELECTION_AREA_PROVIDERS, SINGLE_SELECT_PROVIDERS, SelectAllHandler, SelectAllRequest, SelectHandler, SelectRequest, SelectionAreaDragHandle, SelectionAreaOnPointerUp, SelectionAreaPrepareDragSequence, SingleSelectOnPointerDown, UpdateConnectionLayerHandler, UpdateNodeLayerHandler, castToConnectableSide, castToConnectionBehavior, castToConnectionType, getExternalItem, getFlowUid, isExternalItem, isNode, isNodeDragHandle, isNodeInput, isNodeOutlet, isNodeOutput, mixinChangeConnectionSelection, mixinChangeConnectionVisibility };
4613
+ export { CANVAS_PROVIDERS, COMMON_PROVIDERS, CONNECTIONS_PROVIDERS, CONNECTION_GRADIENT, CONNECTION_PATH, CONNECTION_TEXT, CalculateCenterBetweenPointsHandler, CalculateCenterBetweenPointsRequest, CalculateConnectionCenterHandler, CalculateConnectionCenterRequest, CalculateConnectorConnectableSideHandler, CalculateConnectorConnectableSideRequest, CanvasDragHandler, CanvasOnPointerUp, CanvasPrepareDragSequence, ClearSelectionHandler, ClearSelectionRequest, ConnectionDragHandler, ConnectionSourceDragHandler, ConnectionTargetDragHandler, CreateConnectionDragHandler, CreateConnectionOnPointerUp, CreateConnectionPrepareDragSequence, EFConnectableSide, EFConnectionBehavior, EFConnectionType, EFDraggableType, EFMarkerType, EXTERNAL_ITEM_PROVIDERS, ExternalItemDragHandler, ExternalItemOnPointerUp, ExternalItemPrepareDragSequence, FBackgroundBase, FBackgroundComponent, FBezierPathBuilder, FCanvasBase, FCanvasChangeEvent, FCanvasComponent, FCellPatternComponent, FComponentsStore, FConnectionBase, FConnectionCenterDirective, FConnectionComponent, FConnectionDragHandleComponent, FConnectionForCreateComponent, FConnectionGradientComponent, FConnectionPathComponent, FConnectionSelectionComponent, FConnectionTextComponent, FConnectionTextPathDirective, FConnectorBase, FCreateConnectionEvent, FCreateNodeEvent, FDragHandleDirective, FDraggableBase, FDraggableDataContext, FDraggableDirective, FExternalItemBase, FExternalItemDirective, FExternalItemService, FFlowBase, FFlowComponent, FFlowMediator, FFlowModule, FHandlerRegister, FLOW, FLineAlignmentBase, FLineAlignmentComponent, FMarkerBase, FMarkerDirective, FNodeBase, FNodeDirective, FNodeInputBase, FNodeInputDirective, FNodeOutletBase, FNodeOutletDirective, FNodeOutputBase, FNodeOutputDirective, FPathBuilderBase, FPathBuilderSelector, FReassignConnectionEvent, FResizeObserver, FSegmentPathBuilder, FSelectionAreaBase, FSelectionAreaComponent, FSelectionChangeEvent, FStraightPathBuilder, FZoomBase, FZoomDirective, F_BACKGROUND, F_BACKGROUND_PATTERN, F_CANVAS, F_CONNECTION_DRAG_HANDLE_CLASS, F_CONNECTION_IDENTIFIERS, F_DRAGGABLE, F_DRAG_HANDLE, F_EXTERNAL_ITEM, F_FLOW, F_LINE_ALIGNMENT, F_MARKER, F_NODE, F_NODE_INPUT, F_NODE_OUTLET, F_NODE_OUTPUT, F_SELECTED_CLASS, F_SELECTION_AREA, F_ZOOM, FindFirstCanBeConnectedOutputByOutletHandler, FindInputsUnderPointerHandler, FindInputsUnderPointerRequest, FirstNotConnectedInputOfNodeUnderPointerHandler, GetCanBeSelectedItemsHandler, GetConnectionHandler, GetConnectionVectorHandler, GetConnectionVectorRequest, GetElementRectInFlowHandler, GetElementRectInFlowRequest, GetIncomingConnectionsHandler, GetInputRectInFlowHandler, GetInputRectInFlowRequest, GetInputRectInFlowResponse, GetNodesRectHandler, GetNodesRectRequest, GetOutgoingConnectionsHandler, GetOutputRectInFlowHandler, GetOutputRectInFlowRequest, GetOutputRectInFlowResponse, GetSelectionHandler, GetSelectionRequest, IsConnectionUnderNodeHandler, LineElement, LineService, MOUSE_EVENT_IGNORE_TIME, NODE_PROVIDERS, NearestCoordinateFinder, NodeDragHandler, NodeOnPointerUp, NodePrepareDragSequence, ReassignConnectionDragHandler, ReassignConnectionOnPointerUp, ReassignConnectionPrepareDragSequence, RedrawConnectionsHandler, RedrawConnectionsRequest, SELECTION_AREA_PROVIDERS, SINGLE_SELECT_PROVIDERS, SelectAllHandler, SelectAllRequest, SelectHandler, SelectRequest, SelectionAreaDragHandle, SelectionAreaOnPointerUp, SelectionAreaPrepareDragSequence, SingleSelectOnPointerDown, UpdateConnectionLayerHandler, UpdateNodeLayerHandler, castToConnectableSide, castToConnectionBehavior, castToConnectionType, getExternalItem, getFlowUid, isExternalItem, isNode, isNodeDragHandle, isNodeInput, isNodeOutlet, isNodeOutput, mixinChangeConnectionSelection, mixinChangeConnectionVisibility };
4608
4614
  //# sourceMappingURL=foblex-flow.mjs.map