Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3036)

Unified Diff: appengine/chromium_rietveld/new_static/components/cr-keyboard.html

Issue 1001723003: Create a common directory of widgets and css. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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>

Powered by Google App Engine
This is Rietveld 408576698