<!--
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/paper-input/paper-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="../../shared/gr-icons/gr-icons.html">
<link rel="import" href="../../../styles/shared-styles.html">

<dom-module id="gr-autocomplete">
  <template>
    <style include="shared-styles">
      .searchIcon {
        display: none;
      }
      .searchIcon.showSearchIcon {
        display: initial;
      }
      iron-icon {
        margin: 0 .25em;
      }
      paper-input:not(.borderless) {
        border: 1px solid #ddd;
      }
      paper-input {
        height: 100%;
        width: 100%;
        @apply --gr-autocomplete;
        --paper-input-container: {
          padding: 0;
          min-width: 15em;
        }
        --paper-input-container-input: {
          font-size: var(--font-size-normal);
        }
        --paper-input-container-underline: {
          display: none;
        };
        --paper-input-container-underline-focus: {
          display: none;
        };
        --paper-input-container-underline-disabled: {
          display: none;
        };
      }
      paper-input.warnUncommitted {
        --paper-input-container-input: {
          color: #ff0000;
          font-size: var(--font-size-normal);
        }
      }
    </style>
    <paper-input
        no-label-float
        id="input"
        class$="[[_computeClass(borderless)]]"
        is="iron-input"
        disabled$="[[disabled]]"
        value="{{text}}"
        placeholder="[[placeholder]]"
        on-keydown="_handleKeydown"
        on-focus="_onInputFocus"
        on-blur="_onInputBlur"
        autocomplete="off">
      <!-- slot is for future use (2.x) while prefix attribute is for 1.x
        (current) -->
      <iron-icon
          icon="gr-icons:search"
          slot="prefix"
          prefix
          class$="searchIcon [[_computeShowSearchIconClass(showSearchIcon)]]">
      </iron-icon>
    </paper-input>
    <gr-autocomplete-dropdown
        vertical-align="top"
        vertical-offset="[[verticalOffset]]"
        horizontal-align="left"
        id="suggestions"
        on-item-selected="_handleItemSelect"
        on-keydown="_handleKeydown"
        suggestions="[[_suggestions]]"
        role="listbox"
        index="[[_index]]"
        position-target="[[_inputElement]]">
    </gr-autocomplete-dropdown>
  </template>
  <script src="gr-autocomplete.js"></script>
</dom-module>
