Index: third_party/polymer/v0_8/components-chromium/neon-animation/neon-animation-behavior-extracted.js |
diff --git a/third_party/polymer/v0_8/components-chromium/neon-animation/neon-animation-behavior-extracted.js b/third_party/polymer/v0_8/components-chromium/neon-animation/neon-animation-behavior-extracted.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cb52f5167ee1871e24d315d6b92638b144554718 |
--- /dev/null |
+++ b/third_party/polymer/v0_8/components-chromium/neon-animation/neon-animation-behavior-extracted.js |
@@ -0,0 +1,74 @@ |
+ |
+ |
+ /** |
+ * 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}); |
+ } |
+ |
+ }; |
+ |