vendor: 4,713 bytes, lines 1-143
1(function (global, factory) { 2 typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : 3 typeof define === 'function' && define.amd ? define(['exports'], factory) : 4 (global = global || self, factory(global.window = global.window || {})); 5}(this, (function (exports) { 'use strict'; 6 7 function _inheritsLoose(subClass, superClass) { 8 subClass.prototype = Object.create(superClass.prototype); 9 subClass.prototype.constructor = subClass; 10 subClass.__proto__ = superClass; 11 } 12 13 function _assertThisInitialized(self) { 14 if (self === void 0) { 15 throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); 16 } 17 18 return self; 19 } 20 21 /*! 22 * GSAP 3.7.1 23 * https://greensock.com 24 * 25 * @license Copyright 2008-2021, GreenSock. All rights reserved. 26 * Subject to the terms at https://greensock.com/standard-license or for 27 * Club GreenSock members, the agreement issued with that membership. 28 * @author: Jack Doyle, [email protected] 29 */ 30 var _config = { 31 autoSleep: 120, 32 force3D: "auto", 33 nullTargetWarn: 1, 34 units: { 35 lineHeight: "" 36 } 37 }, 38 _defaults = { 39 duration: .5, 40 overwrite: false, 41 delay: 0 42 }, 43 _suppressOverwrites, 44 _bigNum = 1e8, 45 _tinyNum = 1 / _bigNum, 46 _2PI = Math.PI * 2, 47 _HALF_PI = _2PI / 4, 48 _gsID = 0, 49 _sqrt = Math.sqrt, 50 _cos = Math.cos, 51 _sin = Math.sin, 52 _isString = function _isString(value) { 53 return typeof value === "string"; 54 }, 55 _isFunction = function _isFunction(value) { 56 return typeof value === "function"; 57 }, 58 _isNumber = function _isNumber(value) { 59 return typeof value === "number"; 60 }, 61 _isUndefined = function _isUndefined(value) { 62 return typeof value === "undefined"; 63 }, 64 _isObject = function _isObject(value) { 65 return typeof value === "object"; 66 }, 67 _isNotFalse = function _isNotFalse(value) { 68 return value !== false; 69 }, 70 _windowExists = function _windowExists() { 71 return typeof window !== "undefined"; 72 }, 73 _isFuncOrString = function _isFuncOrString(value) { 74 return _isFunction(value) || _isString(value); 75 }, 76 _isTypedArray = typeof ArrayBuffer === "function" && ArrayBuffer.isView || function () {}, 77 _isArray = Array.isArray, 78 _strictNumExp = /(?:-?\.?\d|\.)+/gi, 79 _numExp = /[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/g, 80 _numWithUnitExp = /[-+=.]*\d+[.e-]*\d*[a-z%]*/g, 81 _complexStringNumExp = /[-+=.]*\d+\.?\d*(?:e-|e\+)?\d*/gi, 82 _relExp = /[+-]=-?[.\d]+/, 83 _delimitedValueExp = /[^,'"\[\]\s]+/gi, 84 _unitExp = /[\d.+\-=]+(?:e[-+]\d*)*/i, 85 _globalTimeline, 86 _win, 87 _coreInitted, 88 _doc, 89 _globals = {}, 90 _installScope = {}, 91 _coreReady, 92 _install = function _install(scope) { 93 return (_installScope = _merge(scope, _globals)) && gsap; 94 }, 95 _missingPlugin = function _missingPlugin(property, value) { 96 return console.warn("Invalid property", property, "set to", value, "Missing plugin? gsap.registerPlugin()"); 97 }, 98 _warn = function _warn(message, suppress) { 99 return !suppress && console.warn(message); 100 }, 101 _addGlobal = function _addGlobal(name, obj) { 102 return name && (_globals[name] = obj) && _installScope && (_installScope[name] = obj) || _globals; 103 }, 104 _emptyFunc = function _emptyFunc() { 105 return 0; 106 }, 107 _reservedProps = {}, 108 _lazyTweens = [], 109 _lazyLookup = {}, 110 _lastRenderedFrame, 111 _plugins = {}, 112 _effects = {}, 113 _nextGCFrame = 30, 114 _harnessPlugins = [], 115 _callbackNames = "", 116 _harness = function _harness(targets) { 117 var target = targets[0], 118 harnessPlugin, 119 i; 120 _isObject(target) || _isFunction(target) || (targets = [targets]); 121 122 if (!(harnessPlugin = (target._gsap || {}).harness)) { 123 i = _harnessPlugins.length; 124 125 while (i-- && !_harnessPlugins[i].targetTest(target)) {} 126 127 harnessPlugin = _harnessPlugins[i]; 128 } 129 130 i = targets.length; 131 132 while (i--) { 133 targets[i] && (targets[i]._gsap || (targets[i]._gsap = new GSCache(targets[i], harnessPlugin))) || targets.splice(i, 1); 134 } 135 136 return targets; 137 }, 138 _getCache = function _getCache(target) { 139 return target._gsap || _harness(toArray(target))[0]._gsap; 140 }, 141 _getProperty = function _getProperty(target, property, v) { 142 return (v = target[property]) && _isFunction(v) ? target[property]() : _isUndefined(v) && target.getAttribute && target.getAttribute(property) || v; 143 },
vendor: 20,498 bytes, lines 144-738
144 _forEachName = function _forEachName(names, func) { 145 return (names = names.split(",")).forEach(func) || names; 146 }, 147 _round = function _round(value) { 148 return Math.round(value * 100000) / 100000 || 0; 149 }, 150 _arrayContainsAny = function _arrayContainsAny(toSearch, toFind) { 151 var l = toFind.length, 152 i = 0; 153 154 for (; toSearch.indexOf(toFind[i]) < 0 && ++i < l;) {} 155 156 return i < l; 157 }, 158 _lazyRender = function _lazyRender() { 159 var l = _lazyTweens.length, 160 a = _lazyTweens.slice(0), 161 i, 162 tween; 163 164 _lazyLookup = {}; 165 _lazyTweens.length = 0; 166 167 for (i = 0; i < l; i++) { 168 tween = a[i]; 169 tween && tween._lazy && (tween.render(tween._lazy[0], tween._lazy[1], true)._lazy = 0); 170 } 171 }, 172 _lazySafeRender = function _lazySafeRender(animation, time, suppressEvents, force) { 173 _lazyTweens.length && _lazyRender(); 174 animation.render(time, suppressEvents, force); 175 _lazyTweens.length && _lazyRender(); 176 }, 177 _numericIfPossible = function _numericIfPossible(value) { 178 var n = parseFloat(value); 179 return (n || n === 0) && (value + "").match(_delimitedValueExp).length < 2 ? n : _isString(value) ? value.trim() : value; 180 }, 181 _passThrough = function _passThrough(p) { 182 return p; 183 }, 184 _setDefaults = function _setDefaults(obj, defaults) { 185 for (var p in defaults) { 186 p in obj || (obj[p] = defaults[p]); 187 } 188 189 return obj; 190 }, 191 _setKeyframeDefaults = function _setKeyframeDefaults(obj, defaults) { 192 for (var p in defaults) { 193 p in obj || p === "duration" || p === "ease" || (obj[p] = defaults[p]); 194 } 195 }, 196 _merge = function _merge(base, toMerge) { 197 for (var p in toMerge) { 198 base[p] = toMerge[p]; 199 } 200 201 return base; 202 }, 203 _mergeDeep = function _mergeDeep(base, toMerge) { 204 for (var p in toMerge) { 205 p !== "__proto__" && p !== "constructor" && p !== "prototype" && (base[p] = _isObject(toMerge[p]) ? _mergeDeep(base[p] || (base[p] = {}), toMerge[p]) : toMerge[p]); 206 } 207 208 return base; 209 }, 210 _copyExcluding = function _copyExcluding(obj, excluding) { 211 var copy = {}, 212 p; 213 214 for (p in obj) { 215 p in excluding || (copy[p] = obj[p]); 216 } 217 218 return copy; 219 }, 220 _inheritDefaults = function _inheritDefaults(vars) { 221 var parent = vars.parent || _globalTimeline, 222 func = vars.keyframes ? _setKeyframeDefaults : _setDefaults; 223 224 if (_isNotFalse(vars.inherit)) { 225 while (parent) { 226 func(vars, parent.vars.defaults); 227 parent = parent.parent || parent._dp; 228 } 229 } 230 231 return vars; 232 }, 233 _arraysMatch = function _arraysMatch(a1, a2) { 234 var i = a1.length, 235 match = i === a2.length; 236 237 while (match && i-- && a1[i] === a2[i]) {} 238 239 return i < 0; 240 }, 241 _addLinkedListItem = function _addLinkedListItem(parent, child, firstProp, lastProp, sortBy) { 242 if (firstProp === void 0) { 243 firstProp = "_first"; 244 } 245 246 if (lastProp === void 0) { 247 lastProp = "_last"; 248 } 249 250 var prev = parent[lastProp], 251 t; 252 253 if (sortBy) { 254 t = child[sortBy]; 255 256 while (prev && prev[sortBy] > t) { 257 prev = prev._prev; 258 } 259 } 260 261 if (prev) { 262 child._next = prev._next; 263 prev._next = child; 264 } else { 265 child._next = parent[firstProp]; 266 parent[firstProp] = child; 267 } 268 269 if (child._next) { 270 child._next._prev = child; 271 } else { 272 parent[lastProp] = child; 273 } 274 275 child._prev = prev; 276 child.parent = child._dp = parent; 277 return child; 278 }, 279 _removeLinkedListItem = function _removeLinkedListItem(parent, child, firstProp, lastProp) { 280 if (firstProp === void 0) { 281 firstProp = "_first"; 282 } 283 284 if (lastProp === void 0) { 285 lastProp = "_last"; 286 } 287 288 var prev = child._prev, 289 next = child._next; 290 291 if (prev) { 292 prev._next = next; 293 } else if (parent[firstProp] === child) { 294 parent[firstProp] = next; 295 } 296 297 if (next) { 298 next._prev = prev; 299 } else if (parent[lastProp] === child) { 300 parent[lastProp] = prev; 301 } 302 303 child._next = child._prev = child.parent = null; 304 }, 305 _removeFromParent = function _removeFromParent(child, onlyIfParentHasAutoRemove) { 306 child.parent && (!onlyIfParentHasAutoRemove || child.parent.autoRemoveChildren) && child.parent.remove(child); 307 child._act = 0; 308 }, 309 _uncache = function _uncache(animation, child) { 310 if (animation && (!child || child._end > animation._dur || child._start < 0)) { 311 var a = animation; 312 313 while (a) { 314 a._dirty = 1; 315 a = a.parent; 316 } 317 } 318 319 return animation; 320 }, 321 _recacheAncestors = function _recacheAncestors(animation) { 322 var parent = animation.parent; 323 324 while (parent && parent.parent) { 325 parent._dirty = 1; 326 parent.totalDuration(); 327 parent = parent.parent; 328 } 329 330 return animation; 331 }, 332 _hasNoPausedAncestors = function _hasNoPausedAncestors(animation) { 333 return !animation || animation._ts && _hasNoPausedAncestors(animation.parent); 334 }, 335 _elapsedCycleDuration = function _elapsedCycleDuration(animation) { 336 return animation._repeat ? _animationCycle(animation._tTime, animation = animation.duration() + animation._rDelay) * animation : 0; 337 }, 338 _animationCycle = function _animationCycle(tTime, cycleDuration) { 339 var whole = Math.floor(tTime /= cycleDuration); 340 return tTime && whole === tTime ? whole - 1 : whole; 341 }, 342 _parentToChildTotalTime = function _parentToChildTotalTime(parentTime, child) { 343 return (parentTime - child._start) * child._ts + (child._ts >= 0 ? 0 : child._dirty ? child.totalDuration() : child._tDur); 344 }, 345 _setEnd = function _setEnd(animation) { 346 return animation._end = _round(animation._start + (animation._tDur / Math.abs(animation._ts || animation._rts || _tinyNum) || 0)); 347 }, 348 _alignPlayhead = function _alignPlayhead(animation, totalTime) { 349 var parent = animation._dp; 350 351 if (parent && parent.smoothChildTiming && animation._ts) { 352 animation._start = _round(parent._time - (animation._ts > 0 ? totalTime / animation._ts : ((animation._dirty ? animation.totalDuration() : animation._tDur) - totalTime) / -animation._ts)); 353 354 _setEnd(animation); 355 356 parent._dirty || _uncache(parent, animation); 357 } 358 359 return animation; 360 }, 361 _postAddChecks = function _postAddChecks(timeline, child) { 362 var t; 363 364 if (child._time || child._initted && !child._dur) { 365 t = _parentToChildTotalTime(timeline.rawTime(), child); 366 367 if (!child._dur || _clamp(0, child.totalDuration(), t) - child._tTime > _tinyNum) { 368 child.render(t, true); 369 } 370 } 371 372 if (_uncache(timeline, child)._dp && timeline._initted && timeline._time >= timeline._dur && timeline._ts) { 373 if (timeline._dur < timeline.duration()) { 374 t = timeline; 375 376 while (t._dp) { 377 t.rawTime() >= 0 && t.totalTime(t._tTime); 378 t = t._dp; 379 } 380 } 381 382 timeline._zTime = -_tinyNum; 383 } 384 }, 385 _addToTimeline = function _addToTimeline(timeline, child, position, skipChecks) { 386 child.parent && _removeFromParent(child); 387 child._start = _round((_isNumber(position) ? position : position || timeline !== _globalTimeline ? _parsePosition(timeline, position, child) : timeline._time) + child._delay); 388 child._end = _round(child._start + (child.totalDuration() / Math.abs(child.timeScale()) || 0)); 389 390 _addLinkedListItem(timeline, child, "_first", "_last", timeline._sort ? "_start" : 0); 391 392 _isFromOrFromStart(child) || (timeline._recent = child); 393 skipChecks || _postAddChecks(timeline, child); 394 return timeline; 395 }, 396 _scrollTrigger = function _scrollTrigger(animation, trigger) { 397 return (_globals.ScrollTrigger || _missingPlugin("scrollTrigger", trigger)) && _globals.ScrollTrigger.create(trigger, animation); 398 }, 399 _attemptInitTween = function _attemptInitTween(tween, totalTime, force, suppressEvents) { 400 _initTween(tween, totalTime); 401 402 if (!tween._initted) { 403 return 1; 404 } 405 406 if (!force && tween._pt && (tween._dur && tween.vars.lazy !== false || !tween._dur && tween.vars.lazy) && _lastRenderedFrame !== _ticker.frame) { 407 _lazyTweens.push(tween); 408 409 tween._lazy = [totalTime, suppressEvents]; 410 return 1; 411 } 412 }, 413 _parentPlayheadIsBeforeStart = function _parentPlayheadIsBeforeStart(_ref) { 414 var parent = _ref.parent; 415 return parent && parent._ts && parent._initted && !parent._lock && (parent.rawTime() < 0 || _parentPlayheadIsBeforeStart(parent)); 416 }, 417 _isFromOrFromStart = function _isFromOrFromStart(_ref2) { 418 var data = _ref2.data; 419 return data === "isFromStart" || data === "isStart"; 420 }, 421 _renderZeroDurationTween = function _renderZeroDurationTween(tween, totalTime, suppressEvents, force) { 422 var prevRatio = tween.ratio, 423 ratio = totalTime < 0 || !totalTime && (!tween._start && _parentPlayheadIsBeforeStart(tween) && !(!tween._initted && _isFromOrFromStart(tween)) || (tween._ts < 0 || tween._dp._ts < 0) && !_isFromOrFromStart(tween)) ? 0 : 1, 424 repeatDelay = tween._rDelay, 425 tTime = 0, 426 pt, 427 iteration, 428 prevIteration; 429 430 if (repeatDelay && tween._repeat) { 431 tTime = _clamp(0, tween._tDur, totalTime); 432 iteration = _animationCycle(tTime, repeatDelay); 433 prevIteration = _animationCycle(tween._tTime, repeatDelay); 434 tween._yoyo && iteration & 1 && (ratio = 1 - ratio); 435 436 if (iteration !== prevIteration) { 437 prevRatio = 1 - ratio; 438 tween.vars.repeatRefresh && tween._initted && tween.invalidate(); 439 } 440 } 441 442 if (ratio !== prevRatio || force || tween._zTime === _tinyNum || !totalTime && tween._zTime) { 443 if (!tween._initted && _attemptInitTween(tween, totalTime, force, suppressEvents)) { 444 return; 445 } 446 447 prevIteration = tween._zTime; 448 tween._zTime = totalTime || (suppressEvents ? _tinyNum : 0); 449 suppressEvents || (suppressEvents = totalTime && !prevIteration); 450 tween.ratio = ratio; 451 tween._from && (ratio = 1 - ratio); 452 tween._time = 0; 453 tween._tTime = tTime; 454 pt = tween._pt; 455 456 while (pt) { 457 pt.r(ratio, pt.d); 458 pt = pt._next; 459 } 460 461 tween._startAt && totalTime < 0 && tween._startAt.render(totalTime, true, true); 462 tween._onUpdate && !suppressEvents && _callback(tween, "onUpdate"); 463 tTime && tween._repeat && !suppressEvents && tween.parent && _callback(tween, "onRepeat"); 464 465 if ((totalTime >= tween._tDur || totalTime < 0) && tween.ratio === ratio) { 466 ratio && _removeFromParent(tween, 1); 467 468 if (!suppressEvents) { 469 _callback(tween, ratio ? "onComplete" : "onReverseComplete", true); 470 471 tween._prom && tween._prom(); 472 } 473 } 474 } else if (!tween._zTime) { 475 tween._zTime = totalTime; 476 } 477 }, 478 _findNextPauseTween = function _findNextPauseTween(animation, prevTime, time) { 479 var child; 480 481 if (time > prevTime) { 482 child = animation._first; 483 484 while (child && child._start <= time) { 485 if (!child._dur && child.data === "isPause" && child._start > prevTime) { 486 return child; 487 } 488 489 child = child._next; 490 } 491 } else { 492 child = animation._last; 493 494 while (child && child._start >= time) { 495 if (!child._dur && child.data === "isPause" && child._start < prevTime) { 496 return child; 497 } 498 499 child = child._prev; 500 } 501 } 502 }, 503 _setDuration = function _setDuration(animation, duration, skipUncache, leavePlayhead) { 504 var repeat = animation._repeat, 505 dur = _round(duration) || 0, 506 totalProgress = animation._tTime / animation._tDur; 507 totalProgress && !leavePlayhead && (animation._time *= dur / animation._dur); 508 animation._dur = dur; 509 animation._tDur = !repeat ? dur : repeat < 0 ? 1e10 : _round(dur * (repeat + 1) + animation._rDelay * repeat); 510 totalProgress && !leavePlayhead ? _alignPlayhead(animation, animation._tTime = animation._tDur * totalProgress) : animation.parent && _setEnd(animation); 511 skipUncache || _uncache(animation.parent, animation); 512 return animation; 513 }, 514 _onUpdateTotalDuration = function _onUpdateTotalDuration(animation) { 515 return animation instanceof Timeline ? _uncache(animation) : _setDuration(animation, animation._dur); 516 }, 517 _zeroPosition = { 518 _start: 0, 519 endTime: _emptyFunc, 520 totalDuration: _emptyFunc 521 }, 522 _parsePosition = function _parsePosition(animation, position, percentAnimation) { 523 var labels = animation.labels, 524 recent = animation._recent || _zeroPosition, 525 clippedDuration = animation.duration() >= _bigNum ? recent.endTime(false) : animation._dur, 526 i, 527 offset, 528 isPercent; 529 530 if (_isString(position) && (isNaN(position) || position in labels)) { 531 offset = position.charAt(0); 532 isPercent = position.substr(-1) === "%"; 533 i = position.indexOf("="); 534 535 if (offset === "<" || offset === ">") { 536 i >= 0 && (position = position.replace(/=/, "")); 537 return (offset === "<" ? recent._start : recent.endTime(recent._repeat >= 0)) + (parseFloat(position.substr(1)) || 0) * (isPercent ? (i < 0 ? recent : percentAnimation).totalDuration() / 100 : 1); 538 } 539 540 if (i < 0) { 541 position in labels || (labels[position] = clippedDuration); 542 return labels[position]; 543 } 544 545 offset = parseFloat(position.charAt(i - 1) + position.substr(i + 1)); 546 547 if (isPercent && percentAnimation) { 548 offset = offset / 100 * (_isArray(percentAnimation) ? percentAnimation[0] : percentAnimation).totalDuration(); 549 } 550 551 return i > 1 ? _parsePosition(animation, position.substr(0, i - 1), percentAnimation) + offset : clippedDuration + offset; 552 } 553 554 return position == null ? clippedDuration : +position; 555 }, 556 _createTweenType = function _createTweenType(type, params, timeline) { 557 var isLegacy = _isNumber(params[1]), 558 varsIndex = (isLegacy ? 2 : 1) + (type < 2 ? 0 : 1), 559 vars = params[varsIndex], 560 irVars, 561 parent; 562 563 isLegacy && (vars.duration = params[1]); 564 vars.parent = timeline; 565 566 if (type) { 567 irVars = vars; 568 parent = timeline; 569 570 while (parent && !("immediateRender" in irVars)) { 571 irVars = parent.vars.defaults || {}; 572 parent = _isNotFalse(parent.vars.inherit) && parent.parent; 573 } 574 575 vars.immediateRender = _isNotFalse(irVars.immediateRender); 576 type < 2 ? vars.runBackwards = 1 : vars.startAt = params[varsIndex - 1]; 577 } 578 579 return new Tween(params[0], vars, params[varsIndex + 1]); 580 }, 581 _conditionalReturn = function _conditionalReturn(value, func) { 582 return value || value === 0 ? func(value) : func; 583 }, 584 _clamp = function _clamp(min, max, value) { 585 return value < min ? min : value > max ? max : value; 586 }, 587 getUnit = function getUnit(value) { 588 if (typeof value !== "string") { 589 return ""; 590 } 591 592 var v = _unitExp.exec(value); 593 594 return v ? value.substr(v.index + v[0].length) : ""; 595 }, 596 clamp = function clamp(min, max, value) { 597 return _conditionalReturn(value, function (v) { 598 return _clamp(min, max, v); 599 }); 600 }, 601 _slice = [].slice, 602 _isArrayLike = function _isArrayLike(value, nonEmpty) { 603 return value && _isObject(value) && "length" in value && (!nonEmpty && !value.length || value.length - 1 in value && _isObject(value[0])) && !value.nodeType && value !== _win; 604 }, 605 _flatten = function _flatten(ar, leaveStrings, accumulator) { 606 if (accumulator === void 0) { 607 accumulator = []; 608 } 609 610 return ar.forEach(function (value) { 611 var _accumulator; 612 613 return _isString(value) && !leaveStrings || _isArrayLike(value, 1) ? (_accumulator = accumulator).push.apply(_accumulator, toArray(value)) : accumulator.push(value); 614 }) || accumulator; 615 }, 616 toArray = function toArray(value, scope, leaveStrings) { 617 return _isString(value) && !leaveStrings && (_coreInitted || !_wake()) ? _slice.call((scope || _doc).querySelectorAll(value), 0) : _isArray(value) ? _flatten(value, leaveStrings) : _isArrayLike(value) ? _slice.call(value, 0) : value ? [value] : []; 618 }, 619 selector = function selector(value) { 620 value = toArray(value)[0] || _warn("Invalid scope") || {}; 621 return function (v) { 622 var el = value.current || value.nativeElement || value; 623 return toArray(v, el.querySelectorAll ? el : el === value ? _warn("Invalid scope") || _doc.createElement("div") : value); 624 }; 625 }, 626 shuffle = function shuffle(a) { 627 return a.sort(function () { 628 return .5 - Math.random(); 629 }); 630 }, 631 distribute = function distribute(v) { 632 if (_isFunction(v)) { 633 return v; 634 } 635 636 var vars = _isObject(v) ? v : { 637 each: v 638 }, 639 ease = _parseEase(vars.ease), 640 from = vars.from || 0, 641 base = parseFloat(vars.base) || 0, 642 cache = {}, 643 isDecimal = from > 0 && from < 1, 644 ratios = isNaN(from) || isDecimal, 645 axis = vars.axis, 646 ratioX = from, 647 ratioY = from; 648 649 if (_isString(from)) { 650 ratioX = ratioY = { 651 center: .5, 652 edges: .5, 653 end: 1 654 }[from] || 0; 655 } else if (!isDecimal && ratios) { 656 ratioX = from[0]; 657 ratioY = from[1]; 658 } 659 660 return function (i, target, a) { 661 var l = (a || vars).length, 662 distances = cache[l], 663 originX, 664 originY, 665 x, 666 y, 667 d, 668 j, 669 max, 670 min, 671 wrapAt; 672 673 if (!distances) { 674 wrapAt = vars.grid === "auto" ? 0 : (vars.grid || [1, _bigNum])[1]; 675 676 if (!wrapAt) { 677 max = -_bigNum; 678 679 while (max < (max = a[wrapAt++].getBoundingClientRect().left) && wrapAt < l) {} 680 681 wrapAt--; 682 } 683 684 distances = cache[l] = []; 685 originX = ratios ? Math.min(wrapAt, l) * ratioX - .5 : from % wrapAt; 686 originY = ratios ? l * ratioY / wrapAt - .5 : from / wrapAt | 0; 687 max = 0; 688 min = _bigNum; 689 690 for (j = 0; j < l; j++) { 691 x = j % wrapAt - originX; 692 y = originY - (j / wrapAt | 0); 693 distances[j] = d = !axis ? _sqrt(x * x + y * y) : Math.abs(axis === "y" ? y : x); 694 d > max && (max = d); 695 d < min && (min = d); 696 } 697 698 from === "random" && shuffle(distances); 699 distances.max = max - min; 700 distances.min = min; 701 distances.v = l = (parseFloat(vars.amount) || parseFloat(vars.each) * (wrapAt > l ? l - 1 : !axis ? Math.max(wrapAt, l / wrapAt) : axis === "y" ? l / wrapAt : wrapAt) || 0) * (from === "edges" ? -1 : 1); 702 distances.b = l < 0 ? base - l : base; 703 distances.u = getUnit(vars.amount || vars.each) || 0; 704 ease = ease && l < 0 ? _invertEase(ease) : ease; 705 } 706 707 l = (distances[i] - distances.min) / distances.max || 0; 708 return _round(distances.b + (ease ? ease(l) : l) * distances.v) + distances.u; 709 }; 710 }, 711 _roundModifier = function _roundModifier(v) { 712 var p = v < 1 ? Math.pow(10, (v + "").length - 2) : 1; 713 return function (raw) { 714 var n = Math.round(parseFloat(raw) / v) * v * p; 715 return (n - n % 1) / p + (_isNumber(raw) ? 0 : getUnit(raw)); 716 }; 717 }, 718 snap = function snap(snapTo, value) { 719 var isArray = _isArray(snapTo), 720 radius, 721 is2D; 722 723 if (!isArray && _isObject(snapTo)) { 724 radius = isArray = snapTo.radius || _bigNum; 725 726 if (snapTo.values) { 727 snapTo = toArray(snapTo.values); 728 729 if (is2D = !_isNumber(snapTo[0])) { 730 radius *= radius; 731 } 732 } else { 733 snapTo = _roundModifier(snapTo.increment); 734 } 735 } 736 737 return _conditionalReturn(value, !isArray ? _roundModifier(snapTo) : _isFunction(snapTo) ? function (raw) { 738 is2D = snapTo(raw);
vendor: 4,697 bytes, lines 739-877
739 return Math.abs(is2D - raw) <= radius ? is2D : raw; 740 } : function (raw) { 741 var x = parseFloat(is2D ? raw.x : raw), 742 y = parseFloat(is2D ? raw.y : 0), 743 min = _bigNum, 744 closest = 0, 745 i = snapTo.length, 746 dx, 747 dy; 748 749 while (i--) { 750 if (is2D) { 751 dx = snapTo[i].x - x; 752 dy = snapTo[i].y - y; 753 dx = dx * dx + dy * dy; 754 } else { 755 dx = Math.abs(snapTo[i] - x); 756 } 757 758 if (dx < min) { 759 min = dx; 760 closest = i; 761 } 762 } 763 764 closest = !radius || min <= radius ? snapTo[closest] : raw; 765 return is2D || closest === raw || _isNumber(raw) ? closest : closest + getUnit(raw); 766 }); 767 }, 768 random = function random(min, max, roundingIncrement, returnFunction) { 769 return _conditionalReturn(_isArray(min) ? !max : roundingIncrement === true ? !!(roundingIncrement = 0) : !returnFunction, function () { 770 return _isArray(min) ? min[~~(Math.random() * min.length)] : (roundingIncrement = roundingIncrement || 1e-5) && (returnFunction = roundingIncrement < 1 ? Math.pow(10, (roundingIncrement + "").length - 2) : 1) && Math.floor(Math.round((min - roundingIncrement / 2 + Math.random() * (max - min + roundingIncrement * .99)) / roundingIncrement) * roundingIncrement * returnFunction) / returnFunction; 771 }); 772 }, 773 pipe = function pipe() { 774 for (var _len = arguments.length, functions = new Array(_len), _key = 0; _key < _len; _key++) { 775 functions[_key] = arguments[_key]; 776 } 777 778 return function (value) { 779 return functions.reduce(function (v, f) { 780 return f(v); 781 }, value); 782 }; 783 }, 784 unitize = function unitize(func, unit) { 785 return function (value) { 786 return func(parseFloat(value)) + (unit || getUnit(value)); 787 }; 788 }, 789 normalize = function normalize(min, max, value) { 790 return mapRange(min, max, 0, 1, value); 791 }, 792 _wrapArray = function _wrapArray(a, wrapper, value) { 793 return _conditionalReturn(value, function (index) { 794 return a[~~wrapper(index)]; 795 }); 796 }, 797 wrap = function wrap(min, max, value) { 798 var range = max - min; 799 return _isArray(min) ? _wrapArray(min, wrap(0, min.length), max) : _conditionalReturn(value, function (value) { 800 return (range + (value - min) % range) % range + min; 801 }); 802 }, 803 wrapYoyo = function wrapYoyo(min, max, value) { 804 var range = max - min, 805 total = range * 2; 806 return _isArray(min) ? _wrapArray(min, wrapYoyo(0, min.length - 1), max) : _conditionalReturn(value, function (value) { 807 value = (total + (value - min) % total) % total || 0; 808 return min + (value > range ? total - value : value); 809 }); 810 }, 811 _replaceRandom = function _replaceRandom(value) { 812 var prev = 0, 813 s = "", 814 i, 815 nums, 816 end, 817 isArray; 818 819 while (~(i = value.indexOf("random(", prev))) { 820 end = value.indexOf(")", i); 821 isArray = value.charAt(i + 7) === "["; 822 nums = value.substr(i + 7, end - i - 7).match(isArray ? _delimitedValueExp : _strictNumExp); 823 s += value.substr(prev, i - prev) + random(isArray ? nums : +nums[0], isArray ? 0 : +nums[1], +nums[2] || 1e-5); 824 prev = end + 1; 825 } 826 827 return s + value.substr(prev, value.length - prev); 828 }, 829 mapRange = function mapRange(inMin, inMax, outMin, outMax, value) { 830 var inRange = inMax - inMin, 831 outRange = outMax - outMin; 832 return _conditionalReturn(value, function (value) { 833 return outMin + ((value - inMin) / inRange * outRange || 0); 834 }); 835 }, 836 interpolate = function interpolate(start, end, progress, mutate) { 837 var func = isNaN(start + end) ? 0 : function (p) { 838 return (1 - p) * start + p * end; 839 }; 840 841 if (!func) { 842 var isString = _isString(start), 843 master = {}, 844 p, 845 i, 846 interpolators, 847 l, 848 il; 849 850 progress === true && (mutate = 1) && (progress = null); 851 852 if (isString) { 853 start = { 854 p: start 855 }; 856 end = { 857 p: end 858 }; 859 } else if (_isArray(start) && !_isArray(end)) { 860 interpolators = []; 861 l = start.length; 862 il = l - 2; 863 864 for (i = 1; i < l; i++) { 865 interpolators.push(interpolate(start[i - 1], start[i])); 866 } 867 868 l--; 869 870 func = function func(p) { 871 p *= l; 872 var i = Math.min(il, ~~p); 873 return interpolators[i](p - i); 874 }; 875 876 progress = end; 877 } else if (!mutate) {
vendor: 8,587 bytes, lines 878-1190
878 start = _merge(_isArray(start) ? [] : {}, start); 879 } 880 881 if (!interpolators) { 882 for (p in end) { 883 _addPropTween.call(master, start, p, "get", end[p]); 884 } 885 886 func = function func(p) { 887 return _renderPropTweens(p, master) || (isString ? start.p : start); 888 }; 889 } 890 } 891 892 return _conditionalReturn(progress, func); 893 }, 894 _getLabelInDirection = function _getLabelInDirection(timeline, fromTime, backward) { 895 var labels = timeline.labels, 896 min = _bigNum, 897 p, 898 distance, 899 label; 900 901 for (p in labels) { 902 distance = labels[p] - fromTime; 903 904 if (distance < 0 === !!backward && distance && min > (distance = Math.abs(distance))) { 905 label = p; 906 min = distance; 907 } 908 } 909 910 return label; 911 }, 912 _callback = function _callback(animation, type, executeLazyFirst) { 913 var v = animation.vars, 914 callback = v[type], 915 params, 916 scope; 917 918 if (!callback) { 919 return; 920 } 921 922 params = v[type + "Params"]; 923 scope = v.callbackScope || animation; 924 executeLazyFirst && _lazyTweens.length && _lazyRender(); 925 return params ? callback.apply(scope, params) : callback.call(scope); 926 }, 927 _interrupt = function _interrupt(animation) { 928 _removeFromParent(animation); 929 930 animation.scrollTrigger && animation.scrollTrigger.kill(false); 931 animation.progress() < 1 && _callback(animation, "onInterrupt"); 932 return animation; 933 }, 934 _quickTween, 935 _createPlugin = function _createPlugin(config) { 936 config = !config.name && config["default"] || config; 937 938 var name = config.name, 939 isFunc = _isFunction(config), 940 Plugin = name && !isFunc && config.init ? function () { 941 this._props = []; 942 } : config, 943 instanceDefaults = { 944 init: _emptyFunc, 945 render: _renderPropTweens, 946 add: _addPropTween, 947 kill: _killPropTweensOf, 948 modifier: _addPluginModifier, 949 rawVars: 0 950 }, 951 statics = { 952 targetTest: 0, 953 get: 0, 954 getSetter: _getSetter, 955 aliases: {}, 956 register: 0 957 }; 958 959 _wake(); 960 961 if (config !== Plugin) { 962 if (_plugins[name]) { 963 return; 964 } 965 966 _setDefaults(Plugin, _setDefaults(_copyExcluding(config, instanceDefaults), statics)); 967 968 _merge(Plugin.prototype, _merge(instanceDefaults, _copyExcluding(config, statics))); 969 970 _plugins[Plugin.prop = name] = Plugin; 971 972 if (config.targetTest) { 973 _harnessPlugins.push(Plugin); 974 975 _reservedProps[name] = 1; 976 } 977 978 name = (name === "css" ? "CSS" : name.charAt(0).toUpperCase() + name.substr(1)) + "Plugin"; 979 } 980 981 _addGlobal(name, Plugin); 982 983 config.register && config.register(gsap, Plugin, PropTween); 984 }, 985 _255 = 255, 986 _colorLookup = { 987 aqua: [0, _255, _255], 988 lime: [0, _255, 0], 989 silver: [192, 192, 192], 990 black: [0, 0, 0], 991 maroon: [128, 0, 0], 992 teal: [0, 128, 128], 993 blue: [0, 0, _255], 994 navy: [0, 0, 128], 995 white: [_255, _255, _255], 996 olive: [128, 128, 0], 997 yellow: [_255, _255, 0], 998 orange: [_255, 165, 0], 999 gray: [128, 128, 128], 1000 purple: [128, 0, 128], 1001 green: [0, 128, 0], 1002 red: [_255, 0, 0], 1003 pink: [_255, 192, 203], 1004 cyan: [0, _255, _255], 1005 transparent: [_255, _255, _255, 0] 1006 }, 1007 _hue = function _hue(h, m1, m2) { 1008 h = h < 0 ? h + 1 : h > 1 ? h - 1 : h; 1009 return (h * 6 < 1 ? m1 + (m2 - m1) * h * 6 : h < .5 ? m2 : h * 3 < 2 ? m1 + (m2 - m1) * (2 / 3 - h) * 6 : m1) * _255 + .5 | 0; 1010 }, 1011 splitColor = function splitColor(v, toHSL, forceAlpha) { 1012 var a = !v ? _colorLookup.black : _isNumber(v) ? [v >> 16, v >> 8 & _255, v & _255] : 0, 1013 r, 1014 g, 1015 b, 1016 h, 1017 s, 1018 l, 1019 max, 1020 min, 1021 d, 1022 wasHSL; 1023 1024 if (!a) { 1025 if (v.substr(-1) === ",") { 1026 v = v.substr(0, v.length - 1); 1027 } 1028 1029 if (_colorLookup[v]) { 1030 a = _colorLookup[v]; 1031 } else if (v.charAt(0) === "#") { 1032 if (v.length < 6) { 1033 r = v.charAt(1); 1034 g = v.charAt(2); 1035 b = v.charAt(3); 1036 v = "#" + r + r + g + g + b + b + (v.length === 5 ? v.charAt(4) + v.charAt(4) : ""); 1037 } 1038 1039 if (v.length === 9) { 1040 a = parseInt(v.substr(1, 6), 16); 1041 return [a >> 16, a >> 8 & _255, a & _255, parseInt(v.substr(7), 16) / 255]; 1042 } 1043 1044 v = parseInt(v.substr(1), 16); 1045 a = [v >> 16, v >> 8 & _255, v & _255]; 1046 } else if (v.substr(0, 3) === "hsl") { 1047 a = wasHSL = v.match(_strictNumExp); 1048 1049 if (!toHSL) { 1050 h = +a[0] % 360 / 360; 1051 s = +a[1] / 100; 1052 l = +a[2] / 100; 1053 g = l <= .5 ? l * (s + 1) : l + s - l * s; 1054 r = l * 2 - g; 1055 a.length > 3 && (a[3] *= 1); 1056 a[0] = _hue(h + 1 / 3, r, g); 1057 a[1] = _hue(h, r, g); 1058 a[2] = _hue(h - 1 / 3, r, g); 1059 } else if (~v.indexOf("=")) { 1060 a = v.match(_numExp); 1061 forceAlpha && a.length < 4 && (a[3] = 1); 1062 return a; 1063 } 1064 } else { 1065 a = v.match(_strictNumExp) || _colorLookup.transparent; 1066 } 1067 1068 a = a.map(Number); 1069 } 1070 1071 if (toHSL && !wasHSL) { 1072 r = a[0] / _255; 1073 g = a[1] / _255; 1074 b = a[2] / _255; 1075 max = Math.max(r, g, b); 1076 min = Math.min(r, g, b); 1077 l = (max + min) / 2; 1078 1079 if (max === min) { 1080 h = s = 0; 1081 } else { 1082 d = max - min; 1083 s = l > 0.5 ? d / (2 - max - min) : d / (max + min); 1084 h = max === r ? (g - b) / d + (g < b ? 6 : 0) : max === g ? (b - r) / d + 2 : (r - g) / d + 4; 1085 h *= 60; 1086 } 1087 1088 a[0] = ~~(h + .5); 1089 a[1] = ~~(s * 100 + .5); 1090 a[2] = ~~(l * 100 + .5); 1091 } 1092 1093 forceAlpha && a.length < 4 && (a[3] = 1); 1094 return a; 1095 }, 1096 _colorOrderData = function _colorOrderData(v) { 1097 var values = [], 1098 c = [], 1099 i = -1; 1100 v.split(_colorExp).forEach(function (v) { 1101 var a = v.match(_numWithUnitExp) || []; 1102 values.push.apply(values, a); 1103 c.push(i += a.length + 1); 1104 }); 1105 values.c = c; 1106 return values; 1107 }, 1108 _formatColors = function _formatColors(s, toHSL, orderMatchData) { 1109 var result = "", 1110 colors = (s + result).match(_colorExp), 1111 type = toHSL ? "hsla(" : "rgba(", 1112 i = 0, 1113 c, 1114 shell, 1115 d, 1116 l; 1117 1118 if (!colors) { 1119 return s; 1120 } 1121 1122 colors = colors.map(function (color) { 1123 return (color = splitColor(color, toHSL, 1)) && type + (toHSL ? color[0] + "," + color[1] + "%," + color[2] + "%," + color[3] : color.join(",")) + ")"; 1124 }); 1125 1126 if (orderMatchData) { 1127 d = _colorOrderData(s); 1128 c = orderMatchData.c; 1129 1130 if (c.join(result) !== d.c.join(result)) { 1131 shell = s.replace(_colorExp, "1").split(_numWithUnitExp); 1132 l = shell.length - 1; 1133 1134 for (; i < l; i++) { 1135 result += shell[i] + (~c.indexOf(i) ? colors.shift() || type + "0,0,0,0)" : (d.length ? d : colors.length ? colors : orderMatchData).shift()); 1136 } 1137 } 1138 } 1139 1140 if (!shell) { 1141 shell = s.split(_colorExp); 1142 l = shell.length - 1; 1143 1144 for (; i < l; i++) { 1145 result += shell[i] + colors[i]; 1146 } 1147 } 1148 1149 return result + shell[l]; 1150 }, 1151 _colorExp = function () { 1152 var s = "(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3,4}){1,2}\\b", 1153 p; 1154 1155 for (p in _colorLookup) { 1156 s += "|" + p + "\\b"; 1157 } 1158 1159 return new RegExp(s + ")", "gi"); 1160 }(), 1161 _hslExp = /hsl[a]?\(/, 1162 _colorStringFilter = function _colorStringFilter(a) { 1163 var combined = a.join(" "), 1164 toHSL; 1165 _colorExp.lastIndex = 0; 1166 1167 if (_colorExp.test(combined)) { 1168 toHSL = _hslExp.test(combined); 1169 a[1] = _formatColors(a[1], toHSL); 1170 a[0] = _formatColors(a[0], toHSL, _colorOrderData(a[1])); 1171 return true; 1172 } 1173 }, 1174 _tickerActive, 1175 _ticker = function () { 1176 var _getTime = Date.now, 1177 _lagThreshold = 500, 1178 _adjustedLag = 33, 1179 _startTime = _getTime(), 1180 _lastUpdate = _startTime, 1181 _gap = 1000 / 240, 1182 _nextTime = _gap, 1183 _listeners = [], 1184 _id, 1185 _req, 1186 _raf, 1187 _self, 1188 _delta, 1189 _i, 1190 _tick = function _tick(v) {
vendor: 5,520 bytes, lines 1191-1364
1191 var elapsed = _getTime() - _lastUpdate, 1192 manual = v === true, 1193 overlap, 1194 dispatch, 1195 time, 1196 frame; 1197 1198 elapsed > _lagThreshold && (_startTime += elapsed - _adjustedLag); 1199 _lastUpdate += elapsed; 1200 time = _lastUpdate - _startTime; 1201 overlap = time - _nextTime; 1202 1203 if (overlap > 0 || manual) { 1204 frame = ++_self.frame; 1205 _delta = time - _self.time * 1000; 1206 _self.time = time = time / 1000; 1207 _nextTime += overlap + (overlap >= _gap ? 4 : _gap - overlap); 1208 dispatch = 1; 1209 } 1210 1211 manual || (_id = _req(_tick)); 1212 1213 if (dispatch) { 1214 for (_i = 0; _i < _listeners.length; _i++) { 1215 _listeners[_i](time, _delta, frame, v); 1216 } 1217 } 1218 }; 1219 1220 _self = { 1221 time: 0, 1222 frame: 0, 1223 tick: function tick() { 1224 _tick(true); 1225 }, 1226 deltaRatio: function deltaRatio(fps) { 1227 return _delta / (1000 / (fps || 60)); 1228 }, 1229 wake: function wake() { 1230 if (_coreReady) { 1231 if (!_coreInitted && _windowExists()) { 1232 _win = _coreInitted = window; 1233 _doc = _win.document || {}; 1234 _globals.gsap = gsap; 1235 (_win.gsapVersions || (_win.gsapVersions = [])).push(gsap.version); 1236 1237 _install(_installScope || _win.GreenSockGlobals || !_win.gsap && _win || {}); 1238 1239 _raf = _win.requestAnimationFrame; 1240 } 1241 1242 _id && _self.sleep(); 1243 1244 _req = _raf || function (f) { 1245 return setTimeout(f, _nextTime - _self.time * 1000 + 1 | 0); 1246 }; 1247 1248 _tickerActive = 1; 1249 1250 _tick(2); 1251 } 1252 }, 1253 sleep: function sleep() { 1254 (_raf ? _win.cancelAnimationFrame : clearTimeout)(_id); 1255 _tickerActive = 0; 1256 _req = _emptyFunc; 1257 }, 1258 lagSmoothing: function lagSmoothing(threshold, adjustedLag) { 1259 _lagThreshold = threshold || 1 / _tinyNum; 1260 _adjustedLag = Math.min(adjustedLag, _lagThreshold, 0); 1261 }, 1262 fps: function fps(_fps) { 1263 _gap = 1000 / (_fps || 240); 1264 _nextTime = _self.time * 1000 + _gap; 1265 }, 1266 add: function add(callback) { 1267 _listeners.indexOf(callback) < 0 && _listeners.push(callback); 1268 1269 _wake(); 1270 }, 1271 remove: function remove(callback) { 1272 var i; 1273 ~(i = _listeners.indexOf(callback)) && _listeners.splice(i, 1) && _i >= i && _i--; 1274 }, 1275 _listeners: _listeners 1276 }; 1277 return _self; 1278 }(), 1279 _wake = function _wake() { 1280 return !_tickerActive && _ticker.wake(); 1281 }, 1282 _easeMap = {}, 1283 _customEaseExp = /^[\d.\-M][\d.\-,\s]/, 1284 _quotesExp = /["']/g, 1285 _parseObjectInString = function _parseObjectInString(value) { 1286 var obj = {}, 1287 split = value.substr(1, value.length - 3).split(":"), 1288 key = split[0], 1289 i = 1, 1290 l = split.length, 1291 index, 1292 val, 1293 parsedVal; 1294 1295 for (; i < l; i++) { 1296 val = split[i]; 1297 index = i !== l - 1 ? val.lastIndexOf(",") : val.length; 1298 parsedVal = val.substr(0, index); 1299 obj[key] = isNaN(parsedVal) ? parsedVal.replace(_quotesExp, "").trim() : +parsedVal; 1300 key = val.substr(index + 1).trim(); 1301 } 1302 1303 return obj; 1304 }, 1305 _valueInParentheses = function _valueInParentheses(value) { 1306 var open = value.indexOf("(") + 1, 1307 close = value.indexOf(")"), 1308 nested = value.indexOf("(", open); 1309 return value.substring(open, ~nested && nested < close ? value.indexOf(")", close + 1) : close); 1310 }, 1311 _configEaseFromString = function _configEaseFromString(name) { 1312 var split = (name + "").split("("), 1313 ease = _easeMap[split[0]]; 1314 return ease && split.length > 1 && ease.config ? ease.config.apply(null, ~name.indexOf("{") ? [_parseObjectInString(split[1])] : _valueInParentheses(name).split(",").map(_numericIfPossible)) : _easeMap._CE && _customEaseExp.test(name) ? _easeMap._CE("", name) : ease; 1315 }, 1316 _invertEase = function _invertEase(ease) { 1317 return function (p) { 1318 return 1 - ease(1 - p); 1319 }; 1320 }, 1321 _propagateYoyoEase = function _propagateYoyoEase(timeline, isYoyo) { 1322 var child = timeline._first, 1323 ease; 1324 1325 while (child) { 1326 if (child instanceof Timeline) { 1327 _propagateYoyoEase(child, isYoyo); 1328 } else if (child.vars.yoyoEase && (!child._yoyo || !child._repeat) && child._yoyo !== isYoyo) { 1329 if (child.timeline) { 1330 _propagateYoyoEase(child.timeline, isYoyo); 1331 } else { 1332 ease = child._ease; 1333 child._ease = child._yEase; 1334 child._yEase = ease; 1335 child._yoyo = isYoyo; 1336 } 1337 } 1338 1339 child = child._next; 1340 } 1341 }, 1342 _parseEase = function _parseEase(ease, defaultEase) { 1343 return !ease ? defaultEase : (_isFunction(ease) ? ease : _easeMap[ease] || _configEaseFromString(ease)) || defaultEase; 1344 }, 1345 _insertEase = function _insertEase(names, easeIn, easeOut, easeInOut) { 1346 if (easeOut === void 0) { 1347 easeOut = function easeOut(p) { 1348 return 1 - easeIn(1 - p); 1349 }; 1350 } 1351 1352 if (easeInOut === void 0) { 1353 easeInOut = function easeInOut(p) { 1354 return p < .5 ? easeIn(p * 2) / 2 : 1 - easeIn((1 - p) * 2) / 2; 1355 }; 1356 } 1357 1358 var ease = { 1359 easeIn: easeIn, 1360 easeOut: easeOut, 1361 easeInOut: easeInOut 1362 }, 1363 lowercaseName; 1364
vendor: 4,190 bytes, lines 1365-1495
1365 _forEachName(names, function (name) { 1366 _easeMap[name] = _globals[name] = ease; 1367 _easeMap[lowercaseName = name.toLowerCase()] = easeOut; 1368 1369 for (var p in ease) { 1370 _easeMap[lowercaseName + (p === "easeIn" ? ".in" : p === "easeOut" ? ".out" : ".inOut")] = _easeMap[name + "." + p] = ease[p]; 1371 } 1372 }); 1373 1374 return ease; 1375 }, 1376 _easeInOutFromOut = function _easeInOutFromOut(easeOut) { 1377 return function (p) { 1378 return p < .5 ? (1 - easeOut(1 - p * 2)) / 2 : .5 + easeOut((p - .5) * 2) / 2; 1379 }; 1380 }, 1381 _configElastic = function _configElastic(type, amplitude, period) { 1382 var p1 = amplitude >= 1 ? amplitude : 1, 1383 p2 = (period || (type ? .3 : .45)) / (amplitude < 1 ? amplitude : 1), 1384 p3 = p2 / _2PI * (Math.asin(1 / p1) || 0), 1385 easeOut = function easeOut(p) { 1386 return p === 1 ? 1 : p1 * Math.pow(2, -10 * p) * _sin((p - p3) * p2) + 1; 1387 }, 1388 ease = type === "out" ? easeOut : type === "in" ? function (p) { 1389 return 1 - easeOut(1 - p); 1390 } : _easeInOutFromOut(easeOut); 1391 1392 p2 = _2PI / p2; 1393 1394 ease.config = function (amplitude, period) { 1395 return _configElastic(type, amplitude, period); 1396 }; 1397 1398 return ease; 1399 }, 1400 _configBack = function _configBack(type, overshoot) { 1401 if (overshoot === void 0) { 1402 overshoot = 1.70158; 1403 } 1404 1405 var easeOut = function easeOut(p) { 1406 return p ? --p * p * ((overshoot + 1) * p + overshoot) + 1 : 0; 1407 }, 1408 ease = type === "out" ? easeOut : type === "in" ? function (p) { 1409 return 1 - easeOut(1 - p); 1410 } : _easeInOutFromOut(easeOut); 1411 1412 ease.config = function (overshoot) { 1413 return _configBack(type, overshoot); 1414 }; 1415 1416 return ease; 1417 }; 1418 1419 _forEachName("Linear,Quad,Cubic,Quart,Quint,Strong", function (name, i) { 1420 var power = i < 5 ? i + 1 : i; 1421 1422 _insertEase(name + ",Power" + (power - 1), i ? function (p) { 1423 return Math.pow(p, power); 1424 } : function (p) { 1425 return p; 1426 }, function (p) { 1427 return 1 - Math.pow(1 - p, power); 1428 }, function (p) { 1429 return p < .5 ? Math.pow(p * 2, power) / 2 : 1 - Math.pow((1 - p) * 2, power) / 2; 1430 }); 1431 }); 1432 1433 _easeMap.Linear.easeNone = _easeMap.none = _easeMap.Linear.easeIn; 1434 1435 _insertEase("Elastic", _configElastic("in"), _configElastic("out"), _configElastic()); 1436 1437 (function (n, c) { 1438 var n1 = 1 / c, 1439 n2 = 2 * n1, 1440 n3 = 2.5 * n1, 1441 easeOut = function easeOut(p) { 1442 return p < n1 ? n * p * p : p < n2 ? n * Math.pow(p - 1.5 / c, 2) + .75 : p < n3 ? n * (p -= 2.25 / c) * p + .9375 : n * Math.pow(p - 2.625 / c, 2) + .984375; 1443 }; 1444 1445 _insertEase("Bounce", function (p) { 1446 return 1 - easeOut(1 - p); 1447 }, easeOut); 1448 })(7.5625, 2.75); 1449 1450 _insertEase("Expo", function (p) { 1451 return p ? Math.pow(2, 10 * (p - 1)) : 0; 1452 }); 1453 1454 _insertEase("Circ", function (p) { 1455 return -(_sqrt(1 - p * p) - 1); 1456 }); 1457 1458 _insertEase("Sine", function (p) { 1459 return p === 1 ? 1 : -_cos(p * _HALF_PI) + 1; 1460 }); 1461 1462 _insertEase("Back", _configBack("in"), _configBack("out"), _configBack()); 1463 1464 _easeMap.SteppedEase = _easeMap.steps = _globals.SteppedEase = { 1465 config: function config(steps, immediateStart) { 1466 if (steps === void 0) { 1467 steps = 1; 1468 } 1469 1470 var p1 = 1 / steps, 1471 p2 = steps + (immediateStart ? 0 : 1), 1472 p3 = immediateStart ? 1 : 0, 1473 max = 1 - _tinyNum; 1474 return function (p) { 1475 return ((p2 * _clamp(0, max, p) | 0) + p3) * p1; 1476 }; 1477 } 1478 }; 1479 _defaults.ease = _easeMap["quad.out"]; 1480 1481 _forEachName("onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt", function (name) { 1482 return _callbackNames += name + "," + name + "Params,"; 1483 }); 1484 1485 var GSCache = function GSCache(target, harness) { 1486 this.id = _gsID++; 1487 target._gsap = this; 1488 this.target = target; 1489 this.harness = harness; 1490 this.get = harness ? harness.get : _getProperty; 1491 this.set = harness ? harness.getSetter : _getSetter; 1492 }; 1493 var Animation = function () { 1494 function Animation(vars) { 1495 this.vars = vars;
vendor: 5,018 bytes, lines 1496-1630
1496 this._delay = +vars.delay || 0; 1497 1498 if (this._repeat = vars.repeat === Infinity ? -2 : vars.repeat || 0) { 1499 this._rDelay = vars.repeatDelay || 0; 1500 this._yoyo = !!vars.yoyo || !!vars.yoyoEase; 1501 } 1502 1503 this._ts = 1; 1504 1505 _setDuration(this, +vars.duration, 1, 1); 1506 1507 this.data = vars.data; 1508 _tickerActive || _ticker.wake(); 1509 } 1510 1511 var _proto = Animation.prototype; 1512 1513 _proto.delay = function delay(value) { 1514 if (value || value === 0) { 1515 this.parent && this.parent.smoothChildTiming && this.startTime(this._start + value - this._delay); 1516 this._delay = value; 1517 return this; 1518 } 1519 1520 return this._delay; 1521 }; 1522 1523 _proto.duration = function duration(value) { 1524 return arguments.length ? this.totalDuration(this._repeat > 0 ? value + (value + this._rDelay) * this._repeat : value) : this.totalDuration() && this._dur; 1525 }; 1526 1527 _proto.totalDuration = function totalDuration(value) { 1528 if (!arguments.length) { 1529 return this._tDur; 1530 } 1531 1532 this._dirty = 0; 1533 return _setDuration(this, this._repeat < 0 ? value : (value - this._repeat * this._rDelay) / (this._repeat + 1)); 1534 }; 1535 1536 _proto.totalTime = function totalTime(_totalTime, suppressEvents) { 1537 _wake(); 1538 1539 if (!arguments.length) { 1540 return this._tTime; 1541 } 1542 1543 var parent = this._dp; 1544 1545 if (parent && parent.smoothChildTiming && this._ts) { 1546 _alignPlayhead(this, _totalTime); 1547 1548 !parent._dp || parent.parent || _postAddChecks(parent, this); 1549 1550 while (parent.parent) { 1551 if (parent.parent._time !== parent._start + (parent._ts >= 0 ? parent._tTime / parent._ts : (parent.totalDuration() - parent._tTime) / -parent._ts)) { 1552 parent.totalTime(parent._tTime, true); 1553 } 1554 1555 parent = parent.parent; 1556 } 1557 1558 if (!this.parent && this._dp.autoRemoveChildren && (this._ts > 0 && _totalTime < this._tDur || this._ts < 0 && _totalTime > 0 || !this._tDur && !_totalTime)) { 1559 _addToTimeline(this._dp, this, this._start - this._delay); 1560 } 1561 } 1562 1563 if (this._tTime !== _totalTime || !this._dur && !suppressEvents || this._initted && Math.abs(this._zTime) === _tinyNum || !_totalTime && !this._initted && (this.add || this._ptLookup)) { 1564 this._ts || (this._pTime = _totalTime); 1565 1566 _lazySafeRender(this, _totalTime, suppressEvents); 1567 } 1568 1569 return this; 1570 }; 1571 1572 _proto.time = function time(value, suppressEvents) { 1573 return arguments.length ? this.totalTime(Math.min(this.totalDuration(), value + _elapsedCycleDuration(this)) % (this._dur + this._rDelay) || (value ? this._dur : 0), suppressEvents) : this._time; 1574 }; 1575 1576 _proto.totalProgress = function totalProgress(value, suppressEvents) { 1577 return arguments.length ? this.totalTime(this.totalDuration() * value, suppressEvents) : this.totalDuration() ? Math.min(1, this._tTime / this._tDur) : this.ratio; 1578 }; 1579 1580 _proto.progress = function progress(value, suppressEvents) { 1581 return arguments.length ? this.totalTime(this.duration() * (this._yoyo && !(this.iteration() & 1) ? 1 - value : value) + _elapsedCycleDuration(this), suppressEvents) : this.duration() ? Math.min(1, this._time / this._dur) : this.ratio; 1582 }; 1583 1584 _proto.iteration = function iteration(value, suppressEvents) { 1585 var cycleDuration = this.duration() + this._rDelay; 1586 1587 return arguments.length ? this.totalTime(this._time + (value - 1) * cycleDuration, suppressEvents) : this._repeat ? _animationCycle(this._tTime, cycleDuration) + 1 : 1; 1588 }; 1589 1590 _proto.timeScale = function timeScale(value) { 1591 if (!arguments.length) { 1592 return this._rts === -_tinyNum ? 0 : this._rts; 1593 } 1594 1595 if (this._rts === value) { 1596 return this; 1597 } 1598 1599 var tTime = this.parent && this._ts ? _parentToChildTotalTime(this.parent._time, this) : this._tTime; 1600 this._rts = +value || 0; 1601 this._ts = this._ps || value === -_tinyNum ? 0 : this._rts; 1602 return _recacheAncestors(this.totalTime(_clamp(-this._delay, this._tDur, tTime), true)); 1603 }; 1604 1605 _proto.paused = function paused(value) { 1606 if (!arguments.length) { 1607 return this._ps; 1608 } 1609 1610 if (this._ps !== value) { 1611 this._ps = value; 1612 1613 if (value) { 1614 this._pTime = this._tTime || Math.max(-this._delay, this.rawTime()); 1615 this._ts = this._act = 0; 1616 } else { 1617 _wake(); 1618 1619 this._ts = this._rts; 1620 this.totalTime(this.parent && !this.parent.smoothChildTiming ? this.rawTime() : this._tTime || this._pTime, this.progress() === 1 && Math.abs(this._zTime) !== _tinyNum && (this._tTime -= _tinyNum)); 1621 } 1622 } 1623 1624 return this; 1625 }; 1626 1627 _proto.startTime = function startTime(value) { 1628 if (arguments.length) { 1629 this._start = value; 1630 var parent = this.parent || this._dp;
vendor: 2,984 bytes, lines 1631-1725
1631 parent && (parent._sort || !this.parent) && _addToTimeline(parent, this, value - this._delay); 1632 return this; 1633 } 1634 1635 return this._start; 1636 }; 1637 1638 _proto.endTime = function endTime(includeRepeats) { 1639 return this._start + (_isNotFalse(includeRepeats) ? this.totalDuration() : this.duration()) / Math.abs(this._ts); 1640 }; 1641 1642 _proto.rawTime = function rawTime(wrapRepeats) { 1643 var parent = this.parent || this._dp; 1644 return !parent ? this._tTime : wrapRepeats && (!this._ts || this._repeat && this._time && this.totalProgress() < 1) ? this._tTime % (this._dur + this._rDelay) : !this._ts ? this._tTime : _parentToChildTotalTime(parent.rawTime(wrapRepeats), this); 1645 }; 1646 1647 _proto.globalTime = function globalTime(rawTime) { 1648 var animation = this, 1649 time = arguments.length ? rawTime : animation.rawTime(); 1650 1651 while (animation) { 1652 time = animation._start + time / (animation._ts || 1); 1653 animation = animation._dp; 1654 } 1655 1656 return time; 1657 }; 1658 1659 _proto.repeat = function repeat(value) { 1660 if (arguments.length) { 1661 this._repeat = value === Infinity ? -2 : value; 1662 return _onUpdateTotalDuration(this); 1663 } 1664 1665 return this._repeat === -2 ? Infinity : this._repeat; 1666 }; 1667 1668 _proto.repeatDelay = function repeatDelay(value) { 1669 if (arguments.length) { 1670 var time = this._time; 1671 this._rDelay = value; 1672 1673 _onUpdateTotalDuration(this); 1674 1675 return time ? this.time(time) : this; 1676 } 1677 1678 return this._rDelay; 1679 }; 1680 1681 _proto.yoyo = function yoyo(value) { 1682 if (arguments.length) { 1683 this._yoyo = value; 1684 return this; 1685 } 1686 1687 return this._yoyo; 1688 }; 1689 1690 _proto.seek = function seek(position, suppressEvents) { 1691 return this.totalTime(_parsePosition(this, position), _isNotFalse(suppressEvents)); 1692 }; 1693 1694 _proto.restart = function restart(includeDelay, suppressEvents) { 1695 return this.play().totalTime(includeDelay ? -this._delay : 0, _isNotFalse(suppressEvents)); 1696 }; 1697 1698 _proto.play = function play(from, suppressEvents) { 1699 from != null && this.seek(from, suppressEvents); 1700 return this.reversed(false).paused(false); 1701 }; 1702 1703 _proto.reverse = function reverse(from, suppressEvents) { 1704 from != null && this.seek(from || this.totalDuration(), suppressEvents); 1705 return this.reversed(true).paused(false); 1706 }; 1707 1708 _proto.pause = function pause(atTime, suppressEvents) { 1709 atTime != null && this.seek(atTime, suppressEvents); 1710 return this.paused(true); 1711 }; 1712 1713 _proto.resume = function resume() { 1714 return this.paused(false); 1715 }; 1716 1717 _proto.reversed = function reversed(value) { 1718 if (arguments.length) { 1719 !!value !== this.reversed() && this.timeScale(-this._rts || (value ? -_tinyNum : 0)); 1720 return this; 1721 } 1722 1723 return this._rts < 0; 1724 }; 1725
vendor: 11,086 bytes, lines 1726-2061
1726 _proto.invalidate = function invalidate() { 1727 this._initted = this._act = 0; 1728 this._zTime = -_tinyNum; 1729 return this; 1730 }; 1731 1732 _proto.isActive = function isActive() { 1733 var parent = this.parent || this._dp, 1734 start = this._start, 1735 rawTime; 1736 return !!(!parent || this._ts && this._initted && parent.isActive() && (rawTime = parent.rawTime(true)) >= start && rawTime < this.endTime(true) - _tinyNum); 1737 }; 1738 1739 _proto.eventCallback = function eventCallback(type, callback, params) { 1740 var vars = this.vars; 1741 1742 if (arguments.length > 1) { 1743 if (!callback) { 1744 delete vars[type]; 1745 } else { 1746 vars[type] = callback; 1747 params && (vars[type + "Params"] = params); 1748 type === "onUpdate" && (this._onUpdate = callback); 1749 } 1750 1751 return this; 1752 } 1753 1754 return vars[type]; 1755 }; 1756 1757 _proto.then = function then(onFulfilled) { 1758 var self = this; 1759 return new Promise(function (resolve) { 1760 var f = _isFunction(onFulfilled) ? onFulfilled : _passThrough, 1761 _resolve = function _resolve() { 1762 var _then = self.then; 1763 self.then = null; 1764 _isFunction(f) && (f = f(self)) && (f.then || f === self) && (self.then = _then); 1765 resolve(f); 1766 self.then = _then; 1767 }; 1768 1769 if (self._initted && self.totalProgress() === 1 && self._ts >= 0 || !self._tTime && self._ts < 0) { 1770 _resolve(); 1771 } else { 1772 self._prom = _resolve; 1773 } 1774 }); 1775 }; 1776 1777 _proto.kill = function kill() { 1778 _interrupt(this); 1779 }; 1780 1781 return Animation; 1782 }(); 1783 1784 _setDefaults(Animation.prototype, { 1785 _time: 0, 1786 _start: 0, 1787 _end: 0, 1788 _tTime: 0, 1789 _tDur: 0, 1790 _dirty: 0, 1791 _repeat: 0, 1792 _yoyo: false, 1793 parent: null, 1794 _initted: false, 1795 _rDelay: 0, 1796 _ts: 1, 1797 _dp: 0, 1798 ratio: 0, 1799 _zTime: -_tinyNum, 1800 _prom: 0, 1801 _ps: false, 1802 _rts: 1 1803 }); 1804 1805 var Timeline = function (_Animation) { 1806 _inheritsLoose(Timeline, _Animation); 1807 1808 function Timeline(vars, position) { 1809 var _this; 1810 1811 if (vars === void 0) { 1812 vars = {}; 1813 } 1814 1815 _this = _Animation.call(this, vars) || this; 1816 _this.labels = {}; 1817 _this.smoothChildTiming = !!vars.smoothChildTiming; 1818 _this.autoRemoveChildren = !!vars.autoRemoveChildren; 1819 _this._sort = _isNotFalse(vars.sortChildren); 1820 _globalTimeline && _addToTimeline(vars.parent || _globalTimeline, _assertThisInitialized(_this), position); 1821 vars.reversed && _this.reverse(); 1822 vars.paused && _this.paused(true); 1823 vars.scrollTrigger && _scrollTrigger(_assertThisInitialized(_this), vars.scrollTrigger); 1824 return _this; 1825 } 1826 1827 var _proto2 = Timeline.prototype; 1828 1829 _proto2.to = function to(targets, vars, position) { 1830 _createTweenType(0, arguments, this); 1831 1832 return this; 1833 }; 1834 1835 _proto2.from = function from(targets, vars, position) { 1836 _createTweenType(1, arguments, this); 1837 1838 return this; 1839 }; 1840 1841 _proto2.fromTo = function fromTo(targets, fromVars, toVars, position) { 1842 _createTweenType(2, arguments, this); 1843 1844 return this; 1845 }; 1846 1847 _proto2.set = function set(targets, vars, position) { 1848 vars.duration = 0; 1849 vars.parent = this; 1850 _inheritDefaults(vars).repeatDelay || (vars.repeat = 0); 1851 vars.immediateRender = !!vars.immediateRender; 1852 new Tween(targets, vars, _parsePosition(this, position), 1); 1853 return this; 1854 }; 1855 1856 _proto2.call = function call(callback, params, position) { 1857 return _addToTimeline(this, Tween.delayedCall(0, callback, params), position); 1858 }; 1859 1860 _proto2.staggerTo = function staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) { 1861 vars.duration = duration; 1862 vars.stagger = vars.stagger || stagger; 1863 vars.onComplete = onCompleteAll; 1864 vars.onCompleteParams = onCompleteAllParams; 1865 vars.parent = this; 1866 new Tween(targets, vars, _parsePosition(this, position)); 1867 return this; 1868 }; 1869 1870 _proto2.staggerFrom = function staggerFrom(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) { 1871 vars.runBackwards = 1; 1872 _inheritDefaults(vars).immediateRender = _isNotFalse(vars.immediateRender); 1873 return this.staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams); 1874 }; 1875 1876 _proto2.staggerFromTo = function staggerFromTo(targets, duration, fromVars, toVars, stagger, position, onCompleteAll, onCompleteAllParams) { 1877 toVars.startAt = fromVars; 1878 _inheritDefaults(toVars).immediateRender = _isNotFalse(toVars.immediateRender); 1879 return this.staggerTo(targets, duration, toVars, stagger, position, onCompleteAll, onCompleteAllParams); 1880 }; 1881 1882 _proto2.render = function render(totalTime, suppressEvents, force) { 1883 var prevTime = this._time, 1884 tDur = this._dirty ? this.totalDuration() : this._tDur, 1885 dur = this._dur, 1886 tTime = this !== _globalTimeline && totalTime > tDur - _tinyNum && totalTime >= 0 ? tDur : totalTime < _tinyNum ? 0 : totalTime, 1887 crossingStart = this._zTime < 0 !== totalTime < 0 && (this._initted || !dur), 1888 time, 1889 child, 1890 next, 1891 iteration, 1892 cycleDuration, 1893 prevPaused, 1894 pauseTween, 1895 timeScale, 1896 prevStart, 1897 prevIteration, 1898 yoyo, 1899 isYoyo; 1900 1901 if (tTime !== this._tTime || force || crossingStart) { 1902 if (prevTime !== this._time && dur) { 1903 tTime += this._time - prevTime; 1904 totalTime += this._time - prevTime; 1905 } 1906 1907 time = tTime; 1908 prevStart = this._start; 1909 timeScale = this._ts; 1910 prevPaused = !timeScale; 1911 1912 if (crossingStart) { 1913 dur || (prevTime = this._zTime); 1914 (totalTime || !suppressEvents) && (this._zTime = totalTime); 1915 } 1916 1917 if (this._repeat) { 1918 yoyo = this._yoyo; 1919 cycleDuration = dur + this._rDelay; 1920 1921 if (this._repeat < -1 && totalTime < 0) { 1922 return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force); 1923 } 1924 1925 time = _round(tTime % cycleDuration); 1926 1927 if (tTime === tDur) { 1928 iteration = this._repeat; 1929 time = dur; 1930 } else { 1931 iteration = ~~(tTime / cycleDuration); 1932 1933 if (iteration && iteration === tTime / cycleDuration) { 1934 time = dur; 1935 iteration--; 1936 } 1937 1938 time > dur && (time = dur); 1939 } 1940 1941 prevIteration = _animationCycle(this._tTime, cycleDuration); 1942 !prevTime && this._tTime && prevIteration !== iteration && (prevIteration = iteration); 1943 1944 if (yoyo && iteration & 1) { 1945 time = dur - time; 1946 isYoyo = 1; 1947 } 1948 1949 if (iteration !== prevIteration && !this._lock) { 1950 var rewinding = yoyo && prevIteration & 1, 1951 doesWrap = rewinding === (yoyo && iteration & 1); 1952 iteration < prevIteration && (rewinding = !rewinding); 1953 prevTime = rewinding ? 0 : dur; 1954 this._lock = 1; 1955 this.render(prevTime || (isYoyo ? 0 : _round(iteration * cycleDuration)), suppressEvents, !dur)._lock = 0; 1956 this._tTime = tTime; 1957 !suppressEvents && this.parent && _callback(this, "onRepeat"); 1958 this.vars.repeatRefresh && !isYoyo && (this.invalidate()._lock = 1); 1959 1960 if (prevTime && prevTime !== this._time || prevPaused !== !this._ts || this.vars.onRepeat && !this.parent && !this._act) { 1961 return this; 1962 } 1963 1964 dur = this._dur; 1965 tDur = this._tDur; 1966 1967 if (doesWrap) { 1968 this._lock = 2; 1969 prevTime = rewinding ? dur : -0.0001; 1970 this.render(prevTime, true); 1971 this.vars.repeatRefresh && !isYoyo && this.invalidate(); 1972 } 1973 1974 this._lock = 0; 1975 1976 if (!this._ts && !prevPaused) { 1977 return this; 1978 } 1979 1980 _propagateYoyoEase(this, isYoyo); 1981 } 1982 } 1983 1984 if (this._hasPause && !this._forcing && this._lock < 2) { 1985 pauseTween = _findNextPauseTween(this, _round(prevTime), _round(time)); 1986 1987 if (pauseTween) { 1988 tTime -= time - (time = pauseTween._start); 1989 } 1990 } 1991 1992 this._tTime = tTime; 1993 this._time = time; 1994 this._act = !timeScale; 1995 1996 if (!this._initted) { 1997 this._onUpdate = this.vars.onUpdate; 1998 this._initted = 1; 1999 this._zTime = totalTime; 2000 prevTime = 0; 2001 } 2002 2003 if (!prevTime && time && !suppressEvents) { 2004 _callback(this, "onStart"); 2005 2006 if (this._tTime !== tTime) { 2007 return this; 2008 } 2009 } 2010 2011 if (time >= prevTime && totalTime >= 0) { 2012 child = this._first; 2013 2014 while (child) { 2015 next = child._next; 2016 2017 if ((child._act || time >= child._start) && child._ts && pauseTween !== child) { 2018 if (child.parent !== this) { 2019 return this.render(totalTime, suppressEvents, force); 2020 } 2021 2022 child.render(child._ts > 0 ? (time - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (time - child._start) * child._ts, suppressEvents, force); 2023 2024 if (time !== this._time || !this._ts && !prevPaused) { 2025 pauseTween = 0; 2026 next && (tTime += this._zTime = -_tinyNum); 2027 break; 2028 } 2029 } 2030 2031 child = next; 2032 } 2033 } else { 2034 child = this._last; 2035 var adjustedTime = totalTime < 0 ? totalTime : time; 2036 2037 while (child) { 2038 next = child._prev; 2039 2040 if ((child._act || adjustedTime <= child._end) && child._ts && pauseTween !== child) { 2041 if (child.parent !== this) { 2042 return this.render(totalTime, suppressEvents, force); 2043 } 2044 2045 child.render(child._ts > 0 ? (adjustedTime - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (adjustedTime - child._start) * child._ts, suppressEvents, force); 2046 2047 if (time !== this._time || !this._ts && !prevPaused) { 2048 pauseTween = 0; 2049 next && (tTime += this._zTime = adjustedTime ? -_tinyNum : _tinyNum); 2050 break; 2051 } 2052 } 2053 2054 child = next; 2055 } 2056 } 2057 2058 if (pauseTween && !suppressEvents) { 2059 this.pause(); 2060 pauseTween.render(time >= prevTime ? 0 : -_tinyNum)._zTime = time >= prevTime ? 1 : -1; 2061
vendor: 13,387 bytes, lines 2062-2529
2062 if (this._ts) { 2063 this._start = prevStart; 2064 2065 _setEnd(this); 2066 2067 return this.render(totalTime, suppressEvents, force); 2068 } 2069 } 2070 2071 this._onUpdate && !suppressEvents && _callback(this, "onUpdate", true); 2072 if (tTime === tDur && tDur >= this.totalDuration() || !tTime && prevTime) if (prevStart === this._start || Math.abs(timeScale) !== Math.abs(this._ts)) if (!this._lock) { 2073 (totalTime || !dur) && (tTime === tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); 2074 2075 if (!suppressEvents && !(totalTime < 0 && !prevTime) && (tTime || prevTime || !tDur)) { 2076 _callback(this, tTime === tDur && totalTime >= 0 ? "onComplete" : "onReverseComplete", true); 2077 2078 this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom(); 2079 } 2080 } 2081 } 2082 2083 return this; 2084 }; 2085 2086 _proto2.add = function add(child, position) { 2087 var _this2 = this; 2088 2089 _isNumber(position) || (position = _parsePosition(this, position, child)); 2090 2091 if (!(child instanceof Animation)) { 2092 if (_isArray(child)) { 2093 child.forEach(function (obj) { 2094 return _this2.add(obj, position); 2095 }); 2096 return this; 2097 } 2098 2099 if (_isString(child)) { 2100 return this.addLabel(child, position); 2101 } 2102 2103 if (_isFunction(child)) { 2104 child = Tween.delayedCall(0, child); 2105 } else { 2106 return this; 2107 } 2108 } 2109 2110 return this !== child ? _addToTimeline(this, child, position) : this; 2111 }; 2112 2113 _proto2.getChildren = function getChildren(nested, tweens, timelines, ignoreBeforeTime) { 2114 if (nested === void 0) { 2115 nested = true; 2116 } 2117 2118 if (tweens === void 0) { 2119 tweens = true; 2120 } 2121 2122 if (timelines === void 0) { 2123 timelines = true; 2124 } 2125 2126 if (ignoreBeforeTime === void 0) { 2127 ignoreBeforeTime = -_bigNum; 2128 } 2129 2130 var a = [], 2131 child = this._first; 2132 2133 while (child) { 2134 if (child._start >= ignoreBeforeTime) { 2135 if (child instanceof Tween) { 2136 tweens && a.push(child); 2137 } else { 2138 timelines && a.push(child); 2139 nested && a.push.apply(a, child.getChildren(true, tweens, timelines)); 2140 } 2141 } 2142 2143 child = child._next; 2144 } 2145 2146 return a; 2147 }; 2148 2149 _proto2.getById = function getById(id) { 2150 var animations = this.getChildren(1, 1, 1), 2151 i = animations.length; 2152 2153 while (i--) { 2154 if (animations[i].vars.id === id) { 2155 return animations[i]; 2156 } 2157 } 2158 }; 2159 2160 _proto2.remove = function remove(child) { 2161 if (_isString(child)) { 2162 return this.removeLabel(child); 2163 } 2164 2165 if (_isFunction(child)) { 2166 return this.killTweensOf(child); 2167 } 2168 2169 _removeLinkedListItem(this, child); 2170 2171 if (child === this._recent) { 2172 this._recent = this._last; 2173 } 2174 2175 return _uncache(this); 2176 }; 2177 2178 _proto2.totalTime = function totalTime(_totalTime2, suppressEvents) { 2179 if (!arguments.length) { 2180 return this._tTime; 2181 } 2182 2183 this._forcing = 1; 2184 2185 if (!this._dp && this._ts) { 2186 this._start = _round(_ticker.time - (this._ts > 0 ? _totalTime2 / this._ts : (this.totalDuration() - _totalTime2) / -this._ts)); 2187 } 2188 2189 _Animation.prototype.totalTime.call(this, _totalTime2, suppressEvents); 2190 2191 this._forcing = 0; 2192 return this; 2193 }; 2194 2195 _proto2.addLabel = function addLabel(label, position) { 2196 this.labels[label] = _parsePosition(this, position); 2197 return this; 2198 }; 2199 2200 _proto2.removeLabel = function removeLabel(label) { 2201 delete this.labels[label]; 2202 return this; 2203 }; 2204 2205 _proto2.addPause = function addPause(position, callback, params) { 2206 var t = Tween.delayedCall(0, callback || _emptyFunc, params); 2207 t.data = "isPause"; 2208 this._hasPause = 1; 2209 return _addToTimeline(this, t, _parsePosition(this, position)); 2210 }; 2211 2212 _proto2.removePause = function removePause(position) { 2213 var child = this._first; 2214 position = _parsePosition(this, position); 2215 2216 while (child) { 2217 if (child._start === position && child.data === "isPause") { 2218 _removeFromParent(child); 2219 } 2220 2221 child = child._next; 2222 } 2223 }; 2224 2225 _proto2.killTweensOf = function killTweensOf(targets, props, onlyActive) { 2226 var tweens = this.getTweensOf(targets, onlyActive), 2227 i = tweens.length; 2228 2229 while (i--) { 2230 _overwritingTween !== tweens[i] && tweens[i].kill(targets, props); 2231 } 2232 2233 return this; 2234 }; 2235 2236 _proto2.getTweensOf = function getTweensOf(targets, onlyActive) { 2237 var a = [], 2238 parsedTargets = toArray(targets), 2239 child = this._first, 2240 isGlobalTime = _isNumber(onlyActive), 2241 children; 2242 2243 while (child) { 2244 if (child instanceof Tween) { 2245 if (_arrayContainsAny(child._targets, parsedTargets) && (isGlobalTime ? (!_overwritingTween || child._initted && child._ts) && child.globalTime(0) <= onlyActive && child.globalTime(child.totalDuration()) > onlyActive : !onlyActive || child.isActive())) { 2246 a.push(child); 2247 } 2248 } else if ((children = child.getTweensOf(parsedTargets, onlyActive)).length) { 2249 a.push.apply(a, children); 2250 } 2251 2252 child = child._next; 2253 } 2254 2255 return a; 2256 }; 2257 2258 _proto2.tweenTo = function tweenTo(position, vars) { 2259 vars = vars || {}; 2260 2261 var tl = this, 2262 endTime = _parsePosition(tl, position), 2263 _vars = vars, 2264 startAt = _vars.startAt, 2265 _onStart = _vars.onStart, 2266 onStartParams = _vars.onStartParams, 2267 immediateRender = _vars.immediateRender, 2268 initted, 2269 tween = Tween.to(tl, _setDefaults({ 2270 ease: vars.ease || "none", 2271 lazy: false, 2272 immediateRender: false, 2273 time: endTime, 2274 overwrite: "auto", 2275 duration: vars.duration || Math.abs((endTime - (startAt && "time" in startAt ? startAt.time : tl._time)) / tl.timeScale()) || _tinyNum, 2276 onStart: function onStart() { 2277 tl.pause(); 2278 2279 if (!initted) { 2280 var duration = vars.duration || Math.abs((endTime - (startAt && "time" in startAt ? startAt.time : tl._time)) / tl.timeScale()); 2281 tween._dur !== duration && _setDuration(tween, duration, 0, 1).render(tween._time, true, true); 2282 initted = 1; 2283 } 2284 2285 _onStart && _onStart.apply(tween, onStartParams || []); 2286 } 2287 }, vars)); 2288 2289 return immediateRender ? tween.render(0) : tween; 2290 }; 2291 2292 _proto2.tweenFromTo = function tweenFromTo(fromPosition, toPosition, vars) { 2293 return this.tweenTo(toPosition, _setDefaults({ 2294 startAt: { 2295 time: _parsePosition(this, fromPosition) 2296 } 2297 }, vars)); 2298 }; 2299 2300 _proto2.recent = function recent() { 2301 return this._recent; 2302 }; 2303 2304 _proto2.nextLabel = function nextLabel(afterTime) { 2305 if (afterTime === void 0) { 2306 afterTime = this._time; 2307 } 2308 2309 return _getLabelInDirection(this, _parsePosition(this, afterTime)); 2310 }; 2311 2312 _proto2.previousLabel = function previousLabel(beforeTime) { 2313 if (beforeTime === void 0) { 2314 beforeTime = this._time; 2315 } 2316 2317 return _getLabelInDirection(this, _parsePosition(this, beforeTime), 1); 2318 }; 2319 2320 _proto2.currentLabel = function currentLabel(value) { 2321 return arguments.length ? this.seek(value, true) : this.previousLabel(this._time + _tinyNum); 2322 }; 2323 2324 _proto2.shiftChildren = function shiftChildren(amount, adjustLabels, ignoreBeforeTime) { 2325 if (ignoreBeforeTime === void 0) { 2326 ignoreBeforeTime = 0; 2327 } 2328 2329 var child = this._first, 2330 labels = this.labels, 2331 p; 2332 2333 while (child) { 2334 if (child._start >= ignoreBeforeTime) { 2335 child._start += amount; 2336 child._end += amount; 2337 } 2338 2339 child = child._next; 2340 } 2341 2342 if (adjustLabels) { 2343 for (p in labels) { 2344 if (labels[p] >= ignoreBeforeTime) { 2345 labels[p] += amount; 2346 } 2347 } 2348 } 2349 2350 return _uncache(this); 2351 }; 2352 2353 _proto2.invalidate = function invalidate() { 2354 var child = this._first; 2355 this._lock = 0; 2356 2357 while (child) { 2358 child.invalidate(); 2359 child = child._next; 2360 } 2361 2362 return _Animation.prototype.invalidate.call(this); 2363 }; 2364 2365 _proto2.clear = function clear(includeLabels) { 2366 if (includeLabels === void 0) { 2367 includeLabels = true; 2368 } 2369 2370 var child = this._first, 2371 next; 2372 2373 while (child) { 2374 next = child._next; 2375 this.remove(child); 2376 child = next; 2377 } 2378 2379 this._dp && (this._time = this._tTime = this._pTime = 0); 2380 includeLabels && (this.labels = {}); 2381 return _uncache(this); 2382 }; 2383 2384 _proto2.totalDuration = function totalDuration(value) { 2385 var max = 0, 2386 self = this, 2387 child = self._last, 2388 prevStart = _bigNum, 2389 prev, 2390 start, 2391 parent; 2392 2393 if (arguments.length) { 2394 return self.timeScale((self._repeat < 0 ? self.duration() : self.totalDuration()) / (self.reversed() ? -value : value)); 2395 } 2396 2397 if (self._dirty) { 2398 parent = self.parent; 2399 2400 while (child) { 2401 prev = child._prev; 2402 child._dirty && child.totalDuration(); 2403 start = child._start; 2404 2405 if (start > prevStart && self._sort && child._ts && !self._lock) { 2406 self._lock = 1; 2407 _addToTimeline(self, child, start - child._delay, 1)._lock = 0; 2408 } else { 2409 prevStart = start; 2410 } 2411 2412 if (start < 0 && child._ts) { 2413 max -= start; 2414 2415 if (!parent && !self._dp || parent && parent.smoothChildTiming) { 2416 self._start += start / self._ts; 2417 self._time -= start; 2418 self._tTime -= start; 2419 } 2420 2421 self.shiftChildren(-start, false, -1e999); 2422 prevStart = 0; 2423 } 2424 2425 child._end > max && child._ts && (max = child._end); 2426 child = prev; 2427 } 2428 2429 _setDuration(self, self === _globalTimeline && self._time > max ? self._time : max, 1, 1); 2430 2431 self._dirty = 0; 2432 } 2433 2434 return self._tDur; 2435 }; 2436 2437 Timeline.updateRoot = function updateRoot(time) { 2438 if (_globalTimeline._ts) { 2439 _lazySafeRender(_globalTimeline, _parentToChildTotalTime(time, _globalTimeline)); 2440 2441 _lastRenderedFrame = _ticker.frame; 2442 } 2443 2444 if (_ticker.frame >= _nextGCFrame) { 2445 _nextGCFrame += _config.autoSleep || 120; 2446 var child = _globalTimeline._first; 2447 if (!child || !child._ts) if (_config.autoSleep && _ticker._listeners.length < 2) { 2448 while (child && !child._ts) { 2449 child = child._next; 2450 } 2451 2452 child || _ticker.sleep(); 2453 } 2454 } 2455 }; 2456 2457 return Timeline; 2458 }(Animation); 2459 2460 _setDefaults(Timeline.prototype, { 2461 _lock: 0, 2462 _hasPause: 0, 2463 _forcing: 0 2464 }); 2465 2466 var _addComplexStringPropTween = function _addComplexStringPropTween(target, prop, start, end, setter, stringFilter, funcParam) { 2467 var pt = new PropTween(this._pt, target, prop, 0, 1, _renderComplexString, null, setter), 2468 index = 0, 2469 matchIndex = 0, 2470 result, 2471 startNums, 2472 color, 2473 endNum, 2474 chunk, 2475 startNum, 2476 hasRandom, 2477 a; 2478 pt.b = start; 2479 pt.e = end; 2480 start += ""; 2481 end += ""; 2482 2483 if (hasRandom = ~end.indexOf("random(")) { 2484 end = _replaceRandom(end); 2485 } 2486 2487 if (stringFilter) { 2488 a = [start, end]; 2489 stringFilter(a, target, prop); 2490 start = a[0]; 2491 end = a[1]; 2492 } 2493 2494 startNums = start.match(_complexStringNumExp) || []; 2495 2496 while (result = _complexStringNumExp.exec(end)) { 2497 endNum = result[0]; 2498 chunk = end.substring(index, result.index); 2499 2500 if (color) { 2501 color = (color + 1) % 5; 2502 } else if (chunk.substr(-5) === "rgba(") { 2503 color = 1; 2504 } 2505 2506 if (endNum !== startNums[matchIndex++]) { 2507 startNum = parseFloat(startNums[matchIndex - 1]) || 0; 2508 pt._pt = { 2509 _next: pt._pt, 2510 p: chunk || matchIndex === 1 ? chunk : ",", 2511 s: startNum, 2512 c: endNum.charAt(1) === "=" ? parseFloat(endNum.substr(2)) * (endNum.charAt(0) === "-" ? -1 : 1) : parseFloat(endNum) - startNum, 2513 m: color && color < 4 ? Math.round : 0 2514 }; 2515 index = _complexStringNumExp.lastIndex; 2516 } 2517 } 2518 2519 pt.c = index < end.length ? end.substring(index, end.length) : ""; 2520 pt.fp = funcParam; 2521 2522 if (_relExp.test(end) || hasRandom) { 2523 pt.e = 0; 2524 } 2525 2526 this._pt = pt; 2527 return pt; 2528 }, 2529 _addPropTween = function _addPropTween(target, prop, start, end, index, targets, modifier, stringFilter, funcParam) {
vendor: 6,337 bytes, lines 2530-2706
2530 _isFunction(end) && (end = end(index || 0, target, targets)); 2531 var currentValue = target[prop], 2532 parsedStart = start !== "get" ? start : !_isFunction(currentValue) ? currentValue : funcParam ? target[prop.indexOf("set") || !_isFunction(target["get" + prop.substr(3)]) ? prop : "get" + prop.substr(3)](funcParam) : target[prop](), 2533 setter = !_isFunction(currentValue) ? _setterPlain : funcParam ? _setterFuncWithParam : _setterFunc, 2534 pt; 2535 2536 if (_isString(end)) { 2537 if (~end.indexOf("random(")) { 2538 end = _replaceRandom(end); 2539 } 2540 2541 if (end.charAt(1) === "=") { 2542 pt = parseFloat(parsedStart) + parseFloat(end.substr(2)) * (end.charAt(0) === "-" ? -1 : 1) + (getUnit(parsedStart) || 0); 2543 2544 if (pt || pt === 0) { 2545 end = pt; 2546 } 2547 } 2548 } 2549 2550 if (parsedStart !== end) { 2551 if (!isNaN(parsedStart * end) && end !== "") { 2552 pt = new PropTween(this._pt, target, prop, +parsedStart || 0, end - (parsedStart || 0), typeof currentValue === "boolean" ? _renderBoolean : _renderPlain, 0, setter); 2553 funcParam && (pt.fp = funcParam); 2554 modifier && pt.modifier(modifier, this, target); 2555 return this._pt = pt; 2556 } 2557 2558 !currentValue && !(prop in target) && _missingPlugin(prop, end); 2559 return _addComplexStringPropTween.call(this, target, prop, parsedStart, end, setter, stringFilter || _config.stringFilter, funcParam); 2560 } 2561 }, 2562 _processVars = function _processVars(vars, index, target, targets, tween) { 2563 _isFunction(vars) && (vars = _parseFuncOrString(vars, tween, index, target, targets)); 2564 2565 if (!_isObject(vars) || vars.style && vars.nodeType || _isArray(vars) || _isTypedArray(vars)) { 2566 return _isString(vars) ? _parseFuncOrString(vars, tween, index, target, targets) : vars; 2567 } 2568 2569 var copy = {}, 2570 p; 2571 2572 for (p in vars) { 2573 copy[p] = _parseFuncOrString(vars[p], tween, index, target, targets); 2574 } 2575 2576 return copy; 2577 }, 2578 _checkPlugin = function _checkPlugin(property, vars, tween, index, target, targets) { 2579 var plugin, pt, ptLookup, i; 2580 2581 if (_plugins[property] && (plugin = new _plugins[property]()).init(target, plugin.rawVars ? vars[property] : _processVars(vars[property], index, target, targets, tween), tween, index, targets) !== false) { 2582 tween._pt = pt = new PropTween(tween._pt, target, property, 0, 1, plugin.render, plugin, 0, plugin.priority); 2583 2584 if (tween !== _quickTween) { 2585 ptLookup = tween._ptLookup[tween._targets.indexOf(target)]; 2586 i = plugin._props.length; 2587 2588 while (i--) { 2589 ptLookup[plugin._props[i]] = pt; 2590 } 2591 } 2592 } 2593 2594 return plugin; 2595 }, 2596 _overwritingTween, 2597 _initTween = function _initTween(tween, time) { 2598 var vars = tween.vars, 2599 ease = vars.ease, 2600 startAt = vars.startAt, 2601 immediateRender = vars.immediateRender, 2602 lazy = vars.lazy, 2603 onUpdate = vars.onUpdate, 2604 onUpdateParams = vars.onUpdateParams, 2605 callbackScope = vars.callbackScope, 2606 runBackwards = vars.runBackwards, 2607 yoyoEase = vars.yoyoEase, 2608 keyframes = vars.keyframes, 2609 autoRevert = vars.autoRevert, 2610 dur = tween._dur, 2611 prevStartAt = tween._startAt, 2612 targets = tween._targets, 2613 parent = tween.parent, 2614 fullTargets = parent && parent.data === "nested" ? parent.parent._targets : targets, 2615 autoOverwrite = tween._overwrite === "auto" && !_suppressOverwrites, 2616 tl = tween.timeline, 2617 cleanVars, 2618 i, 2619 p, 2620 pt, 2621 target, 2622 hasPriority, 2623 gsData, 2624 harness, 2625 plugin, 2626 ptLookup, 2627 index, 2628 harnessVars, 2629 overwritten; 2630 tl && (!keyframes || !ease) && (ease = "none"); 2631 tween._ease = _parseEase(ease, _defaults.ease); 2632 tween._yEase = yoyoEase ? _invertEase(_parseEase(yoyoEase === true ? ease : yoyoEase, _defaults.ease)) : 0; 2633 2634 if (yoyoEase && tween._yoyo && !tween._repeat) { 2635 yoyoEase = tween._yEase; 2636 tween._yEase = tween._ease; 2637 tween._ease = yoyoEase; 2638 } 2639 2640 tween._from = !tl && !!vars.runBackwards; 2641 2642 if (!tl) { 2643 harness = targets[0] ? _getCache(targets[0]).harness : 0; 2644 harnessVars = harness && vars[harness.prop]; 2645 cleanVars = _copyExcluding(vars, _reservedProps); 2646 prevStartAt && prevStartAt.render(-1, true).kill(); 2647 2648 if (startAt) { 2649 _removeFromParent(tween._startAt = Tween.set(targets, _setDefaults({ 2650 data: "isStart", 2651 overwrite: false, 2652 parent: parent, 2653 immediateRender: true, 2654 lazy: _isNotFalse(lazy), 2655 startAt: null, 2656 delay: 0, 2657 onUpdate: onUpdate, 2658 onUpdateParams: onUpdateParams, 2659 callbackScope: callbackScope, 2660 stagger: 0 2661 }, startAt))); 2662 2663 time < 0 && !immediateRender && !autoRevert && tween._startAt.render(-1, true); 2664 2665 if (immediateRender) { 2666 time > 0 && !autoRevert && (tween._startAt = 0); 2667 2668 if (dur && time <= 0) { 2669 time && (tween._zTime = time); 2670 return; 2671 } 2672 } else if (autoRevert === false) { 2673 tween._startAt = 0; 2674 } 2675 } else if (runBackwards && dur) { 2676 if (prevStartAt) { 2677 !autoRevert && (tween._startAt = 0); 2678 } else { 2679 time && (immediateRender = false); 2680 p = _setDefaults({ 2681 overwrite: false, 2682 data: "isFromStart", 2683 lazy: immediateRender && _isNotFalse(lazy), 2684 immediateRender: immediateRender, 2685 stagger: 0, 2686 parent: parent 2687 }, cleanVars); 2688 harnessVars && (p[harness.prop] = harnessVars); 2689 2690 _removeFromParent(tween._startAt = Tween.set(targets, p)); 2691 2692 time < 0 && tween._startAt.render(-1, true); 2693 2694 if (!immediateRender) { 2695 _initTween(tween._startAt, _tinyNum); 2696 } else if (!time) { 2697 return; 2698 } 2699 } 2700 } 2701 2702 tween._pt = 0; 2703 lazy = dur && _isNotFalse(lazy) || lazy && !dur; 2704 2705 for (i = 0; i < targets.length; i++) { 2706 target = targets[i];
vendor: 4,685 bytes, lines 2707-2837
2707 gsData = target._gsap || _harness(targets)[i]._gsap; 2708 tween._ptLookup[i] = ptLookup = {}; 2709 _lazyLookup[gsData.id] && _lazyTweens.length && _lazyRender(); 2710 index = fullTargets === targets ? i : fullTargets.indexOf(target); 2711 2712 if (harness && (plugin = new harness()).init(target, harnessVars || cleanVars, tween, index, fullTargets) !== false) { 2713 tween._pt = pt = new PropTween(tween._pt, target, plugin.name, 0, 1, plugin.render, plugin, 0, plugin.priority); 2714 2715 plugin._props.forEach(function (name) { 2716 ptLookup[name] = pt; 2717 }); 2718 2719 plugin.priority && (hasPriority = 1); 2720 } 2721 2722 if (!harness || harnessVars) { 2723 for (p in cleanVars) { 2724 if (_plugins[p] && (plugin = _checkPlugin(p, cleanVars, tween, index, target, fullTargets))) { 2725 plugin.priority && (hasPriority = 1); 2726 } else { 2727 ptLookup[p] = pt = _addPropTween.call(tween, target, p, "get", cleanVars[p], index, fullTargets, 0, vars.stringFilter); 2728 } 2729 } 2730 } 2731 2732 tween._op && tween._op[i] && tween.kill(target, tween._op[i]); 2733 2734 if (autoOverwrite && tween._pt) { 2735 _overwritingTween = tween; 2736 2737 _globalTimeline.killTweensOf(target, ptLookup, tween.globalTime(0)); 2738 2739 overwritten = !tween.parent; 2740 _overwritingTween = 0; 2741 } 2742 2743 tween._pt && lazy && (_lazyLookup[gsData.id] = 1); 2744 } 2745 2746 hasPriority && _sortPropTweensByPriority(tween); 2747 tween._onInit && tween._onInit(tween); 2748 } 2749 2750 tween._onUpdate = onUpdate; 2751 tween._initted = (!tween._op || tween._pt) && !overwritten; 2752 }, 2753 _addAliasesToVars = function _addAliasesToVars(targets, vars) { 2754 var harness = targets[0] ? _getCache(targets[0]).harness : 0, 2755 propertyAliases = harness && harness.aliases, 2756 copy, 2757 p, 2758 i, 2759 aliases; 2760 2761 if (!propertyAliases) { 2762 return vars; 2763 } 2764 2765 copy = _merge({}, vars); 2766 2767 for (p in propertyAliases) { 2768 if (p in copy) { 2769 aliases = propertyAliases[p].split(","); 2770 i = aliases.length; 2771 2772 while (i--) { 2773 copy[aliases[i]] = copy[p]; 2774 } 2775 } 2776 } 2777 2778 return copy; 2779 }, 2780 _parseFuncOrString = function _parseFuncOrString(value, tween, i, target, targets) { 2781 return _isFunction(value) ? value.call(tween, i, target, targets) : _isString(value) && ~value.indexOf("random(") ? _replaceRandom(value) : value; 2782 }, 2783 _staggerTweenProps = _callbackNames + "repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase", 2784 _staggerPropsToSkip = (_staggerTweenProps + ",id,stagger,delay,duration,paused,scrollTrigger").split(","); 2785 2786 var Tween = function (_Animation2) { 2787 _inheritsLoose(Tween, _Animation2); 2788 2789 function Tween(targets, vars, position, skipInherit) { 2790 var _this3; 2791 2792 if (typeof vars === "number") { 2793 position.duration = vars; 2794 vars = position; 2795 position = null; 2796 } 2797 2798 _this3 = _Animation2.call(this, skipInherit ? vars : _inheritDefaults(vars)) || this; 2799 var _this3$vars = _this3.vars, 2800 duration = _this3$vars.duration, 2801 delay = _this3$vars.delay, 2802 immediateRender = _this3$vars.immediateRender, 2803 stagger = _this3$vars.stagger, 2804 overwrite = _this3$vars.overwrite, 2805 keyframes = _this3$vars.keyframes, 2806 defaults = _this3$vars.defaults, 2807 scrollTrigger = _this3$vars.scrollTrigger, 2808 yoyoEase = _this3$vars.yoyoEase, 2809 parent = vars.parent || _globalTimeline, 2810 parsedTargets = (_isArray(targets) || _isTypedArray(targets) ? _isNumber(targets[0]) : "length" in vars) ? [targets] : toArray(targets), 2811 tl, 2812 i, 2813 copy, 2814 l, 2815 p, 2816 curTarget, 2817 staggerFunc, 2818 staggerVarsToMerge; 2819 _this3._targets = parsedTargets.length ? _harness(parsedTargets) : _warn("GSAP target " + targets + " not found. https://greensock.com", !_config.nullTargetWarn) || []; 2820 _this3._ptLookup = []; 2821 _this3._overwrite = overwrite; 2822 2823 if (keyframes || stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) { 2824 vars = _this3.vars; 2825 tl = _this3.timeline = new Timeline({ 2826 data: "nested", 2827 defaults: defaults || {} 2828 }); 2829 tl.kill(); 2830 tl.parent = tl._dp = _assertThisInitialized(_this3); 2831 tl._start = 0; 2832 2833 if (keyframes) { 2834 _setDefaults(tl.vars.defaults, { 2835 ease: "none" 2836 }); 2837
vendor: 7,097 bytes, lines 2838-3051
2838 stagger ? parsedTargets.forEach(function (t, i) { 2839 return keyframes.forEach(function (frame, j) { 2840 return tl.to(t, frame, j ? ">" : i * stagger); 2841 }); 2842 }) : keyframes.forEach(function (frame) { 2843 return tl.to(parsedTargets, frame, ">"); 2844 }); 2845 } else { 2846 l = parsedTargets.length; 2847 staggerFunc = stagger ? distribute(stagger) : _emptyFunc; 2848 2849 if (_isObject(stagger)) { 2850 for (p in stagger) { 2851 if (~_staggerTweenProps.indexOf(p)) { 2852 staggerVarsToMerge || (staggerVarsToMerge = {}); 2853 staggerVarsToMerge[p] = stagger[p]; 2854 } 2855 } 2856 } 2857 2858 for (i = 0; i < l; i++) { 2859 copy = {}; 2860 2861 for (p in vars) { 2862 if (_staggerPropsToSkip.indexOf(p) < 0) { 2863 copy[p] = vars[p]; 2864 } 2865 } 2866 2867 copy.stagger = 0; 2868 yoyoEase && (copy.yoyoEase = yoyoEase); 2869 staggerVarsToMerge && _merge(copy, staggerVarsToMerge); 2870 curTarget = parsedTargets[i]; 2871 copy.duration = +_parseFuncOrString(duration, _assertThisInitialized(_this3), i, curTarget, parsedTargets); 2872 copy.delay = (+_parseFuncOrString(delay, _assertThisInitialized(_this3), i, curTarget, parsedTargets) || 0) - _this3._delay; 2873 2874 if (!stagger && l === 1 && copy.delay) { 2875 _this3._delay = delay = copy.delay; 2876 _this3._start += delay; 2877 copy.delay = 0; 2878 } 2879 2880 tl.to(curTarget, copy, staggerFunc(i, curTarget, parsedTargets)); 2881 } 2882 2883 tl.duration() ? duration = delay = 0 : _this3.timeline = 0; 2884 } 2885 2886 duration || _this3.duration(duration = tl.duration()); 2887 } else { 2888 _this3.timeline = 0; 2889 } 2890 2891 if (overwrite === true && !_suppressOverwrites) { 2892 _overwritingTween = _assertThisInitialized(_this3); 2893 2894 _globalTimeline.killTweensOf(parsedTargets); 2895 2896 _overwritingTween = 0; 2897 } 2898 2899 _addToTimeline(parent, _assertThisInitialized(_this3), position); 2900 2901 vars.reversed && _this3.reverse(); 2902 vars.paused && _this3.paused(true); 2903 2904 if (immediateRender || !duration && !keyframes && _this3._start === _round(parent._time) && _isNotFalse(immediateRender) && _hasNoPausedAncestors(_assertThisInitialized(_this3)) && parent.data !== "nested") { 2905 _this3._tTime = -_tinyNum; 2906 2907 _this3.render(Math.max(0, -delay)); 2908 } 2909 2910 scrollTrigger && _scrollTrigger(_assertThisInitialized(_this3), scrollTrigger); 2911 return _this3; 2912 } 2913 2914 var _proto3 = Tween.prototype; 2915 2916 _proto3.render = function render(totalTime, suppressEvents, force) { 2917 var prevTime = this._time, 2918 tDur = this._tDur, 2919 dur = this._dur, 2920 tTime = totalTime > tDur - _tinyNum && totalTime >= 0 ? tDur : totalTime < _tinyNum ? 0 : totalTime, 2921 time, 2922 pt, 2923 iteration, 2924 cycleDuration, 2925 prevIteration, 2926 isYoyo, 2927 ratio, 2928 timeline, 2929 yoyoEase; 2930 2931 if (!dur) { 2932 _renderZeroDurationTween(this, totalTime, suppressEvents, force); 2933 } else if (tTime !== this._tTime || !totalTime || force || !this._initted && this._tTime || this._startAt && this._zTime < 0 !== totalTime < 0) { 2934 time = tTime; 2935 timeline = this.timeline; 2936 2937 if (this._repeat) { 2938 cycleDuration = dur + this._rDelay; 2939 2940 if (this._repeat < -1 && totalTime < 0) { 2941 return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force); 2942 } 2943 2944 time = _round(tTime % cycleDuration); 2945 2946 if (tTime === tDur) { 2947 iteration = this._repeat; 2948 time = dur; 2949 } else { 2950 iteration = ~~(tTime / cycleDuration); 2951 2952 if (iteration && iteration === tTime / cycleDuration) { 2953 time = dur; 2954 iteration--; 2955 } 2956 2957 time > dur && (time = dur); 2958 } 2959 2960 isYoyo = this._yoyo && iteration & 1; 2961 2962 if (isYoyo) { 2963 yoyoEase = this._yEase; 2964 time = dur - time; 2965 } 2966 2967 prevIteration = _animationCycle(this._tTime, cycleDuration); 2968 2969 if (time === prevTime && !force && this._initted) { 2970 return this; 2971 } 2972 2973 if (iteration !== prevIteration) { 2974 timeline && this._yEase && _propagateYoyoEase(timeline, isYoyo); 2975 2976 if (this.vars.repeatRefresh && !isYoyo && !this._lock) { 2977 this._lock = force = 1; 2978 this.render(_round(cycleDuration * iteration), true).invalidate()._lock = 0; 2979 } 2980 } 2981 } 2982 2983 if (!this._initted) { 2984 if (_attemptInitTween(this, totalTime < 0 ? totalTime : time, force, suppressEvents)) { 2985 this._tTime = 0; 2986 return this; 2987 } 2988 2989 if (dur !== this._dur) { 2990 return this.render(totalTime, suppressEvents, force); 2991 } 2992 } 2993 2994 this._tTime = tTime; 2995 this._time = time; 2996 2997 if (!this._act && this._ts) { 2998 this._act = 1; 2999 this._lazy = 0; 3000 } 3001 3002 this.ratio = ratio = (yoyoEase || this._ease)(time / dur); 3003 3004 if (this._from) { 3005 this.ratio = ratio = 1 - ratio; 3006 } 3007 3008 if (time && !prevTime && !suppressEvents) { 3009 _callback(this, "onStart"); 3010 3011 if (this._tTime !== tTime) { 3012 return this; 3013 } 3014 } 3015 3016 pt = this._pt; 3017 3018 while (pt) { 3019 pt.r(ratio, pt.d); 3020 pt = pt._next; 3021 } 3022 3023 timeline && timeline.render(totalTime < 0 ? totalTime : !time && isYoyo ? -_tinyNum : timeline._dur * ratio, suppressEvents, force) || this._startAt && (this._zTime = totalTime); 3024 3025 if (this._onUpdate && !suppressEvents) { 3026 totalTime < 0 && this._startAt && this._startAt.render(totalTime, true, force); 3027 3028 _callback(this, "onUpdate"); 3029 } 3030 3031 this._repeat && iteration !== prevIteration && this.vars.onRepeat && !suppressEvents && this.parent && _callback(this, "onRepeat"); 3032 3033 if ((tTime === this._tDur || !tTime) && this._tTime === tTime) { 3034 totalTime < 0 && this._startAt && !this._onUpdate && this._startAt.render(totalTime, true, true); 3035 (totalTime || !dur) && (tTime === this._tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); 3036 3037 if (!suppressEvents && !(totalTime < 0 && !prevTime) && (tTime || prevTime)) { 3038 _callback(this, tTime === tDur ? "onComplete" : "onReverseComplete", true); 3039 3040 this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom(); 3041 } 3042 } 3043 } 3044 3045 return this; 3046 }; 3047 3048 _proto3.targets = function targets() { 3049 return this._targets; 3050 }; 3051
vendor: 13,350 bytes, lines 3052-3479
3052 _proto3.invalidate = function invalidate() { 3053 this._pt = this._op = this._startAt = this._onUpdate = this._lazy = this.ratio = 0; 3054 this._ptLookup = []; 3055 this.timeline && this.timeline.invalidate(); 3056 return _Animation2.prototype.invalidate.call(this); 3057 }; 3058 3059 _proto3.kill = function kill(targets, vars) { 3060 if (vars === void 0) { 3061 vars = "all"; 3062 } 3063 3064 if (!targets && (!vars || vars === "all")) { 3065 this._lazy = this._pt = 0; 3066 return this.parent ? _interrupt(this) : this; 3067 } 3068 3069 if (this.timeline) { 3070 var tDur = this.timeline.totalDuration(); 3071 this.timeline.killTweensOf(targets, vars, _overwritingTween && _overwritingTween.vars.overwrite !== true)._first || _interrupt(this); 3072 this.parent && tDur !== this.timeline.totalDuration() && _setDuration(this, this._dur * this.timeline._tDur / tDur, 0, 1); 3073 return this; 3074 } 3075 3076 var parsedTargets = this._targets, 3077 killingTargets = targets ? toArray(targets) : parsedTargets, 3078 propTweenLookup = this._ptLookup, 3079 firstPT = this._pt, 3080 overwrittenProps, 3081 curLookup, 3082 curOverwriteProps, 3083 props, 3084 p, 3085 pt, 3086 i; 3087 3088 if ((!vars || vars === "all") && _arraysMatch(parsedTargets, killingTargets)) { 3089 vars === "all" && (this._pt = 0); 3090 return _interrupt(this); 3091 } 3092 3093 overwrittenProps = this._op = this._op || []; 3094 3095 if (vars !== "all") { 3096 if (_isString(vars)) { 3097 p = {}; 3098 3099 _forEachName(vars, function (name) { 3100 return p[name] = 1; 3101 }); 3102 3103 vars = p; 3104 } 3105 3106 vars = _addAliasesToVars(parsedTargets, vars); 3107 } 3108 3109 i = parsedTargets.length; 3110 3111 while (i--) { 3112 if (~killingTargets.indexOf(parsedTargets[i])) { 3113 curLookup = propTweenLookup[i]; 3114 3115 if (vars === "all") { 3116 overwrittenProps[i] = vars; 3117 props = curLookup; 3118 curOverwriteProps = {}; 3119 } else { 3120 curOverwriteProps = overwrittenProps[i] = overwrittenProps[i] || {}; 3121 props = vars; 3122 } 3123 3124 for (p in props) { 3125 pt = curLookup && curLookup[p]; 3126 3127 if (pt) { 3128 if (!("kill" in pt.d) || pt.d.kill(p) === true) { 3129 _removeLinkedListItem(this, pt, "_pt"); 3130 } 3131 3132 delete curLookup[p]; 3133 } 3134 3135 if (curOverwriteProps !== "all") { 3136 curOverwriteProps[p] = 1; 3137 } 3138 } 3139 } 3140 } 3141 3142 this._initted && !this._pt && firstPT && _interrupt(this); 3143 return this; 3144 }; 3145 3146 Tween.to = function to(targets, vars) { 3147 return new Tween(targets, vars, arguments[2]); 3148 }; 3149 3150 Tween.from = function from(targets, vars) { 3151 return _createTweenType(1, arguments); 3152 }; 3153 3154 Tween.delayedCall = function delayedCall(delay, callback, params, scope) { 3155 return new Tween(callback, 0, { 3156 immediateRender: false, 3157 lazy: false, 3158 overwrite: false, 3159 delay: delay, 3160 onComplete: callback, 3161 onReverseComplete: callback, 3162 onCompleteParams: params, 3163 onReverseCompleteParams: params, 3164 callbackScope: scope 3165 }); 3166 }; 3167 3168 Tween.fromTo = function fromTo(targets, fromVars, toVars) { 3169 return _createTweenType(2, arguments); 3170 }; 3171 3172 Tween.set = function set(targets, vars) { 3173 vars.duration = 0; 3174 vars.repeatDelay || (vars.repeat = 0); 3175 return new Tween(targets, vars); 3176 }; 3177 3178 Tween.killTweensOf = function killTweensOf(targets, props, onlyActive) { 3179 return _globalTimeline.killTweensOf(targets, props, onlyActive); 3180 }; 3181 3182 return Tween; 3183 }(Animation); 3184 3185 _setDefaults(Tween.prototype, { 3186 _targets: [], 3187 _lazy: 0, 3188 _startAt: 0, 3189 _op: 0, 3190 _onInit: 0 3191 }); 3192 3193 _forEachName("staggerTo,staggerFrom,staggerFromTo", function (name) { 3194 Tween[name] = function () { 3195 var tl = new Timeline(), 3196 params = _slice.call(arguments, 0); 3197 3198 params.splice(name === "staggerFromTo" ? 5 : 4, 0, 0); 3199 return tl[name].apply(tl, params); 3200 }; 3201 }); 3202 3203 var _setterPlain = function _setterPlain(target, property, value) { 3204 return target[property] = value; 3205 }, 3206 _setterFunc = function _setterFunc(target, property, value) { 3207 return target[property](value); 3208 }, 3209 _setterFuncWithParam = function _setterFuncWithParam(target, property, value, data) { 3210 return target[property](data.fp, value); 3211 }, 3212 _setterAttribute = function _setterAttribute(target, property, value) { 3213 return target.setAttribute(property, value); 3214 }, 3215 _getSetter = function _getSetter(target, property) { 3216 return _isFunction(target[property]) ? _setterFunc : _isUndefined(target[property]) && target.setAttribute ? _setterAttribute : _setterPlain; 3217 }, 3218 _renderPlain = function _renderPlain(ratio, data) { 3219 return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 1000000) / 1000000, data); 3220 }, 3221 _renderBoolean = function _renderBoolean(ratio, data) { 3222 return data.set(data.t, data.p, !!(data.s + data.c * ratio), data); 3223 }, 3224 _renderComplexString = function _renderComplexString(ratio, data) { 3225 var pt = data._pt, 3226 s = ""; 3227 3228 if (!ratio && data.b) { 3229 s = data.b; 3230 } else if (ratio === 1 && data.e) { 3231 s = data.e; 3232 } else { 3233 while (pt) { 3234 s = pt.p + (pt.m ? pt.m(pt.s + pt.c * ratio) : Math.round((pt.s + pt.c * ratio) * 10000) / 10000) + s; 3235 pt = pt._next; 3236 } 3237 3238 s += data.c; 3239 } 3240 3241 data.set(data.t, data.p, s, data); 3242 }, 3243 _renderPropTweens = function _renderPropTweens(ratio, data) { 3244 var pt = data._pt; 3245 3246 while (pt) { 3247 pt.r(ratio, pt.d); 3248 pt = pt._next; 3249 } 3250 }, 3251 _addPluginModifier = function _addPluginModifier(modifier, tween, target, property) { 3252 var pt = this._pt, 3253 next; 3254 3255 while (pt) { 3256 next = pt._next; 3257 pt.p === property && pt.modifier(modifier, tween, target); 3258 pt = next; 3259 } 3260 }, 3261 _killPropTweensOf = function _killPropTweensOf(property) { 3262 var pt = this._pt, 3263 hasNonDependentRemaining, 3264 next; 3265 3266 while (pt) { 3267 next = pt._next; 3268 3269 if (pt.p === property && !pt.op || pt.op === property) { 3270 _removeLinkedListItem(this, pt, "_pt"); 3271 } else if (!pt.dep) { 3272 hasNonDependentRemaining = 1; 3273 } 3274 3275 pt = next; 3276 } 3277 3278 return !hasNonDependentRemaining; 3279 }, 3280 _setterWithModifier = function _setterWithModifier(target, property, value, data) { 3281 data.mSet(target, property, data.m.call(data.tween, value, data.mt), data); 3282 }, 3283 _sortPropTweensByPriority = function _sortPropTweensByPriority(parent) { 3284 var pt = parent._pt, 3285 next, 3286 pt2, 3287 first, 3288 last; 3289 3290 while (pt) { 3291 next = pt._next; 3292 pt2 = first; 3293 3294 while (pt2 && pt2.pr > pt.pr) { 3295 pt2 = pt2._next; 3296 } 3297 3298 if (pt._prev = pt2 ? pt2._prev : last) { 3299 pt._prev._next = pt; 3300 } else { 3301 first = pt; 3302 } 3303 3304 if (pt._next = pt2) { 3305 pt2._prev = pt; 3306 } else { 3307 last = pt; 3308 } 3309 3310 pt = next; 3311 } 3312 3313 parent._pt = first; 3314 }; 3315 3316 var PropTween = function () { 3317 function PropTween(next, target, prop, start, change, renderer, data, setter, priority) { 3318 this.t = target; 3319 this.s = start; 3320 this.c = change; 3321 this.p = prop; 3322 this.r = renderer || _renderPlain; 3323 this.d = data || this; 3324 this.set = setter || _setterPlain; 3325 this.pr = priority || 0; 3326 this._next = next; 3327 3328 if (next) { 3329 next._prev = this; 3330 } 3331 } 3332 3333 var _proto4 = PropTween.prototype; 3334 3335 _proto4.modifier = function modifier(func, tween, target) { 3336 this.mSet = this.mSet || this.set; 3337 this.set = _setterWithModifier; 3338 this.m = func; 3339 this.mt = target; 3340 this.tween = tween; 3341 }; 3342 3343 return PropTween; 3344 }(); 3345 3346 _forEachName(_callbackNames + "parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger", function (name) { 3347 return _reservedProps[name] = 1; 3348 }); 3349 3350 _globals.TweenMax = _globals.TweenLite = Tween; 3351 _globals.TimelineLite = _globals.TimelineMax = Timeline; 3352 _globalTimeline = new Timeline({ 3353 sortChildren: false, 3354 defaults: _defaults, 3355 autoRemoveChildren: true, 3356 id: "root", 3357 smoothChildTiming: true 3358 }); 3359 _config.stringFilter = _colorStringFilter; 3360 var _gsap = { 3361 registerPlugin: function registerPlugin() { 3362 for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { 3363 args[_key2] = arguments[_key2]; 3364 } 3365 3366 args.forEach(function (config) { 3367 return _createPlugin(config); 3368 }); 3369 }, 3370 timeline: function timeline(vars) { 3371 return new Timeline(vars); 3372 }, 3373 getTweensOf: function getTweensOf(targets, onlyActive) { 3374 return _globalTimeline.getTweensOf(targets, onlyActive); 3375 }, 3376 getProperty: function getProperty(target, property, unit, uncache) { 3377 _isString(target) && (target = toArray(target)[0]); 3378 3379 var getter = _getCache(target || {}).get, 3380 format = unit ? _passThrough : _numericIfPossible; 3381 3382 unit === "native" && (unit = ""); 3383 return !target ? target : !property ? function (property, unit, uncache) { 3384 return format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache)); 3385 } : format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache)); 3386 }, 3387 quickSetter: function quickSetter(target, property, unit) { 3388 target = toArray(target); 3389 3390 if (target.length > 1) { 3391 var setters = target.map(function (t) { 3392 return gsap.quickSetter(t, property, unit); 3393 }), 3394 l = setters.length; 3395 return function (value) { 3396 var i = l; 3397 3398 while (i--) { 3399 setters[i](value); 3400 } 3401 }; 3402 } 3403 3404 target = target[0] || {}; 3405 3406 var Plugin = _plugins[property], 3407 cache = _getCache(target), 3408 p = cache.harness && (cache.harness.aliases || {})[property] || property, 3409 setter = Plugin ? function (value) { 3410 var p = new Plugin(); 3411 _quickTween._pt = 0; 3412 p.init(target, unit ? value + unit : value, _quickTween, 0, [target]); 3413 p.render(1, p); 3414 _quickTween._pt && _renderPropTweens(1, _quickTween); 3415 } : cache.set(target, p); 3416 3417 return Plugin ? setter : function (value) { 3418 return setter(target, p, unit ? value + unit : value, cache, 1); 3419 }; 3420 }, 3421 isTweening: function isTweening(targets) { 3422 return _globalTimeline.getTweensOf(targets, true).length > 0; 3423 }, 3424 defaults: function defaults(value) { 3425 value && value.ease && (value.ease = _parseEase(value.ease, _defaults.ease)); 3426 return _mergeDeep(_defaults, value || {}); 3427 }, 3428 config: function config(value) { 3429 return _mergeDeep(_config, value || {}); 3430 }, 3431 registerEffect: function registerEffect(_ref3) { 3432 var name = _ref3.name, 3433 effect = _ref3.effect, 3434 plugins = _ref3.plugins, 3435 defaults = _ref3.defaults, 3436 extendTimeline = _ref3.extendTimeline; 3437 (plugins || "").split(",").forEach(function (pluginName) { 3438 return pluginName && !_plugins[pluginName] && !_globals[pluginName] && _warn(name + " effect requires " + pluginName + " plugin."); 3439 }); 3440 3441 _effects[name] = function (targets, vars, tl) { 3442 return effect(toArray(targets), _setDefaults(vars || {}, defaults), tl); 3443 }; 3444 3445 if (extendTimeline) { 3446 Timeline.prototype[name] = function (targets, vars, position) { 3447 return this.add(_effects[name](targets, _isObject(vars) ? vars : (position = vars) && {}, this), position); 3448 }; 3449 } 3450 }, 3451 registerEase: function registerEase(name, ease) { 3452 _easeMap[name] = _parseEase(ease); 3453 }, 3454 parseEase: function parseEase(ease, defaultEase) { 3455 return arguments.length ? _parseEase(ease, defaultEase) : _easeMap; 3456 }, 3457 getById: function getById(id) { 3458 return _globalTimeline.getById(id); 3459 }, 3460 exportRoot: function exportRoot(vars, includeDelayedCalls) { 3461 if (vars === void 0) { 3462 vars = {}; 3463 } 3464 3465 var tl = new Timeline(vars), 3466 child, 3467 next; 3468 tl.smoothChildTiming = _isNotFalse(vars.smoothChildTiming); 3469 3470 _globalTimeline.remove(tl); 3471 3472 tl._dp = 0; 3473 tl._time = tl._tTime = _globalTimeline._time; 3474 child = _globalTimeline._first; 3475 3476 while (child) { 3477 next = child._next; 3478 3479 if (includeDelayedCalls || !(!child._dur && child instanceof Tween && child.vars.onComplete === child._targets[0])) {
3480 _addToTimeline(tl, child, child._start - child._delay); 3481 } 3482 3483 child = next; 3484 } 3485 3486 _addToTimeline(_globalTimeline, tl, 0); 3487 3488 return tl; 3489 }, 3490 utils: { 3491 wrap: wrap, 3492 wrapYoyo: wrapYoyo, 3493 distribute: distribute, 3494 random: random, 3495 snap: snap, 3496 normalize: normalize, 3497 getUnit: getUnit, 3498 clamp: clamp, 3499 splitColor: splitColor, 3500 toArray: toArray, 3501 selector: selector, 3502 mapRange: mapRange, 3503 pipe: pipe, 3504 unitize: unitize, 3505 interpolate: interpolate, 3506 shuffle: shuffle 3507 }, 3508 install: _install, 3509 effects: _effects, 3510 ticker: _ticker, 3511 updateRoot: Timeline.updateRoot, 3512 plugins: _plugins, 3513 globalTimeline: _globalTimeline, 3514 core: { 3515 PropTween: PropTween, 3516 globals: _addGlobal, 3517 Tween: Tween, 3518 Timeline: Timeline, 3519 Animation: Animation, 3520 getCache: _getCache, 3521 _removeLinkedListItem: _removeLinkedListItem, 3522 suppressOverwrites: function suppressOverwrites(value) { 3523 return _suppressOverwrites = value; 3524 } 3525 } 3526 }; 3527 3528 _forEachName("to,from,fromTo,delayedCall,set,killTweensOf", function (name) { 3529 return _gsap[name] = Tween[name]; 3530 }); 3531 3532 _ticker.add(Timeline.updateRoot); 3533 3534 _quickTween = _gsap.to({}, { 3535 duration: 0 3536 }); 3537 3538 var _getPluginPropTween = function _getPluginPropTween(plugin, prop
vendor: 18,696 bytes, lines 3538-4106
3538) { 3539 var pt = plugin._pt; 3540 3541 while (pt && pt.p !== prop && pt.op !== prop && pt.fp !== prop) { 3542 pt = pt._next; 3543 } 3544 3545 return pt; 3546 }, 3547 _addModifiers = function _addModifiers(tween, modifiers) { 3548 var targets = tween._targets, 3549 p, 3550 i, 3551 pt; 3552 3553 for (p in modifiers) { 3554 i = targets.length; 3555 3556 while (i--) { 3557 pt = tween._ptLookup[i][p]; 3558 3559 if (pt && (pt = pt.d)) { 3560 if (pt._pt) { 3561 pt = _getPluginPropTween(pt, p); 3562 } 3563 3564 pt && pt.modifier && pt.modifier(modifiers[p], tween, targets[i], p); 3565 } 3566 } 3567 } 3568 }, 3569 _buildModifierPlugin = function _buildModifierPlugin(name, modifier) { 3570 return { 3571 name: name, 3572 rawVars: 1, 3573 init: function init(target, vars, tween) { 3574 tween._onInit = function (tween) { 3575 var temp, p; 3576 3577 if (_isString(vars)) { 3578 temp = {}; 3579 3580 _forEachName(vars, function (name) { 3581 return temp[name] = 1; 3582 }); 3583 3584 vars = temp; 3585 } 3586 3587 if (modifier) { 3588 temp = {}; 3589 3590 for (p in vars) { 3591 temp[p] = modifier(vars[p]); 3592 } 3593 3594 vars = temp; 3595 } 3596 3597 _addModifiers(tween, vars); 3598 }; 3599 } 3600 }; 3601 }; 3602 3603 var gsap = _gsap.registerPlugin({ 3604 name: "attr", 3605 init: function init(target, vars, tween, index, targets) { 3606 var p, pt; 3607 3608 for (p in vars) { 3609 pt = this.add(target, "setAttribute", (target.getAttribute(p) || 0) + "", vars[p], index, targets, 0, 0, p); 3610 pt && (pt.op = p); 3611 3612 this._props.push(p); 3613 } 3614 } 3615 }, { 3616 name: "endArray", 3617 init: function init(target, value) { 3618 var i = value.length; 3619 3620 while (i--) { 3621 this.add(target, i, target[i] || 0, value[i]); 3622 } 3623 } 3624 }, _buildModifierPlugin("roundProps", _roundModifier), _buildModifierPlugin("modifiers"), _buildModifierPlugin("snap", snap)) || _gsap; 3625 Tween.version = Timeline.version = gsap.version = "3.7.1"; 3626 _coreReady = 1; 3627 _windowExists() && _wake(); 3628 var Power0 = _easeMap.Power0, 3629 Power1 = _easeMap.Power1, 3630 Power2 = _easeMap.Power2, 3631 Power3 = _easeMap.Power3, 3632 Power4 = _easeMap.Power4, 3633 Linear = _easeMap.Linear, 3634 Quad = _easeMap.Quad, 3635 Cubic = _easeMap.Cubic, 3636 Quart = _easeMap.Quart, 3637 Quint = _easeMap.Quint, 3638 Strong = _easeMap.Strong, 3639 Elastic = _easeMap.Elastic, 3640 Back = _easeMap.Back, 3641 SteppedEase = _easeMap.SteppedEase, 3642 Bounce = _easeMap.Bounce, 3643 Sine = _easeMap.Sine, 3644 Expo = _easeMap.Expo, 3645 Circ = _easeMap.Circ; 3646 3647 var _win$1, 3648 _doc$1, 3649 _docElement, 3650 _pluginInitted, 3651 _tempDiv, 3652 _tempDivStyler, 3653 _recentSetterPlugin, 3654 _windowExists$1 = function _windowExists() { 3655 return typeof window !== "undefined"; 3656 }, 3657 _transformProps = {}, 3658 _RAD2DEG = 180 / Math.PI, 3659 _DEG2RAD = Math.PI / 180, 3660 _atan2 = Math.atan2, 3661 _bigNum$1 = 1e8, 3662 _capsExp = /([A-Z])/g, 3663 _horizontalExp = /(?:left|right|width|margin|padding|x)/i, 3664 _complexExp = /[\s,\(]\S/, 3665 _propertyAliases = { 3666 autoAlpha: "opacity,visibility", 3667 scale: "scaleX,scaleY", 3668 alpha: "opacity" 3669 }, 3670 _renderCSSProp = function _renderCSSProp(ratio, data) { 3671 return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data); 3672 }, 3673 _renderPropWithEnd = function _renderPropWithEnd(ratio, data) { 3674 return data.set(data.t, data.p, ratio === 1 ? data.e : Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data); 3675 }, 3676 _renderCSSPropWithBeginning = function _renderCSSPropWithBeginning(ratio, data) { 3677 return data.set(data.t, data.p, ratio ? Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u : data.b, data); 3678 }, 3679 _renderRoundedCSSProp = function _renderRoundedCSSProp(ratio, data) { 3680 var value = data.s + data.c * ratio; 3681 data.set(data.t, data.p, ~~(value + (value < 0 ? -.5 : .5)) + data.u, data); 3682 }, 3683 _renderNonTweeningValue = function _renderNonTweeningValue(ratio, data) { 3684 return data.set(data.t, data.p, ratio ? data.e : data.b, data); 3685 }, 3686 _renderNonTweeningValueOnlyAtEnd = function _renderNonTweeningValueOnlyAtEnd(ratio, data) { 3687 return data.set(data.t, data.p, ratio !== 1 ? data.b : data.e, data); 3688 }, 3689 _setterCSSStyle = function _setterCSSStyle(target, property, value) { 3690 return target.style[property] = value; 3691 }, 3692 _setterCSSProp = function _setterCSSProp(target, property, value) { 3693 return target.style.setProperty(property, value); 3694 }, 3695 _setterTransform = function _setterTransform(target, property, value) { 3696 return target._gsap[property] = value; 3697 }, 3698 _setterScale = function _setterScale(target, property, value) { 3699 return target._gsap.scaleX = target._gsap.scaleY = value; 3700 }, 3701 _setterScaleWithRender = function _setterScaleWithRender(target, property, value, data, ratio) { 3702 var cache = target._gsap; 3703 cache.scaleX = cache.scaleY = value; 3704 cache.renderTransform(ratio, cache); 3705 }, 3706 _setterTransformWithRender = function _setterTransformWithRender(target, property, value, data, ratio) { 3707 var cache = target._gsap; 3708 cache[property] = value; 3709 cache.renderTransform(ratio, cache); 3710 }, 3711 _transformProp = "transform", 3712 _transformOriginProp = _transformProp + "Origin", 3713 _supports3D, 3714 _createElement = function _createElement(type, ns) { 3715 var e = _doc$1.createElementNS ? _doc$1.createElementNS((ns || "http://www.w3.org/1999/xhtml").replace(/^https/, "http"), type) : _doc$1.createElement(type); 3716 return e.style ? e : _doc$1.createElement(type); 3717 }, 3718 _getComputedProperty = function _getComputedProperty(target, property, skipPrefixFallback) { 3719 var cs = getComputedStyle(target); 3720 return cs[property] || cs.getPropertyValue(property.replace(_capsExp, "-$1").toLowerCase()) || cs.getPropertyValue(property) || !skipPrefixFallback && _getComputedProperty(target, _checkPropPrefix(property) || property, 1) || ""; 3721 }, 3722 _prefixes = "O,Moz,ms,Ms,Webkit".split(","), 3723 _checkPropPrefix = function _checkPropPrefix(property, element, preferPrefix) { 3724 var e = element || _tempDiv, 3725 s = e.style, 3726 i = 5; 3727 3728 if (property in s && !preferPrefix) { 3729 return property; 3730 } 3731 3732 property = property.charAt(0).toUpperCase() + property.substr(1); 3733 3734 while (i-- && !(_prefixes[i] + property in s)) {} 3735 3736 return i < 0 ? null : (i === 3 ? "ms" : i >= 0 ? _prefixes[i] : "") + property; 3737 }, 3738 _initCore = function _initCore() { 3739 if (_windowExists$1() && window.document) { 3740 _win$1 = window; 3741 _doc$1 = _win$1.document; 3742 _docElement = _doc$1.documentElement; 3743 _tempDiv = _createElement("div") || { 3744 style: {} 3745 }; 3746 _tempDivStyler = _createElement("div"); 3747 _transformProp = _checkPropPrefix(_transformProp); 3748 _transformOriginProp = _transformProp + "Origin"; 3749 _tempDiv.style.cssText = "border-width:0;line-height:0;position:absolute;padding:0"; 3750 _supports3D = !!_checkPropPrefix("perspective"); 3751 _pluginInitted = 1; 3752 } 3753 }, 3754 _getBBoxHack = function _getBBoxHack(swapIfPossible) { 3755 var svg = _createElement("svg", this.ownerSVGElement && this.ownerSVGElement.getAttribute("xmlns") || "http://www.w3.org/2000/svg"), 3756 oldParent = this.parentNode, 3757 oldSibling = this.nextSibling, 3758 oldCSS = this.style.cssText, 3759 bbox; 3760 3761 _docElement.appendChild(svg); 3762 3763 svg.appendChild(this); 3764 this.style.display = "block"; 3765 3766 if (swapIfPossible) { 3767 try { 3768 bbox = this.getBBox(); 3769 this._gsapBBox = this.getBBox; 3770 this.getBBox = _getBBoxHack; 3771 } catch (e) {} 3772 } else if (this._gsapBBox) { 3773 bbox = this._gsapBBox(); 3774 } 3775 3776 if (oldParent) { 3777 if (oldSibling) { 3778 oldParent.insertBefore(this, oldSibling); 3779 } else { 3780 oldParent.appendChild(this); 3781 } 3782 } 3783 3784 _docElement.removeChild(svg); 3785 3786 this.style.cssText = oldCSS; 3787 return bbox; 3788 }, 3789 _getAttributeFallbacks = function _getAttributeFallbacks(target, attributesArray) { 3790 var i = attributesArray.length; 3791 3792 while (i--) { 3793 if (target.hasAttribute(attributesArray[i])) { 3794 return target.getAttribute(attributesArray[i]); 3795 } 3796 } 3797 }, 3798 _getBBox = function _getBBox(target) { 3799 var bounds; 3800 3801 try { 3802 bounds = target.getBBox(); 3803 } catch (error) { 3804 bounds = _getBBoxHack.call(target, true); 3805 } 3806 3807 bounds && (bounds.width || bounds.height) || target.getBBox === _getBBoxHack || (bounds = _getBBoxHack.call(target, true)); 3808 return bounds && !bounds.width && !bounds.x && !bounds.y ? { 3809 x: +_getAttributeFallbacks(target, ["x", "cx", "x1"]) || 0, 3810 y: +_getAttributeFallbacks(target, ["y", "cy", "y1"]) || 0, 3811 width: 0, 3812 height: 0 3813 } : bounds; 3814 }, 3815 _isSVG = function _isSVG(e) { 3816 return !!(e.getCTM && (!e.parentNode || e.ownerSVGElement) && _getBBox(e)); 3817 }, 3818 _removeProperty = function _removeProperty(target, property) { 3819 if (property) { 3820 var style = target.style; 3821 3822 if (property in _transformProps && property !== _transformOriginProp) { 3823 property = _transformProp; 3824 } 3825 3826 if (style.removeProperty) { 3827 if (property.substr(0, 2) === "ms" || property.substr(0, 6) === "webkit") { 3828 property = "-" + property; 3829 } 3830 3831 style.removeProperty(property.replace(_capsExp, "-$1").toLowerCase()); 3832 } else { 3833 style.removeAttribute(property); 3834 } 3835 } 3836 }, 3837 _addNonTweeningPT = function _addNonTweeningPT(plugin, target, property, beginning, end, onlySetAtEnd) { 3838 var pt = new PropTween(plugin._pt, target, property, 0, 1, onlySetAtEnd ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue); 3839 plugin._pt = pt; 3840 pt.b = beginning; 3841 pt.e = end; 3842 3843 plugin._props.push(property); 3844 3845 return pt; 3846 }, 3847 _nonConvertibleUnits = { 3848 deg: 1, 3849 rad: 1, 3850 turn: 1 3851 }, 3852 _convertToUnit = function _convertToUnit(target, property, value, unit) { 3853 var curValue = parseFloat(value) || 0, 3854 curUnit = (value + "").trim().substr((curValue + "").length) || "px", 3855 style = _tempDiv.style, 3856 horizontal = _horizontalExp.test(property), 3857 isRootSVG = target.tagName.toLowerCase() === "svg", 3858 measureProperty = (isRootSVG ? "client" : "offset") + (horizontal ? "Width" : "Height"), 3859 amount = 100, 3860 toPixels = unit === "px", 3861 toPercent = unit === "%", 3862 px, 3863 parent, 3864 cache, 3865 isSVG; 3866 3867 if (unit === curUnit || !curValue || _nonConvertibleUnits[unit] || _nonConvertibleUnits[curUnit]) { 3868 return curValue; 3869 } 3870 3871 curUnit !== "px" && !toPixels && (curValue = _convertToUnit(target, property, value, "px")); 3872 isSVG = target.getCTM && _isSVG(target); 3873 3874 if ((toPercent || curUnit === "%") && (_transformProps[property] || ~property.indexOf("adius"))) { 3875 px = isSVG ? target.getBBox()[horizontal ? "width" : "height"] : target[measureProperty]; 3876 return _round(toPercent ? curValue / px * amount : curValue / 100 * px); 3877 } 3878 3879 style[horizontal ? "width" : "height"] = amount + (toPixels ? curUnit : unit); 3880 parent = ~property.indexOf("adius") || unit === "em" && target.appendChild && !isRootSVG ? target : target.parentNode; 3881 3882 if (isSVG) { 3883 parent = (target.ownerSVGElement || {}).parentNode; 3884 } 3885 3886 if (!parent || parent === _doc$1 || !parent.appendChild) { 3887 parent = _doc$1.body; 3888 } 3889 3890 cache = parent._gsap; 3891 3892 if (cache && toPercent && cache.width && horizontal && cache.time === _ticker.time) { 3893 return _round(curValue / cache.width * amount); 3894 } else { 3895 (toPercent || curUnit === "%") && (style.position = _getComputedProperty(target, "position")); 3896 parent === target && (style.position = "static"); 3897 parent.appendChild(_tempDiv); 3898 px = _tempDiv[measureProperty]; 3899 parent.removeChild(_tempDiv); 3900 style.position = "absolute"; 3901 3902 if (horizontal && toPercent) { 3903 cache = _getCache(parent); 3904 cache.time = _ticker.time; 3905 cache.width = parent[measureProperty]; 3906 } 3907 } 3908 3909 return _round(toPixels ? px * curValue / amount : px && curValue ? amount / px * curValue : 0); 3910 }, 3911 _get = function _get(target, property, unit, uncache) { 3912 var value; 3913 _pluginInitted || _initCore(); 3914 3915 if (property in _propertyAliases && property !== "transform") { 3916 property = _propertyAliases[property]; 3917 3918 if (~property.indexOf(",")) { 3919 property = property.split(",")[0]; 3920 } 3921 } 3922 3923 if (_transformProps[property] && property !== "transform") { 3924 value = _parseTransform(target, uncache); 3925 value = property !== "transformOrigin" ? value[property] : value.svg ? value.origin : _firstTwoOnly(_getComputedProperty(target, _transformOriginProp)) + " " + value.zOrigin + "px"; 3926 } else { 3927 value = target.style[property]; 3928 3929 if (!value || value === "auto" || uncache || ~(value + "").indexOf("calc(")) { 3930 value = _specialProps[property] && _specialProps[property](target, property, unit) || _getComputedProperty(target, property) || _getProperty(target, property) || (property === "opacity" ? 1 : 0); 3931 } 3932 } 3933 3934 return unit && !~(value + "").trim().indexOf(" ") ? _convertToUnit(target, property, value, unit) + unit : value; 3935 }, 3936 _tweenComplexCSSString = function _tweenComplexCSSString(target, prop, start, end) { 3937 if (!start || start === "none") { 3938 var p = _checkPropPrefix(prop, target, 1), 3939 s = p && _getComputedProperty(target, p, 1); 3940 3941 if (s && s !== start) { 3942 prop = p; 3943 start = s; 3944 } else if (prop === "borderColor") { 3945 start = _getComputedProperty(target, "borderTopColor"); 3946 } 3947 } 3948 3949 var pt = new PropTween(this._pt, target.style, prop, 0, 1, _renderComplexString), 3950 index = 0, 3951 matchIndex = 0, 3952 a, 3953 result, 3954 startValues, 3955 startNum, 3956 color, 3957 startValue, 3958 endValue, 3959 endNum, 3960 chunk, 3961 endUnit, 3962 startUnit, 3963 relative, 3964 endValues; 3965 pt.b = start; 3966 pt.e = end; 3967 start += ""; 3968 end += ""; 3969 3970 if (end === "auto") { 3971 target.style[prop] = end; 3972 end = _getComputedProperty(target, prop) || end; 3973 target.style[prop] = start; 3974 } 3975 3976 a = [start, end]; 3977 3978 _colorStringFilter(a); 3979 3980 start = a[0]; 3981 end = a[1]; 3982 startValues = start.match(_numWithUnitExp) || []; 3983 endValues = end.match(_numWithUnitExp) || []; 3984 3985 if (endValues.length) { 3986 while (result = _numWithUnitExp.exec(end)) { 3987 endValue = result[0]; 3988 chunk = end.substring(index, result.index); 3989 3990 if (color) { 3991 color = (color + 1) % 5; 3992 } else if (chunk.substr(-5) === "rgba(" || chunk.substr(-5) === "hsla(") { 3993 color = 1; 3994 } 3995 3996 if (endValue !== (startValue = startValues[matchIndex++] || "")) { 3997 startNum = parseFloat(startValue) || 0; 3998 startUnit = startValue.substr((startNum + "").length); 3999 relative = endValue.charAt(1) === "=" ? +(endValue.charAt(0) + "1") : 0; 4000 4001 if (relative) { 4002 endValue = endValue.substr(2); 4003 } 4004 4005 endNum = parseFloat(endValue); 4006 endUnit = endValue.substr((endNum + "").length); 4007 index = _numWithUnitExp.lastIndex - endUnit.length; 4008 4009 if (!endUnit) { 4010 endUnit = endUnit || _config.units[prop] || startUnit; 4011 4012 if (index === end.length) { 4013 end += endUnit; 4014 pt.e += endUnit; 4015 } 4016 } 4017 4018 if (startUnit !== endUnit) { 4019 startNum = _convertToUnit(target, prop, startValue, endUnit) || 0; 4020 } 4021 4022 pt._pt = { 4023 _next: pt._pt, 4024 p: chunk || matchIndex === 1 ? chunk : ",", 4025 s: startNum, 4026 c: relative ? relative * endNum : endNum - startNum, 4027 m: color && color < 4 || prop === "zIndex" ? Math.round : 0 4028 }; 4029 } 4030 } 4031 4032 pt.c = index < end.length ? end.substring(index, end.length) : ""; 4033 } else { 4034 pt.r = prop === "display" && end === "none" ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue; 4035 } 4036 4037 _relExp.test(end) && (pt.e = 0); 4038 this._pt = pt; 4039 return pt; 4040 }, 4041 _keywordToPercent = { 4042 top: "0%", 4043 bottom: "100%", 4044 left: "0%", 4045 right: "100%", 4046 center: "50%" 4047 }, 4048 _convertKeywordsToPercentages = function _convertKeywordsToPercentages(value) { 4049 var split = value.split(" "), 4050 x = split[0], 4051 y = split[1] || "50%"; 4052 4053 if (x === "top" || x === "bottom" || y === "left" || y === "right") { 4054 value = x; 4055 x = y; 4056 y = value; 4057 } 4058 4059 split[0] = _keywordToPercent[x] || x; 4060 split[1] = _keywordToPercent[y] || y; 4061 return split.join(" "); 4062 }, 4063 _renderClearProps = function _renderClearProps(ratio, data) { 4064 if (data.tween && data.tween._time === data.tween._dur) { 4065 var target = data.t, 4066 style = target.style, 4067 props = data.u, 4068 cache = target._gsap, 4069 prop, 4070 clearTransforms, 4071 i; 4072 4073 if (props === "all" || props === true) { 4074 style.cssText = ""; 4075 clearTransforms = 1; 4076 } else { 4077 props = props.split(","); 4078 i = props.length; 4079 4080 while (--i > -1) { 4081 prop = props[i]; 4082 4083 if (_transformProps[prop]) { 4084 clearTransforms = 1; 4085 prop = prop === "transformOrigin" ? _transformOriginProp : _transformProp; 4086 } 4087 4088 _removeProperty(target, prop); 4089 } 4090 } 4091 4092 if (clearTransforms) { 4093 _removeProperty(target, _transformProp); 4094 4095 if (cache) { 4096 cache.svg && target.removeAttribute("transform"); 4097 4098 _parseTransform(target, 1); 4099 4100 cache.uncache = 1; 4101 } 4102 } 4103 } 4104 }, 4105 _specialProps = { 4106 clearProps: function clearProps(plugin, target, property, endValue, tween) {
vendor: 3,081 bytes, lines 4107-4187
4107 if (tween.data !== "isFromStart") { 4108 var pt = plugin._pt = new PropTween(plugin._pt, target, property, 0, 0, _renderClearProps); 4109 pt.u = endValue; 4110 pt.pr = -10; 4111 pt.tween = tween; 4112 4113 plugin._props.push(property); 4114 4115 return 1; 4116 } 4117 } 4118 }, 4119 _identity2DMatrix = [1, 0, 0, 1, 0, 0], 4120 _rotationalProperties = {}, 4121 _isNullTransform = function _isNullTransform(value) { 4122 return value === "matrix(1, 0, 0, 1, 0, 0)" || value === "none" || !value; 4123 }, 4124 _getComputedTransformMatrixAsArray = function _getComputedTransformMatrixAsArray(target) { 4125 var matrixString = _getComputedProperty(target, _transformProp); 4126 4127 return _isNullTransform(matrixString) ? _identity2DMatrix : matrixString.substr(7).match(_numExp).map(_round); 4128 }, 4129 _getMatrix = function _getMatrix(target, force2D) { 4130 var cache = target._gsap || _getCache(target), 4131 style = target.style, 4132 matrix = _getComputedTransformMatrixAsArray(target), 4133 parent, 4134 nextSibling, 4135 temp, 4136 addedToDOM; 4137 4138 if (cache.svg && target.getAttribute("transform")) { 4139 temp = target.transform.baseVal.consolidate().matrix; 4140 matrix = [temp.a, temp.b, temp.c, temp.d, temp.e, temp.f]; 4141 return matrix.join(",") === "1,0,0,1,0,0" ? _identity2DMatrix : matrix; 4142 } else if (matrix === _identity2DMatrix && !target.offsetParent && target !== _docElement && !cache.svg) { 4143 temp = style.display; 4144 style.display = "block"; 4145 parent = target.parentNode; 4146 4147 if (!parent || !target.offsetParent) { 4148 addedToDOM = 1; 4149 nextSibling = target.nextSibling; 4150 4151 _docElement.appendChild(target); 4152 } 4153 4154 matrix = _getComputedTransformMatrixAsArray(target); 4155 temp ? style.display = temp : _removeProperty(target, "display"); 4156 4157 if (addedToDOM) { 4158 nextSibling ? parent.insertBefore(target, nextSibling) : parent ? parent.appendChild(target) : _docElement.removeChild(target); 4159 } 4160 } 4161 4162 return force2D && matrix.length > 6 ? [matrix[0], matrix[1], matrix[4], matrix[5], matrix[12], matrix[13]] : matrix; 4163 }, 4164 _applySVGOrigin = function _applySVGOrigin(target, origin, originIsAbsolute, smooth, matrixArray, pluginToAddPropTweensTo) { 4165 var cache = target._gsap, 4166 matrix = matrixArray || _getMatrix(target, true), 4167 xOriginOld = cache.xOrigin || 0, 4168 yOriginOld = cache.yOrigin || 0, 4169 xOffsetOld = cache.xOffset || 0, 4170 yOffsetOld = cache.yOffset || 0, 4171 a = matrix[0], 4172 b = matrix[1], 4173 c = matrix[2], 4174 d = matrix[3], 4175 tx = matrix[4], 4176 ty = matrix[5], 4177 originSplit = origin.split(" "), 4178 xOrigin = parseFloat(originSplit[0]) || 0, 4179 yOrigin = parseFloat(originSplit[1]) || 0, 4180 bounds, 4181 determinant, 4182 x, 4183 y; 4184 4185 if (!originIsAbsolute) { 4186 bounds = _getBBox(target); 4187 xOrigin = bounds.x + (~originSplit[0].indexOf("%") ? xOrigin / 100 * boun
vendor: 6,539 bytes, lines 4187-4390
4187ds.width : xOrigin); 4188 yOrigin = bounds.y + (~(originSplit[1] || originSplit[0]).indexOf("%") ? yOrigin / 100 * bounds.height : yOrigin); 4189 } else if (matrix !== _identity2DMatrix && (determinant = a * d - b * c)) { 4190 x = xOrigin * (d / determinant) + yOrigin * (-c / determinant) + (c * ty - d * tx) / determinant; 4191 y = xOrigin * (-b / determinant) + yOrigin * (a / determinant) - (a * ty - b * tx) / determinant; 4192 xOrigin = x; 4193 yOrigin = y; 4194 } 4195 4196 if (smooth || smooth !== false && cache.smooth) { 4197 tx = xOrigin - xOriginOld; 4198 ty = yOrigin - yOriginOld; 4199 cache.xOffset = xOffsetOld + (tx * a + ty * c) - tx; 4200 cache.yOffset = yOffsetOld + (tx * b + ty * d) - ty; 4201 } else { 4202 cache.xOffset = cache.yOffset = 0; 4203 } 4204 4205 cache.xOrigin = xOrigin; 4206 cache.yOrigin = yOrigin; 4207 cache.smooth = !!smooth; 4208 cache.origin = origin; 4209 cache.originIsAbsolute = !!originIsAbsolute; 4210 target.style[_transformOriginProp] = "0px 0px"; 4211 4212 if (pluginToAddPropTweensTo) { 4213 _addNonTweeningPT(pluginToAddPropTweensTo, cache, "xOrigin", xOriginOld, xOrigin); 4214 4215 _addNonTweeningPT(pluginToAddPropTweensTo, cache, "yOrigin", yOriginOld, yOrigin); 4216 4217 _addNonTweeningPT(pluginToAddPropTweensTo, cache, "xOffset", xOffsetOld, cache.xOffset); 4218 4219 _addNonTweeningPT(pluginToAddPropTweensTo, cache, "yOffset", yOffsetOld, cache.yOffset); 4220 } 4221 4222 target.setAttribute("data-svg-origin", xOrigin + " " + yOrigin); 4223 }, 4224 _parseTransform = function _parseTransform(target, uncache) { 4225 var cache = target._gsap || new GSCache(target); 4226 4227 if ("x" in cache && !uncache && !cache.uncache) { 4228 return cache; 4229 } 4230 4231 var style = target.style, 4232 invertedScaleX = cache.scaleX < 0, 4233 px = "px", 4234 deg = "deg", 4235 origin = _getComputedProperty(target, _transformOriginProp) || "0", 4236 x, 4237 y, 4238 z, 4239 scaleX, 4240 scaleY, 4241 rotation, 4242 rotationX, 4243 rotationY, 4244 skewX, 4245 skewY, 4246 perspective, 4247 xOrigin, 4248 yOrigin, 4249 matrix, 4250 angle, 4251 cos, 4252 sin, 4253 a, 4254 b, 4255 c, 4256 d, 4257 a12, 4258 a22, 4259 t1, 4260 t2, 4261 t3, 4262 a13, 4263 a23, 4264 a33, 4265 a42, 4266 a43, 4267 a32; 4268 x = y = z = rotation = rotationX = rotationY = skewX = skewY = perspective = 0; 4269 scaleX = scaleY = 1; 4270 cache.svg = !!(target.getCTM && _isSVG(target)); 4271 matrix = _getMatrix(target, cache.svg); 4272 4273 if (cache.svg) { 4274 t1 = (!cache.uncache || origin === "0px 0px") && !uncache && target.getAttribute("data-svg-origin"); 4275 4276 _applySVGOrigin(target, t1 || origin, !!t1 || cache.originIsAbsolute, cache.smooth !== false, matrix); 4277 } 4278 4279 xOrigin = cache.xOrigin || 0; 4280 yOrigin = cache.yOrigin || 0; 4281 4282 if (matrix !== _identity2DMatrix) { 4283 a = matrix[0]; 4284 b = matrix[1]; 4285 c = matrix[2]; 4286 d = matrix[3]; 4287 x = a12 = matrix[4]; 4288 y = a22 = matrix[5]; 4289 4290 if (matrix.length === 6) { 4291 scaleX = Math.sqrt(a * a + b * b); 4292 scaleY = Math.sqrt(d * d + c * c); 4293 rotation = a || b ? _atan2(b, a) * _RAD2DEG : 0; 4294 skewX = c || d ? _atan2(c, d) * _RAD2DEG + rotation : 0; 4295 skewX && (scaleY *= Math.abs(Math.cos(skewX * _DEG2RAD))); 4296 4297 if (cache.svg) { 4298 x -= xOrigin - (xOrigin * a + yOrigin * c); 4299 y -= yOrigin - (xOrigin * b + yOrigin * d); 4300 } 4301 } else { 4302 a32 = matrix[6]; 4303 a42 = matrix[7]; 4304 a13 = matrix[8]; 4305 a23 = matrix[9]; 4306 a33 = matrix[10]; 4307 a43 = matrix[11]; 4308 x = matrix[12]; 4309 y = matrix[13]; 4310 z = matrix[14]; 4311 angle = _atan2(a32, a33); 4312 rotationX = angle * _RAD2DEG; 4313 4314 if (angle) { 4315 cos = Math.cos(-angle); 4316 sin = Math.sin(-angle); 4317 t1 = a12 * cos + a13 * sin; 4318 t2 = a22 * cos + a23 * sin; 4319 t3 = a32 * cos + a33 * sin; 4320 a13 = a12 * -sin + a13 * cos; 4321 a23 = a22 * -sin + a23 * cos; 4322 a33 = a32 * -sin + a33 * cos; 4323 a43 = a42 * -sin + a43 * cos; 4324 a12 = t1; 4325 a22 = t2; 4326 a32 = t3; 4327 } 4328 4329 angle = _atan2(-c, a33); 4330 rotationY = angle * _RAD2DEG; 4331 4332 if (angle) { 4333 cos = Math.cos(-angle); 4334 sin = Math.sin(-angle); 4335 t1 = a * cos - a13 * sin; 4336 t2 = b * cos - a23 * sin; 4337 t3 = c * cos - a33 * sin; 4338 a43 = d * sin + a43 * cos; 4339 a = t1; 4340 b = t2; 4341 c = t3; 4342 } 4343 4344 angle = _atan2(b, a); 4345 rotation = angle * _RAD2DEG; 4346 4347 if (angle) { 4348 cos = Math.cos(angle); 4349 sin = Math.sin(angle); 4350 t1 = a * cos + b * sin; 4351 t2 = a12 * cos + a22 * sin; 4352 b = b * cos - a * sin; 4353 a22 = a22 * cos - a12 * sin; 4354 a = t1; 4355 a12 = t2; 4356 } 4357 4358 if (rotationX && Math.abs(rotationX) + Math.abs(rotation) > 359.9) { 4359 rotationX = rotation = 0; 4360 rotationY = 180 - rotationY; 4361 } 4362 4363 scaleX = _round(Math.sqrt(a * a + b * b + c * c)); 4364 scaleY = _round(Math.sqrt(a22 * a22 + a32 * a32)); 4365 angle = _atan2(a12, a22); 4366 skewX = Math.abs(angle) > 0.0002 ? angle * _RAD2DEG : 0; 4367 perspective = a43 ? 1 / (a43 < 0 ? -a43 : a43) : 0; 4368 } 4369 4370 if (cache.svg) { 4371 t1 = target.getAttribute("transform"); 4372 cache.forceCSS = target.setAttribute("transform", "") || !_isNullTransform(_getComputedProperty(target, _transformProp)); 4373 t1 && target.setAttribute("transform", t1); 4374 } 4375 } 4376 4377 if (Math.abs(skewX) > 90 && Math.abs(skewX) < 270) { 4378 if (invertedScaleX) { 4379 scaleX *= -1; 4380 skewX += rotation <= 0 ? 180 : -180; 4381 rotation += rotation <= 0 ? 180 : -180; 4382 } else { 4383 scaleY *= -1; 4384 skewX += skewX <= 0 ? 180 : -180; 4385 } 4386 } 4387 4388 cache.x = x - ((cache.xPercent = x && (cache.xPercent || (Math.round(target.offsetWidth / 2) === Math.round(-x) ? -50 : 0))) ? target.offsetWidth * cache.xPercent / 100 : 0) + px; 4389 cache.y = y - ((cache.yPercent = y && (cache.yPercent || (Math.round(target.offsetHeight / 2) === Math.round(-y) ? -50 : 0))) ? target.offsetHeight * cache.yPercent / 100 : 0) + px; 4390 cache.z = z + px;
vendor: 4,420 bytes, lines 4391-4517
4391 cache.scaleX = _round(scaleX); 4392 cache.scaleY = _round(scaleY); 4393 cache.rotation = _round(rotation) + deg; 4394 cache.rotationX = _round(rotationX) + deg; 4395 cache.rotationY = _round(rotationY) + deg; 4396 cache.skewX = skewX + deg; 4397 cache.skewY = skewY + deg; 4398 cache.transformPerspective = perspective + px; 4399 4400 if (cache.zOrigin = parseFloat(origin.split(" ")[2]) || 0) { 4401 style[_transformOriginProp] = _firstTwoOnly(origin); 4402 } 4403 4404 cache.xOffset = cache.yOffset = 0; 4405 cache.force3D = _config.force3D; 4406 cache.renderTransform = cache.svg ? _renderSVGTransforms : _supports3D ? _renderCSSTransforms : _renderNon3DTransforms; 4407 cache.uncache = 0; 4408 return cache; 4409 }, 4410 _firstTwoOnly = function _firstTwoOnly(value) { 4411 return (value = value.split(" "))[0] + " " + value[1]; 4412 }, 4413 _addPxTranslate = function _addPxTranslate(target, start, value) { 4414 var unit = getUnit(start); 4415 return _round(parseFloat(start) + parseFloat(_convertToUnit(target, "x", value + "px", unit))) + unit; 4416 }, 4417 _renderNon3DTransforms = function _renderNon3DTransforms(ratio, cache) { 4418 cache.z = "0px"; 4419 cache.rotationY = cache.rotationX = "0deg"; 4420 cache.force3D = 0; 4421 4422 _renderCSSTransforms(ratio, cache); 4423 }, 4424 _zeroDeg = "0deg", 4425 _zeroPx = "0px", 4426 _endParenthesis = ") ", 4427 _renderCSSTransforms = function _renderCSSTransforms(ratio, cache) { 4428 var _ref = cache || this, 4429 xPercent = _ref.xPercent, 4430 yPercent = _ref.yPercent, 4431 x = _ref.x, 4432 y = _ref.y, 4433 z = _ref.z, 4434 rotation = _ref.rotation, 4435 rotationY = _ref.rotationY, 4436 rotationX = _ref.rotationX, 4437 skewX = _ref.skewX, 4438 skewY = _ref.skewY, 4439 scaleX = _ref.scaleX, 4440 scaleY = _ref.scaleY, 4441 transformPerspective = _ref.transformPerspective, 4442 force3D = _ref.force3D, 4443 target = _ref.target, 4444 zOrigin = _ref.zOrigin, 4445 transforms = "", 4446 use3D = force3D === "auto" && ratio && ratio !== 1 || force3D === true; 4447 4448 if (zOrigin && (rotationX !== _zeroDeg || rotationY !== _zeroDeg)) { 4449 var angle = parseFloat(rotationY) * _DEG2RAD, 4450 a13 = Math.sin(angle), 4451 a33 = Math.cos(angle), 4452 cos; 4453 4454 angle = parseFloat(rotationX) * _DEG2RAD; 4455 cos = Math.cos(angle); 4456 x = _addPxTranslate(target, x, a13 * cos * -zOrigin); 4457 y = _addPxTranslate(target, y, -Math.sin(angle) * -zOrigin); 4458 z = _addPxTranslate(target, z, a33 * cos * -zOrigin + zOrigin); 4459 } 4460 4461 if (transformPerspective !== _zeroPx) { 4462 transforms += "perspective(" + transformPerspective + _endParenthesis; 4463 } 4464 4465 if (xPercent || yPercent) { 4466 transforms += "translate(" + xPercent + "%, " + yPercent + "%) "; 4467 } 4468 4469 if (use3D || x !== _zeroPx || y !== _zeroPx || z !== _zeroPx) { 4470 transforms += z !== _zeroPx || use3D ? "translate3d(" + x + ", " + y + ", " + z + ") " : "translate(" + x + ", " + y + _endParenthesis; 4471 } 4472 4473 if (rotation !== _zeroDeg) { 4474 transforms += "rotate(" + rotation + _endParenthesis; 4475 } 4476 4477 if (rotationY !== _zeroDeg) { 4478 transforms += "rotateY(" + rotationY + _endParenthesis; 4479 } 4480 4481 if (rotationX !== _zeroDeg) { 4482 transforms += "rotateX(" + rotationX + _endParenthesis; 4483 } 4484 4485 if (skewX !== _zeroDeg || skewY !== _zeroDeg) { 4486 transforms += "skew(" + skewX + ", " + skewY + _endParenthesis; 4487 } 4488 4489 if (scaleX !== 1 || scaleY !== 1) { 4490 transforms += "scale(" + scaleX + ", " + scaleY + _endParenthesis; 4491 } 4492 4493 target.style[_transformProp] = transforms || "translate(0, 0)"; 4494 }, 4495 _renderSVGTransforms = function _renderSVGTransforms(ratio, cache) { 4496 var _ref2 = cache || this, 4497 xPercent = _ref2.xPercent, 4498 yPercent = _ref2.yPercent, 4499 x = _ref2.x, 4500 y = _ref2.y, 4501 rotation = _ref2.rotation, 4502 skewX = _ref2.skewX, 4503 skewY = _ref2.skewY, 4504 scaleX = _ref2.scaleX, 4505 scaleY = _ref2.scaleY, 4506 target = _ref2.target, 4507 xOrigin = _ref2.xOrigin, 4508 yOrigin = _ref2.yOrigin, 4509 xOffset = _ref2.xOffset, 4510 yOffset = _ref2.yOffset, 4511 forceCSS = _ref2.forceCSS, 4512 tx = parseFloat(x), 4513 ty = parseFloat(y), 4514 a11, 4515 a21, 4516 a12, 4517 a22,
vendor: 4,702 bytes, lines 4518-4672
4518 temp; 4519 4520 rotation = parseFloat(rotation); 4521 skewX = parseFloat(skewX); 4522 skewY = parseFloat(skewY); 4523 4524 if (skewY) { 4525 skewY = parseFloat(skewY); 4526 skewX += skewY; 4527 rotation += skewY; 4528 } 4529 4530 if (rotation || skewX) { 4531 rotation *= _DEG2RAD; 4532 skewX *= _DEG2RAD; 4533 a11 = Math.cos(rotation) * scaleX; 4534 a21 = Math.sin(rotation) * scaleX; 4535 a12 = Math.sin(rotation - skewX) * -scaleY; 4536 a22 = Math.cos(rotation - skewX) * scaleY; 4537 4538 if (skewX) { 4539 skewY *= _DEG2RAD; 4540 temp = Math.tan(skewX - skewY); 4541 temp = Math.sqrt(1 + temp * temp); 4542 a12 *= temp; 4543 a22 *= temp; 4544 4545 if (skewY) { 4546 temp = Math.tan(skewY); 4547 temp = Math.sqrt(1 + temp * temp); 4548 a11 *= temp; 4549 a21 *= temp; 4550 } 4551 } 4552 4553 a11 = _round(a11); 4554 a21 = _round(a21); 4555 a12 = _round(a12); 4556 a22 = _round(a22); 4557 } else { 4558 a11 = scaleX; 4559 a22 = scaleY; 4560 a21 = a12 = 0; 4561 } 4562 4563 if (tx && !~(x + "").indexOf("px") || ty && !~(y + "").indexOf("px")) { 4564 tx = _convertToUnit(target, "x", x, "px"); 4565 ty = _convertToUnit(target, "y", y, "px"); 4566 } 4567 4568 if (xOrigin || yOrigin || xOffset || yOffset) { 4569 tx = _round(tx + xOrigin - (xOrigin * a11 + yOrigin * a12) + xOffset); 4570 ty = _round(ty + yOrigin - (xOrigin * a21 + yOrigin * a22) + yOffset); 4571 } 4572 4573 if (xPercent || yPercent) { 4574 temp = target.getBBox(); 4575 tx = _round(tx + xPercent / 100 * temp.width); 4576 ty = _round(ty + yPercent / 100 * temp.height); 4577 } 4578 4579 temp = "matrix(" + a11 + "," + a21 + "," + a12 + "," + a22 + "," + tx + "," + ty + ")"; 4580 target.setAttribute("transform", temp); 4581 forceCSS && (target.style[_transformProp] = temp); 4582 }, 4583 _addRotationalPropTween = function _addRotationalPropTween(plugin, target, property, startNum, endValue, relative) { 4584 var cap = 360, 4585 isString = _isString(endValue), 4586 endNum = parseFloat(endValue) * (isString && ~endValue.indexOf("rad") ? _RAD2DEG : 1), 4587 change = relative ? endNum * relative : endNum - startNum, 4588 finalValue = startNum + change + "deg", 4589 direction, 4590 pt; 4591 4592 if (isString) { 4593 direction = endValue.split("_")[1]; 4594 4595 if (direction === "short") { 4596 change %= cap; 4597 4598 if (change !== change % (cap / 2)) { 4599 change += change < 0 ? cap : -cap; 4600 } 4601 } 4602 4603 if (direction === "cw" && change < 0) { 4604 change = (change + cap * _bigNum$1) % cap - ~~(change / cap) * cap; 4605 } else if (direction === "ccw" && change > 0) { 4606 change = (change - cap * _bigNum$1) % cap - ~~(change / cap) * cap; 4607 } 4608 } 4609 4610 plugin._pt = pt = new PropTween(plugin._pt, target, property, startNum, change, _renderPropWithEnd); 4611 pt.e = finalValue; 4612 pt.u = "deg"; 4613 4614 plugin._props.push(property); 4615 4616 return pt; 4617 }, 4618 _assign = function _assign(target, source) { 4619 for (var p in source) { 4620 target[p] = source[p]; 4621 } 4622 4623 return target; 4624 }, 4625 _addRawTransformPTs = function _addRawTransformPTs(plugin, transforms, target) { 4626 var startCache = _assign({}, target._gsap), 4627 exclude = "perspective,force3D,transformOrigin,svgOrigin", 4628 style = target.style, 4629 endCache, 4630 p, 4631 startValue, 4632 endValue, 4633 startNum, 4634 endNum, 4635 startUnit, 4636 endUnit; 4637 4638 if (startCache.svg) { 4639 startValue = target.getAttribute("transform"); 4640 target.setAttribute("transform", ""); 4641 style[_transformProp] = transforms; 4642 endCache = _parseTransform(target, 1); 4643 4644 _removeProperty(target, _transformProp); 4645 4646 target.setAttribute("transform", startValue); 4647 } else { 4648 startValue = getComputedStyle(target)[_transformProp]; 4649 style[_transformProp] = transforms; 4650 endCache = _parseTransform(target, 1); 4651 style[_transformProp] = startValue; 4652 } 4653 4654 for (p in _transformProps) { 4655 startValue = startCache[p]; 4656 endValue = endCache[p]; 4657 4658 if (startValue !== endValue && exclude.indexOf(p) < 0) { 4659 startUnit = getUnit(startValue); 4660 endUnit = getUnit(endValue); 4661 startNum = startUnit !== endUnit ? _convertToUnit(target, p, startValue, endUnit) : parseFloat(startValue); 4662 endNum = parseFloat(endValue); 4663 plugin._pt = new PropTween(plugin._pt, endCache, p, startNum, endNum - startNum, _renderCSSProp); 4664 plugin._pt.u = endUnit || 0; 4665 4666 plugin._props.push(p); 4667 } 4668 } 4669 4670 _assign(endCache, startCache); 4671 }; 4672
vendor: 4,224 bytes, lines 4673-4795
4673 _forEachName("padding,margin,Width,Radius", function (name, index) { 4674 var t = "Top", 4675 r = "Right", 4676 b = "Bottom", 4677 l = "Left", 4678 props = (index < 3 ? [t, r, b, l] : [t + l, t + r, b + r, b + l]).map(function (side) { 4679 return index < 2 ? name + side : "border" + side + name; 4680 }); 4681 4682 _specialProps[index > 1 ? "border" + name : name] = function (plugin, target, property, endValue, tween) { 4683 var a, vars; 4684 4685 if (arguments.length < 4) { 4686 a = props.map(function (prop) { 4687 return _get(plugin, prop, property); 4688 }); 4689 vars = a.join(" "); 4690 return vars.split(a[0]).length === 5 ? a[0] : vars; 4691 } 4692 4693 a = (endValue + "").split(" "); 4694 vars = {}; 4695 props.forEach(function (prop, i) { 4696 return vars[prop] = a[i] = a[i] || a[(i - 1) / 2 | 0]; 4697 }); 4698 plugin.init(target, vars, tween); 4699 }; 4700 }); 4701 4702 var CSSPlugin = { 4703 name: "css", 4704 register: _initCore, 4705 targetTest: function targetTest(target) { 4706 return target.style && target.nodeType; 4707 }, 4708 init: function init(target, vars, tween, index, targets) { 4709 var props = this._props, 4710 style = target.style, 4711 startAt = tween.vars.startAt, 4712 startValue, 4713 endValue, 4714 endNum, 4715 startNum, 4716 type, 4717 specialProp, 4718 p, 4719 startUnit, 4720 endUnit, 4721 relative, 4722 isTransformRelated, 4723 transformPropTween, 4724 cache, 4725 smooth, 4726 hasPriority; 4727 _pluginInitted || _initCore(); 4728 4729 for (p in vars) { 4730 if (p === "autoRound") { 4731 continue; 4732 } 4733 4734 endValue = vars[p]; 4735 4736 if (_plugins[p] && _checkPlugin(p, vars, tween, index, target, targets)) { 4737 continue; 4738 } 4739 4740 type = typeof endValue; 4741 specialProp = _specialProps[p]; 4742 4743 if (type === "function") { 4744 endValue = endValue.call(tween, index, target, targets); 4745 type = typeof endValue; 4746 } 4747 4748 if (type === "string" && ~endValue.indexOf("random(")) { 4749 endValue = _replaceRandom(endValue); 4750 } 4751 4752 if (specialProp) { 4753 specialProp(this, target, p, endValue, tween) && (hasPriority = 1); 4754 } else if (p.substr(0, 2) === "--") { 4755 startValue = (getComputedStyle(target).getPropertyValue(p) + "").trim(); 4756 endValue += ""; 4757 _colorExp.lastIndex = 0; 4758 4759 if (!_colorExp.test(startValue)) { 4760 startUnit = getUnit(startValue); 4761 endUnit = getUnit(endValue); 4762 } 4763 4764 endUnit ? startUnit !== endUnit && (startValue = _convertToUnit(target, p, startValue, endUnit) + endUnit) : startUnit && (endValue += startUnit); 4765 this.add(style, "setProperty", startValue, endValue, index, targets, 0, 0, p); 4766 props.push(p); 4767 } else if (type !== "undefined") { 4768 if (startAt && p in startAt) { 4769 startValue = typeof startAt[p] === "function" ? startAt[p].call(tween, index, target, targets) : startAt[p]; 4770 p in _config.units && !getUnit(startValue) && (startValue += _config.units[p]); 4771 (startValue + "").charAt(1) === "=" && (startValue = _get(target, p)); 4772 } else { 4773 startValue = _get(target, p); 4774 } 4775 4776 startNum = parseFloat(startValue); 4777 relative = type === "string" && endValue.charAt(1) === "=" ? +(endValue.charAt(0) + "1") : 0; 4778 relative && (endValue = endValue.substr(2)); 4779 endNum = parseFloat(endValue); 4780 4781 if (p in _propertyAliases) { 4782 if (p === "autoAlpha") { 4783 if (startNum === 1 && _get(target, "visibility") === "hidden" && endNum) { 4784 startNum = 0; 4785 } 4786 4787 _addNonTweeningPT(this, style, "visibility", startNum ? "inherit" : "hidden", endNum ? "inherit" : "hidden", !endNum); 4788 } 4789 4790 if (p !== "scale" && p !== "transform") { 4791 p = _propertyAliases[p]; 4792 ~p.indexOf(",") && (p = p.split(",")[0]); 4793 } 4794 } 4795
vendor: 4,394 bytes, lines 4796-4889
4796 isTransformRelated = p in _transformProps; 4797 4798 if (isTransformRelated) { 4799 if (!transformPropTween) { 4800 cache = target._gsap; 4801 cache.renderTransform && !vars.parseTransform || _parseTransform(target, vars.parseTransform); 4802 smooth = vars.smoothOrigin !== false && cache.smooth; 4803 transformPropTween = this._pt = new PropTween(this._pt, style, _transformProp, 0, 1, cache.renderTransform, cache, 0, -1); 4804 transformPropTween.dep = 1; 4805 } 4806 4807 if (p === "scale") { 4808 this._pt = new PropTween(this._pt, cache, "scaleY", cache.scaleY, (relative ? relative * endNum : endNum - cache.scaleY) || 0); 4809 props.push("scaleY", p); 4810 p += "X"; 4811 } else if (p === "transformOrigin") { 4812 endValue = _convertKeywordsToPercentages(endValue); 4813 4814 if (cache.svg) { 4815 _applySVGOrigin(target, endValue, 0, smooth, 0, this); 4816 } else { 4817 endUnit = parseFloat(endValue.split(" ")[2]) || 0; 4818 endUnit !== cache.zOrigin && _addNonTweeningPT(this, cache, "zOrigin", cache.zOrigin, endUnit); 4819 4820 _addNonTweeningPT(this, style, p, _firstTwoOnly(startValue), _firstTwoOnly(endValue)); 4821 } 4822 4823 continue; 4824 } else if (p === "svgOrigin") { 4825 _applySVGOrigin(target, endValue, 1, smooth, 0, this); 4826 4827 continue; 4828 } else if (p in _rotationalProperties) { 4829 _addRotationalPropTween(this, cache, p, startNum, endValue, relative); 4830 4831 continue; 4832 } else if (p === "smoothOrigin") { 4833 _addNonTweeningPT(this, cache, "smooth", cache.smooth, endValue); 4834 4835 continue; 4836 } else if (p === "force3D") { 4837 cache[p] = endValue; 4838 continue; 4839 } else if (p === "transform") { 4840 _addRawTransformPTs(this, endValue, target); 4841 4842 continue; 4843 } 4844 } else if (!(p in style)) { 4845 p = _checkPropPrefix(p) || p; 4846 } 4847 4848 if (isTransformRelated || (endNum || endNum === 0) && (startNum || startNum === 0) && !_complexExp.test(endValue) && p in style) { 4849 startUnit = (startValue + "").substr((startNum + "").length); 4850 endNum || (endNum = 0); 4851 endUnit = getUnit(endValue) || (p in _config.units ? _config.units[p] : startUnit); 4852 startUnit !== endUnit && (startNum = _convertToUnit(target, p, startValue, endUnit)); 4853 this._pt = new PropTween(this._pt, isTransformRelated ? cache : style, p, startNum, relative ? relative * endNum : endNum - startNum, !isTransformRelated && (endUnit === "px" || p === "zIndex") && vars.autoRound !== false ? _renderRoundedCSSProp : _renderCSSProp); 4854 this._pt.u = endUnit || 0; 4855 4856 if (startUnit !== endUnit) { 4857 this._pt.b = startValue; 4858 this._pt.r = _renderCSSPropWithBeginning; 4859 } 4860 } else if (!(p in style)) { 4861 if (p in target) { 4862 this.add(target, p, startValue || target[p], endValue, index, targets); 4863 } else { 4864 _missingPlugin(p, endValue); 4865 4866 continue; 4867 } 4868 } else { 4869 _tweenComplexCSSString.call(this, target, p, startValue, endValue); 4870 } 4871 4872 props.push(p); 4873 } 4874 } 4875 4876 hasPriority && _sortPropTweensByPriority(this); 4877 }, 4878 get: _get, 4879 aliases: _propertyAliases, 4880 getSetter: function getSetter(target, property, plugin) { 4881 var p = _propertyAliases[property]; 4882 p && p.indexOf(",") < 0 && (property = p); 4883 return property in _transformProps && property !== _transformOriginProp && (target._gsap.x || _get(target, "x")) ? plugin && _recentSetterPlugin === plugin ? property === "scale" ? _setterScale : _setterTransform : (_recentSetterPlugin = plugin || {}) && (property === "scale" ? _setterScaleWithRender : _setterTransformWithRender) : target.style && !_isUndefined(target.style[property]) ? _setterCSSStyle : ~property.indexOf("-") ? _setterCSSProp : _getSetter(target, property); 4884 }, 4885 core: { 4886 _removeProperty: _removeProperty, 4887 _getMatrix: _getMatrix 4888 } 4889 };
vendor: 2,070 bytes, lines 4890-4947
4890 gsap.utils.checkPrefix = _checkPropPrefix; 4891 4892 (function (positionAndScale, rotation, others, aliases) { 4893 var all = _forEachName(positionAndScale + "," + rotation + "," + others, function (name) { 4894 _transformProps[name] = 1; 4895 }); 4896 4897 _forEachName(rotation, function (name) { 4898 _config.units[name] = "deg"; 4899 _rotationalProperties[name] = 1; 4900 }); 4901 4902 _propertyAliases[all[13]] = positionAndScale + "," + rotation; 4903 4904 _forEachName(aliases, function (name) { 4905 var split = name.split(":"); 4906 _propertyAliases[split[1]] = all[split[0]]; 4907 }); 4908 })("x,y,z,scale,scaleX,scaleY,xPercent,yPercent", "rotation,rotationX,rotationY,skewX,skewY", "transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective", "0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY"); 4909 4910 _forEachName("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective", function (name) { 4911 _config.units[name] = "px"; 4912 }); 4913 4914 gsap.registerPlugin(CSSPlugin); 4915 4916 var gsapWithCSS = gsap.registerPlugin(CSSPlugin) || gsap, 4917 TweenMaxWithCSS = gsapWithCSS.core.Tween; 4918 4919 exports.Back = Back; 4920 exports.Bounce = Bounce; 4921 exports.CSSPlugin = CSSPlugin; 4922 exports.Circ = Circ; 4923 exports.Cubic = Cubic; 4924 exports.Elastic = Elastic; 4925 exports.Expo = Expo; 4926 exports.Linear = Linear; 4927 exports.Power0 = Power0; 4928 exports.Power1 = Power1; 4929 exports.Power2 = Power2; 4930 exports.Power3 = Power3; 4931 exports.Power4 = Power4; 4932 exports.Quad = Quad; 4933 exports.Quart = Quart; 4934 exports.Quint = Quint; 4935 exports.Sine = Sine; 4936 exports.SteppedEase = SteppedEase; 4937 exports.Strong = Strong; 4938 exports.TimelineLite = Timeline; 4939 exports.TimelineMax = Timeline; 4940 exports.TweenLite = Tween; 4941 exports.TweenMax = TweenMaxWithCSS; 4942 exports.default = gsapWithCSS; 4943 exports.gsap = gsapWithCSS; 4944 4945 if (typeof(window) === 'undefined' || window !== exports) {Object.defineProperty(exports, '__esModule', { value: true });} else {delete window.default;} 4946 4947})));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.