finalizeTriggerables method

void finalizeTriggerables(
  1. FormInstance mainInstance,
  2. EvaluationContext ec
)

Orders the triggerables topologically; throws StateError with the nodes involved when there is a cycle.

Implementation

void finalizeTriggerables(FormInstance mainInstance, EvaluationContext ec) {
  _dag = _buildDag(_allTriggerables, _dagEdges(mainInstance, ec));
  _relevancePerRepeat = {
    for (final triggerable in _dag)
      if (triggerable is Condition)
        for (final target in triggerable.targets)
          if (mainInstance.getTemplate(target) != null) target: triggerable,
  };
}