{"version":3,"sources":["../../node_modules/animejs/lib/anime.es.js","helpers.ts","fullScreenScroll.ts","technologies.ts","app.ts","loader.ts","index.ts"],"names":["anime","defaultInstanceSettings","update","begin","loopBegin","changeBegin","change","changeComplete","loopComplete","complete","loop","direction","autoplay","timelineOffset","defaultTweenSettings","duration","delay","endDelay","easing","round","validTransforms","cache","CSS","springs","minMax","val","min","max","Math","stringContains","str","text","indexOf","applyArguments","func","args","apply","is","arr","a","Array","isArray","obj","Object","prototype","toString","call","pth","hasOwnProperty","svg","SVGElement","inp","HTMLInputElement","dom","nodeType","fnc","und","hex","test","rgb","hsl","col","key","parseEasingParameters","string","match","exec","split","map","p","parseFloat","spring","params","mass","stiffness","damping","velocity","w0","sqrt","zeta","wd","b","solver","t","progress","exp","cos","sin","getDuration","cached","frame","elapsed","rest","steps","bezier","kSplineTableSize","kSampleStepSize","A","aA1","aA2","B","C","calcBezier","aT","getSlope","mX1","mY1","mX2","mY2","sampleValues","Float32Array","i","x","getTForX","aX","currentSample","intervalStart","lastSample","dist","guessForT","initialSlope","newtonRaphsonIterate","aGuessT","currentSlope","binarySubdivide","aA","aB","currentX","currentT","abs","penner","eases","linear","functionEasings","Sine","PI","Circ","Back","Bounce","pow2","pow","Elastic","amplitude","period","asin","forEach","name","keys","easeIn","parseEasings","ease","selectString","nodes","document","querySelectorAll","e","filterArray","callback","len","length","thisArg","arguments","result","push","flattenArray","reduce","concat","toArray","o","NodeList","HTMLCollection","slice","arrayContains","some","cloneObject","clone","replaceObjectProps","o1","o2","mergeObjects","rgbToRgba","rgbValue","hexToRgba","hexValue","rgx","replace","m","r","g","parseInt","hslToRgba","hslValue","h","s","l","hue2rgb","q","colorToRgb","getUnit","getTransformUnit","propName","getFunctionValue","animatable","target","id","total","getAttribute","el","prop","convertPxToUnit","value","unit","baseline","tempEl","createElement","tagName","parentEl","parentNode","body","appendChild","style","position","width","factor","offsetWidth","removeChild","convertedUnit","getCSSValue","uppercasePropName","toLowerCase","getComputedStyle","getPropertyValue","getAnimationType","getElementTransforms","transform","reg","transforms","Map","set","getTransformValue","defaultVal","get","list","getOriginalTargetValue","getRelativeValue","to","from","operator","u","y","validateValue","originalUnit","unitLess","substr","getDistance","p1","p2","getCircleLength","getRectLength","getLineLength","getPolylineLength","points","previousPos","totalLength","numberOfItems","currentPos","getItem","getPolygonLength","getTotalLength","setDashoffset","pathLength","setAttribute","getParentSvgEl","getParentSvg","pathEl","svgData","parentSvgEl","rect","getBoundingClientRect","viewBoxAttr","height","viewBox","w","getPath","path","percent","property","getPathProgress","point","offset","getPointAtLength","p0","atan2","decomposeValue","original","numbers","Number","strings","parseTargets","targets","item","pos","self","getAnimatables","parsed","normalizePropertyTweens","tweenSettings","settings","propArray","v","k","flattenKeyframes","keyframes","propertyNames","properties","newKey","getProperties","tweens","normalizeTweenValues","tween","normalizeTweens","previousTween","tweenValue","toUnit","originalValue","previousValue","fromUnit","start","end","isPath","isColor","setProgressValue","css","attribute","object","manual","last","setTargetsValue","valueUnit","animType","createAnimation","lastTween","type","getAnimations","animatables","getInstanceTimings","animations","animLength","getTlOffset","anim","timings","instanceID","createNewInstance","instanceSettings","children","raf","activeInstances","pausedInstances","engine","play","requestAnimationFrame","step","activeInstancesLength","activeInstance","paused","instanceIndex","splice","tick","cancelAnimationFrame","handleVisibilityChange","hidden","ins","pause","running","startTime","lastTime","now","childrenLength","resolve","makePromise","instance","promise","window","Promise","_resolve","finished","toggleInstanceDirection","reversed","child","adjustTime","time","resetTime","currentTime","speed","seekChild","seek","setAnimationsProgress","insTime","animationsLength","tweenLength","eased","isNaN","toNumbersLength","n","toNumber","fromNumber","stringsLength","n$1","currentValue","setCallback","cb","passThrough","setInstanceProgress","engineTime","insDuration","insDelay","insEndDelay","reversePlayback","syncInstanceChildren","i$1","began","loopBegan","changeBegan","changeCompleted","remaining","completed","reset","reverse","restart","removeTargetsFromAnimations","targetsArray","removeTargets","c","childAnimations","stagger","grid","axis","fromIndex","fromFirst","fromCenter","fromLast","isRange","val1","val2","values","maxValue","index","fromX","fromY","floor","distanceX","distanceY","timeline","tl","add","instanceParams","tlIndex","insParams","tlDuration","addEventListener","version","remove","convertPx","random"],"mappings":"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","file":"index.js","sourceRoot":"..\\..\\assets\\scripts","sourcesContent":["/*\n * anime.js v3.1.0\n * (c) 2019 Julian Garnier\n * Released under the MIT license\n * animejs.com\n */\n\n// Defaults\n\nvar defaultInstanceSettings = {\n update: null,\n begin: null,\n loopBegin: null,\n changeBegin: null,\n change: null,\n changeComplete: null,\n loopComplete: null,\n complete: null,\n loop: 1,\n direction: 'normal',\n autoplay: true,\n timelineOffset: 0\n};\n\nvar defaultTweenSettings = {\n duration: 1000,\n delay: 0,\n endDelay: 0,\n easing: 'easeOutElastic(1, .5)',\n round: 0\n};\n\nvar validTransforms = ['translateX', 'translateY', 'translateZ', 'rotate', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'perspective'];\n\n// Caching\n\nvar cache = {\n CSS: {},\n springs: {}\n};\n\n// Utils\n\nfunction minMax(val, min, max) {\n return Math.min(Math.max(val, min), max);\n}\n\nfunction stringContains(str, text) {\n return str.indexOf(text) > -1;\n}\n\nfunction applyArguments(func, args) {\n return func.apply(null, args);\n}\n\nvar is = {\n arr: function (a) { return Array.isArray(a); },\n obj: function (a) { return stringContains(Object.prototype.toString.call(a), 'Object'); },\n pth: function (a) { return is.obj(a) && a.hasOwnProperty('totalLength'); },\n svg: function (a) { return a instanceof SVGElement; },\n inp: function (a) { return a instanceof HTMLInputElement; },\n dom: function (a) { return a.nodeType || is.svg(a); },\n str: function (a) { return typeof a === 'string'; },\n fnc: function (a) { return typeof a === 'function'; },\n und: function (a) { return typeof a === 'undefined'; },\n hex: function (a) { return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(a); },\n rgb: function (a) { return /^rgb/.test(a); },\n hsl: function (a) { return /^hsl/.test(a); },\n col: function (a) { return (is.hex(a) || is.rgb(a) || is.hsl(a)); },\n key: function (a) { return !defaultInstanceSettings.hasOwnProperty(a) && !defaultTweenSettings.hasOwnProperty(a) && a !== 'targets' && a !== 'keyframes'; }\n};\n\n// Easings\n\nfunction parseEasingParameters(string) {\n var match = /\\(([^)]+)\\)/.exec(string);\n return match ? match[1].split(',').map(function (p) { return parseFloat(p); }) : [];\n}\n\n// Spring solver inspired by Webkit Copyright © 2016 Apple Inc. All rights reserved. https://webkit.org/demos/spring/spring.js\n\nfunction spring(string, duration) {\n\n var params = parseEasingParameters(string);\n var mass = minMax(is.und(params[0]) ? 1 : params[0], .1, 100);\n var stiffness = minMax(is.und(params[1]) ? 100 : params[1], .1, 100);\n var damping = minMax(is.und(params[2]) ? 10 : params[2], .1, 100);\n var velocity = minMax(is.und(params[3]) ? 0 : params[3], .1, 100);\n var w0 = Math.sqrt(stiffness / mass);\n var zeta = damping / (2 * Math.sqrt(stiffness * mass));\n var wd = zeta < 1 ? w0 * Math.sqrt(1 - zeta * zeta) : 0;\n var a = 1;\n var b = zeta < 1 ? (zeta * w0 + -velocity) / wd : -velocity + w0;\n\n function solver(t) {\n var progress = duration ? (duration * t) / 1000 : t;\n if (zeta < 1) {\n progress = Math.exp(-progress * zeta * w0) * (a * Math.cos(wd * progress) + b * Math.sin(wd * progress));\n } else {\n progress = (a + b * progress) * Math.exp(-progress * w0);\n }\n if (t === 0 || t === 1) { return t; }\n return 1 - progress;\n }\n\n function getDuration() {\n var cached = cache.springs[string];\n if (cached) { return cached; }\n var frame = 1/6;\n var elapsed = 0;\n var rest = 0;\n while(true) {\n elapsed += frame;\n if (solver(elapsed) === 1) {\n rest++;\n if (rest >= 16) { break; }\n } else {\n rest = 0;\n }\n }\n var duration = elapsed * frame * 1000;\n cache.springs[string] = duration;\n return duration;\n }\n\n return duration ? solver : getDuration;\n\n}\n\n// Basic steps easing implementation https://developer.mozilla.org/fr/docs/Web/CSS/transition-timing-function\n\nfunction steps(steps) {\n if ( steps === void 0 ) steps = 10;\n\n return function (t) { return Math.round(t * steps) * (1 / steps); };\n}\n\n// BezierEasing https://github.com/gre/bezier-easing\n\nvar bezier = (function () {\n\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\n function A(aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1 }\n function B(aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1 }\n function C(aA1) { return 3.0 * aA1 }\n\n function calcBezier(aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT }\n function getSlope(aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1) }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX, currentT, i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) { aB = currentT; } else { aA = currentT; }\n } while (Math.abs(currentX) > 0.0000001 && ++i < 10);\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < 4; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) { return aGuessT; }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n }\n\n function bezier(mX1, mY1, mX2, mY2) {\n\n if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) { return; }\n var sampleValues = new Float32Array(kSplineTableSize);\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n }\n\n function getTForX(aX) {\n\n var intervalStart = 0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample;\n\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= 0.001) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n\n }\n\n return function (x) {\n if (mX1 === mY1 && mX2 === mY2) { return x; }\n if (x === 0 || x === 1) { return x; }\n return calcBezier(getTForX(x), mY1, mY2);\n }\n\n }\n\n return bezier;\n\n})();\n\nvar penner = (function () {\n\n // Based on jQuery UI's implemenation of easing equations from Robert Penner (http://www.robertpenner.com/easing)\n\n var eases = { linear: function () { return function (t) { return t; }; } };\n\n var functionEasings = {\n Sine: function () { return function (t) { return 1 - Math.cos(t * Math.PI / 2); }; },\n Circ: function () { return function (t) { return 1 - Math.sqrt(1 - t * t); }; },\n Back: function () { return function (t) { return t * t * (3 * t - 2); }; },\n Bounce: function () { return function (t) {\n var pow2, b = 4;\n while (t < (( pow2 = Math.pow(2, --b)) - 1) / 11) {}\n return 1 / Math.pow(4, 3 - b) - 7.5625 * Math.pow(( pow2 * 3 - 2 ) / 22 - t, 2)\n }; },\n Elastic: function (amplitude, period) {\n if ( amplitude === void 0 ) amplitude = 1;\n if ( period === void 0 ) period = .5;\n\n var a = minMax(amplitude, 1, 10);\n var p = minMax(period, .1, 2);\n return function (t) {\n return (t === 0 || t === 1) ? t : \n -a * Math.pow(2, 10 * (t - 1)) * Math.sin((((t - 1) - (p / (Math.PI * 2) * Math.asin(1 / a))) * (Math.PI * 2)) / p);\n }\n }\n };\n\n var baseEasings = ['Quad', 'Cubic', 'Quart', 'Quint', 'Expo'];\n\n baseEasings.forEach(function (name, i) {\n functionEasings[name] = function () { return function (t) { return Math.pow(t, i + 2); }; };\n });\n\n Object.keys(functionEasings).forEach(function (name) {\n var easeIn = functionEasings[name];\n eases['easeIn' + name] = easeIn;\n eases['easeOut' + name] = function (a, b) { return function (t) { return 1 - easeIn(a, b)(1 - t); }; };\n eases['easeInOut' + name] = function (a, b) { return function (t) { return t < 0.5 ? easeIn(a, b)(t * 2) / 2 : \n 1 - easeIn(a, b)(t * -2 + 2) / 2; }; };\n });\n\n return eases;\n\n})();\n\nfunction parseEasings(easing, duration) {\n if (is.fnc(easing)) { return easing; }\n var name = easing.split('(')[0];\n var ease = penner[name];\n var args = parseEasingParameters(easing);\n switch (name) {\n case 'spring' : return spring(easing, duration);\n case 'cubicBezier' : return applyArguments(bezier, args);\n case 'steps' : return applyArguments(steps, args);\n default : return applyArguments(ease, args);\n }\n}\n\n// Strings\n\nfunction selectString(str) {\n try {\n var nodes = document.querySelectorAll(str);\n return nodes;\n } catch(e) {\n return;\n }\n}\n\n// Arrays\n\nfunction filterArray(arr, callback) {\n var len = arr.length;\n var thisArg = arguments.length >= 2 ? arguments[1] : void 0;\n var result = [];\n for (var i = 0; i < len; i++) {\n if (i in arr) {\n var val = arr[i];\n if (callback.call(thisArg, val, i, arr)) {\n result.push(val);\n }\n }\n }\n return result;\n}\n\nfunction flattenArray(arr) {\n return arr.reduce(function (a, b) { return a.concat(is.arr(b) ? flattenArray(b) : b); }, []);\n}\n\nfunction toArray(o) {\n if (is.arr(o)) { return o; }\n if (is.str(o)) { o = selectString(o) || o; }\n if (o instanceof NodeList || o instanceof HTMLCollection) { return [].slice.call(o); }\n return [o];\n}\n\nfunction arrayContains(arr, val) {\n return arr.some(function (a) { return a === val; });\n}\n\n// Objects\n\nfunction cloneObject(o) {\n var clone = {};\n for (var p in o) { clone[p] = o[p]; }\n return clone;\n}\n\nfunction replaceObjectProps(o1, o2) {\n var o = cloneObject(o1);\n for (var p in o1) { o[p] = o2.hasOwnProperty(p) ? o2[p] : o1[p]; }\n return o;\n}\n\nfunction mergeObjects(o1, o2) {\n var o = cloneObject(o1);\n for (var p in o2) { o[p] = is.und(o1[p]) ? o2[p] : o1[p]; }\n return o;\n}\n\n// Colors\n\nfunction rgbToRgba(rgbValue) {\n var rgb = /rgb\\((\\d+,\\s*[\\d]+,\\s*[\\d]+)\\)/g.exec(rgbValue);\n return rgb ? (\"rgba(\" + (rgb[1]) + \",1)\") : rgbValue;\n}\n\nfunction hexToRgba(hexValue) {\n var rgx = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n var hex = hexValue.replace(rgx, function (m, r, g, b) { return r + r + g + g + b + b; } );\n var rgb = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n var r = parseInt(rgb[1], 16);\n var g = parseInt(rgb[2], 16);\n var b = parseInt(rgb[3], 16);\n return (\"rgba(\" + r + \",\" + g + \",\" + b + \",1)\");\n}\n\nfunction hslToRgba(hslValue) {\n var hsl = /hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g.exec(hslValue) || /hsla\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%,\\s*([\\d.]+)\\)/g.exec(hslValue);\n var h = parseInt(hsl[1], 10) / 360;\n var s = parseInt(hsl[2], 10) / 100;\n var l = parseInt(hsl[3], 10) / 100;\n var a = hsl[4] || 1;\n function hue2rgb(p, q, t) {\n if (t < 0) { t += 1; }\n if (t > 1) { t -= 1; }\n if (t < 1/6) { return p + (q - p) * 6 * t; }\n if (t < 1/2) { return q; }\n if (t < 2/3) { return p + (q - p) * (2/3 - t) * 6; }\n return p;\n }\n var r, g, b;\n if (s == 0) {\n r = g = b = l;\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n return (\"rgba(\" + (r * 255) + \",\" + (g * 255) + \",\" + (b * 255) + \",\" + a + \")\");\n}\n\nfunction colorToRgb(val) {\n if (is.rgb(val)) { return rgbToRgba(val); }\n if (is.hex(val)) { return hexToRgba(val); }\n if (is.hsl(val)) { return hslToRgba(val); }\n}\n\n// Units\n\nfunction getUnit(val) {\n var split = /[+-]?\\d*\\.?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(val);\n if (split) { return split[1]; }\n}\n\nfunction getTransformUnit(propName) {\n if (stringContains(propName, 'translate') || propName === 'perspective') { return 'px'; }\n if (stringContains(propName, 'rotate') || stringContains(propName, 'skew')) { return 'deg'; }\n}\n\n// Values\n\nfunction getFunctionValue(val, animatable) {\n if (!is.fnc(val)) { return val; }\n return val(animatable.target, animatable.id, animatable.total);\n}\n\nfunction getAttribute(el, prop) {\n return el.getAttribute(prop);\n}\n\nfunction convertPxToUnit(el, value, unit) {\n var valueUnit = getUnit(value);\n if (arrayContains([unit, 'deg', 'rad', 'turn'], valueUnit)) { return value; }\n var cached = cache.CSS[value + unit];\n if (!is.und(cached)) { return cached; }\n var baseline = 100;\n var tempEl = document.createElement(el.tagName);\n var parentEl = (el.parentNode && (el.parentNode !== document)) ? el.parentNode : document.body;\n parentEl.appendChild(tempEl);\n tempEl.style.position = 'absolute';\n tempEl.style.width = baseline + unit;\n var factor = baseline / tempEl.offsetWidth;\n parentEl.removeChild(tempEl);\n var convertedUnit = factor * parseFloat(value);\n cache.CSS[value + unit] = convertedUnit;\n return convertedUnit;\n}\n\nfunction getCSSValue(el, prop, unit) {\n if (prop in el.style) {\n var uppercasePropName = prop.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n var value = el.style[prop] || getComputedStyle(el).getPropertyValue(uppercasePropName) || '0';\n return unit ? convertPxToUnit(el, value, unit) : value;\n }\n}\n\nfunction getAnimationType(el, prop) {\n if (is.dom(el) && !is.inp(el) && (getAttribute(el, prop) || (is.svg(el) && el[prop]))) { return 'attribute'; }\n if (is.dom(el) && arrayContains(validTransforms, prop)) { return 'transform'; }\n if (is.dom(el) && (prop !== 'transform' && getCSSValue(el, prop))) { return 'css'; }\n if (el[prop] != null) { return 'object'; }\n}\n\nfunction getElementTransforms(el) {\n if (!is.dom(el)) { return; }\n var str = el.style.transform || '';\n var reg = /(\\w+)\\(([^)]*)\\)/g;\n var transforms = new Map();\n var m; while (m = reg.exec(str)) { transforms.set(m[1], m[2]); }\n return transforms;\n}\n\nfunction getTransformValue(el, propName, animatable, unit) {\n var defaultVal = stringContains(propName, 'scale') ? 1 : 0 + getTransformUnit(propName);\n var value = getElementTransforms(el).get(propName) || defaultVal;\n if (animatable) {\n animatable.transforms.list.set(propName, value);\n animatable.transforms['last'] = propName;\n }\n return unit ? convertPxToUnit(el, value, unit) : value;\n}\n\nfunction getOriginalTargetValue(target, propName, unit, animatable) {\n switch (getAnimationType(target, propName)) {\n case 'transform': return getTransformValue(target, propName, animatable, unit);\n case 'css': return getCSSValue(target, propName, unit);\n case 'attribute': return getAttribute(target, propName);\n default: return target[propName] || 0;\n }\n}\n\nfunction getRelativeValue(to, from) {\n var operator = /^(\\*=|\\+=|-=)/.exec(to);\n if (!operator) { return to; }\n var u = getUnit(to) || 0;\n var x = parseFloat(from);\n var y = parseFloat(to.replace(operator[0], ''));\n switch (operator[0][0]) {\n case '+': return x + y + u;\n case '-': return x - y + u;\n case '*': return x * y + u;\n }\n}\n\nfunction validateValue(val, unit) {\n if (is.col(val)) { return colorToRgb(val); }\n if (/\\s/g.test(val)) { return val; }\n var originalUnit = getUnit(val);\n var unitLess = originalUnit ? val.substr(0, val.length - originalUnit.length) : val;\n if (unit) { return unitLess + unit; }\n return unitLess;\n}\n\n// getTotalLength() equivalent for circle, rect, polyline, polygon and line shapes\n// adapted from https://gist.github.com/SebLambla/3e0550c496c236709744\n\nfunction getDistance(p1, p2) {\n return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));\n}\n\nfunction getCircleLength(el) {\n return Math.PI * 2 * getAttribute(el, 'r');\n}\n\nfunction getRectLength(el) {\n return (getAttribute(el, 'width') * 2) + (getAttribute(el, 'height') * 2);\n}\n\nfunction getLineLength(el) {\n return getDistance(\n {x: getAttribute(el, 'x1'), y: getAttribute(el, 'y1')}, \n {x: getAttribute(el, 'x2'), y: getAttribute(el, 'y2')}\n );\n}\n\nfunction getPolylineLength(el) {\n var points = el.points;\n var totalLength = 0;\n var previousPos;\n for (var i = 0 ; i < points.numberOfItems; i++) {\n var currentPos = points.getItem(i);\n if (i > 0) { totalLength += getDistance(previousPos, currentPos); }\n previousPos = currentPos;\n }\n return totalLength;\n}\n\nfunction getPolygonLength(el) {\n var points = el.points;\n return getPolylineLength(el) + getDistance(points.getItem(points.numberOfItems - 1), points.getItem(0));\n}\n\n// Path animation\n\nfunction getTotalLength(el) {\n if (el.getTotalLength) { return el.getTotalLength(); }\n switch(el.tagName.toLowerCase()) {\n case 'circle': return getCircleLength(el);\n case 'rect': return getRectLength(el);\n case 'line': return getLineLength(el);\n case 'polyline': return getPolylineLength(el);\n case 'polygon': return getPolygonLength(el);\n }\n}\n\nfunction setDashoffset(el) {\n var pathLength = getTotalLength(el);\n el.setAttribute('stroke-dasharray', pathLength);\n return pathLength;\n}\n\n// Motion path\n\nfunction getParentSvgEl(el) {\n var parentEl = el.parentNode;\n while (is.svg(parentEl)) {\n if (!is.svg(parentEl.parentNode)) { break; }\n parentEl = parentEl.parentNode;\n }\n return parentEl;\n}\n\nfunction getParentSvg(pathEl, svgData) {\n var svg = svgData || {};\n var parentSvgEl = svg.el || getParentSvgEl(pathEl);\n var rect = parentSvgEl.getBoundingClientRect();\n var viewBoxAttr = getAttribute(parentSvgEl, 'viewBox');\n var width = rect.width;\n var height = rect.height;\n var viewBox = svg.viewBox || (viewBoxAttr ? viewBoxAttr.split(' ') : [0, 0, width, height]);\n return {\n el: parentSvgEl,\n viewBox: viewBox,\n x: viewBox[0] / 1,\n y: viewBox[1] / 1,\n w: width / viewBox[2],\n h: height / viewBox[3]\n }\n}\n\nfunction getPath(path, percent) {\n var pathEl = is.str(path) ? selectString(path)[0] : path;\n var p = percent || 100;\n return function(property) {\n return {\n property: property,\n el: pathEl,\n svg: getParentSvg(pathEl),\n totalLength: getTotalLength(pathEl) * (p / 100)\n }\n }\n}\n\nfunction getPathProgress(path, progress) {\n function point(offset) {\n if ( offset === void 0 ) offset = 0;\n\n var l = progress + offset >= 1 ? progress + offset : 0;\n return path.el.getPointAtLength(l);\n }\n var svg = getParentSvg(path.el, path.svg);\n var p = point();\n var p0 = point(-1);\n var p1 = point(+1);\n switch (path.property) {\n case 'x': return (p.x - svg.x) * svg.w;\n case 'y': return (p.y - svg.y) * svg.h;\n case 'angle': return Math.atan2(p1.y - p0.y, p1.x - p0.x) * 180 / Math.PI;\n }\n}\n\n// Decompose value\n\nfunction decomposeValue(val, unit) {\n // const rgx = /-?\\d*\\.?\\d+/g; // handles basic numbers\n // const rgx = /[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?/g; // handles exponents notation\n var rgx = /[+-]?\\d*\\.?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?/g; // handles exponents notation\n var value = validateValue((is.pth(val) ? val.totalLength : val), unit) + '';\n return {\n original: value,\n numbers: value.match(rgx) ? value.match(rgx).map(Number) : [0],\n strings: (is.str(val) || unit) ? value.split(rgx) : []\n }\n}\n\n// Animatables\n\nfunction parseTargets(targets) {\n var targetsArray = targets ? (flattenArray(is.arr(targets) ? targets.map(toArray) : toArray(targets))) : [];\n return filterArray(targetsArray, function (item, pos, self) { return self.indexOf(item) === pos; });\n}\n\nfunction getAnimatables(targets) {\n var parsed = parseTargets(targets);\n return parsed.map(function (t, i) {\n return {target: t, id: i, total: parsed.length, transforms: { list: getElementTransforms(t) } };\n });\n}\n\n// Properties\n\nfunction normalizePropertyTweens(prop, tweenSettings) {\n var settings = cloneObject(tweenSettings);\n // Override duration if easing is a spring\n if (/^spring/.test(settings.easing)) { settings.duration = spring(settings.easing); }\n if (is.arr(prop)) {\n var l = prop.length;\n var isFromTo = (l === 2 && !is.obj(prop[0]));\n if (!isFromTo) {\n // Duration divided by the number of tweens\n if (!is.fnc(tweenSettings.duration)) { settings.duration = tweenSettings.duration / l; }\n } else {\n // Transform [from, to] values shorthand to a valid tween value\n prop = {value: prop};\n }\n }\n var propArray = is.arr(prop) ? prop : [prop];\n return propArray.map(function (v, i) {\n var obj = (is.obj(v) && !is.pth(v)) ? v : {value: v};\n // Default delay value should only be applied to the first tween\n if (is.und(obj.delay)) { obj.delay = !i ? tweenSettings.delay : 0; }\n // Default endDelay value should only be applied to the last tween\n if (is.und(obj.endDelay)) { obj.endDelay = i === propArray.length - 1 ? tweenSettings.endDelay : 0; }\n return obj;\n }).map(function (k) { return mergeObjects(k, settings); });\n}\n\n\nfunction flattenKeyframes(keyframes) {\n var propertyNames = filterArray(flattenArray(keyframes.map(function (key) { return Object.keys(key); })), function (p) { return is.key(p); })\n .reduce(function (a,b) { if (a.indexOf(b) < 0) { a.push(b); } return a; }, []);\n var properties = {};\n var loop = function ( i ) {\n var propName = propertyNames[i];\n properties[propName] = keyframes.map(function (key) {\n var newKey = {};\n for (var p in key) {\n if (is.key(p)) {\n if (p == propName) { newKey.value = key[p]; }\n } else {\n newKey[p] = key[p];\n }\n }\n return newKey;\n });\n };\n\n for (var i = 0; i < propertyNames.length; i++) loop( i );\n return properties;\n}\n\nfunction getProperties(tweenSettings, params) {\n var properties = [];\n var keyframes = params.keyframes;\n if (keyframes) { params = mergeObjects(flattenKeyframes(keyframes), params); }\n for (var p in params) {\n if (is.key(p)) {\n properties.push({\n name: p,\n tweens: normalizePropertyTweens(params[p], tweenSettings)\n });\n }\n }\n return properties;\n}\n\n// Tweens\n\nfunction normalizeTweenValues(tween, animatable) {\n var t = {};\n for (var p in tween) {\n var value = getFunctionValue(tween[p], animatable);\n if (is.arr(value)) {\n value = value.map(function (v) { return getFunctionValue(v, animatable); });\n if (value.length === 1) { value = value[0]; }\n }\n t[p] = value;\n }\n t.duration = parseFloat(t.duration);\n t.delay = parseFloat(t.delay);\n return t;\n}\n\nfunction normalizeTweens(prop, animatable) {\n var previousTween;\n return prop.tweens.map(function (t) {\n var tween = normalizeTweenValues(t, animatable);\n var tweenValue = tween.value;\n var to = is.arr(tweenValue) ? tweenValue[1] : tweenValue;\n var toUnit = getUnit(to);\n var originalValue = getOriginalTargetValue(animatable.target, prop.name, toUnit, animatable);\n var previousValue = previousTween ? previousTween.to.original : originalValue;\n var from = is.arr(tweenValue) ? tweenValue[0] : previousValue;\n var fromUnit = getUnit(from) || getUnit(originalValue);\n var unit = toUnit || fromUnit;\n if (is.und(to)) { to = previousValue; }\n tween.from = decomposeValue(from, unit);\n tween.to = decomposeValue(getRelativeValue(to, from), unit);\n tween.start = previousTween ? previousTween.end : 0;\n tween.end = tween.start + tween.delay + tween.duration + tween.endDelay;\n tween.easing = parseEasings(tween.easing, tween.duration);\n tween.isPath = is.pth(tweenValue);\n tween.isColor = is.col(tween.from.original);\n if (tween.isColor) { tween.round = 1; }\n previousTween = tween;\n return tween;\n });\n}\n\n// Tween progress\n\nvar setProgressValue = {\n css: function (t, p, v) { return t.style[p] = v; },\n attribute: function (t, p, v) { return t.setAttribute(p, v); },\n object: function (t, p, v) { return t[p] = v; },\n transform: function (t, p, v, transforms, manual) {\n transforms.list.set(p, v);\n if (p === transforms.last || manual) {\n var str = '';\n transforms.list.forEach(function (value, prop) { str += prop + \"(\" + value + \") \"; });\n t.style.transform = str;\n }\n }\n};\n\n// Set Value helper\n\nfunction setTargetsValue(targets, properties) {\n var animatables = getAnimatables(targets);\n animatables.forEach(function (animatable) {\n for (var property in properties) {\n var value = getFunctionValue(properties[property], animatable);\n var target = animatable.target;\n var valueUnit = getUnit(value);\n var originalValue = getOriginalTargetValue(target, property, valueUnit, animatable);\n var unit = valueUnit || getUnit(originalValue);\n var to = getRelativeValue(validateValue(value, unit), originalValue);\n var animType = getAnimationType(target, property);\n setProgressValue[animType](target, property, to, animatable.transforms, true);\n }\n });\n}\n\n// Animations\n\nfunction createAnimation(animatable, prop) {\n var animType = getAnimationType(animatable.target, prop.name);\n if (animType) {\n var tweens = normalizeTweens(prop, animatable);\n var lastTween = tweens[tweens.length - 1];\n return {\n type: animType,\n property: prop.name,\n animatable: animatable,\n tweens: tweens,\n duration: lastTween.end,\n delay: tweens[0].delay,\n endDelay: lastTween.endDelay\n }\n }\n}\n\nfunction getAnimations(animatables, properties) {\n return filterArray(flattenArray(animatables.map(function (animatable) {\n return properties.map(function (prop) {\n return createAnimation(animatable, prop);\n });\n })), function (a) { return !is.und(a); });\n}\n\n// Create Instance\n\nfunction getInstanceTimings(animations, tweenSettings) {\n var animLength = animations.length;\n var getTlOffset = function (anim) { return anim.timelineOffset ? anim.timelineOffset : 0; };\n var timings = {};\n timings.duration = animLength ? Math.max.apply(Math, animations.map(function (anim) { return getTlOffset(anim) + anim.duration; })) : tweenSettings.duration;\n timings.delay = animLength ? Math.min.apply(Math, animations.map(function (anim) { return getTlOffset(anim) + anim.delay; })) : tweenSettings.delay;\n timings.endDelay = animLength ? timings.duration - Math.max.apply(Math, animations.map(function (anim) { return getTlOffset(anim) + anim.duration - anim.endDelay; })) : tweenSettings.endDelay;\n return timings;\n}\n\nvar instanceID = 0;\n\nfunction createNewInstance(params) {\n var instanceSettings = replaceObjectProps(defaultInstanceSettings, params);\n var tweenSettings = replaceObjectProps(defaultTweenSettings, params);\n var properties = getProperties(tweenSettings, params);\n var animatables = getAnimatables(params.targets);\n var animations = getAnimations(animatables, properties);\n var timings = getInstanceTimings(animations, tweenSettings);\n var id = instanceID;\n instanceID++;\n return mergeObjects(instanceSettings, {\n id: id,\n children: [],\n animatables: animatables,\n animations: animations,\n duration: timings.duration,\n delay: timings.delay,\n endDelay: timings.endDelay\n });\n}\n\n// Core\n\nvar activeInstances = [];\nvar pausedInstances = [];\nvar raf;\n\nvar engine = (function () {\n function play() { \n raf = requestAnimationFrame(step);\n }\n function step(t) {\n var activeInstancesLength = activeInstances.length;\n if (activeInstancesLength) {\n var i = 0;\n while (i < activeInstancesLength) {\n var activeInstance = activeInstances[i];\n if (!activeInstance.paused) {\n activeInstance.tick(t);\n } else {\n var instanceIndex = activeInstances.indexOf(activeInstance);\n if (instanceIndex > -1) {\n activeInstances.splice(instanceIndex, 1);\n activeInstancesLength = activeInstances.length;\n }\n }\n i++;\n }\n play();\n } else {\n raf = cancelAnimationFrame(raf);\n }\n }\n return play;\n})();\n\nfunction handleVisibilityChange() {\n if (document.hidden) {\n activeInstances.forEach(function (ins) { return ins.pause(); });\n pausedInstances = activeInstances.slice(0);\n anime.running = activeInstances = [];\n } else {\n pausedInstances.forEach(function (ins) { return ins.play(); });\n }\n}\n\nif (typeof document !== 'undefined') {\n document.addEventListener('visibilitychange', handleVisibilityChange);\n}\n\n// Public Instance\n\nfunction anime(params) {\n if ( params === void 0 ) params = {};\n\n\n var startTime = 0, lastTime = 0, now = 0;\n var children, childrenLength = 0;\n var resolve = null;\n\n function makePromise(instance) {\n var promise = window.Promise && new Promise(function (_resolve) { return resolve = _resolve; });\n instance.finished = promise;\n return promise;\n }\n\n var instance = createNewInstance(params);\n var promise = makePromise(instance);\n\n function toggleInstanceDirection() {\n var direction = instance.direction;\n if (direction !== 'alternate') {\n instance.direction = direction !== 'normal' ? 'normal' : 'reverse';\n }\n instance.reversed = !instance.reversed;\n children.forEach(function (child) { return child.reversed = instance.reversed; });\n }\n\n function adjustTime(time) {\n return instance.reversed ? instance.duration - time : time;\n }\n\n function resetTime() {\n startTime = 0;\n lastTime = adjustTime(instance.currentTime) * (1 / anime.speed);\n }\n\n function seekChild(time, child) {\n if (child) { child.seek(time - child.timelineOffset); }\n }\n\n function syncInstanceChildren(time) {\n if (!instance.reversePlayback) {\n for (var i = 0; i < childrenLength; i++) { seekChild(time, children[i]); }\n } else {\n for (var i$1 = childrenLength; i$1--;) { seekChild(time, children[i$1]); }\n }\n }\n\n function setAnimationsProgress(insTime) {\n var i = 0;\n var animations = instance.animations;\n var animationsLength = animations.length;\n while (i < animationsLength) {\n var anim = animations[i];\n var animatable = anim.animatable;\n var tweens = anim.tweens;\n var tweenLength = tweens.length - 1;\n var tween = tweens[tweenLength];\n // Only check for keyframes if there is more than one tween\n if (tweenLength) { tween = filterArray(tweens, function (t) { return (insTime < t.end); })[0] || tween; }\n var elapsed = minMax(insTime - tween.start - tween.delay, 0, tween.duration) / tween.duration;\n var eased = isNaN(elapsed) ? 1 : tween.easing(elapsed);\n var strings = tween.to.strings;\n var round = tween.round;\n var numbers = [];\n var toNumbersLength = tween.to.numbers.length;\n var progress = (void 0);\n for (var n = 0; n < toNumbersLength; n++) {\n var value = (void 0);\n var toNumber = tween.to.numbers[n];\n var fromNumber = tween.from.numbers[n] || 0;\n if (!tween.isPath) {\n value = fromNumber + (eased * (toNumber - fromNumber));\n } else {\n value = getPathProgress(tween.value, eased * toNumber);\n }\n if (round) {\n if (!(tween.isColor && n > 2)) {\n value = Math.round(value * round) / round;\n }\n }\n numbers.push(value);\n }\n // Manual Array.reduce for better performances\n var stringsLength = strings.length;\n if (!stringsLength) {\n progress = numbers[0];\n } else {\n progress = strings[0];\n for (var s = 0; s < stringsLength; s++) {\n var a = strings[s];\n var b = strings[s + 1];\n var n$1 = numbers[s];\n if (!isNaN(n$1)) {\n if (!b) {\n progress += n$1 + ' ';\n } else {\n progress += n$1 + b;\n }\n }\n }\n }\n setProgressValue[anim.type](animatable.target, anim.property, progress, animatable.transforms);\n anim.currentValue = progress;\n i++;\n }\n }\n\n function setCallback(cb) {\n if (instance[cb] && !instance.passThrough) { instance[cb](instance); }\n }\n\n function countIteration() {\n if (instance.remaining && instance.remaining !== true) {\n instance.remaining--;\n }\n }\n\n function setInstanceProgress(engineTime) {\n var insDuration = instance.duration;\n var insDelay = instance.delay;\n var insEndDelay = insDuration - instance.endDelay;\n var insTime = adjustTime(engineTime);\n instance.progress = minMax((insTime / insDuration) * 100, 0, 100);\n instance.reversePlayback = insTime < instance.currentTime;\n if (children) { syncInstanceChildren(insTime); }\n if (!instance.began && instance.currentTime > 0) {\n instance.began = true;\n setCallback('begin');\n }\n if (!instance.loopBegan && instance.currentTime > 0) {\n instance.loopBegan = true;\n setCallback('loopBegin');\n }\n if (insTime <= insDelay && instance.currentTime !== 0) {\n setAnimationsProgress(0);\n }\n if ((insTime >= insEndDelay && instance.currentTime !== insDuration) || !insDuration) {\n setAnimationsProgress(insDuration);\n }\n if (insTime > insDelay && insTime < insEndDelay) {\n if (!instance.changeBegan) {\n instance.changeBegan = true;\n instance.changeCompleted = false;\n setCallback('changeBegin');\n }\n setCallback('change');\n setAnimationsProgress(insTime);\n } else {\n if (instance.changeBegan) {\n instance.changeCompleted = true;\n instance.changeBegan = false;\n setCallback('changeComplete');\n }\n }\n instance.currentTime = minMax(insTime, 0, insDuration);\n if (instance.began) { setCallback('update'); }\n if (engineTime >= insDuration) {\n lastTime = 0;\n countIteration();\n if (!instance.remaining) {\n instance.paused = true;\n if (!instance.completed) {\n instance.completed = true;\n setCallback('loopComplete');\n setCallback('complete');\n if (!instance.passThrough && 'Promise' in window) {\n resolve();\n promise = makePromise(instance);\n }\n }\n } else {\n startTime = now;\n setCallback('loopComplete');\n instance.loopBegan = false;\n if (instance.direction === 'alternate') {\n toggleInstanceDirection();\n }\n }\n }\n }\n\n instance.reset = function() {\n var direction = instance.direction;\n instance.passThrough = false;\n instance.currentTime = 0;\n instance.progress = 0;\n instance.paused = true;\n instance.began = false;\n instance.loopBegan = false;\n instance.changeBegan = false;\n instance.completed = false;\n instance.changeCompleted = false;\n instance.reversePlayback = false;\n instance.reversed = direction === 'reverse';\n instance.remaining = instance.loop;\n children = instance.children;\n childrenLength = children.length;\n for (var i = childrenLength; i--;) { instance.children[i].reset(); }\n if (instance.reversed && instance.loop !== true || (direction === 'alternate' && instance.loop === 1)) { instance.remaining++; }\n setAnimationsProgress(instance.reversed ? instance.duration : 0);\n };\n\n // Set Value helper\n\n instance.set = function(targets, properties) {\n setTargetsValue(targets, properties);\n return instance;\n };\n\n instance.tick = function(t) {\n now = t;\n if (!startTime) { startTime = now; }\n setInstanceProgress((now + (lastTime - startTime)) * anime.speed);\n };\n\n instance.seek = function(time) {\n setInstanceProgress(adjustTime(time));\n };\n\n instance.pause = function() {\n instance.paused = true;\n resetTime();\n };\n\n instance.play = function() {\n if (!instance.paused) { return; }\n if (instance.completed) { instance.reset(); }\n instance.paused = false;\n activeInstances.push(instance);\n resetTime();\n if (!raf) { engine(); }\n };\n\n instance.reverse = function() {\n toggleInstanceDirection();\n resetTime();\n };\n\n instance.restart = function() {\n instance.reset();\n instance.play();\n };\n\n instance.reset();\n\n if (instance.autoplay) { instance.play(); }\n\n return instance;\n\n}\n\n// Remove targets from animation\n\nfunction removeTargetsFromAnimations(targetsArray, animations) {\n for (var a = animations.length; a--;) {\n if (arrayContains(targetsArray, animations[a].animatable.target)) {\n animations.splice(a, 1);\n }\n }\n}\n\nfunction removeTargets(targets) {\n var targetsArray = parseTargets(targets);\n for (var i = activeInstances.length; i--;) {\n var instance = activeInstances[i];\n var animations = instance.animations;\n var children = instance.children;\n removeTargetsFromAnimations(targetsArray, animations);\n for (var c = children.length; c--;) {\n var child = children[c];\n var childAnimations = child.animations;\n removeTargetsFromAnimations(targetsArray, childAnimations);\n if (!childAnimations.length && !child.children.length) { children.splice(c, 1); }\n }\n if (!animations.length && !children.length) { instance.pause(); }\n }\n}\n\n// Stagger helpers\n\nfunction stagger(val, params) {\n if ( params === void 0 ) params = {};\n\n var direction = params.direction || 'normal';\n var easing = params.easing ? parseEasings(params.easing) : null;\n var grid = params.grid;\n var axis = params.axis;\n var fromIndex = params.from || 0;\n var fromFirst = fromIndex === 'first';\n var fromCenter = fromIndex === 'center';\n var fromLast = fromIndex === 'last';\n var isRange = is.arr(val);\n var val1 = isRange ? parseFloat(val[0]) : parseFloat(val);\n var val2 = isRange ? parseFloat(val[1]) : 0;\n var unit = getUnit(isRange ? val[1] : val) || 0;\n var start = params.start || 0 + (isRange ? val1 : 0);\n var values = [];\n var maxValue = 0;\n return function (el, i, t) {\n if (fromFirst) { fromIndex = 0; }\n if (fromCenter) { fromIndex = (t - 1) / 2; }\n if (fromLast) { fromIndex = t - 1; }\n if (!values.length) {\n for (var index = 0; index < t; index++) {\n if (!grid) {\n values.push(Math.abs(fromIndex - index));\n } else {\n var fromX = !fromCenter ? fromIndex%grid[0] : (grid[0]-1)/2;\n var fromY = !fromCenter ? Math.floor(fromIndex/grid[0]) : (grid[1]-1)/2;\n var toX = index%grid[0];\n var toY = Math.floor(index/grid[0]);\n var distanceX = fromX - toX;\n var distanceY = fromY - toY;\n var value = Math.sqrt(distanceX * distanceX + distanceY * distanceY);\n if (axis === 'x') { value = -distanceX; }\n if (axis === 'y') { value = -distanceY; }\n values.push(value);\n }\n maxValue = Math.max.apply(Math, values);\n }\n if (easing) { values = values.map(function (val) { return easing(val / maxValue) * maxValue; }); }\n if (direction === 'reverse') { values = values.map(function (val) { return axis ? (val < 0) ? val * -1 : -val : Math.abs(maxValue - val); }); }\n }\n var spacing = isRange ? (val2 - val1) / maxValue : val1;\n return start + (spacing * (Math.round(values[i] * 100) / 100)) + unit;\n }\n}\n\n// Timeline\n\nfunction timeline(params) {\n if ( params === void 0 ) params = {};\n\n var tl = anime(params);\n tl.duration = 0;\n tl.add = function(instanceParams, timelineOffset) {\n var tlIndex = activeInstances.indexOf(tl);\n var children = tl.children;\n if (tlIndex > -1) { activeInstances.splice(tlIndex, 1); }\n function passThrough(ins) { ins.passThrough = true; }\n for (var i = 0; i < children.length; i++) { passThrough(children[i]); }\n var insParams = mergeObjects(instanceParams, replaceObjectProps(defaultTweenSettings, params));\n insParams.targets = insParams.targets || params.targets;\n var tlDuration = tl.duration;\n insParams.autoplay = false;\n insParams.direction = tl.direction;\n insParams.timelineOffset = is.und(timelineOffset) ? tlDuration : getRelativeValue(timelineOffset, tlDuration);\n passThrough(tl);\n tl.seek(insParams.timelineOffset);\n var ins = anime(insParams);\n passThrough(ins);\n children.push(ins);\n var timings = getInstanceTimings(children, params);\n tl.delay = timings.delay;\n tl.endDelay = timings.endDelay;\n tl.duration = timings.duration;\n tl.seek(0);\n tl.reset();\n if (tl.autoplay) { tl.play(); }\n return tl;\n };\n return tl;\n}\n\nanime.version = '3.1.0';\nanime.speed = 1;\nanime.running = activeInstances;\nanime.remove = removeTargets;\nanime.get = getOriginalTargetValue;\nanime.set = setTargetsValue;\nanime.convertPx = convertPxToUnit;\nanime.path = getPath;\nanime.setDashoffset = setDashoffset;\nanime.stagger = stagger;\nanime.timeline = timeline;\nanime.easing = parseEasings;\nanime.penner = penner;\nanime.random = function (min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; };\n\nexport default anime;\n","const shuffleArray = (array: any[]) => {\r\n\tlet i = array.length - 1;\r\n\r\n\tfor (; i > 0; i--) {\r\n\t\tconst j = Math.floor(Math.random() * (i + 1));\r\n\t\tconst temp = array[i];\r\n\r\n\t\tarray[i] = array[j];\r\n\t\tarray[j] = temp;\r\n\t}\r\n\r\n\treturn array;\r\n}\r\n\r\nconst isMobile = (a => {\r\n\tif (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4))) {\r\n\t\treturn true;\r\n\t}\r\n\r\n\treturn false;\r\n\r\n})(navigator.userAgent || navigator.vendor || (window as any).opera);\r\n\r\n\r\nexport default shuffleArray;\r\nexport { shuffleArray, isMobile };\r\n","import anime from 'animejs';\r\nimport { isMobile } from './helpers';\r\n\r\nexport default class FullScreenScroll {\r\n\tconstructor() {\r\n\t\tthis.main = document.getElementById('main');\r\n\t\tthis.sections = document.getElementsByTagName('section');\r\n\r\n\t\tthis.buildSections();\r\n\t\tthis.addEvents();\r\n\t\tthis.changeCurrentPosition(0);\r\n\t\tthis.registerIeTags();\r\n\r\n\t\tthis.hashChange();\r\n\t}\r\n\r\n\tprivate main: HTMLElement;\r\n\tprivate sections: HTMLCollection;\r\n\r\n\tprivate mTouchStart = 0;\r\n\tprivate mTouchEnd = 0;\r\n\r\n\tprivate currentPosition = 0;\r\n\tprivate animateFunction: string = 'ease';\r\n\tprivate animateTime: number = 0.8;\r\n\r\n\tcurrentPositionListener = (val) => {};\r\n\r\n\tset CurrentPosition(val) {\r\n\t\tthis.currentPosition = val;\r\n\t\tthis.currentPositionListener(val);\r\n\t}\r\n\r\n\tget CurrentPosition() {\r\n\t\treturn this.currentPosition;\r\n\t}\r\n\r\n\tregisterCurrentPositionListener = (listener) => {\r\n\t\tthis.currentPositionListener = listener;\r\n\t}\r\n\r\n\tprivate buildSections = () => {\r\n\t\tfor (let index = 0; index < this.sections.length; index++) {\r\n\t\t\tconst element = this.sections[index];\r\n\t\t\telement.setAttribute('data-index', index.toString());\r\n\t\t}\r\n\r\n\t\tconst sidebarListItems = document.querySelectorAll('#sidebar ul li');\r\n\t\tif (sidebarListItems) {\r\n\t\t\tfor (let i = 0; i < sidebarListItems.length; i++) {\r\n\t\t\t\t(sidebarListItems[i] as HTMLElement).onclick = e => {\r\n\t\t\t\t\tconst pos = (e.srcElement as HTMLElement).getAttribute('data-currentpage');\r\n\t\t\t\t\tif (pos) {\r\n\t\t\t\t\t\tthis.changeCurrentPosition(parseInt(pos));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate addEvents = () => {\r\n\t\tif (document.addEventListener) {\r\n\t\t\tdocument.addEventListener('mousewheel', this.mouseWheelAndKey, false);\r\n\t\t\tdocument.addEventListener('wheel', this.mouseWheelAndKey, false);\r\n\t\t\tdocument.addEventListener('keyup', this.mouseWheelAndKey, false);\r\n\t\t\tdocument.addEventListener('touchstart', this.touchStart, false);\r\n\t\t\tdocument.addEventListener('touchend', this.touchEnd, false);\r\n\t\t\twindow.addEventListener('hashchange', this.hashChange, false);\r\n\r\n\t\t\t/**\r\n\t\t\t * Enable scroll if decive don't have touch support\r\n\t\t\t */\r\n\t\t\tif (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {\r\n\t\t\t\tif (!('ontouchstart' in window)) {\r\n\t\t\t\t\tdocument.body.style.overflow = 'scroll';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\t// attachEvent not on document.\r\n\t\t\t// document.attachEvent('onmousewheel', this.mouseWheelAndKey, false);\r\n\t\t\t// document.attachEvent('onkeyup', this.mouseWheelAndKey, false);\r\n\t\t}\r\n\t};\r\n\r\n\tprivate mouseWheelAndKey = (event: WheelEvent | KeyboardEvent) => {\r\n\t\tif ((event instanceof WheelEvent && event.deltaY > 0) || (event instanceof KeyboardEvent && event.keyCode === 40)) {\r\n\t\t\tthis.currentPosition++;\r\n\t\t\tthis.changeCurrentPosition(this.currentPosition);\r\n\t\t} else if ((event instanceof WheelEvent && event.deltaY < 0) || (event instanceof KeyboardEvent && event.keyCode === 38)) {\r\n\t\t\tthis.currentPosition--;\r\n\t\t\tthis.changeCurrentPosition(this.currentPosition);\r\n\t\t}\r\n\t\tthis.removeEvents();\r\n\t}\r\n\r\n\tprivate touchStart = (event: TouchEvent) => {\r\n\t\tthis.mTouchStart = event.changedTouches[0].clientY;\r\n\t\tthis.mTouchEnd = 0;\r\n\t}\r\n\r\n\tprivate touchEnd = (event: TouchEvent) => {\r\n\t\t// event.preventDefault();\r\n\t\tthis.mTouchEnd = event.changedTouches[0].clientY;\r\n\t\t// console.log(this.mTouchStart, this.mTouchEnd, this.mTouchEnd - this.mTouchStart > 100, this.mTouchStart - this.mTouchEnd > 100)\r\n\t\tif (this.mTouchEnd - this.mTouchStart > 100 || this.mTouchStart - this.mTouchEnd > 100) {\r\n\t\t\tif (this.mTouchEnd > this.mTouchStart) {\r\n\t\t\t\tthis.currentPosition--;\r\n\t\t\t} else {\r\n\t\t\t\tthis.currentPosition++;\r\n\t\t\t}\r\n\t\t\tthis.changeCurrentPosition(this.currentPosition);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate hashChange = (event?: Event) => {\r\n\t\tif (location) {\r\n\t\t\tconst anchor = location.hash.replace('#', '').split('/')[0];\r\n\t\t\tif (anchor) {\r\n\t\t\t\tconst position = parseInt(anchor);\r\n\t\t\t\tif (position < 0) {\r\n\t\t\t\t\tthis.changeCurrentPosition(0);\r\n\t\t\t\t} else if (position > (this.sections.length - 1)) {\r\n\t\t\t\t\tthis.changeCurrentPosition((this.sections.length - 1));\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\tthis.currentPosition = position;\r\n\t\t\t\t\tthis.changeCurrentPosition(position);\r\n\t\t\t\t\tthis.animateScroll();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate removeEvents = () => {\r\n\t\tif (document.addEventListener) {\r\n\t\t\tdocument.removeEventListener('mousewheel', this.mouseWheelAndKey, false);\r\n\t\t\tdocument.removeEventListener('wheel', this.mouseWheelAndKey, false);\r\n\t\t\tdocument.removeEventListener('keyup', this.mouseWheelAndKey, false);\r\n\t\t\tdocument.removeEventListener('touchstart', this.touchStart, false);\r\n\t\t\tdocument.removeEventListener('touchend', this.touchEnd, false);\r\n\r\n\t\t} else {\r\n\t\t\t// document.detachEvent('onmousewheel', this.mouseWheelAndKey, false);\r\n\t\t\t// document.detachEvent('onkeyup', this.mouseWheelAndKey, false);\r\n\t\t}\r\n\r\n\t\t// throttle scroll on desktop\r\n\t\tif (isMobile) {\r\n\t\t\tthis.addEvents();\r\n\t\t} else {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.addEvents();\r\n\t\t\t}, 600);\r\n\t\t}\r\n\t};\r\n\r\n\tprivate animateScroll = () => {\r\n\t\tconst animateTime = this.animateTime;\r\n\t\tconst animateFunction = this.animateFunction;\r\n\t\tconst position = this.currentPosition * 100;\r\n\r\n\t\t// if (isMobile) {\r\n\t\t// \tthis.main.style.transform = 'translateY(-' + position + '%)';\r\n\t\t// \tthis.main.style.webkitTransform = 'translateY(-' + position + '%)';\r\n\t\t// \t(this.main.style as any).mozTransform = 'translateY(-' + position + '%)';\r\n\t\t// \t(this.main.style as any).msTransform = 'translateY(-' + position + '%)';\r\n\r\n\t\t// \tthis.main.style.transition = 'all ' + animateTime + 's ' + animateFunction;\r\n\t\t// \tthis.main.style.webkitTransition = 'all ' + animateTime + 's ' + animateFunction;\r\n\t\t// \t(this.main.style as any).mozTransition = 'all ' + animateTime + 's ' + animateFunction;\r\n\t\t// \t(this.main.style as any).msTransition = 'all ' + animateTime + 's ' + animateFunction;\r\n\t\t// } else {\r\n\t\t// \tanime({\r\n\t\t// \t\ttargets: '#main',\r\n\t\t// \t\ttranslateY: `-${position}%`,\r\n\t\t// \t\tdelay: 0,\r\n\t\t// \t\teasing: 'easeInQuad',\r\n\t\t// \t\tduration: 600\r\n\t\t// \t})\r\n\t\t// }\r\n\r\n\r\n\t\tthis.main.style.transform = 'translateY(-' + position + '%)';\r\n\t\tthis.main.style.webkitTransform = 'translateY(-' + position + '%)';\r\n\t\t// (this.main.style as any).mozTransform = 'translateY(-' + position + '%)';\r\n\t\t// (this.main.style as any).msTransform = 'translateY(-' + position + '%)';\r\n\r\n\t\tthis.main.style.transition = 'all ' + animateTime + 's ' + animateFunction;\r\n\t\tthis.main.style.webkitTransition = 'all ' + animateTime + 's ' + animateFunction;\r\n\t\t// (this.main.style as any).mozTransition = 'all ' + animateTime + 's ' + animateFunction;\r\n\t\t// (this.main.style as any).msTransition = 'all ' + animateTime + 's ' + animateFunction;\r\n\r\n\t\tconst sidebarList = document.querySelector('#sidebar > ul');\r\n\t\tif (sidebarList) {\r\n\t\t\tfor (let i = 0; i < sidebarList.children.length; i++) {\r\n\t\t\t\tsidebarList.children[i].className = this.updateClass(2, 'active', sidebarList.children[i].className);\r\n\t\t\t\tif (i === this.currentPosition) {\r\n\t\t\t\t\tsidebarList.children[i].className = this.updateClass(1, 'active', sidebarList.children[i].className);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tprivate changeCurrentPosition = (position: number) => {\r\n\t\tconst sidebarCurrentPositionEl = document.querySelector('#sidebar .current');\r\n\t\tconst sidebarEl = document.getElementById('sidebar');\r\n\t\tif (position !== null) {\r\n\t\t\tthis.currentPosition = position;\r\n\t\t\tthis.setCurrentPosition(position);\r\n\r\n\t\t\tif (position < 0 || position > this.sections.length - 1) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tconst positionChar = (position + 1).toString();\r\n\t\t\tif (sidebarEl) {\r\n\t\t\t\tsidebarCurrentPositionEl.innerHTML = '0' + positionChar;\r\n\t\t\t\tsidebarEl.className = 'section-' + positionChar;\r\n\t\t\t}\r\n\r\n\t\t\tconst logo = document.querySelector('.algorim.logo');\r\n\t\t\tif (logo) {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tlogo.setAttribute('data-section', positionChar);\r\n\t\t\t\t}, 250);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tprivate setCurrentPosition = (pos: number) => {\r\n\t\tif (pos !== null) {\r\n\t\t\tif (pos < 0) {\r\n\t\t\t\tthis.changeCurrentPosition(0);\r\n\t\t\t} else if (pos > this.sections.length - 1) {\r\n\t\t\t\tthis.changeCurrentPosition(this.sections.length - 1);\r\n\t\t\t} else {\r\n\t\t\t\tthis.currentPosition = pos;\r\n\t\t\t\tthis.animateScroll();\r\n\t\t\t\tthis.CurrentPosition = pos;\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tprivate registerIeTags = () => {\r\n\t\tdocument.createElement('section');\r\n\t};\r\n\r\n\tprivate updateClass = (type: number, newClass: string, currentClass: string) => {\r\n\t\tif (type === 1) {\r\n\t\t\treturn currentClass += ' ' + newClass;\r\n\t\t} else if (type === 2) {\r\n\t\t\treturn currentClass.replace(newClass, '');\r\n\t\t}\r\n\t};\r\n}\r\n","export const technologiesData = [\r\n {\r\n \"id\": 1,\r\n \"name\": \"HTML5\",\r\n },\r\n {\r\n \"id\": 2,\r\n \"name\": \"CSS3\",\r\n },\r\n {\r\n \"id\": 3,\r\n \"name\": \"Javascript\",\r\n },\r\n {\r\n \"id\": 4,\r\n \"name\": \"React\",\r\n },\r\n {\r\n \"id\": 5,\r\n \"name\": \"Mobx\",\r\n },\r\n {\r\n \"id\": 6,\r\n \"name\": \"AngularJS\",\r\n },\r\n {\r\n \"id\": 7,\r\n \"name\": \"ASP.NET\",\r\n },\r\n {\r\n \"id\": 8,\r\n \"name\": \"Typescript\",\r\n },\r\n {\r\n \"id\": 9,\r\n \"name\": \"Amazon S3\",\r\n },\r\n {\r\n \"id\": 10,\r\n \"name\": \"Microsoft Azure\",\r\n },\r\n {\r\n \"id\": 11,\r\n \"name\": \"Microsoft SQL\",\r\n },\r\n {\r\n \"id\": 12,\r\n \"name\": \"iOS\",\r\n },\r\n {\r\n \"id\": 13,\r\n \"name\": \"Android\",\r\n },\r\n {\r\n \"id\": 14,\r\n \"name\": \"C\",\r\n },\r\n {\r\n \"id\": 15,\r\n \"name\": \"Ruby\",\r\n },\r\n {\r\n \"id\": 16,\r\n \"name\": \"PHP\",\r\n },\r\n {\r\n \"id\": 17,\r\n \"name\": \"MySQL\",\r\n },\r\n {\r\n \"id\": 18,\r\n \"name\": \"Wordpress\",\r\n },\r\n {\r\n \"id\": 19,\r\n \"name\": \"Xamarin\",\r\n },\r\n {\r\n \"id\": 20,\r\n \"name\": \"PostgreSQL\",\r\n },\r\n {\r\n \"id\": 21,\r\n \"name\": \"Raspberry Pi\",\r\n },\r\n {\r\n \"id\": 22,\r\n \"name\": \"P25\",\r\n },\r\n {\r\n \"id\": 23,\r\n \"name\": \"SQLite\",\r\n },\r\n {\r\n \"id\": 24,\r\n \"name\": \"ArcGIS\",\r\n },\r\n {\r\n \"id\": 25,\r\n \"name\": \"Oracle\",\r\n },\r\n {\r\n \"id\": 26,\r\n \"name\": \"C++\",\r\n },\r\n {\r\n \"id\": 27,\r\n \"name\": \"ASP.NET Core\",\r\n }\r\n];\r\n\r\nexport default technologiesData;\r\n","import anime from 'animejs';\r\nimport FullScreenScroll from './fullScreenScroll';\r\nimport technologiesData from './technologies';\r\nimport { shuffleArray, isMobile } from './helpers';\r\n\r\nclass App {\r\n\tconstructor() {\r\n\t\tthis.setupTabs();\r\n\t\tthis.setupTechCloud();\r\n\r\n\t\tthis.handleFullscreenViewScroll();\r\n\t}\r\n\r\n\tresetAnimations: boolean = false;\r\n\r\n\tstormAnimation: anime.AnimeTimelineInstance;\r\n\tvinylAnimation: anime.AnimeTimelineInstance;\r\n\taboutAppearAnim: anime.AnimeTimelineInstance;\r\n\trealizeAppearAnimation: anime.AnimeTimelineInstance;\r\n\tlayersAppearAnimation: anime.AnimeTimelineInstance;\r\n\r\n\thandleLogoAppear() {\r\n\t\tconst anim = anime({\r\n\t\t\ttargets: ['.we-are.ready'],\r\n\t\t\ttranslateX: [-420, 0],\r\n\t\t\ttranslateZ: 0,\r\n\t\t\topacity: [0, 1],\r\n\t\t\teasing: \"easeOutExpo\",\r\n\t\t\tduration: 500,\r\n\t\t\tdelay: 0\r\n\t\t});\r\n\t}\r\n\r\n\thandleMenuItemsAppear() {\r\n\t\tconst anim = anime.timeline({\r\n\t\t\tloop: false\r\n\t\t})\r\n\t\t\t.add({\r\n\t\t\t\ttargets: '#sidebar ul li',\r\n\t\t\t\ttranslateX: [60, 0],\r\n\t\t\t\t// translateZ: 0,\r\n\t\t\t\t// rotateY: [-90, 0],\r\n\t\t\t\topacity: [0, 1],\r\n\t\t\t\teasing: \"easeInElastic\",\r\n\t\t\t\t// easing: \"cubicBezier(.36,-0.64,.34,1.76)\",\r\n\t\t\t\tduration: 800,\r\n\t\t\t\tdelay: (anime as any).stagger(150, {\r\n\t\t\t\t\tstart: 700\r\n\t\t\t\t})\r\n\t\t\t\t// delay: (el, i) => {\r\n\t\t\t\t// \treturn 700 + 50 * i;\r\n\t\t\t\t// }\r\n\t\t\t});\r\n\t\t// console.log(anim)\r\n\t}\r\n\r\n\thandleFullscreenViewScroll() {\r\n\t\tconst scroll = new FullScreenScroll();\r\n\t\tlet prevPosition = null;\r\n\r\n\t\tthis.handleTitleAppear();\r\n\t\tthis.handleMenuItemsAppear();\r\n\t\t// this.handleLogoAppear();\r\n\t\tthis.handleStormAppear();\r\n\t\tthis.handleVinylAnimation();\r\n\r\n\t\tscroll.registerCurrentPositionListener((currentPosition: number) => {\r\n\t\t\tif (currentPosition === null || currentPosition < 0 || prevPosition === currentPosition) {\r\n\t\t\t\treturn;\r\n\t\t\t} else {\r\n\t\t\t\tthis.handleTitleAppear(`.section${currentPosition + 1}`);\r\n\t\t\t\t// this.handlePerexAppear(`.section${currentPosition + 1}`);\r\n\t\t\t}\r\n\r\n\t\t\t// this.stormAnimation = null;\r\n\t\t\t// this.vinylAnimation = null;\r\n\t\t\tthis.toggleStormAnimation(true);\r\n\t\t\tthis.toggleVinylAnimation(true);\r\n\r\n\t\t\tif (currentPosition === 0) {\r\n\t\t\t\tthis.toggleStormAnimation();\r\n\t\t\t}\r\n\r\n\t\t\tif (currentPosition === 1) {\r\n\t\t\t\tthis.toggleVinylAnimation();\r\n\t\t\t}\r\n\r\n\t\t\tif (currentPosition === 2) {\r\n\t\t\t\tthis.handleAboutAppear();\r\n\t\t\t}\r\n\r\n\t\t\tif (currentPosition === 3) {\r\n\t\t\t\tthis.handleLayersAppear();\r\n\t\t\t}\r\n\r\n\t\t\tif (currentPosition === 4) {\r\n\t\t\t\tthis.handleRealizeAppear();\r\n\t\t\t}\r\n\r\n\t\t\tprevPosition = currentPosition;\r\n\t\t\t// console.log('current position changed from: ', prevPosition, 'to: ', currentPosition)\r\n\t\t});\r\n\t}\r\n\r\n\thandleTitleAppear(targetSection: string = '.section1') {\r\n\t\tconst targetSectionEl = document.querySelector(targetSection);\r\n\t\tif (!this.resetAnimations && targetSectionEl && targetSectionEl.className.includes('done')) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst anim = anime.timeline({\r\n\t\t\tloop: false\r\n\t\t})\r\n\t\t\t.add({\r\n\t\t\t\ttargets: [`${targetSection} h1 span`, `${targetSection} h2 span`],\r\n\t\t\t\ttranslateX: [40, 0],\r\n\t\t\t\ttranslateZ: 0,\r\n\t\t\t\topacity: [0, 1],\r\n\t\t\t\teasing: \"easeOutExpo\",\r\n\t\t\t\tduration: 2500,\r\n\t\t\t\tdelay: (el, i) => {\r\n\t\t\t\t\treturn 700 + 35 * i;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\tthis.handleThisWayAppear(targetSection)\r\n\r\n\t\tif (targetSection === '.section1') {\r\n\t\t\tconst usAnim = anime.timeline({\r\n\t\t\t\tloop: false\r\n\t\t\t})\r\n\t\t\t\t.add({\r\n\t\t\t\t\ttargets: `.us`,\r\n\t\t\t\t\ttranslateX: [isMobile ? 0 : 300, 0],\r\n\t\t\t\t\ttranslateY: [isMobile ? -300 : 0, 0],\r\n\t\t\t\t\topacity: [0, 1],\r\n\t\t\t\t\teasing: \"easeOutExpo\",\r\n\t\t\t\t\tduration: 2500,\r\n\t\t\t\t\tdelay: 900\r\n\t\t\t\t})\r\n\t\t\t\t.add({\r\n\t\t\t\t\ttargets: `.us h3`,\r\n\t\t\t\t\ttranslateY: [80, 0],\r\n\t\t\t\t\ttranslateZ: 0,\r\n\t\t\t\t\topacity: [0, 1],\r\n\t\t\t\t\teasing: \"easeOutExpo\",\r\n\t\t\t\t\tduration: 2500,\r\n\t\t\t\t\tdelay: 300\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (targetSection === '.section7') {\r\n\t\t\tconst contactSubtitlesAnim = anime.timeline({\r\n\t\t\t\tloop: false\r\n\t\t\t})\r\n\t\t\t\t.add({\r\n\t\t\t\t\ttargets: `.section7 h3 span`,\r\n\t\t\t\t\ttranslateX: [40, 0],\r\n\t\t\t\t\ttranslateZ: 0,\r\n\t\t\t\t\topacity: [0, 1],\r\n\t\t\t\t\teasing: \"easeOutExpo\",\r\n\t\t\t\t\tduration: 2500,\r\n\t\t\t\t\tdelay: (anime as any).stagger(70, {\r\n\t\t\t\t\t\tstart: 500\r\n\t\t\t\t\t})\r\n\t\t\t\t});\r\n\t\t\tconst contactTextsAnim = anime.timeline({\r\n\t\t\t\tloop: false\r\n\t\t\t})\r\n\t\t\t\t.add({\r\n\t\t\t\t\ttargets: `.contact-appear`,\r\n\t\t\t\t\ttranslateX: [-80, 0],\r\n\t\t\t\t\ttranslateZ: 0,\r\n\t\t\t\t\topacity: [0, 1],\r\n\t\t\t\t\teasing: \"easeOutQuad\",\r\n\t\t\t\t\tduration: 900,\r\n\t\t\t\t\tdelay: (anime as any).stagger(120, {\r\n\t\t\t\t\t\tstart: 800\r\n\t\t\t\t\t})\r\n\t\t\t\t})\r\n\t\t\t\t.add({\r\n\t\t\t\t\ttargets: '.contact-svg > path',\r\n\t\t\t\t\tstrokeDashoffset: [anime.setDashoffset, 0],\r\n\t\t\t\t\t// strokeDasharray: '7',\r\n\t\t\t\t\teasing: 'easeInOutSine',\r\n\t\t\t\t\tduration: 1200,\r\n\t\t\t\t\tdirection: 'alternate',\r\n\t\t\t\t\tdelay: (anime as any).stagger(400, {\r\n\t\t\t\t\t\tstart: 900\r\n\t\t\t\t\t}),\r\n\t\t\t\t});\r\n\r\n\t\t\t// const contactBgAnim = anime.timeline({\r\n\t\t\t// \tloop: true,\r\n\t\t\t// })\r\n\t\t\t// .add({\r\n\t\t\t// \ttargets: '.contact-svg > g > path',\r\n\t\t\t// \ttranslateX: [0, -40],\r\n\t\t\t// \teasing: 'linear',\r\n\t\t\t// \tduration: 1200,\r\n\t\t\t// \tdirection: 'normal',\r\n\t\t\t// \tdelay: (anime as any).stagger(300, {\r\n\t\t\t// \t\tstart: 0\r\n\t\t\t// \t}),\r\n\t\t\t// })\r\n\t\t\t// .add({\r\n\t\t\t// \ttargets: '.contact-svg > g > path',\r\n\t\t\t// \ttranslateX: [-40, 0],\r\n\t\t\t// \teasing: 'linear',\r\n\t\t\t// \tduration: 1200,\r\n\t\t\t// \tdirection: 'normal',\r\n\t\t\t// \t// delay: (anime as any).stagger(1600, {\r\n\t\t\t// \t// \tstart: 0\r\n\t\t\t// \t// }),\r\n\t\t\t// })\r\n\r\n\t\t\tconst contactBgAnim2 = anime.timeline({\r\n\t\t\t\tloop: false,\r\n\t\t\t})\r\n\t\t\t\t.add({\r\n\t\t\t\t\ttargets: '.contact-svg > g',\r\n\t\t\t\t\t// strokeDashoffset: [anime.setDashoffset, 0],\r\n\t\t\t\t\t// strokeDasharray: '7',\r\n\t\t\t\t\topacity: [0, 1],\r\n\t\t\t\t\ttranslateX: [-80, 0],\r\n\t\t\t\t\teasing: 'easeInOutSine',\r\n\t\t\t\t\tduration: 1200,\r\n\t\t\t\t\tdirection: 'alternate',\r\n\t\t\t\t\tdelay: (anime as any).stagger(400, {\r\n\t\t\t\t\t\tstart: 900\r\n\t\t\t\t\t})\r\n\t\t\t\t})\r\n\t\t\t\t.add({\r\n\t\t\t\t\ttargets: '.contact-svg > g > g',\r\n\t\t\t\t\topacity: [0, .24],\r\n\t\t\t\t\t// strokeDashoffset: [anime.setDashoffset, 0],\r\n\t\t\t\t\teasing: 'easeInOutSine',\r\n\t\t\t\t\tduration: 1200,\r\n\t\t\t\t\tdirection: 'normal',\r\n\t\t\t\t\tdelay: (anime as any).stagger(1600, {\r\n\t\t\t\t\t\tstart: 900\r\n\t\t\t\t\t}),\r\n\t\t\t\t})\r\n\t\t\t// .add({\r\n\t\t\t// \ttargets: '.contact-svg .movable',\r\n\t\t\t// \ttranslateX: [40, 0],\r\n\t\t\t// \teasing: 'easeInExpo',\r\n\t\t\t// \tduration: 1200,\r\n\t\t\t// \tdirection: 'normal',\r\n\t\t\t// \tdelay: (anime as any).stagger(1600, {\r\n\t\t\t// \t\tstart: 0\r\n\t\t\t// \t}),\r\n\t\t\t// })\r\n\t\t}\r\n\r\n\t\tthis.handlePerexAppear(targetSection);\r\n\t}\r\n\r\n\thandleThisWayAppear(targetSection: string) {\r\n\t\tconst anim = anime.timeline({\r\n\t\t\tloop: false\r\n\t\t})\r\n\t\t\t.add({\r\n\t\t\t\ttargets: [`${targetSection} .this-way`],\r\n\t\t\t\ttranslateX: [40, 0],\r\n\t\t\t\ttranslateZ: 0,\r\n\t\t\t\topacity: [0, 1],\r\n\t\t\t\teasing: \"easeOutExpo\",\r\n\t\t\t\tduration: 2500,\r\n\t\t\t\tdelay: 800\r\n\t\t\t});\r\n\t}\r\n\r\n\thandlePerexAppear(targetSection: string) {\r\n\t\tconst targetSectionEl = document.querySelector(targetSection);\r\n\t\tif (!this.resetAnimations && targetSectionEl && targetSectionEl.className.includes('done')) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst anim = anime.timeline({\r\n\t\t\tloop: false\r\n\t\t})\r\n\t\t\t.add({\r\n\t\t\t\ttargets: [`${targetSection} .perex`],\r\n\t\t\t\ttranslateX: [-80, 0],\r\n\t\t\t\ttranslateZ: 0,\r\n\t\t\t\topacity: [0, 1],\r\n\t\t\t\teasing: \"easeOutQuad\",\r\n\t\t\t\tduration: 900,\r\n\r\n\t\t\t\tdelay: (el, i) => {\r\n\t\t\t\t\treturn 1200 + 700 * i;\r\n\t\t\t\t}\r\n\t\t\t}).finished.then(() => {\r\n\t\t\t\ttargetSectionEl && !this.resetAnimations ? targetSectionEl.className += ' done' : false;\r\n\t\t\t});\r\n\r\n\t\tif (targetSection === '.section2') {\r\n\t\t\tanime({\r\n\t\t\t\ttargets: '.section2 li',\r\n\t\t\t\topacity: [0, 1],\r\n\t\t\t\teasing: \"easeInQuad\",\r\n\t\t\t\tduration: 900,\r\n\t\t\t\tdelay: (anime as any).stagger(200, {\r\n\t\t\t\t\tstart: 600\r\n\t\t\t\t})\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (targetSection === '.section3') {\r\n\t\t\tanime({\r\n\t\t\t\ttargets: '.section3 li',\r\n\t\t\t\topacity: [0, 1],\r\n\t\t\t\teasing: \"easeInQuad\",\r\n\t\t\t\tduration: 900,\r\n\t\t\t\tdelay: (anime as any).stagger(200, {\r\n\t\t\t\t\tstart: 600\r\n\t\t\t\t})\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (targetSection === '.section4') {\r\n\t\t\tanime({\r\n\t\t\t\ttargets: '.section4 h3, .section4 img',\r\n\t\t\t\topacity: [0, 1],\r\n\t\t\t\teasing: \"easeInQuad\",\r\n\t\t\t\tduration: 900,\r\n\t\t\t\tdelay: (anime as any).stagger(200, {\r\n\t\t\t\t\tstart: 600\r\n\t\t\t\t})\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (targetSection === '.section6') {\r\n\t\t\tanime({\r\n\t\t\t\ttargets: '.references li',\r\n\t\t\t\topacity: [0, 1],\r\n\t\t\t\teasing: \"easeInQuad\",\r\n\t\t\t\tduration: 900,\r\n\t\t\t\tdelay: (anime as any).stagger(200, {\r\n\t\t\t\t\tstart: 600\r\n\t\t\t\t})\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (targetSection === '.section8') {\r\n\t\t\tanime({\r\n\t\t\t\ttargets: 'h3, p, nav.nav-tab',\r\n\t\t\t\topacity: [0, 1],\r\n\t\t\t\teasing: \"easeInQuad\",\r\n\t\t\t\tduration: 900,\r\n\t\t\t\tdelay: (anime as any).stagger(50, {\r\n\t\t\t\t\tstart: 600\r\n\t\t\t\t})\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\thandleStormAppear() {\r\n\t\tif (isMobile) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst anim = anime.timeline({\r\n\t\t\tloop: false\r\n\t\t})\r\n\t\t\t.add({\r\n\t\t\t\ttargets: '#storm > g > g',\r\n\t\t\t\ttranslateX: [40, 0],\r\n\t\t\t\ttranslateZ: 0,\r\n\t\t\t\topacity: [0, 1],\r\n\t\t\t\teasing: \"easeOutExpo\",\r\n\t\t\t\tduration: 2500,\r\n\t\t\t\tdelay: (el, i) => {\r\n\t\t\t\t\treturn 700 + 30 * i;\r\n\t\t\t\t}\r\n\t\t\t}).finished.then(() => {\r\n\t\t\t\tthis.handleStormAnimation();\r\n\t\t\t});\r\n\t}\r\n\r\n\thandleStormAnimation() {\r\n\t\tif (this.stormAnimation || isMobile) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.stormAnimation = anime.timeline({\r\n\t\t\tloop: true,\r\n\t\t})\r\n\t\t\t.add({\r\n\t\t\t\ttargets: '#storm > g > g',\r\n\t\t\t\ttranslateX: [0, -5],\r\n\t\t\t\ttranslateZ: 0,\r\n\t\t\t\teasing: \"easeOutExpo\",\r\n\t\t\t\tduration: 800,\r\n\t\t\t\tdelay: (el, i) => {\r\n\t\t\t\t\treturn 250 + 40 * i;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.add({\r\n\t\t\t\ttargets: '#storm > g > g',\r\n\t\t\t\ttranslateX: [-5, 0],\r\n\t\t\t\ttranslateZ: 0,\r\n\t\t\t\teasing: \"easeInExpo\",\r\n\t\t\t\tduration: 800,\r\n\t\t\t\tdelay: (el, i) => {\r\n\t\t\t\t\treturn 250 + 40 * i;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\ttoggleStormAnimation(pause: boolean = false) {\r\n\t\tif (isMobile) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.stormAnimation && pause && !this.stormAnimation.paused) {\r\n\t\t\t// anime.remove(this.stormAnimation)\r\n\t\t\tthis.stormAnimation.pause();\r\n\t\t\t// console.log('paused', this.stormAnimation)\r\n\r\n\t\t\treturn;\r\n\t\t} else if (this.stormAnimation && !pause && this.stormAnimation.paused) {\r\n\t\t\tthis.stormAnimation.play();\r\n\t\t\t// console.log('unpaused', this.stormAnimation)\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n\r\n\thandleVinylAnimation() {\r\n\t\tif (isMobile || this.vinylAnimation) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.vinylAnimation = anime.timeline({\r\n\t\t\tloop: true,\r\n\t\t})\r\n\t\t\t.add({\r\n\t\t\t\ttargets: '.vinyl-svg > path',\r\n\t\t\t\ttranslateX: [0, -15],\r\n\t\t\t\ttranslateZ: 0,\r\n\t\t\t\teasing: \"easeOutBounce\",\r\n\t\t\t\tduration: 600,\r\n\t\t\t\tdelay: (el, i) => {\r\n\t\t\t\t\treturn 250 + 30 * i;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.add({\r\n\t\t\t\ttargets: '.vinyl-svg > path',\r\n\t\t\t\tdirection: 'reverse',\r\n\t\t\t\ttranslateX: [-15, 0],\r\n\t\t\t\ttranslateZ: 0,\r\n\t\t\t\teasing: \"easeInBounce\",\r\n\t\t\t\tduration: 600,\r\n\t\t\t\tdelay: (el, i) => {\r\n\t\t\t\t\treturn 250 + 30 * i;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\ttoggleVinylAnimation(pause: boolean = false) {\r\n\t\tif (isMobile) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.vinylAnimation && pause && !this.vinylAnimation.paused) {\r\n\t\t\tthis.vinylAnimation.pause();\r\n\t\t\t// console.log('paused', this.vinylAnimation)\r\n\r\n\t\t\treturn;\r\n\t\t} else if (this.vinylAnimation && !pause && this.vinylAnimation.paused) {\r\n\t\t\tthis.vinylAnimation.play();\r\n\t\t\t// console.log('unpaused', this.vinylAnimation)\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n\r\n\thandleAboutAppear() {\r\n\t\tif (!this.resetAnimations && this.aboutAppearAnim) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.aboutAppearAnim = anime.timeline({\r\n\t\t\tloop: false\r\n\t\t})\r\n\t\t\t// Group 1\r\n\t\t\t// .add({\r\n\t\t\t// \ttargets: '.about-svg .about-g-1 > circle',\r\n\t\t\t// \topacity: [0, 1],\r\n\t\t\t// \teasing: 'linear',\r\n\t\t\t// \tduration: 400,\r\n\t\t\t// \tdelay: 100,\r\n\t\t\t// })\r\n\t\t\t.add({\r\n\t\t\t\ttargets: '.about-svg .about-g-1',\r\n\t\t\t\ttranslatex: [40, 0],\r\n\t\t\t\ttranslateZ: 0,\r\n\t\t\t\topacity: [0, 1],\r\n\t\t\t\teasing: 'easeOutQuad',\r\n\t\t\t\tduration: 100,\r\n\t\t\t\tdelay: (el, i) => {\r\n\t\t\t\t\treturn 150 * i;\r\n\t\t\t\t},\r\n\t\t\t})\r\n\t\t\t.add({\r\n\t\t\t\ttargets: '.about-svg .about-path-1',\r\n\t\t\t\tstrokeDashoffset: [anime.setDashoffset, 0],\r\n\t\t\t\tstrokeDasharray: '7',\r\n\t\t\t\teasing: 'easeInOutSine',\r\n\t\t\t\tduration: 500,\r\n\t\t\t\tdelay: 10,\r\n\t\t\t\tdirection: 'alternate',\r\n\t\t\t})\r\n\r\n\t\t\t// Group 2\r\n\t\t\t// .add({\r\n\t\t\t// \ttargets: '.about-svg .about-g-2 > circle',\r\n\t\t\t// \topacity: [0, 1],\r\n\t\t\t// \teasing: 'linear',\r\n\t\t\t// \tduration: 500,\r\n\t\t\t// \tdelay: (el, i) => {\r\n\t\t\t// \t\treturn 300 * i;\r\n\t\t\t// \t}\r\n\t\t\t// })\r\n\t\t\t.add({\r\n\t\t\t\ttargets: '.about-svg .about-g-2',\r\n\t\t\t\ttranslateX: [-40, 0],\r\n\t\t\t\ttranslateZ: 0,\r\n\t\t\t\topacity: [0, 1],\r\n\t\t\t\teasing: 'easeOutQuad',\r\n\t\t\t\tduration: 500,\r\n\t\t\t\tdelay: (el, i) => {\r\n\t\t\t\t\treturn 250 * i;\r\n\t\t\t\t},\r\n\t\t\t})\r\n\t\t\t.add({\r\n\t\t\t\ttargets: '.about-svg .about-path-2',\r\n\t\t\t\tstrokeDashoffset: [anime.setDashoffset, 0],\r\n\t\t\t\tstrokeDasharray: '7',\r\n\t\t\t\teasing: 'easeInOutSine',\r\n\t\t\t\tduration: 500,\r\n\t\t\t\tdelay: 10,\r\n\t\t\t\tdirection: 'reverse',\r\n\t\t\t})\r\n\t\t\t// Group 3\r\n\t\t\t// .add({\r\n\t\t\t// \ttargets: '.about-svg .about-g-3 > circle',\r\n\t\t\t// \topacity: [0, 1],\r\n\t\t\t// \teasing: 'linear',\r\n\t\t\t// \tduration: 500,\r\n\t\t\t// \tdelay: (el, i) => {\r\n\t\t\t// \t\treturn 300 * i;\r\n\t\t\t// \t}\r\n\t\t\t// })\r\n\t\t\t.add({\r\n\t\t\t\ttargets: '.about-svg .about-g-3',\r\n\t\t\t\ttranslateX: [40, 0],\r\n\t\t\t\ttranslateZ: 0,\r\n\t\t\t\topacity: [0, 1],\r\n\t\t\t\teasing: 'easeOutQuad',\r\n\t\t\t\tduration: 500,\r\n\t\t\t\tdelay: (el, i) => {\r\n\t\t\t\t\treturn 250 * i;\r\n\t\t\t\t},\r\n\t\t\t})\r\n\t\t\t.add({\r\n\t\t\t\ttargets: '.about-svg .about-path-3',\r\n\t\t\t\tstrokeDashoffset: [anime.setDashoffset, 0],\r\n\t\t\t\tstrokeDasharray: '7',\r\n\t\t\t\teasing: 'easeInOutSine',\r\n\t\t\t\tduration: 500,\r\n\t\t\t\tdelay: 10,\r\n\t\t\t\tdirection: 'normal',\r\n\t\t\t})\r\n\t\t\t// Group 4\r\n\t\t\t// .add({\r\n\t\t\t// \ttargets: '.about-svg .about-g-4 > circle',\r\n\t\t\t// \topacity: [0, 1],\r\n\t\t\t// \teasing: 'linear',\r\n\t\t\t// \tduration: 500,\r\n\t\t\t// \tdelay: (el, i) => {\r\n\t\t\t// \t\treturn 300 * i;\r\n\t\t\t// \t}\r\n\t\t\t// })\r\n\t\t\t.add({\r\n\t\t\t\ttargets: ['.about-svg .about-g-4'],\r\n\t\t\t\ttranslateY: [-40, 0],\r\n\t\t\t\ttranslateZ: 0,\r\n\t\t\t\topacity: [0, 1],\r\n\t\t\t\teasing: 'easeOutQuad',\r\n\t\t\t\tduration: 500,\r\n\t\t\t\tdelay: (el, i) => {\r\n\t\t\t\t\treturn 250 * i;\r\n\t\t\t\t},\r\n\t\t\t})\r\n\t}\r\n\r\n\thandleRealizeAppear() {\r\n\t\tif (!this.resetAnimations && this.realizeAppearAnimation) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.realizeAppearAnimation = anime.timeline({\r\n\t\t\tloop: false\r\n\t\t})\r\n\t\t\t.add({\r\n\t\t\t\ttargets: '.realize-svg > path',\r\n\t\t\t\tstrokeDashoffset: [anime.setDashoffset, 7],\r\n\t\t\t\tstrokeDasharray: '7',\r\n\t\t\t\teasing: 'easeInOutSine',\r\n\t\t\t\tduration: 1500,\r\n\t\t\t\tdelay: function (el, i) {\r\n\t\t\t\t\treturn i * 550\r\n\t\t\t\t},\r\n\t\t\t\tdirection: 'alternate',\r\n\t\t\t})\r\n\t\t\t.add({\r\n\t\t\t\ttargets: [`.realize-svg > g`],\r\n\t\t\t\tscale: [14, 1],\r\n\t\t\t\topacity: [0, 1],\r\n\t\t\t\teasing: 'easeOutCirc',\r\n\t\t\t\tduration: 900,\r\n\t\t\t\tdelay: (el, i) => {\r\n\t\t\t\t\treturn 800 * i;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.add({\r\n\t\t\t\ttargets: '.tech-cloud li',\r\n\t\t\t\topacity: [0, 1],\r\n\t\t\t\t// translateX: [-25, 0],\r\n\t\t\t\t// easing: \"easeInExpo\",\r\n\t\t\t\teasing: \"easeInQuad\",\r\n\t\t\t\tduration: 950,\r\n\t\t\t\tdelay: function (el, i) {\r\n\t\t\t\t\treturn 250 * i\r\n\t\t\t\t}\r\n\t\t\t}, -800);\r\n\t}\r\n\r\n\thandleLayersAppear() {\r\n\t\tif (!this.resetAnimations && this.layersAppearAnimation) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tdocument.querySelectorAll('.col- > i').forEach(element => {\r\n\t\t\telement.setAttribute('style', '');\r\n\t\t});\r\n\r\n\r\n\t\t(this.layersAppearAnimation as any) = anime.timeline({\r\n\t\t\tloop: false\r\n\t\t})\r\n\t\t\t.add({\r\n\t\t\t\ttargets: [`.col- > i`],\r\n\t\t\t\ttranslateX: [-80, 0],\r\n\t\t\t\ttranslateZ: 0,\r\n\t\t\t\topacity: [0, 1],\r\n\t\t\t\teasing: \"easeOutQuad\",\r\n\t\t\t\tduration: 900,\r\n\r\n\t\t\t\tdelay: (el, i) => {\r\n\t\t\t\t\treturn 1200 + 700 * i;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.add({\r\n\t\t\t\ttargets: [`.layers-list > li > a`],\r\n\t\t\t\ttranslateX: [-80, 0],\r\n\t\t\t\ttranslateZ: 0,\r\n\t\t\t\topacity: [0, 1],\r\n\t\t\t\teasing: \"easeOutQuad\",\r\n\t\t\t\tduration: 900,\r\n\t\t\t\tdelay: (el, i) => {\r\n\t\t\t\t\treturn 1200 + 700 * i;\r\n\t\t\t\t}\r\n\t\t\t}, -200)\r\n\t\t\t.add({\r\n\t\t\t\ttargets: [`.layers-list > li > a.active + div`],\r\n\t\t\t\topacity: [0, 1],\r\n\t\t\t\teasing: \"easeInQuad\",\r\n\t\t\t\tduration: 700,\r\n\t\t\t\tdelay: 500,\r\n\t\t\t}).finished.then(() => {\r\n\t\t\t\t// this.handleLayersAnimation();\r\n\t\t\t});\r\n\t}\r\n\r\n\thandleLayersAnimation() {\r\n\t\tconst layersAnim = anime.timeline({\r\n\t\t\tloop: true,\r\n\t\t})\r\n\t\t\t.add({\r\n\t\t\t\ttargets: '.col- .layer',\r\n\t\t\t\ttranslateY: [0, -30],\r\n\t\t\t\teasing: 'easeInElastic',\r\n\t\t\t\tduration: 2500,\r\n\t\t\t\tdelay: (el, i) => {\r\n\t\t\t\t\treturn 750 * i;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.add({\r\n\t\t\t\ttargets: '.col- .layer',\r\n\t\t\t\ttranslateY: [-30, 0],\r\n\t\t\t\teasing: 'easeOutElastic',\r\n\t\t\t\tduration: 2500,\r\n\t\t\t\tdelay: (el, i) => {\r\n\t\t\t\t\treturn 750 * i;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\treturn false\r\n\t}\r\n\r\n\tsetupTabs() {\r\n\t\tconst tabItems = document.querySelectorAll('.layers-list > li > a');\r\n\r\n\t\tfor (let i = 0; i < tabItems.length; i++) {\r\n\t\t\tconst element = tabItems[i];\r\n\t\t\t(element as HTMLElement).onclick = e => {\r\n\t\t\t\ttabItems.forEach(e => e.className = '');\r\n\t\t\t\t(e.srcElement as HTMLElement).className = 'active';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tsetupTechCloud() {\r\n\t\tconst techCloud = document.querySelector('.tech-cloud');\r\n\r\n\t\tshuffleArray(technologiesData).map(t => {\r\n\t\t\tconst techListItem = document.createElement('li');\r\n\t\t\ttechListItem.innerText = t.name;\r\n\t\t\ttechCloud.appendChild(techListItem);\r\n\t\t});\r\n\t}\r\n}\r\n\r\nexport default App;\r\nexport { App };\r\n","import anime from 'animejs';\r\nimport App from './app';\r\nimport { isMobile } from './helpers';\r\n\r\nclass Loader {\r\n\tconstructor(skipLoading: boolean = false) {\r\n\t\tif (skipLoading) {\r\n\t\t\tdocument.querySelector('.we-are.loading').remove();\r\n\t\t\tnew App();\r\n\t\t} else {\r\n\t\t\tthis.handleLoader();\r\n\t\t}\r\n\t}\r\n\r\n\tapp: App;\r\n\r\n\thandleLoader() {\r\n\t\tconst sidebar = document.getElementById('sidebar');\r\n\r\n\t\tconst loadingAnim = anime.timeline({\r\n\t\t\t\tloop: false\r\n\t\t\t})\r\n\t\t\t.add({\r\n\t\t\t\ttargets: [`.we-are.loading > svg`],\r\n\t\t\t\tscale: [5, 1],\r\n\t\t\t\topacity: [0, 1],\r\n\t\t\t\teasing: \"easeOutExpo\",\r\n\t\t\t\tduration: 800,\r\n\t\t\t\tdelay: 100\r\n\t\t\t})\r\n\t\t\t.add({\r\n\t\t\t\ttargets: '.we-are.loading > div span',\r\n\t\t\t\ttranslateX: [40, 0],\r\n\t\t\t\ttranslateZ: 0,\r\n\t\t\t\topacity: [0, 1],\r\n\t\t\t\teasing: \"easeOutExpo\",\r\n\t\t\t\tduration: 600,\r\n\t\t\t\tdelay: function (el, i) {\r\n\t\t\t\t\treturn 80 + 30 * i;\r\n\t\t\t\t}\r\n\t\t\t}).add({\r\n\t\t\t\ttargets: '.we-are.loading > div span',\r\n\t\t\t\ttranslateX: [0, -30],\r\n\t\t\t\topacity: [1, 0],\r\n\t\t\t\teasing: \"easeInExpo\",\r\n\t\t\t\tduration: 300,\r\n\t\t\t\tdelay: function (el, i) {\r\n\t\t\t\t\treturn 80 + 30 * i;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.add({\r\n\t\t\t\ttargets: [`.we-are.loading > svg`],\r\n\t\t\t\t// scale: [1, 20],\r\n\t\t\t\ttranslateX: [0, 400],\r\n\t\t\t\trotate: [0, 360],\r\n\t\t\t\topacity: [1, 0],\r\n\t\t\t\teasing: \"cubicBezier(.5, .05, .1, .3)\",\r\n\t\t\t\tduration: 300,\r\n\t\t\t\tdelay: 80,\r\n\t\t\t})\r\n\t\t\t.add({\r\n\t\t\t\ttargets: [`.we-are.loading`],\r\n\t\t\t\ttranslateX: [0, `calc(100% - ${sidebar ? sidebar.clientWidth + 'px' : 0})`],\r\n\t\t\t\t// translateX: [0, `100%`],\r\n\t\t\t\t// translatey: [0, '-100%'],\r\n\t\t\t\t// borderRadius: [0, '100%'],\r\n\t\t\t\t// opacity: [1, 0],\r\n\t\t\t\teasing: \"easeInOutCubic\",\r\n\t\t\t\tduration: 900,\r\n\t\t\t\tdelay: 80,\r\n\t\t\t\tbegin: e => {\r\n\t\t\t\t\tconst anim = anime({\r\n\t\t\t\t\t\ttargets: ['.we-are.ready'],\r\n\t\t\t\t\t\ttranslateX: [-420, 0],\r\n\t\t\t\t\t\ttranslateZ: 0,\r\n\t\t\t\t\t\topacity: [0, 1],\r\n\t\t\t\t\t\teasing: \"easeOutExpo\",\r\n\t\t\t\t\t\tduration: 500,\r\n\t\t\t\t\t\tdelay: 350\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\tupdate: e => {\r\n\t\t\t\t\t// dont add delay on mobile\r\n\t\t\t\t\tif (isMobile) {\r\n\t\t\t\t\t\tif (!this.app) {\r\n\t\t\t\t\t\t\tthis.app = new App();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ((e.duration - e.currentTime) <= 600) {\r\n\t\t\t\t\t\tif (!this.app) {\r\n\t\t\t\t\t\t\tthis.app = new App();\r\n\r\n\t\t\t\t\t\t\t// const finishAnim = anime.timeline({\r\n\t\t\t\t\t\t\t// \tloop: false,\r\n\t\t\t\t\t\t\t// })\r\n\t\t\t\t\t\t\t// .add({\r\n\t\t\t\t\t\t\t// \ttargets: [`.we-are.loading`],\r\n\t\t\t\t\t\t\t// \topacity: [1, 0],\r\n\t\t\t\t\t\t\t// \tduration: 400,\r\n\t\t\t\t\t\t\t// \tdelay: 0\r\n\t\t\t\t\t\t\t// }).finished.then(() => {\r\n\t\t\t\t\t\t\t// \tdocument.querySelector('.we-are.loading').remove();\r\n\t\t\t\t\t\t\t// });\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// \tshouldFinish = true;\r\n\r\n\t\t\t\t\t// \tif (shouldFinish) {\r\n\t\t\t\t\t// \t\tstartedFinish = true;\r\n\r\n\t\t\t\t\t// \t\tconsole.log('<')\r\n\t\t\t\t\t// \t\tconsole.log(loadingAnim)\r\n\t\t\t\t\t// \t\tconsole.log(loadingAnim.currentTime)\r\n\t\t\t\t\t// \t\tconsole.log(loadingAnim.duration)\r\n\t\t\t\t\t// \t\tconsole.log(loadingAnim.duration - loadingAnim.currentTime === 100)\r\n\t\t\t\t\t// \t\tconsole.log('/>')\r\n\r\n\t\t\t\t\t// \t\treturn;\r\n\t\t\t\t\t// \t}\r\n\t\t\t\t\t// }\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t// .add({\r\n\t\t\t// \ttargets: null,\r\n\t\t\t// \tdelay: 0,\r\n\t\t\t// // \tbegin: function(anim) {\r\n\t\t\t// \tconst anim = anime({\r\n\t\t\t// \t\ttargets: ['.we-are.ready'],\r\n\t\t\t// \t\ttranslateX: [-420, 0],\r\n\t\t\t// \t\ttranslateZ: 0,\r\n\t\t\t// \t\topacity: [0, 1],\r\n\t\t\t// \t\teasing: \"easeOutExpo\",\r\n\t\t\t// \t\tduration: 500,\r\n\t\t\t// \t\tdelay: 0\r\n\t\t\t// \t});\r\n\t\t\t// // \t\tconsole.log('fopo')\r\n\t\t\t// // \t\tnew App();\r\n\t\t\t// // \t}\r\n\t\t\t// }, '200ms')\r\n\t\t\t.add({\r\n\t\t\t\ttargets: [`.we-are.loading`],\r\n\t\t\t\topacity: [1, 0],\r\n\t\t\t\tduration: 400,\r\n\t\t\t\tdelay: 0,\r\n\t\t\t}).finished.then(() => {\r\n\t\t\t\tdocument.querySelector('.we-are.loading').remove();\r\n\t\t\t});\r\n\r\n\t\t// loadingAnim.\r\n\t\t// const finishAnim = anime.timeline({\r\n\t\t// \tloop: false,\r\n\t\t// })\r\n\t\t// .add({\r\n\t\t// \ttargets: [`.we-are.loading`],\r\n\t\t// \topacity: [1, 0],\r\n\t\t// \tduration: 400,\r\n\t\t// \tdelay: loadingAnim.remaining\r\n\t\t// })\r\n\t}\r\n}\r\n\r\nexport default Loader;\r\nexport { Loader };\r\n","import '../styles/app.scss';\r\nimport Loader from './loader';\r\n\r\nnew Loader(false);\r\n"]}