From 1354d17270961fff662d40f90521223f8fd0d73b Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 14 Aug 2012 18:59:10 +0400 Subject: update dojo to 1.7.3 --- lib/dojo/fx.js | 402 +-------------------------------------------------------- 1 file changed, 2 insertions(+), 400 deletions(-) (limited to 'lib/dojo/fx.js') diff --git a/lib/dojo/fx.js b/lib/dojo/fx.js index 60782accb..53c611e2e 100644 --- a/lib/dojo/fx.js +++ b/lib/dojo/fx.js @@ -4,403 +4,5 @@ see: http://dojotoolkit.org/license for details */ - -if(!dojo._hasResource["dojo.fx"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojo.fx"] = true; -dojo.provide("dojo.fx"); -dojo.require("dojo.fx.Toggler"); - - -/*===== -dojo.fx = { - // summary: Effects library on top of Base animations -}; -=====*/ -(function(){ - - var d = dojo, - _baseObj = { - _fire: function(evt, args){ - if(this[evt]){ - this[evt].apply(this, args||[]); - } - return this; - } - }; - - var _chain = function(animations){ - this._index = -1; - this._animations = animations||[]; - this._current = this._onAnimateCtx = this._onEndCtx = null; - - this.duration = 0; - d.forEach(this._animations, function(a){ - this.duration += a.duration; - if(a.delay){ this.duration += a.delay; } - }, this); - }; - d.extend(_chain, { - _onAnimate: function(){ - this._fire("onAnimate", arguments); - }, - _onEnd: function(){ - d.disconnect(this._onAnimateCtx); - d.disconnect(this._onEndCtx); - this._onAnimateCtx = this._onEndCtx = null; - if(this._index + 1 == this._animations.length){ - this._fire("onEnd"); - }else{ - // switch animations - this._current = this._animations[++this._index]; - this._onAnimateCtx = d.connect(this._current, "onAnimate", this, "_onAnimate"); - this._onEndCtx = d.connect(this._current, "onEnd", this, "_onEnd"); - this._current.play(0, true); - } - }, - play: function(/*int?*/ delay, /*Boolean?*/ gotoStart){ - if(!this._current){ this._current = this._animations[this._index = 0]; } - if(!gotoStart && this._current.status() == "playing"){ return this; } - var beforeBegin = d.connect(this._current, "beforeBegin", this, function(){ - this._fire("beforeBegin"); - }), - onBegin = d.connect(this._current, "onBegin", this, function(arg){ - this._fire("onBegin", arguments); - }), - onPlay = d.connect(this._current, "onPlay", this, function(arg){ - this._fire("onPlay", arguments); - d.disconnect(beforeBegin); - d.disconnect(onBegin); - d.disconnect(onPlay); - }); - if(this._onAnimateCtx){ - d.disconnect(this._onAnimateCtx); - } - this._onAnimateCtx = d.connect(this._current, "onAnimate", this, "_onAnimate"); - if(this._onEndCtx){ - d.disconnect(this._onEndCtx); - } - this._onEndCtx = d.connect(this._current, "onEnd", this, "_onEnd"); - this._current.play.apply(this._current, arguments); - return this; - }, - pause: function(){ - if(this._current){ - var e = d.connect(this._current, "onPause", this, function(arg){ - this._fire("onPause", arguments); - d.disconnect(e); - }); - this._current.pause(); - } - return this; - }, - gotoPercent: function(/*Decimal*/percent, /*Boolean?*/ andPlay){ - this.pause(); - var offset = this.duration * percent; - this._current = null; - d.some(this._animations, function(a){ - if(a.duration <= offset){ - this._current = a; - return true; - } - offset -= a.duration; - return false; - }); - if(this._current){ - this._current.gotoPercent(offset / this._current.duration, andPlay); - } - return this; - }, - stop: function(/*boolean?*/ gotoEnd){ - if(this._current){ - if(gotoEnd){ - for(; this._index + 1 < this._animations.length; ++this._index){ - this._animations[this._index].stop(true); - } - this._current = this._animations[this._index]; - } - var e = d.connect(this._current, "onStop", this, function(arg){ - this._fire("onStop", arguments); - d.disconnect(e); - }); - this._current.stop(); - } - return this; - }, - status: function(){ - return this._current ? this._current.status() : "stopped"; - }, - destroy: function(){ - if(this._onAnimateCtx){ d.disconnect(this._onAnimateCtx); } - if(this._onEndCtx){ d.disconnect(this._onEndCtx); } - } - }); - d.extend(_chain, _baseObj); - - dojo.fx.chain = function(/*dojo.Animation[]*/ animations){ - // summary: - // Chain a list of `dojo.Animation`s to run in sequence - // - // description: - // Return a `dojo.Animation` which will play all passed - // `dojo.Animation` instances in sequence, firing its own - // synthesized events simulating a single animation. (eg: - // onEnd of this animation means the end of the chain, - // not the individual animations within) - // - // example: - // Once `node` is faded out, fade in `otherNode` - // | dojo.fx.chain([ - // | dojo.fadeIn({ node:node }), - // | dojo.fadeOut({ node:otherNode }) - // | ]).play(); - // - return new _chain(animations) // dojo.Animation - }; - - var _combine = function(animations){ - this._animations = animations||[]; - this._connects = []; - this._finished = 0; - - this.duration = 0; - d.forEach(animations, function(a){ - var duration = a.duration; - if(a.delay){ duration += a.delay; } - if(this.duration < duration){ this.duration = duration; } - this._connects.push(d.connect(a, "onEnd", this, "_onEnd")); - }, this); - - this._pseudoAnimation = new d.Animation({curve: [0, 1], duration: this.duration}); - var self = this; - d.forEach(["beforeBegin", "onBegin", "onPlay", "onAnimate", "onPause", "onStop", "onEnd"], - function(evt){ - self._connects.push(d.connect(self._pseudoAnimation, evt, - function(){ self._fire(evt, arguments); } - )); - } - ); - }; - d.extend(_combine, { - _doAction: function(action, args){ - d.forEach(this._animations, function(a){ - a[action].apply(a, args); - }); - return this; - }, - _onEnd: function(){ - if(++this._finished > this._animations.length){ - this._fire("onEnd"); - } - }, - _call: function(action, args){ - var t = this._pseudoAnimation; - t[action].apply(t, args); - }, - play: function(/*int?*/ delay, /*Boolean?*/ gotoStart){ - this._finished = 0; - this._doAction("play", arguments); - this._call("play", arguments); - return this; - }, - pause: function(){ - this._doAction("pause", arguments); - this._call("pause", arguments); - return this; - }, - gotoPercent: function(/*Decimal*/percent, /*Boolean?*/ andPlay){ - var ms = this.duration * percent; - d.forEach(this._animations, function(a){ - a.gotoPercent(a.duration < ms ? 1 : (ms / a.duration), andPlay); - }); - this._call("gotoPercent", arguments); - return this; - }, - stop: function(/*boolean?*/ gotoEnd){ - this._doAction("stop", arguments); - this._call("stop", arguments); - return this; - }, - status: function(){ - return this._pseudoAnimation.status(); - }, - destroy: function(){ - d.forEach(this._connects, dojo.disconnect); - } - }); - d.extend(_combine, _baseObj); - - dojo.fx.combine = function(/*dojo.Animation[]*/ animations){ - // summary: - // Combine a list of `dojo.Animation`s to run in parallel - // - // description: - // Combine an array of `dojo.Animation`s to run in parallel, - // providing a new `dojo.Animation` instance encompasing each - // animation, firing standard animation events. - // - // example: - // Fade out `node` while fading in `otherNode` simultaneously - // | dojo.fx.combine([ - // | dojo.fadeIn({ node:node }), - // | dojo.fadeOut({ node:otherNode }) - // | ]).play(); - // - // example: - // When the longest animation ends, execute a function: - // | var anim = dojo.fx.combine([ - // | dojo.fadeIn({ node: n, duration:700 }), - // | dojo.fadeOut({ node: otherNode, duration: 300 }) - // | ]); - // | dojo.connect(anim, "onEnd", function(){ - // | // overall animation is done. - // | }); - // | anim.play(); // play the animation - // - return new _combine(animations); // dojo.Animation - }; - - dojo.fx.wipeIn = function(/*Object*/ args){ - // summary: - // Expand a node to it's natural height. - // - // description: - // Returns an animation that will expand the - // node defined in 'args' object from it's current height to - // it's natural height (with no scrollbar). - // Node must have no margin/border/padding. - // - // args: Object - // A hash-map of standard `dojo.Animation` constructor properties - // (such as easing: node: duration: and so on) - // - // example: - // | dojo.fx.wipeIn({ - // | node:"someId" - // | }).play() - var node = args.node = d.byId(args.node), s = node.style, o; - - var anim = d.animateProperty(d.mixin({ - properties: { - height: { - // wrapped in functions so we wait till the last second to query (in case value has changed) - start: function(){ - // start at current [computed] height, but use 1px rather than 0 - // because 0 causes IE to display the whole panel - o = s.overflow; - s.overflow = "hidden"; - if(s.visibility == "hidden" || s.display == "none"){ - s.height = "1px"; - s.display = ""; - s.visibility = ""; - return 1; - }else{ - var height = d.style(node, "height"); - return Math.max(height, 1); - } - }, - end: function(){ - return node.scrollHeight; - } - } - } - }, args)); - - d.connect(anim, "onEnd", function(){ - s.height = "auto"; - s.overflow = o; - }); - - return anim; // dojo.Animation - }; - - dojo.fx.wipeOut = function(/*Object*/ args){ - // summary: - // Shrink a node to nothing and hide it. - // - // description: - // Returns an animation that will shrink node defined in "args" - // from it's current height to 1px, and then hide it. - // - // args: Object - // A hash-map of standard `dojo.Animation` constructor properties - // (such as easing: node: duration: and so on) - // - // example: - // | dojo.fx.wipeOut({ node:"someId" }).play() - - var node = args.node = d.byId(args.node), s = node.style, o; - - var anim = d.animateProperty(d.mixin({ - properties: { - height: { - end: 1 // 0 causes IE to display the whole panel - } - } - }, args)); - - d.connect(anim, "beforeBegin", function(){ - o = s.overflow; - s.overflow = "hidden"; - s.display = ""; - }); - d.connect(anim, "onEnd", function(){ - s.overflow = o; - s.height = "auto"; - s.display = "none"; - }); - - return anim; // dojo.Animation - }; - - dojo.fx.slideTo = function(/*Object*/ args){ - // summary: - // Slide a node to a new top/left position - // - // description: - // Returns an animation that will slide "node" - // defined in args Object from its current position to - // the position defined by (args.left, args.top). - // - // args: Object - // A hash-map of standard `dojo.Animation` constructor properties - // (such as easing: node: duration: and so on). Special args members - // are `top` and `left`, which indicate the new position to slide to. - // - // example: - // | dojo.fx.slideTo({ node: node, left:"40", top:"50", units:"px" }).play() - - var node = args.node = d.byId(args.node), - top = null, left = null; - - var init = (function(n){ - return function(){ - var cs = d.getComputedStyle(n); - var pos = cs.position; - top = (pos == 'absolute' ? n.offsetTop : parseInt(cs.top) || 0); - left = (pos == 'absolute' ? n.offsetLeft : parseInt(cs.left) || 0); - if(pos != 'absolute' && pos != 'relative'){ - var ret = d.position(n, true); - top = ret.y; - left = ret.x; - n.style.position="absolute"; - n.style.top=top+"px"; - n.style.left=left+"px"; - } - }; - })(node); - init(); - - var anim = d.animateProperty(d.mixin({ - properties: { - top: args.top || 0, - left: args.left || 0 - } - }, args)); - d.connect(anim, "beforeBegin", anim, init); - - return anim; // dojo.Animation - }; - -})(); - -} +//>>built +define("dojo/fx",["./_base/lang","./Evented","./_base/kernel","./_base/array","./_base/connect","./_base/fx","./dom","./dom-style","./dom-geometry","./ready","require"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b){if(!_3.isAsync){_a(0,function(){var _c=["./fx/Toggler"];_b(_c);});}var _d=_3.fx={};var _e={_fire:function(_f,_10){if(this[_f]){this[_f].apply(this,_10||[]);}return this;}};var _11=function(_12){this._index=-1;this._animations=_12||[];this._current=this._onAnimateCtx=this._onEndCtx=null;this.duration=0;_4.forEach(this._animations,function(a){this.duration+=a.duration;if(a.delay){this.duration+=a.delay;}},this);};_11.prototype=new _2();_1.extend(_11,{_onAnimate:function(){this._fire("onAnimate",arguments);},_onEnd:function(){_5.disconnect(this._onAnimateCtx);_5.disconnect(this._onEndCtx);this._onAnimateCtx=this._onEndCtx=null;if(this._index+1==this._animations.length){this._fire("onEnd");}else{this._current=this._animations[++this._index];this._onAnimateCtx=_5.connect(this._current,"onAnimate",this,"_onAnimate");this._onEndCtx=_5.connect(this._current,"onEnd",this,"_onEnd");this._current.play(0,true);}},play:function(_13,_14){if(!this._current){this._current=this._animations[this._index=0];}if(!_14&&this._current.status()=="playing"){return this;}var _15=_5.connect(this._current,"beforeBegin",this,function(){this._fire("beforeBegin");}),_16=_5.connect(this._current,"onBegin",this,function(arg){this._fire("onBegin",arguments);}),_17=_5.connect(this._current,"onPlay",this,function(arg){this._fire("onPlay",arguments);_5.disconnect(_15);_5.disconnect(_16);_5.disconnect(_17);});if(this._onAnimateCtx){_5.disconnect(this._onAnimateCtx);}this._onAnimateCtx=_5.connect(this._current,"onAnimate",this,"_onAnimate");if(this._onEndCtx){_5.disconnect(this._onEndCtx);}this._onEndCtx=_5.connect(this._current,"onEnd",this,"_onEnd");this._current.play.apply(this._current,arguments);return this;},pause:function(){if(this._current){var e=_5.connect(this._current,"onPause",this,function(arg){this._fire("onPause",arguments);_5.disconnect(e);});this._current.pause();}return this;},gotoPercent:function(_18,_19){this.pause();var _1a=this.duration*_18;this._current=null;_4.some(this._animations,function(a){if(a.duration<=_1a){this._current=a;return true;}_1a-=a.duration;return false;});if(this._current){this._current.gotoPercent(_1a/this._current.duration,_19);}return this;},stop:function(_1b){if(this._current){if(_1b){for(;this._index+1this._animations.length){this._fire("onEnd");}},_call:function(_23,_24){var t=this._pseudoAnimation;t[_23].apply(t,_24);},play:function(_25,_26){this._finished=0;this._doAction("play",arguments);this._call("play",arguments);return this;},pause:function(){this._doAction("pause",arguments);this._call("pause",arguments);return this;},gotoPercent:function(_27,_28){var ms=this.duration*_27;_4.forEach(this._animations,function(a){a.gotoPercent(a.duration