🐛 Update: Added support for the 'find' command in settings.local.json. Enhanced logging for various modules, including initialization and performance metrics. Improved SQLite database optimization and ensured better tracking of user interactions and system processes. 📚
This commit is contained in:
139
network-visualization/node_modules/gsap/dist/CSSRulePlugin.js
generated
vendored
Normal file
139
network-visualization/node_modules/gsap/dist/CSSRulePlugin.js
generated
vendored
Normal file
@@ -0,0 +1,139 @@
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(global = global || self, factory(global.window = global.window || {}));
|
||||
}(this, (function (exports) { 'use strict';
|
||||
|
||||
/*!
|
||||
* CSSRulePlugin 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2008-2025, GreenSock. All rights reserved.
|
||||
* Subject to the terms at https://gsap.com/standard-license
|
||||
* @author: Jack Doyle, jack@greensock.com
|
||||
*/
|
||||
var gsap,
|
||||
_coreInitted,
|
||||
_doc,
|
||||
CSSPlugin,
|
||||
_windowExists = function _windowExists() {
|
||||
return typeof window !== "undefined";
|
||||
},
|
||||
_getGSAP = function _getGSAP() {
|
||||
return gsap || _windowExists() && (gsap = window.gsap) && gsap.registerPlugin && gsap;
|
||||
},
|
||||
_checkRegister = function _checkRegister() {
|
||||
if (!_coreInitted) {
|
||||
_initCore();
|
||||
|
||||
if (!CSSPlugin) {
|
||||
console.warn("Please gsap.registerPlugin(CSSPlugin, CSSRulePlugin)");
|
||||
}
|
||||
}
|
||||
|
||||
return _coreInitted;
|
||||
},
|
||||
_initCore = function _initCore(core) {
|
||||
gsap = core || _getGSAP();
|
||||
|
||||
if (_windowExists()) {
|
||||
_doc = document;
|
||||
}
|
||||
|
||||
if (gsap) {
|
||||
CSSPlugin = gsap.plugins.css;
|
||||
|
||||
if (CSSPlugin) {
|
||||
_coreInitted = 1;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var CSSRulePlugin = {
|
||||
version: "3.13.0",
|
||||
name: "cssRule",
|
||||
init: function init(target, value, tween, index, targets) {
|
||||
if (!_checkRegister() || typeof target.cssText === "undefined") {
|
||||
return false;
|
||||
}
|
||||
|
||||
var div = target._gsProxy = target._gsProxy || _doc.createElement("div");
|
||||
|
||||
this.ss = target;
|
||||
this.style = div.style;
|
||||
div.style.cssText = target.cssText;
|
||||
CSSPlugin.prototype.init.call(this, div, value, tween, index, targets);
|
||||
},
|
||||
render: function render(ratio, data) {
|
||||
var pt = data._pt,
|
||||
style = data.style,
|
||||
ss = data.ss,
|
||||
i;
|
||||
|
||||
while (pt) {
|
||||
pt.r(ratio, pt.d);
|
||||
pt = pt._next;
|
||||
}
|
||||
|
||||
i = style.length;
|
||||
|
||||
while (--i > -1) {
|
||||
ss[style[i]] = style[style[i]];
|
||||
}
|
||||
},
|
||||
getRule: function getRule(selector) {
|
||||
_checkRegister();
|
||||
|
||||
var ruleProp = _doc.all ? "rules" : "cssRules",
|
||||
styleSheets = _doc.styleSheets,
|
||||
i = styleSheets.length,
|
||||
pseudo = selector.charAt(0) === ":",
|
||||
j,
|
||||
curSS,
|
||||
cs,
|
||||
a;
|
||||
selector = (pseudo ? "" : ",") + selector.split("::").join(":").toLowerCase() + ",";
|
||||
|
||||
if (pseudo) {
|
||||
a = [];
|
||||
}
|
||||
|
||||
while (i--) {
|
||||
try {
|
||||
curSS = styleSheets[i][ruleProp];
|
||||
|
||||
if (!curSS) {
|
||||
continue;
|
||||
}
|
||||
|
||||
j = curSS.length;
|
||||
} catch (e) {
|
||||
console.warn(e);
|
||||
continue;
|
||||
}
|
||||
|
||||
while (--j > -1) {
|
||||
cs = curSS[j];
|
||||
|
||||
if (cs.selectorText && ("," + cs.selectorText.split("::").join(":").toLowerCase() + ",").indexOf(selector) !== -1) {
|
||||
if (pseudo) {
|
||||
a.push(cs.style);
|
||||
} else {
|
||||
return cs.style;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return a;
|
||||
},
|
||||
register: _initCore
|
||||
};
|
||||
_getGSAP() && gsap.registerPlugin(CSSRulePlugin);
|
||||
|
||||
exports.CSSRulePlugin = CSSRulePlugin;
|
||||
exports.default = CSSRulePlugin;
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
})));
|
11
network-visualization/node_modules/gsap/dist/CSSRulePlugin.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/CSSRulePlugin.min.js
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
/*!
|
||||
* CSSRulePlugin 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2025, GreenSock. All rights reserved.
|
||||
* Subject to the terms at https://gsap.com/standard-license.
|
||||
* @author: Jack Doyle, jack@greensock.com
|
||||
*/
|
||||
|
||||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).window=e.window||{})}(this,function(e){"use strict";function h(){return"undefined"!=typeof window}function i(){return t||h()&&(t=window.gsap)&&t.registerPlugin&&t}function j(){return n||(s(),o||console.warn("Please gsap.registerPlugin(CSSPlugin, CSSRulePlugin)")),n}var t,n,c,o,s=function _initCore(e){t=e||i(),h()&&(c=document),t&&(o=t.plugins.css)&&(n=1)},r={version:"3.13.0",name:"cssRule",init:function init(e,t,n,i,s){if(!j()||void 0===e.cssText)return!1;var r=e._gsProxy=e._gsProxy||c.createElement("div");this.ss=e,this.style=r.style,r.style.cssText=e.cssText,o.prototype.init.call(this,r,t,n,i,s)},render:function render(e,t){for(var n,i=t._pt,s=t.style,r=t.ss;i;)i.r(e,i.d),i=i._next;for(n=s.length;-1<--n;)r[s[n]]=s[s[n]]},getRule:function getRule(e){j();var t,n,i,s,r=c.all?"rules":"cssRules",o=c.styleSheets,l=o.length,u=":"===e.charAt(0);for(e=(u?"":",")+e.split("::").join(":").toLowerCase()+",",u&&(s=[]);l--;){try{if(!(n=o[l][r]))continue;t=n.length}catch(e){console.warn(e);continue}for(;-1<--t;)if((i=n[t]).selectorText&&-1!==(","+i.selectorText.split("::").join(":").toLowerCase()+",").indexOf(e)){if(!u)return i.style;s.push(i.style)}}return s},register:s};i()&&t.registerPlugin(r),e.CSSRulePlugin=r,e.default=r;if (typeof(window)==="undefined"||window!==e){Object.defineProperty(e,"__esModule",{value:!0})} else {delete e.default}});
|
||||
|
1
network-visualization/node_modules/gsap/dist/CSSRulePlugin.min.js.map
generated
vendored
Normal file
1
network-visualization/node_modules/gsap/dist/CSSRulePlugin.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
168
network-visualization/node_modules/gsap/dist/CustomBounce.js
generated
vendored
Normal file
168
network-visualization/node_modules/gsap/dist/CustomBounce.js
generated
vendored
Normal file
@@ -0,0 +1,168 @@
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(global = global || self, factory(global.window = global.window || {}));
|
||||
}(this, (function (exports) { 'use strict';
|
||||
|
||||
/*!
|
||||
* CustomBounce 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2008-2025, GreenSock. All rights reserved.
|
||||
* Subject to the terms at https://gsap.com/standard-license
|
||||
* @author: Jack Doyle, jack@greensock.com
|
||||
*/
|
||||
var gsap,
|
||||
_coreInitted,
|
||||
createCustomEase,
|
||||
_getGSAP = function _getGSAP() {
|
||||
return gsap || typeof window !== "undefined" && (gsap = window.gsap) && gsap.registerPlugin && gsap;
|
||||
},
|
||||
_initCore = function _initCore(required) {
|
||||
gsap = _getGSAP();
|
||||
createCustomEase = gsap && gsap.parseEase("_CE");
|
||||
|
||||
if (createCustomEase) {
|
||||
_coreInitted = 1;
|
||||
|
||||
gsap.parseEase("bounce").config = function (vars) {
|
||||
return typeof vars === "object" ? _create("", vars) : _create("bounce(" + vars + ")", {
|
||||
strength: +vars
|
||||
});
|
||||
};
|
||||
} else {
|
||||
required && console.warn("Please gsap.registerPlugin(CustomEase, CustomBounce)");
|
||||
}
|
||||
},
|
||||
_normalizeX = function _normalizeX(a) {
|
||||
var l = a.length,
|
||||
s = 1 / a[l - 2],
|
||||
rnd = 1000,
|
||||
i;
|
||||
|
||||
for (i = 2; i < l; i += 2) {
|
||||
a[i] = ~~(a[i] * s * rnd) / rnd;
|
||||
}
|
||||
|
||||
a[l - 2] = 1;
|
||||
},
|
||||
_create = function _create(id, vars) {
|
||||
if (!_coreInitted) {
|
||||
_initCore(1);
|
||||
}
|
||||
|
||||
vars = vars || {};
|
||||
|
||||
{
|
||||
var max = 0.999,
|
||||
decay = Math.min(max, vars.strength || 0.7),
|
||||
decayX = decay,
|
||||
gap = (vars.squash || 0) / 100,
|
||||
originalGap = gap,
|
||||
slope = 1 / 0.03,
|
||||
w = 0.2,
|
||||
h = 1,
|
||||
prevX = 0.1,
|
||||
path = [0, 0, 0.07, 0, 0.1, 1, 0.1, 1],
|
||||
squashPath = [0, 0, 0, 0, 0.1, 0, 0.1, 0],
|
||||
cp1,
|
||||
cp2,
|
||||
x,
|
||||
y,
|
||||
i,
|
||||
nextX,
|
||||
squishMagnitude;
|
||||
|
||||
for (i = 0; i < 200; i++) {
|
||||
w *= decayX * ((decayX + 1) / 2);
|
||||
h *= decay * decay;
|
||||
nextX = prevX + w;
|
||||
x = prevX + w * 0.49;
|
||||
y = 1 - h;
|
||||
cp1 = prevX + h / slope;
|
||||
cp2 = x + (x - cp1) * 0.8;
|
||||
|
||||
if (gap) {
|
||||
prevX += gap;
|
||||
cp1 += gap;
|
||||
x += gap;
|
||||
cp2 += gap;
|
||||
nextX += gap;
|
||||
squishMagnitude = gap / originalGap;
|
||||
squashPath.push(prevX - gap, 0, prevX - gap, squishMagnitude, prevX - gap / 2, squishMagnitude, prevX, squishMagnitude, prevX, 0, prevX, 0, prevX, squishMagnitude * -0.6, prevX + (nextX - prevX) / 6, 0, nextX, 0);
|
||||
path.push(prevX - gap, 1, prevX, 1, prevX, 1);
|
||||
gap *= decay * decay;
|
||||
}
|
||||
|
||||
path.push(prevX, 1, cp1, y, x, y, cp2, y, nextX, 1, nextX, 1);
|
||||
decay *= 0.95;
|
||||
slope = h / (nextX - cp2);
|
||||
prevX = nextX;
|
||||
|
||||
if (y > max) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (vars.endAtStart && vars.endAtStart !== "false") {
|
||||
x = -0.1;
|
||||
path.unshift(x, 1, x, 1, -0.07, 0);
|
||||
|
||||
if (originalGap) {
|
||||
gap = originalGap * 2.5;
|
||||
x -= gap;
|
||||
path.unshift(x, 1, x, 1, x, 1);
|
||||
squashPath.splice(0, 6);
|
||||
squashPath.unshift(x, 0, x, 0, x, 1, x + gap / 2, 1, x + gap, 1, x + gap, 0, x + gap, 0, x + gap, -0.6, x + gap + 0.033, 0);
|
||||
|
||||
for (i = 0; i < squashPath.length; i += 2) {
|
||||
squashPath[i] -= x;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < path.length; i += 2) {
|
||||
path[i] -= x;
|
||||
path[i + 1] = 1 - path[i + 1];
|
||||
}
|
||||
}
|
||||
|
||||
if (gap) {
|
||||
_normalizeX(squashPath);
|
||||
|
||||
squashPath[2] = "C" + squashPath[2];
|
||||
createCustomEase(vars.squashID || id + "-squash", "M" + squashPath.join(","));
|
||||
}
|
||||
|
||||
_normalizeX(path);
|
||||
|
||||
path[2] = "C" + path[2];
|
||||
return createCustomEase(id, "M" + path.join(","));
|
||||
}
|
||||
};
|
||||
|
||||
var CustomBounce = function () {
|
||||
function CustomBounce(id, vars) {
|
||||
this.ease = _create(id, vars);
|
||||
}
|
||||
|
||||
CustomBounce.create = function create(id, vars) {
|
||||
return _create(id, vars);
|
||||
};
|
||||
|
||||
CustomBounce.register = function register(core) {
|
||||
gsap = core;
|
||||
|
||||
_initCore();
|
||||
};
|
||||
|
||||
return CustomBounce;
|
||||
}();
|
||||
_getGSAP() && gsap.registerPlugin(CustomBounce);
|
||||
CustomBounce.version = "3.13.0";
|
||||
|
||||
exports.CustomBounce = CustomBounce;
|
||||
exports.default = CustomBounce;
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
})));
|
11
network-visualization/node_modules/gsap/dist/CustomBounce.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/CustomBounce.min.js
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
/*!
|
||||
* CustomBounce 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2025, GreenSock. All rights reserved.
|
||||
* Subject to the terms at https://gsap.com/standard-license.
|
||||
* @author: Jack Doyle, jack@greensock.com
|
||||
*/
|
||||
|
||||
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e=e||self).window=e.window||{})}(this,function(e){"use strict";function g(){return n||"undefined"!=typeof window&&(n=window.gsap)&&n.registerPlugin&&n}function h(e){n=g(),(j=n&&n.parseEase("_CE"))?(b=1,n.parseEase("bounce").config=function(e){return"object"==typeof e?t("",e):t("bounce("+e+")",{strength:+e})}):e&&console.warn("Please gsap.registerPlugin(CustomEase, CustomBounce)")}function i(e){var n,t=e.length,o=1/e[t-2];for(n=2;n<t;n+=2)e[n]=~~(e[n]*o*1e3)/1e3;e[t-2]=1}var n,b,j,t=function _create(e,n){b||h(1),n=n||{};var t,o,u,s,r,f,c,a=Math.min(.999,n.strength||.7),g=a,d=(n.squash||0)/100,p=d,l=1/.03,m=.2,C=1,w=.1,y=[0,0,.07,0,.1,1,.1,1],B=[0,0,0,0,.1,0,.1,0];for(r=0;r<200&&(f=w+(m*=g*((g+1)/2)),s=1-(C*=a*a),o=(u=w+.49*m)+.8*(u-(t=w+C/l)),d&&(w+=d,t+=d,u+=d,o+=d,f+=d,c=d/p,B.push(w-d,0,w-d,c,w-d/2,c,w,c,w,0,w,0,w,-.6*c,w+(f-w)/6,0,f,0),y.push(w-d,1,w,1,w,1),d*=a*a),y.push(w,1,t,s,u,s,o,s,f,1,f,1),a*=.95,l=C/(f-o),w=f,!(.999<s));r++);if(n.endAtStart&&"false"!==n.endAtStart){if(u=-.1,y.unshift(u,1,u,1,-.07,0),p)for(u-=d=2.5*p,y.unshift(u,1,u,1,u,1),B.splice(0,6),B.unshift(u,0,u,0,u,1,u+d/2,1,u+d,1,u+d,0,u+d,0,u+d,-.6,u+d+.033,0),r=0;r<B.length;r+=2)B[r]-=u;for(r=0;r<y.length;r+=2)y[r]-=u,y[r+1]=1-y[r+1]}return d&&(i(B),B[2]="C"+B[2],j(n.squashID||e+"-squash","M"+B.join(","))),i(y),y[2]="C"+y[2],j(e,"M"+y.join(","))},o=(CustomBounce.create=function create(e,n){return t(e,n)},CustomBounce.register=function register(e){n=e,h()},CustomBounce);function CustomBounce(e,n){this.ease=t(e,n)}g()&&n.registerPlugin(o),o.version="3.13.0",e.CustomBounce=o,e.default=o;if (typeof(window)==="undefined"||window!==e){Object.defineProperty(e,"__esModule",{value:!0})} else {delete e.default}});
|
||||
|
1
network-visualization/node_modules/gsap/dist/CustomBounce.min.js.map
generated
vendored
Normal file
1
network-visualization/node_modules/gsap/dist/CustomBounce.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
716
network-visualization/node_modules/gsap/dist/CustomEase.js
generated
vendored
Normal file
716
network-visualization/node_modules/gsap/dist/CustomEase.js
generated
vendored
Normal file
@@ -0,0 +1,716 @@
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(global = global || self, factory(global.window = global.window || {}));
|
||||
}(this, (function (exports) { 'use strict';
|
||||
|
||||
var _svgPathExp = /[achlmqstvz]|(-?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/ig,
|
||||
_scientific = /[\+\-]?\d*\.?\d+e[\+\-]?\d+/ig,
|
||||
_DEG2RAD = Math.PI / 180,
|
||||
_sin = Math.sin,
|
||||
_cos = Math.cos,
|
||||
_abs = Math.abs,
|
||||
_sqrt = Math.sqrt,
|
||||
_isNumber = function _isNumber(value) {
|
||||
return typeof value === "number";
|
||||
},
|
||||
_roundingNum = 1e5,
|
||||
_round = function _round(value) {
|
||||
return Math.round(value * _roundingNum) / _roundingNum || 0;
|
||||
};
|
||||
function transformRawPath(rawPath, a, b, c, d, tx, ty) {
|
||||
var j = rawPath.length,
|
||||
segment,
|
||||
l,
|
||||
i,
|
||||
x,
|
||||
y;
|
||||
|
||||
while (--j > -1) {
|
||||
segment = rawPath[j];
|
||||
l = segment.length;
|
||||
|
||||
for (i = 0; i < l; i += 2) {
|
||||
x = segment[i];
|
||||
y = segment[i + 1];
|
||||
segment[i] = x * a + y * c + tx;
|
||||
segment[i + 1] = x * b + y * d + ty;
|
||||
}
|
||||
}
|
||||
|
||||
rawPath._dirty = 1;
|
||||
return rawPath;
|
||||
}
|
||||
|
||||
function arcToSegment(lastX, lastY, rx, ry, angle, largeArcFlag, sweepFlag, x, y) {
|
||||
if (lastX === x && lastY === y) {
|
||||
return;
|
||||
}
|
||||
|
||||
rx = _abs(rx);
|
||||
ry = _abs(ry);
|
||||
|
||||
var angleRad = angle % 360 * _DEG2RAD,
|
||||
cosAngle = _cos(angleRad),
|
||||
sinAngle = _sin(angleRad),
|
||||
PI = Math.PI,
|
||||
TWOPI = PI * 2,
|
||||
dx2 = (lastX - x) / 2,
|
||||
dy2 = (lastY - y) / 2,
|
||||
x1 = cosAngle * dx2 + sinAngle * dy2,
|
||||
y1 = -sinAngle * dx2 + cosAngle * dy2,
|
||||
x1_sq = x1 * x1,
|
||||
y1_sq = y1 * y1,
|
||||
radiiCheck = x1_sq / (rx * rx) + y1_sq / (ry * ry);
|
||||
|
||||
if (radiiCheck > 1) {
|
||||
rx = _sqrt(radiiCheck) * rx;
|
||||
ry = _sqrt(radiiCheck) * ry;
|
||||
}
|
||||
|
||||
var rx_sq = rx * rx,
|
||||
ry_sq = ry * ry,
|
||||
sq = (rx_sq * ry_sq - rx_sq * y1_sq - ry_sq * x1_sq) / (rx_sq * y1_sq + ry_sq * x1_sq);
|
||||
|
||||
if (sq < 0) {
|
||||
sq = 0;
|
||||
}
|
||||
|
||||
var coef = (largeArcFlag === sweepFlag ? -1 : 1) * _sqrt(sq),
|
||||
cx1 = coef * (rx * y1 / ry),
|
||||
cy1 = coef * -(ry * x1 / rx),
|
||||
sx2 = (lastX + x) / 2,
|
||||
sy2 = (lastY + y) / 2,
|
||||
cx = sx2 + (cosAngle * cx1 - sinAngle * cy1),
|
||||
cy = sy2 + (sinAngle * cx1 + cosAngle * cy1),
|
||||
ux = (x1 - cx1) / rx,
|
||||
uy = (y1 - cy1) / ry,
|
||||
vx = (-x1 - cx1) / rx,
|
||||
vy = (-y1 - cy1) / ry,
|
||||
temp = ux * ux + uy * uy,
|
||||
angleStart = (uy < 0 ? -1 : 1) * Math.acos(ux / _sqrt(temp)),
|
||||
angleExtent = (ux * vy - uy * vx < 0 ? -1 : 1) * Math.acos((ux * vx + uy * vy) / _sqrt(temp * (vx * vx + vy * vy)));
|
||||
|
||||
isNaN(angleExtent) && (angleExtent = PI);
|
||||
|
||||
if (!sweepFlag && angleExtent > 0) {
|
||||
angleExtent -= TWOPI;
|
||||
} else if (sweepFlag && angleExtent < 0) {
|
||||
angleExtent += TWOPI;
|
||||
}
|
||||
|
||||
angleStart %= TWOPI;
|
||||
angleExtent %= TWOPI;
|
||||
|
||||
var segments = Math.ceil(_abs(angleExtent) / (TWOPI / 4)),
|
||||
rawPath = [],
|
||||
angleIncrement = angleExtent / segments,
|
||||
controlLength = 4 / 3 * _sin(angleIncrement / 2) / (1 + _cos(angleIncrement / 2)),
|
||||
ma = cosAngle * rx,
|
||||
mb = sinAngle * rx,
|
||||
mc = sinAngle * -ry,
|
||||
md = cosAngle * ry,
|
||||
i;
|
||||
|
||||
for (i = 0; i < segments; i++) {
|
||||
angle = angleStart + i * angleIncrement;
|
||||
x1 = _cos(angle);
|
||||
y1 = _sin(angle);
|
||||
ux = _cos(angle += angleIncrement);
|
||||
uy = _sin(angle);
|
||||
rawPath.push(x1 - controlLength * y1, y1 + controlLength * x1, ux + controlLength * uy, uy - controlLength * ux, ux, uy);
|
||||
}
|
||||
|
||||
for (i = 0; i < rawPath.length; i += 2) {
|
||||
x1 = rawPath[i];
|
||||
y1 = rawPath[i + 1];
|
||||
rawPath[i] = x1 * ma + y1 * mc + cx;
|
||||
rawPath[i + 1] = x1 * mb + y1 * md + cy;
|
||||
}
|
||||
|
||||
rawPath[i - 2] = x;
|
||||
rawPath[i - 1] = y;
|
||||
return rawPath;
|
||||
}
|
||||
|
||||
function stringToRawPath(d) {
|
||||
var a = (d + "").replace(_scientific, function (m) {
|
||||
var n = +m;
|
||||
return n < 0.0001 && n > -0.0001 ? 0 : n;
|
||||
}).match(_svgPathExp) || [],
|
||||
path = [],
|
||||
relativeX = 0,
|
||||
relativeY = 0,
|
||||
twoThirds = 2 / 3,
|
||||
elements = a.length,
|
||||
points = 0,
|
||||
errorMessage = "ERROR: malformed path: " + d,
|
||||
i,
|
||||
j,
|
||||
x,
|
||||
y,
|
||||
command,
|
||||
isRelative,
|
||||
segment,
|
||||
startX,
|
||||
startY,
|
||||
difX,
|
||||
difY,
|
||||
beziers,
|
||||
prevCommand,
|
||||
flag1,
|
||||
flag2,
|
||||
line = function line(sx, sy, ex, ey) {
|
||||
difX = (ex - sx) / 3;
|
||||
difY = (ey - sy) / 3;
|
||||
segment.push(sx + difX, sy + difY, ex - difX, ey - difY, ex, ey);
|
||||
};
|
||||
|
||||
if (!d || !isNaN(a[0]) || isNaN(a[1])) {
|
||||
console.log(errorMessage);
|
||||
return path;
|
||||
}
|
||||
|
||||
for (i = 0; i < elements; i++) {
|
||||
prevCommand = command;
|
||||
|
||||
if (isNaN(a[i])) {
|
||||
command = a[i].toUpperCase();
|
||||
isRelative = command !== a[i];
|
||||
} else {
|
||||
i--;
|
||||
}
|
||||
|
||||
x = +a[i + 1];
|
||||
y = +a[i + 2];
|
||||
|
||||
if (isRelative) {
|
||||
x += relativeX;
|
||||
y += relativeY;
|
||||
}
|
||||
|
||||
if (!i) {
|
||||
startX = x;
|
||||
startY = y;
|
||||
}
|
||||
|
||||
if (command === "M") {
|
||||
if (segment) {
|
||||
if (segment.length < 8) {
|
||||
path.length -= 1;
|
||||
} else {
|
||||
points += segment.length;
|
||||
}
|
||||
}
|
||||
|
||||
relativeX = startX = x;
|
||||
relativeY = startY = y;
|
||||
segment = [x, y];
|
||||
path.push(segment);
|
||||
i += 2;
|
||||
command = "L";
|
||||
} else if (command === "C") {
|
||||
if (!segment) {
|
||||
segment = [0, 0];
|
||||
}
|
||||
|
||||
if (!isRelative) {
|
||||
relativeX = relativeY = 0;
|
||||
}
|
||||
|
||||
segment.push(x, y, relativeX + a[i + 3] * 1, relativeY + a[i + 4] * 1, relativeX += a[i + 5] * 1, relativeY += a[i + 6] * 1);
|
||||
i += 6;
|
||||
} else if (command === "S") {
|
||||
difX = relativeX;
|
||||
difY = relativeY;
|
||||
|
||||
if (prevCommand === "C" || prevCommand === "S") {
|
||||
difX += relativeX - segment[segment.length - 4];
|
||||
difY += relativeY - segment[segment.length - 3];
|
||||
}
|
||||
|
||||
if (!isRelative) {
|
||||
relativeX = relativeY = 0;
|
||||
}
|
||||
|
||||
segment.push(difX, difY, x, y, relativeX += a[i + 3] * 1, relativeY += a[i + 4] * 1);
|
||||
i += 4;
|
||||
} else if (command === "Q") {
|
||||
difX = relativeX + (x - relativeX) * twoThirds;
|
||||
difY = relativeY + (y - relativeY) * twoThirds;
|
||||
|
||||
if (!isRelative) {
|
||||
relativeX = relativeY = 0;
|
||||
}
|
||||
|
||||
relativeX += a[i + 3] * 1;
|
||||
relativeY += a[i + 4] * 1;
|
||||
segment.push(difX, difY, relativeX + (x - relativeX) * twoThirds, relativeY + (y - relativeY) * twoThirds, relativeX, relativeY);
|
||||
i += 4;
|
||||
} else if (command === "T") {
|
||||
difX = relativeX - segment[segment.length - 4];
|
||||
difY = relativeY - segment[segment.length - 3];
|
||||
segment.push(relativeX + difX, relativeY + difY, x + (relativeX + difX * 1.5 - x) * twoThirds, y + (relativeY + difY * 1.5 - y) * twoThirds, relativeX = x, relativeY = y);
|
||||
i += 2;
|
||||
} else if (command === "H") {
|
||||
line(relativeX, relativeY, relativeX = x, relativeY);
|
||||
i += 1;
|
||||
} else if (command === "V") {
|
||||
line(relativeX, relativeY, relativeX, relativeY = x + (isRelative ? relativeY - relativeX : 0));
|
||||
i += 1;
|
||||
} else if (command === "L" || command === "Z") {
|
||||
if (command === "Z") {
|
||||
x = startX;
|
||||
y = startY;
|
||||
segment.closed = true;
|
||||
}
|
||||
|
||||
if (command === "L" || _abs(relativeX - x) > 0.5 || _abs(relativeY - y) > 0.5) {
|
||||
line(relativeX, relativeY, x, y);
|
||||
|
||||
if (command === "L") {
|
||||
i += 2;
|
||||
}
|
||||
}
|
||||
|
||||
relativeX = x;
|
||||
relativeY = y;
|
||||
} else if (command === "A") {
|
||||
flag1 = a[i + 4];
|
||||
flag2 = a[i + 5];
|
||||
difX = a[i + 6];
|
||||
difY = a[i + 7];
|
||||
j = 7;
|
||||
|
||||
if (flag1.length > 1) {
|
||||
if (flag1.length < 3) {
|
||||
difY = difX;
|
||||
difX = flag2;
|
||||
j--;
|
||||
} else {
|
||||
difY = flag2;
|
||||
difX = flag1.substr(2);
|
||||
j -= 2;
|
||||
}
|
||||
|
||||
flag2 = flag1.charAt(1);
|
||||
flag1 = flag1.charAt(0);
|
||||
}
|
||||
|
||||
beziers = arcToSegment(relativeX, relativeY, +a[i + 1], +a[i + 2], +a[i + 3], +flag1, +flag2, (isRelative ? relativeX : 0) + difX * 1, (isRelative ? relativeY : 0) + difY * 1);
|
||||
i += j;
|
||||
|
||||
if (beziers) {
|
||||
for (j = 0; j < beziers.length; j++) {
|
||||
segment.push(beziers[j]);
|
||||
}
|
||||
}
|
||||
|
||||
relativeX = segment[segment.length - 2];
|
||||
relativeY = segment[segment.length - 1];
|
||||
} else {
|
||||
console.log(errorMessage);
|
||||
}
|
||||
}
|
||||
|
||||
i = segment.length;
|
||||
|
||||
if (i < 6) {
|
||||
path.pop();
|
||||
i = 0;
|
||||
} else if (segment[0] === segment[i - 2] && segment[1] === segment[i - 1]) {
|
||||
segment.closed = true;
|
||||
}
|
||||
|
||||
path.totalPoints = points + i;
|
||||
return path;
|
||||
}
|
||||
function rawPathToString(rawPath) {
|
||||
if (_isNumber(rawPath[0])) {
|
||||
rawPath = [rawPath];
|
||||
}
|
||||
|
||||
var result = "",
|
||||
l = rawPath.length,
|
||||
sl,
|
||||
s,
|
||||
i,
|
||||
segment;
|
||||
|
||||
for (s = 0; s < l; s++) {
|
||||
segment = rawPath[s];
|
||||
result += "M" + _round(segment[0]) + "," + _round(segment[1]) + " C";
|
||||
sl = segment.length;
|
||||
|
||||
for (i = 2; i < sl; i++) {
|
||||
result += _round(segment[i++]) + "," + _round(segment[i++]) + " " + _round(segment[i++]) + "," + _round(segment[i++]) + " " + _round(segment[i++]) + "," + _round(segment[i]) + " ";
|
||||
}
|
||||
|
||||
if (segment.closed) {
|
||||
result += "z";
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/*!
|
||||
* CustomEase 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2008-2025, GreenSock. All rights reserved.
|
||||
* Subject to the terms at https://gsap.com/standard-license
|
||||
* @author: Jack Doyle, jack@greensock.com
|
||||
*/
|
||||
|
||||
var gsap,
|
||||
_coreInitted,
|
||||
_getGSAP = function _getGSAP() {
|
||||
return gsap || typeof window !== "undefined" && (gsap = window.gsap) && gsap.registerPlugin && gsap;
|
||||
},
|
||||
_initCore = function _initCore() {
|
||||
gsap = _getGSAP();
|
||||
|
||||
if (gsap) {
|
||||
gsap.registerEase("_CE", CustomEase.create);
|
||||
_coreInitted = 1;
|
||||
} else {
|
||||
console.warn("Please gsap.registerPlugin(CustomEase)");
|
||||
}
|
||||
},
|
||||
_bigNum = 1e20,
|
||||
_round$1 = function _round(value) {
|
||||
return ~~(value * 1000 + (value < 0 ? -.5 : .5)) / 1000;
|
||||
},
|
||||
_numExp = /[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/gi,
|
||||
_needsParsingExp = /[cLlsSaAhHvVtTqQ]/g,
|
||||
_findMinimum = function _findMinimum(values) {
|
||||
var l = values.length,
|
||||
min = _bigNum,
|
||||
i;
|
||||
|
||||
for (i = 1; i < l; i += 6) {
|
||||
+values[i] < min && (min = +values[i]);
|
||||
}
|
||||
|
||||
return min;
|
||||
},
|
||||
_normalize = function _normalize(values, height, originY) {
|
||||
if (!originY && originY !== 0) {
|
||||
originY = Math.max(+values[values.length - 1], +values[1]);
|
||||
}
|
||||
|
||||
var tx = +values[0] * -1,
|
||||
ty = -originY,
|
||||
l = values.length,
|
||||
sx = 1 / (+values[l - 2] + tx),
|
||||
sy = -height || (Math.abs(+values[l - 1] - +values[1]) < 0.01 * (+values[l - 2] - +values[0]) ? _findMinimum(values) + ty : +values[l - 1] + ty),
|
||||
i;
|
||||
|
||||
if (sy) {
|
||||
sy = 1 / sy;
|
||||
} else {
|
||||
sy = -sx;
|
||||
}
|
||||
|
||||
for (i = 0; i < l; i += 2) {
|
||||
values[i] = (+values[i] + tx) * sx;
|
||||
values[i + 1] = (+values[i + 1] + ty) * sy;
|
||||
}
|
||||
},
|
||||
_bezierToPoints = function _bezierToPoints(x1, y1, x2, y2, x3, y3, x4, y4, threshold, points, index) {
|
||||
var x12 = (x1 + x2) / 2,
|
||||
y12 = (y1 + y2) / 2,
|
||||
x23 = (x2 + x3) / 2,
|
||||
y23 = (y2 + y3) / 2,
|
||||
x34 = (x3 + x4) / 2,
|
||||
y34 = (y3 + y4) / 2,
|
||||
x123 = (x12 + x23) / 2,
|
||||
y123 = (y12 + y23) / 2,
|
||||
x234 = (x23 + x34) / 2,
|
||||
y234 = (y23 + y34) / 2,
|
||||
x1234 = (x123 + x234) / 2,
|
||||
y1234 = (y123 + y234) / 2,
|
||||
dx = x4 - x1,
|
||||
dy = y4 - y1,
|
||||
d2 = Math.abs((x2 - x4) * dy - (y2 - y4) * dx),
|
||||
d3 = Math.abs((x3 - x4) * dy - (y3 - y4) * dx),
|
||||
length;
|
||||
|
||||
if (!points) {
|
||||
points = [{
|
||||
x: x1,
|
||||
y: y1
|
||||
}, {
|
||||
x: x4,
|
||||
y: y4
|
||||
}];
|
||||
index = 1;
|
||||
}
|
||||
|
||||
points.splice(index || points.length - 1, 0, {
|
||||
x: x1234,
|
||||
y: y1234
|
||||
});
|
||||
|
||||
if ((d2 + d3) * (d2 + d3) > threshold * (dx * dx + dy * dy)) {
|
||||
length = points.length;
|
||||
|
||||
_bezierToPoints(x1, y1, x12, y12, x123, y123, x1234, y1234, threshold, points, index);
|
||||
|
||||
_bezierToPoints(x1234, y1234, x234, y234, x34, y34, x4, y4, threshold, points, index + 1 + (points.length - length));
|
||||
}
|
||||
|
||||
return points;
|
||||
};
|
||||
|
||||
var CustomEase = function () {
|
||||
function CustomEase(id, data, config) {
|
||||
_coreInitted || _initCore();
|
||||
this.id = id;
|
||||
this.setData(data, config);
|
||||
}
|
||||
|
||||
var _proto = CustomEase.prototype;
|
||||
|
||||
_proto.setData = function setData(data, config) {
|
||||
config = config || {};
|
||||
data = data || "0,0,1,1";
|
||||
var values = data.match(_numExp),
|
||||
closest = 1,
|
||||
points = [],
|
||||
lookup = [],
|
||||
precision = config.precision || 1,
|
||||
fast = precision <= 1,
|
||||
l,
|
||||
a1,
|
||||
a2,
|
||||
i,
|
||||
inc,
|
||||
j,
|
||||
point,
|
||||
prevPoint,
|
||||
p;
|
||||
this.data = data;
|
||||
|
||||
if (_needsParsingExp.test(data) || ~data.indexOf("M") && data.indexOf("C") < 0) {
|
||||
values = stringToRawPath(data)[0];
|
||||
}
|
||||
|
||||
l = values.length;
|
||||
|
||||
if (l === 4) {
|
||||
values.unshift(0, 0);
|
||||
values.push(1, 1);
|
||||
l = 8;
|
||||
} else if ((l - 2) % 6) {
|
||||
throw "Invalid CustomEase";
|
||||
}
|
||||
|
||||
if (+values[0] !== 0 || +values[l - 2] !== 1) {
|
||||
_normalize(values, config.height, config.originY);
|
||||
}
|
||||
|
||||
this.segment = values;
|
||||
|
||||
for (i = 2; i < l; i += 6) {
|
||||
a1 = {
|
||||
x: +values[i - 2],
|
||||
y: +values[i - 1]
|
||||
};
|
||||
a2 = {
|
||||
x: +values[i + 4],
|
||||
y: +values[i + 5]
|
||||
};
|
||||
points.push(a1, a2);
|
||||
|
||||
_bezierToPoints(a1.x, a1.y, +values[i], +values[i + 1], +values[i + 2], +values[i + 3], a2.x, a2.y, 1 / (precision * 200000), points, points.length - 1);
|
||||
}
|
||||
|
||||
l = points.length;
|
||||
|
||||
for (i = 0; i < l; i++) {
|
||||
point = points[i];
|
||||
prevPoint = points[i - 1] || point;
|
||||
|
||||
if ((point.x > prevPoint.x || prevPoint.y !== point.y && prevPoint.x === point.x || point === prevPoint) && point.x <= 1) {
|
||||
prevPoint.cx = point.x - prevPoint.x;
|
||||
prevPoint.cy = point.y - prevPoint.y;
|
||||
prevPoint.n = point;
|
||||
prevPoint.nx = point.x;
|
||||
|
||||
if (fast && i > 1 && Math.abs(prevPoint.cy / prevPoint.cx - points[i - 2].cy / points[i - 2].cx) > 2) {
|
||||
fast = 0;
|
||||
}
|
||||
|
||||
if (prevPoint.cx < closest) {
|
||||
if (!prevPoint.cx) {
|
||||
prevPoint.cx = 0.001;
|
||||
|
||||
if (i === l - 1) {
|
||||
prevPoint.x -= 0.001;
|
||||
closest = Math.min(closest, 0.001);
|
||||
fast = 0;
|
||||
}
|
||||
} else {
|
||||
closest = prevPoint.cx;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
points.splice(i--, 1);
|
||||
l--;
|
||||
}
|
||||
}
|
||||
|
||||
l = 1 / closest + 1 | 0;
|
||||
inc = 1 / l;
|
||||
j = 0;
|
||||
point = points[0];
|
||||
|
||||
if (fast) {
|
||||
for (i = 0; i < l; i++) {
|
||||
p = i * inc;
|
||||
|
||||
if (point.nx < p) {
|
||||
point = points[++j];
|
||||
}
|
||||
|
||||
a1 = point.y + (p - point.x) / point.cx * point.cy;
|
||||
lookup[i] = {
|
||||
x: p,
|
||||
cx: inc,
|
||||
y: a1,
|
||||
cy: 0,
|
||||
nx: 9
|
||||
};
|
||||
|
||||
if (i) {
|
||||
lookup[i - 1].cy = a1 - lookup[i - 1].y;
|
||||
}
|
||||
}
|
||||
|
||||
j = points[points.length - 1];
|
||||
lookup[l - 1].cy = j.y - a1;
|
||||
lookup[l - 1].cx = j.x - lookup[lookup.length - 1].x;
|
||||
} else {
|
||||
for (i = 0; i < l; i++) {
|
||||
if (point.nx < i * inc) {
|
||||
point = points[++j];
|
||||
}
|
||||
|
||||
lookup[i] = point;
|
||||
}
|
||||
|
||||
if (j < points.length - 1) {
|
||||
lookup[i - 1] = points[points.length - 2];
|
||||
}
|
||||
}
|
||||
|
||||
this.ease = function (p) {
|
||||
var point = lookup[p * l | 0] || lookup[l - 1];
|
||||
|
||||
if (point.nx < p) {
|
||||
point = point.n;
|
||||
}
|
||||
|
||||
return point.y + (p - point.x) / point.cx * point.cy;
|
||||
};
|
||||
|
||||
this.ease.custom = this;
|
||||
this.id && gsap && gsap.registerEase(this.id, this.ease);
|
||||
return this;
|
||||
};
|
||||
|
||||
_proto.getSVGData = function getSVGData(config) {
|
||||
return CustomEase.getSVGData(this, config);
|
||||
};
|
||||
|
||||
CustomEase.create = function create(id, data, config) {
|
||||
return new CustomEase(id, data, config).ease;
|
||||
};
|
||||
|
||||
CustomEase.register = function register(core) {
|
||||
gsap = core;
|
||||
|
||||
_initCore();
|
||||
};
|
||||
|
||||
CustomEase.get = function get(id) {
|
||||
return gsap.parseEase(id);
|
||||
};
|
||||
|
||||
CustomEase.getSVGData = function getSVGData(ease, config) {
|
||||
config = config || {};
|
||||
var width = config.width || 100,
|
||||
height = config.height || 100,
|
||||
x = config.x || 0,
|
||||
y = (config.y || 0) + height,
|
||||
e = gsap.utils.toArray(config.path)[0],
|
||||
a,
|
||||
slope,
|
||||
i,
|
||||
inc,
|
||||
tx,
|
||||
ty,
|
||||
precision,
|
||||
threshold,
|
||||
prevX,
|
||||
prevY;
|
||||
|
||||
if (config.invert) {
|
||||
height = -height;
|
||||
y = 0;
|
||||
}
|
||||
|
||||
if (typeof ease === "string") {
|
||||
ease = gsap.parseEase(ease);
|
||||
}
|
||||
|
||||
if (ease.custom) {
|
||||
ease = ease.custom;
|
||||
}
|
||||
|
||||
if (ease instanceof CustomEase) {
|
||||
a = rawPathToString(transformRawPath([ease.segment], width, 0, 0, -height, x, y));
|
||||
} else {
|
||||
a = [x, y];
|
||||
precision = Math.max(5, (config.precision || 1) * 200);
|
||||
inc = 1 / precision;
|
||||
precision += 2;
|
||||
threshold = 5 / precision;
|
||||
prevX = _round$1(x + inc * width);
|
||||
prevY = _round$1(y + ease(inc) * -height);
|
||||
slope = (prevY - y) / (prevX - x);
|
||||
|
||||
for (i = 2; i < precision; i++) {
|
||||
tx = _round$1(x + i * inc * width);
|
||||
ty = _round$1(y + ease(i * inc) * -height);
|
||||
|
||||
if (Math.abs((ty - prevY) / (tx - prevX) - slope) > threshold || i === precision - 1) {
|
||||
a.push(prevX, prevY);
|
||||
slope = (ty - prevY) / (tx - prevX);
|
||||
}
|
||||
|
||||
prevX = tx;
|
||||
prevY = ty;
|
||||
}
|
||||
|
||||
a = "M" + a.join(",");
|
||||
}
|
||||
|
||||
e && e.setAttribute("d", a);
|
||||
return a;
|
||||
};
|
||||
|
||||
return CustomEase;
|
||||
}();
|
||||
CustomEase.version = "3.13.0";
|
||||
CustomEase.headless = true;
|
||||
_getGSAP() && gsap.registerPlugin(CustomEase);
|
||||
|
||||
exports.CustomEase = CustomEase;
|
||||
exports.default = CustomEase;
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
})));
|
11
network-visualization/node_modules/gsap/dist/CustomEase.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/CustomEase.min.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1
network-visualization/node_modules/gsap/dist/CustomEase.min.js.map
generated
vendored
Normal file
1
network-visualization/node_modules/gsap/dist/CustomEase.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
167
network-visualization/node_modules/gsap/dist/CustomWiggle.js
generated
vendored
Normal file
167
network-visualization/node_modules/gsap/dist/CustomWiggle.js
generated
vendored
Normal file
@@ -0,0 +1,167 @@
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(global = global || self, factory(global.window = global.window || {}));
|
||||
}(this, (function (exports) { 'use strict';
|
||||
|
||||
/*!
|
||||
* CustomWiggle 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2008-2025, GreenSock. All rights reserved.
|
||||
* Subject to the terms at https://gsap.com/standard-license
|
||||
* @author: Jack Doyle, jack@greensock.com
|
||||
*/
|
||||
var gsap,
|
||||
_coreInitted,
|
||||
createCustomEase,
|
||||
_getGSAP = function _getGSAP() {
|
||||
return gsap || typeof window !== "undefined" && (gsap = window.gsap) && gsap.registerPlugin && gsap;
|
||||
},
|
||||
_eases = {
|
||||
easeOut: "M0,1,C0.7,1,0.6,0,1,0",
|
||||
easeInOut: "M0,0,C0.1,0,0.24,1,0.444,1,0.644,1,0.6,0,1,0",
|
||||
anticipate: "M0,0,C0,0.222,0.024,0.386,0,0.4,0.18,0.455,0.65,0.646,0.7,0.67,0.9,0.76,1,0.846,1,1",
|
||||
uniform: "M0,0,C0,0.95,0,1,0,1,0,1,1,1,1,1,1,1,1,0,1,0"
|
||||
},
|
||||
_linearEase = function _linearEase(p) {
|
||||
return p;
|
||||
},
|
||||
_initCore = function _initCore(required) {
|
||||
if (!_coreInitted) {
|
||||
gsap = _getGSAP();
|
||||
createCustomEase = gsap && gsap.parseEase("_CE");
|
||||
|
||||
if (createCustomEase) {
|
||||
for (var p in _eases) {
|
||||
_eases[p] = createCustomEase("", _eases[p]);
|
||||
}
|
||||
|
||||
_coreInitted = 1;
|
||||
|
||||
_create("wiggle").config = function (vars) {
|
||||
return typeof vars === "object" ? _create("", vars) : _create("wiggle(" + vars + ")", {
|
||||
wiggles: +vars
|
||||
});
|
||||
};
|
||||
} else {
|
||||
required && console.warn("Please gsap.registerPlugin(CustomEase, CustomWiggle)");
|
||||
}
|
||||
}
|
||||
},
|
||||
_parseEase = function _parseEase(ease, invertNonCustomEases) {
|
||||
if (typeof ease !== "function") {
|
||||
ease = gsap.parseEase(ease) || createCustomEase("", ease);
|
||||
}
|
||||
|
||||
return ease.custom || !invertNonCustomEases ? ease : function (p) {
|
||||
return 1 - ease(p);
|
||||
};
|
||||
},
|
||||
_create = function _create(id, vars) {
|
||||
if (!_coreInitted) {
|
||||
_initCore(1);
|
||||
}
|
||||
|
||||
vars = vars || {};
|
||||
var wiggles = (vars.wiggles || 10) | 0,
|
||||
inc = 1 / wiggles,
|
||||
x = inc / 2,
|
||||
anticipate = vars.type === "anticipate",
|
||||
yEase = _eases[vars.type] || _eases.easeOut,
|
||||
xEase = _linearEase,
|
||||
rnd = 1000,
|
||||
nextX,
|
||||
nextY,
|
||||
angle,
|
||||
handleX,
|
||||
handleY,
|
||||
easedX,
|
||||
y,
|
||||
path,
|
||||
i;
|
||||
|
||||
{
|
||||
if (anticipate) {
|
||||
xEase = yEase;
|
||||
yEase = _eases.easeOut;
|
||||
}
|
||||
|
||||
if (vars.timingEase) {
|
||||
xEase = _parseEase(vars.timingEase);
|
||||
}
|
||||
|
||||
if (vars.amplitudeEase) {
|
||||
yEase = _parseEase(vars.amplitudeEase, true);
|
||||
}
|
||||
|
||||
easedX = xEase(x);
|
||||
y = anticipate ? -yEase(x) : yEase(x);
|
||||
path = [0, 0, easedX / 4, 0, easedX / 2, y, easedX, y];
|
||||
|
||||
if (vars.type === "random") {
|
||||
path.length = 4;
|
||||
nextX = xEase(inc);
|
||||
nextY = Math.random() * 2 - 1;
|
||||
|
||||
for (i = 2; i < wiggles; i++) {
|
||||
x = nextX;
|
||||
y = nextY;
|
||||
nextX = xEase(inc * i);
|
||||
nextY = Math.random() * 2 - 1;
|
||||
angle = Math.atan2(nextY - path[path.length - 3], nextX - path[path.length - 4]);
|
||||
handleX = Math.cos(angle) * inc;
|
||||
handleY = Math.sin(angle) * inc;
|
||||
path.push(x - handleX, y - handleY, x, y, x + handleX, y + handleY);
|
||||
}
|
||||
|
||||
path.push(nextX, 0, 1, 0);
|
||||
} else {
|
||||
for (i = 1; i < wiggles; i++) {
|
||||
path.push(xEase(x + inc / 2), y);
|
||||
x += inc;
|
||||
y = (y > 0 ? -1 : 1) * yEase(i * inc);
|
||||
easedX = xEase(x);
|
||||
path.push(xEase(x - inc / 2), y, easedX, y);
|
||||
}
|
||||
|
||||
path.push(xEase(x + inc / 4), y, xEase(x + inc / 4), 0, 1, 0);
|
||||
}
|
||||
|
||||
i = path.length;
|
||||
|
||||
while (--i > -1) {
|
||||
path[i] = ~~(path[i] * rnd) / rnd;
|
||||
}
|
||||
|
||||
path[2] = "C" + path[2];
|
||||
return createCustomEase(id, "M" + path.join(","));
|
||||
}
|
||||
};
|
||||
|
||||
var CustomWiggle = function () {
|
||||
function CustomWiggle(id, vars) {
|
||||
this.ease = _create(id, vars);
|
||||
}
|
||||
|
||||
CustomWiggle.create = function create(id, vars) {
|
||||
return _create(id, vars);
|
||||
};
|
||||
|
||||
CustomWiggle.register = function register(core) {
|
||||
gsap = core;
|
||||
|
||||
_initCore();
|
||||
};
|
||||
|
||||
return CustomWiggle;
|
||||
}();
|
||||
_getGSAP() && gsap.registerPlugin(CustomWiggle);
|
||||
CustomWiggle.version = "3.13.0";
|
||||
|
||||
exports.CustomWiggle = CustomWiggle;
|
||||
exports.default = CustomWiggle;
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
})));
|
11
network-visualization/node_modules/gsap/dist/CustomWiggle.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/CustomWiggle.min.js
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
/*!
|
||||
* CustomWiggle 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2025, GreenSock. All rights reserved.
|
||||
* Subject to the terms at https://gsap.com/standard-license.
|
||||
* @author: Jack Doyle, jack@greensock.com
|
||||
*/
|
||||
|
||||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).window=e.window||{})}(this,function(e){"use strict";function g(){return n||"undefined"!=typeof window&&(n=window.gsap)&&n.registerPlugin&&n}function i(e){return e}function j(e){if(!C)if(n=g(),M=n&&n.parseEase("_CE")){for(var t in y)y[t]=M("",y[t]);C=1,o("wiggle").config=function(e){return"object"==typeof e?o("",e):o("wiggle("+e+")",{wiggles:+e})}}else e&&console.warn("Please gsap.registerPlugin(CustomEase, CustomWiggle)")}function k(t,e){return"function"!=typeof t&&(t=n.parseEase(t)||M("",t)),t.custom||!e?t:function(e){return 1-t(e)}}var n,C,M,y={easeOut:"M0,1,C0.7,1,0.6,0,1,0",easeInOut:"M0,0,C0.1,0,0.24,1,0.444,1,0.644,1,0.6,0,1,0",anticipate:"M0,0,C0,0.222,0.024,0.386,0,0.4,0.18,0.455,0.65,0.646,0.7,0.67,0.9,0.76,1,0.846,1,1",uniform:"M0,0,C0,0.95,0,1,0,1,0,1,1,1,1,1,1,1,1,0,1,0"},o=function _create(e,t){C||j(1);var n,o,s,u,r,a,g,f,l,c=0|((t=t||{}).wiggles||10),p=1/c,d=p/2,m="anticipate"===t.type,h=y[t.type]||y.easeOut,w=i;if(m&&(w=h,h=y.easeOut),t.timingEase&&(w=k(t.timingEase)),t.amplitudeEase&&(h=k(t.amplitudeEase,!0)),f=[0,0,(a=w(d))/4,0,a/2,g=m?-h(d):h(d),a,g],"random"===t.type){for(f.length=4,n=w(p),o=2*Math.random()-1,l=2;l<c;l++)d=n,g=o,n=w(p*l),o=2*Math.random()-1,s=Math.atan2(o-f[f.length-3],n-f[f.length-4]),u=Math.cos(s)*p,r=Math.sin(s)*p,f.push(d-u,g-r,d,g,d+u,g+r);f.push(n,0,1,0)}else{for(l=1;l<c;l++)f.push(w(d+p/2),g),d+=p,g=(0<g?-1:1)*h(l*p),a=w(d),f.push(w(d-p/2),g,a,g);f.push(w(d+p/4),g,w(d+p/4),0,1,0)}for(l=f.length;-1<--l;)f[l]=~~(1e3*f[l])/1e3;return f[2]="C"+f[2],M(e,"M"+f.join(","))},t=(CustomWiggle.create=function create(e,t){return o(e,t)},CustomWiggle.register=function register(e){n=e,j()},CustomWiggle);function CustomWiggle(e,t){this.ease=o(e,t)}g()&&n.registerPlugin(t),t.version="3.13.0",e.CustomWiggle=t,e.default=t;if (typeof(window)==="undefined"||window!==e){Object.defineProperty(e,"__esModule",{value:!0})} else {delete e.default}});
|
||||
|
1
network-visualization/node_modules/gsap/dist/CustomWiggle.min.js.map
generated
vendored
Normal file
1
network-visualization/node_modules/gsap/dist/CustomWiggle.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
2967
network-visualization/node_modules/gsap/dist/Draggable.js
generated
vendored
Normal file
2967
network-visualization/node_modules/gsap/dist/Draggable.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
11
network-visualization/node_modules/gsap/dist/Draggable.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/Draggable.min.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1
network-visualization/node_modules/gsap/dist/Draggable.min.js.map
generated
vendored
Normal file
1
network-visualization/node_modules/gsap/dist/Draggable.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
310
network-visualization/node_modules/gsap/dist/DrawSVGPlugin.js
generated
vendored
Normal file
310
network-visualization/node_modules/gsap/dist/DrawSVGPlugin.js
generated
vendored
Normal file
@@ -0,0 +1,310 @@
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(global = global || self, factory(global.window = global.window || {}));
|
||||
}(this, (function (exports) { 'use strict';
|
||||
|
||||
/*!
|
||||
* DrawSVGPlugin 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2008-2025, GreenSock. All rights reserved.
|
||||
* Subject to the terms at https://gsap.com/standard-license
|
||||
* @author: Jack Doyle, jack@greensock.com
|
||||
*/
|
||||
var gsap,
|
||||
_toArray,
|
||||
_win,
|
||||
_isEdge,
|
||||
_coreInitted,
|
||||
_warned,
|
||||
_getStyleSaver,
|
||||
_reverting,
|
||||
_windowExists = function _windowExists() {
|
||||
return typeof window !== "undefined";
|
||||
},
|
||||
_getGSAP = function _getGSAP() {
|
||||
return gsap || _windowExists() && (gsap = window.gsap) && gsap.registerPlugin && gsap;
|
||||
},
|
||||
_numExp = /[-+=\.]*\d+[\.e\-\+]*\d*[e\-\+]*\d*/gi,
|
||||
_types = {
|
||||
rect: ["width", "height"],
|
||||
circle: ["r", "r"],
|
||||
ellipse: ["rx", "ry"],
|
||||
line: ["x2", "y2"]
|
||||
},
|
||||
_round = function _round(value) {
|
||||
return Math.round(value * 10000) / 10000;
|
||||
},
|
||||
_parseNum = function _parseNum(value) {
|
||||
return parseFloat(value) || 0;
|
||||
},
|
||||
_parseSingleVal = function _parseSingleVal(value, length) {
|
||||
var num = _parseNum(value);
|
||||
|
||||
return ~value.indexOf("%") ? num / 100 * length : num;
|
||||
},
|
||||
_getAttributeAsNumber = function _getAttributeAsNumber(target, attr) {
|
||||
return _parseNum(target.getAttribute(attr));
|
||||
},
|
||||
_sqrt = Math.sqrt,
|
||||
_getDistance = function _getDistance(x1, y1, x2, y2, scaleX, scaleY) {
|
||||
return _sqrt(Math.pow((_parseNum(x2) - _parseNum(x1)) * scaleX, 2) + Math.pow((_parseNum(y2) - _parseNum(y1)) * scaleY, 2));
|
||||
},
|
||||
_warn = function _warn(message) {
|
||||
return console.warn(message);
|
||||
},
|
||||
_hasNonScalingStroke = function _hasNonScalingStroke(target) {
|
||||
return target.getAttribute("vector-effect") === "non-scaling-stroke";
|
||||
},
|
||||
_bonusValidated = 1,
|
||||
_parse = function _parse(value, length, defaultStart) {
|
||||
var i = value.indexOf(" "),
|
||||
s,
|
||||
e;
|
||||
|
||||
if (i < 0) {
|
||||
s = defaultStart !== undefined ? defaultStart + "" : value;
|
||||
e = value;
|
||||
} else {
|
||||
s = value.substr(0, i);
|
||||
e = value.substr(i + 1);
|
||||
}
|
||||
|
||||
s = _parseSingleVal(s, length);
|
||||
e = _parseSingleVal(e, length);
|
||||
return s > e ? [e, s] : [s, e];
|
||||
},
|
||||
_getLength = function _getLength(target) {
|
||||
target = _toArray(target)[0];
|
||||
|
||||
if (!target) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
var type = target.tagName.toLowerCase(),
|
||||
style = target.style,
|
||||
scaleX = 1,
|
||||
scaleY = 1,
|
||||
length,
|
||||
bbox,
|
||||
points,
|
||||
prevPoint,
|
||||
i,
|
||||
rx,
|
||||
ry;
|
||||
|
||||
if (_hasNonScalingStroke(target)) {
|
||||
scaleY = target.getScreenCTM();
|
||||
scaleX = _sqrt(scaleY.a * scaleY.a + scaleY.b * scaleY.b);
|
||||
scaleY = _sqrt(scaleY.d * scaleY.d + scaleY.c * scaleY.c);
|
||||
}
|
||||
|
||||
try {
|
||||
bbox = target.getBBox();
|
||||
} catch (e) {
|
||||
_warn("Some browsers won't measure invisible elements (like display:none or masks inside defs).");
|
||||
}
|
||||
|
||||
var _ref = bbox || {
|
||||
x: 0,
|
||||
y: 0,
|
||||
width: 0,
|
||||
height: 0
|
||||
},
|
||||
x = _ref.x,
|
||||
y = _ref.y,
|
||||
width = _ref.width,
|
||||
height = _ref.height;
|
||||
|
||||
if ((!bbox || !width && !height) && _types[type]) {
|
||||
width = _getAttributeAsNumber(target, _types[type][0]);
|
||||
height = _getAttributeAsNumber(target, _types[type][1]);
|
||||
|
||||
if (type !== "rect" && type !== "line") {
|
||||
width *= 2;
|
||||
height *= 2;
|
||||
}
|
||||
|
||||
if (type === "line") {
|
||||
x = _getAttributeAsNumber(target, "x1");
|
||||
y = _getAttributeAsNumber(target, "y1");
|
||||
width = Math.abs(width - x);
|
||||
height = Math.abs(height - y);
|
||||
}
|
||||
}
|
||||
|
||||
if (type === "path") {
|
||||
prevPoint = style.strokeDasharray;
|
||||
style.strokeDasharray = "none";
|
||||
length = target.getTotalLength() || 0;
|
||||
_round(scaleX) !== _round(scaleY) && !_warned && (_warned = 1) && _warn("Warning: <path> length cannot be measured when vector-effect is non-scaling-stroke and the element isn't proportionally scaled.");
|
||||
length *= (scaleX + scaleY) / 2;
|
||||
style.strokeDasharray = prevPoint;
|
||||
} else if (type === "rect") {
|
||||
length = width * 2 * scaleX + height * 2 * scaleY;
|
||||
} else if (type === "line") {
|
||||
length = _getDistance(x, y, x + width, y + height, scaleX, scaleY);
|
||||
} else if (type === "polyline" || type === "polygon") {
|
||||
points = target.getAttribute("points").match(_numExp) || [];
|
||||
type === "polygon" && points.push(points[0], points[1]);
|
||||
length = 0;
|
||||
|
||||
for (i = 2; i < points.length; i += 2) {
|
||||
length += _getDistance(points[i - 2], points[i - 1], points[i], points[i + 1], scaleX, scaleY) || 0;
|
||||
}
|
||||
} else if (type === "circle" || type === "ellipse") {
|
||||
rx = width / 2 * scaleX;
|
||||
ry = height / 2 * scaleY;
|
||||
length = Math.PI * (3 * (rx + ry) - _sqrt((3 * rx + ry) * (rx + 3 * ry)));
|
||||
}
|
||||
|
||||
return length || 0;
|
||||
},
|
||||
_getPosition = function _getPosition(target, length) {
|
||||
target = _toArray(target)[0];
|
||||
|
||||
if (!target) {
|
||||
return [0, 0];
|
||||
}
|
||||
|
||||
length || (length = _getLength(target) + 1);
|
||||
|
||||
var cs = _win.getComputedStyle(target),
|
||||
dash = cs.strokeDasharray || "",
|
||||
offset = _parseNum(cs.strokeDashoffset),
|
||||
i = dash.indexOf(",");
|
||||
|
||||
i < 0 && (i = dash.indexOf(" "));
|
||||
dash = i < 0 ? length : _parseNum(dash.substr(0, i));
|
||||
dash > length && (dash = length);
|
||||
return [-offset || 0, dash - offset || 0];
|
||||
},
|
||||
_initCore = function _initCore() {
|
||||
if (_windowExists()) {
|
||||
_win = window;
|
||||
_coreInitted = gsap = _getGSAP();
|
||||
_toArray = gsap.utils.toArray;
|
||||
_getStyleSaver = gsap.core.getStyleSaver;
|
||||
|
||||
_reverting = gsap.core.reverting || function () {};
|
||||
|
||||
_isEdge = ((_win.navigator || {}).userAgent || "").indexOf("Edge") !== -1;
|
||||
}
|
||||
};
|
||||
|
||||
var DrawSVGPlugin = {
|
||||
version: "3.13.0",
|
||||
name: "drawSVG",
|
||||
register: function register(core) {
|
||||
gsap = core;
|
||||
|
||||
_initCore();
|
||||
},
|
||||
init: function init(target, value, tween, index, targets) {
|
||||
if (!target.getBBox) {
|
||||
return false;
|
||||
}
|
||||
|
||||
_coreInitted || _initCore();
|
||||
|
||||
var length = _getLength(target),
|
||||
start,
|
||||
end,
|
||||
cs;
|
||||
|
||||
this.styles = _getStyleSaver && _getStyleSaver(target, "strokeDashoffset,strokeDasharray,strokeMiterlimit");
|
||||
this.tween = tween;
|
||||
this._style = target.style;
|
||||
this._target = target;
|
||||
|
||||
if (value + "" === "true") {
|
||||
value = "0 100%";
|
||||
} else if (!value) {
|
||||
value = "0 0";
|
||||
} else if ((value + "").indexOf(" ") === -1) {
|
||||
value = "0 " + value;
|
||||
}
|
||||
|
||||
start = _getPosition(target, length);
|
||||
end = _parse(value, length, start[0]);
|
||||
this._length = _round(length);
|
||||
this._dash = _round(start[1] - start[0]);
|
||||
this._offset = _round(-start[0]);
|
||||
this._dashPT = this.add(this, "_dash", this._dash, _round(end[1] - end[0]), 0, 0, 0, 0, 0, 1);
|
||||
this._offsetPT = this.add(this, "_offset", this._offset, _round(-end[0]), 0, 0, 0, 0, 0, 1);
|
||||
|
||||
if (_isEdge) {
|
||||
cs = _win.getComputedStyle(target);
|
||||
|
||||
if (cs.strokeLinecap !== cs.strokeLinejoin) {
|
||||
end = _parseNum(cs.strokeMiterlimit);
|
||||
this.add(target.style, "strokeMiterlimit", end, end + 0.01);
|
||||
}
|
||||
}
|
||||
|
||||
this._live = _hasNonScalingStroke(target) || ~(value + "").indexOf("live");
|
||||
this._nowrap = ~(value + "").indexOf("nowrap");
|
||||
|
||||
this._props.push("drawSVG");
|
||||
|
||||
return _bonusValidated;
|
||||
},
|
||||
render: function render(ratio, data) {
|
||||
if (data.tween._time || !_reverting()) {
|
||||
var pt = data._pt,
|
||||
style = data._style,
|
||||
length,
|
||||
lengthRatio,
|
||||
dash,
|
||||
offset;
|
||||
|
||||
if (pt) {
|
||||
if (data._live) {
|
||||
length = _getLength(data._target);
|
||||
|
||||
if (length !== data._length) {
|
||||
lengthRatio = length / data._length;
|
||||
data._length = length;
|
||||
|
||||
if (data._offsetPT) {
|
||||
data._offsetPT.s *= lengthRatio;
|
||||
data._offsetPT.c *= lengthRatio;
|
||||
}
|
||||
|
||||
if (data._dashPT) {
|
||||
data._dashPT.s *= lengthRatio;
|
||||
data._dashPT.c *= lengthRatio;
|
||||
} else {
|
||||
data._dash *= lengthRatio;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
while (pt) {
|
||||
pt.r(ratio, pt.d);
|
||||
pt = pt._next;
|
||||
}
|
||||
|
||||
dash = data._dash || ratio && ratio !== 1 && 0.0001 || 0;
|
||||
length = data._length - dash + 0.1;
|
||||
offset = data._offset;
|
||||
dash && offset && dash + Math.abs(offset % data._length) > data._length - 0.05 && (offset += offset < 0 ? 0.005 : -0.005) && (length += 0.005);
|
||||
style.strokeDashoffset = dash ? offset : offset + 0.001;
|
||||
style.strokeDasharray = length < 0.1 ? "none" : dash ? dash + "px," + (data._nowrap ? 999999 : length) + "px" : "0px, 999999px";
|
||||
}
|
||||
} else {
|
||||
data.styles.revert();
|
||||
}
|
||||
},
|
||||
getLength: _getLength,
|
||||
getPosition: _getPosition
|
||||
};
|
||||
_getGSAP() && gsap.registerPlugin(DrawSVGPlugin);
|
||||
|
||||
exports.DrawSVGPlugin = DrawSVGPlugin;
|
||||
exports.default = DrawSVGPlugin;
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
})));
|
11
network-visualization/node_modules/gsap/dist/DrawSVGPlugin.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/DrawSVGPlugin.min.js
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
/*!
|
||||
* DrawSVGPlugin 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2025, GreenSock. All rights reserved.
|
||||
* Subject to the terms at https://gsap.com/standard-license.
|
||||
* @author: Jack Doyle, jack@greensock.com
|
||||
*/
|
||||
|
||||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).window=e.window||{})}(this,function(e){"use strict";function l(){return"undefined"!=typeof window}function m(){return t||l()&&(t=window.gsap)&&t.registerPlugin&&t}function p(e){return Math.round(1e4*e)/1e4}function q(e){return parseFloat(e)||0}function r(e,t){var r=q(e);return~e.indexOf("%")?r/100*t:r}function s(e,t){return q(e.getAttribute(t))}function u(e,t,r,n,s,i){return D(Math.pow((q(r)-q(e))*s,2)+Math.pow((q(n)-q(t))*i,2))}function v(e){return console.warn(e)}function w(e){return"non-scaling-stroke"===e.getAttribute("vector-effect")}function z(e){if(!(e=k(e)[0]))return 0;var t,r,n,i,o,a,f,h=e.tagName.toLowerCase(),l=e.style,d=1,c=1;w(e)&&(c=e.getScreenCTM(),d=D(c.a*c.a+c.b*c.b),c=D(c.d*c.d+c.c*c.c));try{r=e.getBBox()}catch(e){v("Some browsers won't measure invisible elements (like display:none or masks inside defs).")}var g=r||{x:0,y:0,width:0,height:0},_=g.x,y=g.y,x=g.width,m=g.height;if(r&&(x||m)||!M[h]||(x=s(e,M[h][0]),m=s(e,M[h][1]),"rect"!==h&&"line"!==h&&(x*=2,m*=2),"line"===h&&(_=s(e,"x1"),y=s(e,"y1"),x=Math.abs(x-_),m=Math.abs(m-y))),"path"===h)i=l.strokeDasharray,l.strokeDasharray="none",t=e.getTotalLength()||0,p(d)!==p(c)&&!b&&(b=1)&&v("Warning: <path> length cannot be measured when vector-effect is non-scaling-stroke and the element isn't proportionally scaled."),t*=(d+c)/2,l.strokeDasharray=i;else if("rect"===h)t=2*x*d+2*m*c;else if("line"===h)t=u(_,y,_+x,y+m,d,c);else if("polyline"===h||"polygon"===h)for(n=e.getAttribute("points").match(P)||[],"polygon"===h&&n.push(n[0],n[1]),t=0,o=2;o<n.length;o+=2)t+=u(n[o-2],n[o-1],n[o],n[o+1],d,c)||0;else"circle"!==h&&"ellipse"!==h||(a=x/2*d,f=m/2*c,t=Math.PI*(3*(a+f)-D((3*a+f)*(a+3*f))));return t||0}function A(e,t){if(!(e=k(e)[0]))return[0,0];t=t||z(e)+1;var r=f.getComputedStyle(e),n=r.strokeDasharray||"",s=q(r.strokeDashoffset),i=n.indexOf(",");return i<0&&(i=n.indexOf(" ")),t<(n=i<0?t:q(n.substr(0,i)))&&(n=t),[-s||0,n-s||0]}function B(){l()&&(f=window,d=t=m(),k=t.utils.toArray,c=t.core.getStyleSaver,g=t.core.reverting||function(){},h=-1!==((f.navigator||{}).userAgent||"").indexOf("Edge"))}var t,k,f,h,d,b,c,g,P=/[-+=\.]*\d+[\.e\-\+]*\d*[e\-\+]*\d*/gi,M={rect:["width","height"],circle:["r","r"],ellipse:["rx","ry"],line:["x2","y2"]},D=Math.sqrt,n={version:"3.13.0",name:"drawSVG",register:function register(e){t=e,B()},init:function init(e,t,n){if(!e.getBBox)return!1;d||B();var s,i,o,a=z(e);return this.styles=c&&c(e,"strokeDashoffset,strokeDasharray,strokeMiterlimit"),this.tween=n,this._style=e.style,this._target=e,t+""=="true"?t="0 100%":t?-1===(t+"").indexOf(" ")&&(t="0 "+t):t="0 0",i=function _parse(e,t,n){var s,i,o=e.indexOf(" ");return i=o<0?(s=void 0!==n?n+"":e,e):(s=e.substr(0,o),e.substr(o+1)),s=r(s,t),(i=r(i,t))<s?[i,s]:[s,i]}(t,a,(s=A(e,a))[0]),this._length=p(a),this._dash=p(s[1]-s[0]),this._offset=p(-s[0]),this._dashPT=this.add(this,"_dash",this._dash,p(i[1]-i[0]),0,0,0,0,0,1),this._offsetPT=this.add(this,"_offset",this._offset,p(-i[0]),0,0,0,0,0,1),h&&(o=f.getComputedStyle(e)).strokeLinecap!==o.strokeLinejoin&&(i=q(o.strokeMiterlimit),this.add(e.style,"strokeMiterlimit",i,i+.01)),this._live=w(e)||~(t+"").indexOf("live"),this._nowrap=~(t+"").indexOf("nowrap"),this._props.push("drawSVG"),1},render:function render(e,t){if(t.tween._time||!g()){var r,n,s,i,o=t._pt,a=t._style;if(o){for(t._live&&(r=z(t._target))!==t._length&&(n=r/t._length,t._length=r,t._offsetPT&&(t._offsetPT.s*=n,t._offsetPT.c*=n),t._dashPT?(t._dashPT.s*=n,t._dashPT.c*=n):t._dash*=n);o;)o.r(e,o.d),o=o._next;s=t._dash||e&&1!==e&&1e-4||0,r=t._length-s+.1,i=t._offset,s&&i&&s+Math.abs(i%t._length)>t._length-.05&&(i+=i<0?.005:-.005)&&(r+=.005),a.strokeDashoffset=s?i:i+.001,a.strokeDasharray=r<.1?"none":s?s+"px,"+(t._nowrap?999999:r)+"px":"0px, 999999px"}}else t.styles.revert()},getLength:z,getPosition:A};m()&&t.registerPlugin(n),e.DrawSVGPlugin=n,e.default=n;if (typeof(window)==="undefined"||window!==e){Object.defineProperty(e,"__esModule",{value:!0})} else {delete e.default}});
|
||||
|
1
network-visualization/node_modules/gsap/dist/DrawSVGPlugin.min.js.map
generated
vendored
Normal file
1
network-visualization/node_modules/gsap/dist/DrawSVGPlugin.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
216
network-visualization/node_modules/gsap/dist/EasePack.js
generated
vendored
Normal file
216
network-visualization/node_modules/gsap/dist/EasePack.js
generated
vendored
Normal file
@@ -0,0 +1,216 @@
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(global = global || self, factory(global.window = global.window || {}));
|
||||
}(this, (function (exports) { 'use strict';
|
||||
|
||||
/*!
|
||||
* EasePack 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2008-2025, GreenSock. All rights reserved.
|
||||
* Subject to the terms at https://gsap.com/standard-license
|
||||
* @author: Jack Doyle, jack@greensock.com
|
||||
*/
|
||||
var gsap,
|
||||
_registerEase,
|
||||
_getGSAP = function _getGSAP() {
|
||||
return gsap || typeof window !== "undefined" && (gsap = window.gsap) && gsap.registerPlugin && gsap;
|
||||
},
|
||||
_boolean = function _boolean(value, defaultValue) {
|
||||
return !!(typeof value === "undefined" ? defaultValue : value && !~(value + "").indexOf("false"));
|
||||
},
|
||||
_initCore = function _initCore(core) {
|
||||
gsap = core || _getGSAP();
|
||||
|
||||
if (gsap) {
|
||||
_registerEase = gsap.registerEase;
|
||||
|
||||
var eases = gsap.parseEase(),
|
||||
createConfig = function createConfig(ease) {
|
||||
return function (ratio) {
|
||||
var y = 0.5 + ratio / 2;
|
||||
|
||||
ease.config = function (p) {
|
||||
return ease(2 * (1 - p) * p * y + p * p);
|
||||
};
|
||||
};
|
||||
},
|
||||
p;
|
||||
|
||||
for (p in eases) {
|
||||
if (!eases[p].config) {
|
||||
createConfig(eases[p]);
|
||||
}
|
||||
}
|
||||
|
||||
_registerEase("slow", SlowMo);
|
||||
|
||||
_registerEase("expoScale", ExpoScaleEase);
|
||||
|
||||
_registerEase("rough", RoughEase);
|
||||
|
||||
for (p in EasePack) {
|
||||
p !== "version" && gsap.core.globals(p, EasePack[p]);
|
||||
}
|
||||
}
|
||||
},
|
||||
_createSlowMo = function _createSlowMo(linearRatio, power, yoyoMode) {
|
||||
linearRatio = Math.min(1, linearRatio || 0.7);
|
||||
|
||||
var pow = linearRatio < 1 ? power || power === 0 ? power : 0.7 : 0,
|
||||
p1 = (1 - linearRatio) / 2,
|
||||
p3 = p1 + linearRatio,
|
||||
calcEnd = _boolean(yoyoMode);
|
||||
|
||||
return function (p) {
|
||||
var r = p + (0.5 - p) * pow;
|
||||
return p < p1 ? calcEnd ? 1 - (p = 1 - p / p1) * p : r - (p = 1 - p / p1) * p * p * p * r : p > p3 ? calcEnd ? p === 1 ? 0 : 1 - (p = (p - p3) / p1) * p : r + (p - r) * (p = (p - p3) / p1) * p * p * p : calcEnd ? 1 : r;
|
||||
};
|
||||
},
|
||||
_createExpoScale = function _createExpoScale(start, end, ease) {
|
||||
var p1 = Math.log(end / start),
|
||||
p2 = end - start;
|
||||
ease && (ease = gsap.parseEase(ease));
|
||||
return function (p) {
|
||||
return (start * Math.exp(p1 * (ease ? ease(p) : p)) - start) / p2;
|
||||
};
|
||||
},
|
||||
EasePoint = function EasePoint(time, value, next) {
|
||||
this.t = time;
|
||||
this.v = value;
|
||||
|
||||
if (next) {
|
||||
this.next = next;
|
||||
next.prev = this;
|
||||
this.c = next.v - value;
|
||||
this.gap = next.t - time;
|
||||
}
|
||||
},
|
||||
_createRoughEase = function _createRoughEase(vars) {
|
||||
if (typeof vars !== "object") {
|
||||
vars = {
|
||||
points: +vars || 20
|
||||
};
|
||||
}
|
||||
|
||||
var taper = vars.taper || "none",
|
||||
a = [],
|
||||
cnt = 0,
|
||||
points = (+vars.points || 20) | 0,
|
||||
i = points,
|
||||
randomize = _boolean(vars.randomize, true),
|
||||
clamp = _boolean(vars.clamp),
|
||||
template = gsap ? gsap.parseEase(vars.template) : 0,
|
||||
strength = (+vars.strength || 1) * 0.4,
|
||||
x,
|
||||
y,
|
||||
bump,
|
||||
invX,
|
||||
obj,
|
||||
pnt,
|
||||
recent;
|
||||
|
||||
while (--i > -1) {
|
||||
x = randomize ? Math.random() : 1 / points * i;
|
||||
y = template ? template(x) : x;
|
||||
|
||||
if (taper === "none") {
|
||||
bump = strength;
|
||||
} else if (taper === "out") {
|
||||
invX = 1 - x;
|
||||
bump = invX * invX * strength;
|
||||
} else if (taper === "in") {
|
||||
bump = x * x * strength;
|
||||
} else if (x < 0.5) {
|
||||
invX = x * 2;
|
||||
bump = invX * invX * 0.5 * strength;
|
||||
} else {
|
||||
invX = (1 - x) * 2;
|
||||
bump = invX * invX * 0.5 * strength;
|
||||
}
|
||||
|
||||
if (randomize) {
|
||||
y += Math.random() * bump - bump * 0.5;
|
||||
} else if (i % 2) {
|
||||
y += bump * 0.5;
|
||||
} else {
|
||||
y -= bump * 0.5;
|
||||
}
|
||||
|
||||
if (clamp) {
|
||||
if (y > 1) {
|
||||
y = 1;
|
||||
} else if (y < 0) {
|
||||
y = 0;
|
||||
}
|
||||
}
|
||||
|
||||
a[cnt++] = {
|
||||
x: x,
|
||||
y: y
|
||||
};
|
||||
}
|
||||
|
||||
a.sort(function (a, b) {
|
||||
return a.x - b.x;
|
||||
});
|
||||
pnt = new EasePoint(1, 1, null);
|
||||
i = points;
|
||||
|
||||
while (i--) {
|
||||
obj = a[i];
|
||||
pnt = new EasePoint(obj.x, obj.y, pnt);
|
||||
}
|
||||
|
||||
recent = new EasePoint(0, 0, pnt.t ? pnt : pnt.next);
|
||||
return function (p) {
|
||||
var pnt = recent;
|
||||
|
||||
if (p > pnt.t) {
|
||||
while (pnt.next && p >= pnt.t) {
|
||||
pnt = pnt.next;
|
||||
}
|
||||
|
||||
pnt = pnt.prev;
|
||||
} else {
|
||||
while (pnt.prev && p <= pnt.t) {
|
||||
pnt = pnt.prev;
|
||||
}
|
||||
}
|
||||
|
||||
recent = pnt;
|
||||
return pnt.v + (p - pnt.t) / pnt.gap * pnt.c;
|
||||
};
|
||||
};
|
||||
|
||||
var SlowMo = _createSlowMo(0.7);
|
||||
SlowMo.ease = SlowMo;
|
||||
SlowMo.config = _createSlowMo;
|
||||
var ExpoScaleEase = _createExpoScale(1, 2);
|
||||
ExpoScaleEase.config = _createExpoScale;
|
||||
var RoughEase = _createRoughEase();
|
||||
RoughEase.ease = RoughEase;
|
||||
RoughEase.config = _createRoughEase;
|
||||
var EasePack = {
|
||||
SlowMo: SlowMo,
|
||||
RoughEase: RoughEase,
|
||||
ExpoScaleEase: ExpoScaleEase
|
||||
};
|
||||
|
||||
for (var p in EasePack) {
|
||||
EasePack[p].register = _initCore;
|
||||
EasePack[p].version = "3.13.0";
|
||||
}
|
||||
|
||||
_getGSAP() && gsap.registerPlugin(SlowMo);
|
||||
|
||||
exports.EasePack = EasePack;
|
||||
exports.ExpoScaleEase = ExpoScaleEase;
|
||||
exports.RoughEase = RoughEase;
|
||||
exports.SlowMo = SlowMo;
|
||||
exports.default = EasePack;
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
})));
|
11
network-visualization/node_modules/gsap/dist/EasePack.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/EasePack.min.js
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
/*!
|
||||
* EasePack 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2025, GreenSock. All rights reserved.
|
||||
* Subject to the terms at https://gsap.com/standard-license.
|
||||
* @author: Jack Doyle, jack@greensock.com
|
||||
*/
|
||||
|
||||
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e=e||self).window=e.window||{})}(this,function(e){"use strict";function f(){return w||"undefined"!=typeof window&&(w=window.gsap)&&w.registerPlugin&&w}function g(e,n){return!!(void 0===e?n:e&&!~(e+"").indexOf("false"))}function h(e){if(w=e||f()){r=w.registerEase;var n,t=w.parseEase(),o=function createConfig(t){return function(e){var n=.5+e/2;t.config=function(e){return t(2*(1-e)*e*n+e*e)}}};for(n in t)t[n].config||o(t[n]);for(n in r("slow",a),r("expoScale",s),r("rough",u),c)"version"!==n&&w.core.globals(n,c[n])}}function i(e,n,t){var o=(e=Math.min(1,e||.7))<1?n||0===n?n:.7:0,r=(1-e)/2,i=r+e,a=g(t);return function(e){var n=e+(.5-e)*o;return e<r?a?1-(e=1-e/r)*e:n-(e=1-e/r)*e*e*e*n:i<e?a?1===e?0:1-(e=(e-i)/r)*e:n+(e-n)*(e=(e-i)/r)*e*e*e:a?1:n}}function j(n,e,t){var o=Math.log(e/n),r=e-n;return t=t&&w.parseEase(t),function(e){return(n*Math.exp(o*(t?t(e):e))-n)/r}}function k(e,n,t){this.t=e,this.v=n,t&&(((this.next=t).prev=this).c=t.v-n,this.gap=t.t-e)}function l(e){"object"!=typeof e&&(e={points:+e||20});for(var n,t,o,r,i,a,f,s=e.taper||"none",u=[],c=0,p=0|(+e.points||20),l=p,v=g(e.randomize,!0),d=g(e.clamp),h=w?w.parseEase(e.template):0,x=.4*(+e.strength||1);-1<--l;)n=v?Math.random():1/p*l,t=h?h(n):n,o="none"===s?x:"out"===s?(r=1-n)*r*x:"in"===s?n*n*x:n<.5?(r=2*n)*r*.5*x:(r=2*(1-n))*r*.5*x,v?t+=Math.random()*o-.5*o:l%2?t+=.5*o:t-=.5*o,d&&(1<t?t=1:t<0&&(t=0)),u[c++]={x:n,y:t};for(u.sort(function(e,n){return e.x-n.x}),a=new k(1,1,null),l=p;l--;)i=u[l],a=new k(i.x,i.y,a);return f=new k(0,0,a.t?a:a.next),function(e){var n=f;if(e>n.t){for(;n.next&&e>=n.t;)n=n.next;n=n.prev}else for(;n.prev&&e<=n.t;)n=n.prev;return(f=n).v+(e-n.t)/n.gap*n.c}}var w,r,a=i(.7);(a.ease=a).config=i;var s=j(1,2);s.config=j;var u=l();(u.ease=u).config=l;var c={SlowMo:a,RoughEase:u,ExpoScaleEase:s};for(var n in c)c[n].register=h,c[n].version="3.13.0";f()&&w.registerPlugin(a),e.EasePack=c,e.ExpoScaleEase=s,e.RoughEase=u,e.SlowMo=a,e.default=c;if (typeof(window)==="undefined"||window!==e){Object.defineProperty(e,"__esModule",{value:!0})} else {delete e.default}});
|
||||
|
1
network-visualization/node_modules/gsap/dist/EasePack.min.js.map
generated
vendored
Normal file
1
network-visualization/node_modules/gsap/dist/EasePack.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
350
network-visualization/node_modules/gsap/dist/EaselPlugin.js
generated
vendored
Normal file
350
network-visualization/node_modules/gsap/dist/EaselPlugin.js
generated
vendored
Normal file
@@ -0,0 +1,350 @@
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(global = global || self, factory(global.window = global.window || {}));
|
||||
}(this, (function (exports) { 'use strict';
|
||||
|
||||
/*!
|
||||
* EaselPlugin 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2008-2025, GreenSock. All rights reserved.
|
||||
* Subject to the terms at https://gsap.com/standard-license
|
||||
* @author: Jack Doyle, jack@greensock.com
|
||||
*/
|
||||
var gsap,
|
||||
_coreInitted,
|
||||
_win,
|
||||
_createJS,
|
||||
_ColorFilter,
|
||||
_ColorMatrixFilter,
|
||||
_colorProps = "redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset".split(","),
|
||||
_windowExists = function _windowExists() {
|
||||
return typeof window !== "undefined";
|
||||
},
|
||||
_getGSAP = function _getGSAP() {
|
||||
return gsap || _windowExists() && (gsap = window.gsap) && gsap.registerPlugin && gsap;
|
||||
},
|
||||
_getCreateJS = function _getCreateJS() {
|
||||
return _createJS || _win && _win.createjs || _win || {};
|
||||
},
|
||||
_warn = function _warn(message) {
|
||||
return console.warn(message);
|
||||
},
|
||||
_cache = function _cache(target) {
|
||||
var b = target.getBounds && target.getBounds();
|
||||
|
||||
if (!b) {
|
||||
b = target.nominalBounds || {
|
||||
x: 0,
|
||||
y: 0,
|
||||
width: 100,
|
||||
height: 100
|
||||
};
|
||||
target.setBounds && target.setBounds(b.x, b.y, b.width, b.height);
|
||||
}
|
||||
|
||||
target.cache && target.cache(b.x, b.y, b.width, b.height);
|
||||
|
||||
_warn("EaselPlugin: for filters to display in EaselJS, you must call the object's cache() method first. GSAP attempted to use the target's getBounds() for the cache but that may not be completely accurate. " + target);
|
||||
},
|
||||
_parseColorFilter = function _parseColorFilter(target, v, plugin) {
|
||||
if (!_ColorFilter) {
|
||||
_ColorFilter = _getCreateJS().ColorFilter;
|
||||
|
||||
if (!_ColorFilter) {
|
||||
_warn("EaselPlugin error: The EaselJS ColorFilter JavaScript file wasn't loaded.");
|
||||
}
|
||||
}
|
||||
|
||||
var filters = target.filters || [],
|
||||
i = filters.length,
|
||||
c,
|
||||
s,
|
||||
e,
|
||||
a,
|
||||
p,
|
||||
pt;
|
||||
|
||||
while (i--) {
|
||||
if (filters[i] instanceof _ColorFilter) {
|
||||
s = filters[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!s) {
|
||||
s = new _ColorFilter();
|
||||
filters.push(s);
|
||||
target.filters = filters;
|
||||
}
|
||||
|
||||
e = s.clone();
|
||||
|
||||
if (v.tint != null) {
|
||||
c = gsap.utils.splitColor(v.tint);
|
||||
a = v.tintAmount != null ? +v.tintAmount : 1;
|
||||
e.redOffset = +c[0] * a;
|
||||
e.greenOffset = +c[1] * a;
|
||||
e.blueOffset = +c[2] * a;
|
||||
e.redMultiplier = e.greenMultiplier = e.blueMultiplier = 1 - a;
|
||||
} else {
|
||||
for (p in v) {
|
||||
if (p !== "exposure") if (p !== "brightness") {
|
||||
e[p] = +v[p];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (v.exposure != null) {
|
||||
e.redOffset = e.greenOffset = e.blueOffset = 255 * (+v.exposure - 1);
|
||||
e.redMultiplier = e.greenMultiplier = e.blueMultiplier = 1;
|
||||
} else if (v.brightness != null) {
|
||||
a = +v.brightness - 1;
|
||||
e.redOffset = e.greenOffset = e.blueOffset = a > 0 ? a * 255 : 0;
|
||||
e.redMultiplier = e.greenMultiplier = e.blueMultiplier = 1 - Math.abs(a);
|
||||
}
|
||||
|
||||
i = 8;
|
||||
|
||||
while (i--) {
|
||||
p = _colorProps[i];
|
||||
|
||||
if (s[p] !== e[p]) {
|
||||
pt = plugin.add(s, p, s[p], e[p], 0, 0, 0, 0, 0, 1);
|
||||
|
||||
if (pt) {
|
||||
pt.op = "easel_colorFilter";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
plugin._props.push("easel_colorFilter");
|
||||
|
||||
if (!target.cacheID) {
|
||||
_cache(target);
|
||||
}
|
||||
},
|
||||
_idMatrix = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0],
|
||||
_lumR = 0.212671,
|
||||
_lumG = 0.715160,
|
||||
_lumB = 0.072169,
|
||||
_applyMatrix = function _applyMatrix(m, m2) {
|
||||
if (!(m instanceof Array) || !(m2 instanceof Array)) {
|
||||
return m2;
|
||||
}
|
||||
|
||||
var temp = [],
|
||||
i = 0,
|
||||
z = 0,
|
||||
y,
|
||||
x;
|
||||
|
||||
for (y = 0; y < 4; y++) {
|
||||
for (x = 0; x < 5; x++) {
|
||||
z = x === 4 ? m[i + 4] : 0;
|
||||
temp[i + x] = m[i] * m2[x] + m[i + 1] * m2[x + 5] + m[i + 2] * m2[x + 10] + m[i + 3] * m2[x + 15] + z;
|
||||
}
|
||||
|
||||
i += 5;
|
||||
}
|
||||
|
||||
return temp;
|
||||
},
|
||||
_setSaturation = function _setSaturation(m, n) {
|
||||
if (isNaN(n)) {
|
||||
return m;
|
||||
}
|
||||
|
||||
var inv = 1 - n,
|
||||
r = inv * _lumR,
|
||||
g = inv * _lumG,
|
||||
b = inv * _lumB;
|
||||
return _applyMatrix([r + n, g, b, 0, 0, r, g + n, b, 0, 0, r, g, b + n, 0, 0, 0, 0, 0, 1, 0], m);
|
||||
},
|
||||
_colorize = function _colorize(m, color, amount) {
|
||||
if (isNaN(amount)) {
|
||||
amount = 1;
|
||||
}
|
||||
|
||||
var c = gsap.utils.splitColor(color),
|
||||
r = c[0] / 255,
|
||||
g = c[1] / 255,
|
||||
b = c[2] / 255,
|
||||
inv = 1 - amount;
|
||||
return _applyMatrix([inv + amount * r * _lumR, amount * r * _lumG, amount * r * _lumB, 0, 0, amount * g * _lumR, inv + amount * g * _lumG, amount * g * _lumB, 0, 0, amount * b * _lumR, amount * b * _lumG, inv + amount * b * _lumB, 0, 0, 0, 0, 0, 1, 0], m);
|
||||
},
|
||||
_setHue = function _setHue(m, n) {
|
||||
if (isNaN(n)) {
|
||||
return m;
|
||||
}
|
||||
|
||||
n *= Math.PI / 180;
|
||||
var c = Math.cos(n),
|
||||
s = Math.sin(n);
|
||||
return _applyMatrix([_lumR + c * (1 - _lumR) + s * -_lumR, _lumG + c * -_lumG + s * -_lumG, _lumB + c * -_lumB + s * (1 - _lumB), 0, 0, _lumR + c * -_lumR + s * 0.143, _lumG + c * (1 - _lumG) + s * 0.14, _lumB + c * -_lumB + s * -0.283, 0, 0, _lumR + c * -_lumR + s * -(1 - _lumR), _lumG + c * -_lumG + s * _lumG, _lumB + c * (1 - _lumB) + s * _lumB, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1], m);
|
||||
},
|
||||
_setContrast = function _setContrast(m, n) {
|
||||
if (isNaN(n)) {
|
||||
return m;
|
||||
}
|
||||
|
||||
n += 0.01;
|
||||
return _applyMatrix([n, 0, 0, 0, 128 * (1 - n), 0, n, 0, 0, 128 * (1 - n), 0, 0, n, 0, 128 * (1 - n), 0, 0, 0, 1, 0], m);
|
||||
},
|
||||
_parseColorMatrixFilter = function _parseColorMatrixFilter(target, v, plugin) {
|
||||
if (!_ColorMatrixFilter) {
|
||||
_ColorMatrixFilter = _getCreateJS().ColorMatrixFilter;
|
||||
|
||||
if (!_ColorMatrixFilter) {
|
||||
_warn("EaselPlugin: The EaselJS ColorMatrixFilter JavaScript file wasn't loaded.");
|
||||
}
|
||||
}
|
||||
|
||||
var filters = target.filters || [],
|
||||
i = filters.length,
|
||||
matrix,
|
||||
startMatrix,
|
||||
s,
|
||||
pg;
|
||||
|
||||
while (--i > -1) {
|
||||
if (filters[i] instanceof _ColorMatrixFilter) {
|
||||
s = filters[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!s) {
|
||||
s = new _ColorMatrixFilter(_idMatrix.slice());
|
||||
filters.push(s);
|
||||
target.filters = filters;
|
||||
}
|
||||
|
||||
startMatrix = s.matrix;
|
||||
matrix = _idMatrix.slice();
|
||||
|
||||
if (v.colorize != null) {
|
||||
matrix = _colorize(matrix, v.colorize, Number(v.colorizeAmount));
|
||||
}
|
||||
|
||||
if (v.contrast != null) {
|
||||
matrix = _setContrast(matrix, Number(v.contrast));
|
||||
}
|
||||
|
||||
if (v.hue != null) {
|
||||
matrix = _setHue(matrix, Number(v.hue));
|
||||
}
|
||||
|
||||
if (v.saturation != null) {
|
||||
matrix = _setSaturation(matrix, Number(v.saturation));
|
||||
}
|
||||
|
||||
i = matrix.length;
|
||||
|
||||
while (--i > -1) {
|
||||
if (matrix[i] !== startMatrix[i]) {
|
||||
pg = plugin.add(startMatrix, i, startMatrix[i], matrix[i], 0, 0, 0, 0, 0, 1);
|
||||
|
||||
if (pg) {
|
||||
pg.op = "easel_colorMatrixFilter";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
plugin._props.push("easel_colorMatrixFilter");
|
||||
|
||||
if (!target.cacheID) {
|
||||
_cache();
|
||||
}
|
||||
|
||||
plugin._matrix = startMatrix;
|
||||
},
|
||||
_initCore = function _initCore(core) {
|
||||
gsap = core || _getGSAP();
|
||||
|
||||
if (_windowExists()) {
|
||||
_win = window;
|
||||
}
|
||||
|
||||
if (gsap) {
|
||||
_coreInitted = 1;
|
||||
}
|
||||
};
|
||||
|
||||
var EaselPlugin = {
|
||||
version: "3.13.0",
|
||||
name: "easel",
|
||||
init: function init(target, value, tween, index, targets) {
|
||||
if (!_coreInitted) {
|
||||
_initCore();
|
||||
|
||||
if (!gsap) {
|
||||
_warn("Please gsap.registerPlugin(EaselPlugin)");
|
||||
}
|
||||
}
|
||||
|
||||
this.target = target;
|
||||
var p, pt, tint, colorMatrix, end, labels, i;
|
||||
|
||||
for (p in value) {
|
||||
end = value[p];
|
||||
|
||||
if (p === "colorFilter" || p === "tint" || p === "tintAmount" || p === "exposure" || p === "brightness") {
|
||||
if (!tint) {
|
||||
_parseColorFilter(target, value.colorFilter || value, this);
|
||||
|
||||
tint = true;
|
||||
}
|
||||
} else if (p === "saturation" || p === "contrast" || p === "hue" || p === "colorize" || p === "colorizeAmount") {
|
||||
if (!colorMatrix) {
|
||||
_parseColorMatrixFilter(target, value.colorMatrixFilter || value, this);
|
||||
|
||||
colorMatrix = true;
|
||||
}
|
||||
} else if (p === "frame") {
|
||||
if (typeof end === "string" && end.charAt(1) !== "=" && (labels = target.labels)) {
|
||||
for (i = 0; i < labels.length; i++) {
|
||||
if (labels[i].label === end) {
|
||||
end = labels[i].position;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pt = this.add(target, "gotoAndStop", target.currentFrame, end, index, targets, Math.round, 0, 0, 1);
|
||||
|
||||
if (pt) {
|
||||
pt.op = p;
|
||||
}
|
||||
} else if (target[p] != null) {
|
||||
this.add(target, p, "get", end);
|
||||
}
|
||||
}
|
||||
},
|
||||
render: function render(ratio, data) {
|
||||
var pt = data._pt;
|
||||
|
||||
while (pt) {
|
||||
pt.r(ratio, pt.d);
|
||||
pt = pt._next;
|
||||
}
|
||||
|
||||
if (data.target.cacheID) {
|
||||
data.target.updateCache();
|
||||
}
|
||||
},
|
||||
register: _initCore
|
||||
};
|
||||
|
||||
EaselPlugin.registerCreateJS = function (createjs) {
|
||||
_createJS = createjs;
|
||||
};
|
||||
|
||||
_getGSAP() && gsap.registerPlugin(EaselPlugin);
|
||||
|
||||
exports.EaselPlugin = EaselPlugin;
|
||||
exports.default = EaselPlugin;
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
})));
|
11
network-visualization/node_modules/gsap/dist/EaselPlugin.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/EaselPlugin.min.js
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
/*!
|
||||
* EaselPlugin 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2025, GreenSock. All rights reserved.
|
||||
* Subject to the terms at https://gsap.com/standard-license.
|
||||
* @author: Jack Doyle, jack@greensock.com
|
||||
*/
|
||||
|
||||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).window=e.window||{})}(this,function(e){"use strict";function k(){return"undefined"!=typeof window}function l(){return h||k()&&(h=window.gsap)&&h.registerPlugin&&h}function m(){return r||t&&t.createjs||t||{}}function n(e){return console.warn(e)}function o(e){var t=e.getBounds&&e.getBounds();t||(t=e.nominalBounds||{x:0,y:0,width:100,height:100},e.setBounds&&e.setBounds(t.x,t.y,t.width,t.height)),e.cache&&e.cache(t.x,t.y,t.width,t.height),n("EaselPlugin: for filters to display in EaselJS, you must call the object's cache() method first. GSAP attempted to use the target's getBounds() for the cache but that may not be completely accurate. "+e)}function p(e,t,r){(b=b||m().ColorFilter)||n("EaselPlugin error: The EaselJS ColorFilter JavaScript file wasn't loaded.");for(var i,l,s,u,a,f,c=e.filters||[],d=c.length;d--;)if(c[d]instanceof b){l=c[d];break}if(l||(l=new b,c.push(l),e.filters=c),s=l.clone(),null!=t.tint)i=h.utils.splitColor(t.tint),u=null!=t.tintAmount?+t.tintAmount:1,s.redOffset=i[0]*u,s.greenOffset=i[1]*u,s.blueOffset=i[2]*u,s.redMultiplier=s.greenMultiplier=s.blueMultiplier=1-u;else for(a in t)"exposure"!==a&&"brightness"!==a&&(s[a]=+t[a]);for(null!=t.exposure?(s.redOffset=s.greenOffset=s.blueOffset=255*(t.exposure-1),s.redMultiplier=s.greenMultiplier=s.blueMultiplier=1):null!=t.brightness&&(u=t.brightness-1,s.redOffset=s.greenOffset=s.blueOffset=0<u?255*u:0,s.redMultiplier=s.greenMultiplier=s.blueMultiplier=1-Math.abs(u)),d=8;d--;)l[a=M[d]]!==s[a]&&(f=r.add(l,a,l[a],s[a],0,0,0,0,0,1))&&(f.op="easel_colorFilter");r._props.push("easel_colorFilter"),e.cacheID||o(e)}function u(e,t){if(!(e instanceof Array&&t instanceof Array))return t;var r,i,n=[],l=0,o=0;for(r=0;r<4;r++){for(i=0;i<5;i++)o=4===i?e[l+4]:0,n[l+i]=e[l]*t[i]+e[l+1]*t[i+5]+e[l+2]*t[i+10]+e[l+3]*t[i+15]+o;l+=5}return n}function z(e,t,r){(d=d||m().ColorMatrixFilter)||n("EaselPlugin: The EaselJS ColorMatrixFilter JavaScript file wasn't loaded.");for(var i,l,s,a,f=e.filters||[],c=f.length;-1<--c;)if(f[c]instanceof d){s=f[c];break}for(s||(s=new d(w.slice()),f.push(s),e.filters=f),l=s.matrix,i=w.slice(),null!=t.colorize&&(i=function _colorize(e,t,r){isNaN(r)&&(r=1);var i=h.utils.splitColor(t),n=i[0]/255,l=i[1]/255,o=i[2]/255,s=1-r;return u([s+r*n*x,r*n*y,r*n*_,0,0,r*l*x,s+r*l*y,r*l*_,0,0,r*o*x,r*o*y,s+r*o*_,0,0,0,0,0,1,0],e)}(i,t.colorize,Number(t.colorizeAmount))),null!=t.contrast&&(i=function _setContrast(e,t){return isNaN(t)?e:u([t+=.01,0,0,0,128*(1-t),0,t,0,0,128*(1-t),0,0,t,0,128*(1-t),0,0,0,1,0],e)}(i,Number(t.contrast))),null!=t.hue&&(i=function _setHue(e,t){if(isNaN(t))return e;t*=Math.PI/180;var r=Math.cos(t),i=Math.sin(t);return u([x+r*(1-x)+i*-x,y+r*-y+i*-y,_+r*-_+i*(1-_),0,0,x+r*-x+.143*i,y+r*(1-y)+.14*i,_+r*-_+-.283*i,0,0,x+r*-x+i*-(1-x),y+r*-y+i*y,_+r*(1-_)+i*_,0,0,0,0,0,1,0,0,0,0,0,1],e)}(i,Number(t.hue))),null!=t.saturation&&(i=function _setSaturation(e,t){if(isNaN(t))return e;var r=1-t,i=r*x,n=r*y,l=r*_;return u([i+t,n,l,0,0,i,n+t,l,0,0,i,n,l+t,0,0,0,0,0,1,0],e)}(i,Number(t.saturation))),c=i.length;-1<--c;)i[c]!==l[c]&&(a=r.add(l,c,l[c],i[c],0,0,0,0,0,1))&&(a.op="easel_colorMatrixFilter");r._props.push("easel_colorMatrixFilter"),e.cacheID||o(),r._matrix=l}function A(e){h=e||l(),k()&&(t=window),h&&(g=1)}var h,g,t,r,b,d,M="redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset".split(","),w=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],x=.212671,y=.71516,_=.072169,i={version:"3.13.0",name:"easel",init:function init(e,t,r,i,l){var o,s,u,a,f,c,d;for(o in g||(A(),h||n("Please gsap.registerPlugin(EaselPlugin)")),this.target=e,t)if(f=t[o],"colorFilter"===o||"tint"===o||"tintAmount"===o||"exposure"===o||"brightness"===o)u||(p(e,t.colorFilter||t,this),u=!0);else if("saturation"===o||"contrast"===o||"hue"===o||"colorize"===o||"colorizeAmount"===o)a||(z(e,t.colorMatrixFilter||t,this),a=!0);else if("frame"===o){if("string"==typeof f&&"="!==f.charAt(1)&&(c=e.labels))for(d=0;d<c.length;d++)c[d].label===f&&(f=c[d].position);(s=this.add(e,"gotoAndStop",e.currentFrame,f,i,l,Math.round,0,0,1))&&(s.op=o)}else null!=e[o]&&this.add(e,o,"get",f)},render:function render(e,t){for(var r=t._pt;r;)r.r(e,r.d),r=r._next;t.target.cacheID&&t.target.updateCache()},register:A,registerCreateJS:function(e){r=e}};l()&&h.registerPlugin(i),e.EaselPlugin=i,e.default=i;if (typeof(window)==="undefined"||window!==e){Object.defineProperty(e,"__esModule",{value:!0})} else {delete e.default}});
|
||||
|
1
network-visualization/node_modules/gsap/dist/EaselPlugin.min.js.map
generated
vendored
Normal file
1
network-visualization/node_modules/gsap/dist/EaselPlugin.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1825
network-visualization/node_modules/gsap/dist/Flip.js
generated
vendored
Normal file
1825
network-visualization/node_modules/gsap/dist/Flip.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
11
network-visualization/node_modules/gsap/dist/Flip.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/Flip.min.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1
network-visualization/node_modules/gsap/dist/Flip.min.js.map
generated
vendored
Normal file
1
network-visualization/node_modules/gsap/dist/Flip.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
4442
network-visualization/node_modules/gsap/dist/GSDevTools.js
generated
vendored
Normal file
4442
network-visualization/node_modules/gsap/dist/GSDevTools.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
11
network-visualization/node_modules/gsap/dist/GSDevTools.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/GSDevTools.min.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1
network-visualization/node_modules/gsap/dist/GSDevTools.min.js.map
generated
vendored
Normal file
1
network-visualization/node_modules/gsap/dist/GSDevTools.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
718
network-visualization/node_modules/gsap/dist/InertiaPlugin.js
generated
vendored
Normal file
718
network-visualization/node_modules/gsap/dist/InertiaPlugin.js
generated
vendored
Normal file
@@ -0,0 +1,718 @@
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(global = global || self, factory(global.window = global.window || {}));
|
||||
}(this, (function (exports) { 'use strict';
|
||||
|
||||
var gsap,
|
||||
_coreInitted,
|
||||
_toArray,
|
||||
_getUnit,
|
||||
_first,
|
||||
_ticker,
|
||||
_time1,
|
||||
_time2,
|
||||
_getCache,
|
||||
_getGSAP = function _getGSAP() {
|
||||
return gsap || typeof window !== "undefined" && (gsap = window.gsap);
|
||||
},
|
||||
_lookup = {},
|
||||
_round = function _round(value) {
|
||||
return Math.round(value * 10000) / 10000;
|
||||
},
|
||||
_getID = function _getID(target) {
|
||||
return _getCache(target).id;
|
||||
},
|
||||
_getByTarget = function _getByTarget(target) {
|
||||
return _lookup[_getID(typeof target === "string" ? _toArray(target)[0] : target)];
|
||||
},
|
||||
_onTick = function _onTick(time) {
|
||||
var pt = _first,
|
||||
val;
|
||||
|
||||
if (time - _time1 >= 0.05) {
|
||||
_time2 = _time1;
|
||||
_time1 = time;
|
||||
|
||||
while (pt) {
|
||||
val = pt.g(pt.t, pt.p);
|
||||
|
||||
if (val !== pt.v1 || time - pt.t1 > 0.2) {
|
||||
pt.v2 = pt.v1;
|
||||
pt.v1 = val;
|
||||
pt.t2 = pt.t1;
|
||||
pt.t1 = time;
|
||||
}
|
||||
|
||||
pt = pt._next;
|
||||
}
|
||||
}
|
||||
},
|
||||
_types = {
|
||||
deg: 360,
|
||||
rad: Math.PI * 2
|
||||
},
|
||||
_initCore = function _initCore() {
|
||||
gsap = _getGSAP();
|
||||
|
||||
if (gsap) {
|
||||
_toArray = gsap.utils.toArray;
|
||||
_getUnit = gsap.utils.getUnit;
|
||||
_getCache = gsap.core.getCache;
|
||||
_ticker = gsap.ticker;
|
||||
_coreInitted = 1;
|
||||
}
|
||||
};
|
||||
|
||||
var PropTracker = function PropTracker(target, property, type, next) {
|
||||
this.t = target;
|
||||
this.p = property;
|
||||
this.g = target._gsap.get;
|
||||
this.rCap = _types[type || _getUnit(this.g(target, property))];
|
||||
this.v1 = this.v2 = 0;
|
||||
this.t1 = this.t2 = _ticker.time;
|
||||
|
||||
if (next) {
|
||||
this._next = next;
|
||||
next._prev = this;
|
||||
}
|
||||
};
|
||||
|
||||
var VelocityTracker = function () {
|
||||
function VelocityTracker(target, property) {
|
||||
if (!_coreInitted) {
|
||||
_initCore();
|
||||
}
|
||||
|
||||
this.target = _toArray(target)[0];
|
||||
_lookup[_getID(this.target)] = this;
|
||||
this._props = {};
|
||||
property && this.add(property);
|
||||
}
|
||||
|
||||
VelocityTracker.register = function register(core) {
|
||||
gsap = core;
|
||||
|
||||
_initCore();
|
||||
};
|
||||
|
||||
var _proto = VelocityTracker.prototype;
|
||||
|
||||
_proto.get = function get(property, skipRecentTick) {
|
||||
var pt = this._props[property] || console.warn("Not tracking " + property + " velocity."),
|
||||
val,
|
||||
dif,
|
||||
rotationCap;
|
||||
val = parseFloat(skipRecentTick ? pt.v1 : pt.g(pt.t, pt.p));
|
||||
dif = val - parseFloat(pt.v2);
|
||||
rotationCap = pt.rCap;
|
||||
|
||||
if (rotationCap) {
|
||||
dif = dif % rotationCap;
|
||||
|
||||
if (dif !== dif % (rotationCap / 2)) {
|
||||
dif = dif < 0 ? dif + rotationCap : dif - rotationCap;
|
||||
}
|
||||
}
|
||||
|
||||
return _round(dif / ((skipRecentTick ? pt.t1 : _ticker.time) - pt.t2));
|
||||
};
|
||||
|
||||
_proto.getAll = function getAll() {
|
||||
var result = {},
|
||||
props = this._props,
|
||||
p;
|
||||
|
||||
for (p in props) {
|
||||
result[p] = this.get(p);
|
||||
}
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
_proto.isTracking = function isTracking(property) {
|
||||
return property in this._props;
|
||||
};
|
||||
|
||||
_proto.add = function add(property, type) {
|
||||
if (!(property in this._props)) {
|
||||
if (!_first) {
|
||||
_ticker.add(_onTick);
|
||||
|
||||
_time1 = _time2 = _ticker.time;
|
||||
}
|
||||
|
||||
_first = this._props[property] = new PropTracker(this.target, property, type, _first);
|
||||
}
|
||||
};
|
||||
|
||||
_proto.remove = function remove(property) {
|
||||
var pt = this._props[property],
|
||||
prev,
|
||||
next;
|
||||
|
||||
if (pt) {
|
||||
prev = pt._prev;
|
||||
next = pt._next;
|
||||
|
||||
if (prev) {
|
||||
prev._next = next;
|
||||
}
|
||||
|
||||
if (next) {
|
||||
next._prev = prev;
|
||||
} else if (_first === pt) {
|
||||
_ticker.remove(_onTick);
|
||||
|
||||
_first = 0;
|
||||
}
|
||||
|
||||
delete this._props[property];
|
||||
}
|
||||
};
|
||||
|
||||
_proto.kill = function kill(shallow) {
|
||||
for (var p in this._props) {
|
||||
this.remove(p);
|
||||
}
|
||||
|
||||
if (!shallow) {
|
||||
delete _lookup[_getID(this.target)];
|
||||
}
|
||||
};
|
||||
|
||||
VelocityTracker.track = function track(targets, properties, types) {
|
||||
if (!_coreInitted) {
|
||||
_initCore();
|
||||
}
|
||||
|
||||
var result = [],
|
||||
targs = _toArray(targets),
|
||||
a = properties.split(","),
|
||||
t = (types || "").split(","),
|
||||
i = targs.length,
|
||||
tracker,
|
||||
j;
|
||||
|
||||
while (i--) {
|
||||
tracker = _getByTarget(targs[i]) || new VelocityTracker(targs[i]);
|
||||
j = a.length;
|
||||
|
||||
while (j--) {
|
||||
tracker.add(a[j], t[j] || t[0]);
|
||||
}
|
||||
|
||||
result.push(tracker);
|
||||
}
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
VelocityTracker.untrack = function untrack(targets, properties) {
|
||||
var props = (properties || "").split(",");
|
||||
|
||||
_toArray(targets).forEach(function (target) {
|
||||
var tracker = _getByTarget(target);
|
||||
|
||||
if (tracker) {
|
||||
if (!props.length) {
|
||||
tracker.kill(1);
|
||||
} else {
|
||||
props.forEach(function (p) {
|
||||
return tracker.remove(p);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
VelocityTracker.isTracking = function isTracking(target, property) {
|
||||
var tracker = _getByTarget(target);
|
||||
|
||||
return tracker && tracker.isTracking(property);
|
||||
};
|
||||
|
||||
VelocityTracker.getVelocity = function getVelocity(target, property) {
|
||||
var tracker = _getByTarget(target);
|
||||
|
||||
return !tracker || !tracker.isTracking(property) ? console.warn("Not tracking velocity of " + property) : tracker.get(property);
|
||||
};
|
||||
|
||||
return VelocityTracker;
|
||||
}();
|
||||
VelocityTracker.getByTarget = _getByTarget;
|
||||
_getGSAP() && gsap.registerPlugin(VelocityTracker);
|
||||
|
||||
/*!
|
||||
* InertiaPlugin 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2008-2025, GreenSock. All rights reserved.
|
||||
* Subject to the terms at https://gsap.com/standard-license
|
||||
* @author: Jack Doyle, jack@greensock.com
|
||||
*/
|
||||
|
||||
var gsap$1,
|
||||
_coreInitted$1,
|
||||
_parseEase,
|
||||
_toArray$1,
|
||||
_power3,
|
||||
_config,
|
||||
_getUnit$1,
|
||||
PropTween,
|
||||
_getCache$1,
|
||||
_checkPointRatio,
|
||||
_clamp,
|
||||
_processingVars,
|
||||
_getStyleSaver,
|
||||
_reverting,
|
||||
_getTracker = VelocityTracker.getByTarget,
|
||||
_getGSAP$1 = function _getGSAP() {
|
||||
return gsap$1 || typeof window !== "undefined" && (gsap$1 = window.gsap) && gsap$1.registerPlugin && gsap$1;
|
||||
},
|
||||
_isString = function _isString(value) {
|
||||
return typeof value === "string";
|
||||
},
|
||||
_isNumber = function _isNumber(value) {
|
||||
return typeof value === "number";
|
||||
},
|
||||
_isObject = function _isObject(value) {
|
||||
return typeof value === "object";
|
||||
},
|
||||
_isFunction = function _isFunction(value) {
|
||||
return typeof value === "function";
|
||||
},
|
||||
_bonusValidated = 1,
|
||||
_isArray = Array.isArray,
|
||||
_emptyFunc = function _emptyFunc(p) {
|
||||
return p;
|
||||
},
|
||||
_bigNum = 1e10,
|
||||
_tinyNum = 1 / _bigNum,
|
||||
_checkPoint = 0.05,
|
||||
_round$1 = function _round(value) {
|
||||
return Math.round(value * 10000) / 10000;
|
||||
},
|
||||
_extend = function _extend(obj, defaults, exclude) {
|
||||
for (var p in defaults) {
|
||||
if (!(p in obj) && p !== exclude) {
|
||||
obj[p] = defaults[p];
|
||||
}
|
||||
}
|
||||
|
||||
return obj;
|
||||
},
|
||||
_deepClone = function _deepClone(obj) {
|
||||
var copy = {},
|
||||
p,
|
||||
v;
|
||||
|
||||
for (p in obj) {
|
||||
copy[p] = _isObject(v = obj[p]) && !_isArray(v) ? _deepClone(v) : v;
|
||||
}
|
||||
|
||||
return copy;
|
||||
},
|
||||
_getClosest = function _getClosest(n, values, max, min, radius) {
|
||||
var i = values.length,
|
||||
closest = 0,
|
||||
absDif = _bigNum,
|
||||
val,
|
||||
dif,
|
||||
p,
|
||||
dist;
|
||||
|
||||
if (_isObject(n)) {
|
||||
while (i--) {
|
||||
val = values[i];
|
||||
dif = 0;
|
||||
|
||||
for (p in n) {
|
||||
dist = val[p] - n[p];
|
||||
dif += dist * dist;
|
||||
}
|
||||
|
||||
if (dif < absDif) {
|
||||
closest = i;
|
||||
absDif = dif;
|
||||
}
|
||||
}
|
||||
|
||||
if ((radius || _bigNum) < _bigNum && radius < Math.sqrt(absDif)) {
|
||||
return n;
|
||||
}
|
||||
} else {
|
||||
while (i--) {
|
||||
val = values[i];
|
||||
dif = val - n;
|
||||
|
||||
if (dif < 0) {
|
||||
dif = -dif;
|
||||
}
|
||||
|
||||
if (dif < absDif && val >= min && val <= max) {
|
||||
closest = i;
|
||||
absDif = dif;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return values[closest];
|
||||
},
|
||||
_parseEnd = function _parseEnd(curProp, end, max, min, name, radius, velocity) {
|
||||
if (curProp.end === "auto") {
|
||||
return curProp;
|
||||
}
|
||||
|
||||
var endVar = curProp.end,
|
||||
adjustedEnd,
|
||||
p;
|
||||
max = isNaN(max) ? _bigNum : max;
|
||||
min = isNaN(min) ? -_bigNum : min;
|
||||
|
||||
if (_isObject(end)) {
|
||||
adjustedEnd = end.calculated ? end : (_isFunction(endVar) ? endVar(end, velocity) : _getClosest(end, endVar, max, min, radius)) || end;
|
||||
|
||||
if (!end.calculated) {
|
||||
for (p in adjustedEnd) {
|
||||
end[p] = adjustedEnd[p];
|
||||
}
|
||||
|
||||
end.calculated = true;
|
||||
}
|
||||
|
||||
adjustedEnd = adjustedEnd[name];
|
||||
} else {
|
||||
adjustedEnd = _isFunction(endVar) ? endVar(end, velocity) : _isArray(endVar) ? _getClosest(end, endVar, max, min, radius) : parseFloat(endVar);
|
||||
}
|
||||
|
||||
if (adjustedEnd > max) {
|
||||
adjustedEnd = max;
|
||||
} else if (adjustedEnd < min) {
|
||||
adjustedEnd = min;
|
||||
}
|
||||
|
||||
return {
|
||||
max: adjustedEnd,
|
||||
min: adjustedEnd,
|
||||
unitFactor: curProp.unitFactor
|
||||
};
|
||||
},
|
||||
_getNumOrDefault = function _getNumOrDefault(vars, property, defaultValue) {
|
||||
return isNaN(vars[property]) ? defaultValue : +vars[property];
|
||||
},
|
||||
_calculateChange = function _calculateChange(velocity, duration) {
|
||||
return duration * _checkPoint * velocity / _checkPointRatio;
|
||||
},
|
||||
_calculateDuration = function _calculateDuration(start, end, velocity) {
|
||||
return Math.abs((end - start) * _checkPointRatio / velocity / _checkPoint);
|
||||
},
|
||||
_reservedProps = {
|
||||
resistance: 1,
|
||||
checkpoint: 1,
|
||||
preventOvershoot: 1,
|
||||
linkedProps: 1,
|
||||
radius: 1,
|
||||
duration: 1
|
||||
},
|
||||
_processLinkedProps = function _processLinkedProps(target, vars, getVal, resistance) {
|
||||
if (vars.linkedProps) {
|
||||
var linkedPropNames = vars.linkedProps.split(","),
|
||||
linkedProps = {},
|
||||
i,
|
||||
p,
|
||||
curProp,
|
||||
curVelocity,
|
||||
tracker,
|
||||
curDuration;
|
||||
|
||||
for (i = 0; i < linkedPropNames.length; i++) {
|
||||
p = linkedPropNames[i];
|
||||
curProp = vars[p];
|
||||
|
||||
if (curProp) {
|
||||
if (_isNumber(curProp.velocity)) {
|
||||
curVelocity = curProp.velocity;
|
||||
} else {
|
||||
tracker = tracker || _getTracker(target);
|
||||
curVelocity = tracker && tracker.isTracking(p) ? tracker.get(p) : 0;
|
||||
}
|
||||
|
||||
curDuration = Math.abs(curVelocity / _getNumOrDefault(curProp, "resistance", resistance));
|
||||
linkedProps[p] = parseFloat(getVal(target, p)) + _calculateChange(curVelocity, curDuration);
|
||||
}
|
||||
}
|
||||
|
||||
return linkedProps;
|
||||
}
|
||||
},
|
||||
_calculateTweenDuration = function _calculateTweenDuration(target, vars, maxDuration, minDuration, overshootTolerance, recordEnd) {
|
||||
if (maxDuration === void 0) {
|
||||
maxDuration = 10;
|
||||
}
|
||||
|
||||
if (minDuration === void 0) {
|
||||
minDuration = 0.2;
|
||||
}
|
||||
|
||||
if (overshootTolerance === void 0) {
|
||||
overshootTolerance = 1;
|
||||
}
|
||||
|
||||
if (recordEnd === void 0) {
|
||||
recordEnd = 0;
|
||||
}
|
||||
|
||||
_isString(target) && (target = _toArray$1(target)[0]);
|
||||
|
||||
if (!target) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
var duration = 0,
|
||||
clippedDuration = _bigNum,
|
||||
inertiaVars = vars.inertia || vars,
|
||||
getVal = _getCache$1(target).get,
|
||||
resistance = _getNumOrDefault(inertiaVars, "resistance", _config.resistance),
|
||||
p,
|
||||
curProp,
|
||||
curDuration,
|
||||
curVelocity,
|
||||
curVal,
|
||||
end,
|
||||
curClippedDuration,
|
||||
tracker,
|
||||
unitFactor,
|
||||
linkedProps;
|
||||
|
||||
linkedProps = _processLinkedProps(target, inertiaVars, getVal, resistance);
|
||||
|
||||
for (p in inertiaVars) {
|
||||
if (!_reservedProps[p]) {
|
||||
curProp = inertiaVars[p];
|
||||
|
||||
if (!_isObject(curProp)) {
|
||||
tracker = tracker || _getTracker(target);
|
||||
|
||||
if (tracker && tracker.isTracking(p)) {
|
||||
curProp = _isNumber(curProp) ? {
|
||||
velocity: curProp
|
||||
} : {
|
||||
velocity: tracker.get(p)
|
||||
};
|
||||
} else {
|
||||
curVelocity = +curProp || 0;
|
||||
curDuration = Math.abs(curVelocity / resistance);
|
||||
}
|
||||
}
|
||||
|
||||
if (_isObject(curProp)) {
|
||||
if (_isNumber(curProp.velocity)) {
|
||||
curVelocity = curProp.velocity;
|
||||
} else {
|
||||
tracker = tracker || _getTracker(target);
|
||||
curVelocity = tracker && tracker.isTracking(p) ? tracker.get(p) : 0;
|
||||
}
|
||||
|
||||
curDuration = _clamp(minDuration, maxDuration, Math.abs(curVelocity / _getNumOrDefault(curProp, "resistance", resistance)));
|
||||
curVal = parseFloat(getVal(target, p)) || 0;
|
||||
end = curVal + _calculateChange(curVelocity, curDuration);
|
||||
|
||||
if ("end" in curProp) {
|
||||
curProp = _parseEnd(curProp, linkedProps && p in linkedProps ? linkedProps : end, curProp.max, curProp.min, p, inertiaVars.radius, curVelocity);
|
||||
|
||||
if (recordEnd) {
|
||||
_processingVars === vars && (_processingVars = inertiaVars = _deepClone(vars));
|
||||
inertiaVars[p] = _extend(curProp, inertiaVars[p], "end");
|
||||
}
|
||||
}
|
||||
|
||||
if ("max" in curProp && end > +curProp.max + _tinyNum) {
|
||||
unitFactor = curProp.unitFactor || _config.unitFactors[p] || 1;
|
||||
curClippedDuration = curVal > curProp.max && curProp.min !== curProp.max || curVelocity * unitFactor > -15 && curVelocity * unitFactor < 45 ? minDuration + (maxDuration - minDuration) * 0.1 : _calculateDuration(curVal, curProp.max, curVelocity);
|
||||
|
||||
if (curClippedDuration + overshootTolerance < clippedDuration) {
|
||||
clippedDuration = curClippedDuration + overshootTolerance;
|
||||
}
|
||||
} else if ("min" in curProp && end < +curProp.min - _tinyNum) {
|
||||
unitFactor = curProp.unitFactor || _config.unitFactors[p] || 1;
|
||||
curClippedDuration = curVal < curProp.min && curProp.min !== curProp.max || curVelocity * unitFactor > -45 && curVelocity * unitFactor < 15 ? minDuration + (maxDuration - minDuration) * 0.1 : _calculateDuration(curVal, curProp.min, curVelocity);
|
||||
|
||||
if (curClippedDuration + overshootTolerance < clippedDuration) {
|
||||
clippedDuration = curClippedDuration + overshootTolerance;
|
||||
}
|
||||
}
|
||||
|
||||
curClippedDuration > duration && (duration = curClippedDuration);
|
||||
}
|
||||
|
||||
curDuration > duration && (duration = curDuration);
|
||||
}
|
||||
}
|
||||
|
||||
duration > clippedDuration && (duration = clippedDuration);
|
||||
return duration > maxDuration ? maxDuration : duration < minDuration ? minDuration : duration;
|
||||
},
|
||||
_initCore$1 = function _initCore() {
|
||||
gsap$1 = _getGSAP$1();
|
||||
|
||||
if (gsap$1) {
|
||||
_parseEase = gsap$1.parseEase;
|
||||
_toArray$1 = gsap$1.utils.toArray;
|
||||
_getUnit$1 = gsap$1.utils.getUnit;
|
||||
_getCache$1 = gsap$1.core.getCache;
|
||||
_clamp = gsap$1.utils.clamp;
|
||||
_getStyleSaver = gsap$1.core.getStyleSaver;
|
||||
|
||||
_reverting = gsap$1.core.reverting || function () {};
|
||||
|
||||
_power3 = _parseEase("power3");
|
||||
_checkPointRatio = _power3(0.05);
|
||||
PropTween = gsap$1.core.PropTween;
|
||||
gsap$1.config({
|
||||
resistance: 100,
|
||||
unitFactors: {
|
||||
time: 1000,
|
||||
totalTime: 1000,
|
||||
progress: 1000,
|
||||
totalProgress: 1000
|
||||
}
|
||||
});
|
||||
_config = gsap$1.config();
|
||||
gsap$1.registerPlugin(VelocityTracker);
|
||||
_coreInitted$1 = 1;
|
||||
}
|
||||
};
|
||||
|
||||
var InertiaPlugin = {
|
||||
version: "3.13.0",
|
||||
name: "inertia",
|
||||
register: function register(core) {
|
||||
gsap$1 = core;
|
||||
|
||||
_initCore$1();
|
||||
},
|
||||
init: function init(target, vars, tween, index, targets) {
|
||||
_coreInitted$1 || _initCore$1();
|
||||
|
||||
var tracker = _getTracker(target);
|
||||
|
||||
if (vars === "auto") {
|
||||
if (!tracker) {
|
||||
console.warn("No inertia tracking on " + target + ". InertiaPlugin.track(target) first.");
|
||||
return;
|
||||
}
|
||||
|
||||
vars = tracker.getAll();
|
||||
}
|
||||
|
||||
this.styles = _getStyleSaver && typeof target.style === "object" && _getStyleSaver(target);
|
||||
this.target = target;
|
||||
this.tween = tween;
|
||||
_processingVars = vars;
|
||||
|
||||
var cache = target._gsap,
|
||||
getVal = cache.get,
|
||||
dur = vars.duration,
|
||||
durIsObj = _isObject(dur),
|
||||
preventOvershoot = vars.preventOvershoot || durIsObj && dur.overshoot === 0,
|
||||
resistance = _getNumOrDefault(vars, "resistance", _config.resistance),
|
||||
duration = _isNumber(dur) ? dur : _calculateTweenDuration(target, vars, durIsObj && dur.max || 10, durIsObj && dur.min || 0.2, durIsObj && "overshoot" in dur ? +dur.overshoot : preventOvershoot ? 0 : 1, true),
|
||||
p,
|
||||
curProp,
|
||||
curVal,
|
||||
unit,
|
||||
velocity,
|
||||
change1,
|
||||
end,
|
||||
change2,
|
||||
linkedProps;
|
||||
|
||||
vars = _processingVars;
|
||||
_processingVars = 0;
|
||||
linkedProps = _processLinkedProps(target, vars, getVal, resistance);
|
||||
|
||||
for (p in vars) {
|
||||
if (!_reservedProps[p]) {
|
||||
curProp = vars[p];
|
||||
_isFunction(curProp) && (curProp = curProp(index, target, targets));
|
||||
|
||||
if (_isNumber(curProp)) {
|
||||
velocity = curProp;
|
||||
} else if (_isObject(curProp) && !isNaN(curProp.velocity)) {
|
||||
velocity = +curProp.velocity;
|
||||
} else {
|
||||
if (tracker && tracker.isTracking(p)) {
|
||||
velocity = tracker.get(p);
|
||||
} else {
|
||||
console.warn("ERROR: No velocity was defined for " + target + " property: " + p);
|
||||
}
|
||||
}
|
||||
|
||||
change1 = _calculateChange(velocity, duration);
|
||||
change2 = 0;
|
||||
curVal = getVal(target, p);
|
||||
unit = _getUnit$1(curVal);
|
||||
curVal = parseFloat(curVal);
|
||||
|
||||
if (_isObject(curProp)) {
|
||||
end = curVal + change1;
|
||||
|
||||
if ("end" in curProp) {
|
||||
curProp = _parseEnd(curProp, linkedProps && p in linkedProps ? linkedProps : end, curProp.max, curProp.min, p, vars.radius, velocity);
|
||||
}
|
||||
|
||||
if ("max" in curProp && +curProp.max < end) {
|
||||
if (preventOvershoot || curProp.preventOvershoot) {
|
||||
change1 = curProp.max - curVal;
|
||||
} else {
|
||||
change2 = curProp.max - curVal - change1;
|
||||
}
|
||||
} else if ("min" in curProp && +curProp.min > end) {
|
||||
if (preventOvershoot || curProp.preventOvershoot) {
|
||||
change1 = curProp.min - curVal;
|
||||
} else {
|
||||
change2 = curProp.min - curVal - change1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this._props.push(p);
|
||||
|
||||
this.styles && this.styles.save(p);
|
||||
this._pt = new PropTween(this._pt, target, p, curVal, 0, _emptyFunc, 0, cache.set(target, p, this));
|
||||
this._pt.u = unit || 0;
|
||||
this._pt.c1 = change1;
|
||||
this._pt.c2 = change2;
|
||||
}
|
||||
}
|
||||
|
||||
tween.duration(duration);
|
||||
return _bonusValidated;
|
||||
},
|
||||
render: function render(ratio, data) {
|
||||
var pt = data._pt;
|
||||
ratio = _power3(data.tween._time / data.tween._dur);
|
||||
|
||||
if (ratio || !_reverting()) {
|
||||
while (pt) {
|
||||
pt.set(pt.t, pt.p, _round$1(pt.s + pt.c1 * ratio + pt.c2 * ratio * ratio) + pt.u, pt.d, ratio);
|
||||
pt = pt._next;
|
||||
}
|
||||
} else {
|
||||
data.styles.revert();
|
||||
}
|
||||
}
|
||||
};
|
||||
"track,untrack,isTracking,getVelocity,getByTarget".split(",").forEach(function (name) {
|
||||
return InertiaPlugin[name] = VelocityTracker[name];
|
||||
});
|
||||
_getGSAP$1() && gsap$1.registerPlugin(InertiaPlugin);
|
||||
|
||||
exports.InertiaPlugin = InertiaPlugin;
|
||||
exports.VelocityTracker = VelocityTracker;
|
||||
exports.default = InertiaPlugin;
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
})));
|
11
network-visualization/node_modules/gsap/dist/InertiaPlugin.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/InertiaPlugin.min.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1
network-visualization/node_modules/gsap/dist/InertiaPlugin.min.js.map
generated
vendored
Normal file
1
network-visualization/node_modules/gsap/dist/InertiaPlugin.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1520
network-visualization/node_modules/gsap/dist/MorphSVGPlugin.js
generated
vendored
Normal file
1520
network-visualization/node_modules/gsap/dist/MorphSVGPlugin.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
11
network-visualization/node_modules/gsap/dist/MorphSVGPlugin.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/MorphSVGPlugin.min.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1
network-visualization/node_modules/gsap/dist/MorphSVGPlugin.min.js.map
generated
vendored
Normal file
1
network-visualization/node_modules/gsap/dist/MorphSVGPlugin.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
3159
network-visualization/node_modules/gsap/dist/MotionPathHelper.js
generated
vendored
Normal file
3159
network-visualization/node_modules/gsap/dist/MotionPathHelper.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
11
network-visualization/node_modules/gsap/dist/MotionPathHelper.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/MotionPathHelper.min.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1
network-visualization/node_modules/gsap/dist/MotionPathHelper.min.js.map
generated
vendored
Normal file
1
network-visualization/node_modules/gsap/dist/MotionPathHelper.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1809
network-visualization/node_modules/gsap/dist/MotionPathPlugin.js
generated
vendored
Normal file
1809
network-visualization/node_modules/gsap/dist/MotionPathPlugin.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
11
network-visualization/node_modules/gsap/dist/MotionPathPlugin.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/MotionPathPlugin.min.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1
network-visualization/node_modules/gsap/dist/MotionPathPlugin.min.js.map
generated
vendored
Normal file
1
network-visualization/node_modules/gsap/dist/MotionPathPlugin.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
716
network-visualization/node_modules/gsap/dist/Observer.js
generated
vendored
Normal file
716
network-visualization/node_modules/gsap/dist/Observer.js
generated
vendored
Normal file
@@ -0,0 +1,716 @@
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(global = global || self, factory(global.window = global.window || {}));
|
||||
}(this, (function (exports) { 'use strict';
|
||||
|
||||
function _defineProperties(target, props) {
|
||||
for (var i = 0; i < props.length; i++) {
|
||||
var descriptor = props[i];
|
||||
descriptor.enumerable = descriptor.enumerable || false;
|
||||
descriptor.configurable = true;
|
||||
if ("value" in descriptor) descriptor.writable = true;
|
||||
Object.defineProperty(target, descriptor.key, descriptor);
|
||||
}
|
||||
}
|
||||
|
||||
function _createClass(Constructor, protoProps, staticProps) {
|
||||
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||
return Constructor;
|
||||
}
|
||||
|
||||
/*!
|
||||
* Observer 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2008-2025, GreenSock. All rights reserved.
|
||||
* Subject to the terms at https://gsap.com/standard-license
|
||||
* @author: Jack Doyle, jack@greensock.com
|
||||
*/
|
||||
var gsap,
|
||||
_coreInitted,
|
||||
_clamp,
|
||||
_win,
|
||||
_doc,
|
||||
_docEl,
|
||||
_body,
|
||||
_isTouch,
|
||||
_pointerType,
|
||||
ScrollTrigger,
|
||||
_root,
|
||||
_normalizer,
|
||||
_eventTypes,
|
||||
_context,
|
||||
_getGSAP = function _getGSAP() {
|
||||
return gsap || typeof window !== "undefined" && (gsap = window.gsap) && gsap.registerPlugin && gsap;
|
||||
},
|
||||
_startup = 1,
|
||||
_observers = [];
|
||||
exports._scrollers = [];
|
||||
exports._proxies = [];
|
||||
var _getTime = Date.now,
|
||||
_bridge = function _bridge(name, value) {
|
||||
return value;
|
||||
},
|
||||
_integrate = function _integrate() {
|
||||
var core = ScrollTrigger.core,
|
||||
data = core.bridge || {},
|
||||
scrollers = core._scrollers,
|
||||
proxies = core._proxies;
|
||||
scrollers.push.apply(scrollers, exports._scrollers);
|
||||
proxies.push.apply(proxies, exports._proxies);
|
||||
exports._scrollers = scrollers;
|
||||
exports._proxies = proxies;
|
||||
|
||||
_bridge = function _bridge(name, value) {
|
||||
return data[name](value);
|
||||
};
|
||||
},
|
||||
_getProxyProp = function _getProxyProp(element, property) {
|
||||
return ~exports._proxies.indexOf(element) && exports._proxies[exports._proxies.indexOf(element) + 1][property];
|
||||
},
|
||||
_isViewport = function _isViewport(el) {
|
||||
return !!~_root.indexOf(el);
|
||||
},
|
||||
_addListener = function _addListener(element, type, func, passive, capture) {
|
||||
return element.addEventListener(type, func, {
|
||||
passive: passive !== false,
|
||||
capture: !!capture
|
||||
});
|
||||
},
|
||||
_removeListener = function _removeListener(element, type, func, capture) {
|
||||
return element.removeEventListener(type, func, !!capture);
|
||||
},
|
||||
_scrollLeft = "scrollLeft",
|
||||
_scrollTop = "scrollTop",
|
||||
_onScroll = function _onScroll() {
|
||||
return _normalizer && _normalizer.isPressed || exports._scrollers.cache++;
|
||||
},
|
||||
_scrollCacheFunc = function _scrollCacheFunc(f, doNotCache) {
|
||||
var cachingFunc = function cachingFunc(value) {
|
||||
if (value || value === 0) {
|
||||
_startup && (_win.history.scrollRestoration = "manual");
|
||||
var isNormalizing = _normalizer && _normalizer.isPressed;
|
||||
value = cachingFunc.v = Math.round(value) || (_normalizer && _normalizer.iOS ? 1 : 0);
|
||||
f(value);
|
||||
cachingFunc.cacheID = exports._scrollers.cache;
|
||||
isNormalizing && _bridge("ss", value);
|
||||
} else if (doNotCache || exports._scrollers.cache !== cachingFunc.cacheID || _bridge("ref")) {
|
||||
cachingFunc.cacheID = exports._scrollers.cache;
|
||||
cachingFunc.v = f();
|
||||
}
|
||||
|
||||
return cachingFunc.v + cachingFunc.offset;
|
||||
};
|
||||
|
||||
cachingFunc.offset = 0;
|
||||
return f && cachingFunc;
|
||||
},
|
||||
_horizontal = {
|
||||
s: _scrollLeft,
|
||||
p: "left",
|
||||
p2: "Left",
|
||||
os: "right",
|
||||
os2: "Right",
|
||||
d: "width",
|
||||
d2: "Width",
|
||||
a: "x",
|
||||
sc: _scrollCacheFunc(function (value) {
|
||||
return arguments.length ? _win.scrollTo(value, _vertical.sc()) : _win.pageXOffset || _doc[_scrollLeft] || _docEl[_scrollLeft] || _body[_scrollLeft] || 0;
|
||||
})
|
||||
},
|
||||
_vertical = {
|
||||
s: _scrollTop,
|
||||
p: "top",
|
||||
p2: "Top",
|
||||
os: "bottom",
|
||||
os2: "Bottom",
|
||||
d: "height",
|
||||
d2: "Height",
|
||||
a: "y",
|
||||
op: _horizontal,
|
||||
sc: _scrollCacheFunc(function (value) {
|
||||
return arguments.length ? _win.scrollTo(_horizontal.sc(), value) : _win.pageYOffset || _doc[_scrollTop] || _docEl[_scrollTop] || _body[_scrollTop] || 0;
|
||||
})
|
||||
},
|
||||
_getTarget = function _getTarget(t, self) {
|
||||
return (self && self._ctx && self._ctx.selector || gsap.utils.toArray)(t)[0] || (typeof t === "string" && gsap.config().nullTargetWarn !== false ? console.warn("Element not found:", t) : null);
|
||||
},
|
||||
_isWithin = function _isWithin(element, list) {
|
||||
var i = list.length;
|
||||
|
||||
while (i--) {
|
||||
if (list[i] === element || list[i].contains(element)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
},
|
||||
_getScrollFunc = function _getScrollFunc(element, _ref) {
|
||||
var s = _ref.s,
|
||||
sc = _ref.sc;
|
||||
_isViewport(element) && (element = _doc.scrollingElement || _docEl);
|
||||
|
||||
var i = exports._scrollers.indexOf(element),
|
||||
offset = sc === _vertical.sc ? 1 : 2;
|
||||
|
||||
!~i && (i = exports._scrollers.push(element) - 1);
|
||||
exports._scrollers[i + offset] || _addListener(element, "scroll", _onScroll);
|
||||
var prev = exports._scrollers[i + offset],
|
||||
func = prev || (exports._scrollers[i + offset] = _scrollCacheFunc(_getProxyProp(element, s), true) || (_isViewport(element) ? sc : _scrollCacheFunc(function (value) {
|
||||
return arguments.length ? element[s] = value : element[s];
|
||||
})));
|
||||
func.target = element;
|
||||
prev || (func.smooth = gsap.getProperty(element, "scrollBehavior") === "smooth");
|
||||
return func;
|
||||
},
|
||||
_getVelocityProp = function _getVelocityProp(value, minTimeRefresh, useDelta) {
|
||||
var v1 = value,
|
||||
v2 = value,
|
||||
t1 = _getTime(),
|
||||
t2 = t1,
|
||||
min = minTimeRefresh || 50,
|
||||
dropToZeroTime = Math.max(500, min * 3),
|
||||
update = function update(value, force) {
|
||||
var t = _getTime();
|
||||
|
||||
if (force || t - t1 > min) {
|
||||
v2 = v1;
|
||||
v1 = value;
|
||||
t2 = t1;
|
||||
t1 = t;
|
||||
} else if (useDelta) {
|
||||
v1 += value;
|
||||
} else {
|
||||
v1 = v2 + (value - v2) / (t - t2) * (t1 - t2);
|
||||
}
|
||||
},
|
||||
reset = function reset() {
|
||||
v2 = v1 = useDelta ? 0 : v1;
|
||||
t2 = t1 = 0;
|
||||
},
|
||||
getVelocity = function getVelocity(latestValue) {
|
||||
var tOld = t2,
|
||||
vOld = v2,
|
||||
t = _getTime();
|
||||
|
||||
(latestValue || latestValue === 0) && latestValue !== v1 && update(latestValue);
|
||||
return t1 === t2 || t - t2 > dropToZeroTime ? 0 : (v1 + (useDelta ? vOld : -vOld)) / ((useDelta ? t : t1) - tOld) * 1000;
|
||||
};
|
||||
|
||||
return {
|
||||
update: update,
|
||||
reset: reset,
|
||||
getVelocity: getVelocity
|
||||
};
|
||||
},
|
||||
_getEvent = function _getEvent(e, preventDefault) {
|
||||
preventDefault && !e._gsapAllow && e.preventDefault();
|
||||
return e.changedTouches ? e.changedTouches[0] : e;
|
||||
},
|
||||
_getAbsoluteMax = function _getAbsoluteMax(a) {
|
||||
var max = Math.max.apply(Math, a),
|
||||
min = Math.min.apply(Math, a);
|
||||
return Math.abs(max) >= Math.abs(min) ? max : min;
|
||||
},
|
||||
_setScrollTrigger = function _setScrollTrigger() {
|
||||
ScrollTrigger = gsap.core.globals().ScrollTrigger;
|
||||
ScrollTrigger && ScrollTrigger.core && _integrate();
|
||||
},
|
||||
_initCore = function _initCore(core) {
|
||||
gsap = core || _getGSAP();
|
||||
|
||||
if (!_coreInitted && gsap && typeof document !== "undefined" && document.body) {
|
||||
_win = window;
|
||||
_doc = document;
|
||||
_docEl = _doc.documentElement;
|
||||
_body = _doc.body;
|
||||
_root = [_win, _doc, _docEl, _body];
|
||||
_clamp = gsap.utils.clamp;
|
||||
|
||||
_context = gsap.core.context || function () {};
|
||||
|
||||
_pointerType = "onpointerenter" in _body ? "pointer" : "mouse";
|
||||
_isTouch = Observer.isTouch = _win.matchMedia && _win.matchMedia("(hover: none), (pointer: coarse)").matches ? 1 : "ontouchstart" in _win || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0 ? 2 : 0;
|
||||
_eventTypes = Observer.eventTypes = ("ontouchstart" in _docEl ? "touchstart,touchmove,touchcancel,touchend" : !("onpointerdown" in _docEl) ? "mousedown,mousemove,mouseup,mouseup" : "pointerdown,pointermove,pointercancel,pointerup").split(",");
|
||||
setTimeout(function () {
|
||||
return _startup = 0;
|
||||
}, 500);
|
||||
|
||||
_setScrollTrigger();
|
||||
|
||||
_coreInitted = 1;
|
||||
}
|
||||
|
||||
return _coreInitted;
|
||||
};
|
||||
|
||||
_horizontal.op = _vertical;
|
||||
exports._scrollers.cache = 0;
|
||||
var Observer = function () {
|
||||
function Observer(vars) {
|
||||
this.init(vars);
|
||||
}
|
||||
|
||||
var _proto = Observer.prototype;
|
||||
|
||||
_proto.init = function init(vars) {
|
||||
_coreInitted || _initCore(gsap) || console.warn("Please gsap.registerPlugin(Observer)");
|
||||
ScrollTrigger || _setScrollTrigger();
|
||||
var tolerance = vars.tolerance,
|
||||
dragMinimum = vars.dragMinimum,
|
||||
type = vars.type,
|
||||
target = vars.target,
|
||||
lineHeight = vars.lineHeight,
|
||||
debounce = vars.debounce,
|
||||
preventDefault = vars.preventDefault,
|
||||
onStop = vars.onStop,
|
||||
onStopDelay = vars.onStopDelay,
|
||||
ignore = vars.ignore,
|
||||
wheelSpeed = vars.wheelSpeed,
|
||||
event = vars.event,
|
||||
onDragStart = vars.onDragStart,
|
||||
onDragEnd = vars.onDragEnd,
|
||||
onDrag = vars.onDrag,
|
||||
onPress = vars.onPress,
|
||||
onRelease = vars.onRelease,
|
||||
onRight = vars.onRight,
|
||||
onLeft = vars.onLeft,
|
||||
onUp = vars.onUp,
|
||||
onDown = vars.onDown,
|
||||
onChangeX = vars.onChangeX,
|
||||
onChangeY = vars.onChangeY,
|
||||
onChange = vars.onChange,
|
||||
onToggleX = vars.onToggleX,
|
||||
onToggleY = vars.onToggleY,
|
||||
onHover = vars.onHover,
|
||||
onHoverEnd = vars.onHoverEnd,
|
||||
onMove = vars.onMove,
|
||||
ignoreCheck = vars.ignoreCheck,
|
||||
isNormalizer = vars.isNormalizer,
|
||||
onGestureStart = vars.onGestureStart,
|
||||
onGestureEnd = vars.onGestureEnd,
|
||||
onWheel = vars.onWheel,
|
||||
onEnable = vars.onEnable,
|
||||
onDisable = vars.onDisable,
|
||||
onClick = vars.onClick,
|
||||
scrollSpeed = vars.scrollSpeed,
|
||||
capture = vars.capture,
|
||||
allowClicks = vars.allowClicks,
|
||||
lockAxis = vars.lockAxis,
|
||||
onLockAxis = vars.onLockAxis;
|
||||
this.target = target = _getTarget(target) || _docEl;
|
||||
this.vars = vars;
|
||||
ignore && (ignore = gsap.utils.toArray(ignore));
|
||||
tolerance = tolerance || 1e-9;
|
||||
dragMinimum = dragMinimum || 0;
|
||||
wheelSpeed = wheelSpeed || 1;
|
||||
scrollSpeed = scrollSpeed || 1;
|
||||
type = type || "wheel,touch,pointer";
|
||||
debounce = debounce !== false;
|
||||
lineHeight || (lineHeight = parseFloat(_win.getComputedStyle(_body).lineHeight) || 22);
|
||||
|
||||
var id,
|
||||
onStopDelayedCall,
|
||||
dragged,
|
||||
moved,
|
||||
wheeled,
|
||||
locked,
|
||||
axis,
|
||||
self = this,
|
||||
prevDeltaX = 0,
|
||||
prevDeltaY = 0,
|
||||
passive = vars.passive || !preventDefault && vars.passive !== false,
|
||||
scrollFuncX = _getScrollFunc(target, _horizontal),
|
||||
scrollFuncY = _getScrollFunc(target, _vertical),
|
||||
scrollX = scrollFuncX(),
|
||||
scrollY = scrollFuncY(),
|
||||
limitToTouch = ~type.indexOf("touch") && !~type.indexOf("pointer") && _eventTypes[0] === "pointerdown",
|
||||
isViewport = _isViewport(target),
|
||||
ownerDoc = target.ownerDocument || _doc,
|
||||
deltaX = [0, 0, 0],
|
||||
deltaY = [0, 0, 0],
|
||||
onClickTime = 0,
|
||||
clickCapture = function clickCapture() {
|
||||
return onClickTime = _getTime();
|
||||
},
|
||||
_ignoreCheck = function _ignoreCheck(e, isPointerOrTouch) {
|
||||
return (self.event = e) && ignore && _isWithin(e.target, ignore) || isPointerOrTouch && limitToTouch && e.pointerType !== "touch" || ignoreCheck && ignoreCheck(e, isPointerOrTouch);
|
||||
},
|
||||
onStopFunc = function onStopFunc() {
|
||||
self._vx.reset();
|
||||
|
||||
self._vy.reset();
|
||||
|
||||
onStopDelayedCall.pause();
|
||||
onStop && onStop(self);
|
||||
},
|
||||
update = function update() {
|
||||
var dx = self.deltaX = _getAbsoluteMax(deltaX),
|
||||
dy = self.deltaY = _getAbsoluteMax(deltaY),
|
||||
changedX = Math.abs(dx) >= tolerance,
|
||||
changedY = Math.abs(dy) >= tolerance;
|
||||
|
||||
onChange && (changedX || changedY) && onChange(self, dx, dy, deltaX, deltaY);
|
||||
|
||||
if (changedX) {
|
||||
onRight && self.deltaX > 0 && onRight(self);
|
||||
onLeft && self.deltaX < 0 && onLeft(self);
|
||||
onChangeX && onChangeX(self);
|
||||
onToggleX && self.deltaX < 0 !== prevDeltaX < 0 && onToggleX(self);
|
||||
prevDeltaX = self.deltaX;
|
||||
deltaX[0] = deltaX[1] = deltaX[2] = 0;
|
||||
}
|
||||
|
||||
if (changedY) {
|
||||
onDown && self.deltaY > 0 && onDown(self);
|
||||
onUp && self.deltaY < 0 && onUp(self);
|
||||
onChangeY && onChangeY(self);
|
||||
onToggleY && self.deltaY < 0 !== prevDeltaY < 0 && onToggleY(self);
|
||||
prevDeltaY = self.deltaY;
|
||||
deltaY[0] = deltaY[1] = deltaY[2] = 0;
|
||||
}
|
||||
|
||||
if (moved || dragged) {
|
||||
onMove && onMove(self);
|
||||
|
||||
if (dragged) {
|
||||
onDragStart && dragged === 1 && onDragStart(self);
|
||||
onDrag && onDrag(self);
|
||||
dragged = 0;
|
||||
}
|
||||
|
||||
moved = false;
|
||||
}
|
||||
|
||||
locked && !(locked = false) && onLockAxis && onLockAxis(self);
|
||||
|
||||
if (wheeled) {
|
||||
onWheel(self);
|
||||
wheeled = false;
|
||||
}
|
||||
|
||||
id = 0;
|
||||
},
|
||||
onDelta = function onDelta(x, y, index) {
|
||||
deltaX[index] += x;
|
||||
deltaY[index] += y;
|
||||
|
||||
self._vx.update(x);
|
||||
|
||||
self._vy.update(y);
|
||||
|
||||
debounce ? id || (id = requestAnimationFrame(update)) : update();
|
||||
},
|
||||
onTouchOrPointerDelta = function onTouchOrPointerDelta(x, y) {
|
||||
if (lockAxis && !axis) {
|
||||
self.axis = axis = Math.abs(x) > Math.abs(y) ? "x" : "y";
|
||||
locked = true;
|
||||
}
|
||||
|
||||
if (axis !== "y") {
|
||||
deltaX[2] += x;
|
||||
|
||||
self._vx.update(x, true);
|
||||
}
|
||||
|
||||
if (axis !== "x") {
|
||||
deltaY[2] += y;
|
||||
|
||||
self._vy.update(y, true);
|
||||
}
|
||||
|
||||
debounce ? id || (id = requestAnimationFrame(update)) : update();
|
||||
},
|
||||
_onDrag = function _onDrag(e) {
|
||||
if (_ignoreCheck(e, 1)) {
|
||||
return;
|
||||
}
|
||||
|
||||
e = _getEvent(e, preventDefault);
|
||||
var x = e.clientX,
|
||||
y = e.clientY,
|
||||
dx = x - self.x,
|
||||
dy = y - self.y,
|
||||
isDragging = self.isDragging;
|
||||
self.x = x;
|
||||
self.y = y;
|
||||
|
||||
if (isDragging || (dx || dy) && (Math.abs(self.startX - x) >= dragMinimum || Math.abs(self.startY - y) >= dragMinimum)) {
|
||||
dragged = isDragging ? 2 : 1;
|
||||
isDragging || (self.isDragging = true);
|
||||
onTouchOrPointerDelta(dx, dy);
|
||||
}
|
||||
},
|
||||
_onPress = self.onPress = function (e) {
|
||||
if (_ignoreCheck(e, 1) || e && e.button) {
|
||||
return;
|
||||
}
|
||||
|
||||
self.axis = axis = null;
|
||||
onStopDelayedCall.pause();
|
||||
self.isPressed = true;
|
||||
e = _getEvent(e);
|
||||
prevDeltaX = prevDeltaY = 0;
|
||||
self.startX = self.x = e.clientX;
|
||||
self.startY = self.y = e.clientY;
|
||||
|
||||
self._vx.reset();
|
||||
|
||||
self._vy.reset();
|
||||
|
||||
_addListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, passive, true);
|
||||
|
||||
self.deltaX = self.deltaY = 0;
|
||||
onPress && onPress(self);
|
||||
},
|
||||
_onRelease = self.onRelease = function (e) {
|
||||
if (_ignoreCheck(e, 1)) {
|
||||
return;
|
||||
}
|
||||
|
||||
_removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true);
|
||||
|
||||
var isTrackingDrag = !isNaN(self.y - self.startY),
|
||||
wasDragging = self.isDragging,
|
||||
isDragNotClick = wasDragging && (Math.abs(self.x - self.startX) > 3 || Math.abs(self.y - self.startY) > 3),
|
||||
eventData = _getEvent(e);
|
||||
|
||||
if (!isDragNotClick && isTrackingDrag) {
|
||||
self._vx.reset();
|
||||
|
||||
self._vy.reset();
|
||||
|
||||
if (preventDefault && allowClicks) {
|
||||
gsap.delayedCall(0.08, function () {
|
||||
if (_getTime() - onClickTime > 300 && !e.defaultPrevented) {
|
||||
if (e.target.click) {
|
||||
e.target.click();
|
||||
} else if (ownerDoc.createEvent) {
|
||||
var syntheticEvent = ownerDoc.createEvent("MouseEvents");
|
||||
syntheticEvent.initMouseEvent("click", true, true, _win, 1, eventData.screenX, eventData.screenY, eventData.clientX, eventData.clientY, false, false, false, false, 0, null);
|
||||
e.target.dispatchEvent(syntheticEvent);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
self.isDragging = self.isGesturing = self.isPressed = false;
|
||||
onStop && wasDragging && !isNormalizer && onStopDelayedCall.restart(true);
|
||||
dragged && update();
|
||||
onDragEnd && wasDragging && onDragEnd(self);
|
||||
onRelease && onRelease(self, isDragNotClick);
|
||||
},
|
||||
_onGestureStart = function _onGestureStart(e) {
|
||||
return e.touches && e.touches.length > 1 && (self.isGesturing = true) && onGestureStart(e, self.isDragging);
|
||||
},
|
||||
_onGestureEnd = function _onGestureEnd() {
|
||||
return (self.isGesturing = false) || onGestureEnd(self);
|
||||
},
|
||||
onScroll = function onScroll(e) {
|
||||
if (_ignoreCheck(e)) {
|
||||
return;
|
||||
}
|
||||
|
||||
var x = scrollFuncX(),
|
||||
y = scrollFuncY();
|
||||
onDelta((x - scrollX) * scrollSpeed, (y - scrollY) * scrollSpeed, 1);
|
||||
scrollX = x;
|
||||
scrollY = y;
|
||||
onStop && onStopDelayedCall.restart(true);
|
||||
},
|
||||
_onWheel = function _onWheel(e) {
|
||||
if (_ignoreCheck(e)) {
|
||||
return;
|
||||
}
|
||||
|
||||
e = _getEvent(e, preventDefault);
|
||||
onWheel && (wheeled = true);
|
||||
var multiplier = (e.deltaMode === 1 ? lineHeight : e.deltaMode === 2 ? _win.innerHeight : 1) * wheelSpeed;
|
||||
onDelta(e.deltaX * multiplier, e.deltaY * multiplier, 0);
|
||||
onStop && !isNormalizer && onStopDelayedCall.restart(true);
|
||||
},
|
||||
_onMove = function _onMove(e) {
|
||||
if (_ignoreCheck(e)) {
|
||||
return;
|
||||
}
|
||||
|
||||
var x = e.clientX,
|
||||
y = e.clientY,
|
||||
dx = x - self.x,
|
||||
dy = y - self.y;
|
||||
self.x = x;
|
||||
self.y = y;
|
||||
moved = true;
|
||||
onStop && onStopDelayedCall.restart(true);
|
||||
(dx || dy) && onTouchOrPointerDelta(dx, dy);
|
||||
},
|
||||
_onHover = function _onHover(e) {
|
||||
self.event = e;
|
||||
onHover(self);
|
||||
},
|
||||
_onHoverEnd = function _onHoverEnd(e) {
|
||||
self.event = e;
|
||||
onHoverEnd(self);
|
||||
},
|
||||
_onClick = function _onClick(e) {
|
||||
return _ignoreCheck(e) || _getEvent(e, preventDefault) && onClick(self);
|
||||
};
|
||||
|
||||
onStopDelayedCall = self._dc = gsap.delayedCall(onStopDelay || 0.25, onStopFunc).pause();
|
||||
self.deltaX = self.deltaY = 0;
|
||||
self._vx = _getVelocityProp(0, 50, true);
|
||||
self._vy = _getVelocityProp(0, 50, true);
|
||||
self.scrollX = scrollFuncX;
|
||||
self.scrollY = scrollFuncY;
|
||||
self.isDragging = self.isGesturing = self.isPressed = false;
|
||||
|
||||
_context(this);
|
||||
|
||||
self.enable = function (e) {
|
||||
if (!self.isEnabled) {
|
||||
_addListener(isViewport ? ownerDoc : target, "scroll", _onScroll);
|
||||
|
||||
type.indexOf("scroll") >= 0 && _addListener(isViewport ? ownerDoc : target, "scroll", onScroll, passive, capture);
|
||||
type.indexOf("wheel") >= 0 && _addListener(target, "wheel", _onWheel, passive, capture);
|
||||
|
||||
if (type.indexOf("touch") >= 0 && _isTouch || type.indexOf("pointer") >= 0) {
|
||||
_addListener(target, _eventTypes[0], _onPress, passive, capture);
|
||||
|
||||
_addListener(ownerDoc, _eventTypes[2], _onRelease);
|
||||
|
||||
_addListener(ownerDoc, _eventTypes[3], _onRelease);
|
||||
|
||||
allowClicks && _addListener(target, "click", clickCapture, true, true);
|
||||
onClick && _addListener(target, "click", _onClick);
|
||||
onGestureStart && _addListener(ownerDoc, "gesturestart", _onGestureStart);
|
||||
onGestureEnd && _addListener(ownerDoc, "gestureend", _onGestureEnd);
|
||||
onHover && _addListener(target, _pointerType + "enter", _onHover);
|
||||
onHoverEnd && _addListener(target, _pointerType + "leave", _onHoverEnd);
|
||||
onMove && _addListener(target, _pointerType + "move", _onMove);
|
||||
}
|
||||
|
||||
self.isEnabled = true;
|
||||
self.isDragging = self.isGesturing = self.isPressed = moved = dragged = false;
|
||||
|
||||
self._vx.reset();
|
||||
|
||||
self._vy.reset();
|
||||
|
||||
scrollX = scrollFuncX();
|
||||
scrollY = scrollFuncY();
|
||||
e && e.type && _onPress(e);
|
||||
onEnable && onEnable(self);
|
||||
}
|
||||
|
||||
return self;
|
||||
};
|
||||
|
||||
self.disable = function () {
|
||||
if (self.isEnabled) {
|
||||
_observers.filter(function (o) {
|
||||
return o !== self && _isViewport(o.target);
|
||||
}).length || _removeListener(isViewport ? ownerDoc : target, "scroll", _onScroll);
|
||||
|
||||
if (self.isPressed) {
|
||||
self._vx.reset();
|
||||
|
||||
self._vy.reset();
|
||||
|
||||
_removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true);
|
||||
}
|
||||
|
||||
_removeListener(isViewport ? ownerDoc : target, "scroll", onScroll, capture);
|
||||
|
||||
_removeListener(target, "wheel", _onWheel, capture);
|
||||
|
||||
_removeListener(target, _eventTypes[0], _onPress, capture);
|
||||
|
||||
_removeListener(ownerDoc, _eventTypes[2], _onRelease);
|
||||
|
||||
_removeListener(ownerDoc, _eventTypes[3], _onRelease);
|
||||
|
||||
_removeListener(target, "click", clickCapture, true);
|
||||
|
||||
_removeListener(target, "click", _onClick);
|
||||
|
||||
_removeListener(ownerDoc, "gesturestart", _onGestureStart);
|
||||
|
||||
_removeListener(ownerDoc, "gestureend", _onGestureEnd);
|
||||
|
||||
_removeListener(target, _pointerType + "enter", _onHover);
|
||||
|
||||
_removeListener(target, _pointerType + "leave", _onHoverEnd);
|
||||
|
||||
_removeListener(target, _pointerType + "move", _onMove);
|
||||
|
||||
self.isEnabled = self.isPressed = self.isDragging = false;
|
||||
onDisable && onDisable(self);
|
||||
}
|
||||
};
|
||||
|
||||
self.kill = self.revert = function () {
|
||||
self.disable();
|
||||
|
||||
var i = _observers.indexOf(self);
|
||||
|
||||
i >= 0 && _observers.splice(i, 1);
|
||||
_normalizer === self && (_normalizer = 0);
|
||||
};
|
||||
|
||||
_observers.push(self);
|
||||
|
||||
isNormalizer && _isViewport(target) && (_normalizer = self);
|
||||
self.enable(event);
|
||||
};
|
||||
|
||||
_createClass(Observer, [{
|
||||
key: "velocityX",
|
||||
get: function get() {
|
||||
return this._vx.getVelocity();
|
||||
}
|
||||
}, {
|
||||
key: "velocityY",
|
||||
get: function get() {
|
||||
return this._vy.getVelocity();
|
||||
}
|
||||
}]);
|
||||
|
||||
return Observer;
|
||||
}();
|
||||
Observer.version = "3.13.0";
|
||||
|
||||
Observer.create = function (vars) {
|
||||
return new Observer(vars);
|
||||
};
|
||||
|
||||
Observer.register = _initCore;
|
||||
|
||||
Observer.getAll = function () {
|
||||
return _observers.slice();
|
||||
};
|
||||
|
||||
Observer.getById = function (id) {
|
||||
return _observers.filter(function (o) {
|
||||
return o.vars.id === id;
|
||||
})[0];
|
||||
};
|
||||
|
||||
_getGSAP() && gsap.registerPlugin(Observer);
|
||||
|
||||
exports.Observer = Observer;
|
||||
exports._getProxyProp = _getProxyProp;
|
||||
exports._getScrollFunc = _getScrollFunc;
|
||||
exports._getTarget = _getTarget;
|
||||
exports._getVelocityProp = _getVelocityProp;
|
||||
exports._horizontal = _horizontal;
|
||||
exports._isViewport = _isViewport;
|
||||
exports._vertical = _vertical;
|
||||
exports.default = Observer;
|
||||
|
||||
if (typeof(window) === 'undefined' || window !== exports) {Object.defineProperty(exports, '__esModule', { value: true });} else {delete window.default;}
|
||||
|
||||
})));
|
11
network-visualization/node_modules/gsap/dist/Observer.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/Observer.min.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1
network-visualization/node_modules/gsap/dist/Observer.min.js.map
generated
vendored
Normal file
1
network-visualization/node_modules/gsap/dist/Observer.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
167
network-visualization/node_modules/gsap/dist/Physics2DPlugin.js
generated
vendored
Normal file
167
network-visualization/node_modules/gsap/dist/Physics2DPlugin.js
generated
vendored
Normal file
@@ -0,0 +1,167 @@
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(global = global || self, factory(global.window = global.window || {}));
|
||||
}(this, (function (exports) { 'use strict';
|
||||
|
||||
/*!
|
||||
* Physics2DPlugin 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2008-2025, GreenSock. All rights reserved.
|
||||
* Subject to the terms at https://gsap.com/standard-license
|
||||
* @author: Jack Doyle, jack@greensock.com
|
||||
*/
|
||||
var gsap,
|
||||
_coreInitted,
|
||||
_getUnit,
|
||||
_getStyleSaver,
|
||||
_reverting,
|
||||
_DEG2RAD = Math.PI / 180,
|
||||
_getGSAP = function _getGSAP() {
|
||||
return gsap || typeof window !== "undefined" && (gsap = window.gsap) && gsap.registerPlugin && gsap;
|
||||
},
|
||||
_round = function _round(value) {
|
||||
return Math.round(value * 10000) / 10000;
|
||||
},
|
||||
_initCore = function _initCore(core) {
|
||||
gsap = core || _getGSAP();
|
||||
|
||||
if (!_coreInitted) {
|
||||
_getUnit = gsap.utils.getUnit;
|
||||
_getStyleSaver = gsap.core.getStyleSaver;
|
||||
|
||||
_reverting = gsap.core.reverting || function () {};
|
||||
|
||||
_coreInitted = 1;
|
||||
}
|
||||
};
|
||||
|
||||
var PhysicsProp = function PhysicsProp(target, p, velocity, acceleration, stepsPerTimeUnit) {
|
||||
var cache = target._gsap,
|
||||
curVal = cache.get(target, p);
|
||||
this.p = p;
|
||||
this.set = cache.set(target, p);
|
||||
this.s = this.val = parseFloat(curVal);
|
||||
this.u = _getUnit(curVal) || 0;
|
||||
this.vel = velocity || 0;
|
||||
this.v = this.vel / stepsPerTimeUnit;
|
||||
|
||||
if (acceleration || acceleration === 0) {
|
||||
this.acc = acceleration;
|
||||
this.a = this.acc / (stepsPerTimeUnit * stepsPerTimeUnit);
|
||||
} else {
|
||||
this.acc = this.a = 0;
|
||||
}
|
||||
};
|
||||
|
||||
var Physics2DPlugin = {
|
||||
version: "3.13.0",
|
||||
name: "physics2D",
|
||||
register: _initCore,
|
||||
init: function init(target, value, tween) {
|
||||
_coreInitted || _initCore();
|
||||
var data = this,
|
||||
angle = +value.angle || 0,
|
||||
velocity = +value.velocity || 0,
|
||||
acceleration = +value.acceleration || 0,
|
||||
xProp = value.xProp || "x",
|
||||
yProp = value.yProp || "y",
|
||||
aAngle = value.accelerationAngle || value.accelerationAngle === 0 ? +value.accelerationAngle : angle;
|
||||
data.styles = _getStyleSaver && _getStyleSaver(target, value.xProp && value.xProp !== "x" ? value.xProp + "," + value.yProp : "transform");
|
||||
data.target = target;
|
||||
data.tween = tween;
|
||||
data.step = 0;
|
||||
data.sps = 30;
|
||||
|
||||
if (value.gravity) {
|
||||
acceleration = +value.gravity;
|
||||
aAngle = 90;
|
||||
}
|
||||
|
||||
angle *= _DEG2RAD;
|
||||
aAngle *= _DEG2RAD;
|
||||
data.fr = 1 - (+value.friction || 0);
|
||||
|
||||
data._props.push(xProp, yProp);
|
||||
|
||||
data.xp = new PhysicsProp(target, xProp, Math.cos(angle) * velocity, Math.cos(aAngle) * acceleration, data.sps);
|
||||
data.yp = new PhysicsProp(target, yProp, Math.sin(angle) * velocity, Math.sin(aAngle) * acceleration, data.sps);
|
||||
data.skipX = data.skipY = 0;
|
||||
},
|
||||
render: function render(ratio, data) {
|
||||
var xp = data.xp,
|
||||
yp = data.yp,
|
||||
tween = data.tween,
|
||||
target = data.target,
|
||||
step = data.step,
|
||||
sps = data.sps,
|
||||
fr = data.fr,
|
||||
skipX = data.skipX,
|
||||
skipY = data.skipY,
|
||||
time = tween._from ? tween._dur - tween._time : tween._time,
|
||||
x,
|
||||
y,
|
||||
tt,
|
||||
steps,
|
||||
remainder,
|
||||
i;
|
||||
|
||||
if (tween._time || !_reverting()) {
|
||||
if (fr === 1) {
|
||||
tt = time * time * 0.5;
|
||||
x = xp.s + xp.vel * time + xp.acc * tt;
|
||||
y = yp.s + yp.vel * time + yp.acc * tt;
|
||||
} else {
|
||||
time *= sps;
|
||||
steps = i = (time | 0) - step;
|
||||
|
||||
if (i < 0) {
|
||||
xp.v = xp.vel / sps;
|
||||
yp.v = yp.vel / sps;
|
||||
xp.val = xp.s;
|
||||
yp.val = yp.s;
|
||||
data.step = 0;
|
||||
steps = i = time | 0;
|
||||
}
|
||||
|
||||
remainder = time % 1 * fr;
|
||||
|
||||
while (i--) {
|
||||
xp.v += xp.a;
|
||||
yp.v += yp.a;
|
||||
xp.v *= fr;
|
||||
yp.v *= fr;
|
||||
xp.val += xp.v;
|
||||
yp.val += yp.v;
|
||||
}
|
||||
|
||||
x = xp.val + xp.v * remainder;
|
||||
y = yp.val + yp.v * remainder;
|
||||
data.step += steps;
|
||||
}
|
||||
|
||||
skipX || xp.set(target, xp.p, _round(x) + xp.u);
|
||||
skipY || yp.set(target, yp.p, _round(y) + yp.u);
|
||||
} else {
|
||||
data.styles.revert();
|
||||
}
|
||||
},
|
||||
kill: function kill(property) {
|
||||
if (this.xp.p === property) {
|
||||
this.skipX = 1;
|
||||
}
|
||||
|
||||
if (this.yp.p === property) {
|
||||
this.skipY = 1;
|
||||
}
|
||||
}
|
||||
};
|
||||
_getGSAP() && gsap.registerPlugin(Physics2DPlugin);
|
||||
|
||||
exports.Physics2DPlugin = Physics2DPlugin;
|
||||
exports.default = Physics2DPlugin;
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
})));
|
11
network-visualization/node_modules/gsap/dist/Physics2DPlugin.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/Physics2DPlugin.min.js
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
/*!
|
||||
* Physics2DPlugin 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2025, GreenSock. All rights reserved.
|
||||
* Subject to the terms at https://gsap.com/standard-license.
|
||||
* @author: Jack Doyle, jack@greensock.com
|
||||
*/
|
||||
|
||||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).window=e.window||{})}(this,function(e){"use strict";function j(){return t||"undefined"!=typeof window&&(t=window.gsap)&&t.registerPlugin&&t}function k(e){return Math.round(1e4*e)/1e4}function l(e){t=e||j(),v||(o=t.utils.getUnit,f=t.core.getStyleSaver,w=t.core.reverting||function(){},v=1)}function m(e,t,i,s,n){var r=e._gsap,a=r.get(e,t);this.p=t,this.set=r.set(e,t),this.s=this.val=parseFloat(a),this.u=o(a)||0,this.vel=i||0,this.v=this.vel/n,s||0===s?(this.acc=s,this.a=this.acc/(n*n)):this.acc=this.a=0}var t,v,o,f,w,u=Math.PI/180,i={version:"3.13.0",name:"physics2D",register:l,init:function init(e,t,i){v||l();var s=this,n=+t.angle||0,r=+t.velocity||0,a=+t.acceleration||0,o=t.xProp||"x",p=t.yProp||"y",c=t.accelerationAngle||0===t.accelerationAngle?+t.accelerationAngle:n;s.styles=f&&f(e,t.xProp&&"x"!==t.xProp?t.xProp+","+t.yProp:"transform"),s.target=e,s.tween=i,s.step=0,s.sps=30,t.gravity&&(a=+t.gravity,c=90),n*=u,c*=u,s.fr=1-(+t.friction||0),s._props.push(o,p),s.xp=new m(e,o,Math.cos(n)*r,Math.cos(c)*a,s.sps),s.yp=new m(e,p,Math.sin(n)*r,Math.sin(c)*a,s.sps),s.skipX=s.skipY=0},render:function render(e,t){var i,s,n,r,a,o,p=t.xp,l=t.yp,c=t.tween,v=t.target,f=t.step,u=t.sps,h=t.fr,d=t.skipX,g=t.skipY,y=c._from?c._dur-c._time:c._time;if(c._time||!w()){if(1===h)n=y*y*.5,i=p.s+p.vel*y+p.acc*n,s=l.s+l.vel*y+l.acc*n;else{for(r=o=(0|(y*=u))-f,o<0&&(p.v=p.vel/u,l.v=l.vel/u,p.val=p.s,l.val=l.s,r=o=(t.step=0)|y),a=y%1*h;o--;)p.v+=p.a,l.v+=l.a,p.v*=h,l.v*=h,p.val+=p.v,l.val+=l.v;i=p.val+p.v*a,s=l.val+l.v*a,t.step+=r}d||p.set(v,p.p,k(i)+p.u),g||l.set(v,l.p,k(s)+l.u)}else t.styles.revert()},kill:function kill(e){this.xp.p===e&&(this.skipX=1),this.yp.p===e&&(this.skipY=1)}};j()&&t.registerPlugin(i),e.Physics2DPlugin=i,e.default=i;if (typeof(window)==="undefined"||window!==e){Object.defineProperty(e,"__esModule",{value:!0})} else {delete e.default}});
|
||||
|
1
network-visualization/node_modules/gsap/dist/Physics2DPlugin.min.js.map
generated
vendored
Normal file
1
network-visualization/node_modules/gsap/dist/Physics2DPlugin.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
166
network-visualization/node_modules/gsap/dist/PhysicsPropsPlugin.js
generated
vendored
Normal file
166
network-visualization/node_modules/gsap/dist/PhysicsPropsPlugin.js
generated
vendored
Normal file
@@ -0,0 +1,166 @@
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(global = global || self, factory(global.window = global.window || {}));
|
||||
}(this, (function (exports) { 'use strict';
|
||||
|
||||
/*!
|
||||
* PhysicsPropsPlugin 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2008-2025, GreenSock. All rights reserved.
|
||||
* Subject to the terms at https://gsap.com/standard-license
|
||||
* @author: Jack Doyle, jack@greensock.com
|
||||
*/
|
||||
var gsap,
|
||||
_coreInitted,
|
||||
_getUnit,
|
||||
_getStyleSaver,
|
||||
_reverting,
|
||||
_getGSAP = function _getGSAP() {
|
||||
return gsap || typeof window !== "undefined" && (gsap = window.gsap) && gsap.registerPlugin && gsap;
|
||||
},
|
||||
_round = function _round(value) {
|
||||
return Math.round(value * 10000) / 10000;
|
||||
},
|
||||
_initCore = function _initCore(core) {
|
||||
gsap = core || _getGSAP();
|
||||
|
||||
if (!_coreInitted) {
|
||||
_getUnit = gsap.utils.getUnit;
|
||||
_getStyleSaver = gsap.core.getStyleSaver;
|
||||
|
||||
_reverting = gsap.core.reverting || function () {};
|
||||
|
||||
_coreInitted = 1;
|
||||
}
|
||||
};
|
||||
|
||||
var PhysicsProp = function PhysicsProp(target, p, velocity, acceleration, friction, stepsPerTimeUnit) {
|
||||
var cache = target._gsap,
|
||||
curVal = cache.get(target, p);
|
||||
this.p = p;
|
||||
this.set = cache.set(target, p);
|
||||
this.s = this.val = parseFloat(curVal);
|
||||
this.u = _getUnit(curVal) || 0;
|
||||
this.vel = velocity || 0;
|
||||
this.v = this.vel / stepsPerTimeUnit;
|
||||
|
||||
if (acceleration || acceleration === 0) {
|
||||
this.acc = acceleration;
|
||||
this.a = this.acc / (stepsPerTimeUnit * stepsPerTimeUnit);
|
||||
} else {
|
||||
this.acc = this.a = 0;
|
||||
}
|
||||
|
||||
this.fr = 1 - (friction || 0);
|
||||
};
|
||||
|
||||
var PhysicsPropsPlugin = {
|
||||
version: "3.13.0",
|
||||
name: "physicsProps",
|
||||
register: _initCore,
|
||||
init: function init(target, value, tween) {
|
||||
_coreInitted || _initCore();
|
||||
var data = this,
|
||||
p;
|
||||
data.styles = _getStyleSaver && _getStyleSaver(target);
|
||||
data.target = target;
|
||||
data.tween = tween;
|
||||
data.step = 0;
|
||||
data.sps = 30;
|
||||
data.vProps = [];
|
||||
|
||||
for (p in value) {
|
||||
var _value$p = value[p],
|
||||
velocity = _value$p.velocity,
|
||||
acceleration = _value$p.acceleration,
|
||||
friction = _value$p.friction;
|
||||
|
||||
if (velocity || acceleration) {
|
||||
data.vProps.push(new PhysicsProp(target, p, velocity, acceleration, friction, data.sps));
|
||||
|
||||
data._props.push(p);
|
||||
|
||||
_getStyleSaver && data.styles.save(p);
|
||||
friction && (data.hasFr = 1);
|
||||
}
|
||||
}
|
||||
},
|
||||
render: function render(ratio, data) {
|
||||
var vProps = data.vProps,
|
||||
tween = data.tween,
|
||||
target = data.target,
|
||||
step = data.step,
|
||||
hasFr = data.hasFr,
|
||||
sps = data.sps,
|
||||
i = vProps.length,
|
||||
time = tween._from ? tween._dur - tween._time : tween._time,
|
||||
curProp,
|
||||
steps,
|
||||
remainder,
|
||||
j,
|
||||
tt;
|
||||
|
||||
if (tween._time || !_reverting()) {
|
||||
if (hasFr) {
|
||||
time *= sps;
|
||||
steps = (time | 0) - step;
|
||||
|
||||
if (steps < 0) {
|
||||
while (i--) {
|
||||
curProp = vProps[i];
|
||||
curProp.v = curProp.vel / sps;
|
||||
curProp.val = curProp.s;
|
||||
}
|
||||
|
||||
i = vProps.length;
|
||||
data.step = step = 0;
|
||||
steps = time | 0;
|
||||
}
|
||||
|
||||
remainder = time % 1;
|
||||
|
||||
while (i--) {
|
||||
curProp = vProps[i];
|
||||
j = steps;
|
||||
|
||||
while (j--) {
|
||||
curProp.v += curProp.a;
|
||||
curProp.v *= curProp.fr;
|
||||
curProp.val += curProp.v;
|
||||
}
|
||||
|
||||
curProp.set(target, curProp.p, _round(curProp.val + curProp.v * remainder * curProp.fr) + curProp.u);
|
||||
}
|
||||
|
||||
data.step += steps;
|
||||
} else {
|
||||
tt = time * time * 0.5;
|
||||
|
||||
while (i--) {
|
||||
curProp = vProps[i];
|
||||
curProp.set(target, curProp.p, _round(curProp.s + curProp.vel * time + curProp.acc * tt) + curProp.u);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
data.styles.revert();
|
||||
}
|
||||
},
|
||||
kill: function kill(property) {
|
||||
var vProps = this.vProps,
|
||||
i = vProps.length;
|
||||
|
||||
while (i--) {
|
||||
vProps[i].p === property && vProps.splice(i, 1);
|
||||
}
|
||||
}
|
||||
};
|
||||
_getGSAP() && gsap.registerPlugin(PhysicsPropsPlugin);
|
||||
|
||||
exports.PhysicsPropsPlugin = PhysicsPropsPlugin;
|
||||
exports.default = PhysicsPropsPlugin;
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
})));
|
11
network-visualization/node_modules/gsap/dist/PhysicsPropsPlugin.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/PhysicsPropsPlugin.min.js
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
/*!
|
||||
* PhysicsPropsPlugin 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2025, GreenSock. All rights reserved.
|
||||
* Subject to the terms at https://gsap.com/standard-license.
|
||||
* @author: Jack Doyle, jack@greensock.com
|
||||
*/
|
||||
|
||||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).window=e.window||{})}(this,function(e){"use strict";function i(){return t||"undefined"!=typeof window&&(t=window.gsap)&&t.registerPlugin&&t}function j(e){return Math.round(1e4*e)/1e4}function k(e){t=e||i(),p||(a=t.utils.getUnit,c=t.core.getStyleSaver,d=t.core.reverting||function(){},p=1)}function l(e,t,s,i,r,n){var o=e._gsap,f=o.get(e,t);this.p=t,this.set=o.set(e,t),this.s=this.val=parseFloat(f),this.u=a(f)||0,this.vel=s||0,this.v=this.vel/n,i||0===i?(this.acc=i,this.a=this.acc/(n*n)):this.acc=this.a=0,this.fr=1-(r||0)}var t,p,a,c,d,s={version:"3.13.0",name:"physicsProps",register:k,init:function init(e,t,s){p||k();var i,r=this;for(i in r.styles=c&&c(e),r.target=e,r.tween=s,r.step=0,r.sps=30,r.vProps=[],t){var n=t[i],o=n.velocity,f=n.acceleration,a=n.friction;(o||f)&&(r.vProps.push(new l(e,i,o,f,a,r.sps)),r._props.push(i),c&&r.styles.save(i),a&&(r.hasFr=1))}},render:function render(e,t){var s,i,r,n,o,f=t.vProps,l=t.tween,a=t.target,p=t.step,c=t.hasFr,u=t.sps,v=f.length,h=l._from?l._dur-l._time:l._time;if(l._time||!d())if(c){if((i=(0|(h*=u))-p)<0){for(;v--;)(s=f[v]).v=s.vel/u,s.val=s.s;v=f.length,t.step=p=0,i=0|h}for(r=h%1;v--;){for(s=f[v],n=i;n--;)s.v+=s.a,s.v*=s.fr,s.val+=s.v;s.set(a,s.p,j(s.val+s.v*r*s.fr)+s.u)}t.step+=i}else for(o=h*h*.5;v--;)(s=f[v]).set(a,s.p,j(s.s+s.vel*h+s.acc*o)+s.u);else t.styles.revert()},kill:function kill(e){for(var t=this.vProps,s=t.length;s--;)t[s].p===e&&t.splice(s,1)}};i()&&t.registerPlugin(s),e.PhysicsPropsPlugin=s,e.default=s;if (typeof(window)==="undefined"||window!==e){Object.defineProperty(e,"__esModule",{value:!0})} else {delete e.default}});
|
||||
|
1
network-visualization/node_modules/gsap/dist/PhysicsPropsPlugin.min.js.map
generated
vendored
Normal file
1
network-visualization/node_modules/gsap/dist/PhysicsPropsPlugin.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
474
network-visualization/node_modules/gsap/dist/PixiPlugin.js
generated
vendored
Normal file
474
network-visualization/node_modules/gsap/dist/PixiPlugin.js
generated
vendored
Normal file
@@ -0,0 +1,474 @@
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(global = global || self, factory(global.window = global.window || {}));
|
||||
}(this, (function (exports) { 'use strict';
|
||||
|
||||
/*!
|
||||
* PixiPlugin 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2008-2025, GreenSock. All rights reserved.
|
||||
* Subject to the terms at https://gsap.com/standard-license
|
||||
* @author: Jack Doyle, jack@greensock.com
|
||||
*/
|
||||
var gsap,
|
||||
_splitColor,
|
||||
_coreInitted,
|
||||
_PIXI,
|
||||
PropTween,
|
||||
_getSetter,
|
||||
_isV4,
|
||||
_isV8Plus,
|
||||
_windowExists = function _windowExists() {
|
||||
return typeof window !== "undefined";
|
||||
},
|
||||
_getGSAP = function _getGSAP() {
|
||||
return gsap || _windowExists() && (gsap = window.gsap) && gsap.registerPlugin && gsap;
|
||||
},
|
||||
_isFunction = function _isFunction(value) {
|
||||
return typeof value === "function";
|
||||
},
|
||||
_warn = function _warn(message) {
|
||||
return console.warn(message);
|
||||
},
|
||||
_idMatrix = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0],
|
||||
_lumR = 0.212671,
|
||||
_lumG = 0.715160,
|
||||
_lumB = 0.072169,
|
||||
_filterClass = function _filterClass(name) {
|
||||
return _isFunction(_PIXI[name]) ? _PIXI[name] : _PIXI.filters[name];
|
||||
},
|
||||
_applyMatrix = function _applyMatrix(m, m2) {
|
||||
var temp = [],
|
||||
i = 0,
|
||||
z = 0,
|
||||
y,
|
||||
x;
|
||||
|
||||
for (y = 0; y < 4; y++) {
|
||||
for (x = 0; x < 5; x++) {
|
||||
z = x === 4 ? m[i + 4] : 0;
|
||||
temp[i + x] = m[i] * m2[x] + m[i + 1] * m2[x + 5] + m[i + 2] * m2[x + 10] + m[i + 3] * m2[x + 15] + z;
|
||||
}
|
||||
|
||||
i += 5;
|
||||
}
|
||||
|
||||
return temp;
|
||||
},
|
||||
_setSaturation = function _setSaturation(m, n) {
|
||||
var inv = 1 - n,
|
||||
r = inv * _lumR,
|
||||
g = inv * _lumG,
|
||||
b = inv * _lumB;
|
||||
return _applyMatrix([r + n, g, b, 0, 0, r, g + n, b, 0, 0, r, g, b + n, 0, 0, 0, 0, 0, 1, 0], m);
|
||||
},
|
||||
_colorize = function _colorize(m, color, amount) {
|
||||
var c = _splitColor(color),
|
||||
r = c[0] / 255,
|
||||
g = c[1] / 255,
|
||||
b = c[2] / 255,
|
||||
inv = 1 - amount;
|
||||
|
||||
return _applyMatrix([inv + amount * r * _lumR, amount * r * _lumG, amount * r * _lumB, 0, 0, amount * g * _lumR, inv + amount * g * _lumG, amount * g * _lumB, 0, 0, amount * b * _lumR, amount * b * _lumG, inv + amount * b * _lumB, 0, 0, 0, 0, 0, 1, 0], m);
|
||||
},
|
||||
_setHue = function _setHue(m, n) {
|
||||
n *= Math.PI / 180;
|
||||
var c = Math.cos(n),
|
||||
s = Math.sin(n);
|
||||
return _applyMatrix([_lumR + c * (1 - _lumR) + s * -_lumR, _lumG + c * -_lumG + s * -_lumG, _lumB + c * -_lumB + s * (1 - _lumB), 0, 0, _lumR + c * -_lumR + s * 0.143, _lumG + c * (1 - _lumG) + s * 0.14, _lumB + c * -_lumB + s * -0.283, 0, 0, _lumR + c * -_lumR + s * -(1 - _lumR), _lumG + c * -_lumG + s * _lumG, _lumB + c * (1 - _lumB) + s * _lumB, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1], m);
|
||||
},
|
||||
_setContrast = function _setContrast(m, n) {
|
||||
return _applyMatrix([n, 0, 0, 0, 0.5 * (1 - n), 0, n, 0, 0, 0.5 * (1 - n), 0, 0, n, 0, 0.5 * (1 - n), 0, 0, 0, 1, 0], m);
|
||||
},
|
||||
_getFilter = function _getFilter(target, type) {
|
||||
var filterClass = _filterClass(type),
|
||||
filters = target.filters || [],
|
||||
i = filters.length,
|
||||
filter;
|
||||
|
||||
filterClass || _warn(type + " not found. PixiPlugin.registerPIXI(PIXI)");
|
||||
|
||||
while (--i > -1) {
|
||||
if (filters[i] instanceof filterClass) {
|
||||
return filters[i];
|
||||
}
|
||||
}
|
||||
|
||||
filter = new filterClass();
|
||||
|
||||
if (type === "BlurFilter") {
|
||||
if (_isV8Plus) {
|
||||
filter.strength = 0;
|
||||
} else {
|
||||
filter.blur = 0;
|
||||
}
|
||||
}
|
||||
|
||||
target.filters = [].concat(filters, [filter]);
|
||||
return filter;
|
||||
},
|
||||
_addColorMatrixFilterCacheTween = function _addColorMatrixFilterCacheTween(p, plugin, cache, vars) {
|
||||
plugin.add(cache, p, cache[p], vars[p]);
|
||||
|
||||
plugin._props.push(p);
|
||||
},
|
||||
_applyBrightnessToMatrix = function _applyBrightnessToMatrix(brightness, matrix) {
|
||||
var filterClass = _filterClass("ColorMatrixFilter"),
|
||||
temp = new filterClass();
|
||||
|
||||
temp.matrix = matrix;
|
||||
temp.brightness(brightness, true);
|
||||
return temp.matrix;
|
||||
},
|
||||
_copy = function _copy(obj) {
|
||||
var copy = {},
|
||||
p;
|
||||
|
||||
for (p in obj) {
|
||||
copy[p] = obj[p];
|
||||
}
|
||||
|
||||
return copy;
|
||||
},
|
||||
_CMFdefaults = {
|
||||
contrast: 1,
|
||||
saturation: 1,
|
||||
colorizeAmount: 0,
|
||||
colorize: "rgb(255,255,255)",
|
||||
hue: 0,
|
||||
brightness: 1
|
||||
},
|
||||
_parseColorMatrixFilter = function _parseColorMatrixFilter(target, v, pg) {
|
||||
var filter = _getFilter(target, "ColorMatrixFilter"),
|
||||
cache = target._gsColorMatrixFilter = target._gsColorMatrixFilter || _copy(_CMFdefaults),
|
||||
combine = v.combineCMF && !("colorMatrixFilter" in v && !v.colorMatrixFilter),
|
||||
i,
|
||||
matrix,
|
||||
startMatrix;
|
||||
|
||||
startMatrix = filter.matrix;
|
||||
|
||||
if (v.resolution) {
|
||||
filter.resolution = v.resolution;
|
||||
}
|
||||
|
||||
if (v.matrix && v.matrix.length === startMatrix.length) {
|
||||
matrix = v.matrix;
|
||||
|
||||
if (cache.contrast !== 1) {
|
||||
_addColorMatrixFilterCacheTween("contrast", pg, cache, _CMFdefaults);
|
||||
}
|
||||
|
||||
if (cache.hue) {
|
||||
_addColorMatrixFilterCacheTween("hue", pg, cache, _CMFdefaults);
|
||||
}
|
||||
|
||||
if (cache.brightness !== 1) {
|
||||
_addColorMatrixFilterCacheTween("brightness", pg, cache, _CMFdefaults);
|
||||
}
|
||||
|
||||
if (cache.colorizeAmount) {
|
||||
_addColorMatrixFilterCacheTween("colorize", pg, cache, _CMFdefaults);
|
||||
|
||||
_addColorMatrixFilterCacheTween("colorizeAmount", pg, cache, _CMFdefaults);
|
||||
}
|
||||
|
||||
if (cache.saturation !== 1) {
|
||||
_addColorMatrixFilterCacheTween("saturation", pg, cache, _CMFdefaults);
|
||||
}
|
||||
} else {
|
||||
matrix = _idMatrix.slice();
|
||||
|
||||
if (v.contrast != null) {
|
||||
matrix = _setContrast(matrix, +v.contrast);
|
||||
|
||||
_addColorMatrixFilterCacheTween("contrast", pg, cache, v);
|
||||
} else if (cache.contrast !== 1) {
|
||||
if (combine) {
|
||||
matrix = _setContrast(matrix, cache.contrast);
|
||||
} else {
|
||||
_addColorMatrixFilterCacheTween("contrast", pg, cache, _CMFdefaults);
|
||||
}
|
||||
}
|
||||
|
||||
if (v.hue != null) {
|
||||
matrix = _setHue(matrix, +v.hue);
|
||||
|
||||
_addColorMatrixFilterCacheTween("hue", pg, cache, v);
|
||||
} else if (cache.hue) {
|
||||
if (combine) {
|
||||
matrix = _setHue(matrix, cache.hue);
|
||||
} else {
|
||||
_addColorMatrixFilterCacheTween("hue", pg, cache, _CMFdefaults);
|
||||
}
|
||||
}
|
||||
|
||||
if (v.brightness != null) {
|
||||
matrix = _applyBrightnessToMatrix(+v.brightness, matrix);
|
||||
|
||||
_addColorMatrixFilterCacheTween("brightness", pg, cache, v);
|
||||
} else if (cache.brightness !== 1) {
|
||||
if (combine) {
|
||||
matrix = _applyBrightnessToMatrix(cache.brightness, matrix);
|
||||
} else {
|
||||
_addColorMatrixFilterCacheTween("brightness", pg, cache, _CMFdefaults);
|
||||
}
|
||||
}
|
||||
|
||||
if (v.colorize != null) {
|
||||
v.colorizeAmount = "colorizeAmount" in v ? +v.colorizeAmount : 1;
|
||||
matrix = _colorize(matrix, v.colorize, v.colorizeAmount);
|
||||
|
||||
_addColorMatrixFilterCacheTween("colorize", pg, cache, v);
|
||||
|
||||
_addColorMatrixFilterCacheTween("colorizeAmount", pg, cache, v);
|
||||
} else if (cache.colorizeAmount) {
|
||||
if (combine) {
|
||||
matrix = _colorize(matrix, cache.colorize, cache.colorizeAmount);
|
||||
} else {
|
||||
_addColorMatrixFilterCacheTween("colorize", pg, cache, _CMFdefaults);
|
||||
|
||||
_addColorMatrixFilterCacheTween("colorizeAmount", pg, cache, _CMFdefaults);
|
||||
}
|
||||
}
|
||||
|
||||
if (v.saturation != null) {
|
||||
matrix = _setSaturation(matrix, +v.saturation);
|
||||
|
||||
_addColorMatrixFilterCacheTween("saturation", pg, cache, v);
|
||||
} else if (cache.saturation !== 1) {
|
||||
if (combine) {
|
||||
matrix = _setSaturation(matrix, cache.saturation);
|
||||
} else {
|
||||
_addColorMatrixFilterCacheTween("saturation", pg, cache, _CMFdefaults);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
i = matrix.length;
|
||||
|
||||
while (--i > -1) {
|
||||
if (matrix[i] !== startMatrix[i]) {
|
||||
pg.add(startMatrix, i, startMatrix[i], matrix[i], "colorMatrixFilter");
|
||||
}
|
||||
}
|
||||
|
||||
pg._props.push("colorMatrixFilter");
|
||||
},
|
||||
_renderColor = function _renderColor(ratio, _ref) {
|
||||
var t = _ref.t,
|
||||
p = _ref.p,
|
||||
color = _ref.color,
|
||||
set = _ref.set;
|
||||
set(t, p, color[0] << 16 | color[1] << 8 | color[2]);
|
||||
},
|
||||
_renderDirtyCache = function _renderDirtyCache(ratio, _ref2) {
|
||||
var g = _ref2.g;
|
||||
|
||||
if (_isV8Plus) {
|
||||
g.fill();
|
||||
g.stroke();
|
||||
} else if (g) {
|
||||
g.dirty++;
|
||||
g.clearDirty++;
|
||||
}
|
||||
},
|
||||
_renderAutoAlpha = function _renderAutoAlpha(ratio, data) {
|
||||
data.t.visible = !!data.t.alpha;
|
||||
},
|
||||
_addColorTween = function _addColorTween(target, p, value, plugin) {
|
||||
var currentValue = target[p],
|
||||
startColor = _splitColor(_isFunction(currentValue) ? target[p.indexOf("set") || !_isFunction(target["get" + p.substr(3)]) ? p : "get" + p.substr(3)]() : currentValue),
|
||||
endColor = _splitColor(value);
|
||||
|
||||
plugin._pt = new PropTween(plugin._pt, target, p, 0, 0, _renderColor, {
|
||||
t: target,
|
||||
p: p,
|
||||
color: startColor,
|
||||
set: _getSetter(target, p)
|
||||
});
|
||||
plugin.add(startColor, 0, startColor[0], endColor[0]);
|
||||
plugin.add(startColor, 1, startColor[1], endColor[1]);
|
||||
plugin.add(startColor, 2, startColor[2], endColor[2]);
|
||||
},
|
||||
_colorProps = {
|
||||
tint: 1,
|
||||
lineColor: 1,
|
||||
fillColor: 1,
|
||||
strokeColor: 1
|
||||
},
|
||||
_xyContexts = "position,scale,skew,pivot,anchor,tilePosition,tileScale".split(","),
|
||||
_contexts = {
|
||||
x: "position",
|
||||
y: "position",
|
||||
tileX: "tilePosition",
|
||||
tileY: "tilePosition"
|
||||
},
|
||||
_colorMatrixFilterProps = {
|
||||
colorMatrixFilter: 1,
|
||||
saturation: 1,
|
||||
contrast: 1,
|
||||
hue: 1,
|
||||
colorize: 1,
|
||||
colorizeAmount: 1,
|
||||
brightness: 1,
|
||||
combineCMF: 1
|
||||
},
|
||||
_DEG2RAD = Math.PI / 180,
|
||||
_isString = function _isString(value) {
|
||||
return typeof value === "string";
|
||||
},
|
||||
_degreesToRadians = function _degreesToRadians(value) {
|
||||
return _isString(value) && value.charAt(1) === "=" ? value.substr(0, 2) + parseFloat(value.substr(2)) * _DEG2RAD : value * _DEG2RAD;
|
||||
},
|
||||
_renderPropWithEnd = function _renderPropWithEnd(ratio, data) {
|
||||
return data.set(data.t, data.p, ratio === 1 ? data.e : Math.round((data.s + data.c * ratio) * 100000) / 100000, data);
|
||||
},
|
||||
_addRotationalPropTween = function _addRotationalPropTween(plugin, target, property, startNum, endValue, radians) {
|
||||
var cap = 360 * (radians ? _DEG2RAD : 1),
|
||||
isString = _isString(endValue),
|
||||
relative = isString && endValue.charAt(1) === "=" ? +(endValue.charAt(0) + "1") : 0,
|
||||
endNum = parseFloat(relative ? endValue.substr(2) : endValue) * (radians ? _DEG2RAD : 1),
|
||||
change = relative ? endNum * relative : endNum - startNum,
|
||||
finalValue = startNum + change,
|
||||
direction,
|
||||
pt;
|
||||
|
||||
if (isString) {
|
||||
direction = endValue.split("_")[1];
|
||||
|
||||
if (direction === "short") {
|
||||
change %= cap;
|
||||
|
||||
if (change !== change % (cap / 2)) {
|
||||
change += change < 0 ? cap : -cap;
|
||||
}
|
||||
}
|
||||
|
||||
if (direction === "cw" && change < 0) {
|
||||
change = (change + cap * 1e10) % cap - ~~(change / cap) * cap;
|
||||
} else if (direction === "ccw" && change > 0) {
|
||||
change = (change - cap * 1e10) % cap - ~~(change / cap) * cap;
|
||||
}
|
||||
}
|
||||
|
||||
plugin._pt = pt = new PropTween(plugin._pt, target, property, startNum, change, _renderPropWithEnd);
|
||||
pt.e = finalValue;
|
||||
return pt;
|
||||
},
|
||||
_initCore = function _initCore() {
|
||||
if (!_coreInitted) {
|
||||
gsap = _getGSAP();
|
||||
_PIXI = _coreInitted = _PIXI || _windowExists() && window.PIXI;
|
||||
var version = _PIXI && _PIXI.VERSION && parseFloat(_PIXI.VERSION.split(".")[0]) || 0;
|
||||
_isV4 = version === 4;
|
||||
_isV8Plus = version >= 8;
|
||||
|
||||
_splitColor = function _splitColor(color) {
|
||||
return gsap.utils.splitColor((color + "").substr(0, 2) === "0x" ? "#" + color.substr(2) : color);
|
||||
};
|
||||
}
|
||||
},
|
||||
i,
|
||||
p;
|
||||
|
||||
for (i = 0; i < _xyContexts.length; i++) {
|
||||
p = _xyContexts[i];
|
||||
_contexts[p + "X"] = p;
|
||||
_contexts[p + "Y"] = p;
|
||||
}
|
||||
|
||||
var PixiPlugin = {
|
||||
version: "3.13.0",
|
||||
name: "pixi",
|
||||
register: function register(core, Plugin, propTween) {
|
||||
gsap = core;
|
||||
PropTween = propTween;
|
||||
_getSetter = Plugin.getSetter;
|
||||
|
||||
_initCore();
|
||||
},
|
||||
headless: true,
|
||||
registerPIXI: function registerPIXI(pixi) {
|
||||
_PIXI = pixi;
|
||||
},
|
||||
init: function init(target, values, tween, index, targets) {
|
||||
_PIXI || _initCore();
|
||||
|
||||
if (!_PIXI) {
|
||||
_warn("PIXI was not found. PixiPlugin.registerPIXI(PIXI);");
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
var context, axis, value, colorMatrix, filter, p, padding, i, data, subProp;
|
||||
|
||||
for (p in values) {
|
||||
context = _contexts[p];
|
||||
value = values[p];
|
||||
|
||||
if (context) {
|
||||
axis = ~p.charAt(p.length - 1).toLowerCase().indexOf("x") ? "x" : "y";
|
||||
this.add(target[context], axis, target[context][axis], context === "skew" ? _degreesToRadians(value) : value, 0, 0, 0, 0, 0, 1);
|
||||
} else if (p === "scale" || p === "anchor" || p === "pivot" || p === "tileScale") {
|
||||
this.add(target[p], "x", target[p].x, value);
|
||||
this.add(target[p], "y", target[p].y, value);
|
||||
} else if (p === "rotation" || p === "angle") {
|
||||
_addRotationalPropTween(this, target, p, target[p], value, p === "rotation");
|
||||
} else if (_colorMatrixFilterProps[p]) {
|
||||
if (!colorMatrix) {
|
||||
_parseColorMatrixFilter(target, values.colorMatrixFilter || values, this);
|
||||
|
||||
colorMatrix = true;
|
||||
}
|
||||
} else if (p === "blur" || p === "blurX" || p === "blurY" || p === "blurPadding") {
|
||||
filter = _getFilter(target, "BlurFilter");
|
||||
this.add(filter, p, filter[p], value);
|
||||
|
||||
if (values.blurPadding !== 0) {
|
||||
padding = values.blurPadding || Math.max(filter[p], value) * 2;
|
||||
i = target.filters.length;
|
||||
|
||||
while (--i > -1) {
|
||||
target.filters[i].padding = Math.max(target.filters[i].padding, padding);
|
||||
}
|
||||
}
|
||||
} else if (_colorProps[p]) {
|
||||
if ((p === "lineColor" || p === "fillColor" || p === "strokeColor") && target instanceof _PIXI.Graphics) {
|
||||
data = "fillStyle" in target ? [target] : (target.geometry || target).graphicsData;
|
||||
subProp = p.substr(0, p.length - 5);
|
||||
_isV8Plus && subProp === "line" && (subProp = "stroke");
|
||||
this._pt = new PropTween(this._pt, target, p, 0, 0, _renderDirtyCache, {
|
||||
g: target.geometry || target
|
||||
});
|
||||
i = data.length;
|
||||
|
||||
while (--i > -1) {
|
||||
_addColorTween(_isV4 ? data[i] : data[i][subProp + "Style"], _isV4 ? p : "color", value, this);
|
||||
}
|
||||
} else {
|
||||
_addColorTween(target, p, value, this);
|
||||
}
|
||||
} else if (p === "autoAlpha") {
|
||||
this._pt = new PropTween(this._pt, target, "visible", 0, 0, _renderAutoAlpha);
|
||||
this.add(target, "alpha", target.alpha, value);
|
||||
|
||||
this._props.push("alpha", "visible");
|
||||
} else if (p !== "resolution") {
|
||||
this.add(target, p, "get", value);
|
||||
}
|
||||
|
||||
this._props.push(p);
|
||||
}
|
||||
}
|
||||
};
|
||||
_getGSAP() && gsap.registerPlugin(PixiPlugin);
|
||||
|
||||
exports.PixiPlugin = PixiPlugin;
|
||||
exports.default = PixiPlugin;
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
})));
|
11
network-visualization/node_modules/gsap/dist/PixiPlugin.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/PixiPlugin.min.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1
network-visualization/node_modules/gsap/dist/PixiPlugin.min.js.map
generated
vendored
Normal file
1
network-visualization/node_modules/gsap/dist/PixiPlugin.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
307
network-visualization/node_modules/gsap/dist/ScrambleTextPlugin.js
generated
vendored
Normal file
307
network-visualization/node_modules/gsap/dist/ScrambleTextPlugin.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
11
network-visualization/node_modules/gsap/dist/ScrambleTextPlugin.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/ScrambleTextPlugin.min.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1
network-visualization/node_modules/gsap/dist/ScrambleTextPlugin.min.js.map
generated
vendored
Normal file
1
network-visualization/node_modules/gsap/dist/ScrambleTextPlugin.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
972
network-visualization/node_modules/gsap/dist/ScrollSmoother.js
generated
vendored
Normal file
972
network-visualization/node_modules/gsap/dist/ScrollSmoother.js
generated
vendored
Normal file
@@ -0,0 +1,972 @@
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(global = global || self, factory(global.window = global.window || {}));
|
||||
}(this, (function (exports) { 'use strict';
|
||||
|
||||
function _defineProperties(target, props) {
|
||||
for (var i = 0; i < props.length; i++) {
|
||||
var descriptor = props[i];
|
||||
descriptor.enumerable = descriptor.enumerable || false;
|
||||
descriptor.configurable = true;
|
||||
if ("value" in descriptor) descriptor.writable = true;
|
||||
Object.defineProperty(target, descriptor.key, descriptor);
|
||||
}
|
||||
}
|
||||
|
||||
function _createClass(Constructor, protoProps, staticProps) {
|
||||
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||
return Constructor;
|
||||
}
|
||||
|
||||
/*!
|
||||
* ScrollSmoother 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2008-2025, GreenSock. All rights reserved.
|
||||
* Subject to the terms at https://gsap.com/standard-license
|
||||
* @author: Jack Doyle, jack@greensock.com
|
||||
*/
|
||||
var gsap,
|
||||
_coreInitted,
|
||||
_win,
|
||||
_doc,
|
||||
_docEl,
|
||||
_body,
|
||||
_toArray,
|
||||
_clamp,
|
||||
ScrollTrigger,
|
||||
_mainInstance,
|
||||
_expo,
|
||||
_getVelocityProp,
|
||||
_inputObserver,
|
||||
_context,
|
||||
_onResizeDelayedCall,
|
||||
_windowExists = function _windowExists() {
|
||||
return typeof window !== "undefined";
|
||||
},
|
||||
_getGSAP = function _getGSAP() {
|
||||
return gsap || _windowExists() && (gsap = window.gsap) && gsap.registerPlugin && gsap;
|
||||
},
|
||||
_round = function _round(value) {
|
||||
return Math.round(value * 100000) / 100000 || 0;
|
||||
},
|
||||
_maxScroll = function _maxScroll(scroller) {
|
||||
return ScrollTrigger.maxScroll(scroller || _win);
|
||||
},
|
||||
_autoDistance = function _autoDistance(el, progress) {
|
||||
var parent = el.parentNode || _docEl,
|
||||
b1 = el.getBoundingClientRect(),
|
||||
b2 = parent.getBoundingClientRect(),
|
||||
gapTop = b2.top - b1.top,
|
||||
gapBottom = b2.bottom - b1.bottom,
|
||||
change = (Math.abs(gapTop) > Math.abs(gapBottom) ? gapTop : gapBottom) / (1 - progress),
|
||||
offset = -change * progress,
|
||||
ratio,
|
||||
extraChange;
|
||||
|
||||
if (change > 0) {
|
||||
ratio = b2.height / (_win.innerHeight + b2.height);
|
||||
extraChange = ratio === 0.5 ? b2.height * 2 : Math.min(b2.height, Math.abs(-change * ratio / (2 * ratio - 1))) * 2 * (progress || 1);
|
||||
offset += progress ? -extraChange * progress : -extraChange / 2;
|
||||
change += extraChange;
|
||||
}
|
||||
|
||||
return {
|
||||
change: change,
|
||||
offset: offset
|
||||
};
|
||||
},
|
||||
_wrap = function _wrap(el) {
|
||||
var wrapper = _doc.querySelector(".ScrollSmoother-wrapper");
|
||||
|
||||
if (!wrapper) {
|
||||
wrapper = _doc.createElement("div");
|
||||
wrapper.classList.add("ScrollSmoother-wrapper");
|
||||
el.parentNode.insertBefore(wrapper, el);
|
||||
wrapper.appendChild(el);
|
||||
}
|
||||
|
||||
return wrapper;
|
||||
};
|
||||
|
||||
var ScrollSmoother = function () {
|
||||
function ScrollSmoother(vars) {
|
||||
var _this = this;
|
||||
|
||||
_coreInitted || ScrollSmoother.register(gsap) || console.warn("Please gsap.registerPlugin(ScrollSmoother)");
|
||||
vars = this.vars = vars || {};
|
||||
_mainInstance && _mainInstance.kill();
|
||||
_mainInstance = this;
|
||||
|
||||
_context(this);
|
||||
|
||||
var _vars = vars,
|
||||
smoothTouch = _vars.smoothTouch,
|
||||
_onUpdate = _vars.onUpdate,
|
||||
onStop = _vars.onStop,
|
||||
smooth = _vars.smooth,
|
||||
onFocusIn = _vars.onFocusIn,
|
||||
normalizeScroll = _vars.normalizeScroll,
|
||||
wholePixels = _vars.wholePixels,
|
||||
content,
|
||||
wrapper,
|
||||
height,
|
||||
mainST,
|
||||
effects,
|
||||
sections,
|
||||
intervalID,
|
||||
wrapperCSS,
|
||||
contentCSS,
|
||||
paused,
|
||||
pausedNormalizer,
|
||||
recordedRefreshScroll,
|
||||
recordedRefreshScrub,
|
||||
allowUpdates,
|
||||
self = this,
|
||||
effectsPrefix = vars.effectsPrefix || "",
|
||||
scrollFunc = ScrollTrigger.getScrollFunc(_win),
|
||||
smoothDuration = ScrollTrigger.isTouch === 1 ? smoothTouch === true ? 0.8 : parseFloat(smoothTouch) || 0 : smooth === 0 || smooth === false ? 0 : parseFloat(smooth) || 0.8,
|
||||
speed = smoothDuration && +vars.speed || 1,
|
||||
currentY = 0,
|
||||
delta = 0,
|
||||
startupPhase = 1,
|
||||
tracker = _getVelocityProp(0),
|
||||
updateVelocity = function updateVelocity() {
|
||||
return tracker.update(-currentY);
|
||||
},
|
||||
scroll = {
|
||||
y: 0
|
||||
},
|
||||
removeScroll = function removeScroll() {
|
||||
return content.style.overflow = "visible";
|
||||
},
|
||||
isProxyScrolling,
|
||||
killScrub = function killScrub(trigger) {
|
||||
trigger.update();
|
||||
var scrub = trigger.getTween();
|
||||
|
||||
if (scrub) {
|
||||
scrub.pause();
|
||||
scrub._time = scrub._dur;
|
||||
scrub._tTime = scrub._tDur;
|
||||
}
|
||||
|
||||
isProxyScrolling = false;
|
||||
trigger.animation.progress(trigger.progress, true);
|
||||
},
|
||||
render = function render(y, force) {
|
||||
if (y !== currentY && !paused || force) {
|
||||
wholePixels && (y = Math.round(y));
|
||||
|
||||
if (smoothDuration) {
|
||||
content.style.transform = "matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, " + y + ", 0, 1)";
|
||||
content._gsap.y = y + "px";
|
||||
}
|
||||
|
||||
delta = y - currentY;
|
||||
currentY = y;
|
||||
ScrollTrigger.isUpdating || ScrollSmoother.isRefreshing || ScrollTrigger.update();
|
||||
}
|
||||
},
|
||||
scrollTop = function scrollTop(value) {
|
||||
if (arguments.length) {
|
||||
value < 0 && (value = 0);
|
||||
scroll.y = -value;
|
||||
isProxyScrolling = true;
|
||||
paused ? currentY = -value : render(-value);
|
||||
ScrollTrigger.isRefreshing ? mainST.update() : scrollFunc(value / speed);
|
||||
return this;
|
||||
}
|
||||
|
||||
return -currentY;
|
||||
},
|
||||
resizeObserver = typeof ResizeObserver !== "undefined" && vars.autoResize !== false && new ResizeObserver(function () {
|
||||
if (!ScrollTrigger.isRefreshing) {
|
||||
var max = _maxScroll(wrapper) * speed;
|
||||
max < -currentY && scrollTop(max);
|
||||
|
||||
_onResizeDelayedCall.restart(true);
|
||||
}
|
||||
}),
|
||||
lastFocusElement,
|
||||
_onFocusIn = function _onFocusIn(e) {
|
||||
wrapper.scrollTop = 0;
|
||||
|
||||
if (e.target.contains && e.target.contains(wrapper) || onFocusIn && onFocusIn(_this, e) === false) {
|
||||
return;
|
||||
}
|
||||
|
||||
ScrollTrigger.isInViewport(e.target) || e.target === lastFocusElement || _this.scrollTo(e.target, false, "center center");
|
||||
lastFocusElement = e.target;
|
||||
},
|
||||
_transformPosition = function _transformPosition(position, st) {
|
||||
if (position < st.start) {
|
||||
return position;
|
||||
}
|
||||
|
||||
var ratio = isNaN(st.ratio) ? 1 : st.ratio,
|
||||
change = st.end - st.start,
|
||||
distance = position - st.start,
|
||||
offset = st.offset || 0,
|
||||
pins = st.pins || [],
|
||||
pinOffset = pins.offset || 0,
|
||||
progressOffset = st._startClamp && st.start <= 0 || st.pins && st.pins.offset ? 0 : st._endClamp && st.end === _maxScroll() ? 1 : 0.5;
|
||||
pins.forEach(function (p) {
|
||||
change -= p.distance;
|
||||
|
||||
if (p.nativeStart <= position) {
|
||||
distance -= p.distance;
|
||||
}
|
||||
});
|
||||
|
||||
if (pinOffset) {
|
||||
distance *= (change - pinOffset / ratio) / change;
|
||||
}
|
||||
|
||||
return position + (distance - offset * progressOffset) / ratio - distance;
|
||||
},
|
||||
adjustEffectRelatedTriggers = function adjustEffectRelatedTriggers(st, triggers, partial) {
|
||||
partial || (st.pins.length = st.pins.offset = 0);
|
||||
var pins = st.pins,
|
||||
markers = st.markers,
|
||||
dif,
|
||||
isClamped,
|
||||
start,
|
||||
end,
|
||||
nativeStart,
|
||||
nativeEnd,
|
||||
i,
|
||||
trig;
|
||||
|
||||
for (i = 0; i < triggers.length; i++) {
|
||||
trig = triggers[i];
|
||||
|
||||
if (st.trigger && trig.trigger && st !== trig && (trig.trigger === st.trigger || trig.pinnedContainer === st.trigger || st.trigger.contains(trig.trigger))) {
|
||||
nativeStart = trig._startNative || trig._startClamp || trig.start;
|
||||
nativeEnd = trig._endNative || trig._endClamp || trig.end;
|
||||
start = _transformPosition(nativeStart, st);
|
||||
end = trig.pin && nativeEnd > 0 ? start + (nativeEnd - nativeStart) : _transformPosition(nativeEnd, st);
|
||||
trig.setPositions(start, end, true, (trig._startClamp ? Math.max(0, start) : start) - nativeStart);
|
||||
trig.markerStart && markers.push(gsap.quickSetter([trig.markerStart, trig.markerEnd], "y", "px"));
|
||||
|
||||
if (trig.pin && trig.end > 0 && !partial) {
|
||||
dif = trig.end - trig.start;
|
||||
isClamped = st._startClamp && trig.start < 0;
|
||||
|
||||
if (isClamped) {
|
||||
if (st.start > 0) {
|
||||
st.setPositions(0, st.end + (st._startNative - st.start), true);
|
||||
adjustEffectRelatedTriggers(st, triggers);
|
||||
return;
|
||||
}
|
||||
|
||||
dif += trig.start;
|
||||
pins.offset = -trig.start;
|
||||
}
|
||||
|
||||
pins.push({
|
||||
start: trig.start,
|
||||
nativeStart: nativeStart,
|
||||
end: trig.end,
|
||||
distance: dif,
|
||||
trig: trig
|
||||
});
|
||||
st.setPositions(st.start, st.end + (isClamped ? -trig.start : dif), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
adjustParallaxPosition = function adjustParallaxPosition(triggers, createdAfterEffectWasApplied) {
|
||||
effects.forEach(function (st) {
|
||||
return adjustEffectRelatedTriggers(st, triggers, createdAfterEffectWasApplied);
|
||||
});
|
||||
},
|
||||
onRefresh = function onRefresh() {
|
||||
_docEl = _doc.documentElement;
|
||||
_body = _doc.body;
|
||||
removeScroll();
|
||||
requestAnimationFrame(removeScroll);
|
||||
|
||||
if (effects) {
|
||||
ScrollTrigger.getAll().forEach(function (st) {
|
||||
st._startNative = st.start;
|
||||
st._endNative = st.end;
|
||||
});
|
||||
effects.forEach(function (st) {
|
||||
var start = st._startClamp || st.start,
|
||||
end = st.autoSpeed ? Math.min(_maxScroll(), st.end) : start + Math.abs((st.end - start) / st.ratio),
|
||||
offset = end - st.end;
|
||||
start -= offset / 2;
|
||||
end -= offset / 2;
|
||||
|
||||
if (start > end) {
|
||||
var s = start;
|
||||
start = end;
|
||||
end = s;
|
||||
}
|
||||
|
||||
if (st._startClamp && start < 0) {
|
||||
end = st.ratio < 0 ? _maxScroll() : st.end / st.ratio;
|
||||
offset = end - st.end;
|
||||
start = 0;
|
||||
} else if (st.ratio < 0 || st._endClamp && end >= _maxScroll()) {
|
||||
end = _maxScroll();
|
||||
start = st.ratio < 0 ? 0 : st.ratio > 1 ? 0 : end - (end - st.start) / st.ratio;
|
||||
offset = (end - start) * st.ratio - (st.end - st.start);
|
||||
}
|
||||
|
||||
st.offset = offset || 0.0001;
|
||||
st.pins.length = st.pins.offset = 0;
|
||||
st.setPositions(start, end, true);
|
||||
});
|
||||
adjustParallaxPosition(ScrollTrigger.sort());
|
||||
}
|
||||
|
||||
tracker.reset();
|
||||
},
|
||||
addOnRefresh = function addOnRefresh() {
|
||||
return ScrollTrigger.addEventListener("refresh", onRefresh);
|
||||
},
|
||||
restoreEffects = function restoreEffects() {
|
||||
return effects && effects.forEach(function (st) {
|
||||
return st.vars.onRefresh(st);
|
||||
});
|
||||
},
|
||||
revertEffects = function revertEffects() {
|
||||
effects && effects.forEach(function (st) {
|
||||
return st.vars.onRefreshInit(st);
|
||||
});
|
||||
return restoreEffects;
|
||||
},
|
||||
effectValueGetter = function effectValueGetter(name, value, index, el) {
|
||||
return function () {
|
||||
var v = typeof value === "function" ? value(index, el) : value;
|
||||
v || v === 0 || (v = el.getAttribute("data-" + effectsPrefix + name) || (name === "speed" ? 1 : 0));
|
||||
el.setAttribute("data-" + effectsPrefix + name, v);
|
||||
var clamp = (v + "").substr(0, 6) === "clamp(";
|
||||
return {
|
||||
clamp: clamp,
|
||||
value: clamp ? v.substr(6, v.length - 7) : v
|
||||
};
|
||||
};
|
||||
},
|
||||
createEffect = function createEffect(el, speed, lag, index, effectsPadding) {
|
||||
effectsPadding = (typeof effectsPadding === "function" ? effectsPadding(index, el) : effectsPadding) || 0;
|
||||
|
||||
var getSpeed = effectValueGetter("speed", speed, index, el),
|
||||
getLag = effectValueGetter("lag", lag, index, el),
|
||||
startY = gsap.getProperty(el, "y"),
|
||||
cache = el._gsap,
|
||||
ratio,
|
||||
st,
|
||||
autoSpeed,
|
||||
scrub,
|
||||
progressOffset,
|
||||
yOffset,
|
||||
pins = [],
|
||||
initDynamicValues = function initDynamicValues() {
|
||||
speed = getSpeed();
|
||||
lag = parseFloat(getLag().value);
|
||||
ratio = parseFloat(speed.value) || 1;
|
||||
autoSpeed = speed.value === "auto";
|
||||
progressOffset = autoSpeed || st && st._startClamp && st.start <= 0 || pins.offset ? 0 : st && st._endClamp && st.end === _maxScroll() ? 1 : 0.5;
|
||||
scrub && scrub.kill();
|
||||
scrub = lag && gsap.to(el, {
|
||||
ease: _expo,
|
||||
overwrite: false,
|
||||
y: "+=0",
|
||||
duration: lag
|
||||
});
|
||||
|
||||
if (st) {
|
||||
st.ratio = ratio;
|
||||
st.autoSpeed = autoSpeed;
|
||||
}
|
||||
},
|
||||
revert = function revert() {
|
||||
cache.y = startY + "px";
|
||||
cache.renderTransform(1);
|
||||
initDynamicValues();
|
||||
},
|
||||
markers = [],
|
||||
change = 0,
|
||||
updateChange = function updateChange(self) {
|
||||
if (autoSpeed) {
|
||||
revert();
|
||||
|
||||
var auto = _autoDistance(el, _clamp(0, 1, -self.start / (self.end - self.start)));
|
||||
|
||||
change = auto.change;
|
||||
yOffset = auto.offset;
|
||||
} else {
|
||||
yOffset = pins.offset || 0;
|
||||
change = (self.end - self.start - yOffset) * (1 - ratio);
|
||||
}
|
||||
|
||||
pins.forEach(function (p) {
|
||||
return change -= p.distance * (1 - ratio);
|
||||
});
|
||||
self.offset = change || 0.001;
|
||||
self.vars.onUpdate(self);
|
||||
scrub && scrub.progress(1);
|
||||
};
|
||||
|
||||
initDynamicValues();
|
||||
|
||||
if (ratio !== 1 || autoSpeed || scrub) {
|
||||
st = ScrollTrigger.create({
|
||||
trigger: autoSpeed ? el.parentNode : el,
|
||||
start: function start() {
|
||||
return speed.clamp ? "clamp(top bottom+=" + effectsPadding + ")" : "top bottom+=" + effectsPadding;
|
||||
},
|
||||
end: function end() {
|
||||
return speed.value < 0 ? "max" : speed.clamp ? "clamp(bottom top-=" + effectsPadding + ")" : "bottom top-=" + effectsPadding;
|
||||
},
|
||||
scroller: wrapper,
|
||||
scrub: true,
|
||||
refreshPriority: -999,
|
||||
onRefreshInit: revert,
|
||||
onRefresh: updateChange,
|
||||
onKill: function onKill(self) {
|
||||
var i = effects.indexOf(self);
|
||||
i >= 0 && effects.splice(i, 1);
|
||||
revert();
|
||||
},
|
||||
onUpdate: function onUpdate(self) {
|
||||
var y = startY + change * (self.progress - progressOffset),
|
||||
i = pins.length,
|
||||
extraY = 0,
|
||||
pin,
|
||||
scrollY,
|
||||
end;
|
||||
|
||||
if (self.offset) {
|
||||
if (i) {
|
||||
scrollY = -currentY;
|
||||
end = self.end;
|
||||
|
||||
while (i--) {
|
||||
pin = pins[i];
|
||||
|
||||
if (pin.trig.isActive || scrollY >= pin.start && scrollY <= pin.end) {
|
||||
if (scrub) {
|
||||
pin.trig.progress += pin.trig.direction < 0 ? 0.001 : -0.001;
|
||||
pin.trig.update(0, 0, 1);
|
||||
scrub.resetTo("y", parseFloat(cache.y), -delta, true);
|
||||
startupPhase && scrub.progress(1);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
scrollY > pin.end && (extraY += pin.distance);
|
||||
end -= pin.distance;
|
||||
}
|
||||
|
||||
y = startY + extraY + change * ((gsap.utils.clamp(self.start, self.end, scrollY) - self.start - extraY) / (end - self.start) - progressOffset);
|
||||
}
|
||||
|
||||
markers.length && !autoSpeed && markers.forEach(function (setter) {
|
||||
return setter(y - extraY);
|
||||
});
|
||||
y = _round(y + yOffset);
|
||||
|
||||
if (scrub) {
|
||||
scrub.resetTo("y", y, -delta, true);
|
||||
startupPhase && scrub.progress(1);
|
||||
} else {
|
||||
cache.y = y + "px";
|
||||
cache.renderTransform(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
updateChange(st);
|
||||
gsap.core.getCache(st.trigger).stRevert = revertEffects;
|
||||
st.startY = startY;
|
||||
st.pins = pins;
|
||||
st.markers = markers;
|
||||
st.ratio = ratio;
|
||||
st.autoSpeed = autoSpeed;
|
||||
el.style.willChange = "transform";
|
||||
}
|
||||
|
||||
return st;
|
||||
};
|
||||
|
||||
addOnRefresh();
|
||||
ScrollTrigger.addEventListener("killAll", addOnRefresh);
|
||||
gsap.delayedCall(0.5, function () {
|
||||
return startupPhase = 0;
|
||||
});
|
||||
this.scrollTop = scrollTop;
|
||||
|
||||
this.scrollTo = function (target, smooth, position) {
|
||||
var p = gsap.utils.clamp(0, _maxScroll(), isNaN(target) ? _this.offset(target, position, !!smooth && !paused) : +target);
|
||||
!smooth ? scrollTop(p) : paused ? gsap.to(_this, {
|
||||
duration: smoothDuration,
|
||||
scrollTop: p,
|
||||
overwrite: "auto",
|
||||
ease: _expo
|
||||
}) : scrollFunc(p);
|
||||
};
|
||||
|
||||
this.offset = function (target, position, ignoreSpeed) {
|
||||
target = _toArray(target)[0];
|
||||
var cssText = target.style.cssText,
|
||||
st = ScrollTrigger.create({
|
||||
trigger: target,
|
||||
start: position || "top top"
|
||||
}),
|
||||
y;
|
||||
|
||||
if (effects) {
|
||||
startupPhase ? ScrollTrigger.refresh() : adjustParallaxPosition([st], true);
|
||||
}
|
||||
|
||||
y = st.start / (ignoreSpeed ? speed : 1);
|
||||
st.kill(false);
|
||||
target.style.cssText = cssText;
|
||||
gsap.core.getCache(target).uncache = 1;
|
||||
return y;
|
||||
};
|
||||
|
||||
function refreshHeight() {
|
||||
height = content.clientHeight;
|
||||
content.style.overflow = "visible";
|
||||
_body.style.height = _win.innerHeight + (height - _win.innerHeight) / speed + "px";
|
||||
return height - _win.innerHeight;
|
||||
}
|
||||
|
||||
this.content = function (element) {
|
||||
if (arguments.length) {
|
||||
var newContent = _toArray(element || "#smooth-content")[0] || console.warn("ScrollSmoother needs a valid content element.") || _body.children[0];
|
||||
|
||||
if (newContent !== content) {
|
||||
content = newContent;
|
||||
contentCSS = content.getAttribute("style") || "";
|
||||
resizeObserver && resizeObserver.observe(content);
|
||||
gsap.set(content, {
|
||||
overflow: "visible",
|
||||
width: "100%",
|
||||
boxSizing: "border-box",
|
||||
y: "+=0"
|
||||
});
|
||||
smoothDuration || gsap.set(content, {
|
||||
clearProps: "transform"
|
||||
});
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
return content;
|
||||
};
|
||||
|
||||
this.wrapper = function (element) {
|
||||
if (arguments.length) {
|
||||
wrapper = _toArray(element || "#smooth-wrapper")[0] || _wrap(content);
|
||||
wrapperCSS = wrapper.getAttribute("style") || "";
|
||||
refreshHeight();
|
||||
gsap.set(wrapper, smoothDuration ? {
|
||||
overflow: "hidden",
|
||||
position: "fixed",
|
||||
height: "100%",
|
||||
width: "100%",
|
||||
top: 0,
|
||||
left: 0,
|
||||
right: 0,
|
||||
bottom: 0
|
||||
} : {
|
||||
overflow: "visible",
|
||||
position: "relative",
|
||||
width: "100%",
|
||||
height: "auto",
|
||||
top: "auto",
|
||||
bottom: "auto",
|
||||
left: "auto",
|
||||
right: "auto"
|
||||
});
|
||||
return this;
|
||||
}
|
||||
|
||||
return wrapper;
|
||||
};
|
||||
|
||||
this.effects = function (targets, config) {
|
||||
var _effects;
|
||||
|
||||
effects || (effects = []);
|
||||
|
||||
if (!targets) {
|
||||
return effects.slice(0);
|
||||
}
|
||||
|
||||
targets = _toArray(targets);
|
||||
targets.forEach(function (target) {
|
||||
var i = effects.length;
|
||||
|
||||
while (i--) {
|
||||
effects[i].trigger === target && effects[i].kill();
|
||||
}
|
||||
});
|
||||
config = config || {};
|
||||
var _config = config,
|
||||
speed = _config.speed,
|
||||
lag = _config.lag,
|
||||
effectsPadding = _config.effectsPadding,
|
||||
effectsToAdd = [],
|
||||
i,
|
||||
st;
|
||||
|
||||
for (i = 0; i < targets.length; i++) {
|
||||
st = createEffect(targets[i], speed, lag, i, effectsPadding);
|
||||
st && effectsToAdd.push(st);
|
||||
}
|
||||
|
||||
(_effects = effects).push.apply(_effects, effectsToAdd);
|
||||
|
||||
config.refresh !== false && ScrollTrigger.refresh();
|
||||
return effectsToAdd;
|
||||
};
|
||||
|
||||
this.sections = function (targets, config) {
|
||||
var _sections;
|
||||
|
||||
sections || (sections = []);
|
||||
|
||||
if (!targets) {
|
||||
return sections.slice(0);
|
||||
}
|
||||
|
||||
var newSections = _toArray(targets).map(function (el) {
|
||||
return ScrollTrigger.create({
|
||||
trigger: el,
|
||||
start: "top 120%",
|
||||
end: "bottom -20%",
|
||||
onToggle: function onToggle(self) {
|
||||
el.style.opacity = self.isActive ? "1" : "0";
|
||||
el.style.pointerEvents = self.isActive ? "all" : "none";
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
config && config.add ? (_sections = sections).push.apply(_sections, newSections) : sections = newSections.slice(0);
|
||||
return newSections;
|
||||
};
|
||||
|
||||
this.content(vars.content);
|
||||
this.wrapper(vars.wrapper);
|
||||
|
||||
this.render = function (y) {
|
||||
return render(y || y === 0 ? y : currentY);
|
||||
};
|
||||
|
||||
this.getVelocity = function () {
|
||||
return tracker.getVelocity(-currentY);
|
||||
};
|
||||
|
||||
ScrollTrigger.scrollerProxy(wrapper, {
|
||||
scrollTop: scrollTop,
|
||||
scrollHeight: function scrollHeight() {
|
||||
return refreshHeight() && _body.scrollHeight;
|
||||
},
|
||||
fixedMarkers: vars.fixedMarkers !== false && !!smoothDuration,
|
||||
content: content,
|
||||
getBoundingClientRect: function getBoundingClientRect() {
|
||||
return {
|
||||
top: 0,
|
||||
left: 0,
|
||||
width: _win.innerWidth,
|
||||
height: _win.innerHeight
|
||||
};
|
||||
}
|
||||
});
|
||||
ScrollTrigger.defaults({
|
||||
scroller: wrapper
|
||||
});
|
||||
var existingScrollTriggers = ScrollTrigger.getAll().filter(function (st) {
|
||||
return st.scroller === _win || st.scroller === wrapper;
|
||||
});
|
||||
existingScrollTriggers.forEach(function (st) {
|
||||
return st.revert(true, true);
|
||||
});
|
||||
mainST = ScrollTrigger.create({
|
||||
animation: gsap.fromTo(scroll, {
|
||||
y: function y() {
|
||||
allowUpdates = 0;
|
||||
return 0;
|
||||
}
|
||||
}, {
|
||||
y: function y() {
|
||||
allowUpdates = 1;
|
||||
return -refreshHeight();
|
||||
},
|
||||
immediateRender: false,
|
||||
ease: "none",
|
||||
data: "ScrollSmoother",
|
||||
duration: 100,
|
||||
onUpdate: function onUpdate() {
|
||||
if (allowUpdates) {
|
||||
var force = isProxyScrolling;
|
||||
|
||||
if (force) {
|
||||
killScrub(mainST);
|
||||
scroll.y = currentY;
|
||||
}
|
||||
|
||||
render(scroll.y, force);
|
||||
updateVelocity();
|
||||
_onUpdate && !paused && _onUpdate(self);
|
||||
}
|
||||
}
|
||||
}),
|
||||
onRefreshInit: function onRefreshInit(self) {
|
||||
if (ScrollSmoother.isRefreshing) {
|
||||
return;
|
||||
}
|
||||
|
||||
ScrollSmoother.isRefreshing = true;
|
||||
|
||||
if (effects) {
|
||||
var _pins = ScrollTrigger.getAll().filter(function (st) {
|
||||
return !!st.pin;
|
||||
});
|
||||
|
||||
effects.forEach(function (st) {
|
||||
if (!st.vars.pinnedContainer) {
|
||||
_pins.forEach(function (pinST) {
|
||||
if (pinST.pin.contains(st.trigger)) {
|
||||
var v = st.vars;
|
||||
v.pinnedContainer = pinST.pin;
|
||||
st.vars = null;
|
||||
st.init(v, st.animation);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
var scrub = self.getTween();
|
||||
recordedRefreshScrub = scrub && scrub._end > scrub._dp._time;
|
||||
recordedRefreshScroll = currentY;
|
||||
scroll.y = 0;
|
||||
|
||||
if (smoothDuration) {
|
||||
ScrollTrigger.isTouch === 1 && (wrapper.style.position = "absolute");
|
||||
wrapper.scrollTop = 0;
|
||||
ScrollTrigger.isTouch === 1 && (wrapper.style.position = "fixed");
|
||||
}
|
||||
},
|
||||
onRefresh: function onRefresh(self) {
|
||||
self.animation.invalidate();
|
||||
self.setPositions(self.start, refreshHeight() / speed);
|
||||
recordedRefreshScrub || killScrub(self);
|
||||
scroll.y = -scrollFunc() * speed;
|
||||
render(scroll.y);
|
||||
|
||||
if (!startupPhase) {
|
||||
recordedRefreshScrub && (isProxyScrolling = false);
|
||||
self.animation.progress(gsap.utils.clamp(0, 1, recordedRefreshScroll / speed / -self.end));
|
||||
}
|
||||
|
||||
if (recordedRefreshScrub) {
|
||||
self.progress -= 0.001;
|
||||
self.update();
|
||||
}
|
||||
|
||||
ScrollSmoother.isRefreshing = false;
|
||||
},
|
||||
id: "ScrollSmoother",
|
||||
scroller: _win,
|
||||
invalidateOnRefresh: true,
|
||||
start: 0,
|
||||
refreshPriority: -9999,
|
||||
end: function end() {
|
||||
return refreshHeight() / speed;
|
||||
},
|
||||
onScrubComplete: function onScrubComplete() {
|
||||
tracker.reset();
|
||||
onStop && onStop(_this);
|
||||
},
|
||||
scrub: smoothDuration || true
|
||||
});
|
||||
|
||||
this.smooth = function (value) {
|
||||
if (arguments.length) {
|
||||
smoothDuration = value || 0;
|
||||
speed = smoothDuration && +vars.speed || 1;
|
||||
mainST.scrubDuration(value);
|
||||
}
|
||||
|
||||
return mainST.getTween() ? mainST.getTween().duration() : 0;
|
||||
};
|
||||
|
||||
mainST.getTween() && (mainST.getTween().vars.ease = vars.ease || _expo);
|
||||
this.scrollTrigger = mainST;
|
||||
vars.effects && this.effects(vars.effects === true ? "[data-" + effectsPrefix + "speed], [data-" + effectsPrefix + "lag]" : vars.effects, {
|
||||
effectsPadding: vars.effectsPadding,
|
||||
refresh: false
|
||||
});
|
||||
vars.sections && this.sections(vars.sections === true ? "[data-section]" : vars.sections);
|
||||
existingScrollTriggers.forEach(function (st) {
|
||||
st.vars.scroller = wrapper;
|
||||
st.revert(false, true);
|
||||
st.init(st.vars, st.animation);
|
||||
});
|
||||
|
||||
this.paused = function (value, allowNestedScroll) {
|
||||
if (arguments.length) {
|
||||
if (!!paused !== value) {
|
||||
if (value) {
|
||||
mainST.getTween() && mainST.getTween().pause();
|
||||
scrollFunc(-currentY / speed);
|
||||
tracker.reset();
|
||||
pausedNormalizer = ScrollTrigger.normalizeScroll();
|
||||
pausedNormalizer && pausedNormalizer.disable();
|
||||
paused = ScrollTrigger.observe({
|
||||
preventDefault: true,
|
||||
type: "wheel,touch,scroll",
|
||||
debounce: false,
|
||||
allowClicks: true,
|
||||
onChangeY: function onChangeY() {
|
||||
return scrollTop(-currentY);
|
||||
}
|
||||
});
|
||||
paused.nested = _inputObserver(_docEl, "wheel,touch,scroll", true, allowNestedScroll !== false);
|
||||
} else {
|
||||
paused.nested.kill();
|
||||
paused.kill();
|
||||
paused = 0;
|
||||
pausedNormalizer && pausedNormalizer.enable();
|
||||
mainST.progress = (-currentY / speed - mainST.start) / (mainST.end - mainST.start);
|
||||
killScrub(mainST);
|
||||
}
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
return !!paused;
|
||||
};
|
||||
|
||||
this.kill = this.revert = function () {
|
||||
_this.paused(false);
|
||||
|
||||
killScrub(mainST);
|
||||
mainST.kill();
|
||||
var triggers = (effects || []).concat(sections || []),
|
||||
i = triggers.length;
|
||||
|
||||
while (i--) {
|
||||
triggers[i].kill();
|
||||
}
|
||||
|
||||
ScrollTrigger.scrollerProxy(wrapper);
|
||||
ScrollTrigger.removeEventListener("killAll", addOnRefresh);
|
||||
ScrollTrigger.removeEventListener("refresh", onRefresh);
|
||||
wrapper.style.cssText = wrapperCSS;
|
||||
content.style.cssText = contentCSS;
|
||||
var defaults = ScrollTrigger.defaults({});
|
||||
defaults && defaults.scroller === wrapper && ScrollTrigger.defaults({
|
||||
scroller: _win
|
||||
});
|
||||
_this.normalizer && ScrollTrigger.normalizeScroll(false);
|
||||
clearInterval(intervalID);
|
||||
_mainInstance = null;
|
||||
resizeObserver && resizeObserver.disconnect();
|
||||
|
||||
_body.style.removeProperty("height");
|
||||
|
||||
_win.removeEventListener("focusin", _onFocusIn);
|
||||
};
|
||||
|
||||
this.refresh = function (soft, force) {
|
||||
return mainST.refresh(soft, force);
|
||||
};
|
||||
|
||||
if (normalizeScroll) {
|
||||
this.normalizer = ScrollTrigger.normalizeScroll(normalizeScroll === true ? {
|
||||
debounce: true,
|
||||
content: !smoothDuration && content
|
||||
} : normalizeScroll);
|
||||
}
|
||||
|
||||
ScrollTrigger.config(vars);
|
||||
"scrollBehavior" in _win.getComputedStyle(_body) && gsap.set([_body, _docEl], {
|
||||
scrollBehavior: "auto"
|
||||
});
|
||||
|
||||
_win.addEventListener("focusin", _onFocusIn);
|
||||
|
||||
intervalID = setInterval(updateVelocity, 250);
|
||||
_doc.readyState === "loading" || requestAnimationFrame(function () {
|
||||
return ScrollTrigger.refresh();
|
||||
});
|
||||
}
|
||||
|
||||
ScrollSmoother.register = function register(core) {
|
||||
if (!_coreInitted) {
|
||||
gsap = core || _getGSAP();
|
||||
|
||||
if (_windowExists() && window.document) {
|
||||
_win = window;
|
||||
_doc = document;
|
||||
_docEl = _doc.documentElement;
|
||||
_body = _doc.body;
|
||||
}
|
||||
|
||||
if (gsap) {
|
||||
_toArray = gsap.utils.toArray;
|
||||
_clamp = gsap.utils.clamp;
|
||||
_expo = gsap.parseEase("expo");
|
||||
|
||||
_context = gsap.core.context || function () {};
|
||||
|
||||
ScrollTrigger = gsap.core.globals().ScrollTrigger;
|
||||
gsap.core.globals("ScrollSmoother", ScrollSmoother);
|
||||
|
||||
if (_body && ScrollTrigger) {
|
||||
_onResizeDelayedCall = gsap.delayedCall(0.2, function () {
|
||||
return ScrollTrigger.isRefreshing || _mainInstance && _mainInstance.refresh();
|
||||
}).pause();
|
||||
_getVelocityProp = ScrollTrigger.core._getVelocityProp;
|
||||
_inputObserver = ScrollTrigger.core._inputObserver;
|
||||
ScrollSmoother.refresh = ScrollTrigger.refresh;
|
||||
_coreInitted = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return _coreInitted;
|
||||
};
|
||||
|
||||
_createClass(ScrollSmoother, [{
|
||||
key: "progress",
|
||||
get: function get() {
|
||||
return this.scrollTrigger ? this.scrollTrigger.animation._time / 100 : 0;
|
||||
}
|
||||
}]);
|
||||
|
||||
return ScrollSmoother;
|
||||
}();
|
||||
ScrollSmoother.version = "3.13.0";
|
||||
|
||||
ScrollSmoother.create = function (vars) {
|
||||
return _mainInstance && vars && _mainInstance.content() === _toArray(vars.content)[0] ? _mainInstance : new ScrollSmoother(vars);
|
||||
};
|
||||
|
||||
ScrollSmoother.get = function () {
|
||||
return _mainInstance;
|
||||
};
|
||||
|
||||
_getGSAP() && gsap.registerPlugin(ScrollSmoother);
|
||||
|
||||
exports.ScrollSmoother = ScrollSmoother;
|
||||
exports.default = ScrollSmoother;
|
||||
|
||||
if (typeof(window) === 'undefined' || window !== exports) {Object.defineProperty(exports, '__esModule', { value: true });} else {delete window.default;}
|
||||
|
||||
})));
|
11
network-visualization/node_modules/gsap/dist/ScrollSmoother.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/ScrollSmoother.min.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1
network-visualization/node_modules/gsap/dist/ScrollSmoother.min.js.map
generated
vendored
Normal file
1
network-visualization/node_modules/gsap/dist/ScrollSmoother.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
285
network-visualization/node_modules/gsap/dist/ScrollToPlugin.js
generated
vendored
Normal file
285
network-visualization/node_modules/gsap/dist/ScrollToPlugin.js
generated
vendored
Normal file
@@ -0,0 +1,285 @@
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(global = global || self, factory(global.window = global.window || {}));
|
||||
}(this, (function (exports) { 'use strict';
|
||||
|
||||
/*!
|
||||
* ScrollToPlugin 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2008-2025, GreenSock. All rights reserved.
|
||||
* Subject to the terms at https://gsap.com/standard-license
|
||||
* @author: Jack Doyle, jack@greensock.com
|
||||
*/
|
||||
var gsap,
|
||||
_coreInitted,
|
||||
_window,
|
||||
_docEl,
|
||||
_body,
|
||||
_toArray,
|
||||
_config,
|
||||
ScrollTrigger,
|
||||
_windowExists = function _windowExists() {
|
||||
return typeof window !== "undefined";
|
||||
},
|
||||
_getGSAP = function _getGSAP() {
|
||||
return gsap || _windowExists() && (gsap = window.gsap) && gsap.registerPlugin && gsap;
|
||||
},
|
||||
_isString = function _isString(value) {
|
||||
return typeof value === "string";
|
||||
},
|
||||
_isFunction = function _isFunction(value) {
|
||||
return typeof value === "function";
|
||||
},
|
||||
_max = function _max(element, axis) {
|
||||
var dim = axis === "x" ? "Width" : "Height",
|
||||
scroll = "scroll" + dim,
|
||||
client = "client" + dim;
|
||||
return element === _window || element === _docEl || element === _body ? Math.max(_docEl[scroll], _body[scroll]) - (_window["inner" + dim] || _docEl[client] || _body[client]) : element[scroll] - element["offset" + dim];
|
||||
},
|
||||
_buildGetter = function _buildGetter(e, axis) {
|
||||
var p = "scroll" + (axis === "x" ? "Left" : "Top");
|
||||
|
||||
if (e === _window) {
|
||||
if (e.pageXOffset != null) {
|
||||
p = "page" + axis.toUpperCase() + "Offset";
|
||||
} else {
|
||||
e = _docEl[p] != null ? _docEl : _body;
|
||||
}
|
||||
}
|
||||
|
||||
return function () {
|
||||
return e[p];
|
||||
};
|
||||
},
|
||||
_clean = function _clean(value, index, target, targets) {
|
||||
_isFunction(value) && (value = value(index, target, targets));
|
||||
|
||||
if (typeof value !== "object") {
|
||||
return _isString(value) && value !== "max" && value.charAt(1) !== "=" ? {
|
||||
x: value,
|
||||
y: value
|
||||
} : {
|
||||
y: value
|
||||
};
|
||||
} else if (value.nodeType) {
|
||||
return {
|
||||
y: value,
|
||||
x: value
|
||||
};
|
||||
} else {
|
||||
var result = {},
|
||||
p;
|
||||
|
||||
for (p in value) {
|
||||
result[p] = p !== "onAutoKill" && _isFunction(value[p]) ? value[p](index, target, targets) : value[p];
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
},
|
||||
_getOffset = function _getOffset(element, container) {
|
||||
element = _toArray(element)[0];
|
||||
|
||||
if (!element || !element.getBoundingClientRect) {
|
||||
return console.warn("scrollTo target doesn't exist. Using 0") || {
|
||||
x: 0,
|
||||
y: 0
|
||||
};
|
||||
}
|
||||
|
||||
var rect = element.getBoundingClientRect(),
|
||||
isRoot = !container || container === _window || container === _body,
|
||||
cRect = isRoot ? {
|
||||
top: _docEl.clientTop - (_window.pageYOffset || _docEl.scrollTop || _body.scrollTop || 0),
|
||||
left: _docEl.clientLeft - (_window.pageXOffset || _docEl.scrollLeft || _body.scrollLeft || 0)
|
||||
} : container.getBoundingClientRect(),
|
||||
offsets = {
|
||||
x: rect.left - cRect.left,
|
||||
y: rect.top - cRect.top
|
||||
};
|
||||
|
||||
if (!isRoot && container) {
|
||||
offsets.x += _buildGetter(container, "x")();
|
||||
offsets.y += _buildGetter(container, "y")();
|
||||
}
|
||||
|
||||
return offsets;
|
||||
},
|
||||
_parseVal = function _parseVal(value, target, axis, currentVal, offset) {
|
||||
return !isNaN(value) && typeof value !== "object" ? parseFloat(value) - offset : _isString(value) && value.charAt(1) === "=" ? parseFloat(value.substr(2)) * (value.charAt(0) === "-" ? -1 : 1) + currentVal - offset : value === "max" ? _max(target, axis) - offset : Math.min(_max(target, axis), _getOffset(value, target)[axis] - offset);
|
||||
},
|
||||
_initCore = function _initCore() {
|
||||
gsap = _getGSAP();
|
||||
|
||||
if (_windowExists() && gsap && typeof document !== "undefined" && document.body) {
|
||||
_window = window;
|
||||
_body = document.body;
|
||||
_docEl = document.documentElement;
|
||||
_toArray = gsap.utils.toArray;
|
||||
gsap.config({
|
||||
autoKillThreshold: 7
|
||||
});
|
||||
_config = gsap.config();
|
||||
_coreInitted = 1;
|
||||
}
|
||||
};
|
||||
|
||||
var ScrollToPlugin = {
|
||||
version: "3.13.0",
|
||||
name: "scrollTo",
|
||||
rawVars: 1,
|
||||
register: function register(core) {
|
||||
gsap = core;
|
||||
|
||||
_initCore();
|
||||
},
|
||||
init: function init(target, value, tween, index, targets) {
|
||||
_coreInitted || _initCore();
|
||||
var data = this,
|
||||
snapType = gsap.getProperty(target, "scrollSnapType");
|
||||
data.isWin = target === _window;
|
||||
data.target = target;
|
||||
data.tween = tween;
|
||||
value = _clean(value, index, target, targets);
|
||||
data.vars = value;
|
||||
data.autoKill = !!("autoKill" in value ? value : _config).autoKill;
|
||||
data.getX = _buildGetter(target, "x");
|
||||
data.getY = _buildGetter(target, "y");
|
||||
data.x = data.xPrev = data.getX();
|
||||
data.y = data.yPrev = data.getY();
|
||||
ScrollTrigger || (ScrollTrigger = gsap.core.globals().ScrollTrigger);
|
||||
gsap.getProperty(target, "scrollBehavior") === "smooth" && gsap.set(target, {
|
||||
scrollBehavior: "auto"
|
||||
});
|
||||
|
||||
if (snapType && snapType !== "none") {
|
||||
data.snap = 1;
|
||||
data.snapInline = target.style.scrollSnapType;
|
||||
target.style.scrollSnapType = "none";
|
||||
}
|
||||
|
||||
if (value.x != null) {
|
||||
data.add(data, "x", data.x, _parseVal(value.x, target, "x", data.x, value.offsetX || 0), index, targets);
|
||||
|
||||
data._props.push("scrollTo_x");
|
||||
} else {
|
||||
data.skipX = 1;
|
||||
}
|
||||
|
||||
if (value.y != null) {
|
||||
data.add(data, "y", data.y, _parseVal(value.y, target, "y", data.y, value.offsetY || 0), index, targets);
|
||||
|
||||
data._props.push("scrollTo_y");
|
||||
} else {
|
||||
data.skipY = 1;
|
||||
}
|
||||
},
|
||||
render: function render(ratio, data) {
|
||||
var pt = data._pt,
|
||||
target = data.target,
|
||||
tween = data.tween,
|
||||
autoKill = data.autoKill,
|
||||
xPrev = data.xPrev,
|
||||
yPrev = data.yPrev,
|
||||
isWin = data.isWin,
|
||||
snap = data.snap,
|
||||
snapInline = data.snapInline,
|
||||
x,
|
||||
y,
|
||||
yDif,
|
||||
xDif,
|
||||
threshold;
|
||||
|
||||
while (pt) {
|
||||
pt.r(ratio, pt.d);
|
||||
pt = pt._next;
|
||||
}
|
||||
|
||||
x = isWin || !data.skipX ? data.getX() : xPrev;
|
||||
y = isWin || !data.skipY ? data.getY() : yPrev;
|
||||
yDif = y - yPrev;
|
||||
xDif = x - xPrev;
|
||||
threshold = _config.autoKillThreshold;
|
||||
|
||||
if (data.x < 0) {
|
||||
data.x = 0;
|
||||
}
|
||||
|
||||
if (data.y < 0) {
|
||||
data.y = 0;
|
||||
}
|
||||
|
||||
if (autoKill) {
|
||||
if (!data.skipX && (xDif > threshold || xDif < -threshold) && x < _max(target, "x")) {
|
||||
data.skipX = 1;
|
||||
}
|
||||
|
||||
if (!data.skipY && (yDif > threshold || yDif < -threshold) && y < _max(target, "y")) {
|
||||
data.skipY = 1;
|
||||
}
|
||||
|
||||
if (data.skipX && data.skipY) {
|
||||
tween.kill();
|
||||
data.vars.onAutoKill && data.vars.onAutoKill.apply(tween, data.vars.onAutoKillParams || []);
|
||||
}
|
||||
}
|
||||
|
||||
if (isWin) {
|
||||
_window.scrollTo(!data.skipX ? data.x : x, !data.skipY ? data.y : y);
|
||||
} else {
|
||||
data.skipY || (target.scrollTop = data.y);
|
||||
data.skipX || (target.scrollLeft = data.x);
|
||||
}
|
||||
|
||||
if (snap && (ratio === 1 || ratio === 0)) {
|
||||
y = target.scrollTop;
|
||||
x = target.scrollLeft;
|
||||
snapInline ? target.style.scrollSnapType = snapInline : target.style.removeProperty("scroll-snap-type");
|
||||
target.scrollTop = y + 1;
|
||||
target.scrollLeft = x + 1;
|
||||
target.scrollTop = y;
|
||||
target.scrollLeft = x;
|
||||
}
|
||||
|
||||
data.xPrev = data.x;
|
||||
data.yPrev = data.y;
|
||||
ScrollTrigger && ScrollTrigger.update();
|
||||
},
|
||||
kill: function kill(property) {
|
||||
var both = property === "scrollTo",
|
||||
i = this._props.indexOf(property);
|
||||
|
||||
if (both || property === "scrollTo_x") {
|
||||
this.skipX = 1;
|
||||
}
|
||||
|
||||
if (both || property === "scrollTo_y") {
|
||||
this.skipY = 1;
|
||||
}
|
||||
|
||||
i > -1 && this._props.splice(i, 1);
|
||||
return !this._props.length;
|
||||
}
|
||||
};
|
||||
ScrollToPlugin.max = _max;
|
||||
ScrollToPlugin.getOffset = _getOffset;
|
||||
ScrollToPlugin.buildGetter = _buildGetter;
|
||||
|
||||
ScrollToPlugin.config = function (vars) {
|
||||
_config || _initCore() || (_config = gsap.config());
|
||||
|
||||
for (var p in vars) {
|
||||
_config[p] = vars[p];
|
||||
}
|
||||
};
|
||||
|
||||
_getGSAP() && gsap.registerPlugin(ScrollToPlugin);
|
||||
|
||||
exports.ScrollToPlugin = ScrollToPlugin;
|
||||
exports.default = ScrollToPlugin;
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
})));
|
11
network-visualization/node_modules/gsap/dist/ScrollToPlugin.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/ScrollToPlugin.min.js
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
/*!
|
||||
* ScrollToPlugin 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2025, GreenSock. All rights reserved.
|
||||
* Subject to the terms at https://gsap.com/standard-license.
|
||||
* @author: Jack Doyle, jack@greensock.com
|
||||
*/
|
||||
|
||||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).window=e.window||{})}(this,function(e){"use strict";function l(){return"undefined"!=typeof window}function m(){return f||l()&&(f=window.gsap)&&f.registerPlugin&&f}function n(e){return"string"==typeof e}function o(e){return"function"==typeof e}function p(e,t){var o="x"===t?"Width":"Height",n="scroll"+o,r="client"+o;return e===T||e===i||e===c?Math.max(i[n],c[n])-(T["inner"+o]||i[r]||c[r]):e[n]-e["offset"+o]}function q(e,t){var o="scroll"+("x"===t?"Left":"Top");return e===T&&(null!=e.pageXOffset?o="page"+t.toUpperCase()+"Offset":e=null!=i[o]?i:c),function(){return e[o]}}function s(e,t){if(!(e=y(e)[0])||!e.getBoundingClientRect)return console.warn("scrollTo target doesn't exist. Using 0")||{x:0,y:0};var o=e.getBoundingClientRect(),n=!t||t===T||t===c,r=n?{top:i.clientTop-(T.pageYOffset||i.scrollTop||c.scrollTop||0),left:i.clientLeft-(T.pageXOffset||i.scrollLeft||c.scrollLeft||0)}:t.getBoundingClientRect(),l={x:o.left-r.left,y:o.top-r.top};return!n&&t&&(l.x+=q(t,"x")(),l.y+=q(t,"y")()),l}function t(e,t,o,r,l){return isNaN(e)||"object"==typeof e?n(e)&&"="===e.charAt(1)?parseFloat(e.substr(2))*("-"===e.charAt(0)?-1:1)+r-l:"max"===e?p(t,o)-l:Math.min(p(t,o),s(e,t)[o]-l):parseFloat(e)-l}function u(){f=m(),l()&&f&&"undefined"!=typeof document&&document.body&&(T=window,c=document.body,i=document.documentElement,y=f.utils.toArray,f.config({autoKillThreshold:7}),h=f.config(),a=1)}var f,a,T,i,c,y,h,v,r={version:"3.13.0",name:"scrollTo",rawVars:1,register:function register(e){f=e,u()},init:function init(e,r,l,i,s){a||u();var p=this,c=f.getProperty(e,"scrollSnapType");p.isWin=e===T,p.target=e,p.tween=l,r=function _clean(e,t,r,l){if(o(e)&&(e=e(t,r,l)),"object"!=typeof e)return n(e)&&"max"!==e&&"="!==e.charAt(1)?{x:e,y:e}:{y:e};if(e.nodeType)return{y:e,x:e};var i,s={};for(i in e)s[i]="onAutoKill"!==i&&o(e[i])?e[i](t,r,l):e[i];return s}(r,i,e,s),p.vars=r,p.autoKill=!!("autoKill"in r?r:h).autoKill,p.getX=q(e,"x"),p.getY=q(e,"y"),p.x=p.xPrev=p.getX(),p.y=p.yPrev=p.getY(),v=v||f.core.globals().ScrollTrigger,"smooth"===f.getProperty(e,"scrollBehavior")&&f.set(e,{scrollBehavior:"auto"}),c&&"none"!==c&&(p.snap=1,p.snapInline=e.style.scrollSnapType,e.style.scrollSnapType="none"),null!=r.x?(p.add(p,"x",p.x,t(r.x,e,"x",p.x,r.offsetX||0),i,s),p._props.push("scrollTo_x")):p.skipX=1,null!=r.y?(p.add(p,"y",p.y,t(r.y,e,"y",p.y,r.offsetY||0),i,s),p._props.push("scrollTo_y")):p.skipY=1},render:function render(e,t){for(var o,n,r,l,i,s=t._pt,c=t.target,u=t.tween,f=t.autoKill,a=t.xPrev,y=t.yPrev,d=t.isWin,g=t.snap,x=t.snapInline;s;)s.r(e,s.d),s=s._next;o=d||!t.skipX?t.getX():a,r=(n=d||!t.skipY?t.getY():y)-y,l=o-a,i=h.autoKillThreshold,t.x<0&&(t.x=0),t.y<0&&(t.y=0),f&&(!t.skipX&&(i<l||l<-i)&&o<p(c,"x")&&(t.skipX=1),!t.skipY&&(i<r||r<-i)&&n<p(c,"y")&&(t.skipY=1),t.skipX&&t.skipY&&(u.kill(),t.vars.onAutoKill&&t.vars.onAutoKill.apply(u,t.vars.onAutoKillParams||[]))),d?T.scrollTo(t.skipX?o:t.x,t.skipY?n:t.y):(t.skipY||(c.scrollTop=t.y),t.skipX||(c.scrollLeft=t.x)),!g||1!==e&&0!==e||(n=c.scrollTop,o=c.scrollLeft,x?c.style.scrollSnapType=x:c.style.removeProperty("scroll-snap-type"),c.scrollTop=n+1,c.scrollLeft=o+1,c.scrollTop=n,c.scrollLeft=o),t.xPrev=t.x,t.yPrev=t.y,v&&v.update()},kill:function kill(e){var t="scrollTo"===e,o=this._props.indexOf(e);return!t&&"scrollTo_x"!==e||(this.skipX=1),!t&&"scrollTo_y"!==e||(this.skipY=1),-1<o&&this._props.splice(o,1),!this._props.length}};r.max=p,r.getOffset=s,r.buildGetter=q,r.config=function(e){for(var t in h||u()||(h=f.config()),e)h[t]=e[t]},m()&&f.registerPlugin(r),e.ScrollToPlugin=r,e.default=r;if (typeof(window)==="undefined"||window!==e){Object.defineProperty(e,"__esModule",{value:!0})} else {delete e.default}});
|
||||
|
1
network-visualization/node_modules/gsap/dist/ScrollToPlugin.min.js.map
generated
vendored
Normal file
1
network-visualization/node_modules/gsap/dist/ScrollToPlugin.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
3266
network-visualization/node_modules/gsap/dist/ScrollTrigger.js
generated
vendored
Normal file
3266
network-visualization/node_modules/gsap/dist/ScrollTrigger.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
11
network-visualization/node_modules/gsap/dist/ScrollTrigger.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/ScrollTrigger.min.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1
network-visualization/node_modules/gsap/dist/ScrollTrigger.min.js.map
generated
vendored
Normal file
1
network-visualization/node_modules/gsap/dist/ScrollTrigger.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
321
network-visualization/node_modules/gsap/dist/SplitText.js
generated
vendored
Normal file
321
network-visualization/node_modules/gsap/dist/SplitText.js
generated
vendored
Normal file
@@ -0,0 +1,321 @@
|
||||
/*!
|
||||
* SplitText 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2025, GreenSock. All rights reserved. Subject to the terms at https://gsap.com/standard-license.
|
||||
* @author: Jack Doyle
|
||||
*/
|
||||
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.window = global.window || {}));
|
||||
})(this, (function (exports) { 'use strict';
|
||||
|
||||
let gsap, _fonts, _coreInitted, _initIfNecessary = () => _coreInitted || SplitText.register(window.gsap), _charSegmenter = typeof Intl !== "undefined" ? new Intl.Segmenter() : 0, _toArray = (r) => typeof r === "string" ? _toArray(document.querySelectorAll(r)) : "length" in r ? Array.from(r) : [r], _elements = (targets) => _toArray(targets).filter((e) => e instanceof HTMLElement), _emptyArray = [], _context = function() {
|
||||
}, _spacesRegEx = /\s+/g, _emojiSafeRegEx = new RegExp("\\p{RI}\\p{RI}|\\p{Emoji}(\\p{EMod}|\\u{FE0F}\\u{20E3}?|[\\u{E0020}-\\u{E007E}]+\\u{E007F})?(\\u{200D}\\p{Emoji}(\\p{EMod}|\\u{FE0F}\\u{20E3}?|[\\u{E0020}-\\u{E007E}]+\\u{E007F})?)*|.", "gu"), _emptyBounds = { left: 0, top: 0, width: 0, height: 0 }, _stretchToFitSpecialChars = (collection, specialCharsRegEx) => {
|
||||
if (specialCharsRegEx) {
|
||||
let charsFound = new Set(collection.join("").match(specialCharsRegEx) || _emptyArray), i = collection.length, slots, word, char, combined;
|
||||
if (charsFound.size) {
|
||||
while (--i > -1) {
|
||||
word = collection[i];
|
||||
for (char of charsFound) {
|
||||
if (char.startsWith(word) && char.length > word.length) {
|
||||
slots = 0;
|
||||
combined = word;
|
||||
while (char.startsWith(combined += collection[i + ++slots]) && combined.length < char.length) {
|
||||
}
|
||||
if (slots && combined.length === char.length) {
|
||||
collection[i] = char;
|
||||
collection.splice(i + 1, slots);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return collection;
|
||||
}, _disallowInline = (element) => window.getComputedStyle(element).display === "inline" && (element.style.display = "inline-block"), _insertNodeBefore = (newChild, parent, existingChild) => parent.insertBefore(typeof newChild === "string" ? document.createTextNode(newChild) : newChild, existingChild), _getWrapper = (type, config, collection) => {
|
||||
let className = config[type + "sClass"] || "", { tag = "div", aria = "auto", propIndex = false } = config, display = type === "line" ? "block" : "inline-block", incrementClass = className.indexOf("++") > -1, wrapper = (text) => {
|
||||
let el = document.createElement(tag), i = collection.length + 1;
|
||||
className && (el.className = className + (incrementClass ? " " + className + i : ""));
|
||||
propIndex && el.style.setProperty("--" + type, i + "");
|
||||
aria !== "none" && el.setAttribute("aria-hidden", "true");
|
||||
if (tag !== "span") {
|
||||
el.style.position = "relative";
|
||||
el.style.display = display;
|
||||
}
|
||||
el.textContent = text;
|
||||
collection.push(el);
|
||||
return el;
|
||||
};
|
||||
incrementClass && (className = className.replace("++", ""));
|
||||
wrapper.collection = collection;
|
||||
return wrapper;
|
||||
}, _getLineWrapper = (element, nodes, config, collection) => {
|
||||
let lineWrapper = _getWrapper("line", config, collection), textAlign = window.getComputedStyle(element).textAlign || "left";
|
||||
return (startIndex, endIndex) => {
|
||||
let newLine = lineWrapper("");
|
||||
newLine.style.textAlign = textAlign;
|
||||
element.insertBefore(newLine, nodes[startIndex]);
|
||||
for (; startIndex < endIndex; startIndex++) {
|
||||
newLine.appendChild(nodes[startIndex]);
|
||||
}
|
||||
newLine.normalize();
|
||||
};
|
||||
}, _splitWordsAndCharsRecursively = (element, config, wordWrapper, charWrapper, prepForCharsOnly, deepSlice, ignore, charSplitRegEx, specialCharsRegEx, isNested) => {
|
||||
var _a;
|
||||
let nodes = Array.from(element.childNodes), i = 0, { wordDelimiter, reduceWhiteSpace = true, prepareText } = config, elementBounds = element.getBoundingClientRect(), lastBounds = elementBounds, isPreformatted = !reduceWhiteSpace && window.getComputedStyle(element).whiteSpace.substring(0, 3) === "pre", ignoredPreviousSibling = 0, wordsCollection = wordWrapper.collection, wordDelimIsNotSpace, wordDelimString, wordDelimSplitter, curNode, words, curWordEl, startsWithSpace, endsWithSpace, j, bounds, curWordChars, clonedNode, curSubNode, tempSubNode, curTextContent, wordText, lastWordText, k;
|
||||
if (typeof wordDelimiter === "object") {
|
||||
wordDelimSplitter = wordDelimiter.delimiter || wordDelimiter;
|
||||
wordDelimString = wordDelimiter.replaceWith || "";
|
||||
} else {
|
||||
wordDelimString = wordDelimiter === "" ? "" : wordDelimiter || " ";
|
||||
}
|
||||
wordDelimIsNotSpace = wordDelimString !== " ";
|
||||
for (; i < nodes.length; i++) {
|
||||
curNode = nodes[i];
|
||||
if (curNode.nodeType === 3) {
|
||||
curTextContent = curNode.textContent || "";
|
||||
if (reduceWhiteSpace) {
|
||||
curTextContent = curTextContent.replace(_spacesRegEx, " ");
|
||||
} else if (isPreformatted) {
|
||||
curTextContent = curTextContent.replace(/\n/g, wordDelimString + "\n");
|
||||
}
|
||||
prepareText && (curTextContent = prepareText(curTextContent, element));
|
||||
curNode.textContent = curTextContent;
|
||||
words = wordDelimString || wordDelimSplitter ? curTextContent.split(wordDelimSplitter || wordDelimString) : curTextContent.match(charSplitRegEx) || _emptyArray;
|
||||
lastWordText = words[words.length - 1];
|
||||
endsWithSpace = wordDelimIsNotSpace ? lastWordText.slice(-1) === " " : !lastWordText;
|
||||
lastWordText || words.pop();
|
||||
lastBounds = elementBounds;
|
||||
startsWithSpace = wordDelimIsNotSpace ? words[0].charAt(0) === " " : !words[0];
|
||||
startsWithSpace && _insertNodeBefore(" ", element, curNode);
|
||||
words[0] || words.shift();
|
||||
_stretchToFitSpecialChars(words, specialCharsRegEx);
|
||||
deepSlice && isNested || (curNode.textContent = "");
|
||||
for (j = 1; j <= words.length; j++) {
|
||||
wordText = words[j - 1];
|
||||
if (!reduceWhiteSpace && isPreformatted && wordText.charAt(0) === "\n") {
|
||||
(_a = curNode.previousSibling) == null ? void 0 : _a.remove();
|
||||
_insertNodeBefore(document.createElement("br"), element, curNode);
|
||||
wordText = wordText.slice(1);
|
||||
}
|
||||
if (!reduceWhiteSpace && wordText === "") {
|
||||
_insertNodeBefore(wordDelimString, element, curNode);
|
||||
} else if (wordText === " ") {
|
||||
element.insertBefore(document.createTextNode(" "), curNode);
|
||||
} else {
|
||||
wordDelimIsNotSpace && wordText.charAt(0) === " " && _insertNodeBefore(" ", element, curNode);
|
||||
if (ignoredPreviousSibling && j === 1 && !startsWithSpace && wordsCollection.indexOf(ignoredPreviousSibling.parentNode) > -1) {
|
||||
curWordEl = wordsCollection[wordsCollection.length - 1];
|
||||
curWordEl.appendChild(document.createTextNode(charWrapper ? "" : wordText));
|
||||
} else {
|
||||
curWordEl = wordWrapper(charWrapper ? "" : wordText);
|
||||
_insertNodeBefore(curWordEl, element, curNode);
|
||||
ignoredPreviousSibling && j === 1 && !startsWithSpace && curWordEl.insertBefore(ignoredPreviousSibling, curWordEl.firstChild);
|
||||
}
|
||||
if (charWrapper) {
|
||||
curWordChars = _charSegmenter ? _stretchToFitSpecialChars([..._charSegmenter.segment(wordText)].map((s) => s.segment), specialCharsRegEx) : wordText.match(charSplitRegEx) || _emptyArray;
|
||||
for (k = 0; k < curWordChars.length; k++) {
|
||||
curWordEl.appendChild(curWordChars[k] === " " ? document.createTextNode(" ") : charWrapper(curWordChars[k]));
|
||||
}
|
||||
}
|
||||
if (deepSlice && isNested) {
|
||||
curTextContent = curNode.textContent = curTextContent.substring(wordText.length + 1, curTextContent.length);
|
||||
bounds = curWordEl.getBoundingClientRect();
|
||||
if (bounds.top > lastBounds.top && bounds.left <= lastBounds.left) {
|
||||
clonedNode = element.cloneNode();
|
||||
curSubNode = element.childNodes[0];
|
||||
while (curSubNode && curSubNode !== curWordEl) {
|
||||
tempSubNode = curSubNode;
|
||||
curSubNode = curSubNode.nextSibling;
|
||||
clonedNode.appendChild(tempSubNode);
|
||||
}
|
||||
element.parentNode.insertBefore(clonedNode, element);
|
||||
prepForCharsOnly && _disallowInline(clonedNode);
|
||||
}
|
||||
lastBounds = bounds;
|
||||
}
|
||||
if (j < words.length || endsWithSpace) {
|
||||
_insertNodeBefore(j >= words.length ? " " : wordDelimIsNotSpace && wordText.slice(-1) === " " ? " " + wordDelimString : wordDelimString, element, curNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
element.removeChild(curNode);
|
||||
ignoredPreviousSibling = 0;
|
||||
} else if (curNode.nodeType === 1) {
|
||||
if (ignore && ignore.indexOf(curNode) > -1) {
|
||||
wordsCollection.indexOf(curNode.previousSibling) > -1 && wordsCollection[wordsCollection.length - 1].appendChild(curNode);
|
||||
ignoredPreviousSibling = curNode;
|
||||
} else {
|
||||
_splitWordsAndCharsRecursively(curNode, config, wordWrapper, charWrapper, prepForCharsOnly, deepSlice, ignore, charSplitRegEx, specialCharsRegEx, true);
|
||||
ignoredPreviousSibling = 0;
|
||||
}
|
||||
prepForCharsOnly && _disallowInline(curNode);
|
||||
}
|
||||
}
|
||||
};
|
||||
const _SplitText = class _SplitText {
|
||||
constructor(elements, config) {
|
||||
this.isSplit = false;
|
||||
_initIfNecessary();
|
||||
this.elements = _elements(elements);
|
||||
this.chars = [];
|
||||
this.words = [];
|
||||
this.lines = [];
|
||||
this.masks = [];
|
||||
this.vars = config;
|
||||
this._split = () => this.isSplit && this.split(this.vars);
|
||||
let orig = [], timerId, checkWidths = () => {
|
||||
let i = orig.length, o;
|
||||
while (i--) {
|
||||
o = orig[i];
|
||||
let w = o.element.offsetWidth;
|
||||
if (w !== o.width) {
|
||||
o.width = w;
|
||||
this._split();
|
||||
return;
|
||||
}
|
||||
}
|
||||
};
|
||||
this._data = { orig, obs: typeof ResizeObserver !== "undefined" && new ResizeObserver(() => {
|
||||
clearTimeout(timerId);
|
||||
timerId = setTimeout(checkWidths, 200);
|
||||
}) };
|
||||
_context(this);
|
||||
this.split(config);
|
||||
}
|
||||
split(config) {
|
||||
this.isSplit && this.revert();
|
||||
this.vars = config = config || this.vars || {};
|
||||
let { type = "chars,words,lines", aria = "auto", deepSlice = true, smartWrap, onSplit, autoSplit = false, specialChars, mask } = this.vars, splitLines = type.indexOf("lines") > -1, splitCharacters = type.indexOf("chars") > -1, splitWords = type.indexOf("words") > -1, onlySplitCharacters = splitCharacters && !splitWords && !splitLines, specialCharsRegEx = specialChars && ("push" in specialChars ? new RegExp("(?:" + specialChars.join("|") + ")", "gu") : specialChars), finalCharSplitRegEx = specialCharsRegEx ? new RegExp(specialCharsRegEx.source + "|" + _emojiSafeRegEx.source, "gu") : _emojiSafeRegEx, ignore = !!config.ignore && _elements(config.ignore), { orig, animTime, obs } = this._data, onSplitResult;
|
||||
if (splitCharacters || splitWords || splitLines) {
|
||||
this.elements.forEach((element, index) => {
|
||||
orig[index] = {
|
||||
element,
|
||||
html: element.innerHTML,
|
||||
ariaL: element.getAttribute("aria-label"),
|
||||
ariaH: element.getAttribute("aria-hidden")
|
||||
};
|
||||
aria === "auto" ? element.setAttribute("aria-label", (element.textContent || "").trim()) : aria === "hidden" && element.setAttribute("aria-hidden", "true");
|
||||
let chars = [], words = [], lines = [], charWrapper = splitCharacters ? _getWrapper("char", config, chars) : null, wordWrapper = _getWrapper("word", config, words), i, curWord, smartWrapSpan, nextSibling;
|
||||
_splitWordsAndCharsRecursively(element, config, wordWrapper, charWrapper, onlySplitCharacters, deepSlice && (splitLines || onlySplitCharacters), ignore, finalCharSplitRegEx, specialCharsRegEx, false);
|
||||
if (splitLines) {
|
||||
let nodes = _toArray(element.childNodes), wrapLine = _getLineWrapper(element, nodes, config, lines), curNode, toRemove = [], lineStartIndex = 0, allBounds = nodes.map((n) => n.nodeType === 1 ? n.getBoundingClientRect() : _emptyBounds), lastBounds = _emptyBounds;
|
||||
for (i = 0; i < nodes.length; i++) {
|
||||
curNode = nodes[i];
|
||||
if (curNode.nodeType === 1) {
|
||||
if (curNode.nodeName === "BR") {
|
||||
toRemove.push(curNode);
|
||||
wrapLine(lineStartIndex, i + 1);
|
||||
lineStartIndex = i + 1;
|
||||
lastBounds = allBounds[lineStartIndex];
|
||||
} else {
|
||||
if (i && allBounds[i].top > lastBounds.top && allBounds[i].left <= lastBounds.left) {
|
||||
wrapLine(lineStartIndex, i);
|
||||
lineStartIndex = i;
|
||||
}
|
||||
lastBounds = allBounds[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
lineStartIndex < i && wrapLine(lineStartIndex, i);
|
||||
toRemove.forEach((el) => {
|
||||
var _a;
|
||||
return (_a = el.parentNode) == null ? void 0 : _a.removeChild(el);
|
||||
});
|
||||
}
|
||||
if (!splitWords) {
|
||||
for (i = 0; i < words.length; i++) {
|
||||
curWord = words[i];
|
||||
if (splitCharacters || !curWord.nextSibling || curWord.nextSibling.nodeType !== 3) {
|
||||
if (smartWrap && !splitLines) {
|
||||
smartWrapSpan = document.createElement("span");
|
||||
smartWrapSpan.style.whiteSpace = "nowrap";
|
||||
while (curWord.firstChild) {
|
||||
smartWrapSpan.appendChild(curWord.firstChild);
|
||||
}
|
||||
curWord.replaceWith(smartWrapSpan);
|
||||
} else {
|
||||
curWord.replaceWith(...curWord.childNodes);
|
||||
}
|
||||
} else {
|
||||
nextSibling = curWord.nextSibling;
|
||||
if (nextSibling && nextSibling.nodeType === 3) {
|
||||
nextSibling.textContent = (curWord.textContent || "") + (nextSibling.textContent || "");
|
||||
curWord.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
words.length = 0;
|
||||
element.normalize();
|
||||
}
|
||||
this.lines.push(...lines);
|
||||
this.words.push(...words);
|
||||
this.chars.push(...chars);
|
||||
});
|
||||
mask && this[mask] && this.masks.push(...this[mask].map((el) => {
|
||||
let maskEl = el.cloneNode();
|
||||
el.replaceWith(maskEl);
|
||||
maskEl.appendChild(el);
|
||||
el.className && (maskEl.className = el.className.replace(/(\b\w+\b)/g, "$1-mask"));
|
||||
maskEl.style.overflow = "clip";
|
||||
return maskEl;
|
||||
}));
|
||||
}
|
||||
this.isSplit = true;
|
||||
_fonts && (autoSplit ? _fonts.addEventListener("loadingdone", this._split) : _fonts.status === "loading" && console.warn("SplitText called before fonts loaded"));
|
||||
if ((onSplitResult = onSplit && onSplit(this)) && onSplitResult.totalTime) {
|
||||
this._data.anim = animTime ? onSplitResult.totalTime(animTime) : onSplitResult;
|
||||
}
|
||||
splitLines && autoSplit && this.elements.forEach((element, index) => {
|
||||
orig[index].width = element.offsetWidth;
|
||||
obs && obs.observe(element);
|
||||
});
|
||||
return this;
|
||||
}
|
||||
revert() {
|
||||
var _a, _b;
|
||||
let { orig, anim, obs } = this._data;
|
||||
obs && obs.disconnect();
|
||||
orig.forEach(({ element, html, ariaL, ariaH }) => {
|
||||
element.innerHTML = html;
|
||||
ariaL ? element.setAttribute("aria-label", ariaL) : element.removeAttribute("aria-label");
|
||||
ariaH ? element.setAttribute("aria-hidden", ariaH) : element.removeAttribute("aria-hidden");
|
||||
});
|
||||
this.chars.length = this.words.length = this.lines.length = orig.length = this.masks.length = 0;
|
||||
this.isSplit = false;
|
||||
_fonts == null ? void 0 : _fonts.removeEventListener("loadingdone", this._split);
|
||||
if (anim) {
|
||||
this._data.animTime = anim.totalTime();
|
||||
anim.revert();
|
||||
}
|
||||
(_b = (_a = this.vars).onRevert) == null ? void 0 : _b.call(_a, this);
|
||||
return this;
|
||||
}
|
||||
static create(elements, config) {
|
||||
return new _SplitText(elements, config);
|
||||
}
|
||||
static register(core) {
|
||||
gsap = gsap || core || window.gsap;
|
||||
if (gsap) {
|
||||
_toArray = gsap.utils.toArray;
|
||||
_context = gsap.core.context || _context;
|
||||
}
|
||||
if (!_coreInitted && window.innerWidth > 0) {
|
||||
_fonts = document.fonts;
|
||||
_coreInitted = true;
|
||||
}
|
||||
}
|
||||
};
|
||||
_SplitText.version = "3.13.0";
|
||||
let SplitText = _SplitText;
|
||||
|
||||
exports.SplitText = SplitText;
|
||||
exports.default = SplitText;
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
}));
|
11
network-visualization/node_modules/gsap/dist/SplitText.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/SplitText.min.js
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
/*!
|
||||
* SplitText 3.13.0
|
||||
* https://gsap.com
|
||||
*
|
||||
* @license Copyright 2025, GreenSock. All rights reserved. Subject to the terms at https://gsap.com/standard-license.
|
||||
* @author: Jack Doyle
|
||||
*/
|
||||
|
||||
(function(B,A){typeof exports=="object"&&typeof module!="undefined"?A(exports):typeof define=="function"&&define.amd?define(["exports"],A):(B=typeof globalThis!="undefined"?globalThis:B||self,A(B.window=B.window||{}))})(this,function(B){"use strict";let A,_,G,re=()=>G||U.register(window.gsap),V=typeof Intl!="undefined"?new Intl.Segmenter:0,P=e=>typeof e=="string"?P(document.querySelectorAll(e)):"length"in e?Array.from(e):[e],X=e=>P(e).filter(t=>t instanceof HTMLElement),J=[],K=function(){},oe=/\s+/g,Y=new RegExp("\\p{RI}\\p{RI}|\\p{Emoji}(\\p{EMod}|\\u{FE0F}\\u{20E3}?|[\\u{E0020}-\\u{E007E}]+\\u{E007F})?(\\u{200D}\\p{Emoji}(\\p{EMod}|\\u{FE0F}\\u{20E3}?|[\\u{E0020}-\\u{E007E}]+\\u{E007F})?)*|.","gu"),Z={left:0,top:0,width:0,height:0},ee=(e,t)=>{if(t){let s=new Set(e.join("").match(t)||J),i=e.length,o,c,n,a;if(s.size)for(;--i>-1;){c=e[i];for(n of s)if(n.startsWith(c)&&n.length>c.length){for(o=0,a=c;n.startsWith(a+=e[i+ ++o])&&a.length<n.length;);if(o&&a.length===n.length){e[i]=n,e.splice(i+1,o);break}}}}return e},te=e=>window.getComputedStyle(e).display==="inline"&&(e.style.display="inline-block"),z=(e,t,s)=>t.insertBefore(typeof e=="string"?document.createTextNode(e):e,s),Q=(e,t,s)=>{let i=t[e+"sClass"]||"",{tag:o="div",aria:c="auto",propIndex:n=!1}=t,a=e==="line"?"block":"inline-block",h=i.indexOf("++")>-1,b=x=>{let g=document.createElement(o),C=s.length+1;return i&&(g.className=i+(h?" "+i+C:"")),n&&g.style.setProperty("--"+e,C+""),c!=="none"&&g.setAttribute("aria-hidden","true"),o!=="span"&&(g.style.position="relative",g.style.display=a),g.textContent=x,s.push(g),g};return h&&(i=i.replace("++","")),b.collection=s,b},ae=(e,t,s,i)=>{let o=Q("line",s,i),c=window.getComputedStyle(e).textAlign||"left";return(n,a)=>{let h=o("");for(h.style.textAlign=c,e.insertBefore(h,t[n]);n<a;n++)h.appendChild(t[n]);h.normalize()}},ie=(e,t,s,i,o,c,n,a,h,b)=>{var x;let g=Array.from(e.childNodes),C=0,{wordDelimiter:R,reduceWhiteSpace:L=!0,prepareText:$}=t,q=e.getBoundingClientRect(),j=q,D=!L&&window.getComputedStyle(e).whiteSpace.substring(0,3)==="pre",E=0,v=s.collection,r,f,H,l,m,y,I,d,u,W,S,O,T,F,w,p,k,N;for(typeof R=="object"?(H=R.delimiter||R,f=R.replaceWith||""):f=R===""?"":R||" ",r=f!==" ";C<g.length;C++)if(l=g[C],l.nodeType===3){for(w=l.textContent||"",L?w=w.replace(oe," "):D&&(w=w.replace(/\n/g,f+`
|
||||
`)),$&&(w=$(w,e)),l.textContent=w,m=f||H?w.split(H||f):w.match(a)||J,k=m[m.length-1],d=r?k.slice(-1)===" ":!k,k||m.pop(),j=q,I=r?m[0].charAt(0)===" ":!m[0],I&&z(" ",e,l),m[0]||m.shift(),ee(m,h),c&&b||(l.textContent=""),u=1;u<=m.length;u++)if(p=m[u-1],!L&&D&&p.charAt(0)===`
|
||||
`&&((x=l.previousSibling)==null||x.remove(),z(document.createElement("br"),e,l),p=p.slice(1)),!L&&p==="")z(f,e,l);else if(p===" ")e.insertBefore(document.createTextNode(" "),l);else{if(r&&p.charAt(0)===" "&&z(" ",e,l),E&&u===1&&!I&&v.indexOf(E.parentNode)>-1?(y=v[v.length-1],y.appendChild(document.createTextNode(i?"":p))):(y=s(i?"":p),z(y,e,l),E&&u===1&&!I&&y.insertBefore(E,y.firstChild)),i)for(S=V?ee([...V.segment(p)].map(M=>M.segment),h):p.match(a)||J,N=0;N<S.length;N++)y.appendChild(S[N]===" "?document.createTextNode(" "):i(S[N]));if(c&&b){if(w=l.textContent=w.substring(p.length+1,w.length),W=y.getBoundingClientRect(),W.top>j.top&&W.left<=j.left){for(O=e.cloneNode(),T=e.childNodes[0];T&&T!==y;)F=T,T=T.nextSibling,O.appendChild(F);e.parentNode.insertBefore(O,e),o&&te(O)}j=W}(u<m.length||d)&&z(u>=m.length?" ":r&&p.slice(-1)===" "?" "+f:f,e,l)}e.removeChild(l),E=0}else l.nodeType===1&&(n&&n.indexOf(l)>-1?(v.indexOf(l.previousSibling)>-1&&v[v.length-1].appendChild(l),E=l):(ie(l,t,s,i,o,c,n,a,h,!0),E=0),o&&te(l))};const ne=class se{constructor(t,s){this.isSplit=!1,re(),this.elements=X(t),this.chars=[],this.words=[],this.lines=[],this.masks=[],this.vars=s,this._split=()=>this.isSplit&&this.split(this.vars);let i=[],o,c=()=>{let n=i.length,a;for(;n--;){a=i[n];let h=a.element.offsetWidth;if(h!==a.width){a.width=h,this._split();return}}};this._data={orig:i,obs:typeof ResizeObserver!="undefined"&&new ResizeObserver(()=>{clearTimeout(o),o=setTimeout(c,200)})},K(this),this.split(s)}split(t){this.isSplit&&this.revert(),this.vars=t=t||this.vars||{};let{type:s="chars,words,lines",aria:i="auto",deepSlice:o=!0,smartWrap:c,onSplit:n,autoSplit:a=!1,specialChars:h,mask:b}=this.vars,x=s.indexOf("lines")>-1,g=s.indexOf("chars")>-1,C=s.indexOf("words")>-1,R=g&&!C&&!x,L=h&&("push"in h?new RegExp("(?:"+h.join("|")+")","gu"):h),$=L?new RegExp(L.source+"|"+Y.source,"gu"):Y,q=!!t.ignore&&X(t.ignore),{orig:j,animTime:D,obs:E}=this._data,v;return(g||C||x)&&(this.elements.forEach((r,f)=>{j[f]={element:r,html:r.innerHTML,ariaL:r.getAttribute("aria-label"),ariaH:r.getAttribute("aria-hidden")},i==="auto"?r.setAttribute("aria-label",(r.textContent||"").trim()):i==="hidden"&&r.setAttribute("aria-hidden","true");let H=[],l=[],m=[],y=g?Q("char",t,H):null,I=Q("word",t,l),d,u,W,S;if(ie(r,t,I,y,R,o&&(x||R),q,$,L,!1),x){let O=P(r.childNodes),T=ae(r,O,t,m),F,w=[],p=0,k=O.map(M=>M.nodeType===1?M.getBoundingClientRect():Z),N=Z;for(d=0;d<O.length;d++)F=O[d],F.nodeType===1&&(F.nodeName==="BR"?(w.push(F),T(p,d+1),p=d+1,N=k[p]):(d&&k[d].top>N.top&&k[d].left<=N.left&&(T(p,d),p=d),N=k[d]));p<d&&T(p,d),w.forEach(M=>{var le;return(le=M.parentNode)==null?void 0:le.removeChild(M)})}if(!C){for(d=0;d<l.length;d++)if(u=l[d],g||!u.nextSibling||u.nextSibling.nodeType!==3)if(c&&!x){for(W=document.createElement("span"),W.style.whiteSpace="nowrap";u.firstChild;)W.appendChild(u.firstChild);u.replaceWith(W)}else u.replaceWith(...u.childNodes);else S=u.nextSibling,S&&S.nodeType===3&&(S.textContent=(u.textContent||"")+(S.textContent||""),u.remove());l.length=0,r.normalize()}this.lines.push(...m),this.words.push(...l),this.chars.push(...H)}),b&&this[b]&&this.masks.push(...this[b].map(r=>{let f=r.cloneNode();return r.replaceWith(f),f.appendChild(r),r.className&&(f.className=r.className.replace(/(\b\w+\b)/g,"$1-mask")),f.style.overflow="clip",f}))),this.isSplit=!0,_&&(a?_.addEventListener("loadingdone",this._split):_.status==="loading"&&console.warn("SplitText called before fonts loaded")),(v=n&&n(this))&&v.totalTime&&(this._data.anim=D?v.totalTime(D):v),x&&a&&this.elements.forEach((r,f)=>{j[f].width=r.offsetWidth,E&&E.observe(r)}),this}revert(){var t,s;let{orig:i,anim:o,obs:c}=this._data;return c&&c.disconnect(),i.forEach(({element:n,html:a,ariaL:h,ariaH:b})=>{n.innerHTML=a,h?n.setAttribute("aria-label",h):n.removeAttribute("aria-label"),b?n.setAttribute("aria-hidden",b):n.removeAttribute("aria-hidden")}),this.chars.length=this.words.length=this.lines.length=i.length=this.masks.length=0,this.isSplit=!1,_==null||_.removeEventListener("loadingdone",this._split),o&&(this._data.animTime=o.totalTime(),o.revert()),(s=(t=this.vars).onRevert)==null||s.call(t,this),this}static create(t,s){return new se(t,s)}static register(t){A=A||t||window.gsap,A&&(P=A.utils.toArray,K=A.core.context||K),!G&&window.innerWidth>0&&(_=document.fonts,G=!0)}};ne.version="3.13.0";let U=ne;B.SplitText=U,B.default=U,Object.defineProperty(B,"__esModule",{value:!0})});
|
255
network-visualization/node_modules/gsap/dist/TextPlugin.js
generated
vendored
Normal file
255
network-visualization/node_modules/gsap/dist/TextPlugin.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
11
network-visualization/node_modules/gsap/dist/TextPlugin.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/TextPlugin.min.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1
network-visualization/node_modules/gsap/dist/TextPlugin.min.js.map
generated
vendored
Normal file
1
network-visualization/node_modules/gsap/dist/TextPlugin.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
24948
network-visualization/node_modules/gsap/dist/all.js
generated
vendored
Normal file
24948
network-visualization/node_modules/gsap/dist/all.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
5629
network-visualization/node_modules/gsap/dist/gsap.js
generated
vendored
Normal file
5629
network-visualization/node_modules/gsap/dist/gsap.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
11
network-visualization/node_modules/gsap/dist/gsap.min.js
generated
vendored
Normal file
11
network-visualization/node_modules/gsap/dist/gsap.min.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1
network-visualization/node_modules/gsap/dist/gsap.min.js.map
generated
vendored
Normal file
1
network-visualization/node_modules/gsap/dist/gsap.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user