Index: third_party/polymer/v0_8/components/neon-animation/neon-animation-behavior.html |
diff --git a/third_party/polymer/v0_8/components/neon-animation/neon-animation-behavior.html b/third_party/polymer/v0_8/components/neon-animation/neon-animation-behavior.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f3b9bc6a6039201eb9f088785ae45ea93d54e387 |
--- /dev/null |
+++ b/third_party/polymer/v0_8/components/neon-animation/neon-animation-behavior.html |
@@ -0,0 +1,88 @@ |
+<!-- |
+@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="../iron-meta/iron-meta.html"> |
+ |
+<script> |
+ |
+ /** |
+ * Use `Polymer.NeonAnimationBehavior` to implement an animation. |
+ * @polymerBehavior |
+ */ |
+ Polymer.NeonAnimationBehavior = { |
+ |
+ properties: { |
+ |
+ /** |
+ * Defines the animation timing. |
+ */ |
+ animationTiming: { |
+ type: Object, |
+ value: function() { |
+ return { |
+ duration: 500, |
+ easing: 'cubic-bezier(0.4, 0, 0.2, 1)', |
+ fill: 'both' |
+ } |
+ } |
+ } |
+ |
+ }, |
+ |
+ registered: function() { |
+ new Polymer.IronMeta({type: 'animation', key: this.is, value: this.constructor}); |
+ }, |
+ |
+ /** |
+ * Do any animation configuration here. |
+ */ |
+ // configure: function(config) { |
+ // }, |
+ |
+ /** |
+ * Returns the animation timing by mixing in properties from `config` to the defaults defined |
+ * by the animation. |
+ */ |
+ timingFromConfig: function(config) { |
+ if (config.timing) { |
+ for (var property in config.timing) { |
+ this.animationTiming[property] = config.timing[property]; |
+ } |
+ } |
+ return this.animationTiming; |
+ }, |
+ |
+ /** |
+ * Sets `transform` and `transformOrigin` properties along with the prefixed versions. |
+ */ |
+ setPrefixedProperty: function(node, property, value) { |
+ var map = { |
+ 'transform': ['webkitTransform'], |
+ 'transformOrigin': ['mozTransformOrigin', 'webkitTransformOrigin'] |
+ }; |
+ var prefixes = map[property]; |
+ for (var prefix, index = 0; prefix = prefixes[index]; index++) { |
+ node.style[prefix] = value; |
+ } |
+ node.style[property] = value; |
+ }, |
+ |
+ /** |
+ * Called when the animation finishes. |
+ */ |
+ complete: function() { |
+ // FIXME not sure about non-bubbling event |
+ this.fire(this.animationEndEvent, null, {bubbles: false}); |
+ } |
+ |
+ }; |
+ |
+</script> |