<!--
Copyright (C) 2016 The Android Open Source Project

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.
-->
<link rel="import" href="../../../bower_components/polymer/polymer.html">
<link rel="import" href="../../../bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html">
<link rel="import" href="../../../bower_components/iron-input/iron-input.html">
<link rel="import" href="../../shared/gr-autocomplete-dropdown/gr-autocomplete-dropdown.html">
<link rel="import" href="../../shared/gr-cursor-manager/gr-cursor-manager.html">
<link rel="import" href="../../../styles/shared-styles.html">

<dom-module id="gr-autocomplete">
  <template>
    <style include="shared-styles">
      input {
        font-size: 1em;
        height: 100%;
        width: 100%;
        @apply --gr-autocomplete;
      }
      input.borderless,
      input.borderless:focus {
        border: none;
        outline: none;
      }
      input.warnUncommitted {
        color: red;
      }
    </style>
    <input
        id="input"
        class$="[[_computeClass(borderless)]]"
        is="iron-input"
        disabled$="[[disabled]]"
        bind-value="{{text}}"
        placeholder="[[placeholder]]"
        on-keydown="_handleKeydown"
        on-focus="_onInputFocus"
        on-blur="_onInputBlur"
        autocomplete="off"/>
    <!-- This container is needed for Safari and Firefox -->
    <div id="suggestionContainer">
      <gr-autocomplete-dropdown
          id="suggestions"
          on-item-selected="_handleItemSelect"
          on-keydown="_handleKeydown"
          suggestions="[[_suggestions]]"
          role="listbox"
          index="[[_index]]"
          hidden$="[[_computeSuggestionsHidden(_suggestions, _focused)]]">
      </gr-autocomplete-dropdown>
    </div>
  </template>
  <script src="gr-autocomplete.js"></script>
</dom-module>
