| <!-- | 
 | @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/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-overlay/gr-overlay.html"> | 
 | <link rel="import" href="/bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html"> | 
 | <link rel="import" href="/bower_components/iron-autogrow-textarea/iron-autogrow-textarea.html"> | 
 | <link rel="import" href="../../../styles/shared-styles.html"> | 
 | <link rel="import" href="../../core/gr-reporting/gr-reporting.html"> | 
 |  | 
 | <dom-module id="gr-textarea"> | 
 |   <template> | 
 |     <style include="shared-styles"> | 
 |       :host { | 
 |         display: flex; | 
 |         position: relative; | 
 |       } | 
 |       :host(.monospace) { | 
 |         font-family: var(--monospace-font-family); | 
 |         font-size: var(--font-size-mono); | 
 |         line-height: var(--line-height-mono); | 
 |         font-weight: var(--font-weight-normal); | 
 |       } | 
 |       :host(.code) { | 
 |         font-family: var(--monospace-font-family); | 
 |         font-size: var(--font-size-code); | 
 |         line-height: var(--line-height-code); | 
 |         font-weight: var(--font-weight-normal); | 
 |       } | 
 |       #emojiSuggestions { | 
 |         font-family: var(--font-family); | 
 |       } | 
 |       gr-autocomplete { | 
 |         display: inline-block | 
 |       } | 
 |       #textarea { | 
 |         background-color: var(--view-background-color); | 
 |         width: 100%; | 
 |       } | 
 |       #hiddenText #emojiSuggestions { | 
 |         visibility: visible; | 
 |         white-space: normal; | 
 |       } | 
 |       /*This is needed to not add a scroll bar on the side of gr-textarea | 
 |       since there is 2px of padding in iron-autogrow-textarea for the | 
 |       native textarea*/ | 
 |       iron-autogrow-textarea { | 
 |         padding: 2px; | 
 |         position: relative; | 
 |  | 
 |         /** This is needed for firefox */ | 
 |         --iron-autogrow-textarea_-_white-space: pre-wrap; | 
 |       } | 
 |       #textarea.noBorder { | 
 |         border: none; | 
 |       } | 
 |       #hiddenText { | 
 |         display: block; | 
 |         float: left; | 
 |         position: absolute; | 
 |         visibility: hidden; | 
 |         width: 100%; | 
 |         white-space: pre-wrap; | 
 |       } | 
 |     </style> | 
 |     <div id="hiddenText"></div> | 
 |     <!-- When the autocomplete is open, the span is moved at the end of | 
 |       hiddenText in order to correctly position the dropdown. After being moved, | 
 |       it is set as the positionTarget for the emojiSuggestions dropdown. --> | 
 |     <span id="caratSpan"></span> | 
 |     <gr-autocomplete-dropdown | 
 |         vertical-align="top" | 
 |         horizontal-align="left" | 
 |         dynamic-align | 
 |         id="emojiSuggestions" | 
 |         suggestions="[[_suggestions]]" | 
 |         index="[[_index]]" | 
 |         vertical-offset="[[_verticalOffset]]" | 
 |         on-dropdown-closed="_resetEmojiDropdown" | 
 |         on-item-selected="_handleEmojiSelect"> | 
 |     </gr-autocomplete-dropdown> | 
 |     <iron-autogrow-textarea | 
 |         id="textarea" | 
 |         autocomplete="[[autocomplete]]" | 
 |         placeholder=[[placeholder]] | 
 |         disabled="[[disabled]]" | 
 |         rows="[[rows]]" | 
 |         max-rows="[[maxRows]]" | 
 |         value="{{text}}" | 
 |         on-bind-value-changed="_onValueChanged"></iron-autogrow-textarea> | 
 |     <gr-reporting id="reporting"></gr-reporting> | 
 |   </template> | 
 |   <script src="gr-textarea.js"></script> | 
 | </dom-module> |