selectionTargetFor method

ResolvedElement selectionTargetFor(
  1. ResolvedElement hit, {
  2. bool deep = false,
})

Implementation

ResolvedElement selectionTargetFor(ResolvedElement hit, {bool deep = false}) {
  if (deep) return hit;
  var target = hit;
  var parentId = switch (target) {
    ResolvedFramedElement() => target.source.parentId,
    ResolvedConnector() => target.source.parentId,
    _ => null,
  };
  final visited = <String>{};
  while (parentId != null && visited.add(parentId)) {
    final parent = store.scene.shapeById(parentId);
    if (parent == null || parent.source.type != Shapes.group) break;
    if (parent.id == focusedGroupId) break;
    target = parent;
    parentId = parent.source.parentId;
  }
  return target;
}