<!--
@license
Copyright (C) 2017 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="../../../behaviors/keyboard-shortcut-behavior/keyboard-shortcut-behavior.html">
<link rel="import" href="../../../bower_components/iron-dropdown/iron-dropdown.html">
<link rel="import" href="../../shared/gr-cursor-manager/gr-cursor-manager.html">
<script src="../../../scripts/rootElement.js"></script>
<link rel="import" href="../../../styles/shared-styles.html">

<dom-module id="gr-autocomplete-dropdown">
  <template>
    <style include="shared-styles">
      :host {
        z-index: 100;
      }
      :host([is-hidden]) {
        display: none;
      }
      ul {
        list-style: none;
      }
      li {
        border-bottom: 1px solid var(--border-color);
        cursor: pointer;
        padding: .5em .75em;
      }
      li:last-of-type {
        border: none;
      }
      li:focus {
        outline: none;
      }
      li:hover {
        background-color: var(--hover-background-color);
      }
      li.selected {
        background-color: var(--selection-background-color);
      }
      .dropdown-content {
        background: var(--dropdown-background-color);
        box-shadow: rgba(0, 0, 0, 0.3) 0 1px 3px;
      }
    </style>
    <div
        class="dropdown-content"
        slot="dropdown-content"
        id="suggestions"
        role="listbox">
      <ul>
        <template is="dom-repeat" items="[[suggestions]]">
          <li data-index$="[[index]]"
              data-value$="[[item.dataValue]]"
              tabindex="-1"
              aria-label$="[[item.name]]"
              role="option"
              on-tap="_handleTapItem">[[item.text]]</li>
        </template>
      </ul>
    </div>
    <gr-cursor-manager
        id="cursor"
        index="{{index}}"
        cursor-target-class="selected"
        scroll-behavior="never"
        focus-on-move
        stops="[[_suggestionEls]]"></gr-cursor-manager>
  </template>
  <script src="gr-autocomplete-dropdown.js"></script>
</dom-module>
