traverseNavMap static method

List<ToCItem> traverseNavMap(
  1. EpubBook book,
  2. List<EpubNavigationPoint>? points,
  3. String prefix
)

Implementation

static List<ToCItem> traverseNavMap(
    EpubBook book, List<EpubNavigationPoint>? points, String prefix) {
  var result = <ToCItem>[];
  if (points == null) return result;

  points.forEach((point) {
    if (point.NavigationLabels == null) {
    } else {
      point.NavigationLabels?.forEach((label) {
        var item = ToCItem();
        if (book.PageToChapterMap!.containsKey(point.Content!.Source!.split('#')[0])) {
          item.chapterIndex =
          book.PageToChapterMap![point.Content!.Source!.split('#')[0]]!;
          item.label = prefix + label.Text!;
          result.add(item);
        }


        var items =
            traverseNavMap(book, point.ChildNavigationPoints, prefix + '  ');
        result.addAll(items as Iterable<ToCItem>);
      });
    }
  });
  return result;
}