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

<div class="elastic" #elasticElement [class.min]="min">
  <input
    #inputElement
    [ngModel]="editValue"
    (ngModelChange)="updateValue($event)"
    *ngIf="showEditor"
    (blur)="setEditorState(false)"
    (keydown.esc)="cancelEdit()"
    (keydown.enter)="setEditorState(false)"
    (input)="updateInputWidth()"
  />
  <p #pElement *ngIf="!showEditor" (click)="setEditorState(true)">{{ value || defaultTitle }}</p>
</div>
