getUpstreamSelectableNodeBefore function
DocumentNode?
getUpstreamSelectableNodeBefore(
- Document document,
- DocumentLayoutResolver documentLayoutResolver,
- DocumentNode startingNode
Returns the first DocumentNode before startingNode whose
DocumentComponent is visually selectable.
Implementation
DocumentNode? getUpstreamSelectableNodeBefore(
Document document,
DocumentLayoutResolver documentLayoutResolver,
DocumentNode startingNode,
) {
bool foundSelectableNode = false;
DocumentNode prevNode = startingNode;
DocumentNode? selectableNode;
do {
selectableNode = document.getNodeBefore(prevNode);
if (selectableNode != null) {
final nextComponent = documentLayoutResolver().getComponentByNodeId(selectableNode.id);
if (nextComponent != null) {
foundSelectableNode = nextComponent.isVisualSelectionSupported();
}
prevNode = selectableNode;
}
} while (!foundSelectableNode && selectableNode != null);
return selectableNode;
}