getIdRefIndex method

int getIdRefIndex(
  1. EpubChapter chapter,
  2. EpubPackage packageDocument
)

Implementation

int getIdRefIndex(EpubChapter chapter, EpubPackage packageDocument) {
  final items = packageDocument.Spine!.Items!;
  int index = -1;
  int partIndex = -1;
  String? edRef = chapter.Anchor;

  if (chapter.Anchor == null) {
    // filename w/o extension
    edRef = _fileNameAsChapterName(chapter.ContentFileName!);
  }

  for (var i = 0; i < items.length; i++) {
    if (edRef == items[i].IdRef) {
      index = i;
      break;
    }
    if (items[i].IdRef!.contains(edRef!)) {
      partIndex = i;
    }
  }

  return index >= 0 ? index : partIndex;
}