1<!doctype html> 2<!-- 3@license 4Copyright (c) 2015 The Polymer Project Authors. All rights reserved. 5This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt 6The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt 7The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt 8Code distributed by Google as part of the polymer project is also 9subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt 10--> 11<html> 12 <head> 13 14 <meta charset="utf-8"> 15 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 16 <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes"> 17 18 <title>iron-autogrow-textarea demo</title> 19 20 <script src="../../webcomponentsjs/webcomponents-lite.js"></script> 21 <link rel="import" href="../../iron-demo-helpers/demo-snippet.html"> 22 <link rel="import" href="../../iron-demo-helpers/demo-pages-shared-styles.html"> 23 <link rel="import" href="../iron-autogrow-textarea.html"> 24 25 <style is="custom-style" include="demo-pages-shared-styles"> 26 iron-autogrow-textarea { 27 display: block; 28 width: 200px; 29 margin: 5px 0; 30 } 31 32 textarea { 33 width: 200px; 34 } 35 36 .vertical-section { 37 box-sizing: border-box; 38 width: 400px; 39 margin: 0; 40 } 41 </style> 42 </head> 43 <body unresolved> 44 <div class="vertical-section-container centered"> 45 <h3>An iron-autogrow-textarea grows automatically as more text is entered</h3> 46 <demo-snippet class="centered-demo"> 47 <template> 48 <iron-autogrow-textarea></iron-autogrow-textarea> 49 </template> 50 </demo-snippet> 51 52 <h3>The maximum height can be controlled either through the <i>max-rows</i> 53 property, or through a fixed max height</h3> 54 <demo-snippet class="centered-demo"> 55 <template> 56 <iron-autogrow-textarea max-rows="4" placeholder="scrolls after 4 rows"></iron-autogrow-textarea> 57 <iron-autogrow-textarea style="max-height: 50px;" placeholder="scrolls after 50px"></iron-autogrow-textarea> 58 </template> 59 </demo-snippet> 60 61 <h3>The initial height can also be controlled using the <i>rows</i> property, 62 or through a fixed height</h3> 63 <demo-snippet class="centered-demo"> 64 <template> 65 <iron-autogrow-textarea rows="4" placeholder="start with 4 rows"></iron-autogrow-textarea> 66 <iron-autogrow-textarea style="height: 50px;"></iron-autogrow-textarea> 67 </template> 68 </demo-snippet> 69 70 <h3>Example of updating the value imperatively</h3> 71 <!-- TODO: replace this with a demo-snippet when https://github.com/webcomponents/webcomponentsjs/issues/362 72 is fixed --> 73 <div class="example"> 74 <template is="dom-bind"> 75 <div class="vertical-section"> 76 <iron-autogrow-textarea bind-value="{{bindValue}}" id="a1"></iron-autogrow-textarea> 77 <br> 78 <code>bind-value</code>: <span>[[bindValue]]</span> 79 <p on-click="setValue"> 80 Imperatively changing <code>bind-value</code> will also update 81 <code>textarea.value</code>:<br> 82 <textarea></textarea> 83 <button value="bindValue">set</button> 84 <br><br> 85 86 Imperatively updating <code>textarea.value</code> will update 87 the display, but not update <code>bind-value</code>:<br> 88 <textarea></textarea> 89 <button value="value">set</button> 90 </p> 91 </div> 92 </template> 93 </div> 94 </div> 95 <script> 96 var scope = document.querySelector('template[is=dom-bind]'); 97 98 scope.setValue = function(event) { 99 if (!(event.target instanceof HTMLButtonElement)) { 100 return; 101 } 102 var inputValue = event.target.previousElementSibling.value; 103 if (event.target.value == "bindValue") { 104 document.querySelector('#a1').bindValue = inputValue; 105 } else { 106 document.querySelector('#a1').textarea.value = inputValue; 107 } 108 } 109 </script> 110 </body> 111</html> 112