Blame view

bower_components/paper-input/paper-input-char-counter.html 2.16 KB
73bcce88   luigser   COMPONENTS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
  <!--
  @license
  Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
  This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
  The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
  The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
  Code distributed by Google as part of the polymer project is also
  subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
  -->
  
  <link rel="import" href="../polymer/polymer.html">
  <link rel="import" href="../paper-styles/paper-styles.html">
  <link rel="import" href="paper-input-addon-behavior.html">
  
  <!--
  `<paper-input-char-counter>` is a character counter for use with `<paper-input-container>`. It
  shows the number of characters entered in the input and the max length if it is specified.
  
      <paper-input-container>
        <input is="iron-input" maxlength="20">
        <paper-input-char-counter></paper-input-char-counter>
      </paper-input-container>
  
  ### Styling
  
  The following mixin is available for styling:
  
  Custom property | Description | Default
  ----------------|-------------|----------
  `--paper-input-char-counter` | Mixin applied to the element | `{}`
  -->
  <dom-module id="paper-input-char-counter">
e619a3b0   Luigi Serra   Controllet cross ...
33
    <template>
73bcce88   luigser   COMPONENTS
34
  
e619a3b0   Luigi Serra   Controllet cross ...
35
36
37
38
      <style>
        :host {
          display: inline-block;
          float: right;
73bcce88   luigser   COMPONENTS
39
  
e619a3b0   Luigi Serra   Controllet cross ...
40
41
42
43
          @apply(--paper-font-caption);
          @apply(--paper-input-char-counter);
        }
      </style>
73bcce88   luigser   COMPONENTS
44
45
46
47
  
      <span>[[_charCounterStr]]</span>
  
    </template>
73bcce88   luigser   COMPONENTS
48
49
50
  </dom-module>
  
  <script>
73bcce88   luigser   COMPONENTS
51
    Polymer({
73bcce88   luigser   COMPONENTS
52
53
54
55
56
57
58
      is: 'paper-input-char-counter',
  
      behaviors: [
        Polymer.PaperInputAddonBehavior
      ],
  
      properties: {
73bcce88   luigser   COMPONENTS
59
60
61
62
        _charCounterStr: {
          type: String,
          value: '0'
        }
73bcce88   luigser   COMPONENTS
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
      },
  
      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;
  
        if (state.inputElement.hasAttribute('maxlength')) {
          str += '/' + state.inputElement.getAttribute('maxlength');
        }
        this._charCounterStr = str;
      }
73bcce88   luigser   COMPONENTS
80
    });
73bcce88   luigser   COMPONENTS
81
  </script>