Index: polymer_1.2.3/bower_components/paper-behaviors/paper-ripple-behavior.html |
diff --git a/polymer_1.2.3/bower_components/paper-behaviors/paper-ripple-behavior.html b/polymer_1.2.3/bower_components/paper-behaviors/paper-ripple-behavior.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1d63b75e89f74c64a936fa937c70c53186bc8a96 |
--- /dev/null |
+++ b/polymer_1.2.3/bower_components/paper-behaviors/paper-ripple-behavior.html |
@@ -0,0 +1,130 @@ |
+<!-- |
+@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-ripple/paper-ripple.html"> |
+ |
+<script> |
+ |
+ /** |
+ * `Polymer.PaperRippleBehavior` dynamically implements a ripple |
+ * when the element has focus via pointer or keyboard. |
+ * |
+ * NOTE: This behavior is intended to be used in conjunction with and after |
+ * `Polymer.IronButtonState` and `Polymer.IronControlState`. |
+ * |
+ * @polymerBehavior Polymer.PaperRippleBehavior |
+ */ |
+ Polymer.PaperRippleBehavior = { |
+ |
+ properties: { |
+ /** |
+ * If true, the element will not produce a ripple effect when interacted |
+ * with via the pointer. |
+ */ |
+ noink: { |
+ type: Boolean, |
+ observer: '_noinkChanged' |
+ }, |
+ |
+ /** |
+ * @type {Element|undefined} |
+ */ |
+ _rippleContainer: { |
+ type: Object, |
+ } |
+ }, |
+ |
+ /** |
+ * Ensures a `<paper-ripple>` element is available when the element is |
+ * focused. |
+ */ |
+ _buttonStateChanged: function() { |
+ if (this.focused) { |
+ this.ensureRipple(); |
+ } |
+ }, |
+ |
+ /** |
+ * In addition to the functionality provided in `IronButtonState`, ensures |
+ * a ripple effect is created when the element is in a `pressed` state. |
+ */ |
+ _downHandler: function(event) { |
+ Polymer.IronButtonStateImpl._downHandler.call(this, event); |
+ if (this.pressed) { |
+ this.ensureRipple(event); |
+ } |
+ }, |
+ |
+ /** |
+ * Ensures this element contains a ripple effect. For startup efficiency |
+ * the ripple effect is dynamically on demand when needed. |
+ * @param {!Event=} optTriggeringEvent (optional) event that triggered the |
+ * ripple. |
+ */ |
+ ensureRipple: function(optTriggeringEvent) { |
+ if (!this.hasRipple()) { |
+ this._ripple = this._createRipple(); |
+ this._ripple.noink = this.noink; |
+ var rippleContainer = this._rippleContainer || this.root; |
+ if (rippleContainer) { |
+ Polymer.dom(rippleContainer).appendChild(this._ripple); |
+ } |
+ if (optTriggeringEvent) { |
+ // Check if the event happened inside of the ripple container |
+ // Fall back to host instead of the root because distributed text |
+ // nodes are not valid event targets |
+ var domContainer = Polymer.dom(this._rippleContainer || this); |
+ var target = Polymer.dom(optTriggeringEvent).rootTarget; |
+ if (domContainer.deepContains( /** @type {Node} */(target))) { |
+ this._ripple.uiDownAction(optTriggeringEvent); |
+ } |
+ } |
+ } |
+ }, |
+ |
+ /** |
+ * Returns the `<paper-ripple>` element used by this element to create |
+ * ripple effects. The element's ripple is created on demand, when |
+ * necessary, and calling this method will force the |
+ * ripple to be created. |
+ */ |
+ getRipple: function() { |
+ this.ensureRipple(); |
+ return this._ripple; |
+ }, |
+ |
+ /** |
+ * Returns true if this element currently contains a ripple effect. |
+ * @return {boolean} |
+ */ |
+ hasRipple: function() { |
+ return Boolean(this._ripple); |
+ }, |
+ |
+ /** |
+ * Create the element's ripple effect via creating a `<paper-ripple>`. |
+ * Override this method to customize the ripple element. |
+ * @return {!PaperRippleElement} Returns a `<paper-ripple>` element. |
+ */ |
+ _createRipple: function() { |
+ return /** @type {!PaperRippleElement} */ ( |
+ document.createElement('paper-ripple')); |
+ }, |
+ |
+ _noinkChanged: function(noink) { |
+ if (this.hasRipple()) { |
+ this._ripple.noink = noink; |
+ } |
+ } |
+ |
+ }; |
+ |
+</script> |