Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(73)

Side by Side Diff: third_party/polymer/v1_0/components-chromium/iron-autogrow-textarea/iron-autogrow-textarea-extracted.js

Issue 1221923003: Update bower.json for Polymer elements and add PRESUBMIT.py (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 1
2 2
3 Polymer({ 3 Polymer({
4 4
5 is: 'iron-autogrow-textarea', 5 is: 'iron-autogrow-textarea',
6 6
7 behaviors: [ 7 behaviors: [
8 Polymer.IronValidatableBehavior 8 Polymer.IronFormElementBehavior,
9 Polymer.IronValidatableBehavior,
10 Polymer.IronControlState
9 ], 11 ],
10 12
11 properties: { 13 properties: {
12 14
13 /** 15 /**
14 * Use this property instead of `value` for two-way data binding. 16 * Use this property instead of `value` for two-way data binding.
15 */ 17 */
16 bindValue: { 18 bindValue: {
17 observer: '_bindValueChanged', 19 observer: '_bindValueChanged',
18 type: String 20 type: String
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 }, 71 },
70 72
71 /** 73 /**
72 * Bound to the textarea's `name` attribute. 74 * Bound to the textarea's `name` attribute.
73 */ 75 */
74 name: { 76 name: {
75 type: String 77 type: String
76 }, 78 },
77 79
78 /** 80 /**
81 * The value for this input, same as `bindValue`
82 */
83 value: {
84 notify: true,
85 type: String,
86 computed: '_computeValue(bindValue)'
87 },
88
89 /**
79 * Bound to the textarea's `placeholder` attribute. 90 * Bound to the textarea's `placeholder` attribute.
80 */ 91 */
81 placeholder: { 92 placeholder: {
82 type: String 93 type: String
83 }, 94 },
84 95
85 /** 96 /**
86 * Bound to the textarea's `readonly` attribute. 97 * Bound to the textarea's `readonly` attribute.
87 */ 98 */
88 readonly: { 99 readonly: {
(...skipping 15 matching lines...) Expand all
104 } 115 }
105 116
106 }, 117 },
107 118
108 listeners: { 119 listeners: {
109 'input': '_onInput' 120 'input': '_onInput'
110 }, 121 },
111 122
112 /** 123 /**
113 * Returns the underlying textarea. 124 * Returns the underlying textarea.
125 * @type HTMLTextAreaElement
114 */ 126 */
115 get textarea() { 127 get textarea() {
116 return this.$.textarea; 128 return this.$.textarea;
117 }, 129 },
118 130
131 /**
132 * Returns true if `value` is valid. The validator provided in `validator`
133 * will be used first, if it exists; otherwise, the `textarea`'s validity
134 * is used.
135 * @return {boolean} True if the value is valid.
136 */
137 validate: function() {
138 // Empty, non-required input is valid.
139 if (!this.required && this.value == '') {
140 this.invalid = false;
141 return true;
142 }
143
144 var valid;
145 if (this.hasValidator()) {
146 valid = Polymer.IronValidatableBehavior.validate.call(this, this.value);
147 } else {
148 valid = this.$.textarea.validity.valid;
149 this.invalid = !valid;
150 }
151 this.fire('iron-input-validate');
152 return valid;
153 },
154
119 _update: function() { 155 _update: function() {
120 this.$.mirror.innerHTML = this._valueForMirror(); 156 this.$.mirror.innerHTML = this._valueForMirror();
121 157
122 var textarea = this.textarea; 158 var textarea = this.textarea;
123 // If the value of the textarea was updated imperatively, then we 159 // If the value of the textarea was updated imperatively, then we
124 // need to manually update bindValue as well. 160 // need to manually update bindValue as well.
125 if (textarea && this.bindValue != textarea.value) { 161 if (textarea && this.bindValue != textarea.value) {
126 this.bindValue = textarea.value; 162 this.bindValue = textarea.value;
127 } 163 }
128 }, 164 },
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 var input = this.textarea; 199 var input = this.textarea;
164 if (!input) { 200 if (!input) {
165 return; 201 return;
166 } 202 }
167 this.tokens = (input && input.value) ? input.value.replace(/&/gm, '&amp;') .replace(/"/gm, '&quot;').replace(/'/gm, '&#39;').replace(/</gm, '&lt;').replace (/>/gm, '&gt;').split('\n') : ['']; 203 this.tokens = (input && input.value) ? input.value.replace(/&/gm, '&amp;') .replace(/"/gm, '&quot;').replace(/'/gm, '&#39;').replace(/</gm, '&lt;').replace (/>/gm, '&gt;').split('\n') : [''];
168 return this._constrain(this.tokens); 204 return this._constrain(this.tokens);
169 }, 205 },
170 206
171 _updateCached: function() { 207 _updateCached: function() {
172 this.$.mirror.innerHTML = this._constrain(this.tokens); 208 this.$.mirror.innerHTML = this._constrain(this.tokens);
209 },
210
211 _computeValue: function() {
212 return this.bindValue;
173 } 213 }
174 }) 214 })
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698