| Index: third_party/polymer/v0_8/components-chromium/polymer/src/standard/events-extracted.js
|
| diff --git a/third_party/polymer/v0_8/components-chromium/polymer/src/standard/events-extracted.js b/third_party/polymer/v0_8/components-chromium/polymer/src/standard/events-extracted.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..4f6a3e795cb77fe3d21fd945569c5e16d3f48f10
|
| --- /dev/null
|
| +++ b/third_party/polymer/v0_8/components-chromium/polymer/src/standard/events-extracted.js
|
| @@ -0,0 +1,84 @@
|
| +
|
| +
|
| + /**
|
| + * Supports `listeners` and `keyPresses` objects.
|
| + *
|
| + * Example:
|
| + *
|
| + * using('Base', function(Base) {
|
| + *
|
| + * Polymer({
|
| + *
|
| + * listeners: {
|
| + * // `click` events on the host are delegated to `clickHandler`
|
| + * 'click': 'clickHandler'
|
| + * },
|
| + *
|
| + * keyPresses: {
|
| + * // 'ESC' key presses are delegated to `escHandler`
|
| + * Base.ESC_KEY: 'escHandler'
|
| + * },
|
| + *
|
| + * ...
|
| + *
|
| + * });
|
| + *
|
| + * });
|
| + *
|
| + * @class standard feature: events
|
| + *
|
| + */
|
| +
|
| + Polymer.Base._addFeature({
|
| +
|
| + listeners: {},
|
| +
|
| + _listenListeners: function(listeners) {
|
| + var node, name, key;
|
| + for (key in listeners) {
|
| + if (key.indexOf('.') < 0) {
|
| + node = this;
|
| + name = key;
|
| + } else {
|
| + name = key.split('.');
|
| + node = this.$[name[0]];
|
| + name = name[1];
|
| + }
|
| + this.listen(node, name, listeners[key]);
|
| + }
|
| + },
|
| +
|
| + listen: function(node, eventName, methodName) {
|
| + var host = this;
|
| + var handler = function(e) {
|
| + if (host[methodName]) {
|
| + host[methodName](e, e.detail);
|
| + } else {
|
| + console.warn('[%s].[%s]: event handler [%s] is null in scope (%o)',
|
| + node.localName, eventName, methodName, host);
|
| + }
|
| + };
|
| + switch (eventName) {
|
| + case 'tap':
|
| + case 'track':
|
| + Polymer.Gestures.add(eventName, node, handler);
|
| + break;
|
| +
|
| + default:
|
| + node.addEventListener(eventName, handler);
|
| + break;
|
| + }
|
| + },
|
| +
|
| + keyCodes: {
|
| + ESC_KEY: 27,
|
| + ENTER_KEY: 13,
|
| + LEFT: 37,
|
| + UP: 38,
|
| + RIGHT: 39,
|
| + DOWN: 40,
|
| + SPACE: 32
|
| + }
|
| +
|
| + });
|
| +
|
|
|