<commit_before><div class="edit-mc-question">
    <div class="row">
        <div class="col-md-10 text-start">
            <div class="input-group">
                <input class="form-control" [(ngModel)]="question.title" placeholder="Question Title" style="height: 33px" />
                <span class="input-group-btn">
                    <button class="btn btn-outline-secondary" type="button" (click)="resetQuestionTitle()">
                        <fa-icon [icon]="'undo'"></fa-icon>
                    </button>
                </span>
            </div>
        </div>
        <div class="col-md-2 text-end">
            <div class="form-group">
                <div class="re-evaluate-button" id="move-up-button" (click)="moveUp()">
                    <fa-icon [icon]="'chevron-up'" size="2x"></fa-icon>
                </div>
                <div class="re-evaluate-button" id="move-down-button" (click)="moveDown()">
                    <fa-icon [icon]="'chevron-down'" size="2x"></fa-icon>
                </div>
                <div class="re-evaluate-button" id="reset-button" (click)="resetQuestion()">
                    <fa-icon [icon]="'undo'" size="2x"></fa-icon>
                </div>
                <div class="re-evaluate-button" id="delete-button" (click)="delete()">
                    <fa-icon [icon]="'trash'" size="2x"></fa-icon>
                </div>
            </div>
        </div>
    </div>
    <div class="question-options">
        <div class="form-group">
            <span jhiTranslate="artemisApp.quizQuestion.scoringType" class="colon-suffix no-flex-shrink"></span>
            <select class="form-select" [(ngModel)]="question.scoringType" title="scoring type">
                <option value="ALL_OR_NOTHING">{{ 'artemisApp.quizExercise.scoringType.all_or_nothing' | artemisTranslate }}</option>
                <option value="PROPORTIONAL_WITH_PENALTY">{{ 'artemisApp.quizExercise.scoringType.proportional_with_penalty' | artemisTranslate }}</option>
                <option value="PROPORTIONAL_WITHOUT_PENALTY">{{ 'artemisApp.quizExercise.scoringType.proportional_without_penalty' | artemisTranslate }}</option>
            </select>
            <span jhiTranslate="artemisApp.quizQuestion.score" class="colon-suffix"></span>
            <span>{{ question.points }}</span>
        </div>
        <div class="form-group">
            <div class="form-check custom-control custom-checkbox">
                <input type="checkbox" id="{{ 'cbRandomizeOrderMC' + questionIndex }}" [(ngModel)]="question.randomizeOrder" class="form-check-input custom-control-input" />
                <label
                    class="form-check-label custom-control-label"
                    for="{{ 'cbRandomizeOrderMC' + questionIndex }}"
                    jhiTranslate="artemisApp.multipleChoiceQuestion.randomizeOrder"
                >
                </label>
            </div>
        </div>
        <button
            class="btn btn-outline-secondary"
            [hidden]="question.invalid"
            (click)="question.invalid = true"
            jhiTranslate="artemisApp.quizExercise.re-evaluate.setQuestionInvalid"
        ></button>
        <button
            class="btn btn-outline-secondary"
            [hidden]="!question.invalid"
            [disabled]="question.invalid"
            jhiTranslate="artemisApp.quizExercise.re-evaluate.questionIsInvalid"
        ></button>
    </div>
    <div class="markupEditorArea">
        <div class="question-content" style="padding-bottom: 12px">
            <div class="row">
                <jhi-markdown-editor
                    [markdown]="getQuestionText(question)"
                    [editorMode]="editorMode"
                    [metaCommands]="[]"
                    [defaultCommands]="[]"
                    [headerCommands]="[]"
                    [domainCommands]="[]"
                    [colorCommands]="[]"
                    [showEditButton]="false"
                    [showPreviewButton]="false"
                    (markdownChange)="onQuestionChange($event)"
                    class="editor col"
                    style="width: 90%"
                ></jhi-markdown-editor>
                <span class="col-auto input-group-btn d-flex align-items-center">
                    <button class="btn btn-outline-secondary btn-lg" type="button" (click)="resetQuestionText()">
                        <fa-icon [icon]="'undo'"></fa-icon>
                    </button>
                </span>
            </div>
        </div>
    </div>
    <div class="answer-border" dnd-sortable-container [sortableData]="question.answerOptions || []">
        <div class="answer-border" *ngFor="let answer of question.answerOptions; let i = index" dnd-sortable [sortableIndex]="i">
            <div class="question-options">
                <span class="answer-handle re-evaluate-order-button text-center" style="width: 5%" dnd-sortable-handle>
                    <fa-icon [icon]="'arrows-alt-v'" size="2x"></fa-icon>
                </span>
                <jhi-markdown-editor
                    [markdown]="generateAnswerMarkdown(answer)"
                    [editorMode]="editorMode"
                    [metaCommands]="[]"
                    [defaultCommands]="[]"
                    [headerCommands]="[]"
                    [domainCommands]="[]"
                    [colorCommands]="[]"
                    [showEditButton]="false"
                    [showPreviewButton]="false"
                    (markdownChange)="onAnswerOptionChange($event, answer)"
                    class="editor"
                    style="width: 65%"
                ></jhi-markdown-editor>
                <div class="form-group text-center" style="width: 25%">
                    <button
                        class="btn btn-outline-secondary"
                        [hidden]="isAnswerInvalid(answer)"
                        (click)="setAnswerInvalid(answer)"
                        jhiTranslate="artemisApp.quizExercise.re-evaluate.setAnswerInvalid"
                    ></button>
                    <button
                        class="btn btn-outline-secondary"
                        [hidden]="!isAnswerInvalid(answer)"
                        [disabled]="isAnswerInvalid(answer)"
                        jhiTranslate="artemisApp.quizExercise.re-evaluate.answerIsInvalid"
                    ></button
                    >&nbsp;
                    <span class="re-evaluate-button" (click)="resetAnswer(answer)">
                        <fa-icon [icon]="'undo'" size="2x"></fa-icon>
                    </span>
                    <span class="re-evaluate-button" (click)="deleteAnswer(answer)">
                        <fa-icon [icon]="'trash'" size="2x"></fa-icon>
                    </span>
                </div>
            </div>
        </div>
    </div>
</div><commit_msg>Quiz exercises: Fix alignment of buttons during re-evaluate for small screens (#4055)<commit_after><div class="edit-mc-question">
    <div class="row">
        <div class="col-md-10 text-start">
            <div class="input-group">
                <input class="form-control" [(ngModel)]="question.title" placeholder="Question Title" style="height: 33px" />
                <span class="input-group-btn">
                    <button class="btn btn-outline-secondary" type="button" (click)="resetQuestionTitle()">
                        <fa-icon [icon]="'undo'"></fa-icon>
                    </button>
                </span>
            </div>
        </div>
        <div class="col-md-2 text-end">
            <div class="form-group">
                <div class="re-evaluate-button" id="move-up-button" (click)="moveUp()">
                    <fa-icon [icon]="'chevron-up'" size="2x"></fa-icon>
                </div>
                <div class="re-evaluate-button" id="move-down-button" (click)="moveDown()">
                    <fa-icon [icon]="'chevron-down'" size="2x"></fa-icon>
                </div>
                <div class="re-evaluate-button" id="reset-button" (click)="resetQuestion()">
                    <fa-icon [icon]="'undo'" size="2x"></fa-icon>
                </div>
                <div class="re-evaluate-button" id="delete-button" (click)="delete()">
                    <fa-icon [icon]="'trash'" size="2x"></fa-icon>
                </div>
            </div>
        </div>
    </div>
    <div class="question-options">
        <div class="form-group">
            <span jhiTranslate="artemisApp.quizQuestion.scoringType" class="colon-suffix no-flex-shrink"></span>
            <select class="form-select" [(ngModel)]="question.scoringType" title="scoring type">
                <option value="ALL_OR_NOTHING">{{ 'artemisApp.quizExercise.scoringType.all_or_nothing' | artemisTranslate }}</option>
                <option value="PROPORTIONAL_WITH_PENALTY">{{ 'artemisApp.quizExercise.scoringType.proportional_with_penalty' | artemisTranslate }}</option>
                <option value="PROPORTIONAL_WITHOUT_PENALTY">{{ 'artemisApp.quizExercise.scoringType.proportional_without_penalty' | artemisTranslate }}</option>
            </select>
            <span jhiTranslate="artemisApp.quizQuestion.score" class="colon-suffix"></span>
            <span>{{ question.points }}</span>
        </div>
        <div class="form-group">
            <div class="form-check custom-control custom-checkbox">
                <input type="checkbox" id="{{ 'cbRandomizeOrderMC' + questionIndex }}" [(ngModel)]="question.randomizeOrder" class="form-check-input custom-control-input" />
                <label
                    class="form-check-label custom-control-label"
                    for="{{ 'cbRandomizeOrderMC' + questionIndex }}"
                    jhiTranslate="artemisApp.multipleChoiceQuestion.randomizeOrder"
                >
                </label>
            </div>
        </div>
        <button
            class="btn btn-outline-secondary"
            [hidden]="question.invalid"
            (click)="question.invalid = true"
            jhiTranslate="artemisApp.quizExercise.re-evaluate.setQuestionInvalid"
        ></button>
        <button
            class="btn btn-outline-secondary"
            [hidden]="!question.invalid"
            [disabled]="question.invalid"
            jhiTranslate="artemisApp.quizExercise.re-evaluate.questionIsInvalid"
        ></button>
    </div>
    <div class="markupEditorArea">
        <div class="question-content" style="padding-bottom: 12px">
            <div class="row">
                <jhi-markdown-editor
                    [markdown]="getQuestionText(question)"
                    [editorMode]="editorMode"
                    [metaCommands]="[]"
                    [defaultCommands]="[]"
                    [headerCommands]="[]"
                    [domainCommands]="[]"
                    [colorCommands]="[]"
                    [showEditButton]="false"
                    [showPreviewButton]="false"
                    (markdownChange)="onQuestionChange($event)"
                    class="editor col"
                    style="width: 90%"
                ></jhi-markdown-editor>
                <span class="col-auto input-group-btn d-flex align-items-center">
                    <button class="btn btn-outline-secondary btn-lg" type="button" (click)="resetQuestionText()">
                        <fa-icon [icon]="'undo'"></fa-icon>
                    </button>
                </span>
            </div>
        </div>
    </div>
    <div class="answer-border" dnd-sortable-container [sortableData]="question.answerOptions || []">
        <div class="answer-border" *ngFor="let answer of question.answerOptions; let i = index" dnd-sortable [sortableIndex]="i">
            <div class="question-options">
                <span class="answer-handle re-evaluate-order-button text-center" style="width: 5%" dnd-sortable-handle>
                    <fa-icon [icon]="'arrows-alt-v'" size="2x"></fa-icon>
                </span>
                <jhi-markdown-editor
                    [markdown]="generateAnswerMarkdown(answer)"
                    [editorMode]="editorMode"
                    [metaCommands]="[]"
                    [defaultCommands]="[]"
                    [headerCommands]="[]"
                    [domainCommands]="[]"
                    [colorCommands]="[]"
                    [showEditButton]="false"
                    [showPreviewButton]="false"
                    (markdownChange)="onAnswerOptionChange($event, answer)"
                    class="editor"
                    style="width: 65%"
                ></jhi-markdown-editor>
                <div class="form-group text-center d-flex flex-wrap" style="width: 25%">
                    <button
                        class="btn btn-outline-secondary"
                        [hidden]="isAnswerInvalid(answer)"
                        (click)="setAnswerInvalid(answer)"
                        jhiTranslate="artemisApp.quizExercise.re-evaluate.setAnswerInvalid"
                    ></button>
                    <button
                        class="btn btn-outline-secondary"
                        [hidden]="!isAnswerInvalid(answer)"
                        [disabled]="isAnswerInvalid(answer)"
                        jhiTranslate="artemisApp.quizExercise.re-evaluate.answerIsInvalid"
                    ></button
                    >&nbsp;
                    <span class="re-evaluate-button" (click)="resetAnswer(answer)">
                        <fa-icon [icon]="'undo'" size="2x"></fa-icon>
                    </span>
                    <span class="re-evaluate-button" (click)="deleteAnswer(answer)">
                        <fa-icon [icon]="'trash'" size="2x"></fa-icon>
                    </span>
                </div>
            </div>
        </div>
    </div>
</div>
{'fraction_non_alphanumeric': 0.14998917826996608, 'fraction_numerical': 0.003318663877065147, 'mean_word_length': 1.693219351078298, 'pattern_counts': {'":': 0, '<': 211, '<?xml version=': 0, '>': 211, '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': '146954', 'n_tokens_mistral': 3988, 'n_tokens_neox': 3644, 'n_words': 552}