| 2213 | } |
| 2214 | |
| 2215 | function ft(o, e, t) { |
| 2216 | var n, a, r = 0, |
| 2217 | i = ft.prefilters.length, |
| 2218 | s = S.Deferred().always(function () { |
| 2219 | delete u.elem |
| 2220 | }), |
| 2221 | u = function () { |
| 2222 | if (a) return !1; |
| 2223 | for (var e = tt || ut(), t = Math.max(0, l.startTime + l.duration - e), n = 1 - (t / l.duration || 0), r = 0, i = l.tweens.length; r < i; r++) l.tweens[r].run(n); |
| 2224 | return s.notifyWith(o, [l, n, t]), n < 1 && i ? t : (i || s.notifyWith(o, [l, 1, 0]), s.resolveWith(o, [l]), !1) |
| 2225 | }, |
| 2226 | l = s.promise({ |
| 2227 | elem: o, |
| 2228 | props: S.extend({}, e), |
| 2229 | opts: S.extend(!0, { |
| 2230 | specialEasing: {}, |
| 2231 | easing: S.easing._default |
| 2232 | }, t), |
| 2233 | originalProperties: e, |
| 2234 | originalOptions: t, |
| 2235 | startTime: tt || ut(), |
| 2236 | duration: t.duration, |
| 2237 | tweens: [], |
| 2238 | createTween: function (e, t) { |
| 2239 | var n = S.Tween(o, l.opts, e, t, l.opts.specialEasing[e] || l.opts.easing); |
| 2240 | return l.tweens.push(n), n |
| 2241 | }, |
| 2242 | stop: function (e) { |
| 2243 | var t = 0, |
| 2244 | n = e ? l.tweens.length : 0; |
| 2245 | if (a) return this; |
| 2246 | for (a = !0; t < n; t++) l.tweens[t].run(1); |
| 2247 | return e ? (s.notifyWith(o, [l, 1, 0]), s.resolveWith(o, [l, e])) : s.rejectWith(o, [l, e]), this |
| 2248 | } |
| 2249 | }), |
| 2250 | c = l.props; |
| 2251 | for (! function (e, t) { |
| 2252 | var n, r, i, o, a; |
| 2253 | for (n in e) |
| 2254 | if (i = t[r = X(n)], o = e[n], Array.isArray(o) && (i = o[1], o = e[n] = o[0]), n !== r && (e[r] = o, delete e[n]), (a = S.cssHooks[r]) && "expand" in a) |
| 2255 | for (n in o = a.expand(o), delete e[r], o) n in e || (e[n] = o[n], t[n] = i); |
| 2256 | else t[r] = i |
| 2257 | }(c, l.opts.specialEasing); r < i; r++) |
| 2258 | if (n = ft.prefilters[r].call(l, o, c, l.opts)) return m(n.stop) && (S._queueHooks(l.elem, l.opts.queue).stop = n.stop.bind(n)), n; |
| 2259 | return S.map(c, ct, l), m(l.opts.start) && l.opts.start.call(o, l), l.progress(l.opts.progress).done(l.opts.done, l.opts.complete).fail(l.opts.fail).always(l.opts.always), S.fx.timer(S.extend(u, { |
| 2260 | elem: o, |
| 2261 | anim: l, |
| 2262 | queue: l.opts.queue |
| 2263 | })), l |
| 2264 | } |
| 2265 | S.Animation = S.extend(ft, { |
| 2266 | tweeners: { |
| 2267 | "*": [function (e, t) { |