2
0
Files
guilloche-generator/src/app/app.component.html

133 lines
4.8 KiB
HTML

<app-graphs [config]="config" [restoredHistory]="restoredHistory" (svgChange)="prepareSvgExport($event)"></app-graphs>
<aside class="col-sm-4 col-lg-3 col-xl-3">
<div class="aside-inner">
<form [formGroup]="configForm" (ngSubmit)="updateGraphs()" novalidate>
<div class="pb-5">
<h5>Grundfläche</h5>
<hr>
<div class="form-group">
<label class="form-control-label">
Breite
</label>
<input type="number" class="form-control" formControlName="width">
</div>
<div class="form-group">
<label class="form-control-label">
Höhe
</label>
<input type="number" class="form-control" formControlName="height">
</div>
<div class="form-group">
<label class="form-control-label">
Skalierung
</label>
<input type="number" class="form-control" formControlName="scale" min="0" max="1" step="0.01">
</div>
</div>
<div class="pb-5">
<h5>Vektorfläche</h5>
<hr/>
<div class="form-group">
<label class="form-control-label">
Skalierung
</label>
<input type="number" class="form-control" formControlName="overlap" min="0" max="30" step="0.1">
</div>
<ng-container formGroupName="vectors">
<div class="form-group">
<label class="form-control-label">
Anfangsvektor
</label>
<select class="form-control" formControlName="start">
<option value="1">Oben</option>
<option value="0.5">Rechts</option>
<option value="0">Unten</option>
<option value="1.5">Links</option>
</select>
</div>
<div class="form-group">
<label class="form-control-label">
Endvektor
</label>
<select class="form-control" formControlName="end">
<option value="1">Oben</option>
<option value="0.5">Rechts</option>
<option value="0">Unten</option>
<option value="1.5">Links</option>
</select>
</div>
<div class="form-group">
<label class="form-control-label">
Dehnung
</label>
<input type="number" class="form-control" formControlName="range" min="0" max="1" step="0.1">
</div>
</ng-container>
</div>
<h5 class="mt-2">Graph</h5>
<!-- <hr>
<small>Anzahl der Schwingungen mittels Knotenpunkten bestimmen und die Skalierung auf der Leinwand einstellen.</small> -->
<hr>
<div class="form-group mb-4">
<label class="form-control-label">
Knotenpunkte
</label>
<input type="number" class="form-control" formControlName="nodes" min="1" max="10">
</div>
<div class="form-group">
<label class="form-control-label">
Linienstärke
</label>
<input type="number" class="form-control" formControlName="stroke" min="0.1" max="10" step="0.1">
</div>
<div class="form-group mb-4">
<label class="form-control-label">
Linienabstand
</label>
<input type="number" class="form-control" formControlName="space" min="0" max="10" step="0.1">
</div>
<div class="form-group mb-4">
<label class="form-control-label">
Lienienanzahl
</label>
<input type="number" class="form-control" formControlName="spread" min="0" max="40">
</div>
<div class="dropdown-divider mb-4"></div>
<button type="submit" class="btn btn-lg btn-primary btn-block" [disabled]="configForm.invalid">Aktualisieren</button>
</form>
<div class="row mt-4">
<div class="col-sm">
<button class="btn btn-secondary btn-block" (click)="exportSvg()">Download</button>
</div>
<div class="col-sm mt-xs-2 mt-sm-2 mt-md-0">
<button class="btn btn-secondary btn-block" (click)="toggleList()">
Chronik <span class="badge badge-light badge-pill">{{ list.length }}</span>
</button>
</div>
</div>
<div *ngIf="showList" class="list-group mt-4">
<a href="#" *ngFor="let item of list.slice().reverse(); let i = index" class="list-group-item d-flex flex-row" (click)="restoreGraph(item)">
<span class="text-muted pr-3">#{{ list.length - i }}</span>
<div class="d-flex flex-column">
<div class="">
<span class="badge badge-primary mr-2">
{{ item.config.nodes }} Knoten
</span>
<span class="badge badge-primary">
{{ item.config.spread }} Linien
</span>
</div>
<div>
{{ item.date | amTimeAgo }}
</div>
</div>
</a>
</div>
</div>
</aside>