3 Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
4 This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
5 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
6 The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
7 Code distributed by Google as part of the polymer project is also
8 subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
11 <link rel=
"import" href=
"../polymer/polymer.html">
12 <link rel=
"import" href=
"../paper-styles/paper-styles.html">
13 <link rel=
"import" href=
"paper-input-addon-behavior.html">
16 `<paper-input-char-counter>` is a character counter for use with `<paper-input-container>`. It
17 shows the number of characters entered in the input and the max length if it is specified.
19 <paper-input-container>
20 <input is="iron-input" maxlength="20">
21 <paper-input-char-counter></paper-input-char-counter>
22 </paper-input-container>
26 The following mixin is available for styling:
28 Custom property | Description | Default
29 ----------------|-------------|----------
30 `--paper-input-char-counter` | Mixin applied to the element | `{}`
32 <dom-module id=
"paper-input-char-counter">
37 display: inline-block;
40 @apply(--paper-font-caption);
41 @apply(--paper-input-char-counter);
48 <span>[[_charCounterStr]]
</span>
60 is
: 'paper-input-char-counter',
63 Polymer
.PaperInputAddonBehavior
75 update: function(state
) {
76 if (!state
.inputElement
) {
80 state
.value
= state
.value
|| '';
82 // Account for the textarea's new lines.
83 var str
= state
.value
.replace(/(\r\n|\n|\r)/g, '--').length
;
85 if (state
.inputElement
.hasAttribute('maxlength')) {
86 str
+= '/' + state
.inputElement
.getAttribute('maxlength');
88 this._charCounterStr
= str
;