isRepeatRelevant method

bool isRepeatRelevant(
  1. TreeReference repeatRef
)

Whether the repeat instance at repeatRef is relevant: its own relevance condition, its parent's relevance and its template's.

Implementation

bool isRepeatRelevant(TreeReference repeatRef) {
  var relevant = true;
  final condition = _dag.relevanceForRepeat(repeatRef.genericize());
  if (condition != null) {
    relevant =
        condition.eval(
              mainInstance,
              EvaluationContext.withContext(evaluationContext, repeatRef),
            )
            as bool;
  }
  if (relevant) {
    final template = mainInstance.getTemplate(repeatRef)!;
    final parentPath = template.parent!.ref.genericize();
    final parentNode = mainInstance.resolveReference(
      parentPath.contextualize(repeatRef)!,
    );
    relevant =
        parentNode != null && parentNode.isRelevant && template.isRelevant;
  }
  return relevant;
}