constructor() {
      super();
      // Indicates if there is selected suggestionItem.
      this.hasSuggestionItemSelected = false;
      // Represents the value before user moves selection from suggestion item to another
      // and its value is updated after each move.
      // Note: Used to register and fire "input" event upon [SPACE] or [ENTER].
      // Note: The property "value" is updated upon selection move and can`t be used.
      this.valueBeforeItemSelection = "";
      // Represents the value before user moves selection between the suggestion items
      // and its value remains the same when the user navigates up or down the list.
      // Note: Used to cancel selection upon [ESC].
      this.valueBeforeItemPreview = "";
      // Indicates if the user selection has been canceled with [ESC].
      this.suggestionSelectionCanceled = false;
      // tracks the value between focus in and focus out to detect that change event should be fired.
      this.previousValue = "";
      // Indicates, if the component is rendering for first time.
      this.firstRendering = true;
      // The typed in value.
      this.typedInValue = "";
      // The last value confirmed by the user with "ENTER"
      this.lastConfirmedValue = "";
      // Indicates, if the user is typing. Gets reset once popup is closed
      this.isTyping = false;
      // Suggestions array initialization
      this.suggestionObjects = [];
      this._handleResizeBound = this._handleResize.bind(this);
      this._keepInnerValue = false;
      this._focusedAfterClear = false;
    }
@class
<h3 class="comment-api-title">Overview</h3>

The <code>ui5-input</code> component allows the user to enter and edit text or numeric values in one line.
<br>
Additionally, you can provide <code>suggestionItems</code>,
that are displayed in a popover right under the input.
<br><br>
The text field can be editable or read-only (<code>readonly</code> property),
and it can be enabled or disabled (<code>disabled</code> property).
To visualize semantic states, such as "error" or "warning", the <code>valueState</code> property is provided.
When the user makes changes to the text, the change event is fired,
which enables you to react on any text change.
<br><br>
<b>Note:</b> If you are using the <code>ui5-input</code> as a single npm module,
don't forget to import the <code>InputSuggestions</code> module from
"@ui5/webcomponents/dist/features/InputSuggestions.js"
to enable the suggestions functionality.

<h3>Keyboard Handling</h3>
The <code>ui5-input</code> provides the following keyboard shortcuts:
<br>

<ul>
<li>[ESC] - Closes the suggestion list, if open. If closed or not enabled, cancels changes and reverts to the value which the Input field had when it got the focus.</li>
<li>[ENTER] or [RETURN] - If suggestion list is open takes over the current matching item and closes it. If value state or group header is focused, does nothing.</li>
<li>[DOWN] - Focuses the next matching item in the suggestion list.</li>
<li>[UP] - Focuses the previous matching item in the suggestion list.</li>
<li>[HOME] - If focus is in the text input, moves caret before the first character. If focus is in the list, highlights the first item and updates the input accordingly.</li>
<li>[END] - If focus is in the text input, moves caret after the last character. If focus is in the list, highlights the last item and updates the input accordingly.</li>
<li>[PAGEUP] - If focus is in the list, moves highlight up by page size (10 items by default). If focus is in the input, does nothing.</li>
<li>[PAGEDOWN] - If focus is in the list, moves highlight down by page size (10 items by default). If focus is in the input, does nothing.</li>
</ul>

<h3>ES6 Module Import</h3>

<code>import "@ui5/webcomponents/dist/Input.js";</code>
<br>
<code>import "@ui5/webcomponents/dist/features/InputSuggestions.js";</code> (optional - for input suggestions support)

@constructor
@author SAP SE
@alias sap.ui.webc.main.Input
@extends sap.ui.webc.base.UI5Element
@tagname ui5-input
@appenddocs sap.ui.webc.main.SuggestionItem sap.ui.webc.main.SuggestionGroupItem
@implements sap.ui.webc.main.IInput
@public