Index: appengine/chromium_rietveld/new_static/components/cr-keyboard.html |
diff --git a/appengine/chromium_rietveld/new_static/components/cr-keyboard.html b/appengine/chromium_rietveld/new_static/components/cr-keyboard.html |
deleted file mode 100644 |
index bea61c6c8d899f57e5bf0c586f270fcf77968ef5..0000000000000000000000000000000000000000 |
--- a/appengine/chromium_rietveld/new_static/components/cr-keyboard.html |
+++ /dev/null |
@@ -1,139 +0,0 @@ |
-<!-- Copyright (c) 2014 The Chromium Authors. All rights reserved. |
-Use of this source code is governed by a BSD-style license that can be |
-found in the LICENSE file. --> |
- |
-<!-- |
- Use to add keyboard shortcuts to your components. The last inserted component |
- will always receive the events (and others will not). This prevents the |
- common bug where you have two listeners and multiple actions are taken for |
- the same keyboard shortcut. |
- |
- <cr-keyboard |
- on-key-j="{{ forward }}" |
- on-key-k="{{ backwards }}" |
- on-key-delete="{{ remove }}"></cr-keyboard> |
- |
- or |
- |
- keyboard.addEventListener("key-left", previousSlide); |
- keyboard.addEventListener("key-right", nextSlide); |
- |
- The "global" attribute configures this keyboard listener to be a global key |
- binding which means the <cr-keyboard> instances is assumed to exist all the |
- time but only apply when a non-editable element is focused and no dialogs |
- are open. |
---> |
-<polymer-element name="cr-keyboard" attributes="global"> |
- <template> |
- <style> |
- :host { display: none; } |
- </style> |
- </template> |
- <script> |
- (function() { |
- var instances = []; |
- |
- // TODO(esprehn): Remove once M35 is stable. |
- var globalSupported = !navigator.userAgent.contains("Chrome/35."); |
- |
- Polymer("cr-keyboard", { |
- created: function() { |
- this.global = false; |
- }, |
- attached: function() { |
- instances.unshift(this); |
- }, |
- detached: function() { |
- var i = instances.indexOf(this); |
- if (i >= 0) |
- instances.splice(i, 1); |
- }, |
- isActive: function() { |
- if (!this.global) |
- return true; |
- if (!globalSupported) |
- return false; |
- // TODO(esprehn): This doesn't support contenteditable, but we don't use |
- // that yet so there's no need to add the complexity. |
- var activeElement = document.querySelector("* /deep/ :focus"); |
- if (activeElement && (activeElement.tagName == "INPUT" || activeElement.tagName == "TEXTAREA")) |
- return false; |
- var activeDialog = document.querySelector("* /deep/ dialog[open]"); |
- if (activeDialog) |
- return activeDialog.contains(this); |
- return true; |
- }, |
- }); |
- |
- var KEY_CODES = { |
- 8: "delete", |
- 9: "tab", |
- 20: "space", |
- 27: "escape", |
- }; |
- |
- var KEY_NAMES = { |
- "!": "exclamation", |
- "@": "at", |
- "#": "pound", |
- "$": "dollar", |
- "%": "percent", |
- "^": "caret", |
- "&": "amp", |
- "*": "asterisk", |
- "(": "open-paren", |
- ")": "close-paren", |
- "-": "dash", |
- "_": "underscore", |
- "+": "plus", |
- "=": "equals", |
- "{": "open-brace", |
- "}": "close-brace", |
- "[": "open-bracket", |
- "]": "close-bracket", |
- "|": "pipe", |
- "\\": "backslash", |
- "\"": "double-quote", |
- "'": "single-quote", |
- ";": "semi-colon", |
- ":": "colon", |
- "?": "question-mark", |
- "/": "forward-slash", |
- ">": "greater-than", |
- ".": "period", |
- "<": "less-than", |
- "`": "backtick", |
- "~": "tilde", |
- }; |
- |
- function convertKey(event) { |
- var key = event.keyIdentifier || event.key; |
- if (key.indexOf("U+") != -1) { |
- var code = parseInt(key.replace("U+", "0x"), 16); |
- var chr = String.fromCharCode(code).toLowerCase() |
- if (KEY_CODES[code]) |
- return KEY_CODES[code]; |
- if (KEY_NAMES[chr]) |
- return KEY_NAMES[chr]; |
- return chr; |
- } |
- if (KEY_NAMES[key]) |
- return KEY_NAMES[key]; |
- return key.toLowerCase(); |
- } |
- |
- function handleKeyDown(event) { |
- var key = convertKey(event); |
- if (!key) |
- return; |
- var instance = instances.find(function(instance) { |
- return instance.isActive() && instance.hasAttribute("on-key-" + key); |
- }); |
- if (instance && instance.fire("key-" + key, event).defaultPrevented) |
- event.preventDefault(); |
- } |
- |
- window.addEventListener("keydown", handleKeyDown); |
- })(); |
- </script> |
-</polymer-element> |