src/timepicker/timepicker.component.html
<table>
<tbody>
<tr class="text-center" [hidden]="!showSpinners">
<!-- increment hours button-->
<td>
<a class="btn btn-link" [class.disabled]="!canIncrementHours || !isEditable"
(click)="changeHours(hourStep)"
><span class="bs-chevron bs-chevron-up"></span></a>
</td>
<!-- divider -->
<td *ngIf="showMinutes"> </td>
<!-- increment minutes button -->
<td *ngIf="showMinutes">
<a class="btn btn-link" [class.disabled]="!canIncrementMinutes || !isEditable"
(click)="changeMinutes(minuteStep)"
><span class="bs-chevron bs-chevron-up"></span></a>
</td>
<!-- divider -->
<td *ngIf="showSeconds"> </td>
<!-- increment seconds button -->
<td *ngIf="showSeconds">
<a class="btn btn-link" [class.disabled]="!canIncrementSeconds || !isEditable"
(click)="changeSeconds(secondsStep)">
<span class="bs-chevron bs-chevron-up"></span>
</a>
</td>
<!-- space between -->
<td *ngIf="showMeridian"> </td>
<!-- meridian placeholder-->
<td *ngIf="showMeridian"></td>
</tr>
<tr>
<!-- hours -->
<td class="form-group" [class.has-error]="invalidHours">
<input type="text" [class.is-invalid]="invalidHours"
class="form-control text-center bs-timepicker-field"
placeholder="HH"
maxlength="2"
[readonly]="readonlyInput"
[disabled]="disabled"
[value]="hours"
(wheel)="prevDef($event);changeHours(hourStep * wheelSign($event), 'wheel')"
(keydown.ArrowUp)="changeHours(hourStep, 'key')"
(keydown.ArrowDown)="changeHours(-hourStep, 'key')"
(change)="updateHours($event.target.value)"></td>
<!-- divider -->
<td *ngIf="showMinutes"> : </td>
<!-- minutes -->
<td class="form-group" *ngIf="showMinutes" [class.has-error]="invalidMinutes">
<input type="text" [class.is-invalid]="invalidMinutes"
class="form-control text-center bs-timepicker-field"
placeholder="MM"
maxlength="2"
[readonly]="readonlyInput"
[disabled]="disabled"
[value]="minutes"
(wheel)="prevDef($event);changeMinutes(minuteStep * wheelSign($event), 'wheel')"
(keydown.ArrowUp)="changeMinutes(minuteStep, 'key')"
(keydown.ArrowDown)="changeMinutes(-minuteStep, 'key')"
(change)="updateMinutes($event.target.value)">
</td>
<!-- divider -->
<td *ngIf="showSeconds"> : </td>
<!-- seconds -->
<td class="form-group" *ngIf="showSeconds" [class.has-error]="invalidSeconds">
<input type="text" [class.is-invalid]="invalidSeconds"
class="form-control text-center bs-timepicker-field"
placeholder="SS"
maxlength="2"
[readonly]="readonlyInput"
[disabled]="disabled"
[value]="seconds"
(wheel)="prevDef($event);changeSeconds(secondsStep * wheelSign($event), 'wheel')"
(keydown.ArrowUp)="changeSeconds(secondsStep, 'key')"
(keydown.ArrowDown)="changeSeconds(-secondsStep, 'key')"
(change)="updateSeconds($event.target.value)">
</td>
<!-- space between -->
<td *ngIf="showMeridian"> </td>
<!-- meridian -->
<td *ngIf="showMeridian">
<button type="button" class="btn btn-default text-center"
[disabled]="!isEditable || !canToggleMeridian"
[class.disabled]="!isEditable || !canToggleMeridian"
(click)="toggleMeridian()"
>{{ meridian }}
</button>
</td>
</tr>
<tr class="text-center" [hidden]="!showSpinners">
<!-- decrement hours button-->
<td>
<a class="btn btn-link" [class.disabled]="!canDecrementHours || !isEditable"
(click)="changeHours(-hourStep)">
<span class="bs-chevron bs-chevron-down"></span>
</a>
</td>
<!-- divider -->
<td *ngIf="showMinutes"> </td>
<!-- decrement minutes button-->
<td *ngIf="showMinutes">
<a class="btn btn-link" [class.disabled]="!canDecrementMinutes || !isEditable"
(click)="changeMinutes(-minuteStep)">
<span class="bs-chevron bs-chevron-down"></span>
</a>
</td>
<!-- divider -->
<td *ngIf="showSeconds"> </td>
<!-- decrement seconds button-->
<td *ngIf="showSeconds">
<a class="btn btn-link" [class.disabled]="!canDecrementSeconds || !isEditable"
(click)="changeSeconds(-secondsStep)">
<span class="bs-chevron bs-chevron-down"></span>
</a>
</td>
<!-- space between -->
<td *ngIf="showMeridian"> </td>
<!-- meridian placeholder-->
<td *ngIf="showMeridian"></td>
</tr>
</tbody>
</table>