{"version":3,"file":"js/900-115eecb8ca1cdd0a5445.js","mappings":"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","sources":["webpack:///./app/javascript/components/ sync ^\\.\\/.*$","webpack:///./app/javascript/components/ArticleCover.js","webpack:///./app/javascript/components/BlockRemove.js","webpack:///./app/javascript/components/CircuitBlock.js","webpack:///./app/javascript/components/CodeBlock.js","webpack:///./app/javascript/components/ContentBlock.js","webpack:///./app/javascript/components/ContentBlockList.js","webpack:///./app/javascript/components/HelloWorld.js","webpack:///./app/javascript/components/MathBlock.js","webpack:///./app/javascript/components/ParagraphBlock.js","webpack:///./app/javascript/components/PhotoBlock.js","webpack:///./app/javascript/components/VideoBlock.js"],"sourcesContent":["var map = {\n\t\"./ArticleCover\": 622,\n\t\"./ArticleCover.js\": 622,\n\t\"./BlockRemove\": 878,\n\t\"./BlockRemove.js\": 878,\n\t\"./CircuitBlock\": 335,\n\t\"./CircuitBlock.js\": 335,\n\t\"./CodeBlock\": 625,\n\t\"./CodeBlock.js\": 625,\n\t\"./ContentBlock\": 913,\n\t\"./ContentBlock.js\": 913,\n\t\"./ContentBlockList\": 741,\n\t\"./ContentBlockList.js\": 741,\n\t\"./HelloWorld\": 831,\n\t\"./HelloWorld.js\": 831,\n\t\"./MathBlock\": 44,\n\t\"./MathBlock.js\": 44,\n\t\"./ParagraphBlock\": 436,\n\t\"./ParagraphBlock.js\": 436,\n\t\"./PhotoBlock\": 18,\n\t\"./PhotoBlock.js\": 18,\n\t\"./VideoBlock\": 759,\n\t\"./VideoBlock.js\": 759\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 900;","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport default class ArticleCover extends React.Component {\n\n constructor (props) {\n\n super(props);\n\n this.state = {\n edit: false\n }\n }\n\n handleClick (event) {\n\n this.setState({'edit': true})\n\n event.preventDefault();\n event.stopPropagation();\n }\n\n render () {\n\n const form = (\n
\n\n \n \n \n
\n )\n\n const link = (\n Add Cover\n )\n\n var current = link;\n if (this.state.edit) {\n current = form;\n }\n\n return (\n
\n {current}\n
\n );\n }\n}\n\nArticleCover.propTypes = {\n permalink: React.PropTypes.string\n};\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nexport default class BlockRemove extends React.Component {\n\n render () {\n const className = this.props.class + \" block-remove\";\n return (\n x\n );\n }\n}\n\nBlockRemove.propTypes = {\n class: PropTypes.string,\n clickHandler: PropTypes.func,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport BlockRemove from \"./BlockRemove\"\n\nexport default class CircuitBlock extends React.Component {\n\n constructor (props) {\n super(props);\n\n this.state = {\n published: this.props.published || false,\n circuit: \"\",\n label: \"\",\n }\n\n if(typeof this.props.circuit == \"string\" && this.props.circuit.length > 0) {\n this.state.circuit = this.props.circuit;\n }\n\n }\n\n componentDidMount () {\n\n var circuit_json = {\"width\": 600, \"height\": 200};\n var element = $(\"#circuit-simcir_\" + this.props.order);\n\n if (this.state.circuit) {\n circuit_json = JSON.parse(this.state.circuit);\n }\n\n /* Initialize circuits js library */\n simcir.setupSimcir(element, circuit_json);\n\n this.setState({\n element: element,\n circuit: JSON.stringify(circuit_json)\n })\n }\n\n storeCircuit(event) {\n var data = simcir.controller(\n this.state.element.find('.simcir-workspace')\n ).text();\n\n this.setState({circuit: data});\n\n event.stopPropagation();\n event.preventDefault();\n }\n\n onInputChange (event) {\n\n this.setState({\n circuit: event.target.value\n })\n }\n\n updateCircuit (event) {\n /* Update circuit on SimCir */\n simcir.setupSimcir(this.state.element, JSON.parse(this.state.circuit));\n }\n\n render () {\n const circuit = (\n
\n
\n
\n
\n )\n\n const form = (\n

\n

\n \n \n
\n
\n \n \n
\n

\n )\n\n if (this.state.published) {\n return circuit;\n } else {\n return form;\n }\n }\n}\n\nCircuitBlock.propTypes = {\n published: PropTypes.bool,\n circuit: PropTypes.string,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport ReactDOM from \"react-dom\"\nimport { createRef } from \"react\"\n\nimport BlockRemove from \"./BlockRemove\"\n\nexport default class CodeBlock extends React.Component {\n\n blockRef = createRef(null);\n\n constructor (props) {\n super(props);\n this.state = {\n published: this.props.published || false,\n value: \"\"\n }\n\n this.TAB = 9;\n\n if (typeof this.props.code == \"string\" && this.props.code.length > 0) {\n\n this.state.value = this.props.code;\n }\n }\n\n indent (event) {\n\n const key = event.keyCode;\n\n if(key == this.TAB) {\n\n const value = event.target.value;\n const start = value.substring(0, event.target.selectionStart);\n const end = value.substring(event.target.selectionEnd);\n\n this.setState({value: start + \" \" + end});\n event.target.selectionStart = start + 4;\n event.preventDefault();\n }\n }\n\n change (event) {\n this.setState({value: event.target.value});\n }\n\n pageLoadCallback (event) {\n\n // Highlights current code block\n hljs.highlightBlock(this.blockRef.current);\n }\n\n /**\n * Highlights the code after the component has been mounted\n */\n componentDidMount () {\n\n window.addEventListener('load', this.pageLoadCallback.bind(this));\n window.addEventListener('turbolinks:load', this.pageLoadCallback.bind(this));\n }\n\n render () {\n\n const form = (\n

\n \n \n \n

\n );\n\n const source = (\n
\n        \n          {this.state.value}\n        \n      
\n );\n\n if(this.state.published) {\n return source;\n } else {\n return form;\n }\n }\n}\n\nCodeBlock.propTypes = {\n code: PropTypes.string,\n};\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport ParagraphBlock from \"./ParagraphBlock\"\nimport CodeBlock from \"./CodeBlock\"\nimport PhotoBlock from \"./PhotoBlock\"\nimport VideoBlock from \"./VideoBlock\"\nimport CircuitBlock from \"./CircuitBlock\"\nimport MathBlock from \"./MathBlock\"\nimport ContentBlockList from \"./ContentBlockList\"\nimport BlockRemove from \"./BlockRemove\"\n\n\nexport default class ContentBlock extends React.Component {\n\n constructor (props) {\n\n super(props);\n\n this.state = {\n components: [],\n published: this.props.published || false,\n nextOrder: 0, // Initialize blocks order on form\n };\n\n this.handleClick = this.handleClick.bind(this);\n\n if(this.props.contentBlocks &&\n Object.keys(this.props.contentBlocks).length > 0) {\n this.createComponents();\n }\n }\n\n createComponents () {\n\n const objectKeys = Object.keys(this.props.contentBlocks);\n for (let i=0; i < objectKeys.length; i++) {\n\n const block = this.props.contentBlocks[ objectKeys[i] ];\n const key = Object.keys(block)[0];\n this.addBlock(key, i, block[key]);\n }\n }\n\n addBlock(blockType, index, value) {\n\n let component = undefined;\n switch (blockType) {\n case \"video\":\n component = ;\n break;\n case \"photo\":\n component = ;\n break;\n case \"paragraph\":\n component = ;\n break;\n case \"code\":\n component = ;\n break;\n case \"math\":\n component = ;\n break;\n case \"circuit\":\n component = ;\n break;\n default:\n console.log(\"Unknown block type\");\n }\n\n this.state.components.push(component);\n this.state.nextOrder++;\n }\n\n deleteBlock (index) {\n this.state.components.pop(index);\n this.forceUpdate();\n }\n\n handleClick (event) {\n\n event.preventDefault();\n event.stopPropagation();\n\n const blockType = event.currentTarget.className;\n const nBlocks = this.state.components.length;\n\n this.addBlock(blockType, nBlocks);\n this.setState({});\n }\n\n render () {\n\n const listBlocks = (\n
\n
    \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
\n
\n );\n\n return (\n
\n \n {this.state.published ? null : listBlocks}\n
\n );\n }\n}\n\nContentBlock.propTypes = {\n contentBlocks: PropTypes.object,\n published: PropTypes.bool,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport BlockRemove from \"./BlockRemove\"\n\nexport default class ContentBlockList extends React.Component {\n\n render () {\n\n return (\n
\n {this.props.blocks.map(function (component) {\n return component\n })}\n
\n );\n }\n};\n\nContentBlockList.propTypes = {\n blocks: PropTypes.array,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport BlockRemove from \"./BlockRemove\"\n\nexport default class HelloWorld extends React.Component {\n\n constructor (props) {\n super(props);\n }\n\n render () {\n return (\n \n Greeting: {this.props.greeting}\n \n )\n }\n}\n\nHelloWorld.propTypes = {\n greeting: PropTypes.string\n};\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport BlockRemove from \"./BlockRemove\"\n\nexport default class MathBlock extends React.Component {\n\n constructor (props) {\n super(props);\n this.state = {\n published: this.props.published || false,\n value: \"\\\\begin{flalign}\\n & \\\\\\\\ \\n\\\\end{flalign}\"\n }\n\n if (typeof this.props.math == \"string\" && this.props.math.length > 0) {\n\n this.state.value = this.props.math;\n }\n }\n\n genTex () {\n\n var output = document.getElementById(\"math-block-\" + this.props.order);\n output.innerHTML = '';\n\n MathJax.texReset();\n var options = MathJax.getMetricsFor(output);\n\n MathJax.tex2chtmlPromise(this.state.value, options).then(function (node) {\n\n output.appendChild(node);\n MathJax.startup.document.clear();\n MathJax.startup.document.updateDocument();\n\n }).catch(function (err) {\n\n let preElm = document.createElement('pre');\n let txtElm = document.createTextNode(err.message);\n output.appendChild(preElm).appendChild(txtElm);\n })\n }\n\n change (event) {\n this.setState({value: event.target.value});\n }\n\n click (event) {\n\n this.genTex();\n\n event.preventDefault();\n event.stopPropagation();\n }\n\n blur (event) {\n\n this.genTex();\n event.stopPropagation();\n }\n\n pageLoadCallback (event) {\n\n this.genTex();\n }\n\n componentDidMount () {\n\n window.addEventListener('load', this.pageLoadCallback.bind(this));\n window.addEventListener('turbolinks:load', this.pageLoadCallback.bind(this));\n }\n\n render () {\n const form = (\n

\n \n \n \n \n\n

\n
\n

\n );\n\n const mathContent = (\n
\n
\n );\n\n if(this.state.published) {\n return mathContent;\n } else {\n return form;\n }\n }\n}\n\nMathBlock.propTypes = {\n math: PropTypes.string,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport BlockRemove from \"./BlockRemove\"\n\nexport default class ParagraphBlock extends React.Component {\n\n constructor (props) {\n super(props);\n\n this.state = {\n published: this.props.published || false,\n ctrlPressed: false,\n anchor: false,\n value: this.props.text || \"\",\n focus: false\n }\n\n this.CTRL = 17;\n this.COMMA = 188;\n this.M = 77;\n this.currentAnchor = undefined;\n }\n\n /**\n * Set the state for CTRL key pressed\n */\n handleKeyDown (event) {\n\n const key = event.keyCode;\n\n if(key == this.CTRL) {\n this.state.ctrlPressed = true;\n }\n }\n\n /**\n * Handle B or I keys pressed. The selection start and end are also read.\n * For each key, bold or italic are used. If the key is CTRL the state is\n * updated.\n */\n handleKeyUp (event) {\n\n event.preventDefault();\n\n const key = event.keyCode;\n const selection = window.getSelection();\n const start = selection.anchorOffset;\n const end = selection.focusOffset;\n\n if(key == this.COMMA && this.state.ctrlPressed) {\n this.insertLinkInput(event);\n } else if (key == this.M && this.state.ctrlPressed) {\n this.insertTitle(event);\n }\n\n this.state.ctrlPressed = false;\n }\n\n\n /**\n * Inserts tag a after paragraph to use as link url\n */\n insertLinkInput (event) {\n\n if (window.getSelection().toString()) {\n\n this.currentAnchor = document.createElement('a');\n this.currentAnchor.target = \"_blank\";\n window.getSelection().getRangeAt(0).surroundContents(this.currentAnchor);\n\n this.setState({\n anchor: true\n });\n }\n\n event.preventDefault();\n }\n\n\n /**\n * Inserts a title using tag bold with styles\n */\n insertTitle (event) {\n\n var titleElm = document.createElement(\"h3\");\n titleElm.className = \"paragraph-title\";\n titleElm.onblur = this.closeEdition;\n titleElm.onclick = this.allowEdition;\n\n window.getSelection().getRangeAt(0).surroundContents(titleElm);\n this.updateState();\n\n event.preventDefault();\n }\n\n /**\n * Update paragraph div state\n */\n updateState () {\n\n\n const div = document.getElementById(\"div-paragraph-\" + this.props.order);\n\n this.setState({\n anchor: false,\n value: div.innerHTML,\n });\n\n div.click();\n div.focus();\n }\n\n /**\n * Sets the current anchor url based on input url\n */\n setLinkUrl (event) {\n\n const url = event.target.value;\n this.currentAnchor.href = url;\n this.currentAnchor = undefined;\n\n this.updateState();\n\n event.stopPropagation();\n }\n\n change (element) {\n\n let input = document.getElementById(\"paragraph-\" + this.props.order);\n input.value = element.innerHTML;\n }\n\n changeCallback (event) {\n\n this.change(event.target);\n }\n\n\n /**\n * Allows paragraph div edition\n */\n allowEdition (event) {\n\n const paragraphDivSelector = \"div-paragraph-\" + this.props.order;\n const paragraphDiv = document.getElementById(paragraphDivSelector);\n\n paragraphDiv.setAttribute(\"contenteditable\", true);\n\n for(var i=0; i < paragraphDiv.childNodes.length; i++) {\n\n const element = paragraphDiv.childNodes[i];\n if(element.nodeType === Node.ELEMENT_NODE) {\n element.setAttribute(\"contenteditable\", true);\n }\n }\n }\n\n\n /**\n * Closes paragraph div edition\n */\n closeEdition (event) {\n\n const paragraphDivSelector = \"div-paragraph-\" + this.props.order;\n const paragraphDiv = document.getElementById(paragraphDivSelector);\n\n paragraphDiv.removeAttribute(\"contenteditable\");\n\n for(var i=0; i < paragraphDiv.childNodes.length; i++) {\n\n const element = paragraphDiv.childNodes[i];\n if(element.nodeType === Node.ELEMENT_NODE) {\n element.removeAttribute(\"contenteditable\");\n }\n }\n\n this.change(paragraphDiv);\n }\n\n\n render () {\n\n let anchor = \"\";\n if(this.state.anchor) {\n anchor = (\n \n );\n }\n\n const form = (\n

\n \n \n \n {anchor}\n \n

\n );\n\n const paragraph = (\n

\n );\n\n if(this.state.published) {\n return paragraph;\n } else {\n return form;\n }\n }\n}\n\nParagraphBlock.propTypes = {\n published: PropTypes.bool,\n text: PropTypes.string,\n}\n\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport BlockRemove from \"./BlockRemove\"\n\nexport default class PhotoBlock extends React.Component {\n\n constructor (props) {\n super(props);\n\n this.state = {\n visible: false,\n published: this.props.published || false,\n\n file: undefined,\n imageUrl: undefined,\n imagePreviewURL: undefined,\n imageAlt: undefined,\n }\n\n if(this.props.photo) {\n\n if (this.props.photo.path && typeof this.props.photo.path == \"string\") {\n this.state.imageUrl = this.props.photo.path;\n this.state.imagePreviewURL= this.state.imageUrl;\n }\n\n if (this.props.photo.caption && typeof this.props.photo.caption == \"string\") {\n this.state.imageAlt = this.props.photo.caption;\n }\n }\n }\n\n handleFileChoose (event) {\n\n let reader = new FileReader();\n let file = event.target.files[0];\n\n reader.onloadend = () => {\n this.setState({\n file: file,\n imagePreviewURL: reader.result\n });\n }\n\n reader.readAsDataURL(file);\n }\n\n /**\n * The form is correct. Rails does not put alt tag in its class for uploading\n * files\n */\n fillImageAlt(event) {\n\n const alternate = event.target.value;\n\n this.setState({\n imageAlt: alternate\n });\n\n event.stopPropagation();\n }\n\n render () {\n\n let preview = \"\";\n if(this.state.imagePreviewURL) {\n preview = (\n

\n {this.state.imageAlt}\n
\n );\n }\n\n let formFileInput = (\n\n \n );\n\n if(this.state.imageUrl) {\n\n formFileInput = (\n \n );\n }\n\n const form = (\n

\n \n {formFileInput}\n \n {preview}\n \n

\n );\n\n const photo = (\n \n \n {this.state.imageAlt}\n \n );\n\n if(this.state.published) {\n return photo;\n } else {\n return form;\n }\n }\n}\n\nPhotoBlock.propTypes = {\n path: PropTypes.string,\n caption: PropTypes.string,\n};\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport BlockRemove from \"./BlockRemove\"\n\nexport default class VideoBlock extends React.Component {\n\n constructor (props) {\n super(props);\n\n this.state = {\n published: this.props.published || false,\n value: \"\",\n videoID: null,\n }\n\n this.youtube = {\n IMG_URL: \"https://img.youtube.com/vi/\",\n IMG_QUALITY: \"/0.jpg\",\n URL_PATTERN: /v=(\\w|-){11}/,\n ID_LENGTH: 11,\n YOUTUBE_EMBED_URL: \"https://www.youtube.com/embed/\",\n }\n\n if(typeof this.props.url == \"string\" && this.props.url.length > 0) {\n\n const videoID = this.getVideoID(this.props.url);\n\n this.state.value = this.props.url;\n this.state.videoID = videoID;\n }\n }\n\n getVideoID (url) {\n\n if(this.youtube.URL_PATTERN.test(url)) {\n return url.split(\"v=\")[1].substring(0, this.youtube.ID_LENGTH);\n }\n return null;\n }\n\n handleKeyUp (event) {\n\n const value = event.target.value;\n const videoID = this.getVideoID(value);\n this.setState({value: value, videoID: videoID});\n }\n\n render () {\n let image = \"\";\n if(this.state.videoID) {\n const videoThumbURL = this.youtube.IMG_URL + this.state.videoID + this.youtube.IMG_QUALITY;\n image = (\n
\n \n
\n );\n }\n\n const form = (\n

\n

\n \n \n \n
\n {image}\n

\n );\n\n const video = (\n
\n