
In polymer 2 some styles processed differently. For example @apply is deprecated and sometimes final style is different than in Polymer 1. In the future, @apply should be removed - see Issue 11277. Bug: Issue 11163 Change-Id: I7bb5055ba3fd509e461b419482e629b77d48cbdd
120 lines
4.0 KiB
HTML
120 lines
4.0 KiB
HTML
<!--
|
|
@license
|
|
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/paper-input/paper-input.html">
|
|
<link rel="import" href="../../../behaviors/fire-behavior/fire-behavior.html">
|
|
<link rel="import" href="../../../behaviors/keyboard-shortcut-behavior/keyboard-shortcut-behavior.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: inline-block;
|
|
}
|
|
iron-icon {
|
|
margin: 0 .25em;
|
|
}
|
|
paper-input:not(.borderless) {
|
|
border: 1px solid var(--border-color);
|
|
}
|
|
paper-input {
|
|
height: 100%;
|
|
width: 100%;
|
|
@apply --gr-autocomplete;
|
|
--paper-input-container: {
|
|
padding: 0;
|
|
}
|
|
--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: var(--error-text-color);
|
|
font-size: var(--font-size-normal);
|
|
}
|
|
}
|
|
</style>
|
|
<paper-input
|
|
no-label-float
|
|
id="input"
|
|
class$="[[_computeClass(borderless)]]"
|
|
disabled$="[[disabled]]"
|
|
value="{{text}}"
|
|
placeholder="[[placeholder]]"
|
|
on-keydown="_handleKeydown"
|
|
on-focus="_onInputFocus"
|
|
on-blur="_onInputBlur"
|
|
autocomplete="off">
|
|
|
|
<template is="dom-if" if="[[_isPolymer2()]]">
|
|
<!-- Content uses vertical-align:baseline. If iron-icon is placed
|
|
directly in the slot and is not visible, vertical-align doesn't
|
|
work, because display:none convert it from inline-block element to
|
|
block element. To fix this problem, iron-icon is wrapped in div
|
|
which never changes display type.
|
|
The problem doesn't exist in Polymer1 because DOM is different.
|
|
Applying the same fix to Polymer1 breaks vertical-align.
|
|
-->
|
|
<div slot="prefix">
|
|
<iron-icon
|
|
icon="gr-icons:search"
|
|
class$="searchIcon [[_computeShowSearchIconClass(showSearchIcon)]]">
|
|
</iron-icon>
|
|
</div>
|
|
</template>
|
|
<template is="dom-if" if="[[!_isPolymer2()]]">
|
|
<iron-icon
|
|
prefix
|
|
icon="gr-icons:search"
|
|
class$="searchIcon [[_computeShowSearchIconClass(showSearchIcon)]]">
|
|
</iron-icon>
|
|
</template>
|
|
|
|
</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>
|