AlexAegis/loreplotter

View on GitHub
src/app/lore/component/dialog/actor-form.component.html

Summary

Maintainability
Test Coverage
<h1 mat-dialog-title>Edit actor</h1>
<mat-dialog-content class="actorDialog">
    <form [formGroup]="actorForm">
        <div class="main">
            <mat-label class="nameLabel">Name:</mat-label>
            <mat-form-field class="name" floatLabel="never">
                <mat-label>{{ originalData?.accumulator?.name.value }}</mat-label>
                <input formControlName="name" matInput />
            </mat-form-field>
            <div>
                <mat-form-field class="date" floatLabel="never">
                    <mat-label>{{ originalDate | amDateFormat: 'YYYY-MM-DD' }}</mat-label>
                    <input
                        [matDatepicker]="date"
                        formControlName="date"
                        [matTooltip]="'Date of event'"
                        id="dateInput"
                        matInput
                    />
                    <mat-datepicker-toggle matSuffix [for]="date"></mat-datepicker-toggle>
                    <mat-datepicker #date></mat-datepicker>
                </mat-form-field>
                <mat-form-field class="time" floatLabel="never">
                    <mat-label>{{ originalTime }}</mat-label>
                    <input
                        [dropSpecialCharacters]="false"
                        [matTooltip]="'Time of the event'"
                        formControlName="time"
                        mask="Hh:m0:s0"
                        matInput
                    />
                </mat-form-field>
            </div>

            <mat-label class="maxSpeedLabel" [matTooltip]="'km/h'">Max Speed:</mat-label>
            <mat-form-field class="speed" floatLabel="never">
                <mat-label>{{ originalData?.accumulator?.maxSpeed.value }}</mat-label>
                <input [matTooltip]="'km/h'" formControlName="maxSpeed" mask="9*" matInput />
                <mat-error *ngIf="actorForm.hasError('slow', 'maxSpeed')">Too slow to reach next target!</mat-error>
            </mat-form-field>

            <mat-form-field class="color" floatLabel="never" [ngStyle]="{ backgroundColor: color }">
                <input
                    [(colorPicker)]="color"
                    [cpAlphaChannel]="'disabled'"
                    [matTooltip]="'Color, click for color picker'"
                    [style.background]="color"
                    matInput
                />
            </mat-form-field>
        </div>

        <hr class="divider" />
        <h2>Existing properties:</h2>
        <app-form-entry
            [parent]="properties"
            [index]="i"
            *ngFor="let control of properties.controls; let i = index"
            [control]="control"
            class="entries"
            [existing]="true"
        >
        </app-form-entry>
        <h2>New properties:</h2>
        <app-form-entry
            [parent]="newProperties"
            [index]="i"
            [control]="control"
            class="entries"
            *ngFor="let control of newProperties.controls; let i = index"
        >
        </app-form-entry>
    </form>
    <button (click)="addNewProperty()" aria-label="Add new property entry" class="add" color="accent" mat-flat-button>
        <fa-icon [icon]="plusIcon"></fa-icon>
    </button>
</mat-dialog-content>
<mat-dialog-actions>
    <button
        aria-label="Save Form"
        mat-flat-button
        color="accent"
        [mat-dialog-close]="result"
        class="save"
        [disabled]="!actorForm.valid"
    >
        Save
    </button>
</mat-dialog-actions>
<!--{{ actorForm.value | json }}-->