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

Side by Side Diff: third_party/polymer/components-chromium/core-input/core-input-extracted.js

Issue 592593002: Inline scripts were extracted from Polymer elements. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: s/echo ""/echo/ Created 6 years, 2 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
(Empty)
1
2
3 Polymer('core-input', {
4 publish: {
5 /**
6 * Placeholder text that hints to the user what can be entered in
7 * the input.
8 *
9 * @attribute placeholder
10 * @type string
11 * @default ''
12 */
13 placeholder: '',
14
15 /**
16 * If true, this input cannot be focused and the user cannot change
17 * its value.
18 *
19 * @attribute disabled
20 * @type boolean
21 * @default false
22 */
23 disabled: false,
24
25 /**
26 * If true, the user cannot modify the value of the input.
27 *
28 * @attribute readonly
29 * @type boolean
30 * @default false
31 */
32 readonly: false,
33
34 /**
35 * If true, this input will automatically gain focus on page load.
36 *
37 * @attribute autofocus
38 * @type boolean
39 * @default false
40 */
41 autofocus: false,
42
43 /**
44 * If true, this input accepts multi-line input like a `<textarea>`
45 *
46 * @attribute multiline
47 * @type boolean
48 * @default false
49 */
50 multiline: false,
51
52 /**
53 * (multiline only) The height of this text input in rows. The input
54 * will scroll internally if more input is entered beyond the size
55 * of the component. This property is meaningless if multiline is
56 * false. You can also set this property to "fit" and size the
57 * component with CSS to make the input fit the CSS size.
58 *
59 * @attribute rows
60 * @type number|'fit'
61 * @default 'fit'
62 */
63 rows: 'fit',
64
65 /**
66 * The current value of this input. Changing inputValue programmatically
67 * will cause value to be out of sync. Instead, change value directly
68 * or call commit() after changing inputValue.
69 *
70 * @attribute inputValue
71 * @type string
72 * @default ''
73 */
74 inputValue: '',
75
76 /**
77 * The value of the input committed by the user, either by changing the
78 * inputValue and blurring the input, or by hitting the `enter` key.
79 *
80 * @attribute value
81 * @type string
82 * @default ''
83 */
84 value: '',
85
86 /**
87 * Set the input type. Not supported for `multiline`.
88 *
89 * @attribute type
90 * @type string
91 * @default text
92 */
93 type: 'text',
94
95 /**
96 * If true, the input is invalid if its value is null.
97 *
98 * @attribute required
99 * @type boolean
100 * @default false
101 */
102 required: false,
103
104 /**
105 * A regular expression to validate the input value against. See
106 * https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constra int_validation#Validation-related_attributes
107 * for more info. Not supported if `multiline` is true.
108 *
109 * @attribute pattern
110 * @type string
111 * @default '.*'
112 */
113 // FIXME(yvonne): The default is set to .* because we can't bind to patt ern such
114 // that the attribute is unset if pattern is null.
115 pattern: '.*',
116
117 /**
118 * If set, the input is invalid if the value is less than this property. See
119 * https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constra int_validation#Validation-related_attributes
120 * for more info. Not supported if `multiline` is true.
121 *
122 * @attribute min
123 */
124 min: null,
125
126 /**
127 * If set, the input is invalid if the value is greater than this proper ty. See
128 * https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constra int_validation#Validation-related_attributes
129 * for more info. Not supported if `multiline` is true.
130 *
131 * @attribute max
132 */
133 max: null,
134
135 /**
136 * If set, the input is invalid if the value is not `min` plus an integr al multiple
137 * of this property. See
138 * https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constra int_validation#Validation-related_attributes
139 * for more info. Not supported if `multiline` is true.
140 *
141 * @attribute step
142 */
143 step: null,
144
145 /**
146 * The maximum length of the input value.
147 *
148 * @attribute maxlength
149 * @type number
150 */
151 maxlength: null,
152
153 /**
154 * If this property is true, the text input's inputValue failed validati on.
155 *
156 * @attribute invalid
157 * @type boolean
158 * @default false
159 */
160 invalid: false
161 },
162
163 ready: function() {
164 this.handleTabindex(this.getAttribute('tabindex'));
165 },
166
167 invalidChanged: function() {
168 this.classList.toggle('invalid', this.invalid);
169 this.fire('input-'+ (this.invalid ? 'invalid' : 'valid'), {value: this.i nputValue});
170 },
171
172 inputValueChanged: function() {
173 this.updateValidity_();
174 },
175
176 valueChanged: function() {
177 this.inputValue = this.value;
178 },
179
180 requiredChanged: function() {
181 this.updateValidity_();
182 },
183
184 attributeChanged: function(attr, oldVal, curVal) {
185 if (attr === 'tabindex') {
186 this.handleTabindex(curVal);
187 }
188 },
189
190 handleTabindex: function(tabindex) {
191 if (tabindex > 0) {
192 this.$.input.setAttribute('tabindex', -1);
193 } else {
194 this.$.input.removeAttribute('tabindex');
195 }
196 },
197
198 /**
199 * Commits the inputValue to value.
200 *
201 * @method commit
202 */
203 commit: function() {
204 this.value = this.inputValue;
205 },
206
207 updateValidity_: function() {
208 if (this.$.input.willValidate) {
209 this.invalid = !this.$.input.validity.valid;
210 }
211 },
212
213 keydownAction: function() {
214 // for type = number, the value is the empty string unless the input is a valid number.
215 // FIXME(yvonne): check other types
216 if (this.type === 'number') {
217 this.async(function() {
218 this.updateValidity_();
219 });
220 }
221 },
222
223 inputChangeAction: function() {
224 this.commit();
225 if (!window.ShadowDOMPolyfill) {
226 // re-fire event that does not bubble across shadow roots
227 this.fire('change', null, this);
228 }
229 },
230
231 focusAction: function(e) {
232 if (this.getAttribute('tabindex') > 0) {
233 // Forward focus to the inner input if tabindex is set on the element
234 // This will not cause an infinite loop because focus will not fire on the <input>
235 // again if it's already focused.
236 this.$.input.focus();
237 }
238 },
239
240 inputFocusAction: function(e) {
241 if (window.ShadowDOMPolyfill) {
242 // re-fire non-bubbling event if polyfill
243 this.fire('focus', null, this, false);
244 }
245 },
246
247 inputBlurAction: function() {
248 if (window.ShadowDOMPolyfill) {
249 // re-fire non-bubbling event
250 this.fire('blur', null, this, false);
251 }
252 },
253
254 blur: function() {
255 // forward blur method to the internal input / textarea element
256 this.$.input.blur();
257 },
258
259 click: function() {
260 // forward click method to the internal input / textarea element
261 this.$.input.click();
262 },
263
264 focus: function() {
265 // forward focus method to the internal input / textarea element
266 this.$.input.focus();
267 },
268
269 select: function() {
270 // forward select method to the internal input / textarea element
271 this.$.input.focus();
272 },
273
274 setSelectionRange: function(selectionStart, selectionEnd, selectionDirecti on) {
275 // forward setSelectionRange method to the internal input / textarea ele ment
276 this.$.input.setSelectionRange(selectionStart, selectionEnd, selectionDi rection);
277 },
278
279 setRangeText: function(replacement, start, end, selectMode) {
280 // forward setRangeText method to the internal input element
281 if (!this.multiline) {
282 this.$.input.setRangeText(replacement, start, end, selectMode);
283 }
284 },
285
286 stepDown: function(n) {
287 // forward stepDown method to the internal input element
288 if (!this.multiline) {
289 this.$.input.stepDown(n);
290 }
291 },
292
293 stepUp: function(n) {
294 // forward stepUp method to the internal input element
295 if (!this.multiline) {
296 this.$.input.stepUp(n);
297 }
298 },
299
300 get willValidate() {
301 return this.$.input.willValidate;
302 },
303
304 get validity() {
305 return this.$.input.validity;
306 },
307
308 get validationMessage() {
309 return this.$.input.validationMessage;
310 },
311
312 checkValidity: function() {
313 var r = this.$.input.checkValidity();
314 this.updateValidity_();
315 return r;
316 },
317
318 setCustomValidity: function(message) {
319 this.$.input.setCustomValidity(message);
320 this.updateValidity_();
321 }
322
323 });
324
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698