-
Notifications
You must be signed in to change notification settings - Fork 38
/
jotted.js.map
1 lines (1 loc) · 94.1 KB
/
jotted.js.map
1
{"version":3,"file":null,"sources":["/run/media/mokush/work/dev/jotted/src/util.js","/run/media/mokush/work/dev/jotted/src/template.js","/run/media/mokush/work/dev/jotted/src/plugin.js","/run/media/mokush/work/dev/jotted/src/pubsoup.js","/run/media/mokush/work/dev/jotted/src/plugins/render.js","/run/media/mokush/work/dev/jotted/src/plugins/scriptless.js","/run/media/mokush/work/dev/jotted/src/plugins/ace.js","/run/media/mokush/work/dev/jotted/src/plugins/codemirror.js","/run/media/mokush/work/dev/jotted/src/plugins/less.js","/run/media/mokush/work/dev/jotted/src/plugins/coffeescript.js","/run/media/mokush/work/dev/jotted/src/plugins/stylus.js","/run/media/mokush/work/dev/jotted/src/plugins/babel.js","/run/media/mokush/work/dev/jotted/src/plugins/markdown.js","/run/media/mokush/work/dev/jotted/src/plugins/console.js","/run/media/mokush/work/dev/jotted/src/plugins/play.js","/run/media/mokush/work/dev/jotted/src/plugins/pen.js","/run/media/mokush/work/dev/jotted/src/bundle-plugins.js","/run/media/mokush/work/dev/jotted/src/core.js"],"sourcesContent":["/* util\n */\n\nfunction extend (obj = {}, defaults = {}) {\n var extended = {}\n // clone object\n Object.keys(obj).forEach(function (key) {\n extended[key] = obj[key]\n })\n\n // copy default keys where undefined\n Object.keys(defaults).forEach(function (key) {\n if (typeof extended[key] !== 'undefined') {\n extended[key] = obj[key]\n } else {\n extended[key] = defaults[key]\n }\n })\n\n return extended\n}\n\nfunction fetch (url, callback) {\n var xhr = new window.XMLHttpRequest()\n xhr.open('GET', url)\n xhr.responseType = 'text'\n\n xhr.onload = function () {\n if (xhr.status === 200) {\n callback(null, xhr.responseText)\n } else {\n callback(url, xhr)\n }\n }\n\n xhr.onerror = function (err) {\n callback(err)\n }\n\n xhr.send()\n}\n\nfunction runCallback (index, params, arr, errors, callback) {\n return function (err, res) {\n if (err) {\n errors.push(err)\n }\n\n index++\n if (index < arr.length) {\n seqRunner(index, res, arr, errors, callback)\n } else {\n callback(errors, res)\n }\n }\n}\n\nfunction seqRunner (index, params, arr, errors, callback) {\n // async\n arr[index](params, runCallback.apply(this, arguments))\n}\n\nfunction seq (arr, params, callback = function () {}) {\n var errors = []\n\n if (!arr.length) {\n return callback(errors, params)\n }\n\n seqRunner(0, params, arr, errors, callback)\n}\n\nfunction debounce (fn, delay) {\n var cooldown = null\n var multiple = null\n return function () {\n if (cooldown) {\n multiple = true\n } else {\n fn.apply(this, arguments)\n }\n\n clearTimeout(cooldown)\n\n cooldown = setTimeout(() => {\n if (multiple) {\n fn.apply(this, arguments)\n }\n\n cooldown = null\n multiple = null\n }, delay)\n }\n}\n\nfunction log () {\n console.log(arguments)\n}\n\nfunction hasClass (node, className) {\n if (!node.className) {\n return false\n }\n var tempClass = ' ' + node.className + ' '\n className = ' ' + className + ' '\n\n if (tempClass.indexOf(className) !== -1) {\n return true\n }\n\n return false\n}\n\nfunction addClass (node, className) {\n // class is already added\n if (hasClass(node, className)) {\n return node.className\n }\n\n if (node.className) {\n className = ' ' + className\n }\n\n node.className += className\n\n return node.className\n}\n\nfunction removeClass (node, className) {\n var spaceBefore = ' ' + className\n var spaceAfter = className + ' '\n\n if (node.className.indexOf(spaceBefore) !== -1) {\n node.className = node.className.replace(spaceBefore, '')\n } else if (node.className.indexOf(spaceAfter) !== -1) {\n node.className = node.className.replace(spaceAfter, '')\n } else {\n node.className = node.className.replace(className, '')\n }\n\n return node.className\n}\n\nfunction data (node, attr) {\n return node.getAttribute('data-' + attr)\n}\n\n// mode detection based on content type and file extension\nvar defaultModemap = {\n 'html': 'html',\n 'css': 'css',\n 'js': 'javascript',\n 'less': 'less',\n 'styl': 'stylus',\n 'coffee': 'coffeescript'\n}\n\nfunction getMode (type = '', file = '', customModemap = {}) {\n var modemap = extend(customModemap, defaultModemap)\n\n // try the file extension\n for (let key in modemap) {\n let keyLength = key.length\n if (file.slice(-keyLength++) === '.' + key) {\n return modemap[key]\n }\n }\n\n // try the file type (html/css/js)\n for (let key in modemap) {\n if (type === key) {\n return modemap[key]\n }\n }\n\n return type\n}\n\nexport {\n extend,\n fetch,\n seq,\n debounce,\n log,\n getMode,\n\n data,\n hasClass,\n addClass,\n removeClass\n}\n","/* template\n */\n\nexport function container () {\n return `\n <ul class=\"jotted-nav\">\n <li class=\"jotted-nav-item jotted-nav-item-result\">\n <a href=\"#\" data-jotted-type=\"result\">\n Result\n </a>\n </li>\n <li class=\"jotted-nav-item jotted-nav-item-html\">\n <a href=\"#\" data-jotted-type=\"html\">\n HTML\n </a>\n </li>\n <li class=\"jotted-nav-item jotted-nav-item-css\">\n <a href=\"#\" data-jotted-type=\"css\">\n CSS\n </a>\n </li>\n <li class=\"jotted-nav-item jotted-nav-item-js\">\n <a href=\"#\" data-jotted-type=\"js\">\n JavaScript\n </a>\n </li>\n </ul>\n <div class=\"jotted-pane jotted-pane-result\"><iframe></iframe></div>\n <div class=\"jotted-pane jotted-pane-html\"></div>\n <div class=\"jotted-pane jotted-pane-css\"></div>\n <div class=\"jotted-pane jotted-pane-js\"></div>\n `\n}\n\nexport function paneActiveClass (type) {\n return `jotted-pane-active-${type}`\n}\n\nexport function containerClass () {\n return `jotted`\n}\n\nexport function hasFileClass (type) {\n return `jotted-has-${type}`\n}\n\nexport function editorClass (type) {\n return `jotted-editor jotted-editor-${type}`\n}\n\nexport function editorContent (type, fileUrl = '') {\n return `\n <textarea data-jotted-type=\"${type}\" data-jotted-file=\"${fileUrl}\"></textarea>\n <div class=\"jotted-status\"></div>\n `\n}\n\nexport function statusMessage (err) {\n return `\n <p>${err}</p>\n `\n}\n\nexport function statusClass (type) {\n return `jotted-status-${type}`\n}\n\nexport function statusActiveClass (type) {\n return `jotted-status-active-${type}`\n}\n\nexport function pluginClass (name) {\n return `jotted-plugin-${name}`\n}\n\nexport function statusLoading (url) {\n return `Loading <strong>${url}</strong>..`\n}\n\nexport function statusFetchError (url) {\n return `There was an error loading <strong>${url}</strong>.`\n}\n","/* plugin\n */\n\nimport * as util from './util.js'\nimport * as template from './template.js'\n\nvar plugins = []\n\nfunction find (id) {\n for (let pluginIndex in plugins) {\n let plugin = plugins[pluginIndex]\n if (plugin._id === id) {\n return plugin\n }\n }\n\n // can't find plugin\n throw new Error(`Plugin ${id} is not registered.`)\n}\n\nfunction register (id, plugin) {\n // private properties\n plugin._id = id\n plugins.push(plugin)\n}\n\n// create a new instance of each plugin, on the jotted instance\nfunction init () {\n this._get('options').plugins.forEach((plugin) => {\n // check if plugin definition is string or object\n let Plugin\n let pluginName\n let pluginOptions = {}\n if (typeof plugin === 'string') {\n pluginName = plugin\n } else if (typeof plugin === 'object') {\n pluginName = plugin.name\n pluginOptions = plugin.options || {}\n }\n\n Plugin = find(pluginName)\n this._get('plugins')[plugin] = new Plugin(this, pluginOptions)\n\n util.addClass(this._get('$container'), template.pluginClass(pluginName))\n })\n}\n\nexport {\n register,\n init\n}\n","/* pubsoup\n */\n\nimport * as util from './util.js'\n\nexport default class PubSoup {\n constructor () {\n this.topics = {}\n this.callbacks = {}\n }\n\n find (query) {\n this.topics[query] = this.topics[query] || []\n return this.topics[query]\n }\n\n subscribe (topic, subscriber, priority = 90) {\n var foundTopic = this.find(topic)\n subscriber._priority = priority\n foundTopic.push(subscriber)\n\n // sort subscribers on priority\n foundTopic.sort(function (a, b) {\n return (a._priority > b._priority) ? 1 : ((b._priority > a._priority) ? -1 : 0)\n })\n }\n\n // removes a function from an array\n remover (arr, fn) {\n arr.forEach(function () {\n // if no fn is specified\n // clean-up the array\n if (!fn) {\n arr.length = 0\n return\n }\n\n // find the fn in the arr\n var index = [].indexOf.call(arr, fn)\n\n // we didn't find it in the array\n if (index === -1) {\n return\n }\n\n arr.splice(index, 1)\n })\n }\n\n unsubscribe (topic, subscriber) {\n // remove from subscribers\n var foundTopic = this.find(topic)\n this.remover(foundTopic, subscriber)\n\n // remove from callbacks\n this.callbacks[topic] = this.callbacks[topic] || []\n this.remover(this.callbacks[topic], subscriber)\n }\n\n // sequentially runs a method on all plugins\n publish (topic, params = {}) {\n var foundTopic = this.find(topic)\n var runList = []\n\n foundTopic.forEach(function (subscriber) {\n runList.push(subscriber)\n })\n\n util.seq(runList, params, this.runCallbacks(topic))\n }\n\n // parallel run all .done callbacks\n runCallbacks (topic) {\n return (err, params) => {\n this.callbacks[topic] = this.callbacks[topic] || []\n\n this.callbacks[topic].forEach((c) => {\n c(err, params)\n })\n }\n }\n\n // attach a callback when a publish[topic] is done\n done (topic, callback = function () {}) {\n this.callbacks[topic] = this.callbacks[topic] || []\n this.callbacks[topic].push(callback)\n }\n}\n","/* render plugin\n * renders the iframe\n */\n\nimport * as util from '../util.js'\n\nexport default class PluginRender {\n constructor (jotted, options) {\n options = util.extend(options, {})\n\n // iframe srcdoc support\n var supportSrcdoc = !!('srcdoc' in document.createElement('iframe'))\n var $resultFrame = jotted.$container.querySelector('.jotted-pane-result iframe')\n\n var frameContent = ''\n\n // cached content\n var content = {\n html: '',\n css: '',\n js: ''\n }\n\n // catch domready events from the iframe\n window.addEventListener('message', this.domready.bind(this))\n\n // render on each change\n jotted.on('change', this.change.bind(this), 100)\n\n // public\n this.supportSrcdoc = supportSrcdoc\n this.content = content\n this.frameContent = frameContent\n this.$resultFrame = $resultFrame\n\n this.callbacks = []\n this.index = 0\n\n this.lastCallback = () => {}\n }\n\n template (style = '', body = '', script = '') {\n return `\n <!doctype html>\n <html>\n <head>\n <script>\n (function () {\n window.addEventListener('DOMContentLoaded', function () {\n window.parent.postMessage(JSON.stringify({\n type: 'jotted-dom-ready'\n }), '*')\n })\n }())\n </script>\n\n <style>${style}</style>\n </head>\n <body>\n ${body}\n\n <!--\n Jotted:\n Empty script tag prevents malformed HTML from breaking the next script.\n -->\n <script></script>\n <script>${script}</script>\n </body>\n </html>\n `\n }\n\n change (params, callback) {\n // cache manipulated content\n this.content[params.type] = params.content\n\n // check existing and to-be-rendered content\n var oldFrameContent = this.frameContent\n this.frameContent = this.template(this.content['css'], this.content['html'], this.content['js'])\n\n // cache the current callback as global,\n // so we can call it from the message callback.\n this.lastCallback = () => {\n this.lastCallback = () => {}\n\n callback(null, params)\n }\n\n // don't render if previous and new frame content are the same.\n // mostly for the `play` plugin,\n // so we don't re-render the same content on each change.\n // unless we set forceRender.\n if (params.forceRender !== true && this.frameContent === oldFrameContent) {\n callback(null, params)\n return\n }\n\n if (this.supportSrcdoc) {\n // srcdoc in unreliable in Chrome.\n // https://github.com/ghinda/jotted/issues/23\n\n // re-create the iframe on each change,\n // to discard the previously loaded scripts.\n var $newResultFrame = document.createElement('iframe')\n this.$resultFrame.parentNode.replaceChild($newResultFrame, this.$resultFrame)\n this.$resultFrame = $newResultFrame\n\n this.$resultFrame.contentWindow.document.open()\n this.$resultFrame.contentWindow.document.write(this.frameContent)\n this.$resultFrame.contentWindow.document.close()\n } else {\n // older browsers without iframe srcset support (IE9).\n this.$resultFrame.setAttribute('data-srcdoc', this.frameContent)\n\n // tips from https://github.com/jugglinmike/srcdoc-polyfill\n // Copyright (c) 2012 Mike Pennisi\n // Licensed under the MIT license.\n var jsUrl = 'javascript:window.frameElement.getAttribute(\"data-srcdoc\");'\n\n this.$resultFrame.setAttribute('src', jsUrl)\n\n // Explicitly set the iFrame's window.location for\n // compatibility with IE9, which does not react to changes in\n // the `src` attribute when it is a `javascript:` URL.\n if (this.$resultFrame.contentWindow) {\n this.$resultFrame.contentWindow.location = jsUrl\n }\n }\n }\n\n domready (e) {\n // only catch messages from the iframe\n if (e.source !== this.$resultFrame.contentWindow) {\n return\n }\n\n var data = {}\n try {\n data = JSON.parse(e.data)\n } catch (e) {}\n\n if (data.type === 'jotted-dom-ready') {\n this.lastCallback()\n }\n }\n}\n","/* scriptless plugin\n * removes script tags from html content\n */\n\nimport * as util from '../util.js'\n\nexport default class PluginScriptless {\n constructor (jotted, options) {\n options = util.extend(options, {})\n\n // https://html.spec.whatwg.org/multipage/scripting.html\n var runScriptTypes = [\n 'application/javascript',\n 'application/ecmascript',\n 'application/x-ecmascript',\n 'application/x-javascript',\n 'text/ecmascript',\n 'text/javascript',\n 'text/javascript1.0',\n 'text/javascript1.1',\n 'text/javascript1.2',\n 'text/javascript1.3',\n 'text/javascript1.4',\n 'text/javascript1.5',\n 'text/jscript',\n 'text/livescript',\n 'text/x-ecmascript',\n 'text/x-javascript'\n ]\n\n // remove script tags on each change\n jotted.on('change', this.change.bind(this))\n\n // public\n this.runScriptTypes = runScriptTypes\n }\n\n change (params, callback) {\n if (params.type !== 'html') {\n return callback(null, params)\n }\n\n // for IE9 support, remove the script tags from HTML content.\n // when we stop supporting IE9, we can use the sandbox attribute.\n var fragment = document.createElement('div')\n fragment.innerHTML = params.content\n\n var typeAttr = null\n\n // remove all script tags\n var $scripts = fragment.querySelectorAll('script')\n for (let i = 0; i < $scripts.length; i++) {\n typeAttr = $scripts[i].getAttribute('type')\n\n // only remove script tags without the type attribute\n // or with a javascript mime attribute value.\n // the ones that are run by the browser.\n if (!typeAttr || this.runScriptTypes.indexOf(typeAttr) !== -1) {\n $scripts[i].parentNode.removeChild($scripts[i])\n }\n }\n\n params.content = fragment.innerHTML\n\n callback(null, params)\n }\n}\n","/* ace plugin\n */\n\nimport * as util from '../util.js'\n\nexport default class PluginAce {\n constructor (jotted, options) {\n var priority = 1\n var i\n\n this.editor = {}\n this.jotted = jotted\n\n options = util.extend(options, {})\n\n // check if Ace is loaded\n if (typeof window.ace === 'undefined') {\n return\n }\n\n var $editors = jotted.$container.querySelectorAll('.jotted-editor')\n\n for (i = 0; i < $editors.length; i++) {\n let $textarea = $editors[i].querySelector('textarea')\n let type = util.data($textarea, 'jotted-type')\n let file = util.data($textarea, 'jotted-file')\n\n let $aceContainer = document.createElement('div')\n $editors[i].appendChild($aceContainer)\n\n this.editor[type] = window.ace.edit($aceContainer)\n let editor = this.editor[type]\n\n let editorOptions = util.extend(options)\n\n editor.getSession().setMode('ace/mode/' + util.getMode(type, file))\n editor.getSession().setOptions(editorOptions)\n\n editor.$blockScrolling = Infinity\n }\n\n jotted.on('change', this.change.bind(this), priority)\n }\n\n editorChange (params) {\n return () => {\n this.jotted.trigger('change', params)\n }\n }\n\n change (params, callback) {\n var editor = this.editor[params.type]\n\n // if the event is not started by the ace change.\n // triggered only once per editor,\n // when the textarea is populated/file is loaded.\n if (!params.aceEditor) {\n editor.getSession().setValue(params.content)\n\n // attach the event only after the file is loaded\n params.aceEditor = editor\n editor.on('change', this.editorChange(params))\n }\n\n // manipulate the params and pass them on\n params.content = editor.getValue()\n callback(null, params)\n }\n}\n","/* coremirror plugin\n */\n\nimport * as util from '../util.js'\n\nexport default class PluginCodeMirror {\n constructor (jotted, options) {\n var priority = 1\n var i\n\n this.editor = {}\n this.jotted = jotted\n\n // custom modemap for codemirror\n var modemap = {\n 'html': 'htmlmixed'\n }\n\n options = util.extend(options, {\n lineNumbers: true\n })\n\n // check if CodeMirror is loaded\n if (typeof window.CodeMirror === 'undefined') {\n return\n }\n\n var $editors = jotted.$container.querySelectorAll('.jotted-editor')\n\n for (i = 0; i < $editors.length; i++) {\n let $textarea = $editors[i].querySelector('textarea')\n let type = util.data($textarea, 'jotted-type')\n let file = util.data($textarea, 'jotted-file')\n\n this.editor[type] = window.CodeMirror.fromTextArea($textarea, options)\n this.editor[type].setOption('mode', util.getMode(type, file, modemap))\n }\n\n jotted.on('change', this.change.bind(this), priority)\n }\n\n editorChange (params) {\n return () => {\n // trigger a change event\n this.jotted.trigger('change', params)\n }\n }\n\n change (params, callback) {\n var editor = this.editor[params.type]\n\n // if the event is not started by the codemirror change.\n // triggered only once per editor,\n // when the textarea is populated/file is loaded.\n if (!params.cmEditor) {\n editor.setValue(params.content)\n\n // attach the event only after the file is loaded\n params.cmEditor = editor\n editor.on('change', this.editorChange(params))\n }\n\n // manipulate the params and pass them on\n params.content = editor.getValue()\n callback(null, params)\n }\n}\n","/* less plugin\n */\n\nimport * as util from '../util.js'\n\nexport default class PluginLess {\n constructor (jotted, options) {\n var priority = 20\n\n options = util.extend(options, {})\n\n // check if less is loaded\n if (typeof window.less === 'undefined') {\n return\n }\n\n // change CSS link label to Less\n jotted.$container.querySelector('a[data-jotted-type=\"css\"]').innerHTML = 'Less'\n\n jotted.on('change', this.change.bind(this), priority)\n }\n\n isLess (params) {\n if (params.type !== 'css') {\n return false\n }\n\n return (params.file.indexOf('.less') !== -1 || params.file === '')\n }\n\n change (params, callback) {\n // only parse .less and blank files\n if (this.isLess(params)) {\n window.less.render(params.content, this.options, (err, res) => {\n if (err) {\n return callback(err, params)\n } else {\n // replace the content with the parsed less\n params.content = res.css\n }\n\n callback(null, params)\n })\n } else {\n // make sure we callback either way,\n // to not break the pubsoup\n callback(null, params)\n }\n }\n}\n","/* coffeescript plugin\n */\n\nimport * as util from '../util.js'\n\nexport default class PluginCoffeeScript {\n constructor (jotted, options) {\n var priority = 20\n\n options = util.extend(options, {})\n\n // check if coffeescript is loaded\n if (typeof window.CoffeeScript === 'undefined') {\n return\n }\n\n // change JS link label to Less\n jotted.$container.querySelector('a[data-jotted-type=\"js\"]').innerHTML = 'CoffeeScript'\n\n jotted.on('change', this.change.bind(this), priority)\n }\n\n isCoffee (params) {\n if (params.type !== 'js') {\n return false\n }\n\n return (params.file.indexOf('.coffee') !== -1 || params.file === '')\n }\n\n change (params, callback) {\n // only parse .less and blank files\n if (this.isCoffee(params)) {\n try {\n params.content = window.CoffeeScript.compile(params.content)\n } catch (err) {\n return callback(err, params)\n }\n }\n\n callback(null, params)\n }\n}\n","/* stylus plugin\n */\n\nimport * as util from '../util.js'\n\nexport default class PluginStylus {\n constructor (jotted, options) {\n var priority = 20\n\n options = util.extend(options, {})\n\n // check if stylus is loaded\n if (typeof window.stylus === 'undefined') {\n return\n }\n\n // change CSS link label to Stylus\n jotted.$container.querySelector('a[data-jotted-type=\"css\"]').innerHTML = 'Stylus'\n\n jotted.on('change', this.change.bind(this), priority)\n }\n\n isStylus (params) {\n if (params.type !== 'css') {\n return false\n }\n\n return (params.file.indexOf('.styl') !== -1 || params.file === '')\n }\n\n change (params, callback) {\n // only parse .styl and blank files\n if (this.isStylus(params)) {\n window.stylus(params.content, this.options).render((err, res) => {\n if (err) {\n return callback(err, params)\n } else {\n // replace the content with the parsed less\n params.content = res\n }\n\n callback(null, params)\n })\n } else {\n // make sure we callback either way,\n // to not break the pubsoup\n callback(null, params)\n }\n }\n}\n","/* babel plugin\n */\n\nimport * as util from '../util.js'\n\nexport default class PluginBabel {\n constructor (jotted, options) {\n var priority = 20\n\n this.options = util.extend(options, {})\n\n // check if babel is loaded\n if (typeof window.Babel !== 'undefined') {\n // using babel-standalone\n this.babel = window.Babel\n } else if (typeof window.babel !== 'undefined') {\n // using browser.js from babel-core 5.x\n this.babel = {\n transform: window.babel\n }\n } else {\n return\n }\n\n // change js link label\n jotted.$container.querySelector('a[data-jotted-type=\"js\"]').innerHTML = 'ES2015'\n\n jotted.on('change', this.change.bind(this), priority)\n }\n\n change (params, callback) {\n // only parse js content\n if (params.type === 'js') {\n try {\n params.content = this.babel.transform(params.content, this.options).code\n } catch (err) {\n return callback(err, params)\n }\n\n callback(null, params)\n } else {\n // make sure we callback either way,\n // to not break the pubsoup\n callback(null, params)\n }\n }\n}\n","/* markdown plugin\n */\n\nimport * as util from '../util.js'\n\nexport default class PluginMarkdown {\n constructor (jotted, options) {\n var priority = 20\n\n this.options = util.extend(options, {})\n\n // check if marked is loaded\n if (typeof window.marked === 'undefined') {\n return\n }\n\n window.marked.setOptions(options)\n\n // change html link label\n jotted.$container.querySelector('a[data-jotted-type=\"html\"]').innerHTML = 'Markdown'\n\n jotted.on('change', this.change.bind(this), priority)\n }\n\n change (params, callback) {\n // only parse html content\n if (params.type === 'html') {\n try {\n params.content = window.marked(params.content)\n } catch (err) {\n return callback(err, params)\n }\n\n callback(null, params)\n } else {\n // make sure we callback either way,\n // to not break the pubsoup\n callback(null, params)\n }\n }\n}\n","/* console plugin\n */\n\nimport * as util from '../util.js'\n\nexport default class PluginConsole {\n constructor (jotted, options) {\n options = util.extend(options, {\n autoClear: false\n })\n\n var priority = 30\n var history = []\n var historyIndex = 0\n var logCaptureSnippet = `(${this.capture.toString()})();`\n var contentCache = {\n html: '',\n css: '',\n js: ''\n }\n\n // new tab and pane markup\n var $nav = document.createElement('li')\n util.addClass($nav, 'jotted-nav-item jotted-nav-item-console')\n $nav.innerHTML = '<a href=\"#\" data-jotted-type=\"console\">JS Console</a>'\n\n var $pane = document.createElement('div')\n util.addClass($pane, 'jotted-pane jotted-pane-console')\n\n $pane.innerHTML = `\n <div class=\"jotted-console-container\">\n <ul class=\"jotted-console-output\"></ul>\n <form class=\"jotted-console-input\">\n <input type=\"text\">\n </form>\n </div>\n <button class=\"jotted-button jotted-console-clear\">Clear</button>\n `\n\n jotted.$container.appendChild($pane)\n jotted.$container.querySelector('.jotted-nav').appendChild($nav)\n\n var $container = jotted.$container.querySelector('.jotted-console-container')\n var $output = jotted.$container.querySelector('.jotted-console-output')\n var $input = jotted.$container.querySelector('.jotted-console-input input')\n var $inputForm = jotted.$container.querySelector('.jotted-console-input')\n var $clear = jotted.$container.querySelector('.jotted-console-clear')\n\n // submit the input form\n $inputForm.addEventListener('submit', this.submit.bind(this))\n\n // console history\n $input.addEventListener('keydown', this.history.bind(this))\n\n // clear button\n $clear.addEventListener('click', this.clear.bind(this))\n\n // clear the console on each change\n if (options.autoClear === true) {\n jotted.on('change', this.autoClear.bind(this), priority - 1)\n }\n\n // capture the console on each change\n jotted.on('change', this.change.bind(this), priority)\n\n // get log events from the iframe\n window.addEventListener('message', this.getMessage.bind(this))\n\n // plugin public properties\n this.$jottedContainer = jotted.$container\n this.$container = $container\n this.$input = $input\n this.$output = $output\n this.history = history\n this.historyIndex = historyIndex\n this.logCaptureSnippet = logCaptureSnippet\n this.contentCache = contentCache\n this.getIframe = this.getIframe.bind(this)\n }\n\n getIframe () {\n return this.$jottedContainer.querySelector('.jotted-pane-result iframe')\n }\n\n getMessage (e) {\n // only catch messages from the iframe\n if (e.source !== this.getIframe().contentWindow) {\n return\n }\n\n var data = {}\n try {\n data = JSON.parse(e.data)\n } catch (err) {}\n\n if (data.type === 'jotted-console-log') {\n this.log(data.message)\n }\n }\n\n autoClear (params, callback) {\n var snippetlessContent = params.content\n\n // remove the snippet from cached js content\n if (params.type === 'js') {\n snippetlessContent = snippetlessContent.replace(this.logCaptureSnippet, '')\n }\n\n // for compatibility with the Play plugin,\n // clear the console only if something has changed or force rendering.\n if (params.forceRender === true || this.contentCache[params.type] !== snippetlessContent) {\n this.clear()\n }\n\n // always cache the latest content\n this.contentCache[params.type] = snippetlessContent\n\n callback(null, params)\n }\n\n change (params, callback) {\n // only parse js content\n if (params.type !== 'js') {\n // make sure we callback either way,\n // to not break the pubsoup\n return callback(null, params)\n }\n\n // check if the snippet is already added.\n // the Play plugin caches the changed params and triggers change\n // with the cached response, causing the snippet to be inserted\n // multiple times, on each trigger.\n if (params.content.indexOf(this.logCaptureSnippet) === -1) {\n params.content = `${this.logCaptureSnippet}${params.content}`\n }\n\n callback(null, params)\n }\n\n // capture the console.log output\n capture () {\n // IE9 with devtools closed\n if (typeof window.console === 'undefined' || typeof window.console.log === 'undefined') {\n window.console = {\n log: function () {}\n }\n }\n\n // for IE9 support\n var oldConsoleLog = Function.prototype.bind.call(window.console.log, window.console)\n\n window.console.log = function () {\n // send log messages to the parent window\n [].slice.call(arguments).forEach(function (message) {\n window.parent.postMessage(JSON.stringify({\n type: 'jotted-console-log',\n message: message\n }), '*')\n })\n\n // in IE9, console.log is object instead of function\n // https://connect.microsoft.com/IE/feedback/details/585896/console-log-typeof-is-object-instead-of-function\n oldConsoleLog.apply(oldConsoleLog, arguments)\n }\n }\n\n log (message = '', type) {\n var $log = document.createElement('li')\n util.addClass($log, 'jotted-console-log')\n\n if (typeof type !== 'undefined') {\n util.addClass($log, `jotted-console-log-${type}`)\n }\n\n $log.innerHTML = message\n\n this.$output.appendChild($log)\n }\n\n submit (e) {\n var inputValue = this.$input.value.trim()\n\n // if input is blank, do nothing\n if (inputValue === '') {\n return e.preventDefault()\n }\n\n // add run to history\n this.history.push(inputValue)\n this.historyIndex = this.history.length\n\n // log input value\n this.log(inputValue, 'history')\n\n // add return if it doesn't start with it\n if (inputValue.indexOf('return') !== 0) {\n inputValue = 'return ' + inputValue\n }\n\n // show output or errors\n try {\n // run the console input in the iframe context\n var scriptOutput = this.getIframe().contentWindow.eval(`(function() {${inputValue}})()`)\n\n this.log(scriptOutput)\n } catch (err) {\n this.log(err, 'error')\n }\n\n // clear the console value\n this.$input.value = ''\n\n // scroll console pane to bottom\n // to keep the input into view\n this.$container.scrollTop = this.$container.scrollHeight\n\n e.preventDefault()\n }\n\n clear () {\n this.$output.innerHTML = ''\n }\n\n history (e) {\n var UP = 38\n var DOWN = 40\n var gotHistory = false\n var selectionStart = this.$input.selectionStart\n\n // only if we have previous history\n // and the cursor is at the start\n if (e.keyCode === UP && this.historyIndex !== 0 && selectionStart === 0) {\n this.historyIndex--\n gotHistory = true\n }\n\n // only if we have future history\n // and the cursor is at the end\n if (e.keyCode === DOWN && this.historyIndex !== this.history.length - 1 && selectionStart === this.$input.value.length) {\n this.historyIndex++\n gotHistory = true\n }\n\n // only if history changed\n if (gotHistory) {\n this.$input.value = this.history[this.historyIndex]\n }\n }\n}\n","/* play plugin\n * adds a Run button\n */\n\nimport * as util from '../util.js'\n\nexport default class PluginPlay {\n constructor (jotted, options) {\n options = util.extend(options, {\n firstRun: true\n })\n\n var priority = 10\n // cached code\n var cache = {}\n // latest version of the code.\n // replaces the cache when the run button is pressed.\n var code = {}\n\n // set firstRun=false to start with a blank preview.\n // run the real content only after the first Run button press.\n if (options.firstRun === false) {\n cache = {\n html: {\n type: 'html',\n content: ''\n },\n css: {\n type: 'css',\n content: ''\n },\n js: {\n type: 'js',\n content: ''\n }\n }\n }\n\n // run button\n var $button = document.createElement('button')\n $button.className = 'jotted-button jotted-button-play'\n $button.innerHTML = 'Run'\n\n jotted.$container.appendChild($button)\n $button.addEventListener('click', this.run.bind(this))\n\n // capture the code on each change\n jotted.on('change', this.change.bind(this), priority)\n\n // public\n this.cache = cache\n this.code = code\n this.jotted = jotted\n }\n\n change (params, callback) {\n // always cache the latest code\n this.code[params.type] = util.extend(params)\n\n // replace the params with the latest cache\n if (typeof this.cache[params.type] !== 'undefined') {\n callback(null, this.cache[params.type])\n\n // make sure we don't cache forceRender,\n // and send it with each change.\n this.cache[params.type].forceRender = null\n } else {\n // cache the first run\n this.cache[params.type] = util.extend(params)\n\n callback(null, params)\n }\n }\n\n run () {\n // trigger change on each type with the latest code\n for (let type in this.code) {\n this.cache[type] = util.extend(this.code[type], {\n // force rendering on each Run press\n forceRender: true\n })\n\n // trigger the change\n this.jotted.trigger('change', this.cache[type])\n }\n }\n}\n","/* pen plugin\n */\nexport default class PluginPen {\n constructor (jotted, options) {\n // available panes\n let panes = {\n html: { title: 'HTML', classChecker: 'jotted-has-html' },\n css: { title: 'CSS', classChecker: 'jotted-has-css' },\n js: { title: 'JavaScript', classChecker: 'jotted-has-js' },\n console: { title: 'Console', classChecker: 'jotted-plugin-console' }\n }\n\n let $availablePanes = []\n for (let p in panes) {\n if (jotted.$container.classList.contains(panes[p].classChecker)) {\n $availablePanes.push(jotted.$container.querySelector(`.jotted-pane-${p}`))\n }\n }\n\n this.resizablePanes = []\n for (let i = 0; i < $availablePanes.length; i++) {\n let type\n\n for (let j = 0; j < $availablePanes[i].classList.length; j++) {\n if ($availablePanes[i].classList[j].indexOf('jotted-pane-') !== -1) {\n type = $availablePanes[i].classList[j].replace('jotted-pane-', '')\n break\n }\n }\n\n if (!type) {\n continue\n }\n\n let $pane = {\n container: $availablePanes[i],\n expander: undefined\n }\n\n this.resizablePanes.push($pane)\n\n let $paneTitle = document.createElement('div')\n $paneTitle.classList.add('jotted-pane-title')\n $paneTitle.innerHTML = panes[type].title || type\n\n let $paneElement = $availablePanes[i].firstElementChild\n $paneElement.insertBefore($paneTitle, $paneElement.firstChild)\n\n // insert expander element.\n // only panes which have an expander can be shrunk or expanded\n // first pane must not have a expander\n if (i > 0) {\n $pane.expander = document.createElement('div')\n $pane.expander.classList.add('jotted-plugin-pen-expander')\n $pane.expander.addEventListener('mousedown', this.startExpand.bind(this, jotted))\n\n $paneElement.insertBefore($pane.expander, $paneTitle)\n }\n }\n }\n\n startExpand (jotted, event) {\n let $pane = this.resizablePanes\n .filter((pane) => { return pane.expander === event.target })\n .shift()\n\n let $previousPane = this.resizablePanes[this.resizablePanes.indexOf($pane) - 1]\n\n let $relativePixel = 100 / parseInt(window.getComputedStyle($pane.container.parentNode)['width'], 10)\n\n // ugly but reliable & cross-browser way of getting height/width as percentage.\n $pane.container.parentNode.style.display = 'none'\n\n $pane.startX = event.clientX\n $pane.startWidth = parseFloat(window.getComputedStyle($pane.container)['width'], 10)\n $previousPane.startWidth = parseFloat(window.getComputedStyle($previousPane.container)['width'], 10)\n\n $pane.container.parentNode.style.display = ''\n\n $pane.mousemove = this.doDrag.bind(this, $pane, $previousPane, $relativePixel)\n $pane.mouseup = this.stopDrag.bind(this, $pane)\n\n document.addEventListener('mousemove', $pane.mousemove, false)\n document.addEventListener('mouseup', $pane.mouseup, false)\n }\n\n doDrag (pane, previousPane, relativePixel, event) {\n // previous pane new width\n let ppNewWidth = previousPane.startWidth + ((event.clientX - pane.startX) * relativePixel)\n\n // current pane new width\n let cpNewWidth = pane.startWidth - ((event.clientX - pane.startX) * relativePixel)\n\n // contracting a pane is restricted to a min-size of 10% the container's space.\n const PANE_MIN_SIZE = 10 // percentage %\n if (ppNewWidth >= PANE_MIN_SIZE && cpNewWidth >= PANE_MIN_SIZE) {\n pane.container.style.maxWidth = 'none'\n previousPane.container.style.maxWidth = 'none'\n\n previousPane.container.style.width = `${ppNewWidth}%`\n pane.container.style.width = `${cpNewWidth}%`\n }\n }\n\n stopDrag (pane, event) {\n document.removeEventListener('mousemove', pane.mousemove, false)\n document.removeEventListener('mouseup', pane.mouseup, false)\n }\n}\n\n","/* bundle plugins\n */\n\n// register bundled plugins\nimport PluginRender from './plugins/render.js'\nimport PluginScriptless from './plugins/scriptless.js'\n\nimport PluginAce from './plugins/ace.js'\nimport PluginCodeMirror from './plugins/codemirror.js'\nimport PluginLess from './plugins/less.js'\nimport PluginCoffeeScript from './plugins/coffeescript.js'\nimport PluginStylus from './plugins/stylus.js'\nimport PluginBabel from './plugins/babel.js'\nimport PluginMarkdown from './plugins/markdown.js'\nimport PluginConsole from './plugins/console.js'\nimport PluginPlay from './plugins/play.js'\nimport PluginPen from './plugins/pen.js'\n\nexport default function BundlePlugins (jotted) {\n jotted.plugin('render', PluginRender)\n jotted.plugin('scriptless', PluginScriptless)\n\n jotted.plugin('ace', PluginAce)\n jotted.plugin('codemirror', PluginCodeMirror)\n jotted.plugin('less', PluginLess)\n jotted.plugin('coffeescript', PluginCoffeeScript)\n jotted.plugin('stylus', PluginStylus)\n jotted.plugin('babel', PluginBabel)\n jotted.plugin('markdown', PluginMarkdown)\n jotted.plugin('console', PluginConsole)\n jotted.plugin('play', PluginPlay)\n jotted.plugin('pen', PluginPen)\n}\n","/* jotted\n */\n\nimport * as util from './util.js'\nimport * as template from './template.js'\nimport * as plugin from './plugin.js'\nimport PubSoup from './pubsoup.js'\n\nclass Jotted {\n constructor ($jottedContainer, opts) {\n if (!$jottedContainer) {\n throw new Error('Can\\'t find Jotted container.')\n }\n\n // private data\n var _private = {}\n this._get = function (key) {\n return _private[key]\n }\n this._set = function (key, value) {\n _private[key] = value\n return _private[key]\n }\n\n // options\n var options = this._set('options', util.extend(opts, {\n files: [],\n showBlank: false,\n runScripts: true,\n pane: 'result',\n debounce: 250,\n plugins: []\n }))\n\n // the render plugin is mandatory\n options.plugins.push('render')\n\n // use the scriptless plugin if runScripts is false\n if (options.runScripts === false) {\n options.plugins.push('scriptless')\n }\n\n // cached content for the change method.\n this._set('cachedContent', {\n html: null,\n css: null,\n js: null\n })\n\n // PubSoup\n var pubsoup = this._set('pubsoup', new PubSoup())\n\n this._set('trigger', this.trigger())\n this._set('on', function () {\n pubsoup.subscribe.apply(pubsoup, arguments)\n })\n this._set('off', function () {\n pubsoup.unsubscribe.apply(pubsoup, arguments)\n })\n var done = this._set('done', function () {\n pubsoup.done.apply(pubsoup, arguments)\n })\n\n // after all plugins run\n // show errors\n done('change', this.errors.bind(this))\n\n // DOM\n var $container = this._set('$container', $jottedContainer)\n $container.innerHTML = template.container()\n util.addClass($container, template.containerClass())\n\n // default pane\n var paneActive = this._set('paneActive', options.pane)\n util.addClass($container, template.paneActiveClass(paneActive))\n\n // status nodes\n this._set('$status', {})\n\n for (let type of [ 'html', 'css', 'js' ]) {\n this.markup(type)\n }\n\n // textarea change events.\n $container.addEventListener('keyup', util.debounce(this.change.bind(this), options.debounce))\n $container.addEventListener('change', util.debounce(this.change.bind(this), options.debounce))\n\n // pane change\n $container.addEventListener('click', this.pane.bind(this))\n\n // expose public properties\n this.$container = this._get('$container')\n this.on = this._get('on')\n this.off = this._get('off')\n this.done = this._get('done')\n this.trigger = this._get('trigger')\n this.paneActive = this._get('paneActive')\n\n // init plugins\n this._set('plugins', {})\n plugin.init.call(this)\n\n // load files\n for (let type of [ 'html', 'css', 'js' ]) {\n this.load(type)\n }\n\n // show all tabs, even if empty\n if (options.showBlank) {\n for (let type of [ 'html', 'css', 'js' ]) {\n util.addClass($container, template.hasFileClass(type))\n }\n }\n }\n\n findFile (type) {\n var file = {}\n var options = this._get('options')\n\n for (let fileIndex in options.files) {\n let file = options.files[fileIndex]\n if (file.type === type) {\n return file\n }\n }\n\n return file\n }\n\n markup (type) {\n var $container = this._get('$container')\n var $parent = $container.querySelector(`.jotted-pane-${type}`)\n // create the markup for an editor\n var file = this.findFile(type)\n\n var $editor = document.createElement('div')\n $editor.innerHTML = template.editorContent(type, file.url)\n $editor.className = template.editorClass(type)\n\n $parent.appendChild($editor)\n\n // get the status node\n this._get('$status')[type] = $parent.querySelector('.jotted-status')\n\n // if we have a file for the current type\n if (typeof file.url !== 'undefined' || typeof file.content !== 'undefined') {\n // add the has-type class to the container\n util.addClass($container, template.hasFileClass(type))\n }\n }\n\n load (type) {\n // create the markup for an editor\n var file = this.findFile(type)\n var $textarea = this._get('$container').querySelector(`.jotted-pane-${type} textarea`)\n\n // file as string\n if (typeof file.content !== 'undefined') {\n this.setValue($textarea, file.content)\n } else if (typeof file.url !== 'undefined') {\n // show loading message\n this.status('loading', [ template.statusLoading(file.url) ], {\n type: type,\n file: file\n })\n\n // file as url\n util.fetch(file.url, (err, res) => {\n if (err) {\n // show load errors\n this.status('error', [ template.statusFetchError(err) ], {\n type: type\n })\n\n return\n }\n\n // clear the loading status\n this.clearStatus('loading', {\n type: type\n })\n\n this.setValue($textarea, res)\n })\n } else {\n // trigger a change event on blank editors,\n // for editor plugins to catch.\n // (eg. the codemirror and ace plugins attach the change event\n // only after the initial change/load event)\n this.setValue($textarea, '')\n }\n }\n\n setValue ($textarea, val) {\n $textarea.value = val\n\n // trigger change event, for initial render\n this.change({\n target: $textarea\n })\n }\n\n change (e) {\n var type = util.data(e.target, 'jotted-type')\n if (!type) {\n return\n }\n\n // don't trigger change if the content hasn't changed.\n // eg. when blurring the textarea.\n var cachedContent = this._get('cachedContent')\n if (cachedContent[type] === e.target.value) {\n return\n }\n\n // cache latest content\n cachedContent[type] = e.target.value\n\n // trigger the change event\n this.trigger('change', {\n type: type,\n file: util.data(e.target, 'jotted-file'),\n content: cachedContent[type]\n })\n }\n\n errors (errs, params) {\n this.status('error', errs, params)\n }\n\n pane (e) {\n if (!util.data(e.target, 'jotted-type')) {\n return\n }\n\n var $container = this._get('$container')\n var paneActive = this._get('paneActive')\n util.removeClass($container, template.paneActiveClass(paneActive))\n\n paneActive = this._set('paneActive', util.data(e.target, 'jotted-type'))\n util.addClass($container, template.paneActiveClass(paneActive))\n\n e.preventDefault()\n }\n\n status (statusType = 'error', messages = [], params = {}) {\n if (!messages.length) {\n return this.clearStatus(statusType, params)\n }\n\n var $status = this._get('$status')\n\n // add error/loading class to status\n util.addClass($status[params.type], template.statusClass(statusType))\n\n util.addClass(this._get('$container'), template.statusActiveClass(params.type))\n\n var markup = ''\n messages.forEach(function (err) {\n markup += template.statusMessage(err)\n })\n\n $status[params.type].innerHTML = markup\n }\n\n clearStatus (statusType, params) {\n var $status = this._get('$status')\n\n util.removeClass($status[params.type], template.statusClass(statusType))\n util.removeClass(this._get('$container'), template.statusActiveClass(params.type))\n $status[params.type].innerHTML = ''\n }\n\n // debounced trigger method\n // custom debouncer to use a different timer per type\n trigger () {\n var options = this._get('options')\n var pubsoup = this._get('pubsoup')\n\n // allow disabling the trigger debouncer.\n // mostly for testing: when trigger events happen rapidly\n // multiple events of the same type would be caught once.\n if (options.debounce === false) {\n return function () {\n pubsoup.publish.apply(pubsoup, arguments)\n }\n }\n\n // cooldown timer\n var cooldown = {}\n // multiple calls\n var multiple = {}\n\n return function (topic, { type = 'default' } = {}) {\n if (cooldown[type]) {\n // if we had multiple calls before the cooldown\n multiple[type] = true\n } else {\n // trigger immediately once cooldown is over\n pubsoup.publish.apply(pubsoup, arguments)\n }\n\n clearTimeout(cooldown[type])\n\n // set cooldown timer\n cooldown[type] = setTimeout(() => {\n // if we had multiple calls before the cooldown,\n // trigger the function again at the end.\n if (multiple[type]) {\n pubsoup.publish.apply(pubsoup, arguments)\n }\n\n multiple[type] = null\n cooldown[type] = null\n }, options.debounce)\n }\n }\n}\n\n// register plugins\nJotted.plugin = function () {\n return plugin.register.apply(this, arguments)\n}\n\n// register bundled plugins\nimport BundlePlugins from './bundle-plugins.js'\nBundlePlugins(Jotted)\n\nexport default Jotted\n"],"names":["extend","obj","defaults","extended","Object","keys","forEach","key","fetch","url","callback","xhr","window","XMLHttpRequest","open","responseType","onload","status","responseText","onerror","err","send","runCallback","index","params","arr","errors","res","push","length","seqRunner","apply","arguments","seq","debounce","fn","delay","cooldown","multiple","clearTimeout","setTimeout","hasClass","node","className","tempClass","indexOf","addClass","removeClass","spaceBefore","spaceAfter","replace","data","attr","getAttribute","defaultModemap","getMode","type","file","customModemap","modemap","keyLength","slice","container","paneActiveClass","containerClass","hasFileClass","editorClass","editorContent","fileUrl","statusMessage","statusClass","statusActiveClass","pluginClass","name","statusLoading","statusFetchError","plugins","find","id","pluginIndex","plugin","_id","Error","register","init","_get","Plugin","pluginName","pluginOptions","options","util","template","PubSoup","topics","callbacks","query","topic","subscriber","priority","foundTopic","_priority","sort","a","b","call","splice","remover","runList","runCallbacks","c","PluginRender","jotted","supportSrcdoc","document","createElement","$resultFrame","$container","querySelector","frameContent","content","html","css","js","addEventListener","domready","bind","on","change","lastCallback","style","body","script","oldFrameContent","forceRender","$newResultFrame","parentNode","replaceChild","contentWindow","write","close","setAttribute","jsUrl","location","e","source","JSON","parse","PluginScriptless","runScriptTypes","fragment","innerHTML","typeAttr","$scripts","querySelectorAll","i","removeChild","PluginAce","editor","ace","$editors","$textarea","$aceContainer","appendChild","edit","editorOptions","getSession","setMode","setOptions","$blockScrolling","Infinity","trigger","aceEditor","setValue","editorChange","getValue","PluginCodeMirror","lineNumbers","CodeMirror","fromTextArea","setOption","cmEditor","PluginLess","less","isLess","render","PluginCoffeeScript","CoffeeScript","isCoffee","compile","PluginStylus","stylus","isStylus","PluginBabel","Babel","babel","transform","code","PluginMarkdown","marked","PluginConsole","autoClear","history","historyIndex","logCaptureSnippet","capture","toString","contentCache","$nav","$pane","$output","$input","$inputForm","$clear","submit","clear","getMessage","$jottedContainer","getIframe","log","message","snippetlessContent","console","oldConsoleLog","Function","prototype","parent","postMessage","stringify","$log","inputValue","value","trim","preventDefault","scriptOutput","eval","scrollTop","scrollHeight","UP","DOWN","gotHistory","selectionStart","keyCode","PluginPlay","firstRun","cache","$button","run","PluginPen","panes","title","classChecker","$availablePanes","p","classList","contains","resizablePanes","j","expander","undefined","$paneTitle","add","$paneElement","firstElementChild","insertBefore","firstChild","startExpand","event","filter","pane","target","shift","$previousPane","$relativePixel","parseInt","getComputedStyle","display","startX","clientX","startWidth","parseFloat","mousemove","doDrag","mouseup","stopDrag","previousPane","relativePixel","ppNewWidth","cpNewWidth","PANE_MIN_SIZE","maxWidth","width","removeEventListener","BundlePlugins","Jotted","opts","_private","_set","files","showBlank","runScripts","pubsoup","subscribe","unsubscribe","done","paneActive","markup","off","load","fileIndex","$parent","findFile","$editor","clearStatus","val","cachedContent","errs","statusType","messages","$status","publish"],"mappings":"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"}