Blame view

bower_components/iron-a11y-keys-behavior/demo/x-key-aware.html 2.11 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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
  <!--
  @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="../iron-a11y-keys-behavior.html">
  
  <dom-module id="x-key-aware">
    <style>
      :host {
        display: block;
        position: relative;
      }
  
      pre {
        color: var(--google-blue-700);
      }
      
      .keys {
        line-height: 25px;
      }
  
      .keys span {
        cursor: default;
        background-color: var(--google-grey-100);
        border: 1px solid var(--google-grey-300);
        padding: 1px 5px;
        border-radius: 5px;
      }
    </style>
    <template>
      <h4>Press any of these keys</h4>
      <p class="keys">
        <template is="dom-repeat" items="[[boundKeys]]">
          <span>{{item}}</span>
        </template>
      </p>
      <pre>[[pressed]]</pre>
    </template>
  </dom-module>
  
  <script>
    Polymer({
      is: 'x-key-aware',
  
      behaviors: [
        Polymer.IronA11yKeysBehavior
      ],
  
      properties: {
        pressed: {
          type: String,
          readOnly: true,
          value: ''
        },
  
        boundKeys: {
          type: Array,
          value: function() {
            return Object.keys(this.keyBindings).join(' ').split(' ');
          }
        },
  
        keyEventTarget: {
          type: Object,
          value: function() {
            return document.body;
          }
        }
      },
  
      keyBindings: {
        '* pageup pagedown left right down up shift+a alt+a home end space enter': '_updatePressed'
      },
  
      _updatePressed: function(event) {
        console.log(event.detail);
  
        this._setPressed(
          this.pressed + event.detail.combo + ' pressed!\n'
        );
      }
    });
  </script>