ancestors method
An iterator producing this component's parent, then its parent's parent, then the great-grand-parent, and so on, until it reaches a component without a parent.
Implementation
Iterable<Component> ancestors({bool includeSelf = false}) sync* {
var current = includeSelf ? this : parent;
while (current != null) {
yield current;
current = current.parent;
}
}