inNode method

Implementation

Future<List<EventFractal>> inNode(NodeFractal reNode) async {
  await reNode.preload('node');
  if (reNode == this) return fullList;
  final list = <EventFractal>[];
  for (var ev in fullList) {
    await ev.preload();
    final ifStr = '${ev['if'] ?? ''}';
    bool good = true;
    if (ifStr.isNotEmpty) {
      for (var str in ifStr.split(',')) {
        if (str.isNotEmpty && str[0] == '!') {
          str = str.substring(1);
          good = !(await testIf(str, reNode));
        } else {
          good = await testIf(str, reNode);
        }
        if (!good) break;
      }
    }

    if (good) list.add(ev);
  }
  return list;
}