Index: third_party/polymer/v0_8/components-chromium/paper-input/paper-input-char-counter-extracted.js |
diff --git a/third_party/polymer/v0_8/components-chromium/paper-input/paper-input-char-counter-extracted.js b/third_party/polymer/v0_8/components-chromium/paper-input/paper-input-char-counter-extracted.js |
index ad120f8a9cafe6a493251cd39725bde1d6de954b..673f5e79bf900bea273f12f1a0569048f6213f9b 100644 |
--- a/third_party/polymer/v0_8/components-chromium/paper-input/paper-input-char-counter-extracted.js |
+++ b/third_party/polymer/v0_8/components-chromium/paper-input/paper-input-char-counter-extracted.js |
@@ -6,48 +6,33 @@ |
is: 'paper-input-char-counter', |
- enableCustomStyleProperties: true, |
- |
- hostAttributes: { |
- 'add-on': '' |
- }, |
+ behaviors: [ |
+ Polymer.PaperInputAddonBehavior |
+ ], |
properties: { |
- /** |
- * The associated input element. |
- */ |
- inputElement: { |
- type: Object |
- }, |
- |
- /** |
- * The current value of the input element. |
- */ |
- value: { |
- type: String |
- }, |
- |
- /** |
- * The character counter string. |
- */ |
- charCounter: { |
- computed: '_computeCharCounter(inputElement,value)', |
- type: String |
+ _charCounterStr: { |
+ type: String, |
+ value: '0' |
} |
}, |
- attached: function() { |
- this.fire('addon-attached'); |
- }, |
+ update: function(state) { |
+ if (!state.inputElement) { |
+ return; |
+ } |
+ |
+ state.value = state.value || ''; |
+ |
+ // Account for the textarea's new lines. |
+ var str = state.value.replace(/(\r\n|\n|\r)/g, '--').length; |
- _computeCharCounter: function(inputElement,value) { |
- var str = value.length; |
- if (inputElement.hasAttribute('maxlength')) { |
- str += '/' + inputElement.maxLength; |
+ if (state.inputElement.hasAttribute('maxlength')) { |
+ str += '/' + state.inputElement.getAttribute('maxlength'); |
} |
- return str; |
+ this._charCounterStr = str; |
} |
}); |