<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements.  See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership.  The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License.  You may obtain a copy of the License at
  ~
  ~     http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied.  See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License.
  -->

<form (ngSubmit)="onSubmit()" #inputForm="ngForm">
  <h1 mat-dialog-title>{{ title }}</h1>
  <div mat-dialog-content>
    <section>
      {{ message }}
    </section>
    <section *ngFor="let name of getKeys(values)" [ngSwitch]="values[name].type">
      <section *ngSwitchCase="'boolean'">
        {{ values[name].label }}:
        <mat-slide-toggle
          [name]="name"
          [(ngModel)]="values[name].value">
          {{ values[name].value ? 'True' : 'False' }}
        </mat-slide-toggle>
      </section>
      <mat-form-field *ngSwitchCase="'password'">
        <input matInput
          type="password"
          [name]="name"
          [(ngModel)]="values[name].value"
          [placeholder]="values[name].label"
          required>
      </mat-form-field>
      <mat-form-field *ngSwitchDefault>
        <input matInput
          [name]="name"
          [(ngModel)]="values[name].value"
          [placeholder]="values[name].label"
          required>
      </mat-form-field>
    </section>
  </div>
  <div mat-dialog-actions>
    <button mat-button type="submit" color="primary" [disabled]="!inputForm.form.valid">OK</button>
    <button mat-button type="button" (click)="onCancel()">Cancel</button>
  </div>
</form>
