11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci Polymer('core-transition', { 31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci type: 'transition', 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Run the animation. 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @method go 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @param {Node} node The node to apply the animation on 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @param {Object} state State info 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci go: function(node, state) { 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.complete(node); 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci }, 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Set up the animation. This may include injecting a stylesheet, 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * applying styles, creating a web animations object, etc.. This 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @method setup 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @param {Node} node The animated node 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci setup: function(node) { 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci }, 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Tear down the animation. 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @method teardown 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @param {Node} node The animated node 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci teardown: function(node) { 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci }, 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Called when the animation completes. This function also fires the 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * `core-transitionend` event. 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @method complete 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @param {Node} node The animated node 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci complete: function(node) { 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.fire('core-transitionend', null, node); 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci }, 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Utility function to listen to an event on a node once. 491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * 501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @method listenOnce 511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @param {Node} node The animated node 521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @param {string} event Name of an event 531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @param {Function} fn Event handler 541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @param {Array} args Additional arguments to pass to `fn` 551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci listenOnce: function(node, event, fn, args) { 571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci var self = this; 581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci var listener = function() { 591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci fn.apply(self, args); 601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci node.removeEventListener(event, listener, false); 611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci node.addEventListener(event, listener, false); 631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 651320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci }); 661320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci