{"version":3,"sources":["webpack:///./node_modules/react-scroll/modules/mixins/smooth.js","webpack:///./node_modules/react-scroll/modules/mixins/Helpers.js","webpack:///./node_modules/react-scroll/modules/components/Button.js","webpack:///./node_modules/react-scroll/modules/mixins/cancel-events.js","webpack:///./node_modules/gatsby-image/index.js","webpack:///./node_modules/react-scroll/modules/mixins/scroll-hash.js","webpack:///./node_modules/react-scroll/modules/mixins/animate-scroll.js","webpack:///./node_modules/react-scroll/modules/components/Link.js","webpack:///./node_modules/react-scroll/modules/mixins/passive-event-listeners.js","webpack:///./node_modules/react-scroll/modules/mixins/scroll-events.js","webpack:///./src/context/context.js","webpack:///./src/components/Hero/Hero.jsx","webpack:///./node_modules/react-bootstrap/esm/Row.js","webpack:///./node_modules/react-bootstrap/esm/Col.js","webpack:///./src/components/Title/Title.jsx","webpack:///./src/components/Image/AboutImg.jsx","webpack:///./src/components/About/About.jsx","webpack:///./src/components/Image/ProjectImg.jsx","webpack:///./src/components/Projects/Projects.jsx","webpack:///./src/components/Contact/Contact.jsx","webpack:///./src/components/Footer/Footer.jsx","webpack:///./src/components/App.jsx","webpack:///./src/pages/index.js","webpack:///./node_modules/react-scroll/modules/components/Element.js","webpack:///./node_modules/react-tilt/dist/tilt.js","webpack:///./node_modules/lodash.throttle/index.js","webpack:///./node_modules/react-scroll/modules/index.js","webpack:///./node_modules/react-scroll/modules/mixins/scroll-link.js","webpack:///./node_modules/react-scroll/modules/mixins/scroll-element.js","webpack:///./node_modules/react-scroll/modules/mixins/scroll-spy.js","webpack:///./node_modules/react-scroll/modules/mixins/utils.js","webpack:///./node_modules/react-scroll/modules/mixins/scroller.js"],"names":["Object","defineProperty","exports","value","default","defaultEasing","x","Math","pow","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","_extends","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","_createClass","defineProperties","props","descriptor","enumerable","configurable","writable","Constructor","protoProps","staticProps","_classCallCheck","instance","TypeError","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","constructor","setPrototypeOf","__proto__","React","scrollSpy","defaultScroller","PropTypes","scrollHash","protoTypes","to","string","isRequired","containerId","container","object","activeClass","spy","bool","smooth","oneOfType","offset","number","delay","isDynamic","onClick","func","duration","absolute","onSetActive","onSetInactive","ignoreCancelEvents","hashSpy","Helpers","Scroll","Component","customScroller","console","warn","scroller","_React$Component","this","_this","getPrototypeOf","_initialiseProps","state","active","document","getElementById","nodeType","scrollSpyContainer","getScrollSpyContainer","isMounted","mount","mapContainer","addStateHandler","stateHandler","addSpyHandler","spyHandler","setState","unmount","className","trim","prop","handleClick","createElement","_this2","scrollTo","event","stopPropagation","preventDefault","getActiveLink","y","isInitialized","element","elemTopBound","elemBottomBound","containerTop","getBoundingClientRect","top","get","cords","height","offsetY","isInside","floor","isOutside","activeLink","setActiveLink","getHash","changeHash","updateStates","propTypes","defaultProps","Element","_React$Component2","_this3","childBindings","domNode","window","registerElems","name","prevProps","unregister","register","parentBindings","id","module","_react2","_interopRequireDefault","_scrollLink2","obj","__esModule","ButtonElement","apply","children","_passiveEventListeners","events","subscribe","cancelEvent","forEach","addPassiveEventListener","require","io","_assertThisInitialized2","_inheritsLoose2","_objectWithoutPropertiesLoose2","_extends2","_react","_propTypes","convertProps","convertedProps","resolutions","sizes","critical","fixed","fluid","loading","groupByMedia","concat","matchesMedia","_ref","media","isBrowser","matchMedia","matches","getImageCacheKey","_ref2","srcData","getCurrentSrcData","src","currentData","Array","isArray","some","image","hasArtDirectionSupport","foundMedia","findIndex","noMedia","imageCache","inImageCache","cacheKey","hasNativeLazyLoadSupport","HTMLImageElement","hasIOSupport","IntersectionObserver","listeners","WeakMap","generateImageSources","imageVariants","map","_ref3","srcSet","srcSetWebp","Fragment","type","withMedia","without","variant","push","generateTracedSVGSources","_ref4","tracedSVG","generateBase64Sources","_ref5","base64","generateNoscriptSource","_ref6","isWebp","listenToIntersections","el","cb","observer","entries","entry","has","isIntersecting","intersectionRatio","unobserve","delete","rootMargin","observe","set","noscriptImg","title","alt","width","crossOrigin","draggable","join","Placeholder","forwardRef","ref","generateSources","spreadProps","ariaHidden","baseImage","Img","style","onLoad","onError","otherProps","position","left","objectFit","objectPosition","Image","seenBefore","isCritical","addNoScript","fadeIn","useIOSupport","isVisible","imgLoaded","imgCached","isHydrated","imageRef","createRef","placeholderRef","handleImageLoaded","bind","handleRef","_proto","componentDidMount","onStartLoad","wasCached","img","current","complete","componentWillUnmount","cleanUpListeners","imageInCache","currentSrc","render","_convertProps","_convertProps$style","_convertProps$imgStyl","imgStyle","_convertProps$placeho","placeholderStyle","placeholderClassName","backgroundColor","durationFadeIn","Tag","itemProp","shouldReveal","shouldFadeIn","imageStyle","opacity","transition","bgColor","delayHideStyle","transitionDelay","imagePlaceholderStyle","placeholderImageProps","overflow","maxWidth","maxHeight","JSON","stringify","paddingBottom","aspectRatio","bottom","right","dangerouslySetInnerHTML","__html","divStyle","display","fixedObject","shape","srcWebp","fluidObject","requireFixedOrFluid","originalPropTypes","propName","componentName","_PropTypes$checkPropT","Error","checkPropTypes","arrayOf","oneOf","_default","_utils","_utils2","mountFlag","initialized","containers","handleHashChange","addEventListener","initStateFromHash","hash","setTimeout","isInit","saveHashHistory","updateHash","removeEventListener","_smooth2","_cancelEvents2","_scrollEvents2","getAnimationType","options","requestAnimationFrameHelper","requestAnimationFrame","webkitRequestAnimationFrame","currentWindowProperties","callback","Date","getTime","currentPositionX","containerElement","data","body","scrollLeft","supportPageOffset","undefined","pageXOffset","isCSS1Compat","compatMode","documentElement","currentPositionY","scrollTop","pageYOffset","animateScroll","easing","timestamp","cancel","delta","round","targetPosition","startPosition","start","progress","percent","currentPosition","ceil","horizontal","easedAnimate","registered","setContainer","animateTopScroll","scrollOffset","delayTimeout","clearTimeout","isNaN","parseFloat","proceedOptions","scrollToTop","scrollToBottom","scrollWidth","offsetWidth","html","max","clientWidth","scrollContainerWidth","scrollHeight","offsetHeight","clientHeight","scrollContainerHeight","toPosition","scrollMore","LinkElement","_temp","_len","args","_key","eventName","listener","supportsPassiveOption","opts","e","passive","removePassiveEventListener","Events","scrollEvent","evtName","remove","PortfolioContext","createContext","PortfolioProvider","Provider","Consumer","Header","hero","useContext","subtitle","cta","useState","isDesktop","setIsDesktop","isMobile","setIsMobile","useEffect","innerWidth","Container","distance","DEVICE_SIZES","Row","bsPrefix","noGutters","_ref$as","as","decoratedBsPrefix","sizePrefix","classes","brkPoint","cols","propValue","infix","displayName","Col","prefix","spans","span","order","_propValue$span","Title","AboutImg","filename","query","images","edges","find","n","node","relativePath","includes","imageFixed","childImageSharp","About","about","paragraphOne","paragraphTwo","paragraphThree","resume","md","sm","rel","href","ProjectImg","imageFluid","Projects","projects","project","info","info2","url","repo","lg","fontWeight","aria-label","reverse","perspective","scale","speed","axis","reset","data-tilt","Contact","contact","btn","email","Footer","networks","footer","aria-hidden","network","App","setHero","setAbout","setProjects","setContact","setFooter","heroData","aboutData","projectsData","contactData","footerData","Hero","headData","lang","description","Helmet","charSet","content","_scrollElement2","_propTypes2","ElementWrapper","newProps","_reactDom","Tilt","_Component","transitionTimeout","updateCall","settings","onMouseEnter","onMouseMove","onMouseLeave","findDOMNode","cancelAnimationFrame","updateElementPosition","willChange","setTransition","transform","persist","update","nativeEvent","clientX","clientY","_x","min","_y","tiltX","toFixed","tiltY","percentageX","percentageY","rect","values","getValues","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","freeSelf","root","Function","objectToString","toString","nativeMax","nativeMin","now","debounce","wait","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","thisArg","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","toNumber","isObject","flush","isObjectLike","isSymbol","other","valueOf","replace","isBinary","test","slice","ScrollElement","ScrollLink","Button","Link","_Link2","_Button2","_Element2","_scroller2","_scrollSpy2","_animateScroll2","_Helpers2","_scrollHash2","_React$PureComponent","PureComponent","elemLeftBound","elemRightBound","containerLeft","offsetX","_cords","_props$saveHashHistor","_props$saveHashHistor2","_saveHashHistory","_lodash","_lodash2","spyCallbacks","spySetState","scrollSpyContainers","eventHandler","eventThrottler","scrollHandler","indexOf","c","handler","s","splice","historyUpdate","hashVal","substring","hashToUpdate","curLoc","location","urlToPush","pathname","search","history","pushState","replaceState","filterElementInContainer","contains","compareDocumentPosition","t","scrollX","getComputedStyle","offsetLeft","scrollY","offsetTop","__mapped","__activeLink","getElementsByName","getElementsByClassName","link"],"mappings":"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","file":"component---src-pages-index-js-41f08f3ec5498a81b1c9.js","sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n /*\r\n * https://github.com/oblador/angular-scroll (duScrollDefaultEasing)\r\n */\n defaultEasing: function defaultEasing(x) {\n if (x < 0.5) {\n return Math.pow(x * 2, 2) / 2;\n }\n\n return 1 - Math.pow((1 - x) * 2, 2) / 2;\n },\n\n /*\r\n * https://gist.github.com/gre/1650294\r\n */\n // no easing, no acceleration\n linear: function linear(x) {\n return x;\n },\n // accelerating from zero velocity\n easeInQuad: function easeInQuad(x) {\n return x * x;\n },\n // decelerating to zero velocity\n easeOutQuad: function easeOutQuad(x) {\n return x * (2 - x);\n },\n // acceleration until halfway, then deceleration\n easeInOutQuad: function easeInOutQuad(x) {\n return x < .5 ? 2 * x * x : -1 + (4 - 2 * x) * x;\n },\n // accelerating from zero velocity \n easeInCubic: function easeInCubic(x) {\n return x * x * x;\n },\n // decelerating to zero velocity π\n easeOutCubic: function easeOutCubic(x) {\n return --x * x * x + 1;\n },\n // acceleration until halfway, then deceleration \n easeInOutCubic: function easeInOutCubic(x) {\n return x < .5 ? 4 * x * x * x : (x - 1) * (2 * x - 2) * (2 * x - 2) + 1;\n },\n // accelerating from zero velocity \n easeInQuart: function easeInQuart(x) {\n return x * x * x * x;\n },\n // decelerating to zero velocity \n easeOutQuart: function easeOutQuart(x) {\n return 1 - --x * x * x * x;\n },\n // acceleration until halfway, then deceleration\n easeInOutQuart: function easeInOutQuart(x) {\n return x < .5 ? 8 * x * x * x * x : 1 - 8 * --x * x * x * x;\n },\n // accelerating from zero velocity\n easeInQuint: function easeInQuint(x) {\n return x * x * x * x * x;\n },\n // decelerating to zero velocity\n easeOutQuint: function easeOutQuint(x) {\n return 1 + --x * x * x * x * x;\n },\n // acceleration until halfway, then deceleration \n easeInOutQuint: function easeInOutQuint(x) {\n return x < .5 ? 16 * x * x * x * x * x : 1 + 16 * --x * x * x * x * x;\n }\n};","\"use strict\";\n/* DEPRECATED */\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar React = require('react');\n\nvar ReactDOM = require('react-dom');\n\nvar utils = require('./utils');\n\nvar scrollSpy = require('./scroll-spy');\n\nvar defaultScroller = require('./scroller');\n\nvar PropTypes = require('prop-types');\n\nvar scrollHash = require('./scroll-hash');\n\nvar protoTypes = {\n to: PropTypes.string.isRequired,\n containerId: PropTypes.string,\n container: PropTypes.object,\n activeClass: PropTypes.string,\n spy: PropTypes.bool,\n smooth: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n offset: PropTypes.number,\n delay: PropTypes.number,\n isDynamic: PropTypes.bool,\n onClick: PropTypes.func,\n duration: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n absolute: PropTypes.bool,\n onSetActive: PropTypes.func,\n onSetInactive: PropTypes.func,\n ignoreCancelEvents: PropTypes.bool,\n hashSpy: PropTypes.bool\n};\nvar Helpers = {\n Scroll: function Scroll(Component, customScroller) {\n console.warn(\"Helpers.Scroll is deprecated since v1.7.0\");\n var scroller = customScroller || defaultScroller;\n\n var Scroll = function (_React$Component) {\n _inherits(Scroll, _React$Component);\n\n function Scroll(props) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!scrollSpy.isMounted(scrollSpyContainer)) {\n scrollSpy.mount(scrollSpyContainer);\n }\n\n if (this.props.hashSpy) {\n if (!scrollHash.isMounted()) {\n scrollHash.mount(scroller);\n }\n\n scrollHash.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n if (this.props.spy) {\n scrollSpy.addStateHandler(this.stateHandler);\n }\n\n scrollSpy.addSpyHandler(this.spyHandler, scrollSpyContainer);\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n scrollSpy.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.onClick = this.handleClick;\n return React.createElement(Component, props);\n }\n }]);\n\n return Scroll;\n }(React.Component);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n /*\r\n * give the posibility to override onClick\r\n */\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n /*\r\n * dont bubble the navigation\r\n */\n\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n /*\r\n * do the magic!\r\n */\n\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.stateHandler = function () {\n if (scroller.getActiveLink() !== _this2.props.to) {\n if (_this2.state !== null && _this2.state.active && _this2.props.onSetInactive) {\n _this2.props.onSetInactive();\n }\n\n _this2.setState({\n active: false\n });\n }\n };\n\n this.spyHandler = function (y) {\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (scrollHash.isMounted() && !scrollHash.isInitialized()) {\n return;\n }\n\n var to = _this2.props.to;\n var element = null;\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemTopBound = cords.top - containerTop + y;\n elemBottomBound = elemTopBound + cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n var isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n var isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && scrollHash.getHash() === to) {\n scrollHash.changeHash();\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({\n active: false\n });\n\n _this2.props.onSetInactive && _this2.props.onSetInactive();\n }\n\n return scrollSpy.updateStates();\n }\n\n if (isInside && activeLink !== to) {\n scroller.setActiveLink(to);\n _this2.props.hashSpy && scrollHash.changeHash(to);\n\n if (_this2.props.spy) {\n _this2.setState({\n active: true\n });\n\n _this2.props.onSetActive && _this2.props.onSetActive(to);\n }\n\n return scrollSpy.updateStates();\n }\n };\n };\n\n ;\n Scroll.propTypes = protoTypes;\n Scroll.defaultProps = {\n offset: 0\n };\n return Scroll;\n },\n Element: function Element(Component) {\n console.warn(\"Helpers.Element is deprecated since v1.7.0\");\n\n var Element = function (_React$Component2) {\n _inherits(Element, _React$Component2);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this3 = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this3.childBindings = {\n domNode: null\n };\n return _this3;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n\n defaultScroller.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n defaultScroller.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return React.createElement(Component, _extends({}, this.props, {\n parentBindings: this.childBindings\n }));\n }\n }]);\n\n return Element;\n }(React.Component);\n\n ;\n Element.propTypes = {\n name: PropTypes.string,\n id: PropTypes.string\n };\n return Element;\n }\n};\nmodule.exports = Helpers;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = require('../mixins/scroll-link');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar ButtonElement = function (_React$Component) {\n _inherits(ButtonElement, _React$Component);\n\n function ButtonElement() {\n _classCallCheck(this, ButtonElement);\n\n return _possibleConstructorReturn(this, (ButtonElement.__proto__ || Object.getPrototypeOf(ButtonElement)).apply(this, arguments));\n }\n\n _createClass(ButtonElement, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement('input', this.props, this.props.children);\n }\n }]);\n\n return ButtonElement;\n}(_react2.default.Component);\n\n;\nexports.default = (0, _scrollLink2.default)(ButtonElement);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar events = ['mousedown', 'mousewheel', 'touchmove', 'keydown'];\nexports.default = {\n subscribe: function subscribe(cancelEvent) {\n return typeof document !== 'undefined' && events.forEach(function (event) {\n return (0, _passiveEventListeners.addPassiveEventListener)(document, event, cancelEvent);\n });\n }\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar logDeprecationNotice = function logDeprecationNotice(prop, replacement) {\n if (process.env.NODE_ENV === \"production\") {\n return;\n }\n\n console.log(\"\\n The \\\"\" + prop + \"\\\" prop is now deprecated and will be removed in the next major version\\n of \\\"gatsby-image\\\".\\n \");\n\n if (replacement) {\n console.log(\"Please use \" + replacement + \" instead of \\\"\" + prop + \"\\\".\");\n }\n}; // Handle legacy props during their deprecation phase\n\n\nvar convertProps = function convertProps(props) {\n var convertedProps = (0, _extends2.default)({}, props);\n var resolutions = convertedProps.resolutions,\n sizes = convertedProps.sizes,\n critical = convertedProps.critical;\n\n if (resolutions) {\n convertedProps.fixed = resolutions;\n logDeprecationNotice(\"resolutions\", \"the gatsby-image v2 prop \\\"fixed\\\"\");\n delete convertedProps.resolutions;\n }\n\n if (sizes) {\n convertedProps.fluid = sizes;\n logDeprecationNotice(\"sizes\", \"the gatsby-image v2 prop \\\"fluid\\\"\");\n delete convertedProps.sizes;\n }\n\n if (critical) {\n logDeprecationNotice(\"critical\", \"the native \\\"loading\\\" attribute\");\n convertedProps.loading = \"eager\";\n } // convert fluid & fixed to arrays so we only have to work with arrays\n\n\n if (convertedProps.fluid) {\n convertedProps.fluid = groupByMedia([].concat(convertedProps.fluid));\n }\n\n if (convertedProps.fixed) {\n convertedProps.fixed = groupByMedia([].concat(convertedProps.fixed));\n }\n\n return convertedProps;\n};\n/**\n * Checks if fluid or fixed are art-direction arrays.\n *\n * @param currentData {{media?: string}[]} The props to check for images.\n * @return {boolean}\n */\n\n\nvar hasArtDirectionSupport = function hasArtDirectionSupport(currentData) {\n return !!currentData && Array.isArray(currentData) && currentData.some(function (image) {\n return typeof image.media !== \"undefined\";\n });\n};\n/**\n * Tries to detect if a media query matches the current viewport.\n * @property media {{media?: string}} A media query string.\n * @return {boolean}\n */\n\n\nvar matchesMedia = function matchesMedia(_ref) {\n var media = _ref.media;\n return media ? isBrowser && !!window.matchMedia(media).matches : false;\n};\n/**\n * Find the source of an image to use as a key in the image cache.\n * Use `the first image in either `fixed` or `fluid`\n * @param {{fluid: {src: string, media?: string}[], fixed: {src: string, media?: string}[]}} args\n * @return {string?} Returns image src or undefined it not given.\n */\n\n\nvar getImageCacheKey = function getImageCacheKey(_ref2) {\n var fluid = _ref2.fluid,\n fixed = _ref2.fixed;\n var srcData = getCurrentSrcData(fluid || fixed || []);\n return srcData && srcData.src;\n};\n/**\n * Returns the current src - Preferably with art-direction support.\n * @param currentData {{media?: string}[], maxWidth?: Number, maxHeight?: Number} The fluid or fixed image array.\n * @return {{src: string, media?: string, maxWidth?: Number, maxHeight?: Number}}\n */\n\n\nvar getCurrentSrcData = function getCurrentSrcData(currentData) {\n if (isBrowser && hasArtDirectionSupport(currentData)) {\n // Do we have an image for the current Viewport?\n var foundMedia = currentData.findIndex(matchesMedia);\n\n if (foundMedia !== -1) {\n return currentData[foundMedia];\n } // No media matches, select first element without a media condition\n\n\n var noMedia = currentData.findIndex(function (image) {\n return typeof image.media === \"undefined\";\n });\n\n if (noMedia !== -1) {\n return currentData[noMedia];\n }\n } // Else return the first image.\n\n\n return currentData[0];\n}; // Cache if we've seen an image before so we don't bother with\n// lazy-loading & fading in on subsequent mounts.\n\n\nvar imageCache = Object.create({});\n\nvar inImageCache = function inImageCache(props) {\n var convertedProps = convertProps(props);\n var cacheKey = getImageCacheKey(convertedProps);\n return imageCache[cacheKey] || false;\n};\n\nvar activateCacheForImage = function activateCacheForImage(props) {\n var convertedProps = convertProps(props);\n var cacheKey = getImageCacheKey(convertedProps);\n\n if (cacheKey) {\n imageCache[cacheKey] = true;\n }\n}; // Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\n\n\nvar hasNativeLazyLoadSupport = typeof HTMLImageElement !== \"undefined\" && \"loading\" in HTMLImageElement.prototype;\nvar isBrowser = typeof window !== \"undefined\";\nvar hasIOSupport = isBrowser && window.IntersectionObserver;\nvar io;\nvar listeners = new WeakMap();\n\nfunction getIO() {\n if (typeof io === \"undefined\" && typeof window !== \"undefined\" && window.IntersectionObserver) {\n io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (listeners.has(entry.target)) {\n var cb = listeners.get(entry.target); // Edge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(entry.target);\n listeners.delete(entry.target);\n cb();\n }\n }\n });\n }, {\n rootMargin: \"200px\"\n });\n }\n\n return io;\n}\n\nfunction generateImageSources(imageVariants) {\n return imageVariants.map(function (_ref3) {\n var src = _ref3.src,\n srcSet = _ref3.srcSet,\n srcSetWebp = _ref3.srcSetWebp,\n media = _ref3.media,\n sizes = _ref3.sizes;\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {\n key: src\n }, srcSetWebp && /*#__PURE__*/_react.default.createElement(\"source\", {\n type: \"image/webp\",\n media: media,\n srcSet: srcSetWebp,\n sizes: sizes\n }), srcSet && /*#__PURE__*/_react.default.createElement(\"source\", {\n media: media,\n srcSet: srcSet,\n sizes: sizes\n }));\n });\n} // Return an array ordered by elements having a media prop, does not use\n// native sort, as a stable sort is not guaranteed by all browsers/versions\n\n\nfunction groupByMedia(imageVariants) {\n var withMedia = [];\n var without = [];\n imageVariants.forEach(function (variant) {\n return (variant.media ? withMedia : without).push(variant);\n });\n\n if (without.length > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"We've found \" + without.length + \" sources without a media property. They might be ignored by the browser, see: https://www.gatsbyjs.org/packages/gatsby-image/#art-directing-multiple-images\");\n }\n\n return [].concat(withMedia, without);\n}\n\nfunction generateTracedSVGSources(imageVariants) {\n return imageVariants.map(function (_ref4) {\n var src = _ref4.src,\n media = _ref4.media,\n tracedSVG = _ref4.tracedSVG;\n return /*#__PURE__*/_react.default.createElement(\"source\", {\n key: src,\n media: media,\n srcSet: tracedSVG\n });\n });\n}\n\nfunction generateBase64Sources(imageVariants) {\n return imageVariants.map(function (_ref5) {\n var src = _ref5.src,\n media = _ref5.media,\n base64 = _ref5.base64;\n return /*#__PURE__*/_react.default.createElement(\"source\", {\n key: src,\n media: media,\n srcSet: base64\n });\n });\n}\n\nfunction generateNoscriptSource(_ref6, isWebp) {\n var srcSet = _ref6.srcSet,\n srcSetWebp = _ref6.srcSetWebp,\n media = _ref6.media,\n sizes = _ref6.sizes;\n var src = isWebp ? srcSetWebp : srcSet;\n var mediaAttr = media ? \"media=\\\"\" + media + \"\\\" \" : \"\";\n var typeAttr = isWebp ? \"type='image/webp' \" : \"\";\n var sizesAttr = sizes ? \"sizes=\\\"\" + sizes + \"\\\" \" : \"\";\n return \"\";\n}\n\nfunction generateNoscriptSources(imageVariants) {\n return imageVariants.map(function (variant) {\n return (variant.srcSetWebp ? generateNoscriptSource(variant, true) : \"\") + generateNoscriptSource(variant);\n }).join(\"\");\n}\n\nvar listenToIntersections = function listenToIntersections(el, cb) {\n var observer = getIO();\n\n if (observer) {\n observer.observe(el);\n listeners.set(el, cb);\n }\n\n return function () {\n observer.unobserve(el);\n listeners.delete(el);\n };\n};\n\nvar noscriptImg = function noscriptImg(props) {\n // Check if prop exists before adding each attribute to the string output below to prevent\n // HTML validation issues caused by empty values like width=\"\" and height=\"\"\n var src = props.src ? \"src=\\\"\" + props.src + \"\\\" \" : \"src=\\\"\\\" \"; // required attribute\n\n var sizes = props.sizes ? \"sizes=\\\"\" + props.sizes + \"\\\" \" : \"\";\n var srcSet = props.srcSet ? \"srcset=\\\"\" + props.srcSet + \"\\\" \" : \"\";\n var title = props.title ? \"title=\\\"\" + props.title + \"\\\" \" : \"\";\n var alt = props.alt ? \"alt=\\\"\" + props.alt + \"\\\" \" : \"alt=\\\"\\\" \"; // required attribute\n\n var width = props.width ? \"width=\\\"\" + props.width + \"\\\" \" : \"\";\n var height = props.height ? \"height=\\\"\" + props.height + \"\\\" \" : \"\";\n var crossOrigin = props.crossOrigin ? \"crossorigin=\\\"\" + props.crossOrigin + \"\\\" \" : \"\";\n var loading = props.loading ? \"loading=\\\"\" + props.loading + \"\\\" \" : \"\";\n var draggable = props.draggable ? \"draggable=\\\"\" + props.draggable + \"\\\" \" : \"\";\n var sources = generateNoscriptSources(props.imageVariants);\n return \"\" + sources + \"\";\n}; // Earlier versions of gatsby-image during the 2.x cycle did not wrap\n// the `Img` component in a `picture` element. This maintains compatibility\n// until a breaking change can be introduced in the next major release\n\n\nvar Placeholder = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var src = props.src,\n imageVariants = props.imageVariants,\n generateSources = props.generateSources,\n spreadProps = props.spreadProps,\n ariaHidden = props.ariaHidden;\n\n var baseImage = /*#__PURE__*/_react.default.createElement(Img, (0, _extends2.default)({\n ref: ref,\n src: src\n }, spreadProps, {\n ariaHidden: ariaHidden\n }));\n\n return imageVariants.length > 1 ? /*#__PURE__*/_react.default.createElement(\"picture\", null, generateSources(imageVariants), baseImage) : baseImage;\n});\n\nvar Img = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var sizes = props.sizes,\n srcSet = props.srcSet,\n src = props.src,\n style = props.style,\n onLoad = props.onLoad,\n onError = props.onError,\n loading = props.loading,\n draggable = props.draggable,\n ariaHidden = props.ariaHidden,\n otherProps = (0, _objectWithoutPropertiesLoose2.default)(props, [\"sizes\", \"srcSet\", \"src\", \"style\", \"onLoad\", \"onError\", \"loading\", \"draggable\", \"ariaHidden\"]);\n return /*#__PURE__*/_react.default.createElement(\"img\", (0, _extends2.default)({\n \"aria-hidden\": ariaHidden,\n sizes: sizes,\n srcSet: srcSet,\n src: src\n }, otherProps, {\n onLoad: onLoad,\n onError: onError,\n ref: ref,\n loading: loading,\n draggable: draggable,\n style: (0, _extends2.default)({\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n objectPosition: \"center\"\n }, style)\n }));\n});\n\nImg.propTypes = {\n style: _propTypes.default.object,\n onError: _propTypes.default.func,\n onLoad: _propTypes.default.func\n};\n\nvar Image = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(Image, _React$Component);\n\n function Image(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // If this image has already been loaded before then we can assume it's\n // already in the browser cache so it's cheap to just show directly.\n\n _this.seenBefore = isBrowser && inImageCache(props);\n _this.isCritical = props.loading === \"eager\" || props.critical;\n _this.addNoScript = !(_this.isCritical && !props.fadeIn);\n _this.useIOSupport = !hasNativeLazyLoadSupport && hasIOSupport && !_this.isCritical && !_this.seenBefore;\n var isVisible = _this.isCritical || isBrowser && (hasNativeLazyLoadSupport || !_this.useIOSupport);\n _this.state = {\n isVisible: isVisible,\n imgLoaded: false,\n imgCached: false,\n fadeIn: !_this.seenBefore && props.fadeIn,\n isHydrated: false\n };\n _this.imageRef = /*#__PURE__*/_react.default.createRef();\n _this.placeholderRef = props.placeholderRef || /*#__PURE__*/_react.default.createRef();\n _this.handleImageLoaded = _this.handleImageLoaded.bind((0, _assertThisInitialized2.default)(_this));\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = Image.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.setState({\n isHydrated: isBrowser\n });\n\n if (this.state.isVisible && typeof this.props.onStartLoad === \"function\") {\n this.props.onStartLoad({\n wasCached: inImageCache(this.props)\n });\n }\n\n if (this.isCritical) {\n var img = this.imageRef.current;\n\n if (img && img.complete) {\n this.handleImageLoaded();\n }\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.cleanUpListeners) {\n this.cleanUpListeners();\n }\n } // Specific to IntersectionObserver based lazy-load support\n ;\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.useIOSupport && ref) {\n this.cleanUpListeners = listenToIntersections(ref, function () {\n var imageInCache = inImageCache(_this2.props);\n\n if (!_this2.state.isVisible && typeof _this2.props.onStartLoad === \"function\") {\n _this2.props.onStartLoad({\n wasCached: imageInCache\n });\n } // imgCached and imgLoaded must update after isVisible,\n // Once isVisible is true, imageRef becomes accessible, which imgCached needs access to.\n // imgLoaded and imgCached are in a 2nd setState call to be changed together,\n // avoiding initiating unnecessary animation frames from style changes.\n\n\n _this2.setState({\n isVisible: true\n }, function () {\n _this2.setState({\n imgLoaded: imageInCache,\n // `currentSrc` should be a string, but can be `undefined` in IE,\n // !! operator validates the value is not undefined/null/\"\"\n // for lazyloaded components this might be null\n // TODO fix imgCached behaviour as it's now false when it's lazyloaded\n imgCached: !!(_this2.imageRef.current && _this2.imageRef.current.currentSrc)\n });\n });\n });\n }\n };\n\n _proto.handleImageLoaded = function handleImageLoaded() {\n activateCacheForImage(this.props);\n this.setState({\n imgLoaded: true\n });\n\n if (this.props.onLoad) {\n this.props.onLoad();\n }\n };\n\n _proto.render = function render() {\n var _convertProps = convertProps(this.props),\n title = _convertProps.title,\n alt = _convertProps.alt,\n className = _convertProps.className,\n _convertProps$style = _convertProps.style,\n style = _convertProps$style === void 0 ? {} : _convertProps$style,\n _convertProps$imgStyl = _convertProps.imgStyle,\n imgStyle = _convertProps$imgStyl === void 0 ? {} : _convertProps$imgStyl,\n _convertProps$placeho = _convertProps.placeholderStyle,\n placeholderStyle = _convertProps$placeho === void 0 ? {} : _convertProps$placeho,\n placeholderClassName = _convertProps.placeholderClassName,\n fluid = _convertProps.fluid,\n fixed = _convertProps.fixed,\n backgroundColor = _convertProps.backgroundColor,\n durationFadeIn = _convertProps.durationFadeIn,\n Tag = _convertProps.Tag,\n itemProp = _convertProps.itemProp,\n loading = _convertProps.loading,\n draggable = _convertProps.draggable;\n\n var imageVariants = fluid || fixed; // Abort early if missing image data (#25371)\n\n if (!imageVariants) {\n return null;\n }\n\n var shouldReveal = this.state.fadeIn === false || this.state.imgLoaded;\n var shouldFadeIn = this.state.fadeIn === true && !this.state.imgCached;\n var imageStyle = (0, _extends2.default)({\n opacity: shouldReveal ? 1 : 0,\n transition: shouldFadeIn ? \"opacity \" + durationFadeIn + \"ms\" : \"none\"\n }, imgStyle);\n var bgColor = typeof backgroundColor === \"boolean\" ? \"lightgray\" : backgroundColor;\n var delayHideStyle = {\n transitionDelay: durationFadeIn + \"ms\"\n };\n var imagePlaceholderStyle = (0, _extends2.default)({\n opacity: this.state.imgLoaded ? 0 : 1\n }, shouldFadeIn && delayHideStyle, imgStyle, placeholderStyle);\n var placeholderImageProps = {\n title: title,\n alt: !this.state.isVisible ? alt : \"\",\n style: imagePlaceholderStyle,\n className: placeholderClassName,\n itemProp: itemProp\n }; // Initial client render state needs to match SSR until hydration finishes.\n // Once hydration completes, render again to update to the correct image.\n // `imageVariants` is always an Array type at this point due to `convertProps()`\n\n var image = !this.state.isHydrated ? imageVariants[0] : getCurrentSrcData(imageVariants);\n\n if (fluid) {\n return /*#__PURE__*/_react.default.createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: (0, _extends2.default)({\n position: \"relative\",\n overflow: \"hidden\",\n maxWidth: image.maxWidth ? image.maxWidth + \"px\" : null,\n maxHeight: image.maxHeight ? image.maxHeight + \"px\" : null\n }, style),\n ref: this.handleRef,\n key: \"fluid-\" + JSON.stringify(image.srcSet)\n }, /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n style: {\n width: \"100%\",\n paddingBottom: 100 / image.aspectRatio + \"%\"\n }\n }), bgColor && /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n title: title,\n style: (0, _extends2.default)({\n backgroundColor: bgColor,\n position: \"absolute\",\n top: 0,\n bottom: 0,\n opacity: !this.state.imgLoaded ? 1 : 0,\n right: 0,\n left: 0\n }, shouldFadeIn && delayHideStyle)\n }), image.base64 && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateBase64Sources\n }), image.tracedSVG && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && /*#__PURE__*/_react.default.createElement(\"picture\", null, generateImageSources(imageVariants), /*#__PURE__*/_react.default.createElement(Img, {\n alt: alt,\n title: title,\n sizes: image.sizes,\n src: image.src,\n crossOrigin: this.props.crossOrigin,\n srcSet: image.srcSet,\n style: imageStyle,\n ref: this.imageRef,\n onLoad: this.handleImageLoaded,\n onError: this.props.onError,\n itemProp: itemProp,\n loading: loading,\n draggable: draggable\n })), this.addNoScript && /*#__PURE__*/_react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title,\n loading: loading\n }, image, {\n imageVariants: imageVariants\n }))\n }\n }));\n }\n\n if (fixed) {\n var divStyle = (0, _extends2.default)({\n position: \"relative\",\n overflow: \"hidden\",\n display: \"inline-block\",\n width: image.width,\n height: image.height\n }, style);\n\n if (style.display === \"inherit\") {\n delete divStyle.display;\n }\n\n return /*#__PURE__*/_react.default.createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: divStyle,\n ref: this.handleRef,\n key: \"fixed-\" + JSON.stringify(image.srcSet)\n }, bgColor && /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n title: title,\n style: (0, _extends2.default)({\n backgroundColor: bgColor,\n width: image.width,\n opacity: !this.state.imgLoaded ? 1 : 0,\n height: image.height\n }, shouldFadeIn && delayHideStyle)\n }), image.base64 && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateBase64Sources\n }), image.tracedSVG && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && /*#__PURE__*/_react.default.createElement(\"picture\", null, generateImageSources(imageVariants), /*#__PURE__*/_react.default.createElement(Img, {\n alt: alt,\n title: title,\n width: image.width,\n height: image.height,\n sizes: image.sizes,\n src: image.src,\n crossOrigin: this.props.crossOrigin,\n srcSet: image.srcSet,\n style: imageStyle,\n ref: this.imageRef,\n onLoad: this.handleImageLoaded,\n onError: this.props.onError,\n itemProp: itemProp,\n loading: loading,\n draggable: draggable\n })), this.addNoScript && /*#__PURE__*/_react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title,\n loading: loading\n }, image, {\n imageVariants: imageVariants\n }))\n }\n }));\n }\n\n return null;\n };\n\n return Image;\n}(_react.default.Component);\n\nImage.defaultProps = {\n fadeIn: true,\n durationFadeIn: 500,\n alt: \"\",\n Tag: \"div\",\n // We set it to `lazy` by default because it's best to default to a performant\n // setting and let the user \"opt out\" to `eager`\n loading: \"lazy\"\n};\n\nvar fixedObject = _propTypes.default.shape({\n width: _propTypes.default.number.isRequired,\n height: _propTypes.default.number.isRequired,\n src: _propTypes.default.string.isRequired,\n srcSet: _propTypes.default.string.isRequired,\n base64: _propTypes.default.string,\n tracedSVG: _propTypes.default.string,\n srcWebp: _propTypes.default.string,\n srcSetWebp: _propTypes.default.string,\n media: _propTypes.default.string\n});\n\nvar fluidObject = _propTypes.default.shape({\n aspectRatio: _propTypes.default.number.isRequired,\n src: _propTypes.default.string.isRequired,\n srcSet: _propTypes.default.string.isRequired,\n sizes: _propTypes.default.string.isRequired,\n base64: _propTypes.default.string,\n tracedSVG: _propTypes.default.string,\n srcWebp: _propTypes.default.string,\n srcSetWebp: _propTypes.default.string,\n media: _propTypes.default.string,\n maxWidth: _propTypes.default.number,\n maxHeight: _propTypes.default.number\n});\n\nfunction requireFixedOrFluid(originalPropTypes) {\n return function (props, propName, componentName) {\n var _PropTypes$checkPropT;\n\n if (!props.fixed && !props.fluid) {\n throw new Error(\"The prop `fluid` or `fixed` is marked as required in `\" + componentName + \"`, but their values are both `undefined`.\");\n }\n\n _propTypes.default.checkPropTypes((_PropTypes$checkPropT = {}, _PropTypes$checkPropT[propName] = originalPropTypes, _PropTypes$checkPropT), props, \"prop\", componentName);\n };\n} // If you modify these propTypes, please don't forget to update following files as well:\n// https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-image/index.d.ts\n// https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-image/README.md#gatsby-image-props\n// https://github.com/gatsbyjs/gatsby/blob/master/docs/docs/gatsby-image.md#gatsby-image-props\n\n\nImage.propTypes = {\n resolutions: fixedObject,\n sizes: fluidObject,\n fixed: requireFixedOrFluid(_propTypes.default.oneOfType([fixedObject, _propTypes.default.arrayOf(fixedObject)])),\n fluid: requireFixedOrFluid(_propTypes.default.oneOfType([fluidObject, _propTypes.default.arrayOf(fluidObject)])),\n fadeIn: _propTypes.default.bool,\n durationFadeIn: _propTypes.default.number,\n title: _propTypes.default.string,\n alt: _propTypes.default.string,\n className: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]),\n // Support Glamor's css prop.\n critical: _propTypes.default.bool,\n crossOrigin: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),\n style: _propTypes.default.object,\n imgStyle: _propTypes.default.object,\n placeholderStyle: _propTypes.default.object,\n placeholderClassName: _propTypes.default.string,\n backgroundColor: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),\n onLoad: _propTypes.default.func,\n onError: _propTypes.default.func,\n onStartLoad: _propTypes.default.func,\n Tag: _propTypes.default.string,\n itemProp: _propTypes.default.string,\n loading: _propTypes.default.oneOf([\"auto\", \"lazy\", \"eager\"]),\n draggable: _propTypes.default.bool\n};\nvar _default = Image;\nexports.default = _default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar scrollHash = {\n mountFlag: false,\n initialized: false,\n scroller: null,\n containers: {},\n mount: function mount(scroller) {\n this.scroller = scroller;\n this.handleHashChange = this.handleHashChange.bind(this);\n window.addEventListener('hashchange', this.handleHashChange);\n this.initStateFromHash();\n this.mountFlag = true;\n },\n mapContainer: function mapContainer(to, container) {\n this.containers[to] = container;\n },\n isMounted: function isMounted() {\n return this.mountFlag;\n },\n isInitialized: function isInitialized() {\n return this.initialized;\n },\n initStateFromHash: function initStateFromHash() {\n var _this = this;\n\n var hash = this.getHash();\n\n if (hash) {\n window.setTimeout(function () {\n _this.scrollTo(hash, true);\n\n _this.initialized = true;\n }, 10);\n } else {\n this.initialized = true;\n }\n },\n scrollTo: function scrollTo(to, isInit) {\n var scroller = this.scroller;\n var element = scroller.get(to);\n\n if (element && (isInit || to !== scroller.getActiveLink())) {\n var container = this.containers[to] || document;\n scroller.scrollTo(to, {\n container: container\n });\n }\n },\n getHash: function getHash() {\n return _utils2.default.getHash();\n },\n changeHash: function changeHash(to, saveHashHistory) {\n if (this.isInitialized() && _utils2.default.getHash() !== to) {\n _utils2.default.updateHash(to, saveHashHistory);\n }\n },\n handleHashChange: function handleHashChange() {\n this.scrollTo(this.getHash());\n },\n unmount: function unmount() {\n this.scroller = null;\n this.containers = null;\n window.removeEventListener('hashchange', this.handleHashChange);\n }\n};\nexports.default = scrollHash;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _smooth = require('./smooth');\n\nvar _smooth2 = _interopRequireDefault(_smooth);\n\nvar _cancelEvents = require('./cancel-events');\n\nvar _cancelEvents2 = _interopRequireDefault(_cancelEvents);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n/*\r\n * Gets the easing type from the smooth prop within options.\r\n */\n\n\nvar getAnimationType = function getAnimationType(options) {\n return _smooth2.default[options.smooth] || _smooth2.default.defaultEasing;\n};\n/*\r\n * Function helper\r\n */\n\n\nvar functionWrapper = function functionWrapper(value) {\n return typeof value === 'function' ? value : function () {\n return value;\n };\n};\n/*\r\n * Wraps window properties to allow server side rendering\r\n */\n\n\nvar currentWindowProperties = function currentWindowProperties() {\n if (typeof window !== 'undefined') {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame;\n }\n};\n/*\r\n * Helper function to never extend 60fps on the webpage.\r\n */\n\n\nvar requestAnimationFrameHelper = function () {\n return currentWindowProperties() || function (callback, element, delay) {\n window.setTimeout(callback, delay || 1000 / 60, new Date().getTime());\n };\n}();\n\nvar makeData = function makeData() {\n return {\n currentPosition: 0,\n startPosition: 0,\n targetPosition: 0,\n progress: 0,\n duration: 0,\n cancel: false,\n target: null,\n containerElement: null,\n to: null,\n start: null,\n delta: null,\n percent: null,\n delayTimeout: null\n };\n};\n\nvar currentPositionX = function currentPositionX(options) {\n var containerElement = options.data.containerElement;\n\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollLeft;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n }\n};\n\nvar currentPositionY = function currentPositionY(options) {\n var containerElement = options.data.containerElement;\n\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollTop;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n }\n};\n\nvar scrollContainerWidth = function scrollContainerWidth(options) {\n var containerElement = options.data.containerElement;\n\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollWidth - containerElement.offsetWidth;\n } else {\n var body = document.body;\n var html = document.documentElement;\n return Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth);\n }\n};\n\nvar scrollContainerHeight = function scrollContainerHeight(options) {\n var containerElement = options.data.containerElement;\n\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollHeight - containerElement.offsetHeight;\n } else {\n var body = document.body;\n var html = document.documentElement;\n return Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n }\n};\n\nvar animateScroll = function animateScroll(easing, options, timestamp) {\n var data = options.data; // Cancel on specific events\n\n if (!options.ignoreCancelEvents && data.cancel) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPositionY);\n }\n\n return;\n }\n\n ;\n data.delta = Math.round(data.targetPosition - data.startPosition);\n\n if (data.start === null) {\n data.start = timestamp;\n }\n\n data.progress = timestamp - data.start;\n data.percent = data.progress >= data.duration ? 1 : easing(data.progress / data.duration);\n data.currentPosition = data.startPosition + Math.ceil(data.delta * data.percent);\n\n if (data.containerElement && data.containerElement !== document && data.containerElement !== document.body) {\n if (options.horizontal) {\n data.containerElement.scrollLeft = data.currentPosition;\n } else {\n data.containerElement.scrollTop = data.currentPosition;\n }\n } else {\n if (options.horizontal) {\n window.scrollTo(data.currentPosition, 0);\n } else {\n window.scrollTo(0, data.currentPosition);\n }\n }\n\n if (data.percent < 1) {\n var easedAnimate = animateScroll.bind(null, easing, options);\n requestAnimationFrameHelper.call(window, easedAnimate);\n return;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPosition);\n }\n};\n\nvar setContainer = function setContainer(options) {\n options.data.containerElement = !options ? null : options.containerId ? document.getElementById(options.containerId) : options.container && options.container.nodeType ? options.container : document;\n};\n\nvar animateTopScroll = function animateTopScroll(scrollOffset, options, to, target) {\n options.data = options.data || makeData();\n window.clearTimeout(options.data.delayTimeout);\n\n _cancelEvents2.default.subscribe(function () {\n options.data.cancel = true;\n });\n\n setContainer(options);\n options.data.start = null;\n options.data.cancel = false;\n options.data.startPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n options.data.targetPosition = options.absolute ? scrollOffset : scrollOffset + options.data.startPosition;\n\n if (options.data.startPosition === options.data.targetPosition) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](options.data.to, options.data.target, options.data.currentPosition);\n }\n\n return;\n }\n\n options.data.delta = Math.round(options.data.targetPosition - options.data.startPosition);\n options.data.duration = functionWrapper(options.duration)(options.data.delta);\n options.data.duration = isNaN(parseFloat(options.data.duration)) ? 1000 : parseFloat(options.data.duration);\n options.data.to = to;\n options.data.target = target;\n var easing = getAnimationType(options);\n var easedAnimate = animateScroll.bind(null, easing, options);\n\n if (options && options.delay > 0) {\n options.data.delayTimeout = window.setTimeout(function () {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n\n requestAnimationFrameHelper.call(window, easedAnimate);\n }, options.delay);\n return;\n }\n\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n\n requestAnimationFrameHelper.call(window, easedAnimate);\n};\n\nvar proceedOptions = function proceedOptions(options) {\n options = _extends({}, options);\n options.data = options.data || makeData();\n options.absolute = true;\n return options;\n};\n\nvar scrollToTop = function scrollToTop(options) {\n animateTopScroll(0, proceedOptions(options));\n};\n\nvar scrollTo = function scrollTo(toPosition, options) {\n animateTopScroll(toPosition, proceedOptions(options));\n};\n\nvar scrollToBottom = function scrollToBottom(options) {\n options = proceedOptions(options);\n setContainer(options);\n animateTopScroll(options.horizontal ? scrollContainerWidth(options) : scrollContainerHeight(options), options);\n};\n\nvar scrollMore = function scrollMore(toPosition, options) {\n options = proceedOptions(options);\n setContainer(options);\n var currentPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n animateTopScroll(toPosition + currentPosition, options);\n};\n\nexports.default = {\n animateTopScroll: animateTopScroll,\n getAnimationType: getAnimationType,\n scrollToTop: scrollToTop,\n scrollToBottom: scrollToBottom,\n scrollTo: scrollTo,\n scrollMore: scrollMore\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = require('../mixins/scroll-link');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar LinkElement = function (_React$Component) {\n _inherits(LinkElement, _React$Component);\n\n function LinkElement() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, LinkElement);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = LinkElement.__proto__ || Object.getPrototypeOf(LinkElement)).call.apply(_ref, [this].concat(args))), _this), _this.render = function () {\n return _react2.default.createElement('a', _this.props, _this.props.children);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return LinkElement;\n}(_react2.default.Component);\n\n;\nexports.default = (0, _scrollLink2.default)(LinkElement);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\r\n * Tell the browser that the event listener won't prevent a scroll.\r\n * Allowing the browser to continue scrolling without having to\r\n * to wait for the listener to return.\r\n */\n\nvar addPassiveEventListener = exports.addPassiveEventListener = function addPassiveEventListener(target, eventName, listener) {\n var supportsPassiveOption = function () {\n var supportsPassiveOption = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassiveOption = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n\n return supportsPassiveOption;\n }();\n\n target.addEventListener(eventName, listener, supportsPassiveOption ? {\n passive: true\n } : false);\n};\n\nvar removePassiveEventListener = exports.removePassiveEventListener = function removePassiveEventListener(target, eventName, listener) {\n target.removeEventListener(eventName, listener);\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Events = {\n registered: {},\n scrollEvent: {\n register: function register(evtName, callback) {\n Events.registered[evtName] = callback;\n },\n remove: function remove(evtName) {\n Events.registered[evtName] = null;\n }\n }\n};\nexports.default = Events;","import React from 'react';\n\nconst PortfolioContext = React.createContext();\n\nexport const PortfolioProvider = PortfolioContext.Provider;\nexport const PortfolioConsumer = PortfolioContext.Consumer;\n\nexport default PortfolioContext;\n","import React, { useContext, useState, useEffect } from 'react';\nimport { Container } from 'react-bootstrap';\nimport Fade from 'react-reveal/Fade';\nimport { Link } from 'react-scroll';\nimport PortfolioContext from '../../context/context';\n\nconst Header = () => {\n const { hero } = useContext(PortfolioContext);\n const { title, name, subtitle, cta } = hero;\n\n const [isDesktop, setIsDesktop] = useState(false);\n const [isMobile, setIsMobile] = useState(false);\n\n useEffect(() => {\n if (window.innerWidth > 769) {\n setIsDesktop(true);\n setIsMobile(false);\n } else {\n setIsMobile(true);\n setIsDesktop(false);\n }\n }, []);\n\n return (\n
\n \n \n

\n {title || 'Hi, my name is'}{' '}\n {name || 'Akbar Habiby'}\n
\n {subtitle || \"I'm a Software Developer.\"}\n

\n
\n \n

\n \n \n {cta || 'Know more'}\n \n \n

\n
\n
\n
\n );\n};\n\nexport default Header;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar DEVICE_SIZES = ['xl', 'lg', 'md', 'sm', 'xs'];\nvar defaultProps = {\n noGutters: false\n};\nvar Row = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n className = _ref.className,\n noGutters = _ref.noGutters,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, [\"bsPrefix\", \"className\", \"noGutters\", \"as\"]);\n\n var decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n var sizePrefix = decoratedBsPrefix + \"-cols\";\n var classes = [];\n DEVICE_SIZES.forEach(function (brkPoint) {\n var propValue = props[brkPoint];\n delete props[brkPoint];\n var cols;\n\n if (propValue != null && typeof propValue === 'object') {\n cols = propValue.cols;\n } else {\n cols = propValue;\n }\n\n var infix = brkPoint !== 'xs' ? \"-\" + brkPoint : '';\n if (cols != null) classes.push(\"\" + sizePrefix + infix + \"-\" + cols);\n });\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n className: classNames.apply(void 0, [className, decoratedBsPrefix, noGutters && 'no-gutters'].concat(classes))\n }));\n});\nRow.displayName = 'Row';\nRow.defaultProps = defaultProps;\nexport default Row;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar DEVICE_SIZES = ['xl', 'lg', 'md', 'sm', 'xs'];\nvar Col = /*#__PURE__*/React.forwardRef( // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\nfunction (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n className = _ref.className,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, [\"bsPrefix\", \"className\", \"as\"]);\n\n var prefix = useBootstrapPrefix(bsPrefix, 'col');\n var spans = [];\n var classes = [];\n DEVICE_SIZES.forEach(function (brkPoint) {\n var propValue = props[brkPoint];\n delete props[brkPoint];\n var span;\n var offset;\n var order;\n\n if (typeof propValue === 'object' && propValue != null) {\n var _propValue$span = propValue.span;\n span = _propValue$span === void 0 ? true : _propValue$span;\n offset = propValue.offset;\n order = propValue.order;\n } else {\n span = propValue;\n }\n\n var infix = brkPoint !== 'xs' ? \"-\" + brkPoint : '';\n if (span) spans.push(span === true ? \"\" + prefix + infix : \"\" + prefix + infix + \"-\" + span);\n if (order != null) classes.push(\"order\" + infix + \"-\" + order);\n if (offset != null) classes.push(\"offset\" + infix + \"-\" + offset);\n });\n\n if (!spans.length) {\n spans.push(prefix); // plain 'col'\n }\n\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n ref: ref,\n className: classNames.apply(void 0, [className].concat(spans, classes))\n }));\n});\nCol.displayName = 'Col';\nexport default Col;","import React from 'react';\nimport Fade from 'react-reveal/Fade';\nimport PropTypes from 'prop-types';\n\nconst Title = ({ title }) => (\n \n

{title}

\n
\n);\n\nTitle.propTypes = {\n title: PropTypes.string.isRequired,\n};\n\nexport default Title;\n","import React from 'react';\nimport { StaticQuery, graphql } from 'gatsby';\nimport PropTypes from 'prop-types';\nimport Img from 'gatsby-image';\n\nconst AboutImg = ({ filename, alt }) => (\n {\n const image = data.images.edges.find((n) => n.node.relativePath.includes(filename));\n\n if (!image) return null;\n\n const imageFixed = image.node.childImageSharp.fixed;\n return {alt};\n }}\n />\n);\n\nAboutImg.propTypes = {\n filename: PropTypes.string,\n alt: PropTypes.string,\n};\n\nexport default AboutImg;\n","import React, { useContext, useState, useEffect } from 'react';\nimport Fade from 'react-reveal/Fade';\nimport { Container, Row, Col } from 'react-bootstrap';\nimport Title from '../Title/Title';\nimport AboutImg from '../Image/AboutImg';\nimport PortfolioContext from '../../context/context';\n\nconst About = () => {\n const { about } = useContext(PortfolioContext);\n const { img, paragraphOne, paragraphTwo, paragraphThree, resume } = about;\n\n const [isDesktop, setIsDesktop] = useState(false);\n const [isMobile, setIsMobile] = useState(false);\n\n useEffect(() => {\n if (window.innerWidth > 769) {\n setIsDesktop(true);\n setIsMobile(false);\n } else {\n setIsMobile(true);\n setIsDesktop(false);\n }\n }, []);\n\n return (\n
\n \n \n <Row className=\"about-wrapper\">\n <Col md={6} sm={12}>\n <Fade bottom duration={1000} delay={600} distance=\"30px\">\n <div className=\"about-wrapper__image\">\n <AboutImg alt=\"profile picture\" filename={img} />\n </div>\n </Fade>\n </Col>\n <Col md={6} sm={12}>\n <Fade left={isDesktop} bottom={isMobile} duration={1000} delay={1000} distance=\"30px\">\n <div className=\"about-wrapper__info\">\n <p className=\"about-wrapper__info-text\">\n {paragraphOne ||\n 'Lorem ipsum dolor sit, amet consectetur adipisicing elit. Excepturi neque, ipsa animi maiores repellendu distinctioaperiam earum dolor voluptatum consequatur blanditiis inventore debitis fuga numquam voluptate architecto itaque molestiae.'}\n </p>\n <p className=\"about-wrapper__info-text\">\n {paragraphTwo ||\n 'Lorem ipsum dolor sit, amet consectetur adipisicing elit. Excepturi neque, ipsa animi maiores repellendu distinctioaperiam earum dolor voluptatum consequatur blanditiis inventore debitis fuga numquam voluptate architecto itaque molestiae.'}\n </p>\n <p className=\"about-wrapper__info-text\">\n {paragraphThree || 'Lorem ipsum dolor sit, amet consectetur adipisicing elit.'}\n </p>\n {resume && (\n <span className=\"d-flex mt-3\">\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"cta-btn cta-btn--resume\"\n href={resume}\n >\n Resume\n </a>\n </span>\n )}\n </div>\n </Fade>\n </Col>\n </Row>\n </Container>\n </section>\n );\n};\n\nexport default About;\n","import React from 'react';\nimport { StaticQuery, graphql } from 'gatsby';\nimport PropTypes from 'prop-types';\nimport Img from 'gatsby-image';\n\nconst ProjectImg = ({ filename, alt }) => (\n <StaticQuery\n query={graphql`\n query {\n images: allFile {\n edges {\n node {\n relativePath\n name\n childImageSharp {\n fluid(maxWidth: 1366) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n }\n }\n }\n `}\n render={(data) => {\n const image = data.images.edges.find((n) => n.node.relativePath.includes(filename));\n\n if (!image) return null;\n\n const imageFluid = image.node.childImageSharp.fluid;\n return <Img alt={alt} fluid={imageFluid} />;\n }}\n />\n);\n\nProjectImg.propTypes = {\n filename: PropTypes.string,\n alt: PropTypes.string,\n};\n\nexport default ProjectImg;\n","import React, { useContext, useEffect, useState } from 'react';\nimport Fade from 'react-reveal/Fade';\nimport Tilt from 'react-tilt';\nimport { Container, Row, Col } from 'react-bootstrap';\nimport PortfolioContext from '../../context/context';\nimport Title from '../Title/Title';\nimport ProjectImg from '../Image/ProjectImg';\n\nconst Projects = () => {\n const { projects } = useContext(PortfolioContext);\n\n const [isDesktop, setIsDesktop] = useState(false);\n const [isMobile, setIsMobile] = useState(false);\n\n useEffect(() => {\n if (window.innerWidth > 769) {\n setIsDesktop(true);\n setIsMobile(false);\n } else {\n setIsMobile(true);\n setIsDesktop(false);\n }\n }, []);\n\n return (\n <section id=\"projects\">\n <Container>\n <div className=\"project-wrapper\">\n <Title title=\"Projects\" />\n {projects.map((project) => {\n const { title, info, info2, url, repo, img, id } = project;\n\n return (\n <Row key={id}>\n <Col lg={4} sm={12}>\n <Fade\n left={isDesktop}\n bottom={isMobile}\n duration={1000}\n delay={500}\n distance=\"30px\"\n >\n <div className=\"project-wrapper__text\">\n <h3 className=\"project-wrapper__text-title\">{title || 'Project Title'}</h3>\n <p style={{ fontWeight: 'bold' }}>{info || 'Back End Developer'}</p>\n <div>\n <p className=\"mb-4\">{info2 || ''}</p>\n </div>\n {repo && (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={`${!url ? 'cta-btn--nopad' : 'cta-btn--pr'} text-color-main`}\n href={repo}\n >\n Source Code\n </a>\n )}\n {url && (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"cta-btn cta-btn--hero\"\n href={url || '#!'}\n >\n See Live\n </a>\n )}\n </div>\n </Fade>\n </Col>\n <Col lg={8} sm={12}>\n <Fade\n right={isDesktop}\n bottom={isMobile}\n duration={1000}\n delay={1000}\n distance=\"30px\"\n >\n <div className=\"project-wrapper__image\">\n <a\n href={url || '#!'}\n target=\"_blank\"\n aria-label=\"Project Link\"\n rel=\"noopener noreferrer\"\n >\n <Tilt\n options={{\n reverse: false,\n max: 8,\n perspective: 1000,\n scale: 1,\n speed: 300,\n transition: true,\n axis: null,\n reset: true,\n easing: 'cubic-bezier(.03,.98,.52,.99)',\n }}\n >\n <div data-tilt className=\"thumbnail rounded\">\n <ProjectImg alt={title} filename={img} />\n </div>\n </Tilt>\n </a>\n </div>\n </Fade>\n </Col>\n </Row>\n );\n })}\n </div>\n </Container>\n </section>\n );\n};\n\nexport default Projects;\n","import React, { useContext } from 'react';\nimport Fade from 'react-reveal/Fade';\nimport { Container } from 'react-bootstrap';\nimport PortfolioContext from '../../context/context';\nimport Title from '../Title/Title';\n\nconst Contact = () => {\n const { contact } = useContext(PortfolioContext);\n const { cta, btn, email } = contact;\n\n return (\n <section id=\"contact\">\n <Container>\n <Title title=\"Contact\" />\n <Fade bottom duration={1000} delay={800} distance=\"30px\">\n <div className=\"contact-wrapper\">\n <p className=\"contact-wrapper__text\">\n {cta || 'Would you like to work with me? Awesome!'}\n </p>\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"cta-btn cta-btn--resume\"\n href={email ? `mailto:${email}` : 'mailto:mail@akbarhabiby.net'}\n >\n {btn || \"Let's Talk\"}\n </a>\n </div>\n </Fade>\n </Container>\n </section>\n );\n};\n\nexport default Contact;\n","import React, { useContext } from 'react';\nimport { Container } from 'react-bootstrap';\nimport { Link } from 'react-scroll';\nimport PortfolioContext from '../../context/context';\n\nconst Footer = () => {\n const { footer } = useContext(PortfolioContext);\n const { networks } = footer;\n\n return (\n <footer className=\"footer navbar-static-bottom\">\n <Container>\n <span className=\"back-to-top\">\n <Link to=\"hero\" smooth duration={1000}>\n <i className=\"fa fa-angle-up fa-2x\" aria-hidden=\"true\" />\n </Link>\n </span>\n <div className=\"social-links\">\n {networks &&\n networks.map((network) => {\n const { id, name, url } = network;\n return (\n <a\n key={id}\n href={url || 'https://github.com/cobidev/gatsby-simplefolio'}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n aria-label={name}\n >\n <i className={`fa fa-${name || 'refresh'} fa-inverse`} />\n </a>\n );\n })}\n </div>\n </Container>\n </footer>\n );\n};\n\nexport default Footer;\n","import React, { useState, useEffect } from 'react';\nimport Hero from './Hero/Hero';\nimport About from './About/About';\nimport Projects from './Projects/Projects';\nimport Contact from './Contact/Contact';\nimport Footer from './Footer/Footer';\n\nimport { PortfolioProvider } from '../context/context';\n\nimport { heroData, aboutData, projectsData, contactData, footerData } from '../mock/data';\n\nfunction App() {\n const [hero, setHero] = useState({});\n const [about, setAbout] = useState({});\n const [projects, setProjects] = useState([]);\n const [contact, setContact] = useState({});\n const [footer, setFooter] = useState({});\n\n useEffect(() => {\n setHero({ ...heroData });\n setAbout({ ...aboutData });\n setProjects([...projectsData]);\n setContact({ ...contactData });\n setFooter({ ...footerData });\n }, []);\n\n return (\n <PortfolioProvider value={{ hero, about, projects, contact, footer }}>\n <Hero />\n <About />\n <Projects />\n <Contact />\n <Footer />\n </PortfolioProvider>\n );\n}\n\nexport default App;\n","import React from 'react';\nimport { Helmet } from 'react-helmet';\nimport App from '../components/App';\nimport { headData } from '../mock/data';\nimport 'bootstrap/dist/css/bootstrap.min.css';\nimport '../style/main.scss';\n\nexport default () => {\n const { title, lang, description } = headData;\n\n return (\n <>\n <Helmet>\n <meta charSet=\"utf-8\" />\n <title>{title || 'AkbarHabiby | Software Developer'}\n \n \n \n \n \n );\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollElement = require('../mixins/scroll-element');\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar ElementWrapper = function (_React$Component) {\n _inherits(ElementWrapper, _React$Component);\n\n function ElementWrapper() {\n _classCallCheck(this, ElementWrapper);\n\n return _possibleConstructorReturn(this, (ElementWrapper.__proto__ || Object.getPrototypeOf(ElementWrapper)).apply(this, arguments));\n }\n\n _createClass(ElementWrapper, [{\n key: 'render',\n value: function render() {\n var _this2 = this; // Remove `parentBindings` from props\n\n\n var newProps = _extends({}, this.props);\n\n if (newProps.parentBindings) {\n delete newProps.parentBindings;\n }\n\n return _react2.default.createElement('div', _extends({}, newProps, {\n ref: function ref(el) {\n _this2.props.parentBindings.domNode = el;\n }\n }), this.props.children);\n }\n }]);\n\n return ElementWrapper;\n}(_react2.default.Component);\n\n;\nElementWrapper.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n};\nexports.default = (0, _scrollElement2.default)(ElementWrapper);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar Tilt = function (_Component) {\n _inherits(Tilt, _Component);\n\n function Tilt(props) {\n _classCallCheck(this, Tilt);\n\n var _this = _possibleConstructorReturn(this, (Tilt.__proto__ || Object.getPrototypeOf(Tilt)).call(this, props));\n\n _this.state = {\n style: {}\n };\n var defaultSettings = {\n reverse: false,\n max: 35,\n perspective: 1000,\n easing: \"cubic-bezier(.03,.98,.52,.99)\",\n scale: \"1.1\",\n speed: \"1000\",\n transition: true,\n axis: null,\n reset: true\n };\n _this.width = null;\n _this.height = null;\n _this.left = null;\n _this.top = null;\n _this.transitionTimeout = null;\n _this.updateCall = null;\n _this.element = null;\n _this.settings = Object.assign({}, defaultSettings, _this.props.options);\n _this.reverse = _this.settings.reverse ? -1 : 1; // Events\n\n _this.onMouseEnter = _this.onMouseEnter.bind(_this, _this.props.onMouseEnter);\n _this.onMouseMove = _this.onMouseMove.bind(_this, _this.props.onMouseMove);\n _this.onMouseLeave = _this.onMouseLeave.bind(_this, _this.props.onMouseLeave);\n return _this;\n }\n\n _createClass(Tilt, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.element = (0, _reactDom.findDOMNode)(this);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n clearTimeout(this.transitionTimeout);\n cancelAnimationFrame(this.updateCall);\n }\n }, {\n key: 'onMouseEnter',\n value: function onMouseEnter() {\n var cb = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};\n var e = arguments[1];\n this.updateElementPosition();\n this.setState(Object.assign({}, this.state, {\n style: _extends({}, this.state.style, {\n willChange: \"transform\"\n })\n }));\n this.setTransition();\n return cb(e);\n }\n }, {\n key: 'reset',\n value: function reset() {\n var _this2 = this;\n\n window.requestAnimationFrame(function () {\n _this2.setState(Object.assign({}, _this2.state, {\n style: _extends({}, _this2.state.style, {\n transform: \"perspective(\" + _this2.settings.perspective + \"px) \" + \"rotateX(0deg) \" + \"rotateY(0deg) \" + \"scale3d(1, 1, 1)\"\n })\n }));\n });\n }\n }, {\n key: 'onMouseMove',\n value: function onMouseMove() {\n var cb = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};\n var e = arguments[1];\n e.persist();\n\n if (this.updateCall !== null) {\n window.cancelAnimationFrame(this.updateCall);\n }\n\n this.event = e;\n this.updateCall = requestAnimationFrame(this.update.bind(this, e));\n return cb(e);\n }\n }, {\n key: 'setTransition',\n value: function setTransition() {\n var _this3 = this;\n\n clearTimeout(this.transitionTimeout);\n this.setState(Object.assign({}, this.state, {\n style: _extends({}, this.state.style, {\n transition: this.settings.speed + \"ms \" + this.settings.easing\n })\n }));\n this.transitionTimeout = setTimeout(function () {\n _this3.setState(Object.assign({}, _this3.state, {\n style: _extends({}, _this3.state.style, {\n transition: ''\n })\n }));\n }, this.settings.speed);\n }\n }, {\n key: 'onMouseLeave',\n value: function onMouseLeave() {\n var cb = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};\n var e = arguments[1];\n this.setTransition();\n\n if (this.settings.reset) {\n this.reset();\n }\n\n return cb(e);\n }\n }, {\n key: 'getValues',\n value: function getValues(e) {\n var x = (e.nativeEvent.clientX - this.left) / this.width;\n var y = (e.nativeEvent.clientY - this.top) / this.height;\n\n var _x = Math.min(Math.max(x, 0), 1);\n\n var _y = Math.min(Math.max(y, 0), 1);\n\n var tiltX = (this.reverse * (this.settings.max / 2 - _x * this.settings.max)).toFixed(2);\n\n var tiltY = (this.reverse * (_y * this.settings.max - this.settings.max / 2)).toFixed(2);\n var percentageX = _x * 100;\n var percentageY = _y * 100;\n return {\n tiltX: tiltX,\n tiltY: tiltY,\n percentageX: percentageX,\n percentageY: percentageY\n };\n }\n }, {\n key: 'updateElementPosition',\n value: function updateElementPosition() {\n var rect = this.element.getBoundingClientRect();\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 key: 'update',\n value: function update(e) {\n var values = this.getValues(e);\n this.setState(Object.assign({}, this.state, {\n style: _extends({}, this.state.style, {\n 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 }));\n this.updateCall = null;\n }\n }, {\n key: 'render',\n value: function render() {\n var style = Object.assign({}, this.props.style, this.state.style);\n return _react2.default.createElement('div', {\n style: style,\n className: this.props.className,\n onMouseEnter: this.onMouseEnter,\n onMouseMove: this.onMouseMove,\n onMouseLeave: this.onMouseLeave\n }, this.props.children);\n }\n }]);\n\n return Tilt;\n}(_react.Component);\n\nexports.default = Tilt;","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n/** Used as references for various `Number` constants. */\n\nvar NAN = 0 / 0;\n/** `Object#toString` result references. */\n\nvar symbolTag = '[object Symbol]';\n/** Used to match leading and trailing whitespace. */\n\nvar reTrim = /^\\s+|\\s+$/g;\n/** Used to detect bad signed hexadecimal string values. */\n\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n/** Used to detect binary string values. */\n\nvar reIsBinary = /^0b[01]+$/i;\n/** Used to detect octal string values. */\n\nvar reIsOctal = /^0o[0-7]+$/i;\n/** Built-in method references without a dependency on `root`. */\n\nvar freeParseInt = parseInt;\n/** Detect free variable `global` from Node.js. */\n\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n/** Detect free variable `self`. */\n\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n/** Used as a reference to the global object. */\n\nvar root = freeGlobal || freeSelf || Function('return this')();\n/** Used for built-in method references. */\n\nvar objectProto = Object.prototype;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar objectToString = objectProto.toString;\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n\nvar now = function now() {\n return root.Date.now();\n};\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n\n\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n wait = toNumber(wait) || 0;\n\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time; // Start the timer for the trailing edge.\n\n timerId = setTimeout(timerExpired, wait); // Invoke the leading edge.\n\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime; // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n\n return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n\n function timerExpired() {\n var time = now();\n\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n } // Restart the timer.\n\n\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined; // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n\n return result;\n }\n\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\n\n\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n\n\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n\n\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n\n\nfunction isSymbol(value) {\n return typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;\n}\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n\n\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n\n if (isSymbol(value)) {\n return NAN;\n }\n\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? other + '' : other;\n }\n\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n}\n\nmodule.exports = throttle;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Helpers = exports.ScrollElement = exports.ScrollLink = exports.animateScroll = exports.scrollSpy = exports.Events = exports.scroller = exports.Element = exports.Button = exports.Link = undefined;\n\nvar _Link = require('./components/Link.js');\n\nvar _Link2 = _interopRequireDefault(_Link);\n\nvar _Button = require('./components/Button.js');\n\nvar _Button2 = _interopRequireDefault(_Button);\n\nvar _Element = require('./components/Element.js');\n\nvar _Element2 = _interopRequireDefault(_Element);\n\nvar _scroller = require('./mixins/scroller.js');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _scrollEvents = require('./mixins/scroll-events.js');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nvar _scrollSpy = require('./mixins/scroll-spy.js');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _animateScroll = require('./mixins/animate-scroll.js');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollLink = require('./mixins/scroll-link.js');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nvar _scrollElement = require('./mixins/scroll-element.js');\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _Helpers = require('./mixins/Helpers.js');\n\nvar _Helpers2 = _interopRequireDefault(_Helpers);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.Link = _Link2.default;\nexports.Button = _Button2.default;\nexports.Element = _Element2.default;\nexports.scroller = _scroller2.default;\nexports.Events = _scrollEvents2.default;\nexports.scrollSpy = _scrollSpy2.default;\nexports.animateScroll = _animateScroll2.default;\nexports.ScrollLink = _scrollLink2.default;\nexports.ScrollElement = _scrollElement2.default;\nexports.Helpers = _Helpers2.default;\nexports.default = {\n Link: _Link2.default,\n Button: _Button2.default,\n Element: _Element2.default,\n scroller: _scroller2.default,\n Events: _scrollEvents2.default,\n scrollSpy: _scrollSpy2.default,\n animateScroll: _animateScroll2.default,\n ScrollLink: _scrollLink2.default,\n ScrollElement: _scrollElement2.default,\n Helpers: _Helpers2.default\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollSpy = require('./scroll-spy');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _scrollHash = require('./scroll-hash');\n\nvar _scrollHash2 = _interopRequireDefault(_scrollHash);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar protoTypes = {\n to: _propTypes2.default.string.isRequired,\n containerId: _propTypes2.default.string,\n container: _propTypes2.default.object,\n activeClass: _propTypes2.default.string,\n spy: _propTypes2.default.bool,\n horizontal: _propTypes2.default.bool,\n smooth: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n offset: _propTypes2.default.number,\n delay: _propTypes2.default.number,\n isDynamic: _propTypes2.default.bool,\n onClick: _propTypes2.default.func,\n duration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n absolute: _propTypes2.default.bool,\n onSetActive: _propTypes2.default.func,\n onSetInactive: _propTypes2.default.func,\n ignoreCancelEvents: _propTypes2.default.bool,\n hashSpy: _propTypes2.default.bool,\n saveHashHistory: _propTypes2.default.bool\n};\n\nexports.default = function (Component, customScroller) {\n var scroller = customScroller || _scroller2.default;\n\n var Link = function (_React$PureComponent) {\n _inherits(Link, _React$PureComponent);\n\n function Link(props) {\n _classCallCheck(this, Link);\n\n var _this = _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Link, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId && !container) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!_scrollSpy2.default.isMounted(scrollSpyContainer)) {\n _scrollSpy2.default.mount(scrollSpyContainer);\n }\n\n if (this.props.hashSpy) {\n if (!_scrollHash2.default.isMounted()) {\n _scrollHash2.default.mount(scroller);\n }\n\n _scrollHash2.default.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n _scrollSpy2.default.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n _scrollSpy2.default.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.onClick = this.handleClick;\n return _react2.default.createElement(Component, props);\n }\n }]);\n\n return Link;\n }(_react2.default.PureComponent);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n /*\r\n * give the posibility to override onClick\r\n */\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n /*\r\n * dont bubble the navigation\r\n */\n\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n /*\r\n * do the magic!\r\n */\n\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.spyHandler = function (x, y) {\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (_scrollHash2.default.isMounted() && !_scrollHash2.default.isInitialized()) {\n return;\n }\n\n var horizontal = _this2.props.horizontal;\n var to = _this2.props.to;\n var element = null;\n var isInside = void 0;\n var isOutside = void 0;\n\n if (horizontal) {\n var elemLeftBound = 0;\n var elemRightBound = 0;\n var containerLeft = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerLeft = containerCords.left;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemLeftBound = cords.left - containerLeft + x;\n elemRightBound = elemLeftBound + cords.width;\n }\n\n var offsetX = x - _this2.props.offset;\n isInside = offsetX >= Math.floor(elemLeftBound) && offsetX < Math.floor(elemRightBound);\n isOutside = offsetX < Math.floor(elemLeftBound) || offsetX >= Math.floor(elemRightBound);\n } else {\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var _containerCords = scrollSpyContainer.getBoundingClientRect();\n\n containerTop = _containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n\n if (!element) {\n return;\n }\n\n var _cords = element.getBoundingClientRect();\n\n elemTopBound = _cords.top - containerTop + y;\n elemBottomBound = elemTopBound + _cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n }\n\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && _scrollHash2.default.getHash() === to) {\n var _props$saveHashHistor = _this2.props.saveHashHistory,\n saveHashHistory = _props$saveHashHistor === undefined ? false : _props$saveHashHistor;\n\n _scrollHash2.default.changeHash(\"\", saveHashHistory);\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({\n active: false\n });\n\n _this2.props.onSetInactive && _this2.props.onSetInactive(to, element);\n }\n }\n\n if (isInside && (activeLink !== to || _this2.state.active === false)) {\n scroller.setActiveLink(to);\n\n var _props$saveHashHistor2 = _this2.props.saveHashHistory,\n _saveHashHistory = _props$saveHashHistor2 === undefined ? false : _props$saveHashHistor2;\n\n _this2.props.hashSpy && _scrollHash2.default.changeHash(to, _saveHashHistory);\n\n if (_this2.props.spy) {\n _this2.setState({\n active: true\n });\n\n _this2.props.onSetActive && _this2.props.onSetActive(to, element);\n }\n }\n };\n };\n\n ;\n Link.propTypes = protoTypes;\n Link.defaultProps = {\n offset: 0\n };\n return Link;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nexports.default = function (Component) {\n var Element = function (_React$Component) {\n _inherits(Element, _React$Component);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this.childBindings = {\n domNode: null\n };\n return _this;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n\n _scroller2.default.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n _scroller2.default.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Component, _extends({}, this.props, {\n parentBindings: this.childBindings\n }));\n }\n }]);\n\n return Element;\n }(_react2.default.Component);\n\n ;\n Element.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n };\n return Element;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _lodash = require('lodash.throttle');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} // The eventHandler will execute at a rate of 15fps\n\n\nvar eventThrottler = function eventThrottler(eventHandler) {\n return (0, _lodash2.default)(eventHandler, 66);\n};\n\nvar scrollSpy = {\n spyCallbacks: [],\n spySetState: [],\n scrollSpyContainers: [],\n mount: function mount(scrollSpyContainer) {\n if (scrollSpyContainer) {\n var eventHandler = eventThrottler(function (event) {\n scrollSpy.scrollHandler(scrollSpyContainer);\n });\n scrollSpy.scrollSpyContainers.push(scrollSpyContainer);\n (0, _passiveEventListeners.addPassiveEventListener)(scrollSpyContainer, 'scroll', eventHandler);\n }\n },\n isMounted: function isMounted(scrollSpyContainer) {\n return scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer) !== -1;\n },\n currentPositionX: function currentPositionX(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageYOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n } else {\n return scrollSpyContainer.scrollLeft;\n }\n },\n currentPositionY: function currentPositionY(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n } else {\n return scrollSpyContainer.scrollTop;\n }\n },\n scrollHandler: function scrollHandler(scrollSpyContainer) {\n var callbacks = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)].spyCallbacks || [];\n callbacks.forEach(function (c) {\n return c(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n });\n },\n addStateHandler: function addStateHandler(handler) {\n scrollSpy.spySetState.push(handler);\n },\n addSpyHandler: function addSpyHandler(handler, scrollSpyContainer) {\n var container = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)];\n\n if (!container.spyCallbacks) {\n container.spyCallbacks = [];\n }\n\n container.spyCallbacks.push(handler);\n handler(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n },\n updateStates: function updateStates() {\n scrollSpy.spySetState.forEach(function (s) {\n return s();\n });\n },\n unmount: function unmount(stateHandler, spyHandler) {\n scrollSpy.scrollSpyContainers.forEach(function (c) {\n return c.spyCallbacks && c.spyCallbacks.length && c.spyCallbacks.splice(c.spyCallbacks.indexOf(spyHandler), 1);\n });\n\n if (scrollSpy.spySetState && scrollSpy.spySetState.length) {\n scrollSpy.spySetState.splice(scrollSpy.spySetState.indexOf(stateHandler), 1);\n }\n\n document.removeEventListener('scroll', scrollSpy.scrollHandler);\n },\n update: function update() {\n return scrollSpy.scrollSpyContainers.forEach(function (c) {\n return scrollSpy.scrollHandler(c);\n });\n }\n};\nexports.default = scrollSpy;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar updateHash = function updateHash(hash, historyUpdate) {\n var hashVal = hash.indexOf(\"#\") === 0 ? hash.substring(1) : hash;\n var hashToUpdate = hashVal ? \"#\" + hashVal : \"\";\n var curLoc = window && window.location;\n var urlToPush = hashToUpdate ? curLoc.pathname + curLoc.search + hashToUpdate : curLoc.pathname + curLoc.search;\n historyUpdate ? history.pushState(null, \"\", urlToPush) : history.replaceState(null, \"\", urlToPush);\n};\n\nvar getHash = function getHash() {\n return window.location.hash.replace(/^#/, \"\");\n};\n\nvar filterElementInContainer = function filterElementInContainer(container) {\n return function (element) {\n return container.contains ? container != element && container.contains(element) : !!(container.compareDocumentPosition(element) & 16);\n };\n};\n\nvar scrollOffset = function scrollOffset(c, t, horizontal) {\n if (horizontal) {\n return c === document ? t.getBoundingClientRect().left + (window.scrollX || window.pageXOffset) : getComputedStyle(c).position !== \"static\" ? t.offsetLeft : t.offsetLeft - c.offsetLeft;\n } else {\n return c === document ? t.getBoundingClientRect().top + (window.scrollY || window.pageYOffset) : getComputedStyle(c).position !== \"static\" ? t.offsetTop : t.offsetTop - c.offsetTop;\n }\n};\n\nexports.default = {\n updateHash: updateHash,\n getHash: getHash,\n filterElementInContainer: filterElementInContainer,\n scrollOffset: scrollOffset\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _animateScroll = require('./animate-scroll');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar __mapped = {};\n\nvar __activeLink = void 0;\n\nexports.default = {\n unmount: function unmount() {\n __mapped = {};\n },\n register: function register(name, element) {\n __mapped[name] = element;\n },\n unregister: function unregister(name) {\n delete __mapped[name];\n },\n get: function get(name) {\n return __mapped[name] || document.getElementById(name) || document.getElementsByName(name)[0] || document.getElementsByClassName(name)[0];\n },\n setActiveLink: function setActiveLink(link) {\n return __activeLink = link;\n },\n getActiveLink: function getActiveLink() {\n return __activeLink;\n },\n scrollTo: function scrollTo(to, props) {\n var target = this.get(to);\n\n if (!target) {\n console.warn(\"target Element not found\");\n return;\n }\n\n props = _extends({}, props, {\n absolute: false\n });\n var containerId = props.containerId;\n var container = props.container;\n var containerElement = void 0;\n\n if (containerId) {\n containerElement = document.getElementById(containerId);\n } else if (container && container.nodeType) {\n containerElement = container;\n } else {\n containerElement = document;\n }\n\n props.absolute = true;\n var horizontal = props.horizontal;\n var scrollOffset = _utils2.default.scrollOffset(containerElement, target, horizontal) + (props.offset || 0);\n /*\r\n * if animate is not provided just scroll into the view\r\n */\n\n if (!props.smooth) {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](to, target);\n }\n\n if (containerElement === document) {\n if (props.horizontal) {\n window.scrollTo(scrollOffset, 0);\n } else {\n window.scrollTo(0, scrollOffset);\n }\n } else {\n containerElement.scrollTop = scrollOffset;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](to, target);\n }\n\n return;\n }\n /*\r\n * Animate scrolling\r\n */\n\n\n _animateScroll2.default.animateTopScroll(scrollOffset, props, to, target);\n }\n};"],"sourceRoot":""}