src/cm/media/js/lib/yui/yui3-3.15.0/build/anim-shape/anim-shape-debug.js
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 602 e16a97fb364a
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     1
YUI.add('anim-shape', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     3
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     4
 * Adds support for the <code>transform</code> attribute of <code>Graphic</code>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     5
 * <code>Shape</code> instances.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     6
 * @module anim
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     7
 * @submodule anim-shape-transform
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     8
 * @deprecated Use anim-shape instead.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     9
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    10
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    11
 * Adds support for the <code>transform</code> and <code>fill</code> attributes of <code>Graphic</code>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    12
 * and <code>Shape</code> instances. The <code>anim-shape</code> submodule can be used for all animations
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    13
 * involving <code>Graphic</code> <code>Shape</code> attributes.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    14
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    15
 * @module anim
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    16
 * @submodule anim-shape
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    17
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    18
    var NUM = Number,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    19
    TO,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    20
    TOSTRING,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    21
    COLOR = "color",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    22
    STOPS = "stops",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    23
    TYPE = "type",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    24
    GETUPDATEDSTOPS = function(anim, from, to, elapsed, duration, fn)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    25
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    26
        var i = 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    27
            getUpdatedColorValue = Y.Anim.getUpdatedColorValue,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    28
            toStop,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    29
            fromStop,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    30
            prop,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    31
            len = to.length,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    32
            stops = [],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    33
            stop;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    34
        for(; i < len; i = i + 1)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    35
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    36
            toStop = to[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    37
            fromStop = from[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    38
            stop = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    39
            for(prop in toStop)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    40
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    41
                if(toStop.hasOwnProperty(prop))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    42
                {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    43
                    if(prop === COLOR)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    44
                    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    45
                        stop[prop] = Y.Color.toHex(getUpdatedColorValue(
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    46
                            Y.Color.toHex(fromStop[prop]),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    47
                            Y.Color.toHex(toStop[prop]),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    48
                            elapsed,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    49
                            duration,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    50
                            fn
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    51
                        ));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    52
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    53
                    else
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    54
                    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    55
                        stop[prop] = fn(elapsed, NUM(fromStop[prop]), NUM(toStop[prop]) - NUM(fromStop[prop]), duration);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    56
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    57
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    58
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    59
            stops.push(stop);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    60
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    61
        return stops;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    62
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    63
    FILLANDSTROKEBEHAVIOR = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    64
        set: function(anim, att, from, to, elapsed, duration, fn) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    65
            var i,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    66
            updated = {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    67
            getUpdatedColorValue = Y.Anim.getUpdatedColorValue,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    68
            getUpdatedStops = GETUPDATEDSTOPS;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    69
            for(i in to)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    70
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    71
                if(to.hasOwnProperty(i) && i !== TYPE)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    72
                {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    73
                    switch(i)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    74
                    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    75
                        case COLOR :
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    76
                            updated[i] = getUpdatedColorValue(from[i], to[i], elapsed, duration, fn);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    77
                        break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    78
                        case STOPS :
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    79
                            updated[i] = getUpdatedStops(anim, from[i], to[i], elapsed, duration, fn);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    80
                        break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    81
                        default :
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    82
                            updated[i] = fn(elapsed, NUM(from[i]), NUM(to[i]) - NUM(from[i]), duration);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    83
                        break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    84
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    85
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    86
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    87
            anim._node.set(att, updated);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    88
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    89
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    90
    Y.Anim.behaviors.fill = FILLANDSTROKEBEHAVIOR;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    91
    Y.Anim.behaviors.stroke = FILLANDSTROKEBEHAVIOR;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    92
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    93
    Y.Anim.behaviors.transform = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    94
        set: function(anim, att, from, to, elapsed, duration, fn) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    95
            var node = anim._node,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    96
                transform = "",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    97
                transformTo,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    98
                transformFrom,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    99
                toArgs,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   100
                fromArgs,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   101
                i = 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   102
                j,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   103
                argLen,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   104
                len;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   105
            to = TO;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   106
            len = TO.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   107
            for(; i < len; ++i)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   108
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   109
                toArgs = to[i].concat();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   110
                fromArgs = from[i].concat();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   111
                transformTo = toArgs.shift();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   112
                transformFrom = fromArgs.shift();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   113
                argLen = toArgs.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   114
                transform += transformTo + "(";
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   115
                for(j = 0; j < argLen; ++j)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   116
                {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   117
                    transform += fn(elapsed, NUM(fromArgs[j]), NUM(toArgs[j]) - NUM(fromArgs[j]), duration);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   118
                    if(j < argLen - 1)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   119
                    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   120
                        transform += ", ";
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   121
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   122
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   123
                transform += ");";
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   124
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   125
            if(transform)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   126
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   127
                node.set('transform', transform);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   128
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   129
            node._transform = TOSTRING;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   130
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   131
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   132
        get: function(anim) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   133
            var node = anim._node,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   134
                fromMatrix = node.matrix,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   135
                toString = anim.get("to").transform,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   136
                fromString = node.get("transform"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   137
                toArray = Y.MatrixUtil.getTransformArray(toString),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   138
                fromArray = fromString ? Y.MatrixUtil.getTransformArray(fromString) : null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   139
                toMatrix,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   140
                i,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   141
                len,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   142
                transformFunction,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   143
                from;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   144
            if(toArray)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   145
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   146
                if(!fromArray || fromArray.length < 1)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   147
                {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   148
                    fromArray = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   149
                    len = toArray.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   150
                    for(i = 0; i < len; ++i)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   151
                    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   152
                        transformFunction = toArray[i][0];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   153
                        fromArray[i] = Y.MatrixUtil.getTransformFunctionArray(transformFunction);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   154
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   155
                    TO = toArray;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   156
                    from = fromArray;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   157
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   158
                else if(Y.MatrixUtil.compareTransformSequence(toArray, fromArray))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   159
                {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   160
                    TO = toArray;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   161
                    from = fromArray;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   162
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   163
                else
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   164
                {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   165
                    toMatrix = new Y.Matrix();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   166
                    len = toArray.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   167
                    for(i = 0; i < len; ++i)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   168
                    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   169
                        transformFunction = toArray[i].shift();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   170
                        transformFunction = transformFunction === "matrix" ? "multiply" : transformFunction;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   171
                        toMatrix[transformFunction].apply(toMatrix, toArray[i]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   172
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   173
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   174
                    TO = toMatrix.decompose();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   175
                    from = fromMatrix.decompose();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   176
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   177
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   178
            TOSTRING = toString;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   179
            return from;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   180
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   181
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   182
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   183
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   184
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   185
}, '@VERSION@', {"requires": ["anim-base", "anim-easing", "anim-color", "matrix"]});