<commit_before><div *ngIf="todoList;else other_content">
  <h2>{{todoList.name}}</h2>
  <div>
    <label>Todo name:</label>
    <input [(ngModel)]="todoName" (keyup.enter)="addToDo()"/>
    <button (click)="addToDo()">
      Add
    </button>
  </div>
  <ul class="todos">
    <!--DEFINE TEMPLATE FOR RECURSION-->
    <ng-template #recursiveList let-tmptodos>
      <li *ngFor="let todo of tmptodos">
        <span [class.completed]=todo.completed>
          <button (click)="completeTask(todo)"><ng-fa name="check"></ng-fa></button>{{todo.name}} (Parent: {{todo.parentToDoNo}})
        </span>
        <button (click)="toggleAddSubTaskVisibility(todo.toDoNo)">Add subtask</button>

      <!--ADD ONE SUBTASK-->
        <div *ngIf="isAddSubTaskVisible(todo.toDoNo)" class="addSubTask">
        <label>Subtask name:</label>
      <input #subTaskName (keyup.enter)="addSubTask(subTaskName.value, todo.toDoNo); subTaskName.value=''"/>
        <button (click)="addSubTask(subTaskName.value, todo.toDoNo); subTaskName.value=''">
          Add
        </button>
      </div>

    <!--SHOW SUBTASKS-->
        <ul *ngIf="hasSubTasks(todo.toDoNo)">
          <ng-container *ngTemplateOutlet="recursiveList;
              context:{ $implicit: getSubTasks(todo.toDoNo) }">
          </ng-container>
        </ul>
      </li></ng-template>

    <!--CALL TEMPLATE FOR todos root-->
    <ng-container *ngTemplateOutlet="recursiveList; context: {$implicit:getRootToDos()}"></ng-container>
  </ul>
</div>
<ng-template #other_content>
  <h2>No list selected ...</h2>
</ng-template>
<commit_msg>remove bullets in unordered list<commit_after><div *ngIf="todoList;else other_content">
  <h2>{{todoList.name}}</h2>
  <div>
    <label>Todo name:</label>
    <input [(ngModel)]="todoName" (keyup.enter)="addToDo()"/>
    <button (click)="addToDo()">
      Add
    </button>
  </div>
  <ul class="todos">
    <!--DEFINE TEMPLATE FOR RECURSION-->
    <ng-template #recursiveList let-tmptodos>
      <li *ngFor="let todo of tmptodos">
        <span [class.completed]=todo.completed>
          <button (click)="completeTask(todo)"><ng-fa name="check"></ng-fa></button>{{todo.name}} (Parent: {{todo.parentToDoNo}})
        </span>
        <button (click)="toggleAddSubTaskVisibility(todo.toDoNo)">Add subtask</button>

      <!--ADD ONE SUBTASK-->
        <div *ngIf="isAddSubTaskVisible(todo.toDoNo)" class="addSubTask">
        <label>Subtask name:</label>
      <input #subTaskName (keyup.enter)="addSubTask(subTaskName.value, todo.toDoNo); subTaskName.value=''"/>
        <button (click)="addSubTask(subTaskName.value, todo.toDoNo); subTaskName.value=''">
          Add
        </button>
      </div>

    <!--SHOW SUBTASKS-->
        <ul *ngIf="hasSubTasks(todo.toDoNo)" class="todos">
          <ng-container *ngTemplateOutlet="recursiveList;
              context:{ $implicit: getSubTasks(todo.toDoNo) }">
          </ng-container>
        </ul>
      </li></ng-template>

    <!--CALL TEMPLATE FOR todos root-->
    <ng-container *ngTemplateOutlet="recursiveList; context: {$implicit:getRootToDos()}"></ng-container>
  </ul>
</div>
<ng-template #other_content>
  <h2>No list selected ...</h2>
</ng-template>

{'fraction_non_alphanumeric': 0.191596111633741, 'fraction_numerical': 0.002508623392913139, 'mean_word_length': 3.242021276595745, 'pattern_counts': {'":': 0, '<': 95, '<?xml version=': 0, '>': 95, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1775938', 'n_tokens_mistral': 1150, 'n_tokens_neox': 1115, 'n_words': 185}