{"version":3,"sources":["App/Lib/uploadFile.js","App/Components/Header/Upload.js","App/Components/Header/index.js","App/Container/Hooks/InitialText.js","App/Container/Hooks/useText.js","App/Container/index.js","App/Components/Markdown/Previewer/Loading.js","App/Components/Markdown/Previewer/ErrorBoundary.js","App/Components/Markdown/Previewer/index.js","App/Components/Markdown/Editor/MirrorEditor.js","App/Components/Markdown/Editor/index.js","App/Components/Markdown/DragBar.js","App/Container/Hooks/useDrop.js","App/Components/Markdown/index.js","App/index.js","index.js"],"names":["uploadFile","val","document","querySelector","CodeMirror","setValue","useReader","useEventTarget","FileReader","Upload","props","_useReader","evt","target","readyState","error","alert","content","result","reader","Object","slicedToArray","react_default","a","createElement","assign","style","position","id","type","display","onChange","e","files","currentTarget","length","readAsText","accept","htmlFor","opacity","top","left","right","bottom","zIndex","cursor","role","aria-label","styled","_ref","className","title","src","frameBorder","scrolling","width","height","onClick","window","print","_templateObject","initialText","useText","initialValue","arguments","undefined","_useState","useState","_useState2","TextContainer","Container","Loading_templateObject","duration","ErrorBoundary","_this","classCallCheck","this","possibleConstructorReturn","getPrototypeOf","call","state","errorInfo","setState","location","reload","background","padding","borderRadius","boxShadow","outline","children","React","Component","Wrapper","div","Previewer_templateObject","LazyPreview","lazy","Promise","all","__webpack_require__","then","bind","Previewer","source","Previewer_ErrorBoundary","react","fallback","Loading","setText","react_codemirror2","value","options","mode","theme","lineNumbers","lineWrapping","editor","data","MirrorEditor_templateObject","MirrorEditor","Editor_templateObject","setDrag","setStartX","onMouseDown","offsetX","nativeEvent","dragStart","DragBar_templateObject","isDrag","useDrop","ref","onLoad","uploading","setUploading","_useState3","_useState4","isOver","setOver","stopDefault","preventDefault","stopPropagation","useEffect","dragLeaveHandler","dragOverHandler","dropHandler","uploadHandler","dataTransfer","name","test","onload","current","addEventListener","removeEventListener","useWindowEvent","createEventTargetHook","_useProvided","useProvided","_useProvided2","text","startX","_useState5","innerWidth","_useState6","setWidth","markdownRef","useRef","_useDrop","_useDrop2","onMouseMove","pageX","Markdown_Editor","DragBar","Markdown_templateObject","nonaction_dist","inject","Components_Header","Components_Markdown","App_templateObject","rootElement","getElementById","event","returnValue","ReactDOM","render","src_App"],"mappings":"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","file":"static/js/main.5580fb42.chunk.js","sourcesContent":["export default val => {\n document.querySelector('.CodeMirror').CodeMirror.setValue(val);\n};\n// Little dirty solution.","import React from 'react';\nimport useEventTarget from 'use-event-target';\nimport uploadFile from '../../Lib/uploadFile.js';\nconst useReader = useEventTarget(new FileReader());\nexport default props => {\n const [reader] = useReader('load', evt => {\n if (evt.target.readyState !== 2) return;\n if (evt.target.error) {\n alert('Error while reading file');\n return;\n }\n const content = evt.target.result;\n uploadFile(content);\n });\n const onChange = e => {\n const files = e.currentTarget.files;\n files.length > 0 && reader.readAsText(files[0]);\n };\n return (\n

\n \n \n \n 📁\n \n Choose\n

\n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport UploadButton from './Upload.js';\nconst Header = ({ className }) => {\n return (\n
\n

md2pdf

\n \n\n
\n \n

window.print()}>\n \n 🎉\n \n Transform\n

\n
\n {/* Powered by @realdennis */}\n
\n );\n};\n\nexport default styled(Header)`\n * {\n box-sizing: border-box;\n }\n flex-shrink: 0;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n user-select: none;\n padding-left: 5px;\n padding-right: 5px;\n color: black;\n background-color: rgb(233, 233, 233);\n display: flex;\n align-items: center;\n height: 40px;\n .project {\n font-weight: bold;\n margin: 5px;\n flex-shrink: 0;\n height: 20px;\n }\n div.menu {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n .button {\n height: 80%;\n margin: 0;\n display: flex;\n align-items: center;\n margin-left: 3px;\n border-radius: 3px;\n border: 1px solid black;\n padding: 10px;\n cursor: pointer;\n }\n }\n\n /* span.author {\n position: fixed;\n bottom: 2px;\n left: 2px;\n opacity: 0.5;\n color: white;\n height: 20px;\n z-index:99;\n } */\n @keyframes dance {\n 0% {\n transform: rotate(3deg);\n }\n 100% {\n transform: rotate(-2deg);\n }\n }\n`;\n","export const initialText = `# Markdown2PDF \nhttps://md2pdf.netlify.com/\n> Awesome Markdown to PDF!\n\\`\\`\\`diff\n- Online? Upload resume.md to stranger server?\n+ Try Offline Web App!\n\\`\\`\\`\n\n## How to use md2pdf?\n1. Click button choose \\`.md\\` file.\n2. Edit in editor (left panel).\n3. Click **Transform**!\n4. Switch 'Destination' to **Save as PDF**.\n4. **Chrome recommended**\n\n## Tips\n- \\`Resize\\` the layout what you want.\n- After click \\`Transform\\` button, inverse the checkbox of **'Headers and Footers'**. \n- **反éļ頁éĶ–čˆ‡é å°ū**.\n\n## What's special?\n- You can use html tag!\n
Hey I'm in blockquote!
\n\n## Profile\n- Github: [@realdennis](https://github.com/realdennis)\n- Project: md2pdf (Markdown2PDF)\n- What about me: ☕ 、 ðŸ‘ĻðŸŧ‍ðŸ’ŧïļã€ 🍕、 🎞ïļ\n\n## Code Like this\n\\`\\`\\`javascript\n// index.js\nfunction Hello(){\n console.log('World!')\n}\nHello();\n\\`\\`\\`\n\nor this\n\n\\`\\`\\`python\n# main.py\ndef awesome():\n print('awesome!')\nawesome()\n\\`\\`\\`\n\n`;\n","import { useState } from \"react\";\nimport { initialText } from \"./InitialText.js\";\nconst useText = (initialValue = initialText) => {\n const [state, setState] = useState(initialValue);\n return [state, setState];\n};\nexport default useText;\n","import { Container } from 'nonaction';\nimport useText from './Hooks/useText.js';\nexport const TextContainer = Container(useText);","import React from 'react';\nimport styled from 'styled-components';\nconst unWrappedLoading = ({ className }) => {\n return (\n
\n

\n

\n

\n

\n );\n};\nexport default styled(unWrappedLoading)`\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n & > p {\n margin: 5px;\n width: 5px;\n height: 15px;\n border-radius: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n animation-name: load;\n animation-duration: ${props => props.duration + 's'};\n &:nth-child(1) {\n animation-delay: ${props => props.duration / 3 + 's'};\n }\n &:nth-child(2) {\n animation-delay: ${props => (2 * props.duration) / 3 + 's'};\n }\n }\n @keyframes load {\n 25% {\n transform: translateY(-10px);\n }\n 75% {\n transform: translateY(10px);\n }\n }\n`;\n","import React from 'react';\nclass ErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = { error: null, errorInfo: null };\n }\n componentDidCatch(error, errorInfo) {\n // Catch errors in any components below and re-render with error message\n this.setState({\n error: error,\n errorInfo: errorInfo\n });\n // You can also log error messages to an error reporting service here\n }\n render() {\n if (this.state.errorInfo) {\n // Error path\n return (\n
\n

Error occurs

\n {/*
\n {this.state.error && this.state.error.toString()}\n
\n {this.state.errorInfo.componentStack}\n
*/}\n {\n window.location.reload();\n }}\n style={{\n background: \"none\",\n padding: \"5px\",\n borderRadius: \"5px\",\n boxShadow:\"1px 1px 1px grey\",\n outline: \"none\",\n cursor: \"pointer\"\n }}\n >\n Reload This Page\n \n
\n );\n }\n // Normally, just render children\n return this.props.children;\n }\n}\nexport default ErrorBoundary;\n","import React, { Suspense, lazy } from 'react';\nimport styled from 'styled-components';\nimport Loading from './Loading';\nimport ErrorBoundary from './ErrorBoundary.js';\nimport 'github-markdown-css';\nconst Wrapper = styled.div`\n overflow-y: scroll;\n -webkit-overflow-scrolling: touch;\n width: 100%;\n padding: 10px;\n @media print {\n padding: 0;\n overflow-y: hidden;\n }\n`;\nconst LazyPreview = lazy(() => import('./Preview.js'));\nexport default ({ source, children }) => {\n return (\n \n }>\n \n {children}\n \n \n \n );\n};\n","import React from 'react';\nimport { UnControlled as CodeMirror } from 'react-codemirror2';\nimport styled from 'styled-components';\nimport 'codemirror/lib/codemirror.css';\nimport 'codemirror/theme/darcula.css';\nimport 'codemirror/mode/gfm/gfm.js';\nimport { initialText } from '../../../Container/Hooks/InitialText';\nconst Editor = ({ className, setText }) => {\n return (\n {\n setText(value);\n }}\n />\n );\n};\nexport default styled(Editor)`\n height: 100%;\n .CodeMirror {\n height: 100%;\n line-height: 1.5;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n// import EditArea from './EditArea.js';\nimport Mirror from './MirrorEditor.js';\nconst Editor = ({ className, setText, width }) => {\n return (\n
\n \n
\n );\n};\nexport default styled(Editor)`\n flex-shrink: 0;\n height: 100%;\n width: 50%;\n color: rgb(204, 204, 204);\n`;\n","import React from 'react';\nimport styled from 'styled-components';\nconst width = 15;\n\nconst UnwrappedDragBar = ({ className, setDrag, setStartX }) => {\n const dragStart = e => {\n const { nativeEvent } = e;\n const offsetX = nativeEvent.offsetX;\n setStartX(offsetX);\n };\n return (\n {\n setDrag(true);\n dragStart(e);\n }}\n />\n );\n};\nexport default styled(UnwrappedDragBar)`\n width: ${width + 'px'};\n flex-shrink: 0;\n background-color: ${props => (props.isDrag ? '#0984e3' : 'rgb(233,233,233)')};\n height: 100%;\n color: white;\n text-align: center;\n cursor: col-resize;\n user-select: none;\n`;\n","import { useEffect, useState } from 'react';\n\nfunction useDrop(ref, onLoad = () => {}) {\n const [uploading, setUploading] = useState(false);\n const [isOver, setOver] = useState(false);\n const stopDefault = e => {\n e.preventDefault();\n e.stopPropagation();\n };\n useEffect(() => {\n const dragLeaveHandler = e => {\n setOver(false);\n stopDefault(e);\n };\n const dragOverHandler = e => {\n setOver(true);\n stopDefault(e);\n };\n const dropHandler = e => {\n setOver(false);\n stopDefault(e);\n uploadHandler(e.dataTransfer.files);\n };\n\n const uploadHandler = files => {\n if (\n files &&\n files[0] &&\n files[0].name &&\n /\\.(md)$/i.test(files[0].name) &&\n !uploading\n ) {\n const reader = new FileReader();\n reader.onload = e => {\n setUploading(false);\n onLoad(e.target.result);\n };\n reader.readAsText(files[0]);\n setUploading(true);\n }\n };\n const target = ref.current;\n if (!target) return;\n target.addEventListener('dragenter', stopDefault, true);\n target.addEventListener('dragover', dragOverHandler, true);\n target.addEventListener('dragleave', dragLeaveHandler, true);\n target.addEventListener('drop', dropHandler, true);\n return () => {\n target.removeEventListener('dragenter', stopDefault, true);\n target.removeEventListener('dragover', dragOverHandler, true);\n target.removeEventListener('dragleave', dragLeaveHandler, true);\n target.removeEventListener('drop', dropHandler, true);\n };\n }, [ref, onLoad, uploading, isOver]);\n return [uploading, isOver];\n}\n\nexport default useDrop;\n","import React, { useState, useRef } from 'react';\nimport styled from 'styled-components';\nimport { useProvided } from 'nonaction';\nimport { TextContainer } from '../../Container';\nimport Previewer from './Previewer';\nimport Editor from './Editor';\nimport DragBar from './DragBar.js';\nimport 'github-markdown-css';\nimport useDrop from '../../Container/Hooks/useDrop.js';\nimport uploadFile from '../../Lib/uploadFile.js';\nimport createEventTargetHook from 'create-event-target-hook';\nconst useWindowEvent = createEventTargetHook(window);\n\nconst Markdown = ({ className }) => {\n const [text, setText] = useProvided(TextContainer);\n const [isDrag, setDrag] = useState(false);\n const [startX, setStartX] = useState(0);\n const [width, setWidth] = useState(window.innerWidth / 2);\n const markdownRef = useRef(null);\n const [uploading, isOver] = useDrop(markdownRef, uploadFile);\n // Partial fileText & text\n\n useWindowEvent('mouseup', () => setDrag(false));\n // The state `isDrag` must be false, when mouse up!\n // So we listen it in window! (Seems ugly, but it just works ha.)\n return (\n {\n if (!isDrag) return;\n const pageX = e.nativeEvent.pageX;\n setWidth(pageX - startX);\n }}\n >\n \n \n {text}\n \n );\n};\n\nexport default styled(Markdown)`\n * {\n box-sizing: border-box;\n }\n height: calc(100% - 40px);\n display: flex;\n`;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Header, Markdown } from './Components';\nimport { Provider } from 'nonaction';\nimport { TextContainer } from './Container';\nconst App = ({ className }) => {\n return (\n
\n \n
\n \n \n
\n );\n};\nexport default styled(App)`\n height: 100%;\n display: flex;\n flex-direction: column;\n font-family: åūŪčŧŸæ­Ģéŧ‘éŦ”, sans-serif;\n @media print {\n &,\n div {\n display: block;\n height: auto;\n /* Reset to normalize for FireFox */\n }\n .no-print,\n .no-print * {\n display: none !important;\n }\n }\n`;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport 'normalize.css';\nimport './styles.css';\nimport App from './App';\nconst rootElement = document.getElementById('root');\n\n// [Prevent] The redirect of file drop\nwindow.addEventListener('drop', e => e.preventDefault(), true);\n// window.addEventListener('dragstart', e => e.preventDefault(), true);\nwindow.addEventListener('dragover', e => e.preventDefault(), true);\n// window.addEventListener('dragleave', e => e.preventDefault(), true);\nwindow.addEventListener('beforeunload', e => {\n const msg = 'Please check and backup the change before refresh or leave.';\n return ((e || window.event).returnValue = msg);\n});\n\nReactDOM.render(, rootElement);\n"],"sourceRoot":""}