<!--
Copyright 2020 TATA ELXSI

Licensed 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.

Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in)
-->
<form [formGroup]="usersettingsForm" (ngSubmit)="usersettingsSubmit();">
    <div class="modal-header">
        <h4 class="modal-title" id="modal-basic-title">{{'PAGE.DASHBOARD.USERSETTINGS' | translate}}</h4>
        <button class="button-xs" type="button" class="close" aria-label="Close" (click)="activeModal.close()">
            <i class="fas fa-times-circle text-danger"></i>
        </button>
    </div>
    <div class="modal-body user-settings">
        <label class="col-sm-12 col-form-label mandatory-label" [ngClass]="{'text-danger': usersettingsForm.invalid === true && submitted === true}">{{'MANDATORYCHECK' | translate}}</label>
        <div class="row form-group">
            <div class="col-sm-3">
                <label for="selectedLanguage">{{'PAGE.USERSETTINGS.LANGUAGE' | translate}}* </label>
            </div>
            <div class="col-sm-9">
                <ng-select [items]="languageList" bindLabel="language" bindValue="code"
                    placeholder="{{'SELECT' | translate}} {{'PAGE.USERSETTINGS.LANGUAGE' | translate}}"
                    formControlName="selectedLanguage" id="selectedLanguage"
                    [ngClass]="{ 'is-invalid': submitted && f.selectedLanguage.errors }" required>
                </ng-select>
            </div>
        </div>
    </div>
    <div class="modal-footer">
        <button type="button" class="btn btn-danger" (click)="activeModal.close()">{{'CANCEL' | translate}}</button>
        <button type="submit" class="btn btn-primary">{{'SAVE' | translate}}</button>
    </div>
</form>