getIndexNumberByIndent property

String? get getIndexNumberByIndent

Implementation

String? get getIndexNumberByIndent {
  if (index == null) return null;
  var s = index.toString();
  var level = 0;
  if (!attrs.containsKey(Attribute.indent.key) && indentLevelCounts.isEmpty) {
    indentLevelCounts.clear();
    indentLevelCounts[0] = 1;
    return s;
  }
  if (attrs.containsKey(Attribute.indent.key)) {
    level = attrs[Attribute.indent.key]!.value;
  } else if (!indentLevelCounts.containsKey(0)) {
    // first level but is back from previous indent level
    // supposed to be "2."
    indentLevelCounts[0] = 1;
  }
  if (indentLevelCounts.containsKey(level + 1)) {
    // last visited level is done, going up
    indentLevelCounts.remove(level + 1);
  }
  final count = (indentLevelCounts[level] ?? 0) + 1;
  indentLevelCounts[level] = count;

  s = count.toString();
  if (level % 3 == 1) {
    // a. b. c. d. e. ...
    s = _toExcelSheetColumnTitle(count);
  } else if (level % 3 == 2) {
    // i. ii. iii. ...
    s = _intToRoman(count);
  }
  return s;
}