{"version":3,"sources":["webpack:///./src/pages/now.jsx","webpack:///./src/components/image.jsx","webpack:///./src/components/map.jsx","webpack:///./src/components/card-hover.jsx","webpack:///./src/components/media-preview.jsx"],"names":["MediaPreviewWrapper","glamorous__WEBPACK_IMPORTED_MODULE_2__","b","div","_glamorous$div","display","flexDirection","flexWrap","Object","_css_themes__WEBPACK_IMPORTED_MODULE_4__","h","j","justifyContent","Location","Glamor","createElement","react__WEBPACK_IMPORTED_MODULE_1___default","a","Fragment","_components_common__WEBPACK_IMPORTED_MODULE_7__","_components_map__WEBPACK_IMPORTED_MODULE_5__","type","location","Reading","_ref2","edges","books","lodash__WEBPACK_IMPORTED_MODULE_0___default","map","_ref","_ref$node","node","_ref$node$frontmatter","frontmatter","image","title","author","path","review","fields","_components_media_preview__WEBPACK_IMPORTED_MODULE_6__","key","Doing","u","p","Done","__webpack_exports__","default","_ref3","data","_layouts_default__WEBPACK_IMPORTED_MODULE_3__","i","now","pageQuery","ImageWrapper","glamorous__WEBPACK_IMPORTED_MODULE_4__","span","marginTop","marginBottom","Caption","fontSize","fontWeight","_css_themes__WEBPACK_IMPORTED_MODULE_5__","d","Image","fluid","fixed","caption","gatsby_image__WEBPACK_IMPORTED_MODULE_3___default","propTypes","prop_types__WEBPACK_IMPORTED_MODULE_2__","any","string","s","call","this","n","282","e","t","o","r","l","c","m","f","mapboxAccessToken","MapContainer","glamorous__WEBPACK_IMPORTED_MODULE_7__","position","width","minHeight","_css_themes__WEBPACK_IMPORTED_MODULE_11__","MapComponent","mapRef","client","_forwardGeocode","locations","limit","Promise","all","lodash__WEBPACK_IMPORTED_MODULE_4___default","_this","forwardGeocode","query","mode","autocomplete","send","_computeBoundingBox","features","points","lineString","_turf_turf__WEBPACK_IMPORTED_MODULE_10__","bbox","_fitMapToBounds","boundingBox","fitBounds","linear","padding","top","bottom","left","right","_initMapbox","theme","_mapbox_mapbox_sdk_services_geocoding__WEBPACK_IMPORTED_MODULE_8___default","accessToken","mapbox_gl__WEBPACK_IMPORTED_MODULE_9___default","Map","container","style","scrollZoom","_initFlight","props","start","end","then","geodata","locationsFeatures","get","_renderMapFlight","_initLocation","feature","first","_renderMapLocation","center","on","addSource","addLayer","id","source","paint","circle-radius","circle-color","orange","origin","destination","last","route","geometry","coordinates","point","lineDistance","distance","units","arc","reduce","range","array","concat","along","line-width","line-color","layout","icon-image","icon-rotate","icon-allow-overlap","prototype","componentDidMount","componentDidUpdate","prevProps","setStyle","diff","componentWillUnmount","render","_this2","styleMap","ref","el","react__WEBPACK_IMPORTED_MODULE_5__","Component","prop_types__WEBPACK_IMPORTED_MODULE_6__","shape","isRequired","oneOf","zoom","number","Hover","glamorous__WEBPACK_IMPORTED_MODULE_1__","paddingLeft","paddingRight","margin","&:hover .hover-backdrop","cursor","opacity","transform","HoverBackdrop","pointerEvents","background","_css_themes__WEBPACK_IMPORTED_MODULE_2__","boxShadow","black","borderRadius","transition","children","css","className","MediaPreviewContentWrapper","flexGrow","alignItems","textAlign","MediaPreviewDescription","MediaPreview","_components_card_hover__WEBPACK_IMPORTED_MODULE_5__","flexBasis","q","gatsby__WEBPACK_IMPORTED_MODULE_3__","to","_components_image__WEBPACK_IMPORTED_MODULE_6__","childImageSharp"],"mappings":"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","file":"component---src-pages-now-jsx-5fa8ec58d083712f5a35.js","sourcesContent":["import _ from 'lodash'\nimport React from 'react'\nimport {graphql} from 'gatsby'\nimport glamorous from 'glamorous'\n\n/* eslint-disable-next-line import/no-named-as-default */\nimport Default from '../layouts/default'\nimport {mediaMaxWidth, sm} from '../css/themes'\nimport Map from '../components/map'\nimport MediaPreview from '../components/media-preview'\nimport {H2, H3, UL, LI} from '../components/common'\n\nconst MediaPreviewWrapper = glamorous.div({\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n [mediaMaxWidth(sm)]: {\n justifyContent: 'center',\n },\n})\n\nconst renderMediaPreviews = edges => (\n \n {_.map(edges, ({node: {frontmatter: {image, title, author, review}, fields: {path}}}) => {\n return \n })}\n \n)\n\n/*\n * Location\n */\n\nconst Location = () => (\n \n

🗺 Here

\n \n
\n)\n\n/*\n * Reading\n */\nconst Reading = ({books}) => (\n \n

📖 Reading

\n {renderMediaPreviews(books)}\n
\n)\n\n/*\n * Doing\n */\nconst Doing = () => (\n \n

💻 Doing

\n \n
\n)\n\n/*\n * Done\n */\nconst Done = () => (\n \n

✔ Done

\n \n
\n)\n\nconst Now = ({location, data}) => {\n return (\n \n

Right Now I'm...

\n \n \n \n \n
\n )\n}\n\nexport default Now\n\nexport const pageQuery = graphql`\n query BooksReadingNow {\n now: allMarkdownRemark(filter: {frontmatter: {title: {in: [\"Sapeins\", \"Isle of Dogs\"]}}}) {\n edges {\n node {\n ...reviewAll\n }\n }\n }\n }\n`\n","import React from 'react'\nimport {any, string} from 'prop-types'\nimport Img from 'gatsby-image'\nimport glamorous from 'glamorous'\n\nimport {getThemeStyles} from '../css/themes'\n\nconst ImageWrapper = glamorous.span({\n display: 'block',\n marginTop: '2rem',\n marginBottom: '2rem',\n})\nconst Caption = glamorous.i(\n {\n marginTop: '0.25rem',\n marginBottom: '0.25rem',\n fontSize: '0.9rem',\n fontWeight: 'normal',\n },\n getThemeStyles('i')\n)\nconst Image = ({fluid, fixed, caption}) => (\n \n \n {caption && {caption}}\n \n)\nImage.propTypes = {\n fixed: any,\n fluid: any,\n caption: string,\n}\n\nexport default Image\n","import _ from 'lodash'\nimport React, {Component} from 'react'\nimport {string, number, shape, oneOf} from 'prop-types'\nimport glamorous, {withTheme} from 'glamorous'\n\nimport GeocodingClient from '@mapbox/mapbox-sdk/services/geocoding'\nimport mapboxgl from 'mapbox-gl'\nimport * as turf from '@turf/turf'\n\nimport {colors, getThemeStyles} from '../css/themes'\n\nconst mapboxAccessToken =\n 'pk.eyJ1IjoianJ5aW8iLCJhIjoiY2pmY3B4bjhkMW42MjMzb2Zkc3JoNWNrNyJ9.zIp9h3epjar5s5HbHJFEeQ'\nconst mapboxStyleLight = 'mapbox://styles/mapbox/light-v9'\nconst mapboxStyleDark = 'mapbox://styles/mapbox/dark-v9'\n\nconst MapContainer = glamorous.div(\n {\n position: 'relative',\n width: '100%',\n minHeight: '20rem',\n marginTop: '2rem',\n marginBottom: '2rem',\n },\n getThemeStyles('map')\n)\n\nclass MapComponent extends Component {\n static propTypes = {\n // Theme\n theme: shape({type: string.isRequired}),\n // Map Types\n type: oneOf(['flight', 'location']).isRequired,\n // Flight Props\n start: string,\n end: string,\n // Location Props\n location: string,\n zoom: number,\n }\n\n mapRef = null\n map = null\n client = null\n\n /*\n * Helpers\n */\n _forwardGeocode = (locations, limit = 1) => {\n return Promise.all(\n _.map(locations, location =>\n this.client\n .forwardGeocode({query: location, mode: 'mapbox.places'}, {limit, autocomplete: false})\n .send()\n )\n )\n }\n\n _computeBoundingBox = features => {\n const points = _.map(features, 'center')\n const lineString = turf.lineString(points)\n const boundingBox = turf.bbox(lineString)\n return boundingBox\n }\n\n _fitMapToBounds = boundingBox => {\n this.map.fitBounds(boundingBox, {linear: true, padding: {top: 0, bottom: 0, left: 20, right: 20}})\n }\n\n /*\n * Map Initialization\n */\n _initMapbox = theme => {\n // Mapbox API client for geocode searching\n this.client = new GeocodingClient({accessToken: mapboxAccessToken})\n\n // MapboxGL instance\n mapboxgl.accessToken = mapboxAccessToken\n this.map = new mapboxgl.Map({\n container: this.mapRef,\n style: theme,\n scrollZoom: false,\n })\n }\n\n _initFlight = () => {\n this._forwardGeocode([this.props.start, this.props.end]).then(geodata => {\n const locationsFeatures = _.map(geodata, data => _.get(data, 'body.features[0]'))\n this._renderMapFlight(locationsFeatures)\n })\n }\n\n _initLocation = () => {\n this._forwardGeocode([this.props.location]).then(geodata => {\n const feature = _.get(_.first(geodata), 'body.features[0]')\n this._renderMapLocation(feature)\n })\n }\n\n /*\n * Map Render\n */\n _renderMapLocation = feature => {\n const origin = feature.center\n\n this.map.on('load', () => {\n this.map.addSource('single-location', {\n type: 'geojson',\n data: {\n type: 'FeatureCollection',\n features: [feature],\n },\n })\n this.map.addLayer({\n id: 'point',\n source: 'single-location',\n type: 'circle',\n paint: {\n 'circle-radius': 5,\n 'circle-color': colors.orange,\n },\n })\n this._fitMapToBounds(feature.bbox)\n // const marker = new mapboxgl.Marker({anchor: 'center'})\n // marker.setLngLat(origin).addTo(this.map)\n })\n }\n\n _renderMapFlight = features => {\n const origin = features[0].center\n const destination = _.last(features).center\n const route = {\n type: 'FeatureCollection',\n features: [\n {\n type: 'Feature',\n geometry: {\n type: 'LineString',\n coordinates: [origin, destination],\n },\n },\n ],\n }\n\n const point = {\n type: 'FeatureCollection',\n features: [\n {\n type: 'Feature',\n geometry: {\n type: 'Point',\n coordinates: destination,\n },\n },\n ],\n }\n\n // Draw an arc between the `origin` & `destination` of the two points\n const lineDistance = turf.distance(origin, destination, {units: 'kilometers'})\n const arc = _.reduce(\n _.range(lineDistance),\n (array, i) => [\n ...array,\n turf.along(route.features[0], (i / 1000) * lineDistance, {units: 'kilometers'}).geometry.coordinates,\n ],\n []\n )\n\n // Update the route with calculated arc coordinates\n route.features[0].geometry.coordinates = arc\n\n const boundingBox = this._computeBoundingBox(features)\n this._fitMapToBounds(boundingBox)\n\n this.map.on('resize', () => {\n this._fitMapToBounds(boundingBox)\n })\n this.map.on('load', () => {\n this.map.addSource('route', {\n type: 'geojson',\n data: route,\n })\n\n this.map.addSource('point', {\n type: 'geojson',\n data: point,\n })\n\n this.map.addLayer({\n id: 'route',\n source: 'route',\n type: 'line',\n paint: {\n 'line-width': 2,\n 'line-color': '#007cbf',\n },\n })\n\n // Plane\n this.map.addLayer({\n id: 'point',\n source: 'point',\n type: 'symbol',\n layout: {\n 'icon-image': 'airport-15',\n 'icon-rotate': 90,\n 'icon-allow-overlap': true,\n },\n })\n })\n }\n\n /*\n * Lifecycle Methods\n */\n componentDidMount() {\n if (!this.mapRef) return\n\n // Attempt to get local theme\n const theme = this.props.theme.type === 'dark' ? mapboxStyleDark : mapboxStyleLight\n\n // Initialize Map instance\n this._initMapbox(theme)\n\n if (this.props.type === 'flight' && this.props.start && this.props.end) {\n return this._initFlight()\n }\n\n if (this.props.type === 'location' && this.props.location) {\n return this._initLocation()\n }\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.theme && prevProps.theme && this.props.theme.type !== prevProps.theme.type) {\n if (this.map) {\n const theme = this.props.theme.type === 'dark' ? mapboxStyleDark : mapboxStyleLight\n this.map.setStyle(theme, {diff: false})\n }\n }\n }\n\n componentWillUnmount() {\n this.mapRef = null\n }\n\n /*\n * Render Methods\n */\n render() {\n return (\n \n
(this.mapRef = el)} />\n \n )\n }\n}\n\nconst styleMap = {\n position: 'absolute',\n top: 0,\n bottom: 0,\n right: 0,\n left: 0,\n}\n\nexport default withTheme(MapComponent)\n","import React from 'react'\nimport glamorous from 'glamorous'\nimport {colors, hexToRgba} from '../css/themes'\n\nconst Hover = glamorous.div({\n position: 'relative',\n paddingLeft: '1rem',\n paddingRight: '1rem',\n margin: '0.5rem',\n '&:hover .hover-backdrop': {\n cursor: 'pointer',\n opacity: 0.18,\n transform: 'none',\n },\n})\n\nconst HoverBackdrop = glamorous.div({\n position: 'absolute',\n pointerEvents: 'none',\n top: '-4px',\n bottom: '-4px',\n left: '-4px',\n right: '-4px',\n background: colors.orange,\n boxShadow: `0 0 40px 3px ${hexToRgba(colors.black, 0.4)}`,\n borderRadius: '8px',\n transition: 'all 320ms ease-out',\n transform: 'scale(1.03)',\n opacity: 0,\n})\n\nconst CardHover = ({style, children}) => (\n \n \n {children}\n \n)\n\nexport default CardHover\n","import React from 'react'\nimport {string, shape, any} from 'prop-types'\nimport {Link} from 'gatsby'\nimport glamorous from 'glamorous'\n\nimport CardHover from '../components/card-hover'\nimport Image from '../components/image'\nimport {LinkStyled, Strong} from '../components/common'\n\n/*\n * 1. Book preview\n * 2. Podcast Preview\n * 3. Film Preview\n *\n * All of these have some sort of image with a subtitle description\n */\n\nconst MediaPreviewContentWrapper = glamorous.div({\n display: 'flex',\n marginBottom: '2rem',\n flexDirection: 'column',\n flexGrow: 1,\n alignItems: 'center',\n textAlign: 'center',\n})\n\nconst MediaPreviewDescription = glamorous.div({\n marginTop: '0.15rem',\n fontSize: '0.85rem',\n})\n\nconst MediaPreview = ({path, image, title, author}) => {\n return (\n \n \n \n \n {image && }\n \n {title}\n \n \n \n \n \n )\n}\n\nMediaPreview.propTypes = {\n path: string,\n image: shape({\n childImageSharp: shape({\n fixed: any,\n }).isRequired,\n }).isRequired,\n title: string.isRequired,\n author: string.isRequired,\n}\n\nexport default MediaPreview\n"],"sourceRoot":""}