{"mappings":"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","sources":["node_modules/vanilla-tilt/lib/vanilla-tilt.js","src/data/scrollRevealConfig.js","src/scripts/scrollReveal.js","src/index.js","src/scripts/tiltAnimation.js"],"sourcesContent":["'use strict';\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\n/**\n * Created by Sergiu Șandor (micku7zu) on 1/27/2017.\n * Original idea: https://github.com/gijsroge/tilt.js\n * MIT License.\n * Version 1.7.2\n */\n\nvar VanillaTilt = function () {\n function VanillaTilt(element) {\n var settings = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, VanillaTilt);\n\n if (!(element instanceof Node)) {\n throw \"Can't initialize VanillaTilt because \" + element + \" is not a Node.\";\n }\n\n this.width = null;\n this.height = null;\n this.clientWidth = null;\n this.clientHeight = null;\n this.left = null;\n this.top = null;\n\n // for Gyroscope sampling\n this.gammazero = null;\n this.betazero = null;\n this.lastgammazero = null;\n this.lastbetazero = null;\n\n this.transitionTimeout = null;\n this.updateCall = null;\n this.event = null;\n\n this.updateBind = this.update.bind(this);\n this.resetBind = this.reset.bind(this);\n\n this.element = element;\n this.settings = this.extendSettings(settings);\n\n this.reverse = this.settings.reverse ? -1 : 1;\n this.glare = VanillaTilt.isSettingTrue(this.settings.glare);\n this.glarePrerender = VanillaTilt.isSettingTrue(this.settings[\"glare-prerender\"]);\n this.fullPageListening = VanillaTilt.isSettingTrue(this.settings[\"full-page-listening\"]);\n this.gyroscope = VanillaTilt.isSettingTrue(this.settings.gyroscope);\n this.gyroscopeSamples = this.settings.gyroscopeSamples;\n\n this.elementListener = this.getElementListener();\n\n if (this.glare) {\n this.prepareGlare();\n }\n\n if (this.fullPageListening) {\n this.updateClientSize();\n }\n\n this.addEventListeners();\n this.reset();\n this.updateInitialPosition();\n }\n\n VanillaTilt.isSettingTrue = function isSettingTrue(setting) {\n return setting === \"\" || setting === true || setting === 1;\n };\n\n /**\n * Method returns element what will be listen mouse events\n * @return {Node}\n */\n\n\n VanillaTilt.prototype.getElementListener = function getElementListener() {\n if (this.fullPageListening) {\n return window.document;\n }\n\n if (typeof this.settings[\"mouse-event-element\"] === \"string\") {\n var mouseEventElement = document.querySelector(this.settings[\"mouse-event-element\"]);\n\n if (mouseEventElement) {\n return mouseEventElement;\n }\n }\n\n if (this.settings[\"mouse-event-element\"] instanceof Node) {\n return this.settings[\"mouse-event-element\"];\n }\n\n return this.element;\n };\n\n /**\n * Method set listen methods for this.elementListener\n * @return {Node}\n */\n\n\n VanillaTilt.prototype.addEventListeners = function addEventListeners() {\n this.onMouseEnterBind = this.onMouseEnter.bind(this);\n this.onMouseMoveBind = this.onMouseMove.bind(this);\n this.onMouseLeaveBind = this.onMouseLeave.bind(this);\n this.onWindowResizeBind = this.onWindowResize.bind(this);\n this.onDeviceOrientationBind = this.onDeviceOrientation.bind(this);\n\n this.elementListener.addEventListener(\"mouseenter\", this.onMouseEnterBind);\n this.elementListener.addEventListener(\"mouseleave\", this.onMouseLeaveBind);\n this.elementListener.addEventListener(\"mousemove\", this.onMouseMoveBind);\n\n if (this.glare || this.fullPageListening) {\n window.addEventListener(\"resize\", this.onWindowResizeBind);\n }\n\n if (this.gyroscope) {\n window.addEventListener(\"deviceorientation\", this.onDeviceOrientationBind);\n }\n };\n\n /**\n * Method remove event listeners from current this.elementListener\n */\n\n\n VanillaTilt.prototype.removeEventListeners = function removeEventListeners() {\n this.elementListener.removeEventListener(\"mouseenter\", this.onMouseEnterBind);\n this.elementListener.removeEventListener(\"mouseleave\", this.onMouseLeaveBind);\n this.elementListener.removeEventListener(\"mousemove\", this.onMouseMoveBind);\n\n if (this.gyroscope) {\n window.removeEventListener(\"deviceorientation\", this.onDeviceOrientationBind);\n }\n\n if (this.glare || this.fullPageListening) {\n window.removeEventListener(\"resize\", this.onWindowResizeBind);\n }\n };\n\n VanillaTilt.prototype.destroy = function destroy() {\n clearTimeout(this.transitionTimeout);\n if (this.updateCall !== null) {\n cancelAnimationFrame(this.updateCall);\n }\n\n this.reset();\n\n this.removeEventListeners();\n this.element.vanillaTilt = null;\n delete this.element.vanillaTilt;\n\n this.element = null;\n };\n\n VanillaTilt.prototype.onDeviceOrientation = function onDeviceOrientation(event) {\n if (event.gamma === null || event.beta === null) {\n return;\n }\n\n this.updateElementPosition();\n\n if (this.gyroscopeSamples > 0) {\n this.lastgammazero = this.gammazero;\n this.lastbetazero = this.betazero;\n\n if (this.gammazero === null) {\n this.gammazero = event.gamma;\n this.betazero = event.beta;\n } else {\n this.gammazero = (event.gamma + this.lastgammazero) / 2;\n this.betazero = (event.beta + this.lastbetazero) / 2;\n }\n\n this.gyroscopeSamples -= 1;\n }\n\n var totalAngleX = this.settings.gyroscopeMaxAngleX - this.settings.gyroscopeMinAngleX;\n var totalAngleY = this.settings.gyroscopeMaxAngleY - this.settings.gyroscopeMinAngleY;\n\n var degreesPerPixelX = totalAngleX / this.width;\n var degreesPerPixelY = totalAngleY / this.height;\n\n var angleX = event.gamma - (this.settings.gyroscopeMinAngleX + this.gammazero);\n var angleY = event.beta - (this.settings.gyroscopeMinAngleY + this.betazero);\n\n var posX = angleX / degreesPerPixelX;\n var posY = angleY / degreesPerPixelY;\n\n if (this.updateCall !== null) {\n cancelAnimationFrame(this.updateCall);\n }\n\n this.event = {\n clientX: posX + this.left,\n clientY: posY + this.top\n };\n\n this.updateCall = requestAnimationFrame(this.updateBind);\n };\n\n VanillaTilt.prototype.onMouseEnter = function onMouseEnter() {\n this.updateElementPosition();\n this.element.style.willChange = \"transform\";\n this.setTransition();\n };\n\n VanillaTilt.prototype.onMouseMove = function onMouseMove(event) {\n if (this.updateCall !== null) {\n cancelAnimationFrame(this.updateCall);\n }\n\n this.event = event;\n this.updateCall = requestAnimationFrame(this.updateBind);\n };\n\n VanillaTilt.prototype.onMouseLeave = function onMouseLeave() {\n this.setTransition();\n\n if (this.settings.reset) {\n requestAnimationFrame(this.resetBind);\n }\n };\n\n VanillaTilt.prototype.reset = function reset() {\n this.event = {\n clientX: this.left + this.width / 2,\n clientY: this.top + this.height / 2\n };\n\n if (this.element && this.element.style) {\n this.element.style.transform = \"perspective(\" + this.settings.perspective + \"px) \" + \"rotateX(0deg) \" + \"rotateY(0deg) \" + \"scale3d(1, 1, 1)\";\n }\n\n this.resetGlare();\n };\n\n VanillaTilt.prototype.resetGlare = function resetGlare() {\n if (this.glare) {\n this.glareElement.style.transform = \"rotate(180deg) translate(-50%, -50%)\";\n this.glareElement.style.opacity = \"0\";\n }\n };\n\n VanillaTilt.prototype.updateInitialPosition = function updateInitialPosition() {\n if (this.settings.startX === 0 && this.settings.startY === 0) {\n return;\n }\n\n this.onMouseEnter();\n\n if (this.fullPageListening) {\n this.event = {\n clientX: (this.settings.startX + this.settings.max) / (2 * this.settings.max) * this.clientWidth,\n clientY: (this.settings.startY + this.settings.max) / (2 * this.settings.max) * this.clientHeight\n };\n } else {\n this.event = {\n clientX: this.left + (this.settings.startX + this.settings.max) / (2 * this.settings.max) * this.width,\n clientY: this.top + (this.settings.startY + this.settings.max) / (2 * this.settings.max) * this.height\n };\n }\n\n var backupScale = this.settings.scale;\n this.settings.scale = 1;\n this.update();\n this.settings.scale = backupScale;\n this.resetGlare();\n };\n\n VanillaTilt.prototype.getValues = function getValues() {\n var x = void 0,\n y = void 0;\n\n if (this.fullPageListening) {\n x = this.event.clientX / this.clientWidth;\n y = this.event.clientY / this.clientHeight;\n } else {\n x = (this.event.clientX - this.left) / this.width;\n y = (this.event.clientY - this.top) / this.height;\n }\n\n x = Math.min(Math.max(x, 0), 1);\n y = Math.min(Math.max(y, 0), 1);\n\n var tiltX = (this.reverse * (this.settings.max - x * this.settings.max * 2)).toFixed(2);\n var tiltY = (this.reverse * (y * this.settings.max * 2 - this.settings.max)).toFixed(2);\n var angle = Math.atan2(this.event.clientX - (this.left + this.width / 2), -(this.event.clientY - (this.top + this.height / 2))) * (180 / Math.PI);\n\n return {\n tiltX: tiltX,\n tiltY: tiltY,\n percentageX: x * 100,\n percentageY: y * 100,\n angle: angle\n };\n };\n\n VanillaTilt.prototype.updateElementPosition = function updateElementPosition() {\n var rect = this.element.getBoundingClientRect();\n\n this.width = this.element.offsetWidth;\n this.height = this.element.offsetHeight;\n this.left = rect.left;\n this.top = rect.top;\n };\n\n VanillaTilt.prototype.update = function update() {\n var values = this.getValues();\n\n this.element.style.transform = \"perspective(\" + this.settings.perspective + \"px) \" + \"rotateX(\" + (this.settings.axis === \"x\" ? 0 : values.tiltY) + \"deg) \" + \"rotateY(\" + (this.settings.axis === \"y\" ? 0 : values.tiltX) + \"deg) \" + \"scale3d(\" + this.settings.scale + \", \" + this.settings.scale + \", \" + this.settings.scale + \")\";\n\n if (this.glare) {\n this.glareElement.style.transform = \"rotate(\" + values.angle + \"deg) translate(-50%, -50%)\";\n this.glareElement.style.opacity = \"\" + values.percentageY * this.settings[\"max-glare\"] / 100;\n }\n\n this.element.dispatchEvent(new CustomEvent(\"tiltChange\", {\n \"detail\": values\n }));\n\n this.updateCall = null;\n };\n\n /**\n * Appends the glare element (if glarePrerender equals false)\n * and sets the default style\n */\n\n\n VanillaTilt.prototype.prepareGlare = function prepareGlare() {\n // If option pre-render is enabled we assume all html/css is present for an optimal glare effect.\n if (!this.glarePrerender) {\n // Create glare element\n var jsTiltGlare = document.createElement(\"div\");\n jsTiltGlare.classList.add(\"js-tilt-glare\");\n\n var jsTiltGlareInner = document.createElement(\"div\");\n jsTiltGlareInner.classList.add(\"js-tilt-glare-inner\");\n\n jsTiltGlare.appendChild(jsTiltGlareInner);\n this.element.appendChild(jsTiltGlare);\n }\n\n this.glareElementWrapper = this.element.querySelector(\".js-tilt-glare\");\n this.glareElement = this.element.querySelector(\".js-tilt-glare-inner\");\n\n if (this.glarePrerender) {\n return;\n }\n\n Object.assign(this.glareElementWrapper.style, {\n \"position\": \"absolute\",\n \"top\": \"0\",\n \"left\": \"0\",\n \"width\": \"100%\",\n \"height\": \"100%\",\n \"overflow\": \"hidden\",\n \"pointer-events\": \"none\"\n });\n\n Object.assign(this.glareElement.style, {\n \"position\": \"absolute\",\n \"top\": \"50%\",\n \"left\": \"50%\",\n \"pointer-events\": \"none\",\n \"background-image\": \"linear-gradient(0deg, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%)\",\n \"transform\": \"rotate(180deg) translate(-50%, -50%)\",\n \"transform-origin\": \"0% 0%\",\n \"opacity\": \"0\"\n });\n\n this.updateGlareSize();\n };\n\n VanillaTilt.prototype.updateGlareSize = function updateGlareSize() {\n if (this.glare) {\n var glareSize = (this.element.offsetWidth > this.element.offsetHeight ? this.element.offsetWidth : this.element.offsetHeight) * 2;\n\n Object.assign(this.glareElement.style, {\n \"width\": glareSize + \"px\",\n \"height\": glareSize + \"px\"\n });\n }\n };\n\n VanillaTilt.prototype.updateClientSize = function updateClientSize() {\n this.clientWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\n\n this.clientHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\n };\n\n VanillaTilt.prototype.onWindowResize = function onWindowResize() {\n this.updateGlareSize();\n this.updateClientSize();\n };\n\n VanillaTilt.prototype.setTransition = function setTransition() {\n var _this = this;\n\n clearTimeout(this.transitionTimeout);\n this.element.style.transition = this.settings.speed + \"ms \" + this.settings.easing;\n if (this.glare) this.glareElement.style.transition = \"opacity \" + this.settings.speed + \"ms \" + this.settings.easing;\n\n this.transitionTimeout = setTimeout(function () {\n _this.element.style.transition = \"\";\n if (_this.glare) {\n _this.glareElement.style.transition = \"\";\n }\n }, this.settings.speed);\n };\n\n /**\n * Method return patched settings of instance\n * @param {boolean} settings.reverse - reverse the tilt direction\n * @param {number} settings.max - max tilt rotation (degrees)\n * @param {startX} settings.startX - the starting tilt on the X axis, in degrees. Default: 0\n * @param {startY} settings.startY - the starting tilt on the Y axis, in degrees. Default: 0\n * @param {number} settings.perspective - Transform perspective, the lower the more extreme the tilt gets\n * @param {string} settings.easing - Easing on enter/exit\n * @param {number} settings.scale - 2 = 200%, 1.5 = 150%, etc..\n * @param {number} settings.speed - Speed of the enter/exit transition\n * @param {boolean} settings.transition - Set a transition on enter/exit\n * @param {string|null} settings.axis - What axis should be disabled. Can be X or Y\n * @param {boolean} settings.glare - What axis should be disabled. Can be X or Y\n * @param {number} settings.max-glare - the maximum \"glare\" opacity (1 = 100%, 0.5 = 50%)\n * @param {boolean} settings.glare-prerender - false = VanillaTilt creates the glare elements for you, otherwise\n * @param {boolean} settings.full-page-listening - If true, parallax effect will listen to mouse move events on the whole document, not only the selected element\n * @param {string|object} settings.mouse-event-element - String selector or link to HTML-element what will be listen mouse events\n * @param {boolean} settings.reset - false = If the tilt effect has to be reset on exit\n * @param {gyroscope} settings.gyroscope - Enable tilting by deviceorientation events\n * @param {gyroscopeSensitivity} settings.gyroscopeSensitivity - Between 0 and 1 - The angle at which max tilt position is reached. 1 = 90deg, 0.5 = 45deg, etc..\n * @param {gyroscopeSamples} settings.gyroscopeSamples - How many gyroscope moves to decide the starting position.\n */\n\n\n VanillaTilt.prototype.extendSettings = function extendSettings(settings) {\n var defaultSettings = {\n reverse: false,\n max: 15,\n startX: 0,\n startY: 0,\n perspective: 1000,\n easing: \"cubic-bezier(.03,.98,.52,.99)\",\n scale: 1,\n speed: 300,\n transition: true,\n axis: null,\n glare: false,\n \"max-glare\": 1,\n \"glare-prerender\": false,\n \"full-page-listening\": false,\n \"mouse-event-element\": null,\n reset: true,\n gyroscope: true,\n gyroscopeMinAngleX: -45,\n gyroscopeMaxAngleX: 45,\n gyroscopeMinAngleY: -45,\n gyroscopeMaxAngleY: 45,\n gyroscopeSamples: 10\n };\n\n var newSettings = {};\n for (var property in defaultSettings) {\n if (property in settings) {\n newSettings[property] = settings[property];\n } else if (this.element.hasAttribute(\"data-tilt-\" + property)) {\n var attribute = this.element.getAttribute(\"data-tilt-\" + property);\n try {\n newSettings[property] = JSON.parse(attribute);\n } catch (e) {\n newSettings[property] = attribute;\n }\n } else {\n newSettings[property] = defaultSettings[property];\n }\n }\n\n return newSettings;\n };\n\n VanillaTilt.init = function init(elements, settings) {\n if (elements instanceof Node) {\n elements = [elements];\n }\n\n if (elements instanceof NodeList) {\n elements = [].slice.call(elements);\n }\n\n if (!(elements instanceof Array)) {\n return;\n }\n\n elements.forEach(function (element) {\n if (!(\"vanillaTilt\" in element)) {\n element.vanillaTilt = new VanillaTilt(element, settings);\n }\n });\n };\n\n return VanillaTilt;\n}();\n\nif (typeof document !== \"undefined\") {\n /* expose the class to window */\n window.VanillaTilt = VanillaTilt;\n\n /**\n * Auto load\n */\n VanillaTilt.init(document.querySelectorAll(\"[data-tilt]\"));\n}\n\nmodule.exports = VanillaTilt;\n","export const defaultProps = {\r\n easing: \"cubic-bezier(0.5, 0, 0, 1)\",\r\n distance: \"30px\",\r\n duration: 1000,\r\n desktop: true,\r\n mobile: true,\r\n};\r\n\r\nexport const targetElements = [\r\n {\r\n element: \".section-title\",\r\n animation: {\r\n delay: 300,\r\n distance: \"0px\",\r\n origin: \"bottom\",\r\n },\r\n },\r\n {\r\n element: \".hero-title\",\r\n animation: {\r\n delay: 500,\r\n origin: window.innerWidth > 768 ? \"left\" : \"bottom\",\r\n },\r\n },\r\n {\r\n element: \".hero-cta\",\r\n animation: {\r\n delay: 1000,\r\n origin: window.innerWidth > 768 ? \"left\" : \"bottom\",\r\n },\r\n },\r\n {\r\n element: \".about-wrapper__image\",\r\n animation: {\r\n delay: 600,\r\n origin: \"bottom\",\r\n },\r\n },\r\n {\r\n element: \".about-wrapper__info\",\r\n animation: {\r\n delay: 1000,\r\n origin: window.innerWidth > 768 ? \"left\" : \"bottom\",\r\n },\r\n },\r\n {\r\n element: \".project-wrapper__text\",\r\n animation: {\r\n delay: 500,\r\n origin: window.innerWidth > 768 ? \"left\" : \"bottom\",\r\n },\r\n },\r\n {\r\n element: \".project-wrapper__image\",\r\n animation: {\r\n delay: 1000,\r\n origin: window.innerWidth > 768 ? \"right\" : \"bottom\",\r\n },\r\n },\r\n {\r\n element: \".contact-wrapper\",\r\n animation: {\r\n delay: 800,\r\n origin: \"bottom\",\r\n },\r\n },\r\n];\r\n","export default function initScrollReveal(targetElements, defaultProps) {\r\n if (!targetElements.length) return;\r\n\r\n ScrollReveal({ reset: false });\r\n\r\n targetElements.forEach(({ element, animation }) => {\r\n ScrollReveal().reveal(element, Object.assign({}, defaultProps, animation));\r\n });\r\n}\r\n","import initScrollReveal from \"./scripts/scrollReveal\";\r\nimport initTiltEffect from \"./scripts/tiltAnimation\";\r\nimport { targetElements, defaultProps } from \"./data/scrollRevealConfig\";\r\n\r\ninitScrollReveal(targetElements, defaultProps);\r\ninitTiltEffect();\r\n","import VanillaTilt from \"vanilla-tilt\";\r\n\r\nexport default function initTiltAnimation() {\r\n const elements = document.querySelectorAll(\".js-tilt\");\r\n VanillaTilt.init(elements);\r\n}\r\n"],"names":["$b5f6d4efc654cf78$var$classCallCheck","instance","Constructor","TypeError","$b5f6d4efc654cf78$var$VanillaTilt","VanillaTilt","element","settings","arguments","length","undefined","this","Node","width","height","clientWidth","clientHeight","left","top","gammazero","betazero","lastgammazero","lastbetazero","transitionTimeout","updateCall","event","updateBind","update","bind","resetBind","reset","extendSettings","reverse","glare","isSettingTrue","glarePrerender","fullPageListening","gyroscope","gyroscopeSamples","elementListener","getElementListener","prepareGlare","updateClientSize","addEventListeners","updateInitialPosition","setting","prototype","window","document","mouseEventElement","querySelector","onMouseEnterBind","onMouseEnter","onMouseMoveBind","onMouseMove","onMouseLeaveBind","onMouseLeave","onWindowResizeBind","onWindowResize","onDeviceOrientationBind","onDeviceOrientation","addEventListener","removeEventListeners","removeEventListener","destroy","clearTimeout","cancelAnimationFrame","vanillaTilt","gamma","beta","updateElementPosition","totalAngleX","gyroscopeMaxAngleX","gyroscopeMinAngleX","totalAngleY","gyroscopeMaxAngleY","gyroscopeMinAngleY","degreesPerPixelX","degreesPerPixelY","posX","posY","clientX","clientY","requestAnimationFrame","style","willChange","setTransition","transform","perspective","resetGlare","glareElement","opacity","startX","startY","max","backupScale","scale","getValues","x","y","Math","min","tiltX","toFixed","tiltY","percentageX","percentageY","angle","atan2","PI","rect","getBoundingClientRect","offsetWidth","offsetHeight","values","axis","dispatchEvent","CustomEvent","detail","jsTiltGlare","createElement","classList","add","jsTiltGlareInner","appendChild","glareElementWrapper","Object","assign","position","overflow","updateGlareSize","glareSize","innerWidth","documentElement","body","innerHeight","_this","transition","speed","easing","setTimeout","defaultSettings","newSettings","property","hasAttribute","attribute","getAttribute","JSON","parse","e","init","elements","NodeList","slice","call","Array","forEach","querySelectorAll","$b5f6d4efc654cf78$exports","$d859da13df4a30ff$export$adcf75ad64a03007","animation","delay","distance","origin","targetElements","defaultProps","duration","desktop","mobile","ScrollReveal","reveal","$parcel$interopDefault"],"version":3,"file":"index.dbeb0567.js.map"}