-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcomponent---src-pages-index-js-8d0cf4504369b1445528.js.map
1 lines (1 loc) · 92.5 KB
/
component---src-pages-index-js-8d0cf4504369b1445528.js.map
1
{"version":3,"sources":["webpack:///./node_modules/warning/warning.js","webpack:///./node_modules/exenv/index.js","webpack:///./node_modules/react-modal/lib/helpers/safeHTMLElement.js","webpack:///./node_modules/react-modal/lib/index.js","webpack:///./node_modules/react-modal/lib/components/ModalPortal.js","webpack:///./src/components/layout/main.js","webpack:///./src/components/layout/bio.js","webpack:///./src/components/layout/experience-tile.js","webpack:///./src/components/layout/experience.js","webpack:///./src/components/layout/portfolio-tile.js","webpack:///./src/components/layout/portfolio.js","webpack:///./src/components/layout/contact.js","webpack:///./src/pages/index.js","webpack:///./node_modules/react-modal/lib/helpers/scopeTab.js","webpack:///./node_modules/react-modal/lib/helpers/portalOpenInstances.js","webpack:///./node_modules/react-modal/lib/helpers/focusManager.js","webpack:///./node_modules/react-modal/lib/helpers/bodyTrap.js","webpack:///./node_modules/react-modal/lib/helpers/ariaAppHider.js","webpack:///./node_modules/react-modal/lib/helpers/tabbable.js","webpack:///./node_modules/react-modal/lib/helpers/classList.js","webpack:///./node_modules/react-modal/lib/components/Modal.js","webpack:///./static/DKeohaneCV.pdf"],"names":["warning","module","exports","canUseDOM","window","document","createElement","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","addEventListener","attachEvent","canUseViewport","screen","Object","defineProperty","value","undefined","obj","_exenv","EE","__esModule","default","SafeHTMLElement","HTMLElement","_Modal","_Modal2","_extends","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","_typeof","Symbol","iterator","constructor","_createClass","defineProperties","props","descriptor","enumerable","configurable","writable","Constructor","protoProps","staticProps","_react","_propTypes2","_interopRequireDefault","focusManager","_interopRequireWildcard","_scopeTab2","ariaAppHider","classList","_safeHTMLElement2","_portalOpenInstances2","newObj","CLASS_NAMES","overlay","content","ariaHiddenInstances","ModalPortal","_Component","instance","TypeError","_classCallCheck","this","_this","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","setOverlayRef","overlayRef","setContentRef","contentRef","afterClose","_this$props","appElement","ariaHideApp","htmlOpenClassName","bodyOpenClassName","remove","body","getElementsByTagName","show","shouldFocusAfterRender","shouldReturnFocusAfterClose","returnFocus","preventScroll","teardownScopedFocus","popWithoutFocus","onAfterClose","deregister","open","beforeOpen","state","afterOpen","beforeClose","clearTimeout","closeTimer","setState","setupScopedFocus","node","markForFocusLater","isOpen","onAfterOpen","overlayEl","contentEl","close","closeTimeoutMS","closeWithTimeout","closeWithoutTimeout","focusContent","contentHasFocus","focus","closesAt","Date","now","setTimeout","handleKeyDown","event","keyCode","shouldCloseOnEsc","stopPropagation","requestClose","handleOverlayOnClick","shouldClose","shouldCloseOnOverlayClick","ownerHandlesClose","handleContentOnMouseUp","handleOverlayOnMouseDown","preventDefault","handleContentOnClick","handleContentOnMouseDown","onRequestClose","shouldBeClosed","activeElement","contains","buildClassName","which","additional","classNames","base","className","attributesFromObject","prefix","items","keys","reduce","acc","name","moveFromContentToOverlay","subClass","superClass","create","setPrototypeOf","_inherits","prevProps","prevState","_props","add","hide","register","_props2","id","overlayClassName","defaultStyles","children","contentStyles","overlayStyles","overlayProps","ref","style","onClick","onMouseDown","contentProps","tabIndex","onKeyDown","onMouseUp","role","contentLabel","modal","aria","data","testId","contentElement","overlayElement","Component","defaultProps","propTypes","bool","isRequired","shape","object","oneOfType","string","instanceOf","func","number","container","display","justifyContent","flexDirection","maxWidth","marginLeft","marginRight","links","color","textAlign","fontFamily","textDecoration","HeaderStyle","padding","fontWeight","contentStyle","controllerStyle","margin","subTextStyle","fontSize","Main","useStaticQuery","Fragment","to","fluid","GB","childImageSharp","headingStyle","background","Bio","Modal","setAppElement","width","modalStyles","backgroundColor","position","top","left","right","bottom","border","tileLink","projectImage","ExperienceTile","useState","modalOpen","setModalOpen","closeModal","image","css","alignItems","justifyItems","title","experienceList","gridTemplateColumns","gridGap","gridAutoRows","Experience","href","CV","demonware","category","ubiAnnecy","ubiReflections","projectTitle","projectCategory","PortfolioTile","link","portfolioGrid","Portfolio","codenameRabbit","sqg","fishtank","lifecycle","Grid","a","Contact","alt","email","linkedin","bg","imageStyle","maxHeight","IndexPage","chevron","tabbable","_tabbable2","shiftKey","head","tail","checkSafari","exec","navigator","userAgent","x","indexOf","_tabbable","portalOpenInstances","PortalOpenInstances","openInstance","openInstances","push","emit","index","splice","subscribe","callback","subscribers","eventType","forEach","subscriber","slice","handleBlur","handleFocus","focusLaterElements","toFocus","pop","e","console","warn","join","element","modalElement","removeEventListener","detachEvent","needToFocus","_portalOpenInstances","before","after","instances","setAttribute","opacity","cloneNode","firstChild","insertBefore","lastChild","appendChild","parentElement","removeChild","assertNodeList","setElement","useElement","_safeHTMLElement","el","querySelectorAll","globalElement","validateElement","removeAttribute","documentNotReadyOrSSRTesting","resetForTesting","_warning","_warning2","nodeList","selector","Error","filter","tabbableNode","hidesContents","zeroSize","offsetWidth","offsetHeight","innerHTML","getComputedStyle","getPropertyValue","scrollWidth","scrollHeight","focusable","isTabIndexNotNaN","nodeName","toLowerCase","test","disabled","parentNode","visible","getAttribute","isTabIndexNaN","isNaN","dumpClassLists","htmlClassList","docBodyClassList","classString","classListRef","poll","split","incrementReference","decrementReference","portalClassName","_react2","_reactDom2","_ModalPortal2","_reactLifecyclesCompat","isReact16","createPortal","getCreatePortal","unstable_renderSubtreeIntoContainer","getParentElement","parentSelector","_ref","_temp","_len","args","Array","_key","apply","concat","removePortal","unmountComponentAtNode","parent","portalRef","portal","renderPortal","prevParent","nextParent","_","snapshot","overflow","WebkitOverflowScrolling","borderRadius","outline","polyfill"],"mappings":"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","file":"component---src-pages-index-js-8d0cf4504369b1445528.js","sourcesContent":["/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n\n/* global define */\n(function () {\n 'use strict';\n\n var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n var ExecutionEnvironment = {\n canUseDOM: canUseDOM,\n canUseWorkers: typeof Worker !== 'undefined',\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n canUseViewport: canUseDOM && !!window.screen\n };\n\n if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n define(function () {\n return ExecutionEnvironment;\n });\n } else if (typeof module !== 'undefined' && module.exports) {\n module.exports = ExecutionEnvironment;\n } else {\n window.ExecutionEnvironment = ExecutionEnvironment;\n }\n})();","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canUseDOM = undefined;\n\nvar _exenv = require(\"exenv\");\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar EE = _exenv2.default;\nvar SafeHTMLElement = EE.canUseDOM ? window.HTMLElement : {};\nvar canUseDOM = exports.canUseDOM = EE.canUseDOM;\nexports.default = SafeHTMLElement;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Modal = require(\"./components/Modal\");\n\nvar _Modal2 = _interopRequireDefault(_Modal);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.default = _Modal2.default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nrequire(\"core-js/modules/es.array.reduce.js\");\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 _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\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 _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _focusManager = require(\"../helpers/focusManager\");\n\nvar focusManager = _interopRequireWildcard(_focusManager);\n\nvar _scopeTab = require(\"../helpers/scopeTab\");\n\nvar _scopeTab2 = _interopRequireDefault(_scopeTab);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _classList = require(\"../helpers/classList\");\n\nvar classList = _interopRequireWildcard(_classList);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _portalOpenInstances = require(\"../helpers/portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nrequire(\"../helpers/bodyTrap\");\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\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} // so that our CSS is statically analyzable\n\n\nvar CLASS_NAMES = {\n overlay: \"ReactModal__Overlay\",\n content: \"ReactModal__Content\"\n};\nvar TAB_KEY = 9;\nvar ESC_KEY = 27;\nvar ariaHiddenInstances = 0;\n\nvar ModalPortal = function (_Component) {\n _inherits(ModalPortal, _Component);\n\n function ModalPortal(props) {\n _classCallCheck(this, ModalPortal);\n\n var _this = _possibleConstructorReturn(this, (ModalPortal.__proto__ || Object.getPrototypeOf(ModalPortal)).call(this, props));\n\n _this.setOverlayRef = function (overlay) {\n _this.overlay = overlay;\n _this.props.overlayRef && _this.props.overlayRef(overlay);\n };\n\n _this.setContentRef = function (content) {\n _this.content = content;\n _this.props.contentRef && _this.props.contentRef(content);\n };\n\n _this.afterClose = function () {\n var _this$props = _this.props,\n appElement = _this$props.appElement,\n ariaHideApp = _this$props.ariaHideApp,\n htmlOpenClassName = _this$props.htmlOpenClassName,\n bodyOpenClassName = _this$props.bodyOpenClassName; // Remove classes.\n\n bodyOpenClassName && classList.remove(document.body, bodyOpenClassName);\n htmlOpenClassName && classList.remove(document.getElementsByTagName(\"html\")[0], htmlOpenClassName); // Reset aria-hidden attribute if all modals have been removed\n\n if (ariaHideApp && ariaHiddenInstances > 0) {\n ariaHiddenInstances -= 1;\n\n if (ariaHiddenInstances === 0) {\n ariaAppHider.show(appElement);\n }\n }\n\n if (_this.props.shouldFocusAfterRender) {\n if (_this.props.shouldReturnFocusAfterClose) {\n focusManager.returnFocus(_this.props.preventScroll);\n focusManager.teardownScopedFocus();\n } else {\n focusManager.popWithoutFocus();\n }\n }\n\n if (_this.props.onAfterClose) {\n _this.props.onAfterClose();\n }\n\n _portalOpenInstances2.default.deregister(_this);\n };\n\n _this.open = function () {\n _this.beforeOpen();\n\n if (_this.state.afterOpen && _this.state.beforeClose) {\n clearTimeout(_this.closeTimer);\n\n _this.setState({\n beforeClose: false\n });\n } else {\n if (_this.props.shouldFocusAfterRender) {\n focusManager.setupScopedFocus(_this.node);\n focusManager.markForFocusLater();\n }\n\n _this.setState({\n isOpen: true\n }, function () {\n _this.setState({\n afterOpen: true\n });\n\n if (_this.props.isOpen && _this.props.onAfterOpen) {\n _this.props.onAfterOpen({\n overlayEl: _this.overlay,\n contentEl: _this.content\n });\n }\n });\n }\n };\n\n _this.close = function () {\n if (_this.props.closeTimeoutMS > 0) {\n _this.closeWithTimeout();\n } else {\n _this.closeWithoutTimeout();\n }\n };\n\n _this.focusContent = function () {\n return _this.content && !_this.contentHasFocus() && _this.content.focus({\n preventScroll: true\n });\n };\n\n _this.closeWithTimeout = function () {\n var closesAt = Date.now() + _this.props.closeTimeoutMS;\n\n _this.setState({\n beforeClose: true,\n closesAt: closesAt\n }, function () {\n _this.closeTimer = setTimeout(_this.closeWithoutTimeout, _this.state.closesAt - Date.now());\n });\n };\n\n _this.closeWithoutTimeout = function () {\n _this.setState({\n beforeClose: false,\n isOpen: false,\n afterOpen: false,\n closesAt: null\n }, _this.afterClose);\n };\n\n _this.handleKeyDown = function (event) {\n if (event.keyCode === TAB_KEY) {\n (0, _scopeTab2.default)(_this.content, event);\n }\n\n if (_this.props.shouldCloseOnEsc && event.keyCode === ESC_KEY) {\n event.stopPropagation();\n\n _this.requestClose(event);\n }\n };\n\n _this.handleOverlayOnClick = function (event) {\n if (_this.shouldClose === null) {\n _this.shouldClose = true;\n }\n\n if (_this.shouldClose && _this.props.shouldCloseOnOverlayClick) {\n if (_this.ownerHandlesClose()) {\n _this.requestClose(event);\n } else {\n _this.focusContent();\n }\n }\n\n _this.shouldClose = null;\n };\n\n _this.handleContentOnMouseUp = function () {\n _this.shouldClose = false;\n };\n\n _this.handleOverlayOnMouseDown = function (event) {\n if (!_this.props.shouldCloseOnOverlayClick && event.target == _this.overlay) {\n event.preventDefault();\n }\n };\n\n _this.handleContentOnClick = function () {\n _this.shouldClose = false;\n };\n\n _this.handleContentOnMouseDown = function () {\n _this.shouldClose = false;\n };\n\n _this.requestClose = function (event) {\n return _this.ownerHandlesClose() && _this.props.onRequestClose(event);\n };\n\n _this.ownerHandlesClose = function () {\n return _this.props.onRequestClose;\n };\n\n _this.shouldBeClosed = function () {\n return !_this.state.isOpen && !_this.state.beforeClose;\n };\n\n _this.contentHasFocus = function () {\n return document.activeElement === _this.content || _this.content.contains(document.activeElement);\n };\n\n _this.buildClassName = function (which, additional) {\n var classNames = (typeof additional === \"undefined\" ? \"undefined\" : _typeof(additional)) === \"object\" ? additional : {\n base: CLASS_NAMES[which],\n afterOpen: CLASS_NAMES[which] + \"--after-open\",\n beforeClose: CLASS_NAMES[which] + \"--before-close\"\n };\n var className = classNames.base;\n\n if (_this.state.afterOpen) {\n className = className + \" \" + classNames.afterOpen;\n }\n\n if (_this.state.beforeClose) {\n className = className + \" \" + classNames.beforeClose;\n }\n\n return typeof additional === \"string\" && additional ? className + \" \" + additional : className;\n };\n\n _this.attributesFromObject = function (prefix, items) {\n return Object.keys(items).reduce(function (acc, name) {\n acc[prefix + \"-\" + name] = items[name];\n return acc;\n }, {});\n };\n\n _this.state = {\n afterOpen: false,\n beforeClose: false\n };\n _this.shouldClose = null;\n _this.moveFromContentToOverlay = null;\n return _this;\n }\n\n _createClass(ModalPortal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.isOpen) {\n this.open();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== \"production\") {\n if (prevProps.bodyOpenClassName !== this.props.bodyOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"bodyOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n\n if (prevProps.htmlOpenClassName !== this.props.htmlOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"htmlOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n }\n\n if (this.props.isOpen && !prevProps.isOpen) {\n this.open();\n } else if (!this.props.isOpen && prevProps.isOpen) {\n this.close();\n } // Focus only needs to be set once when the modal is being opened\n\n\n if (this.props.shouldFocusAfterRender && this.state.isOpen && !prevState.isOpen) {\n this.focusContent();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.state.isOpen) {\n this.afterClose();\n }\n\n clearTimeout(this.closeTimer);\n }\n }, {\n key: \"beforeOpen\",\n value: function beforeOpen() {\n var _props = this.props,\n appElement = _props.appElement,\n ariaHideApp = _props.ariaHideApp,\n htmlOpenClassName = _props.htmlOpenClassName,\n bodyOpenClassName = _props.bodyOpenClassName; // Add classes.\n\n bodyOpenClassName && classList.add(document.body, bodyOpenClassName);\n htmlOpenClassName && classList.add(document.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n if (ariaHideApp) {\n ariaHiddenInstances += 1;\n ariaAppHider.hide(appElement);\n }\n\n _portalOpenInstances2.default.register(this);\n } // Don't steal focus from inner elements\n\n }, {\n key: \"render\",\n value: function render() {\n var _props2 = this.props,\n id = _props2.id,\n className = _props2.className,\n overlayClassName = _props2.overlayClassName,\n defaultStyles = _props2.defaultStyles,\n children = _props2.children;\n var contentStyles = className ? {} : defaultStyles.content;\n var overlayStyles = overlayClassName ? {} : defaultStyles.overlay;\n\n if (this.shouldBeClosed()) {\n return null;\n }\n\n var overlayProps = {\n ref: this.setOverlayRef,\n className: this.buildClassName(\"overlay\", overlayClassName),\n style: _extends({}, overlayStyles, this.props.style.overlay),\n onClick: this.handleOverlayOnClick,\n onMouseDown: this.handleOverlayOnMouseDown\n };\n\n var contentProps = _extends({\n id: id,\n ref: this.setContentRef,\n style: _extends({}, contentStyles, this.props.style.content),\n className: this.buildClassName(\"content\", className),\n tabIndex: \"-1\",\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleContentOnMouseDown,\n onMouseUp: this.handleContentOnMouseUp,\n onClick: this.handleContentOnClick,\n role: this.props.role,\n \"aria-label\": this.props.contentLabel\n }, this.attributesFromObject(\"aria\", _extends({\n modal: true\n }, this.props.aria)), this.attributesFromObject(\"data\", this.props.data || {}), {\n \"data-testid\": this.props.testId\n });\n\n var contentElement = this.props.contentElement(contentProps, children);\n return this.props.overlayElement(overlayProps, contentElement);\n }\n }]);\n\n return ModalPortal;\n}(_react.Component);\n\nModalPortal.defaultProps = {\n style: {\n overlay: {},\n content: {}\n },\n defaultStyles: {}\n};\nModalPortal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n defaultStyles: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n ariaHideApp: _propTypes2.default.bool,\n appElement: _propTypes2.default.instanceOf(_safeHTMLElement2.default),\n onAfterOpen: _propTypes2.default.func,\n onAfterClose: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n children: _propTypes2.default.node,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func,\n testId: _propTypes2.default.string\n};\nexports.default = ModalPortal;\nmodule.exports = exports[\"default\"];","import React from \"react\"\nimport { useStaticQuery, graphql } from \"gatsby\"\nimport { Link } from \"gatsby\"\nimport Img from \"gatsby-image\"\n\n//function Main() {\nconst Main = () => {\n const data = useStaticQuery(graphql`\n query {\n GB: file(relativePath: { eq: \"icons/GB_site.png\" }) {\n childImageSharp {\n fluid(maxWidth: 400) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n }\n `)\n return (\n <React.Fragment>\n <div style={container}>\n <p style={HeaderStyle}>Nice to meet you! I'm Dan. </p>\n <p style={contentStyle}>I'm an Irish Backend Engineer working in the Games Industry and living in Annecy, France. If you'd like to work together, <Link style={links} to=\"/#contact\">let's talk!</Link></p>\n <div>\n <Img style={controllerStyle} fluid={data.GB.childImageSharp.fluid} />\n <p style={subTextStyle}></p>\n </div>\n </div>\n </React.Fragment>\n )\n}\n\nconst container = {\n display: 'flex',\n justifyContent: 'space-between',\n flexDirection: 'column',\n maxWidth: `600px`,\n marginLeft: 'auto',\n marginRight: 'auto'\n}\n\nconst links = {\n color: '#d76229',\n textAlign: 'center',\n fontFamily: 'Nunito',\n textDecoration: 'none',\n}\n\nconst HeaderStyle = {\n color: '#3D405B',\n textAlign: 'center',\n padding: '20px',\n fontFamily: 'Nunito',\n fontWeight: 'bolder',\n}\n\nconst contentStyle = {\n color: '#3D405B',\n textAlign: 'center',\n padding: 'auto',\n fontFamily: 'Nunito'\n}\n\nconst controllerStyle = {\n margin: 'auto',\n maxWidth: '15%',\n}\n\nconst subTextStyle = {\n color: '#3D405B',\n textAlign: 'center',\n padding: '20px',\n fontFamily: 'Nunito',\n fontSize: 'fit-width'\n}\n\nexport default Main;","import React from 'react'\n\nfunction Bio() {\n return (\n <React.Fragment>\n <h1 style={headingStyle}>Bio</h1>\n <div style={container}>\n <p style={contentStyle}>Hi! I'm Dan, an Irish Software Engineer living in France. I love learning, tinkering and creating.</p>\n <p style={contentStyle}>I've worked professionally on a number of AAA titles, and develop my own games as a hobby. My goal is to create compelling games and robust services.</p>\n </div>\n </React.Fragment>\n )\n}\n\nconst container = {\n display: 'flex',\n justifyContent: 'space-between',\n flexDirection: 'column',\n maxWidth: `600px`,\n marginLeft: 'auto',\n marginRight: 'auto',\n}\n\nconst headingStyle = {\n background: '#FCE181',\n color: '#3D405B',\n textAlign: 'center',\n padding: '10px',\n fontFamily: 'california-dealership',\n fontSize: '2rem'\n}\n\nconst contentStyle = {\n color: '#3D405B',\n textAlign: 'center',\n padding: '5px',\n fontFamily: 'Nunito',\n textDecoration: 'none'\n}\nexport default Bio;","import React, { useState } from 'react'\nimport Img from \"gatsby-image\"\nimport Modal from 'react-modal'\nimport { navigate } from \"gatsby\"\n\nModal.setAppElement(`#___gatsby`);\n\n\n//<div style={{padding: `5px 0px`}}>\n//<div className=\"project-title\" style={projectTitle}>{props.title}</div>\n//<div className=\"project-category\" style={projectCategory}>{props.category}</div>\n//</div>\n\nfunction ExperienceTile(props) {\n \n const [modalOpen, setModalOpen] = useState(false);\n\n const openModal = () => {\n setModalOpen(true);\n };\n const closeModal = () => {\n setModalOpen(false);\n };\n\n return (\n <div className=\"project\" style={container} >\n {/* <div style={tileLink} onClick={openModal}> */}\n <div style={tileLink}>\n <div className=\"project-image\" style={projectImage}>\n <Img fluid={props.image.childImageSharp.fluid} />\n </div>\n </div>\n <Modal\n isOpen={modalOpen}\n onRequestClose={closeModal}\n style={modalStyles}\n contentLabel=\"Modal\"\n >\n <div\n css={{\n display: `flex`,\n alignItems: `center`,\n justifyItems: `center`,\n margin: `auto`,\n width: `50%`,\n }} \n >\n <h2>{props.title}</h2>\n <button onClick={closeModal}>Close Modal</button>\n </div>\n </Modal>\n </div>\n )\n}\n\nconst container = {\n width: \"75%\",\n margin: \"auto\"\n}\n\nconst modalStyles = {\n overlay: {\n backgroundColor: \"rgba(0, 0, 0, 0.58)\",\n },\n content: {\n position: \"relative\",\n top: \"auto\",\n left: \"auto\",\n right: \"auto\",\n bottom: \"auto\",\n maxWidth: \"550px\",\n margin: \"32px auto\",\n padding: 0,\n border: 0,\n color: \"#81B29A\",\n backgroundColor: \"#3D405B\",\n textAlign: 'center',\n textDecoration: 'none'\n },\n};\n\nconst tileLink = {\n display: 'block',\n color: '#3D405B',\n textAlign: 'center',\n textDecoration: 'none',\n fontFamily: 'california-dealership',\n}\n\nconst projectImage = {\n //padding: `0.2rem 0.2rem`,\n width: \"100%\",\n}\n\nconst projectTitle = {\n fontSize: '1.75rem',\n \n}\n\nconst projectCategory = {\n fontSize: '1rem',\n}\n\nexport default ExperienceTile","import React, { useState } from 'react';\nimport ExperienceTile from './experience-tile'\nimport { useStaticQuery, graphql } from \"gatsby\"\nimport CV from './../../../static/DKeohaneCV.pdf'\n\nconst Experience = (props) => {\n const data = useStaticQuery(graphql`\n query {\n demonware: file(relativePath: { eq: \"studios/DEMONWARE_NAMED_STACKED_BLACK.png\" }) {\n childImageSharp {\n fluid(maxWidth: 200) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n ubiAnnecy: file(relativePath: { eq: \"studios/Ubisoft Annecy_LOGO BLACK.png\" }) {\n childImageSharp {\n fluid(maxWidth: 200) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n ubiReflections: file(relativePath: { eq: \"studios/REFLECTIONS_STACKED_BLACK.png\" }) {\n childImageSharp {\n fluid(maxWidth: 200) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n }\n`)\n return (\n <React.Fragment>\n <h1 id=\"experience\" style={headingStyle}>Experience</h1>\n <div style={container}>\n <p style={contentStyle}>I've been fortunate to work in some fantastic workplaces in my career.</p>\n <p style={contentStyle}> <a href={CV} style={links}>Click here for my CV</a> </p>\n </div>\n <div className=\"container\">\n <div className=\"ExperienceTiles\" style={experienceList}>\n <ExperienceTile image={data.demonware} title=\"Demonware\" category=\"April 2017 – May 2020\"/>\n <ExperienceTile image={data.ubiAnnecy} title=\"Ubisoft Annecy\" category=\"September 2015 – February 2017\" />\n <ExperienceTile image={data.ubiReflections} title=\"Ubisoft Reflections\" category=\"July 2014 – September 2015\"/>\n </div>\n </div>\n </React.Fragment>\n )\n}\n\nconst container = {\n display: 'flex',\n justifyContent: 'space-between',\n flexDirection: 'column',\n maxWidth: `600px`,\n marginLeft: 'auto',\n marginRight: 'auto',\n}\n\nconst headingStyle = {\n background: '#FCE181',\n color: '#3D405B',\n textAlign: 'center',\n padding: '10px',\n fontFamily: 'california-dealership',\n fontSize: '2rem'\n}\n\nconst contentStyle = {\n color: '#3D405B',\n textAlign: 'center',\n padding: '5px',\n fontFamily: 'Nunito',\n textDecoration: 'none'\n}\n\nconst experienceList = {\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fit, 200px)',\n gridGap: '40px', \n gridAutoRows: 'minMax(100px, auto)',\n justifyContent: 'center',\n justifyItems: 'center',\n margin: '40px'\n}\n\nconst links = {\n color: '#d76229',\n textAlign: 'center',\n fontFamily: 'Nunito',\n textDecoration: 'none',\n}\n\nexport default Experience;","import React from 'react'\nimport { Link } from \"gatsby\"\nimport Img from \"gatsby-image\"\n\nfunction PortfolioTile(props) {\n return (\n <div className=\"project\" style={container}>\n <Link to={props.link} style={tileLink}>\n <div className=\"project-image\" style={projectImage}>\n <Img fluid={props.image.childImageSharp.fluid} />\n </div>\n <div style={{padding: `5px 0px`}}>\n <div className=\"project-title\" style={projectTitle}>{props.title}</div>\n <div className=\"project-category\" style={projectCategory}>{props.category}</div>\n </div>\n </Link>\n </div>\n )\n}\n\nconst container = {\n width: \"75%\",\n margin: \"auto\"\n}\n\nconst tileLink = {\n display: 'block',\n color: '#3D405B',\n textAlign: 'center',\n textDecoration: 'none',\n fontFamily: 'california-dealership',\n}\n\nconst projectImage = {\n padding: `0.2rem 0.2rem`,\n width: \"100%\",\n}\n\nconst projectTitle = {\n fontSize: '1.75rem',\n \n}\n\nconst projectCategory = {\n fontSize: '1rem',\n}\n\nexport default PortfolioTile","import React from 'react'\nimport PortfolioTile from './portfolio-tile'\nimport { useStaticQuery, graphql } from \"gatsby\"\nimport '../../styles/PortfolioTiles.css'\n\nconst Portfolio = (props) => {\n const data = useStaticQuery(graphql`\n query {\n codenameRabbit: file(relativePath: { eq: \"codename-rabbit/icons/icon_codename_rabbit_no_edge.png\" }) {\n childImageSharp {\n fluid(maxWidth: 200) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n sqg: file(relativePath: { eq: \"sqg/icons/icon_sqg_no_edge.png\" }) {\n childImageSharp {\n fluid(maxWidth: 200) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n lifecycle: file(relativePath: { eq: \"lifecycle/icons/icon_life_cycle_no_edge.png\" }) {\n childImageSharp {\n fluid(maxWidth: 200) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n fishtank: file(relativePath: { eq: \"fishtank/icons/icon_fish_tank_no_edge.png\" }) {\n childImageSharp {\n fluid(maxWidth: 200) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n burgerThis: file(relativePath: { eq: \"burger-this/cover.png\" }) {\n childImageSharp {\n fluid(maxWidth: 200) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n }\n`)\n return (\n <React.Fragment>\n <h1 id=\"portfolio\" style={headingStyle}>Personal Portfolio</h1>\n <div className=\"container\">\n <div className=\"PortfolioTiles\" style={portfolioGrid}>\n <PortfolioTile\n link=\"/codename-rabbit\"\n image={data.codenameRabbit}\n title=\"Codename-Rabbit\"\n category=\"Unity Game\"\n />\n <PortfolioTile\n link=\"/sqg\"\n image={data.sqg}\n title=\"Super Quantum Gravity\"\n category=\"Unity Game\"\n />\n <PortfolioTile\n link=\"/fishtank\"\n image={data.fishtank}\n title=\"Fish Tank\"\n category=\"Unity Mobile Game\"\n />\n <PortfolioTile\n link=\"/lifecycle\"\n image={data.lifecycle}\n title=\"Lifecycle\"\n category=\"Unity Mobile Game\"\n />\n </div>\n </div>\n </React.Fragment>\n )\n}\n\nconst headingStyle = {\n background: '#FCE181',\n color: '#3D405B',\n textAlign: 'center',\n padding: '10px',\n fontFamily: 'california-dealership',\n fontSize: '2rem'\n}\n\nconst portfolioGrid = {\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fit, 200px)',\n gridGap: '40px', \n gridAutoRows: 'minMax(100px, auto)',\n justifyContent: 'center',\n justifyItems: 'center',\n margin: '40px'\n}\n\nexport default Portfolio;","import React from 'react'\nimport { useStaticQuery, graphql } from \"gatsby\"\nimport CV from './../../../static/DKeohaneCV.pdf'\nimport Img from \"gatsby-image\"\n\nconst Contact = () => {\n const data = useStaticQuery(graphql`\n query {\n email: file(relativePath: { eq: \"icons/email.png\" }) {\n childImageSharp {\n fluid(maxWidth: 400) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n linkedin: file(relativePath: { eq: \"icons/linkedin.png\" }) {\n childImageSharp {\n fluid(maxWidth: 400) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n }\n `)\n return (\n <React.Fragment>\n <h1 id=\"contact\" style={headingStyle}>Let's talk!</h1>\n <div style={container}>\n <p style={contentStyle}>Would you like to work on something together? I'd love to hear from you!</p>\n <div className=\"navigation\" style={Grid}>\n <a style={a} alt=\"email:keohane.dan@gmail.com\" href='mailto:keohane.dan@gmail.com'>\n <Img fluid={data.email.childImageSharp.fluid}></Img>\n </a>\n <a style={a} href='https://www.linkedin.com/in/dkeohane/'>\n <Img fluid={data.linkedin.childImageSharp.fluid}></Img>\n </a>\n </div>\n </div>\n </React.Fragment>\n )\n}\n\nconst container = {\n display: 'flex',\n justifyContent: 'space-between',\n flexDirection: 'column',\n maxWidth: `600px`,\n marginLeft: 'auto',\n marginRight: 'auto'\n}\n\nconst headingStyle = {\n background: '#FCE181',\n color: '#3D405B',\n textAlign: 'center',\n padding: '10px',\n fontFamily: 'california-dealership',\n fontSize: '2rem'\n}\n\nconst contentStyle = {\n color: '#3D405B',\n textAlign: 'center',\n padding: '0px',\n fontFamily: 'Nunito',\n textDecoration: 'none'\n}\n\nconst links = {\n color: '#d76229',\n textAlign: 'center',\n fontFamily: 'Nunito',\n textDecoration: 'none',\n}\n\n\nconst Grid = {\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fit, 200px)',\n gridAutoRows: 'minMax(30px, auto)',\n justifyContent: 'center',\n justifyItems: 'center',\n margin: '30px'\n}\n\nconst a = {\n width: \"40%\"\n}\n\n\nexport default Contact;","import React from \"react\"\nimport { Link } from \"gatsby\"\nimport { useStaticQuery, graphql } from \"gatsby\"\nimport Img from \"gatsby-image\"\n\nimport Layout from \"../components/layout\"\nimport SEO from \"../components/seo\"\nimport Main from \"../components/layout/main\"\nimport Bio from '../components/layout/bio';\nimport Experience from '../components/layout/experience';\nimport Portfolio from '../components/layout/portfolio';\nimport Contact from '../components/layout/contact';\n\nconst IndexPage = (props) => {\n const data = useStaticQuery(graphql`\n query {\n chevron: file(relativePath: { eq: \"icons/chevron_site.png\" }) {\n childImageSharp {\n fluid(maxWidth: 200) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n }\n `)\n return (\n <Layout>\n <SEO title=\"Home\" />\n <div style={bg}>\n <Main />\n <Bio />\n <Experience />\n <Portfolio />\n <Contact />\n <Link to=\"/#top\">\n <Img style={imageStyle} fluid={data.chevron.childImageSharp.fluid} />\n </Link>\n </div>\n </Layout>\n )\n}\n\nconst bg = {\n background: '#F4F1DE'\n}\n\nconst imageStyle = {\n margin: 'auto',\n maxWidth: '5rem',\n maxHeight: '5rem'\n}\n\nexport default IndexPage\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = scopeTab;\n\nvar _tabbable = require(\"./tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction scopeTab(node, event) {\n var tabbable = (0, _tabbable2.default)(node);\n\n if (!tabbable.length) {\n // Do nothing, since there are no elements that can receive focus.\n event.preventDefault();\n return;\n }\n\n var target = void 0;\n var shiftKey = event.shiftKey;\n var head = tabbable[0];\n var tail = tabbable[tabbable.length - 1]; // proceed with default browser behavior on tab.\n // Focus on last element on shift + tab.\n\n if (node === document.activeElement) {\n if (!shiftKey) return;\n target = tail;\n }\n\n if (tail === document.activeElement && !shiftKey) {\n target = head;\n }\n\n if (head === document.activeElement && shiftKey) {\n target = tail;\n }\n\n if (target) {\n event.preventDefault();\n target.focus();\n return;\n } // Safari radio issue.\n //\n // Safari does not move the focus to the radio button,\n // so we need to force it to really walk through all elements.\n //\n // This is very error prone, since we are trying to guess\n // if it is a safari browser from the first occurence between\n // chrome or safari.\n //\n // The chrome user agent contains the first ocurrence\n // as the 'chrome/version' and later the 'safari/version'.\n\n\n var checkSafari = /(\\bChrome\\b|\\bSafari\\b)\\//.exec(navigator.userAgent);\n var isSafariDesktop = checkSafari != null && checkSafari[1] != \"Chrome\" && /\\biPod\\b|\\biPad\\b/g.exec(navigator.userAgent) == null; // If we are not in safari desktop, let the browser control\n // the focus\n\n if (!isSafariDesktop) return;\n var x = tabbable.indexOf(document.activeElement);\n\n if (x > -1) {\n x += shiftKey ? -1 : 1;\n }\n\n target = tabbable[x]; // If the tabbable element does not exist,\n // focus head/tail based on shiftKey\n\n if (typeof target === \"undefined\") {\n event.preventDefault();\n target = shiftKey ? tail : head;\n target.focus();\n return;\n }\n\n event.preventDefault();\n target.focus();\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n} // Tracks portals that are open and emits events to subscribers\n\n\nvar PortalOpenInstances = function PortalOpenInstances() {\n var _this = this;\n\n _classCallCheck(this, PortalOpenInstances);\n\n this.register = function (openInstance) {\n if (_this.openInstances.indexOf(openInstance) !== -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Cannot register modal instance that's already open\");\n }\n\n return;\n }\n\n _this.openInstances.push(openInstance);\n\n _this.emit(\"register\");\n };\n\n this.deregister = function (openInstance) {\n var index = _this.openInstances.indexOf(openInstance);\n\n if (index === -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Unable to deregister \" + openInstance + \" as \" + \"it was never registered\");\n }\n\n return;\n }\n\n _this.openInstances.splice(index, 1);\n\n _this.emit(\"deregister\");\n };\n\n this.subscribe = function (callback) {\n _this.subscribers.push(callback);\n };\n\n this.emit = function (eventType) {\n _this.subscribers.forEach(function (subscriber) {\n return subscriber(eventType, // shallow copy to avoid accidental mutation\n _this.openInstances.slice());\n });\n };\n\n this.openInstances = [];\n this.subscribers = [];\n};\n\nvar portalOpenInstances = new PortalOpenInstances();\nexports.default = portalOpenInstances;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.handleBlur = handleBlur;\nexports.handleFocus = handleFocus;\nexports.markForFocusLater = markForFocusLater;\nexports.returnFocus = returnFocus;\nexports.popWithoutFocus = popWithoutFocus;\nexports.setupScopedFocus = setupScopedFocus;\nexports.teardownScopedFocus = teardownScopedFocus;\n\nvar _tabbable = require(\"../helpers/tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar focusLaterElements = [];\nvar modalElement = null;\nvar needToFocus = false;\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n\n if (!modalElement) {\n return;\n } // need to see how jQuery shims document.on('focusin') so we don't need the\n // setTimeout, firefox doesn't support focusin, if it did, we could focus\n // the element outside of a setTimeout. Side-effect of this implementation\n // is that the document.body gets focus, and then we focus our element right\n // after, seems fine.\n\n\n setTimeout(function () {\n if (modalElement.contains(document.activeElement)) {\n return;\n }\n\n var el = (0, _tabbable2.default)(modalElement)[0] || modalElement;\n el.focus();\n }, 0);\n }\n}\n\nfunction markForFocusLater() {\n focusLaterElements.push(document.activeElement);\n}\n/* eslint-disable no-console */\n\n\nfunction returnFocus() {\n var preventScroll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var toFocus = null;\n\n try {\n if (focusLaterElements.length !== 0) {\n toFocus = focusLaterElements.pop();\n toFocus.focus({\n preventScroll: preventScroll\n });\n }\n\n return;\n } catch (e) {\n console.warn([\"You tried to return focus to\", toFocus, \"but it is not in the DOM anymore\"].join(\" \"));\n }\n}\n/* eslint-enable no-console */\n\n\nfunction popWithoutFocus() {\n focusLaterElements.length > 0 && focusLaterElements.pop();\n}\n\nfunction setupScopedFocus(element) {\n modalElement = element;\n\n if (window.addEventListener) {\n window.addEventListener(\"blur\", handleBlur, false);\n document.addEventListener(\"focus\", handleFocus, true);\n } else {\n window.attachEvent(\"onBlur\", handleBlur);\n document.attachEvent(\"onFocus\", handleFocus);\n }\n}\n\nfunction teardownScopedFocus() {\n modalElement = null;\n\n if (window.addEventListener) {\n window.removeEventListener(\"blur\", handleBlur);\n document.removeEventListener(\"focus\", handleFocus);\n } else {\n window.detachEvent(\"onBlur\", handleBlur);\n document.detachEvent(\"onFocus\", handleFocus);\n }\n}","\"use strict\";\n\nvar _portalOpenInstances = require(\"./portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} // Body focus trap see Issue #742\n\n\nvar before = void 0,\n after = void 0,\n instances = [];\n\nfunction focusContent() {\n if (instances.length === 0) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Open instances > 0 expected\");\n }\n\n return;\n }\n\n instances[instances.length - 1].focusContent();\n}\n\nfunction bodyTrap(eventType, openInstances) {\n if (!before || !after) {\n before = document.createElement(\"div\");\n before.setAttribute(\"data-react-modal-body-trap\", \"\");\n before.style.position = \"absolute\";\n before.style.opacity = \"0\";\n before.setAttribute(\"tabindex\", \"0\");\n before.addEventListener(\"focus\", focusContent);\n after = before.cloneNode();\n after.addEventListener(\"focus\", focusContent);\n }\n\n instances = openInstances;\n\n if (instances.length > 0) {\n // Add focus trap\n if (document.body.firstChild !== before) {\n document.body.insertBefore(before, document.body.firstChild);\n }\n\n if (document.body.lastChild !== after) {\n document.body.appendChild(after);\n }\n } else {\n // Remove focus trap\n if (before.parentElement) {\n before.parentElement.removeChild(before);\n }\n\n if (after.parentElement) {\n after.parentElement.removeChild(after);\n }\n }\n}\n\n_portalOpenInstances2.default.subscribe(bodyTrap);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.assertNodeList = assertNodeList;\nexports.setElement = setElement;\nexports.validateElement = validateElement;\nexports.hide = hide;\nexports.show = show;\nexports.documentNotReadyOrSSRTesting = documentNotReadyOrSSRTesting;\nexports.resetForTesting = resetForTesting;\n\nvar _warning = require(\"warning\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _safeHTMLElement = require(\"./safeHTMLElement\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar globalElement = null;\n\nfunction assertNodeList(nodeList, selector) {\n if (!nodeList || !nodeList.length) {\n throw new Error(\"react-modal: No elements were found for selector \" + selector + \".\");\n }\n}\n\nfunction setElement(element) {\n var useElement = element;\n\n if (typeof useElement === \"string\" && _safeHTMLElement.canUseDOM) {\n var el = document.querySelectorAll(useElement);\n assertNodeList(el, useElement);\n useElement = \"length\" in el ? el[0] : el;\n }\n\n globalElement = useElement || globalElement;\n return globalElement;\n}\n\nfunction validateElement(appElement) {\n if (!appElement && !globalElement) {\n (0, _warning2.default)(false, [\"react-modal: App element is not defined.\", \"Please use `Modal.setAppElement(el)` or set `appElement={el}`.\", \"This is needed so screen readers don't see main content\", \"when modal is opened. It is not recommended, but you can opt-out\", \"by setting `ariaHideApp={false}`.\"].join(\" \"));\n return false;\n }\n\n return true;\n}\n\nfunction hide(appElement) {\n if (validateElement(appElement)) {\n (appElement || globalElement).setAttribute(\"aria-hidden\", \"true\");\n }\n}\n\nfunction show(appElement) {\n if (validateElement(appElement)) {\n (appElement || globalElement).removeAttribute(\"aria-hidden\");\n }\n}\n\nfunction documentNotReadyOrSSRTesting() {\n globalElement = null;\n}\n\nfunction resetForTesting() {\n globalElement = null;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = findTabbableDescendants;\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\nvar tabbableNode = /input|select|textarea|button|object/;\n\nfunction hidesContents(element) {\n var zeroSize = element.offsetWidth <= 0 && element.offsetHeight <= 0; // If the node is empty, this is good enough\n\n if (zeroSize && !element.innerHTML) return true; // Otherwise we need to check some styles\n\n var style = window.getComputedStyle(element);\n return zeroSize ? style.getPropertyValue(\"overflow\") !== \"visible\" || // if 'overflow: visible' set, check if there is actually any overflow\n element.scrollWidth <= 0 && element.scrollHeight <= 0 : style.getPropertyValue(\"display\") == \"none\";\n}\n\nfunction visible(element) {\n var parentElement = element;\n\n while (parentElement) {\n if (parentElement === document.body) break;\n if (hidesContents(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n\n return true;\n}\n\nfunction focusable(element, isTabIndexNotNaN) {\n var nodeName = element.nodeName.toLowerCase();\n var res = tabbableNode.test(nodeName) && !element.disabled || (nodeName === \"a\" ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\n\nfunction tabbable(element) {\n var tabIndex = element.getAttribute(\"tabindex\");\n if (tabIndex === null) tabIndex = undefined;\n var isTabIndexNaN = isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);\n}\n\nfunction findTabbableDescendants(element) {\n return [].slice.call(element.querySelectorAll(\"*\"), 0).filter(tabbable);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dumpClassLists = dumpClassLists;\nvar htmlClassList = {};\nvar docBodyClassList = {};\n\nfunction dumpClassLists() {\n if (process.env.NODE_ENV !== \"production\") {\n var classes = document.getElementsByTagName(\"html\")[0].className;\n var buffer = \"Show tracked classes:\\n\\n\";\n buffer += \"<html /> (\" + classes + \"):\\n\";\n\n for (var x in htmlClassList) {\n buffer += \" \" + x + \" \" + htmlClassList[x] + \"\\n\";\n }\n\n classes = document.body.className; // eslint-disable-next-line max-len\n\n buffer += \"\\n\\ndoc.body (\" + classes + \"):\\n\";\n\n for (var _x in docBodyClassList) {\n buffer += \" \" + _x + \" \" + docBodyClassList[_x] + \"\\n\";\n }\n\n buffer += \"\\n\"; // eslint-disable-next-line no-console\n\n console.log(buffer);\n }\n}\n/**\n * Track the number of reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\n\n\nvar incrementReference = function incrementReference(poll, className) {\n if (!poll[className]) {\n poll[className] = 0;\n }\n\n poll[className] += 1;\n return className;\n};\n/**\n * Drop the reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\n\n\nvar decrementReference = function decrementReference(poll, className) {\n if (poll[className]) {\n poll[className] -= 1;\n }\n\n return className;\n};\n/**\n * Track a class and add to the given class list.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be tracked.\n */\n\n\nvar trackClass = function trackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n incrementReference(poll, className);\n classListRef.add(className);\n });\n};\n/**\n * Untrack a class and remove from the given class list if the reference\n * reaches 0.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be untracked.\n */\n\n\nvar untrackClass = function untrackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n decrementReference(poll, className);\n poll[className] === 0 && classListRef.remove(className);\n });\n};\n/**\n * Public inferface to add classes to the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\n\n\nvar add = exports.add = function add(element, classString) {\n return trackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};\n/**\n * Public inferface to remove classes from the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\n\n\nvar remove = exports.remove = function remove(element, classString) {\n return untrackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bodyOpenClassName = exports.portalClassName = undefined;\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 _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ModalPortal = require(\"./ModalPortal\");\n\nvar _ModalPortal2 = _interopRequireDefault(_ModalPortal);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\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 portalClassName = exports.portalClassName = \"ReactModalPortal\";\nvar bodyOpenClassName = exports.bodyOpenClassName = \"ReactModal__Body--open\";\nvar isReact16 = _safeHTMLElement.canUseDOM && _reactDom2.default.createPortal !== undefined;\n\nvar getCreatePortal = function getCreatePortal() {\n return isReact16 ? _reactDom2.default.createPortal : _reactDom2.default.unstable_renderSubtreeIntoContainer;\n};\n\nfunction getParentElement(parentSelector) {\n return parentSelector();\n}\n\nvar Modal = function (_Component) {\n _inherits(Modal, _Component);\n\n function Modal() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Modal);\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 = Modal.__proto__ || Object.getPrototypeOf(Modal)).call.apply(_ref, [this].concat(args))), _this), _this.removePortal = function () {\n !isReact16 && _reactDom2.default.unmountComponentAtNode(_this.node);\n var parent = getParentElement(_this.props.parentSelector);\n\n if (parent && parent.contains(_this.node)) {\n parent.removeChild(_this.node);\n } else {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"parentSelector\" prop did not returned any DOM ' + \"element. Make sure that the parent element is unmounted to \" + \"avoid any memory leaks.\");\n }\n }, _this.portalRef = function (ref) {\n _this.portal = ref;\n }, _this.renderPortal = function (props) {\n var createPortal = getCreatePortal();\n var portal = createPortal(_this, _react2.default.createElement(_ModalPortal2.default, _extends({\n defaultStyles: Modal.defaultStyles\n }, props)), _this.node);\n\n _this.portalRef(portal);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Modal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_safeHTMLElement.canUseDOM) return;\n\n if (!isReact16) {\n this.node = document.createElement(\"div\");\n }\n\n this.node.className = this.props.portalClassName;\n var parent = getParentElement(this.props.parentSelector);\n parent.appendChild(this.node);\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps) {\n var prevParent = getParentElement(prevProps.parentSelector);\n var nextParent = getParentElement(this.props.parentSelector);\n return {\n prevParent: prevParent,\n nextParent: nextParent\n };\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, _, snapshot) {\n if (!_safeHTMLElement.canUseDOM) return;\n var _props = this.props,\n isOpen = _props.isOpen,\n portalClassName = _props.portalClassName;\n\n if (prevProps.portalClassName !== portalClassName) {\n this.node.className = portalClassName;\n }\n\n var prevParent = snapshot.prevParent,\n nextParent = snapshot.nextParent;\n\n if (nextParent !== prevParent) {\n prevParent.removeChild(this.node);\n nextParent.appendChild(this.node);\n } // Stop unnecessary renders if modal is remaining closed\n\n\n if (!prevProps.isOpen && !isOpen) return;\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (!_safeHTMLElement.canUseDOM || !this.node || !this.portal) return;\n var state = this.portal.state;\n var now = Date.now();\n var closesAt = state.isOpen && this.props.closeTimeoutMS && (state.closesAt || now + this.props.closeTimeoutMS);\n\n if (closesAt) {\n if (!state.beforeClose) {\n this.portal.closeWithTimeout();\n }\n\n setTimeout(this.removePortal, closesAt - now);\n } else {\n this.removePortal();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!_safeHTMLElement.canUseDOM || !isReact16) {\n return null;\n }\n\n if (!this.node && isReact16) {\n this.node = document.createElement(\"div\");\n }\n\n var createPortal = getCreatePortal();\n return createPortal(_react2.default.createElement(_ModalPortal2.default, _extends({\n ref: this.portalRef,\n defaultStyles: Modal.defaultStyles\n }, this.props)), this.node);\n }\n }], [{\n key: \"setAppElement\",\n value: function setAppElement(element) {\n ariaAppHider.setElement(element);\n }\n /* eslint-disable react/no-unused-prop-types */\n\n /* eslint-enable react/no-unused-prop-types */\n\n }]);\n\n return Modal;\n}(_react.Component);\n\nModal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n portalClassName: _propTypes2.default.string,\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n appElement: _propTypes2.default.instanceOf(_safeHTMLElement2.default),\n onAfterOpen: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n ariaHideApp: _propTypes2.default.bool,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n parentSelector: _propTypes2.default.func,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func\n};\nModal.defaultProps = {\n isOpen: false,\n portalClassName: portalClassName,\n bodyOpenClassName: bodyOpenClassName,\n role: \"dialog\",\n ariaHideApp: true,\n closeTimeoutMS: 0,\n shouldFocusAfterRender: true,\n shouldCloseOnEsc: true,\n shouldCloseOnOverlayClick: true,\n shouldReturnFocusAfterClose: true,\n preventScroll: false,\n parentSelector: function parentSelector() {\n return document.body;\n },\n overlayElement: function overlayElement(props, contentEl) {\n return _react2.default.createElement(\"div\", props, contentEl);\n },\n contentElement: function contentElement(props, children) {\n return _react2.default.createElement(\"div\", props, children);\n }\n};\nModal.defaultStyles = {\n overlay: {\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: \"rgba(255, 255, 255, 0.75)\"\n },\n content: {\n position: \"absolute\",\n top: \"40px\",\n left: \"40px\",\n right: \"40px\",\n bottom: \"40px\",\n border: \"1px solid #ccc\",\n background: \"#fff\",\n overflow: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n borderRadius: \"4px\",\n outline: \"none\",\n padding: \"20px\"\n }\n};\n(0, _reactLifecyclesCompat.polyfill)(Modal);\nexports.default = Modal;","module.exports = __webpack_public_path__ + \"static/DKeohaneCV-fae468e5729d03ab03d88d3f1c207749.pdf\";"],"sourceRoot":""}