Index: third_party/polymer/v0_8/components/neon-animation/animations/cascaded-animation.html |
diff --git a/third_party/polymer/v0_8/components/neon-animation/animations/cascaded-animation.html b/third_party/polymer/v0_8/components/neon-animation/animations/cascaded-animation.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9e089e99b5940f51b1c116cc8235e047e9a60780 |
--- /dev/null |
+++ b/third_party/polymer/v0_8/components/neon-animation/animations/cascaded-animation.html |
@@ -0,0 +1,84 @@ |
+<!-- |
+@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="../neon-animation-behavior.html"> |
+<link rel="import" href="../web-animations.html"> |
+ |
+<!-- |
+`<cascaded-animation>` applies an animation on an array of elements with a delay between each. |
+the delay defaults to 50ms. |
+ |
+Configuration: |
+``` |
+{ |
+ name: 'cascaded-animation', |
+ animation: <animation-name>, |
+ nodes: <array-of-nodes>, |
+ nodedelay: <node-delay-in-ms>, |
+ timing: <animation-timing> |
+} |
+``` |
+--> |
+ |
+<script> |
+ |
+ Polymer({ |
+ |
+ is: 'cascaded-animation', |
+ |
+ behaviors: [ |
+ Polymer.NeonAnimationBehavior |
+ ], |
+ |
+ properties: { |
+ |
+ _animationMeta: { |
+ type: Object, |
+ value: function() { |
+ return new Polymer.IronMeta({type: 'animation'}); |
+ } |
+ } |
+ |
+ }, |
+ |
+ configure: function(config) { |
+ var animationConstructor = this._animationMeta.byKey(config.animation); |
+ if (!animationConstructor) { |
+ console.warn(this.is + ':', 'constructor for', config.animation, 'not found!'); |
+ return; |
+ } |
+ |
+ var nodes = config.nodes; |
+ var effects = []; |
+ var nodeDelay = config.nodeDelay || 50; |
+ |
+ config.timing = config.timing || {}; |
+ config.timing.delay = config.timing.delay || 0; |
+ |
+ var oldDelay = config.timing.delay; |
+ for (var node, index = 0; node = nodes[index]; index++) { |
+ config.timing.delay += nodeDelay; |
+ config.node = node; |
+ |
+ var animation = new animationConstructor(); |
+ var effect = animation.configure(config); |
+ |
+ effects.push(effect); |
+ } |
+ config.timing.delay = oldDelay; |
+ |
+ this._effect = new GroupEffect(effects); |
+ return this._effect; |
+ } |
+ |
+ }); |
+ |
+</script> |