src/cm/media/js/lib/yui/yui_3.10.3/build/anim-shape/anim-shape.js
changeset 525 89ef5ed3c48b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cm/media/js/lib/yui/yui_3.10.3/build/anim-shape/anim-shape.js	Tue Jul 16 14:29:46 2013 +0200
@@ -0,0 +1,192 @@
+/*
+YUI 3.10.3 (build 2fb5187)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add('anim-shape', function (Y, NAME) {
+
+/**
+ * Adds support for the <code>transform</code> attribute of <code>Graphic</code>
+ * <code>Shape</code> instances.
+ * @module anim
+ * @submodule anim-shape-transform
+ * @deprecated Use anim-shape instead.
+ */
+/**
+ * Adds support for the <code>transform</code> and <code>fill</code> attributes of <code>Graphic</code> 
+ * and <code>Shape</code> instances. The <code>anim-shape</code> submodule can be used for all animations
+ * involving <code>Graphic</code> <code>Shape</code> attributes.
+ *
+ * @module anim
+ * @submodule anim-shape
+ */
+    var NUM = Number,
+    TO,
+    TOSTRING,
+    COLOR = "color",
+    STOPS = "stops",
+    TYPE = "type",
+    GETUPDATEDSTOPS = function(anim, from, to, elapsed, duration, fn)
+    {
+        var i = 0,
+            getUpdatedColorValue = Y.Anim.getUpdatedColorValue,
+            toStop,
+            fromStop,
+            prop,
+            len = to.length,
+            stops = [],
+            stop;
+        for(; i < len; i = i + 1)
+        {
+            toStop = to[i];
+            fromStop = from[i];
+            stop = {};
+            for(prop in toStop)
+            {
+                if(toStop.hasOwnProperty(prop))
+                {
+                    if(prop === COLOR)
+                    {
+                        stop[prop] = Y.Color.toHex(getUpdatedColorValue(
+                            Y.Color.toHex(fromStop[prop]),
+                            Y.Color.toHex(toStop[prop]),
+                            elapsed,
+                            duration,
+                            fn
+                        ));
+                    }
+                    else
+                    {
+                        stop[prop] = fn(elapsed, NUM(fromStop[prop]), NUM(toStop[prop]) - NUM(fromStop[prop]), duration);
+                    }
+                }
+            }
+            stops.push(stop);
+        }
+        return stops;
+    },
+    FILLANDSTROKEBEHAVIOR = {
+        set: function(anim, att, from, to, elapsed, duration, fn) {
+            var i,
+            updated = {},
+            getUpdatedColorValue = Y.Anim.getUpdatedColorValue,
+            getUpdatedStops = GETUPDATEDSTOPS;
+            for(i in to)
+            {
+                if(to.hasOwnProperty(i) && i !== TYPE)
+                {
+                    switch(i)
+                    {
+                        case COLOR :
+                            updated[i] = getUpdatedColorValue(from[i], to[i], elapsed, duration, fn);
+                        break;
+                        case STOPS :
+                            updated[i] = getUpdatedStops(anim, from[i], to[i], elapsed, duration, fn);
+                        break;
+                        default :
+                            updated[i] = fn(elapsed, NUM(from[i]), NUM(to[i]) - NUM(from[i]), duration);
+                        break;
+                    }
+                }
+            }
+            anim._node.set(att, updated);
+        }
+    };
+    Y.Anim.behaviors.fill = FILLANDSTROKEBEHAVIOR;
+    Y.Anim.behaviors.stroke = FILLANDSTROKEBEHAVIOR;
+
+    Y.Anim.behaviors.transform = {
+        set: function(anim, att, from, to, elapsed, duration, fn) {
+            var node = anim._node,
+                transform = "",
+                transformTo,
+                transformFrom,
+                toArgs,
+                fromArgs,
+                i = 0,
+                j,
+                argLen,
+                len;
+            to = TO;
+            len = TO.length;
+            for(; i < len; ++i)
+            {
+                toArgs = to[i].concat();
+                fromArgs = from[i].concat();
+                transformTo = toArgs.shift();
+                transformFrom = fromArgs.shift();
+                argLen = toArgs.length;
+                transform += transformTo + "(";
+                for(j = 0; j < argLen; ++j)
+                {
+                    transform += fn(elapsed, NUM(fromArgs[j]), NUM(toArgs[j]) - NUM(fromArgs[j]), duration);
+                    if(j < argLen - 1)
+                    {
+                        transform += ", ";
+                    }
+                }
+                transform += ");";
+            }
+            if(transform)
+            {
+                node.set('transform', transform);
+            }
+            node._transform = TOSTRING;
+        },
+
+        get: function(anim) {
+            var node = anim._node,
+                fromMatrix = node.matrix,
+                toString = anim.get("to").transform,
+                fromString = node.get("transform"),
+                toArray = Y.MatrixUtil.getTransformArray(toString),
+                fromArray = fromString ? Y.MatrixUtil.getTransformArray(fromString) : null,
+                toMatrix,
+                i,
+                len,
+                transformFunction,
+                from;
+            if(toArray)
+            {
+                if(!fromArray || fromArray.length < 1)
+                {
+                    fromArray = [];
+                    len = toArray.length;
+                    for(i = 0; i < len; ++i)
+                    {
+                        transformFunction = toArray[i][0];
+                        fromArray[i] = Y.MatrixUtil.getTransformFunctionArray(transformFunction);
+                    }
+                    TO = toArray;
+                    from = fromArray;
+                }
+                else if(Y.MatrixUtil.compareTransformSequence(toArray, fromArray))
+                {
+                    TO = toArray;
+                    from = fromArray;
+                }
+                else
+                {
+                    toMatrix = new Y.Matrix();
+                    len = toArray.length;
+                    for(i = 0; i < len; ++i)
+                    {
+                        transformFunction = toArray[i].shift();
+                        transformFunction = transformFunction === "matrix" ? "multiply" : transformFunction;
+                        toMatrix[transformFunction].apply(toMatrix, toArray[i]);
+                    }
+
+                    TO = toMatrix.decompose();
+                    from = fromMatrix.decompose();
+                }
+            }
+            TOSTRING = toString;
+            return from;
+        }
+    };
+
+
+
+}, '3.10.3', {"requires": ["anim-base", "anim-easing", "anim-color", "matrix"]});