<!--
  ~ 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>
