1/*! 2 * MotionPathPlugin 3.2.6 3 * https://greensock.com 4 * 5 * @license Copyright 2020, GreenSock. All rights reserved. 6 * Subject to the terms at https://greensock.com/standard-license or for Club GreenSock members, the agreement issued with that membership. 7 * @author: Jack Doyle, [email protected] 8 */ 9 10!(function (t, e) { 11 "object" == typeof exports && "undefined" != typeof module 12 ? e(exports) 13 : "function" == typeof define && define.amd 14 ? define(["exports"], e) 15 : e(((t = t || self).window = t.window || {})); 16})(this, function (t) { 17 "use strict"; 18 function p(t) { 19 return "string" == typeof t; 20 } 21 function x(t, e, n, r) { 22 var a = t[e], 23 o = 1 === r ? 6 : subdivideSegment(a, n, r); 24 if (o && o + n + 2 < a.length) 25 return t.splice(e, 0, a.slice(0, n + o + 2)), a.splice(0, n + o), 1; 26 } 27 function A(t, e) { 28 var n = t.length, 29 r = t[n - 1] || [], 30 a = r.length; 31 e[0] === r[a - 2] && e[1] === r[a - 1] && ((e = r.concat(e.slice(2))), n--), 32 (t[n] = e); 33 } 34 var M = /[achlmqstvz]|(-?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/gi, 35 R = /(?:(-)?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/gi, 36 L = /[\+\-]?\d*\.?\d+e[\+\-]?\d+/gi, 37 r = /(^[#\.][a-z]|[a-y][a-z])/i, 38 F = Math.PI / 180, 39 s = 180 / Math.PI, 40 W = Math.sin, 41 U = Math.cos, 42 H = Math.abs, 43 Z = Math.sqrt, 44 S = Math.atan2, 45 B = 1e8, 46 l = function _isNumber(t) { 47 return "number" == typeof t; 48 }, 49 N = {}, 50 _ = {}, 51 e = 1e5, 52 d = function _wrapProgress(t) { 53 return Math.round(((t + B) % 1) * e) / e || (t < 0 ? 0 : 1); 54 }, 55 C = function _round(t) { 56 return Math.round(t * e) / e || 0; 57 }, 58 I = function _copyMetaData(t, e) { 59 return ( 60 (e.totalLength = t.totalLength), 61 t.samples 62 ? ((e.samples = t.samples.slice(0)), 63 (e.lookup = t.lookup.slice(0)), 64 (e.minLength = t.minLength), 65 (e.resolution = t.resolution)) 66 : (e.totalPoints = t.totalPoints), 67 e 68 ); 69 }; 70 function getRawPath(t) { 71 var e, 72 n = (t = (p(t) && r.test(t) && document.querySelector(t)) || t) 73 .getAttribute 74 ? t 75 : 0; 76 return n && (t = t.getAttribute("d")) 77 ? (n._gsPath || (n._gsPath = {}), 78 (e = n._gsPath[t]) && !e._dirty 79 ? e 80 : (n._gsPath[t] = stringToRawPath(t))) 81 : t 82 ? p(t) 83 ? stringToRawPath(t) 84 : l(t[0]) 85 ? [t] 86 : t 87 : console.warn("Expecting a <path> element or an SVG path data string"); 88 } 89 function reverseSegment(t) { 90 var e, 91 n = 0; 92 for (t.reverse(); n < t.length; n += 2) 93 (e = t[n]), (t[n] = t[n + 1]), (t[n + 1] = e); 94 t.reversed = !t.reversed; 95 } 96 var D = { 97 rect: "rx,ry,x,y,width,height", 98 circle: "r,cx,cy", 99 ellipse: "rx,ry,cx,cy", 100 line: "x1,x2,y1,y2", 101 }; 102 function convertToPath(t, e) { 103 var n, 104 r, 105 a, 106 o, 107 i, 108 s, 109 l, 110 h, 111 u, 112 g, 113 f, 114 p, 115 c, 116 d, 117 m, 118 v, 119 x, 120 y, 121 P, 122 w, 123 b, 124 M, 125 L = t.tagName.toLowerCase(), 126 T = 0.552284749831; 127 return "path" !== L && t.getBBox 128 ? ((s = (function _createPath(t, e) { 129 var n, 130 r = document.createElementNS("http://www.w3.org/2000/svg", "path"), 131 a = [].slice.call(t.attributes), 132 o = a.length; 133 for (e = "," + e + ","; -1 < --o; ) 134 (n = a[o].nodeName.toLowerCase()), 135 e.indexOf("," + n + ",") < 0 && 136 r.setAttributeNS(null, n, a[o].nodeValue); 137 return r; 138 })(t, "x,y,width,height,cx,cy,rx,ry,r,x1,x2,y1,y2,points")), 139 (M = (function _attrToObj(t, e) { 140 for (var n = e ? e.split(",") : [], r = {}, a = n.length; -1 < --a; ) 141 r[n[a]] = +t.getAttribute(n[a]) || 0; 142 return r; 143 })(t, D[L])), 144 "rect" === L 145 ? ((o = M.rx), 146 (i = M.ry), 147 (r = M.x), 148 (a = M.y), 149 (g = M.width - 2 * o), 150 (f = M.height - 2 * i), 151 (n = 152 o || i 153 ? "M" + 154 (v = (d = (c = r + o) + g) + o) + 155 "," + 156 (y = a + i) + 157 " V" + 158 (P = y + f) + 159 " C" + 160 [ 161 v, 162 (w = P + i * T), 163 (m = d + o * T), 164 (b = P + i), 165 d, 166 b, 167 d - (d - c) / 3, 168 b, 169 c + (d - c) / 3, 170 b, 171 c, 172 b, 173 (p = r + o * (1 - T)), 174 b, 175 r, 176 w, 177 r, 178 P, 179 r, 180 P - (P - y) / 3, 181 r, 182 y + (P - y) / 3, 183 r, 184 y, 185 r, 186 (x = a + i * (1 - T)), 187 p, 188 a, 189 c, 190 a, 191 c + (d - c) / 3, 192 a, 193 d - (d - c) / 3, 194 a, 195 d, 196 a, 197 m, 198 a, 199 v, 200 x, 201 v, 202 y, 203 ].join(",") + 204 "z" 205 : "M" + 206 (r + g) + 207 "," + 208 a + 209 " v" + 210 f + 211 " h" + 212 -g + 213 " v" + 214 -f + 215 " h" + 216 g + 217 "z")) 218 : "circle" === L || "ellipse" === L 219 ? ((h = 220 "circle" === L 221 ? (o = i = M.r) * T 222 : ((o = M.rx), (i = M.ry) * T)), 223 (n = 224 "M" + 225 ((r = M.cx) + o) + 226 "," + 227 (a = M.cy) + 228 " C" + 229 [ 230 r + o, 231 a + h, 232 r + (l = o * T), 233 a + i, 234 r, 235 a + i, 236 r - l, 237 a + i, 238 r - o, 239 a + h, 240 r - o, 241 a, 242 r - o, 243 a - h, 244 r - l, 245 a - i, 246 r, 247 a - i, 248 r + l, 249 a - i, 250 r + o, 251 a - h, 252 r + o, 253 a, 254 ].join(",") + 255 "z")) 256 : "line" === L 257 ? (n = "M" + M.x1 + "," + M.y1 + " L" + M.x2 + "," + M.y2) 258 : ("polyline" !== L && "polygon" !== L) || 259 ((n = 260 "M" + 261 (r = (u = 262 (t.getAttribute("points") + "").match(R) || []).shift()) + 263 "," + 264 (a = u.shift()) + 265 " L" + 266 u.join(",")), 267 "polygon" === L && (n += "," + r + "," + a + "z")), 268 s.setAttribute( 269 "d", 270 rawPathToString((s._gsRawPath = stringToRawPath(n))) 271 ), 272 e && 273 t.parentNode && 274 (t.parentNode.insertBefore(s, t), t.parentNode.removeChild(t)), 275 s) 276 : t; 277 } 278 function getRotationAtBezierT(t, e, n) { 279 var r, 280 a = t[e], 281 o = t[e + 2], 282 i = t[e + 4]; 283 return ( 284 (a += (o - a) * n), 285 (a += ((o += (i - o) * n) - a) * n), 286 (r = o + (i + (t[e + 6] - i) * n - o) * n - a), 287 (a = t[e + 1]), 288 (a += ((o = t[e + 3]) - a) * n), 289 (a += ((o += ((i = t[e + 5]) - o) * n) - a) * n), 290 C(S(o + (i + (t[e + 7] - i) * n - o) * n - a, r) * s) 291 ); 292 } 293 function sliceRawPath(t, e, n) { 294 !(function _isUndefined(t) { 295 return void 0 === t; 296 })(n) || (n = 1); 297 var r = n < (e = e || 0), 298 a = Math.max(0, ~~(H(n - e) - 1e-8)); 299 if ( 300 (r && ((r = n), (n = e), (e = r), (r = 1), (a -= a ? 1 : 0)), 301 e < 0 || n < 0) 302 ) { 303 var o = 1 + ~~Math.min(e, n); 304 (e += o), (n += o); 305 } 306 var i, 307 s, 308 l, 309 h, 310 u, 311 g, 312 f, 313 p = (function copyRawPath(t) { 314 for (var e = [], n = 0; n < t.length; n++) 315 e[n] = I(t[n], t[n].slice(0)); 316 return I(t, e); 317 })(t.totalLength ? t : cacheRawPathMeasurements(t)), 318 c = 1 < n, 319 d = getProgressData(p, e, N, !0), 320 m = getProgressData(p, n, _), 321 v = m.segment, 322 y = d.segment, 323 P = m.segIndex, 324 w = d.segIndex, 325 b = m.i, 326 M = d.i, 327 L = w === P, 328 T = b === M && L, 329 R = (L && b < M) || (T && d.t > m.t); 330 if (c || a) { 331 if ( 332 (x(p, w, M, d.t) && 333 ((i = 1), 334 w++, 335 T 336 ? R 337 ? (m.t /= d.t) 338 : ((m.t = (m.t - d.t) / (1 - d.t)), P++, (b = 0))
339 : w <= P + 1 && !R && (P++, L && (b -= M))), 340 m.t ? x(p, P, b, m.t) && (R && i && w++, r && P++) : (P--, r && w--), 341 (h = []), 342 (g = 1 + (u = p.length) * a), 343 (f = w), 344 r) 345 ) 346 for (g += (u - (P = (P || u) - 1) + w) % u, l = 0; l < g; l++) 347 A(h, p[f]), (f = (f || u) - 1); 348 else for (g += (u - w + P) % u, l = 0; l < g; l++) A(h, p[f++ % u]); 349 p = h; 350 } else if (((s = 1 === m.t ? 6 : subdivideSegment(v, b, m.t)), e !== n)) 351 for ( 352 i = subdivideSegment(y, M, T ? d.t / m.t : d.t), 353 L && (s += i), 354 v.splice(b + s + 2), 355 (i || M) && y.splice(0, M + i), 356 l = p.length; 357 l--; 358 359 ) 360 (l < w || P < l) && p.splice(l, 1); 361 else 362 (v.angle = getRotationAtBezierT(v, b + s, 0)), 363 (d = v[(b += s)]), 364 (m = v[b + 1]), 365 (v.length = v.totalLength = 0), 366 (v.totalPoints = p.totalPoints = 8), 367 v.push(d, m, d, m, d, m, d, m); 368 return ( 369 r && 370 (function _reverseRawPath(t, e) { 371 var n = t.length; 372 for (e || t.reverse(); n--; ) t[n].reversed || reverseSegment(t[n]); 373 })(p, c || a), 374 (p.totalLength = 0), 375 p 376 ); 377 } 378 function measureSegment(t, e, n) { 379 (e = e || 0), t.samples || ((t.samples = []), (t.lookup = [])); 380 var r, 381 a, 382 o, 383 i, 384 s, 385 l, 386 h, 387 u, 388 g, 389 f, 390 p, 391 c, 392 d, 393 m, 394 v, 395 x, 396 y, 397 P = ~~t.resolution || 12, 398 w = 1 / P, 399 b = n ? e + 6 * n + 1 : t.length, 400 M = t[e], 401 L = t[e + 1], 402 T = e ? (e / 6) * P : 0, 403 R = t.samples, 404 S = t.lookup, 405 N = (e ? t.minLength : B) || B, 406 _ = R[T + n * P - 1], 407 C = e ? R[T - 1] : 0; 408 for (R.length = S.length = 0, a = e + 2; a < b; a += 6) { 409 if ( 410 ((o = t[a + 4] - M), 411 (i = t[a + 2] - M), 412 (s = t[a] - M), 413 (u = t[a + 5] - L), 414 (g = t[a + 3] - L), 415 (f = t[a + 1] - L), 416 (l = h = p = c = 0), 417 H(o) < 1e-5 && H(u) < 1e-5 && H(s) + H(f) < 1e-5) 418 ) 419 8 < t.length && (t.splice(a, 6), (a -= 6), (b -= 6)); 420 else 421 for (r = 1; r <= P; r++) 422 (l = 423 h - 424 (h = 425 ((m = w * r) * m * o + 3 * (d = 1 - m) * (m * i + d * s)) * m)), 426 (p = c - (c = (m * m * u + 3 * d * (m * g + d * f)) * m)), 427 (x = Z(p * p + l * l)) < N && (N = x), 428 (C += x), 429 (R[T++] = C); 430 (M += o), (L += u); 431 } 432 if (_) for (_ -= C; T < R.length; T++) R[T] += _; 433 if (R.length && N) 434 for ( 435 t.totalLength = y = R[R.length - 1] || 0, 436 t.minLength = N, 437 x = v = 0, 438 r = 0; 439 r < y; 440 r += N 441 ) 442 S[x++] = R[v] < r ? ++v : v; 443 else t.totalLength = R[0] = 0; 444 return e ? C - R[e / 2 - 1] : C; 445 } 446 function cacheRawPathMeasurements(t, e) { 447 var n, r, a; 448 for (a = n = r = 0; a < t.length; a++) 449 (t[a].resolution = ~~e || 12), 450 (r += t[a].length), 451 (n += measureSegment(t[a])); 452 return (t.totalPoints = r), (t.totalLength = n), t; 453 } 454 function subdivideSegment(t, e, n) { 455 if (n <= 0 || 1 <= n) return 0; 456 var r = t[e], 457 a = t[e + 1], 458 o = t[e + 2], 459 i = t[e + 3], 460 s = t[e + 4], 461 l = t[e + 5], 462 h = r + (o - r) * n, 463 u = o + (s - o) * n, 464 g = a + (i - a) * n, 465 f = i + (l - i) * n, 466 p = h + (u - h) * n, 467 c = g + (f - g) * n, 468 d = s + (t[e + 6] - s) * n, 469 m = l + (t[e + 7] - l) * n; 470 return ( 471 (u += (d - u) * n), 472 (f += (m - f) * n), 473 t.splice( 474 e + 2, 475 4, 476 C(h), 477 C(g), 478 C(p), 479 C(c), 480 C(p + (u - p) * n), 481 C(c + (f - c) * n), 482 C(u), 483 C(f), 484 C(d), 485 C(m) 486 ), 487 t.samples && 488 t.samples.splice(((e / 6) * t.resolution) | 0, 0, 0, 0, 0, 0, 0, 0), 489 6 490 ); 491 } 492 function getProgressData(t, e, n, r) { 493 (n = n || {}), 494 t.totalLength || cacheRawPathMeasurements(t), 495 (e < 0 || 1 < e) && (e = d(e)); 496 var a, 497 o, 498 i, 499 s, 500 l, 501 h, 502 u, 503 g = 0, 504 f = t[0]; 505 if (1 < t.length) { 506 for (i = t.totalLength * e, l = h = 0; (l += t[h++].totalLength) < i; ) 507 g = h; 508 e = (i - (s = l - (f = t[g]).totalLength)) / (l - s) || 0; 509 } 510 return ( 511 (a = f.samples), 512 (o = f.resolution), 513 (i = f.totalLength * e), 514 (s = (h = f.lookup[~~(i / f.minLength)] || 0) ? a[h - 1] : 0), 515 (l = a[h]) < i && ((s = l), (l = a[++h])), 516 (u = (1 / o) * ((i - s) / (l - s) + (h % o))), 517 (h = 6 * ~~(h / o)), 518 r && 519 1 === u && 520 (h + 6 < f.length 521 ? ((h += 6), (u = 0)) 522 : g + 1 < t.length && ((h = u = 0), (f = t[++g]))), 523 (n.t = u), 524 (n.i = h), 525 (n.path = t), 526 (n.segment = f), 527 (n.segIndex = g), 528 n 529 ); 530 } 531 function getPositionOnPath(t, e, n, r) { 532 var a, 533 o, 534 i, 535 s, 536 l, 537 h, 538 u, 539 g, 540 f, 541 p = t[0], 542 c = r || {}; 543 if (((e < 0 || 1 < e) && (e = d(e)), 1 < t.length)) { 544 for (i = t.totalLength * e, l = h = 0; (l += t[h++].totalLength) < i; ) 545 p = t[h]; 546 e = (i - (s = l - p.totalLength)) / (l - s) || 0; 547 } 548 return ( 549 (a = p.samples), 550 (o = p.resolution), 551 (i = p.totalLength * e), 552 (s = (h = p.lookup[~~(i / p.minLength)] || 0) ? a[h - 1] : 0), 553 (l = a[h]) < i && ((s = l), (l = a[++h])), 554 (f = 1 - (u = (1 / o) * ((i - s) / (l - s) + (h % o)) || 0)), 555 (g = p[(h = 6 * ~~(h / o))]), 556 (c.x = C( 557 (u * u * (p[h + 6] - g) + 558 3 * f * (u * (p[h + 4] - g) + f * (p[h + 2] - g))) * 559 u + 560 g 561 )), 562 (c.y = C( 563 (u * u * (p[h + 7] - (g = p[h + 1])) + 564 3 * f * (u * (p[h + 5] - g) + f * (p[h + 3] - g))) * 565 u + 566 g 567 )), 568 n && 569 (c.angle = p.totalLength 570 ? getRotationAtBezierT(p, h, 1 <= u ? 1 - 1e-9 : u || 1e
570-9) 571 : p.angle || 0), 572 c 573 ); 574 } 575 function transformRawPath(t, e, n, r, a, o, i) { 576 for (var s, l, h, u, g, f = t.length; -1 < --f; ) 577 for (l = (s = t[f]).length, h = 0; h < l; h += 2) 578 (u = s[h]), 579 (g = s[h + 1]), 580 (s[h] = u * e + g * r + o), 581 (s[h + 1] = u * n + g * a + i); 582 return (t._dirty = 1), t; 583 } 584 function arcToSegment(t, e, n, r, a, o, i, s, l) { 585 if (t !== s || e !== l) { 586 (n = H(n)), (r = H(r)); 587 var h = (a % 360) * F, 588 u = U(h), 589 g = W(h), 590 f = Math.PI, 591 p = 2 * f, 592 c = (t - s) / 2, 593 d = (e - l) / 2, 594 m = u * c + g * d, 595 v = -g * c + u * d, 596 x = m * m, 597 y = v * v, 598 P = x / (n * n) + y / (r * r); 599 1 < P && ((n = Z(P) * n), (r = Z(P) * r)); 600 var w = n * n, 601 b = r * r, 602 M = (w * b - w * y - b * x) / (w * y + b * x); 603 M < 0 && (M = 0); 604 var L = (o === i ? -1 : 1) * Z(M), 605 T = ((n * v) / r) * L, 606 R = ((-r * m) / n) * L, 607 S = u * T - g * R + (t + s) / 2, 608 N = g * T + u * R + (e + l) / 2, 609 _ = (m - T) / n, 610 C = (v - R) / r, 611 A = (-m - T) / n, 612 O = (-v - R) / r, 613 B = _ * _ + C * C, 614 I = (C < 0 ? -1 : 1) * Math.acos(_ / Z(B)), 615 V = 616 (_ * O - C * A < 0 ? -1 : 1) * 617 Math.acos((_ * A + C * O) / Z(B * (A * A + O * O))); 618 isNaN(V) && (V = f), 619 !i && 0 < V ? (V -= p) : i && V < 0 && (V += p), 620 (I %= p), 621 (V %= p); 622 var D, 623 z = Math.ceil(H(V) / (p / 4)), 624 E = [], 625 G = V / z, 626 j = ((4 / 3) * W(G / 2)) / (1 + U(G / 2)), 627 Y = u * n, 628 k = g * n, 629 q = g * -r, 630 X = u * r; 631 for (D = 0; D < z; D++) 632 (m = U((a = I + D * G))), 633 (v = W(a)), 634 (_ = U((a += G))), 635 (C = W(a)), 636 E.push(m - j * v, v + j * m, _ + j * C, C - j * _, _, C); 637 for (D = 0; D < E.length; D += 2) 638 (m = E[D]), 639 (v = E[D + 1]), 640 (E[D] = m * Y + v * q + S), 641 (E[D + 1] = m * k + v * X + N); 642 return (E[D - 2] = s), (E[D - 1] = l), E; 643 } 644 } 645 function stringToRawPath(t) { 646 function qf(t, e, n, r) { 647 (u = (n - t) / 3), 648 (g = (r - e) / 3), 649 s.push(t + u, e + g, n - u, r - g, n, r); 650 } 651 var e, 652 n, 653 r, 654 a, 655 o, 656 i, 657 s, 658 l, 659 h, 660 u, 661 g, 662 f, 663 p, 664 c, 665 d, 666 m = 667 (t + "") 668 .replace(L, function (t) { 669 var e = +t; 670 return e < 1e-4 && -1e-4 < e ? 0 : e; 671 }) 672 .match(M) || [], 673 v = [], 674 x = 0, 675 y = 0, 676 P = m.length, 677 w = 0, 678 b = "ERROR: malformed path: " + t; 679 if (!t || !isNaN(m[0]) || isNaN(m[1])) return console.log(b), v; 680 for (e = 0; e < P; e++) 681 if ( 682 ((p = o), 683 isNaN(m[e]) ? (i = (o = m[e].toUpperCase()) !== m[e]) : e--, 684 (r = +m[e + 1]), 685 (a = +m[e + 2]), 686 i && ((r += x), (a += y)), 687 e || ((l = r), (h = a)), 688 "M" === o) 689 ) 690 s && (s.length < 8 ? --v.length : (w += s.length)), 691 (x = l = r), 692 (y = h = a), 693 (s = [r, a]), 694 v.push(s), 695 (e += 2), 696 (o = "L"); 697 else if ("C" === o) 698 i || (x = y = 0), 699 (s = s || [0, 0]).push( 700 r, 701 a, 702 x + 1 * m[e + 3], 703 y + 1 * m[e + 4], 704 (x += 1 * m[e + 5]), 705 (y += 1 * m[e + 6]) 706 ), 707 (e += 6); 708 else if ("S" === o) 709 (u = x), 710 (g = y), 711 ("C" !== p && "S" !== p) || 712 ((u += x - s[s.length - 4]), (g += y - s[s.length - 3])), 713 i || (x = y = 0), 714 s.push(u, g, r, a, (x += 1 * m[e + 3]), (y += 1 * m[e + 4])), 715 (e += 4); 716 else if ("Q" === o) 717 (u = x + (2 / 3) * (r - x)), 718 (g = y + (2 / 3) * (a - y)), 719 i || (x = y = 0), 720 (x += 1 * m[e + 3]), 721 (y += 1 * m[e + 4]), 722 s.push(u, g, x + (2 / 3) * (r - x), y + (2 / 3) * (a - y), x, y), 723 (e += 4); 724 else if ("T" === o) 725 (u = x - s[s.length - 4]), 726 (g = y - s[s.length - 3]), 727 s.push( 728 x + u, 729 y + g, 730 r + (2 / 3) * (x + 1.5 * u - r), 731 a + (2 / 3) * (y + 1.5 * g - a), 732 (x = r), 733 (y = a) 734 ), 735 (e += 2); 736 else if ("H" === o) qf(x, y, (x = r), y), (e += 1); 737 else if ("V" === o) qf(x, y, x, (y = r + (i ? y - x : 0))), (e += 1); 738 else if ("L" === o || "Z" === o) 739 "Z" === o && ((r = l), (a = h), (s.closed = !0)), 740 ("L" === o || 0.5 < H(x - r) || 0.5 < H(y - a)) && 741 (qf(x, y, r, a), "L" === o && (e += 2)), 742 (x = r), 743 (y = a); 744 else if ("A" === o) { 745 if ( 746 ((c = m[e + 4]), 747 (d = m[e + 5]), 748 (u = m[e + 6]), 749 (g = m[e + 7]), 750 (n = 7), 751 1 < c.length && 752 (c.length < 3 753 ? ((g = u), (u = d), n--) 754 : ((g = d), (u = c.substr(2)), (n -= 2)), 755 (d = c.charAt(1)), 756 (c = c.charAt(0))), 757 (f = arcToSegment( 758 x, 759 y, 760 +m[e + 1], 761 +m[e + 2], 762 +m[e + 3], 763 +c, 764 +d, 765 (i ? x : 0) + 1 * u, 766 (i ? y : 0) + 1 * g 767 )), 768 (e += n), 769 f) 770 ) 771 for (n = 0; n < f.length; n++) s.push(f[n]); 772 (x = s[s.length - 2]), (y = s[s.length - 1]); 773 } else console.log(b); 774 return ( 775 (e = s.length) < 6 776 ? (v.pop(), (e = 0)) 777 : s[0] === s[e - 2] && s[1] === s[e - 1] && (s.closed = !0), 778 (v.totalPoints = w + e), 779 v 780 ); 781 } 782 function flatPointsToSegment(t, e) { 783 void 0 === e && (e = 1); 784 for (var n = t[0], r = 0, a = [n, r], o = 2; o < t.length; o += 2) 785 a.push(n, r, t[o], (r = ((t[o] - n) * e) / 2), (n = t[o]), -r); 786 return a; 787 } 788 function pointsToSegment(t, e, n) { 789 var r, 790 a, 791 o, 792 i, 793 s, 794 l, 795 h, 796 u, 797 g, 798 f, 799 p, 800 c, 801 d, 802 m, 803 v = t.length - 2, 804 x = +t[0], 805 y = +t[1], 806 P = +t[2], 807 w = +t[3], 808 b = [x, y, x, y], 809 M = P - x, 810 L = w - y; 811 for ( 812 isNaN(n) && (n = Math.PI / 10), e = e || 0 === e ? +e : 1, s = 2; 813 s < v; 814 s += 2 815 ) 816 (r = x), 817 (a = y), 818 (x = P), 819 (y = w), 820 (c = (l = M) * l + (u = L) * u), 821 (d = (M = (P = +t[s + 2]) - x) * M + (L = (w = +t[s + 3]) - y) * L), 822 (m = (h = P - r) * h + (g = w - a) * g), 823 (p = ((o = Math.acos((c + d - m) / Z(4 * c * d))) / Math.PI) * e), 824 (f = Z(c) * p), 825 (p *= Z(d)), 826 (x === r && y === a) || 827 (n < o 828 ? ((i = S(g, h)), 829 b.push( 830 C(x - U(i) * f), 831 C(y - W(i) * f), 832 C(x), 833 C(y), 834 C(x + U(i) * p), 835 C(y + W(i) * p) 836 )) 837 : ((i = S(u, l)), 838 b.push(C(x - U(i) * f), C(y - W(i) * f)), 839 (i = S(L, M)), 840 b.push(C(x), C(y), C(x + U(i) * p), C(y + W(i) * p)))); 841 return b.push(C(P), C(w), C(P), C(w)), b; 842 } 843 function rawPathToString(t) { 844 l(t[0]) && (t = [t]); 845 var e, 846 n, 847 r, 848 a, 849 o = "", 850 i = t.length; 851 for (n = 0; n < i; n++) { 852 for ( 853 a = t[n], 854 o += "M" + C(a[0]) + "," + C(a[1]) + " C", 855 e = a.length, 856 r = 2; 857 r < e; 858 r++ 859 ) 860 o += 861 C(a[r++]) + 862 "," + 863 C(a[r++]) + 864 " " + 865 C(a[r++]) + 866 "," + 867 C(a[r++]) + 868 " " + 869 C(a[r++]) + 870 "," + 871 C(a[r]) + 872 " "; 873 a.closed && (o += "z"); 874 } 875 return o; 876 } 877 function O(t) { 878 var e = t.ownerDocument || t; 879 !(w in t.style) && 880 "msTransform" in t.style && 881 (b = (w = "msTransform") + "Origin"); 882 for (; e.parentNode && (e = e.parentNode); );
883 if (((f = window), (y = new G()), e)) { 884 (c = (g = e).documentElement), (m = e.body); 885 var n = e.createElement("div"), 886 r = e.createElement("div"); 887 m.appendChild(n), 888 n.appendChild(r), 889 (n.style.position = "static"), 890 (n.style[w] = "translate3d(0,0,1px)"), 891 (P = r.offsetParent !== n), 892 m.removeChild(n); 893 } 894 return e; 895 } 896 function T(t) { 897 return ( 898 t.ownerSVGElement || ("svg" === (t.tagName + "").toLowerCase() ? t : null) 899 ); 900 } 901 function V(t, e) { 902 if (t.parentNode && (g || O(t))) { 903 var n = T(t), 904 r = n 905 ? n.getAttribute("xmlns") || "http://www.w3.org/2000/svg" 906 : "http://www.w3.org/1999/xhtml", 907 a = n ? (e ? "rect" : "g") : "div", 908 o = 2 !== e ? 0 : 100, 909 i = 3 === e ? 100 : 0, 910 s = "position:absolute;display:block;pointer-events:none;", 911 l = g.createElementNS 912 ? g.createElementNS(r.replace(/^https/, "http"), a) 913 : g.createElement(a); 914 return ( 915 e && 916 (n 917 ? ((v = v || V(t)), 918 l.setAttribute("width", 0.01), 919 l.setAttribute("height", 0.01), 920 l.setAttribute("transform", "translate(" + o + "," + i + ")"), 921 v.appendChild(l)) 922 : (u || ((u = V(t)).style.cssText = s), 923 (l.style.cssText = 924 s + 925 "width:0.1px;height:0.1px;top:" + 926 i + 927 "px;left:" + 928 o + 929 "px"), 930 u.appendChild(l))), 931 l 932 ); 933 } 934 throw "Need document and parent."; 935 } 936 function X(t, e) { 937 var n, 938 r, 939 a, 940 o, 941 i, 942 s = T(t), 943 l = t === s, 944 h = s ? z : E; 945 if (t === f) return t; 946 if ((h.length || h.push(V(t, 1), V(t, 2), V(t, 3)), (n = s ? v : u), s)) 947 (a = l ? { x: 0, y: 0 } : t.getBBox()), 948 (i = (r = t.transform ? t.transform.baseVal : {}).numberOfItems 949 ? ((o = 950 (r = 951 1 < r.numberOfItems 952 ? (function _consolidate(t) { 953 for (var e = new G(), n = 0; n < t.numberOfItems; n++) 954 e.multiply(t.getItem(n).matrix); 955 return e; 956 })(r) 957 : r.getItem(0).matrix).a * 958 a.x + 959 r.c * a.y), 960 r.b * a.x + r.d * a.y)
961 : ((r = y), (o = a.x), a.y)), 962 e && "g" === t.tagName.toLowerCase() && (o = i = 0), 963 n.setAttribute( 964 "transform", 965 "matrix(" + 966 r.a + 967 "," + 968 r.b + 969 "," + 970 r.c + 971 "," + 972 r.d + 973 "," + 974 (r.e + o) + 975 "," + 976 (r.f + i) + 977 ")" 978 ), 979 (l ? s : t.parentNode).appendChild(n); 980 else { 981 if (((o = i = 0), P)) 982 for ( 983 r = t.offsetParent, a = t; 984 (a = a && a.parentNode) && a !== r && a.parentNode; 985 986 ) 987 4 < (f.getComputedStyle(a)[w] + "").length && 988 ((o = a.offsetLeft), (i = a.offsetTop), (a = 0)); 989 ((a = n.style).top = t.offsetTop - i + "px"), 990 (a.left = t.offsetLeft - o + "px"), 991 (r = f.getComputedStyle(t)), 992 (a[w] = r[w]), 993 (a[b] = r[b]), 994 (a.border = r.border), 995 (a.borderLeftStyle = r.borderLeftStyle), 996 (a.borderTopStyle = r.borderTopStyle), 997 (a.borderLeftWidth = r.borderLeftWidth), 998 (a.borderTopWidth = r.borderTopWidth), 999 (a.position = "fixed" === r.position ? "fixed" : "absolute"), 1000 t.parentNode.appendChild(n); 1001 } 1002 return n; 1003 } 1004 function Y(t, e, n, r, a, o, i) { 1005 return (t.a = e), (t.b = n), (t.c = r), (t.d = a), (t.e = o), (t.f = i), t; 1006 } 1007 var g, 1008 f, 1009 c, 1010 m, 1011 u, 1012 v, 1013 y, 1014 P, 1015 n, 1016 w = "transform", 1017 b = w + "Origin", 1018 z = [], 1019 E = [], 1020 G = 1021 (((n = Matrix2D.prototype).inverse = function inverse() { 1022 var t = this.a, 1023 e = this.b, 1024 n = this.c, 1025 r = this.d, 1026 a = this.e, 1027 o = this.f, 1028 i = t * r - e * n; 1029 return Y( 1030 this, 1031 r / i, 1032 -e / i, 1033 -n / i, 1034 t / i, 1035 (n * o - r * a) / i, 1036 -(t * o - e * a) / i 1037 ); 1038 }), 1039 (n.multiply = function multiply(t) { 1040 var e = this.a, 1041 n = this.b, 1042 r = this.c, 1043 a = this.d, 1044 o = this.e, 1045 i = this.f, 1046 s = t.a, 1047 l = t.c, 1048 h = t.b, 1049 u = t.d, 1050 g = t.e, 1051 f = t.f; 1052 return Y( 1053 this, 1054 s * e + h * r, 1055 s * n + h * a, 1056 l * e + u * r, 1057 l * n + u * a, 1058 o + g * e + f * r, 1059 i + g * n + f * a 1060 ); 1061 }), 1062 (n.clone = function clone() { 1063 return new Matrix2D(this.a, this.b, this.c, this.d, this.e, this.f); 1064 }), 1065 (n.equals = function equals(t) { 1066 var e = this.a, 1067 n = this.b, 1068 r = this.c, 1069 a = this.d, 1070 o = this.e, 1071 i = this.f; 1072 return ( 1073 e === t.a && 1074 n === t.b && 1075 r === t.c && 1076 a === t.d && 1077 o === t.e && 1078 i === t.f 1079 ); 1080 }), 1081 (n.apply = function apply(t, e) { 1082 void 0 === e && (e = {}); 1083 var n = t.x, 1084 r = t.y, 1085 a = this.a, 1086 o = this.b, 1087 i = this.c, 1088 s = this.d, 1089 l = this.e, 1090 h = this.f; 1091 return ( 1092 (e.x = n * a + r * i + l || 0), (e.y = n * o + r * s + h || 0), e 1093 ); 1094 }), 1095 Matrix2D); 1096 function Matrix2D(t, e, n, r, a, o) { 1097 void 0 === t && (t = 1), 1098 void 0 === e && (e = 0), 1099 void 0 === n && (n = 0), 1100 void 0 === r && (r = 1), 1101 void 0 === a && (a = 0), 1102 void 0 === o && (o = 0), 1103 Y(this, t, e, n, r, a, o); 1104 } 1105 function getGlobalMatrix(t, e, n) { 1106 if (!t || !t.parentNode || (g || O(t)).documentElement === t) 1107 return new G(); 1108 var r = T(t) ? z : E, 1109 a = X(t, n), 1110 o = r[0].getBoundingClientRect(), 1111 i = r[1].getBoundingClientRect(), 1112 s = r[2].getBoundingClientRect(), 1113 l = a.parentNode, 1114 h = (function _isFixed(t) { 1115 return ( 1116 "fixed" === f.getComputedStyle(t).position || 1117 ((t = t.parentNode) && 1 === t.nodeType ? _isFixed(t) : void 0) 1118 ); 1119 })(t), 1120 u = new G( 1121 (i.left - o.left) / 100, 1122 (i.top - o.top) / 100, 1123 (s.left - o.left) / 100, 1124 (s.top - o.top) / 100, 1125 o.left + 1126 (h 1127 ? 0 1128 : (function _getDocScrollLeft() { 1129 return ( 1130 f.pageXOffset || 1131 g.scrollLeft || 1132 c.scrollLeft || 1133 m.scrollLeft || 1134 0 1135 ); 1136 })()), 1137 o.top + 1138 (h 1139 ? 0 1140 : (function _getDocScrollTop() { 1141 return ( 1142 f.pageYOffset || 1143 g.scrollTop || 1144 c.scrollTop || 1145 m.scrollTop || 1146 0 1147 ); 1148 })()) 1149 ); 1150 return l.removeChild(a), e ? u.inverse() : u; 1151 } 1152 function ga(t, e, n, r) { 1153 for (var a = e.length, o = r, i = 0; i < a; i++) 1154 (t[o] = parseFloat(e[i][n])), (o += 2); 1155 return t; 1156 } 1157 function ha(t, e, n) { 1158 return parseFloat(t._gsap.get(t, e, n || "px")) || 0; 1159 } 1160 function ia(t) { 1161 var e, 1162 n = t[0], 1163 r = t[1]; 1164 for (e = 2; e < t.length; e += 2) (n = t[e] += n), (r = t[e + 1] += r); 1165 } 1166 function ja(t, e, n, r, a, o, i) { 1167 return ( 1168 (e = 1169 "cubic" === i.type 1170 ? [e] 1171 : (e.unshift(ha(n, r, i.unitX), a ? ha(n, a, i.unitY) : 0), 1172 i.relative && ia(e), 1173 [(a ? pointsToSegment : flatPointsToSegment)(e, i.curviness)])), 1174 (e = o(tt(e, n, i))), 1175 et(t, n, r, e, "x", i.unitX), 1176 a && et(t, n, a, e, "y", i.unitY), 1177 cacheRawPathMeasurements(e, i.resolution || (0 === i.curviness ? 20 : 12)) 1178 ); 1179 } 1180 function ka(t) { 1181 return t; 1182 } 1183 function ma(t, e, n) { 1184 var r, 1185 a, 1186 o, 1187 i = getGlobalMatrix(t); 1188 return ( 1189 "svg" === (t.tagName + "").toLowerCase() 1190 ? ((a = (r = t.viewBox.baseVal).x), 1191 (o = r.y), 1192 r.width || 1193 (r = { 1194 width: +t.getAttribute("width"), 1195 height: +t.getAttribute("height"), 1196 })) 1197 : ((r = e && t.getBBox && t.getBBox()), (a = o = 0)), 1198 e && 1199 "auto" !== e && 1200 ((a += e.push ? e[0] * (r ? r.width : t.offsetWidth || 0) : e.x), 1201 (o += e.push ? e[1] * (r ? r.height : t.offsetHeight || 0
1201) : e.y)), 1202 n.apply(a || o ? i.apply({ x: a, y: o }) : { x: i.e, y: i.f }) 1203 ); 1204 } 1205 function na(t, e, n, r) { 1206 var a, 1207 o = getGlobalMatrix(t.parentNode, !0, !0), 1208 i = o.clone().multiply(getGlobalMatrix(e)), 1209 s = ma(t, n, o), 1210 l = ma(e, r, o), 1211 h = l.x, 1212 u = l.y; 1213 return ( 1214 (i.e = i.f = 0), 1215 "auto" === r && 1216 e.getTotalLength && 1217 "path" === e.tagName.toLowerCase() && 1218 ((a = e.getAttribute("d").match(K) || []), 1219 (h += (a = i.apply({ x: +a[0], y: +a[1] })).x), 1220 (u += a.y)), 1221 (a || (e.getBBox && t.getBBox)) && 1222 ((h -= (a = i.apply(e.getBBox())).x), (u -= a.y)), 1223 (i.e = h - s.x), 1224 (i.f = u - s.y), 1225 i 1226 ); 1227 } 1228 var j, 1229 k, 1230 q, 1231 Q, 1232 $ = ["x", "translateX", "left", "marginLeft"], 1233 J = ["y", "translateY", "top", "marginTop"], 1234 o = Math.PI / 180, 1235 K = /[-+\.]*\d+[\.e\-\+]*\d*[e\-\+]*\d*/g, 1236 tt = function _align(t, e, n) { 1237 var r, 1238 a, 1239 o, 1240 i = n.align, 1241 s = n.matrix, 1242 l = n.offsetX, 1243 h = n.offsetY, 1244 u = n.alignOrigin, 1245 g = t[0][0], 1246 f = t[0][1], 1247 p = ha(e, "x"), 1248 c = ha(e, "y"); 1249 return t && t.length 1250 ? (i && 1251 ("self" === i || (r = Q(i)[0] || e) === e 1252 ? transformRawPath(t, 1, 0, 0, 1, p - g, c - f) 1253 : (u && !1 !== u[2] 1254 ? j.set(e, { 1255 transformOrigin: 100 * u[0] + "% " + 100 * u[1] + "%", 1256 }) 1257 : (u = [ha(e, "xPercent") / -100, ha(e, "yPercent") / -100]), 1258 (o = (a = na(e, r, u, "auto")).apply({ x: g, y: f })), 1259 transformRawPath( 1260 t, 1261 a.a, 1262 a.b, 1263 a.c, 1264 a.d, 1265 p + a.e - (o.x - a.e), 1266 c + a.f - (o.y - a.f) 1267 ))), 1268 s 1269 ? transformRawPath(t, s.a, s.b, s.c, s.d, s.e, s.f) 1270 : (l || h) && transformRawPath(t, 1, 0, 0, 1, l || 0, h || 0), 1271 t) 1272 : getRawPath("M0,0L0,0"); 1273 }, 1274 et = function _addDimensionalPropTween(t, e, n, r, a, o) { 1275 var i = e._gsap, 1276 s = i.harness, 1277 l = s && s.aliases && s.aliases[n], 1278 h = l && l.indexOf(",") < 0 ? l : n, 1279 u = (t._pt = new k(t._pt, e, h, 0, 0, ka, 0, i.set(e, h, t))); 1280 (u.u = q(i.get(e, h, o)) || 0), 1281 (u.path = r), 1282 (u.pp = a), 1283 t._props.push(h); 1284 }, 1285 a = { 1286 version: "3.2.6", 1287 name: "motionPath", 1288 register: function register(t, e, n) { 1289 (q = (j = t).utils.getUnit), (Q = j.utils.toArray), (k = n); 1290 }, 1291 init: function init(t, e) { 1292 if (!j) 1293 return ( 1294 console.warn("Please gsap.registerPlugin(MotionPathPlugin)"), !1 1295 ); 1296 ("object" == typeof e && !e.style && e.path) || (e = { path: e }); 1297 var n, 1298 r, 1299 a, 1300 o, 1301 i = [], 1302 s = e.path, 1303 l = s[0], 1304 h = e.autoRotate, 1305 u = (function _sliceModifier(e, n) { 1306 return function (t) { 1307 return e || 1 !== n ? sliceRawPath(t, e, n) : t; 1308 }; 1309 })(e.start, "end" in e ? e.end : 1); 1310 if ( 1311 ((this.rawPaths = i), 1312 (this.target = t), 1313 (this.rotate = h || 0 === h) && 1314 ((this.rOffset = parseFloat(h) || 0), 1315 (this.radians = !!e.useRadians), 1316 (this.rProp = e.rotation || "rotation"), 1317 (this.rSet = t._gsap.set(t, this.rProp, this)), 1318 (this.ru = q(t._gsap.get(t, this.rProp)) || 0)), 1319 !Array.isArray(s) || "closed" in s || "number" == typeof l) 1320 ) 1321 cacheRawPathMeasurements( 1322 (n = u(tt(getRawPath(e.path), t, e))), 1323 e.resolution 1324 ), 1325 i.push(n), 1326 et(this, t, e.x || "x", n, "x", e.unitX || "px"), 1327 et(this, t, e.y || "y", n, "y", e.unitY || "px"); 1328 else { 1329 for (r in l) ~$.indexOf(r) ? (a = r) : ~J.indexOf(r) && (o = r); 1330 for (r in (a && o 1331 ? i.push( 1332 ja( 1333 this, 1334 ga(ga([], s, a, 0), s, o, 1), 1335 t, 1336 e.x || a, 1337 e.y || o, 1338 u, 1339 e 1340 ) 1341 ) 1342 : (a = o = 0), 1343 l)) 1344 r !== a && 1345 r !== o && 1346 i.push(ja(this, ga([], s, r, 0), t, r, 0, u, e)); 1347 } 1348 }, 1349 render: function render(t, e) { 1350 var n = e.rawPaths, 1351 r = n.length, 1352 a = e._pt; 1353 for (1 < t ? (t = 1) : t < 0 && (t = 0); r--; ) 1354 getPositionOnPath(n[r], t, !r && e.rotate, n[r]); 1355 for (; a; ) a.set(a.t, a.p, a.path[a.pp] + a.u, a.d, t), (a = a._next); 1356 e.rotate && 1357 e.rSet( 1358 e.target, 1359 e.rProp, 1360 n[0].angle * (e.radians ? o : 1) + e.rOffset + e.ru, 1361 e, 1362 t 1363 ); 1364 }, 1365 getLength: function getLength(t) { 1366 return cacheRawPathMeasurements(getRawPath(t)).totalLength; 1367 }, 1368 sliceRawPath: sliceRawPath, 1369 getRawPath: getRawPath, 1370 pointsToSegment: pointsToSegment,
1371 stringToRawPath: stringToRawPath, 1372 rawPathToString: rawPathToString, 1373 transformRawPath: transformRawPath, 1374 getGlobalMatrix: getGlobalMatrix, 1375 getPositionOnPath: getPositionOnPath, 1376 cacheRawPathMeasurements: cacheRawPathMeasurements, 1377 convertToPath: function convertToPath$1(t, e) { 1378 return Q(t).map(function (t) { 1379 return convertToPath(t, !1 !== e); 1380 }); 1381 }, 1382 convertCoordinates: function convertCoordinates(t, e, n) { 1383 var r = getGlobalMatrix(e, !0, !0).multiply(getGlobalMatrix(t)); 1384 return n ? r.apply(n) : r; 1385 }, 1386 getAlignMatrix: na, 1387 getRelativePosition: function getRelativePosition(t, e, n, r) { 1388 var a = na(t, e, n, r); 1389 return { x: a.e, y: a.f }; 1390 }, 1391 arrayToRawPath: function arrayToRawPath(t, e) { 1392 var n = ga(ga([], t, (e = e || {}).x || "x", 0), t, e.y || "y", 1); 1393 return ( 1394 e.relative && ia(n), 1395 ["cubic" === e.type ? n : pointsToSegment(n, e.curviness)] 1396 ); 1397 }, 1398 }; 1399 !(function _getGSAP() { 1400 return ( 1401 j || 1402 ("undefined" != typeof window && 1403 (j = window.gsap) && 1404 j.registerPlugin && 1405 j) 1406 ); 1407 })() || j.registerPlugin(a), 1408 (t.MotionPathPlugin = a), 1409 (t.default = a); 1410 if (typeof window === "undefined" || window !== t) { 1411 Object.defineProperty(t, "__esModule", { value: !0 }); 1412 } else { 1413 delete t.default; 1414 } 1415});
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.