This repository has been archived by the owner on May 3, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 127
/
app.ef2aa1b5.js.map
1 lines (1 loc) · 114 KB
/
app.ef2aa1b5.js.map
1
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/utils.js","webpack:///./src/components/loader/Loader.vue?7af4","webpack:///./src/components/warningOverlay/WarningOverlay.vue?8966","webpack:///./src/views/home/logo-128.png","webpack:///./src/notebook.js","webpack:///./src/views/home/RecentItem.vue?992b","webpack:///./src/App.vue?cf1c","webpack:///./src/components/warningOverlay/WarningOverlay.vue?2f68","webpack:///src/components/warningOverlay/WarningOverlay.vue","webpack:///./src/components/warningOverlay/WarningOverlay.vue?52f4","webpack:///./src/components/warningOverlay/WarningOverlay.vue","webpack:///./src/components/errorOverlay/ErrorOverlay.vue?22c1","webpack:///src/components/errorOverlay/ErrorOverlay.vue","webpack:///./src/components/errorOverlay/ErrorOverlay.vue?b3ce","webpack:///./src/components/errorOverlay/ErrorOverlay.vue","webpack:///./src/components/lostConnectionOverlay/LostConnectionOverlay.vue?4c1e","webpack:///src/components/lostConnectionOverlay/LostConnectionOverlay.vue","webpack:///./src/components/lostConnectionOverlay/LostConnectionOverlay.vue?2bb6","webpack:///./src/components/lostConnectionOverlay/LostConnectionOverlay.vue","webpack:///src/App.vue","webpack:///./src/App.vue?382d","webpack:///./src/App.vue?a286","webpack:///./src/views/home/Home.vue?b292","webpack:///./src/views/home/RecentItem.vue?f406","webpack:///src/views/home/RecentItem.vue","webpack:///./src/views/home/RecentItem.vue?82a1","webpack:///./src/views/home/RecentItem.vue","webpack:///./src/views/home/RemoteConnect.vue?64ab","webpack:///src/views/home/RemoteConnect.vue","webpack:///./src/views/home/RemoteConnect.vue?01d0","webpack:///./src/views/home/RemoteConnect.vue","webpack:///src/views/home/Home.vue","webpack:///./src/views/home/Home.vue?47a0","webpack:///./src/views/home/Home.vue","webpack:///./src/router.js","webpack:///./src/main.js","webpack:///./src/stepper.js","webpack:///./src/App.vue?f711","webpack:///./src/views/home/RemoteConnect.vue?e788","webpack:///./src/exceptions.js","webpack:///./src/components/lostConnectionOverlay/LostConnectionOverlay.vue?e539","webpack:///./src/views/home/Home.vue?4bdf","webpack:///./src/components/spinner/Spinner.vue?d4ea","webpack:///src/components/spinner/Spinner.vue","webpack:///./src/components/spinner/Spinner.vue?1bf0","webpack:///./src/components/spinner/Spinner.vue","webpack:///./src/http.js","webpack:///./src/store.js","webpack:///./src/components/spinner/Spinner.vue?cbe1","webpack:///./src/components/loader/Loader.vue?505e","webpack:///src/components/loader/Loader.vue","webpack:///./src/components/loader/Loader.vue?2ee0","webpack:///./src/components/loader/Loader.vue","webpack:///./src/components/errorOverlay/ErrorOverlay.vue?493d"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","thenWait","elapsedMilliseconds","args","cacheBuster","Math","round","Date","getTime","getUrl","origin","location","myPath","pathname","replace","getViewUrl","view","store","getters","dataRoot","encodeURIComponent","id","getIframe","querySelector","refresh","iframe","contentWindow","reload","getCauldronObject","CAULDRON","ignore","scrollToStep","stepName","position","cauldron","scrollToAnchor","steps","project","targets","filter","isRunning","status","running","runningStepName","selected","followSteps","defaultPosition","filterStepChanges","changes","previousStepChanges","previous","newBody","step","body","oldBody","newTimestamp","timestamp","oldTimestamp","action","applyStepModifications","renames","newChanges","isUnmodified","keys","processStepRenames","processStepUpdates","updatedChanges","reduce","assign","combinedChanges","commit","utils","targetSteps","concat","reverse","hasError","onLoaded","waitCount","retryCount","interval","setInterval","on","ready","RUNNING","clearInterval","warn","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","warning","onDismissWarning","_e","onDismissError","loadingMessage","staticRenderFns","_v","_s","onDismiss","$emit","props","methods","component","_m","items","warnings","$store","errors","recordResponse","kind","responseOrError","recentResponses","updateStatusLoop","isStatusDirty","timeoutHandle","isNotebookLoading","http","showLostConnection","mounted","beforeDestroy","components","Loader","LostConnectionOverlay","ErrorOverlay","WarningOverlay","computed","logo","info","version","createProject","openProjectBrowser","recentProjects","_l","item","onProjectClick","openProject","directory","short","directives","rawName","placement","expression","modified","display","elapsed","$event","stopPropagation","removeFromRecent","class","connected","icon","$router","Vue","use","Router","base","process","routes","path","Home","VueTippy","TippyComponent","config","productionTip","router","render","h","App","$mount","getStep","matches","getSelectedStep","isStepQueued","queuedStepsToRun","isStepRunning","queueStepToRun","updated","removeStepFromQueue","queue","index","indexOf","addToQueue","stepNames","newSteps","setStepRunning","clearQueue","IGNORED_ERROR_CODES","addErrors","existing","existingCodes","map","newErrors","addError","addWarnings","existingWarnings","newWarnings","addWarning","size","themingClasses","thickness","half","radius","extent","floor","max","min","theme","statusCache","lastInvocationTimestamp","markStatusDirty","response","responseErrors","exceptions","responseWarnings","createGateway","root","axios","baseURL","headers","endpoint","catch","post","execute","command","executeAsync","handleStepRunningError","stepChanges","step_changes","hasRunningStepError","success","has_error","stepper","runStep","payload","notebook","step_renames","updateStatus","debounce","force","lastInvokedMillis","forceArg","lastTimestamp","last_timestamp","remote","isActiveAsync","is_active_async","lastHash","hash","runningSteps","syncing","sync","active","wasRunning","shouldBeRunning","previousRunningStepName","runningStepPossibilities","newRunningStepName","choice","shouldRunNextStep","abortExecution","createEmptyStatus","Vuex","Store","state","savingFile","loadingMessages","mutations"],"mappings":"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","file":"assets/js/app.ef2aa1b5.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"assets/js/\" + ({\"create~project\":\"create~project\",\"create\":\"create\",\"project\":\"project\"}[chunkId]||chunkId) + \".\" + {\"create~project\":\"1f76fa3c\",\"create\":\"1a08fe47\",\"project\":\"91478125\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"create~project\":1,\"create\":1,\"project\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"assets/css/\" + ({\"create~project\":\"create~project\",\"create\":\"create\",\"project\":\"project\"}[chunkId]||chunkId) + \".\" + {\"create~project\":\"e450811e\",\"create\":\"3d647978\",\"project\":\"fcf76b9e\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/v1/app/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","\n\nfunction thenWait(elapsedMilliseconds, args) {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(args);\n }, elapsedMilliseconds);\n });\n}\n\nexport default { thenWait };\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loader.vue?vue&type=style&index=0&id=d43f3f76&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loader.vue?vue&type=style&index=0&id=d43f3f76&scoped=true&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WarningOverlay.vue?vue&type=style&index=0&id=15015cde&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WarningOverlay.vue?vue&type=style&index=0&id=15015cde&scoped=true&lang=scss&\"","module.exports = __webpack_public_path__ + \"assets/img/logo-128.a32de47b.png\";","import utils from './utils';\nimport store from './store';\n\nlet cacheBuster = Math.round((new Date()).getTime() / 1000);\n\n/**\n * The URL to load as part of displaying the project.\n */\nfunction getUrl() {\n const { origin } = window.location;\n const myPath = window.location.pathname.replace('app/project', 'notebook');\n return `${origin}${myPath}/display.html?no-cache=${cacheBuster}`;\n}\n\n/**\n * The URL to display for showing viewer files within the UI.\n *\n * @returns {string}\n */\nfunction getViewUrl() {\n const { view } = store.getters;\n if (!view) {\n return '';\n }\n\n const { origin } = window.location;\n const myPath = window.location.pathname.replace('/app', '');\n const dataRoot = encodeURIComponent(`${myPath}/cache/${view.id}`);\n return `${origin}${myPath}/notebook/project.html?no-cache=${cacheBuster}&data_root=${dataRoot}`;\n}\n\nfunction getIframe() {\n return document.querySelector('.Notebook__frame');\n}\n\nfunction refresh() {\n cacheBuster = Math.round((new Date()).getTime() / 1000);\n const iframe = getIframe();\n if (iframe) {\n iframe.contentWindow.location.reload();\n }\n}\n\nfunction getCauldronObject() {\n try {\n const iframe = getIframe();\n return ((iframe || {}).contentWindow || {}).CAULDRON;\n } catch (ignore) {\n return null;\n }\n}\n\nfunction scrollToStep(stepName, position) {\n const cauldron = getCauldronObject();\n if (!cauldron) {\n return;\n }\n\n if (stepName) {\n cauldron.scrollToAnchor(stepName, position);\n return;\n }\n\n // Find the currently running AND selected step if it exists. That will be\n // where the default focusing will be applied.\n const steps = (store.getters.project || {}).steps || [];\n const targets = steps.filter((s) => {\n const isRunning = s.status.running || s.name === store.getters.runningStepName;\n return isRunning && (s.status.selected || store.getters.followSteps);\n });\n\n if (targets.length === 0) {\n return;\n }\n\n const defaultPosition = targets[0].status.error ? 'error' : 'end';\n cauldron.scrollToAnchor(targets[0].name, position || defaultPosition);\n}\n\n/**\n * We're only interested in step changes that are actually changes and that\n * occur more recently than the previous one. This filters down the source\n * changes into only significant and meaningful ones.\n *\n * @param changes\n * The source changes to filter down to meaningful ones.\n * @returns {*}\n * An array containing the significant changes.\n */\nfunction filterStepChanges(changes) {\n const { previousStepChanges } = store.getters;\n\n return changes.filter((c) => {\n const previous = previousStepChanges[c.name] || {};\n\n const newBody = (c.step || {}).body || '';\n const oldBody = (previous.step || {}).body || '';\n\n // Older Cauldron versions did not all have timestamps in changes, so we\n // use defaults here just in case.\n const newTimestamp = c.timestamp || 1;\n const oldTimestamp = previous.timestamp || 0;\n\n // If there is no step it's a remove operation and should be handled.\n // Otherwise, make sure the update is meaningful.\n return c.action === 'added'\n || c.action === 'removed'\n || (newBody !== oldBody && newTimestamp > oldTimestamp);\n });\n}\n\n/**\n *\n * @param renames\n * @param changes\n * @param stepName\n * @returns {Promise<void>|Promise<T>}\n */\nfunction applyStepModifications(renames, changes, stepName) {\n const newChanges = filterStepChanges(changes || []);\n const isUnmodified = (\n Object.keys(renames || {}).length === 0\n && (newChanges || []).length === 0\n );\n\n if (isUnmodified) {\n return Promise.resolve();\n }\n\n const cauldron = getCauldronObject();\n if (!cauldron) {\n return Promise.resolve();\n }\n\n return cauldron.processStepRenames(renames || {})\n .then(() => {\n cauldron.processStepUpdates(newChanges);\n\n // Update changes in the store for future reference to prevent insignificant\n // changes to steps where the body does not change from updating the dom and\n // wasting rendering resources.\n const { previousStepChanges } = store.getters;\n const updatedChanges = newChanges\n .reduce((all, c) => Object.assign(all, { [c.name]: c }), {});\n const combinedChanges = Object.assign({}, previousStepChanges, updatedChanges);\n store.commit('previousStepChanges', combinedChanges);\n\n return utils.thenWait(300);\n })\n .then(() => {\n if (!stepName && !store.getters.followSteps) {\n // Don't follow steps automatically if the `followSteps` setting isn't true.\n return;\n }\n\n const steps = (store.getters.project || {}).steps || [];\n const targetSteps = steps\n .filter(s => s.name === stepName)\n .concat(changes.filter(c => c.step).reverse());\n\n if (targetSteps.length === 0) {\n return;\n }\n\n const step = targetSteps[0];\n const hasError = (step.status || {}).error;\n scrollToStep(step.name, hasError ? 'error' : 'end');\n });\n}\n\nfunction onLoaded() {\n return new Promise((resolve, reject) => {\n // This first phase waits until the page has loaded to the point of\n // the html script tag having run, which sets up the CAULDRON obect\n // for initial use.\n let waitCount = 0;\n let retryCount = 0;\n const interval = setInterval(\n () => {\n const cauldron = getCauldronObject();\n const { project, view } = store.getters;\n\n if (!project && !view) {\n clearInterval(interval);\n reject();\n return;\n }\n\n // Wait until the cauldron object first becomes available and refresh if\n // it doesn't become available in a reasonable amount of time.\n if (!cauldron || !cauldron.on || !cauldron.on.ready) {\n waitCount += 1;\n if (waitCount > 10) {\n waitCount = 0;\n console.warn('Notebook load wait timeout reached. Refreshing...');\n refresh();\n }\n\n return;\n }\n\n // If cauldron enters the RUNNING state, which means that the main function\n // has been called, move onto the next on-ready phase.\n if (cauldron.RUNNING) {\n clearInterval(interval);\n cauldron.on.ready.then(() => resolve(cauldron));\n return;\n }\n\n // If cauldron has become available but main has not started running yet,\n // keep checking until too much time has passed after which the page should\n // be refreshed to avoid a failure to load.\n retryCount += 1;\n if (retryCount > 10) {\n retryCount = 0;\n console.warn('Notebook load running timeout reached. Refreshing...');\n refresh();\n }\n },\n 200,\n );\n });\n}\n\nexport default {\n applyStepModifications,\n getUrl,\n getViewUrl,\n getCauldronObject,\n getIframe,\n refresh,\n onLoaded,\n scrollToStep,\n};\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecentItem.vue?vue&type=style&index=0&id=48a6cff4&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecentItem.vue?vue&type=style&index=0&id=48a6cff4&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"App\",attrs:{\"id\":\"app\"}},[_c('router-view',{staticClass:\"App__routerView\"}),(_vm.warning)?_c('warning-overlay',{attrs:{\"warning\":_vm.warning},on:{\"close\":_vm.onDismissWarning}}):_vm._e(),(_vm.error)?_c('error-overlay',{attrs:{\"error\":_vm.error},on:{\"close\":_vm.onDismissError}}):_vm._e(),(_vm.showLostConnection)?_c('lost-connection-overlay'):_vm._e(),(_vm.loadingMessage.id)?_c('loader',{attrs:{\"message\":_vm.loadingMessage.message}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"WarningOverlay\"},[_c('div',{staticClass:\"WarningOverlay__focus\"},[_c('div',{staticClass:\"WarningOverlay__headerBox\"},[_c('i',{staticClass:\"WarningOverlay__icon material-icons md-36\"},[_vm._v(\"warning\")]),_c('div',{staticClass:\"WarningOverlay__titleBox\"},[_c('div',{staticClass:\"WarningOverlay__titleHeader\"},[_vm._v(\"Warning\")]),_c('div',{staticClass:\"WarningOverlay__title\"},[_vm._v(_vm._s(_vm.warning.code))])])]),_c('div',{staticClass:\"WarningOverlay__infoBox\"},[_c('div',{staticClass:\"WarningOverlay__message\"},[_vm._v(_vm._s(_vm.warning.message))])]),_c('div',{staticClass:\"WarningOverlay__buttonBox\"},[_c('div',{staticClass:\"WarningOverlay__spacer\"}),_c('button',{staticClass:\"WarningOverlay__button button is-small is-dark\",on:{\"click\":_vm.onDismiss}},[_vm._v(\"OK\")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template lang=\"pug\">\n .WarningOverlay\n .WarningOverlay__focus\n .WarningOverlay__headerBox\n i.WarningOverlay__icon.material-icons.md-36 warning\n .WarningOverlay__titleBox\n .WarningOverlay__titleHeader Warning\n .WarningOverlay__title {{ warning.code }}\n .WarningOverlay__infoBox\n .WarningOverlay__message {{ warning.message }}\n .WarningOverlay__buttonBox\n .WarningOverlay__spacer\n button.WarningOverlay__button.button.is-small.is-dark(@click=\"onDismiss\") OK\n</template>\n\n<script>\nfunction data() {\n return {};\n}\n\nfunction onDismiss() {\n this.$emit('close');\n}\n\nexport default {\n name: 'WarningOverlay',\n props: {\n warning: { type: Object, default: () => {} },\n },\n data,\n methods: { onDismiss },\n};\n</script>\n\n<style scoped lang=\"scss\">\n @import '../../Variables';\n\n .WarningOverlay {\n font-family: \"Source Sans Pro Light\", sans-serif;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: $warning-z-index;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: rgb(199, 170, 106);\n color: #28251c;\n\n &__headerBox {\n display: flex;\n align-items: center;\n margin-bottom: 0.5em;\n line-height: 1.0em;\n }\n\n &__titleBox {\n padding-left: 0.5em;\n }\n\n &__titleHeader {\n font-size: 0.8em;\n opacity: 0.75;\n }\n\n &__title {\n font-size: 1.2em;\n font-family: monospace;\n }\n\n &__message {\n max-width: 640px;\n }\n\n &__buttonBox {\n margin-top: 0.75em;\n display: flex;\n }\n\n &__spacer {\n flex: 1;\n }\n }\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WarningOverlay.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WarningOverlay.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WarningOverlay.vue?vue&type=template&id=15015cde&scoped=true&lang=pug&\"\nimport script from \"./WarningOverlay.vue?vue&type=script&lang=js&\"\nexport * from \"./WarningOverlay.vue?vue&type=script&lang=js&\"\nimport style0 from \"./WarningOverlay.vue?vue&type=style&index=0&id=15015cde&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"15015cde\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ErrorOverlay\"},[_c('div',{staticClass:\"ErrorOverlay__focus\"},[_c('div',{staticClass:\"ErrorOverlay__headerBox\"},[_c('i',{staticClass:\"ErrorOverlay__icon material-icons md-36\"},[_vm._v(\"error_outline\")]),_c('div',{staticClass:\"ErrorOverlay__titleBox\"},[_c('div',{staticClass:\"ErrorOverlay__titleHeader\"},[_vm._v(\"Error\")]),_c('div',{staticClass:\"ErrorOverlay__title\"},[_vm._v(_vm._s(_vm.error.code))])])]),_c('div',{staticClass:\"ErrorOverlay__infoBox\"},[_c('div',{staticClass:\"ErrorOverlay__message\"},[_vm._v(_vm._s(_vm.error.message))])]),_c('div',{staticClass:\"ErrorOverlay__buttonBox\"},[_c('div',{staticClass:\"ErrorOverlay__spacer\"}),_c('button',{staticClass:\"ErrorOverlay__button button is-small\",on:{\"click\":_vm.onDismiss}},[_vm._v(\"OK\")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template lang=\"pug\">\n .ErrorOverlay\n .ErrorOverlay__focus\n .ErrorOverlay__headerBox\n i.ErrorOverlay__icon.material-icons.md-36 error_outline\n .ErrorOverlay__titleBox\n .ErrorOverlay__titleHeader Error\n .ErrorOverlay__title {{ error.code }}\n .ErrorOverlay__infoBox\n .ErrorOverlay__message {{ error.message }}\n .ErrorOverlay__buttonBox\n .ErrorOverlay__spacer\n button.ErrorOverlay__button.button.is-small(@click=\"onDismiss\") OK\n</template>\n\n<script>\nfunction data() {\n return {};\n}\n\nfunction onDismiss() {\n this.$emit('close');\n}\n\nexport default {\n name: 'ErrorOverlay',\n props: {\n error: { type: Object, default: () => {} },\n },\n data,\n methods: { onDismiss },\n};\n</script>\n\n<style scoped lang=\"scss\">\n @import '../../Variables';\n\n .ErrorOverlay {\n font-family: \"Source Sans Pro Light\", sans-serif;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: $error-z-index;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: rgb(128, 75, 72);\n color: white;\n\n &__headerBox {\n display: flex;\n align-items: center;\n margin-bottom: 0.5em;\n line-height: 1.0em;\n }\n\n &__titleBox {\n padding-left: 0.5em;\n }\n\n &__titleHeader {\n font-size: 0.8em;\n opacity: 0.5;\n }\n\n &__title {\n font-size: 1.2em;\n font-family: monospace;\n }\n\n &__message {\n max-width: 640px;\n }\n\n &__buttonBox {\n margin-top: 0.75em;\n display: flex;\n }\n\n &__spacer {\n flex: 1;\n }\n }\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorOverlay.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorOverlay.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ErrorOverlay.vue?vue&type=template&id=1dde40ec&scoped=true&lang=pug&\"\nimport script from \"./ErrorOverlay.vue?vue&type=script&lang=js&\"\nexport * from \"./ErrorOverlay.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ErrorOverlay.vue?vue&type=style&index=0&id=1dde40ec&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1dde40ec\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"LostConnectionOverlay\"},[_c('div',{staticClass:\"LostConnectionOverlay__focus\"},[_c('div',{staticClass:\"LostConnectionOverlay__headerBox\"},[_c('i',{staticClass:\"LostConnectionOverlay__icon material-icons md-36\"},[_vm._v(\"signal_wifi_off\")]),_c('div',{staticClass:\"LostConnectionOverlay__titleBox\"},[_c('div',{staticClass:\"LostConnectionOverlay__titleHeader\"},[_vm._v(\"No Response\")]),_c('div',{staticClass:\"LostConnectionOverlay__title\"},[_vm._v(\"Lost Kernel Connection\")])])]),_c('div',{staticClass:\"LostConnectionOverlay__infoBox\"},[_c('div',{staticClass:\"LostConnectionOverlay__message\"},[_vm._v(\"Trying to re-establish communication with the Cauldron kernel...\")])])])])}]\n\nexport { render, staticRenderFns }","<template lang=\"pug\">\n .LostConnectionOverlay\n .LostConnectionOverlay__focus\n .LostConnectionOverlay__headerBox\n i.LostConnectionOverlay__icon.material-icons.md-36 signal_wifi_off\n .LostConnectionOverlay__titleBox\n .LostConnectionOverlay__titleHeader No Response\n .LostConnectionOverlay__title Lost Kernel Connection\n .LostConnectionOverlay__infoBox\n .LostConnectionOverlay__message\n | Trying to re-establish communication with the Cauldron kernel...\n</template>\n\n<script>\nexport default {\n name: 'LostConnectionOverlay',\n};\n</script>\n\n<style scoped lang=\"scss\">\n @import '../../Variables';\n\n .LostConnectionOverlay {\n font-family: \"Source Sans Pro Light\", sans-serif;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: $lost-connect-z-index;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: rgb(215, 215, 215);\n color: #6e6e6e;\n\n &__headerBox {\n display: flex;\n align-items: center;\n margin-bottom: 0.5em;\n line-height: 1.0em;\n }\n\n &__titleBox {\n padding-left: 0.5em;\n }\n\n &__titleHeader {\n font-size: 0.8em;\n opacity: 0.75;\n }\n\n &__title {\n font-size: 1.2em;\n font-family: monospace;\n }\n\n &__message {\n max-width: 640px;\n }\n }\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LostConnectionOverlay.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LostConnectionOverlay.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LostConnectionOverlay.vue?vue&type=template&id=73a56477&scoped=true&lang=pug&\"\nimport script from \"./LostConnectionOverlay.vue?vue&type=script&lang=js&\"\nexport * from \"./LostConnectionOverlay.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LostConnectionOverlay.vue?vue&type=style&index=0&id=73a56477&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"73a56477\",\n null\n \n)\n\nexport default component.exports","<template lang=\"pug\">\n #app.App\n router-view.App__routerView\n warning-overlay(v-if=\"warning\" :warning=\"warning\" @close=\"onDismissWarning\")\n error-overlay(v-if=\"error\" :error=\"error\" @close=\"onDismissError\")\n lost-connection-overlay(v-if=\"showLostConnection\")\n loader(v-if=\"loadingMessage.id\", :message=\"loadingMessage.message\")\n</template>\n\n<script>\nimport http from './http';\nimport WarningOverlay from './components/warningOverlay/WarningOverlay.vue';\nimport ErrorOverlay from './components/errorOverlay/ErrorOverlay.vue';\nimport exceptions from './exceptions';\nimport LostConnectionOverlay from './components/lostConnectionOverlay/LostConnectionOverlay.vue';\nimport utils from './utils';\nimport Loader from './components/loader/Loader.vue';\n\nconst SUCCESS = 'success';\nconst FAILED = 'failure';\nconst LOST = 'lost';\n\nfunction loadingMessage() {\n const items = this.$store.getters.loadingMessages || [];\n return items.length > 0 ? items.splice(-1)[0] : {};\n}\n\nfunction warning() {\n const { warnings } = this.$store.getters;\n return warnings.length < 1 ? null : warnings[0];\n}\n\nfunction onDismissWarning() {\n const warnings = this.$store.getters.warnings.concat();\n\n if (warnings.length < 1) {\n return;\n }\n\n warnings.shift();\n this.$store.commit('warnings', warnings);\n}\n\nfunction error() {\n const { errors } = this.$store.getters;\n return errors.length < 1 ? null : errors[0];\n}\n\n/**\n *\n */\nfunction onDismissError() {\n const errors = this.$store.getters.errors.concat();\n\n if (errors.length < 1) {\n return;\n }\n\n errors.shift();\n this.$store.commit('errors', errors);\n}\n\nfunction recordResponse(kind, responseOrError) {\n this.recentResponses.push({ kind, responseOrError, success: kind === SUCCESS });\n if (this.recentResponses.length > 50) {\n this.recentResponses.shift();\n }\n return responseOrError;\n}\n\nfunction updateStatusLoop() {\n const {\n isStatusDirty,\n isNotebookLoading,\n errors,\n warnings,\n } = this.$store.getters;\n\n // If an error or a warning is being displayed in the UI, do not continue with\n // the status update. This prevents background UI behaviors from going on while\n // the error or warnings are being displayed. Notably, the continuing of running\n // future steps in the queue.\n if (errors.length > 0 || warnings.length > 0) {\n if (!isStatusDirty) {\n this.$store.commit('isStatusDirty', true);\n }\n\n clearTimeout(this.timeoutHandle);\n this.timeoutHandle = setTimeout(this.updateStatusLoop, 100);\n return Promise.resolve();\n }\n\n // If the notebook display is in the process of loading, don't update status\n // as that just competes with the notebook loading process and UI state\n // can't change while the notebook display is loading anyway.\n if (isNotebookLoading) {\n clearTimeout(this.timeoutHandle);\n this.timeoutHandle = setTimeout(this.updateStatusLoop, 200);\n return Promise.resolve();\n }\n\n // Clear the dirty status if it is set as part of this update operation.\n if (isStatusDirty) {\n this.$store.commit('isStatusDirty', false);\n }\n\n const debounce = this.$store.getters.running ? 500 : 1000;\n return http.updateStatus(isStatusDirty ? 0 : debounce)\n .then((response) => {\n if (response.data.success) {\n this.recordResponse(SUCCESS, response);\n return response;\n }\n\n const codes = response.data.errors.map(e => e.code);\n if (codes.indexOf('LOST_REMOTE_CONNECTION') !== -1) {\n return this.recordResponse(LOST, response);\n }\n\n this.recordResponse(FAILED, response);\n console.error('Failed update response', response.data);\n return response;\n })\n .catch((e) => {\n // https://github.com/axios/axios#handling-errors\n if (!e.request) {\n this.recordResponse(FAILED, e);\n exceptions.addError({\n code: 'UNKNOWN_ERROR',\n message: 'Malformed request attempt has halted communication with the kernel.',\n });\n console.warn(e);\n return Promise.resolve();\n }\n\n if (e.code === 'ECONNABORTED' || (e.response || {}).status === 408) {\n this.recordResponse(LOST, e);\n return utils.thenWait(200);\n }\n\n if (!e.response) {\n this.recordResponse(LOST, e);\n return utils.thenWait(500);\n }\n\n this.recordResponse(FAILED, e);\n return utils.thenWait(200);\n })\n .finally(() => {\n const { path } = this.$router.currentRoute;\n const { project, view } = this.$store.getters;\n\n if (view && !path.startsWith('/view')) {\n // Go to the view screen if a reader file is loaded and not in a view route.\n this.$router.push('/view');\n } else if (!view && project && !path.startsWith('/project')) {\n // Go to the project screen if a project is loaded and not in a project route.\n this.$router.push('/project');\n } else if (project === null && path.startsWith('/project')) {\n // Go home on reload if there is no open project.\n this.$router.push('/');\n } else if (view === null && path.startsWith('/view')) {\n // Go home on reload if there is no open view.\n this.$router.push('/');\n }\n\n clearTimeout(this.timeoutHandle);\n this.timeoutHandle = setTimeout(this.updateStatusLoop, 100);\n });\n}\n\nfunction showLostConnection() {\n if (this.recentResponses.length === 0) {\n return false;\n }\n const lastResponseKind = this.recentResponses.slice(-1)[0].kind;\n return (lastResponseKind === LOST);\n}\n\nfunction data() {\n return {\n timeoutHandle: null,\n recentResponses: [],\n };\n}\n\nfunction mounted() {\n return this.updateStatusLoop();\n}\n\nfunction beforeDestroy() {\n clearInterval(this.timeoutHandle);\n}\n\nexport default {\n name: 'App',\n components: {\n Loader,\n LostConnectionOverlay,\n ErrorOverlay,\n WarningOverlay,\n },\n data,\n computed: {\n warning,\n error,\n showLostConnection,\n loadingMessage,\n },\n mounted,\n beforeDestroy,\n methods: {\n recordResponse,\n updateStatusLoop,\n onDismissWarning,\n onDismissError,\n },\n};\n</script>\n\n<style lang=\"scss\">\n $material-icons-font-path: '~material-icons/iconfont/';\n @import '~material-icons/iconfont/material-icons.scss';\n @import \"~source-sans-pro/source-sans-pro.css\";\n @import \"~bulma/css/bulma.css\";\n @import \"~bulma-extensions/dist/css/bulma-extensions.min.css\";\n @import \"App\";\n</style>\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--11-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--11-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=216580e3&lang=pug&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"Home\"},[_c('div',{staticClass:\"Home__splash\"},[_c('div',{staticClass:\"Home__focus\"},[_c('img',{staticClass:\"Home__logo\",attrs:{\"src\":_vm.logo}}),_c('div',{staticClass:\"Home__title\"},[_vm._v(\"Cauldron\")]),_c('div',{staticClass:\"Home__tagline\"},[_c('div',[_vm._v(\"Interactive Computing Environment\")]),_c('div',{staticClass:\"Home__version\"},[_vm._v(\"v\"+_vm._s(_vm.info.version))])]),_c('div',{staticClass:\"Home__buttonBox\"},[_c('div',{staticClass:\"button Home__button tooltip\",attrs:{\"data-tooltip\":\"A new notebook project\"},on:{\"click\":_vm.createProject}},[_vm._v(\"Create\")]),_c('div',{staticClass:\"button Home__button tooltip\",attrs:{\"data-tooltip\":\"An existing notebook project from a local directory\"},on:{\"click\":_vm.openProjectBrowser}},[_vm._v(\"Open\")])])])]),(_vm.recentProjects.length > 0)?_c('div',{staticClass:\"Home__recent\"},_vm._l((_vm.recentProjects),function(item){return _c('recent-item',{attrs:{\"item\":item},on:{\"click\":_vm.onProjectClick}})}),1):_vm._e(),(_vm.loadingMessage)?_c('loader',{attrs:{\"message\":_vm.loadingMessage}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"RecentItem\",on:{\"click\":_vm.openProject}},[_vm._m(0),_c('div',{staticClass:\"RecentItem__box\"},[_c('div',{staticClass:\"RecentItem__title\"},[_vm._v(_vm._s(_vm.item.name))]),_c('div',{staticClass:\"RecentItem__path\"},[_vm._v(_vm._s(_vm.item.directory.short))]),_c('div',{directives:[{name:\"tippy\",rawName:\"v-tippy\",value:({ placement: 'top' }),expression:\"{ placement: 'top' }\"}],staticClass:\"RecentItem__date\",attrs:{\"content\":_vm.item.modified.display}},[_vm._v(_vm._s(_vm.item.modified.elapsed))])]),_c('div',{staticClass:\"RecentItem__rightBox\"},[_c('div',{staticClass:\"RecentItem__remove tooltip is-tooltip-left is-tooltip-danger\",attrs:{\"data-tooltip\":\"Remove from recent list\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.removeFromRecent($event)}}},[_c('i',{staticClass:\"material-icons md-18\"},[_vm._v(\"close\")])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"RecentItem__leftBox\"},[_c('div',{staticClass:\"material-icons RecentItem__icon\"},[_vm._v(\"folder_open\")])])}]\n\nexport { render, staticRenderFns }","<template lang=\"pug\">\n .RecentItem(\n v-on:click=\"openProject\"\n )\n .RecentItem__leftBox\n .material-icons.RecentItem__icon folder_open\n .RecentItem__box\n .RecentItem__title {{ item.name }}\n .RecentItem__path {{ item.directory.short }}\n .RecentItem__date(\n :content=\"item.modified.display\"\n v-tippy=\"{ placement: 'top' }\"\n ) {{ item.modified.elapsed }}\n .RecentItem__rightBox\n .RecentItem__remove.tooltip.is-tooltip-left.is-tooltip-danger(\n data-tooltip=\"Remove from recent list\"\n v-on:click.stop=\"removeFromRecent\"\n )\n i.material-icons.md-18 close\n</template>\n\n<script>\nfunction removeFromRecent(event) {\n return this.$emit('click', { action: 'remove', event, item: this.item });\n}\n\nfunction openProject(event) {\n return this.$emit('click', { action: 'open', event, item: this.item });\n}\n\nexport default {\n name: 'RecentItem',\n props: {\n item: { type: Object, default: () => {} },\n },\n methods: { openProject, removeFromRecent },\n};\n</script>\n\n<style scoped lang=\"scss\">\n .RecentItem {\n display: flex;\n font-family: \"Source Sans Pro\", sans-serif;\n padding: 0.5em 0.5em;\n cursor: pointer;\n border-bottom-left-radius: 1em;\n border-top-left-radius: 1em;\n overflow: visible;\n user-select: none;\n\n &:hover {\n background-color: #EFEFEF;\n }\n\n &__leftBox {\n display: flex;\n padding-right: 0.5em;\n align-items: center;\n justify-content: center;\n }\n\n &__rightBox {\n display: flex;\n padding-left: 0.5em;\n align-items: center;\n justify-content: center;\n }\n\n &__box {\n flex: 1;\n }\n\n &__icon {\n color: #666;\n }\n\n &__title {\n font-size: 1em;\n }\n\n &__path {\n font-size: 0.6em;\n opacity: 0.8;\n }\n\n &__date {\n font-size: 0.6em;\n opacity: 0.8;\n }\n\n &__remove {\n color: #666;\n\n &:hover {\n color: hsl(348, 100%, 61%);\n }\n }\n\n &__tipBox {\n display: block;\n text-align: right;\n font-size: 0.8em;\n }\n }\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecentItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecentItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RecentItem.vue?vue&type=template&id=48a6cff4&scoped=true&lang=pug&\"\nimport script from \"./RecentItem.vue?vue&type=script&lang=js&\"\nexport * from \"./RecentItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RecentItem.vue?vue&type=style&index=0&id=48a6cff4&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"48a6cff4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"RemoteConnect tooltip is-tooltip-right\",class:{ 'RemoteConnect--connected': _vm.connected, 'RemoteConnect--disconnected': !_vm.connected },attrs:{\"data-tooltip\":\"Manage remote connection\"}},[_c('div',{staticClass:\"material-icons\"},[_vm._v(_vm._s(_vm.icon))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template lang=\"pug\">\n .RemoteConnect.tooltip.is-tooltip-right(\n data-tooltip=\"Manage remote connection\"\n :class=\"{ 'RemoteConnect--connected': connected, 'RemoteConnect--disconnected': !connected }\"\n )\n .material-icons {{ icon }}\n</template>\n\n<script>\nfunction icon() {\n return this.status.connected ? 'link' : 'link_off';\n}\n\nfunction connected() {\n return this.status.connected || false;\n}\n\nexport default {\n name: 'RemoteConnect',\n props: {\n status: { type: Object, default: () => {} },\n },\n computed: { connected, icon },\n};\n</script>\n\n<style scoped lang=\"scss\">\n .RemoteConnect {\n font-size: 0.3em;\n padding: 0.5em 0.5em 0 0.5em;\n border-radius: 5em;\n cursor: pointer;\n\n &--connected {\n background-color: blue;\n border: 1px solid green;\n\n &:hover {\n\n }\n }\n\n &--disconnected {\n color: #666;\n border: 1px solid #CCC;\n\n &:hover {\n color: #333;\n background-color: #CCC;\n border: 1px solid #333;\n }\n }\n }\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RemoteConnect.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RemoteConnect.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RemoteConnect.vue?vue&type=template&id=1504decf&scoped=true&lang=pug&\"\nimport script from \"./RemoteConnect.vue?vue&type=script&lang=js&\"\nexport * from \"./RemoteConnect.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RemoteConnect.vue?vue&type=style&index=0&id=1504decf&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1504decf\",\n null\n \n)\n\nexport default component.exports","<template lang=\"pug\">\n .Home\n\n // The splash screen is the primary portion of the home screen that\n // contains the Cauldron brancing along with key navigation elements.\n .Home__splash\n .Home__focus\n img.Home__logo(:src=\"logo\")\n .Home__title Cauldron\n .Home__tagline\n div Interactive Computing Environment\n div.Home__version v{{ info.version }}\n .Home__buttonBox\n .button.Home__button.tooltip(\n data-tooltip=\"A new notebook project\"\n @click=\"createProject\"\n ) Create\n .button.Home__button.tooltip(\n data-tooltip=\"An existing notebook project from a local directory\"\n @click=\"openProjectBrowser\"\n ) Open\n\n // Floating buttons\n // remote-connect.Home__remoteConnect(:status=\"info\")\n\n // The recent section is a vertical list of recently opened projects that\n // can quickly be selected and reopened.\n .Home__recent(v-if=\"recentProjects.length > 0\")\n recent-item(\n v-for=\"item in recentProjects\"\n :item=\"item\"\n @click=\"onProjectClick\"\n )\n\n loader(v-if=\"loadingMessage\" :message=\"loadingMessage\")\n</template>\n\n<script>\nimport logo from './logo-128.png';\nimport Loader from '../../components/loader/Loader.vue';\nimport RecentItem from './RecentItem.vue';\nimport RemoteConnect from './RemoteConnect.vue';\nimport http from '../../http';\n\n/**\n * The create button routes to the create view.\n */\nfunction createProject() {\n return this.$router.push('/create');\n}\n\nfunction openProjectBrowser() {\n return this.$router.push('/open');\n}\n\n/**\n * Opens the project specified by the event.\n * @param event\n */\nfunction onProjectClick(event) {\n const { uid } = event.item;\n if (event.action === 'remove') {\n this.loadingMessage = 'Removing Recent Project Entry';\n return http.execute(`list erase ${uid} --yes`)\n .then((response) => {\n this.recentProjects = response.data.data.projects;\n this.loadingMessage = null;\n });\n }\n\n const { name } = event.item;\n const directory = event.item.directory.absolute;\n\n this.loadingMessage = `Loading \"${name}\" Project`;\n return http.execute(`open \"${directory}\"`)\n .then((response) => {\n http.markStatusDirty();\n\n if (!response.data.success) {\n this.loadingMessage = null;\n }\n });\n}\n\nfunction data() {\n return {\n logo,\n loadingMessage: 'Synchronizing with Cauldron Kernel',\n info: { version: 'unknown' },\n recentProjects: [],\n };\n}\n\nfunction mounted() {\n return http.updateStatus(500)\n .then((response) => {\n this.info = response.data.data;\n return http.execute('list recent');\n })\n .then((response) => {\n this.recentProjects = response.data.data.projects;\n this.loadingMessage = null;\n });\n}\n\nexport default {\n name: 'Home',\n components: { Loader, RecentItem, RemoteConnect },\n data,\n mounted,\n methods: { createProject, onProjectClick, openProjectBrowser },\n};\n</script>\n\n<style scoped lang=\"scss\">\n @import '../../Variables';\n\n .Home {\n font-family: \"Source Sans Pro\", sans-serif;\n display: flex;\n\n &__splash {\n display: flex;\n flex: 3;\n align-items: center;\n justify-content: center;\n }\n\n &__recent {\n flex: 2;\n min-width: 320px;\n max-width: 580px;\n padding: 0.5em 0 20em 0;\n overflow-y: scroll;\n }\n\n &__focus {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n width: 50%;\n max-width: 480px;\n }\n\n &__logo {\n width: 48px;\n height: 48px;\n }\n\n &__title {\n padding-top: 0.2em;\n font-size: 2em;\n font-weight: lighter;\n }\n\n &__tagline {\n font-size: 0.8em;\n }\n\n &__version {\n font-size: 0.8em;\n text-align: right;\n width: 100%;\n }\n\n &__button {\n margin: 0.5em 0.25em;\n }\n\n &__remoteConnect {\n position: absolute;\n z-index: $overlay-z-index;\n bottom: 3em;\n left: 3em;\n }\n }\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=5d9f75e5&scoped=true&lang=pug&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=5d9f75e5&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5d9f75e5\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\nimport Router from 'vue-router';\nimport Home from './views/home/Home.vue';\n\nVue.use(Router);\n\nexport default new Router({\n mode: 'history',\n base: process.env.BASE_URL,\n routes: [\n {\n path: '/',\n name: 'home',\n component: Home,\n },\n {\n path: '/project',\n name: 'project',\n component: () => import(/* webpackChunkName: \"project\" */ './views/project/Project.vue'),\n },\n {\n path: '/create',\n name: 'create',\n component: () => import(/* webpackChunkName: \"create\" */ './views/create/Create.vue'),\n },\n {\n path: '/open',\n name: 'open',\n component: () => import(/* webpackChunkName: \"create\" */ './views/open/Open.vue'),\n },\n {\n path: '/view',\n name: 'viewer',\n component: () => import(/* webpackChunkName: \"create\" */ './views/viewer/Viewer.vue'),\n },\n ],\n});\n","import Vue from 'vue';\nimport VueTippy, { TippyComponent } from 'vue-tippy';\n\nimport App from './App.vue';\nimport router from './router';\nimport store from './store';\n\nVue.use(VueTippy);\nVue.component('tippy', TippyComponent);\n\nVue.config.productionTip = false;\n\nnew Vue({\n router,\n store,\n render: h => h(App),\n}).$mount('#app');\n","import store from './store';\n\nfunction getStep(stepName) {\n const steps = (store.getters.project || {}).steps || [];\n const matches = steps.filter(s => s.name === stepName);\n return matches.length > 0 ? matches[0] : null;\n}\n\nfunction getSelectedStep() {\n const steps = (store.getters.project || {}).steps || [];\n const matches = steps.filter(s => s.status.selected);\n return matches.length > 0 ? matches[0] : null;\n}\n\nfunction isStepQueued(stepName) {\n return store.getters.queuedStepsToRun.filter(s => s === stepName).length > 0;\n}\n\nfunction isStepRunning(stepName) {\n const step = getStep(stepName);\n return step !== null ? step.status.running : false;\n}\n\nfunction queueStepToRun(stepName) {\n if (isStepQueued(stepName) || isStepRunning(stepName)) {\n return;\n }\n\n const updated = store.getters.queuedStepsToRun.concat([stepName]);\n store.commit('queuedStepsToRun', updated);\n}\n\nfunction removeStepFromQueue(stepName) {\n const queue = store.getters.queuedStepsToRun.concat();\n const index = queue.indexOf(stepName);\n\n if (index < 0) {\n return false;\n }\n\n queue.splice(index, 1);\n store.commit('queuedStepsToRun', queue);\n return true;\n}\n\nfunction addToQueue(stepNames) {\n const queue = store.getters.queuedStepsToRun.concat();\n const newSteps = stepNames.filter(s => queue.indexOf(s) < 0);\n\n if (newSteps.length > 0) {\n store.commit('queuedStepsToRun', queue.concat(newSteps));\n }\n}\n\nfunction setStepRunning(stepName) {\n store.commit('runningStepName', stepName);\n store.commit('running', stepName !== null);\n}\n\nfunction clearQueue() {\n store.commit('queuedStepsToRun', []);\n}\n\nexport default {\n addToQueue,\n clearQueue,\n getStep,\n getSelectedStep,\n isStepQueued,\n isStepRunning,\n queueStepToRun,\n removeStepFromQueue,\n setStepRunning,\n};\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../node_modules/css-loader/index.js??ref--7-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../node_modules/css-loader/index.js??ref--7-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RemoteConnect.vue?vue&type=style&index=0&id=1504decf&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RemoteConnect.vue?vue&type=style&index=0&id=1504decf&scoped=true&lang=scss&\"","import store from './store';\n\n// These are error codes that should not result in the display of the\n// error overlay because they are displayed in other ways within\n// the application/notebook.\nconst IGNORED_ERROR_CODES = ['EXECUTION_ERROR'];\n\n/**\n * Mutate store with new errors, deduping as they are added.\n * @param errors\n * An array of errors to add to the stored errors for display.\n */\nfunction addErrors(errors) {\n const existing = store.getters.errors.concat();\n const existingCodes = existing.map(e => e.code).concat(IGNORED_ERROR_CODES);\n const newErrors = (errors || []).filter(e => existingCodes.indexOf(e.code) === -1);\n\n if (newErrors) {\n store.commit('errors', existing.concat(newErrors));\n }\n}\n\nfunction addError(error) {\n return addErrors([error]);\n}\n\n/**\n * Mutate store with new warnings, deduping as they are added.\n * @param warnings\n * The response object returned from a request to the kernel.\n */\nfunction addWarnings(warnings) {\n const existingWarnings = store.getters.warnings.concat();\n const existingCodes = existingWarnings.map(e => e.code);\n const newWarnings = (warnings || []).filter(e => existingCodes.indexOf(e.code) === -1);\n\n if (newWarnings) {\n store.commit('warnings', existingWarnings.concat(newWarnings));\n }\n}\n\nfunction addWarning(warning) {\n return addWarnings([warning]);\n}\n\nexport default {\n addErrors,\n addError,\n addWarnings,\n addWarning,\n};\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LostConnectionOverlay.vue?vue&type=style&index=0&id=73a56477&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LostConnectionOverlay.vue?vue&type=style&index=0&id=73a56477&scoped=true&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=5d9f75e5&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=5d9f75e5&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"Spinner\"},[_c('svg',{staticClass:\"Spinner__box\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":_vm.size,\"height\":_vm.size}},[_c('circle',{staticClass:\"Spinner__path\",class:_vm.themingClasses,attrs:{\"fill\":\"none\",\"stroke-linecap\":\"round\",\"stroke-width\":_vm.thickness,\"cx\":_vm.half,\"cy\":_vm.half,\"r\":_vm.radius}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template lang=\"pug\">\n .Spinner\n svg.Spinner__box(\n xmlns=\"http://www.w3.org/2000/svg\"\n :width=\"size\"\n :height=\"size\"\n )\n circle.Spinner__path(\n :class=\"themingClasses\"\n fill=\"none\"\n stroke-linecap=\"round\"\n :stroke-width=\"thickness\"\n :cx=\"half\"\n :cy=\"half\"\n :r=\"radius\"\n )\n</template>\n\n<script>\nfunction extent() {\n return this.size;\n}\n\nfunction half() {\n return Math.floor(this.size / 2);\n}\n\nfunction radius() {\n return this.half - this.thickness;\n}\n\nfunction thickness() {\n return Math.max(2, Math.floor(6 * Math.min(1, this.size / 60)));\n}\n\nfunction themingClasses() {\n return `Spinner__path--${this.theme}`;\n}\n\nexport default {\n name: 'Spinner',\n props: {\n size: { type: Number, default: 40 },\n theme: { type: String, default: 'light' },\n },\n computed: {\n extent,\n half,\n radius,\n thickness,\n themingClasses,\n },\n};\n</script>\n\n<style scoped lang=\"scss\">\n $offset: 187;\n $duration: 1.4s;\n\n .Spinner {\n display: flex;\n align-items: center;\n justify-content: center;\n\n &__box {\n animation: rotator $duration linear infinite;\n }\n\n &__path {\n stroke-dasharray: $offset;\n stroke-dashoffset: 0;\n transform-origin: center;\n\n &--light {\n animation:\n dash $duration ease-in-out infinite,\n dark-gray-colors ($duration*4) ease-in-out infinite;\n }\n\n &--dark {\n animation:\n dash $duration ease-in-out infinite,\n light-gray-colors ($duration*4) ease-in-out infinite;\n }\n }\n }\n\n @keyframes rotator {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(270deg); }\n }\n\n @keyframes dark-gray-colors {\n 0% { stroke: rgba(0, 0, 0, 0.2); }\n 20% { stroke: rgba(0, 0, 0, 0.05); }\n 40% { stroke: rgba(0, 0, 0, 0.2); }\n 60% { stroke: rgba(0, 0, 0, 0.05); }\n 80% { stroke: rgba(0, 0, 0, 0.2); }\n 100% { stroke: rgba(0, 0, 0, 0.05); }\n }\n\n @keyframes light-gray-colors {\n 0% { stroke: rgba(255, 255, 255, 0.8); }\n 20% { stroke: rgba(255, 255, 255, 0.25); }\n 40% { stroke: rgba(255, 255, 255, 0.8); }\n 60% { stroke: rgba(255, 255, 255, 0.25); }\n 80% { stroke: rgba(255, 255, 255, 0.8); }\n 100% { stroke: rgba(255, 255, 255, 0.25); }\n }\n\n @keyframes dash {\n 0% { stroke-dashoffset: $offset; }\n 50% {\n stroke-dashoffset: $offset/4;\n transform:rotate(135deg);\n }\n 100% {\n stroke-dashoffset: $offset;\n transform:rotate(450deg);\n }\n }\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Spinner.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Spinner.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Spinner.vue?vue&type=template&id=38b6b456&scoped=true&lang=pug&\"\nimport script from \"./Spinner.vue?vue&type=script&lang=js&\"\nexport * from \"./Spinner.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Spinner.vue?vue&type=style&index=0&id=38b6b456&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"38b6b456\",\n null\n \n)\n\nexport default component.exports","import axios from 'axios';\nimport store from './store';\nimport stepper from './stepper';\nimport notebook from './notebook';\nimport exceptions from './exceptions';\nimport utils from './utils';\n\nconst statusCache = {\n lastInvocationTimestamp: 0,\n};\n\nfunction markStatusDirty() {\n store.commit('isStatusDirty', true);\n}\n\n/**\n * Mutate store with new errors, deduping as they are added.\n * @param response\n * The response object returned from a request to the kernel.\n */\nfunction addErrors(response) {\n const responseErrors = ((response || {}).data || {}).errors || [];\n exceptions.addErrors(responseErrors);\n}\n\n/**\n * Mutate store with new warnings, deduping as they are added.\n * @param response\n * The response object returned from a request to the kernel.\n */\nfunction addWarnings(response) {\n const responseWarnings = ((response || {}).data || {}).warnings || [];\n exceptions.addWarnings(responseWarnings);\n}\n\n/**\n * Creates an Axios instance configured to communicate with the Cauldron kernel hosting\n * the UI.\n * @returns {AxiosInstance}\n */\nfunction createGateway(timeout) {\n const root = window.location.origin;\n return axios.create({\n baseURL: `${root}/v1/api/`,\n timeout: timeout || 10000,\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n}\n\n/**\n * Generic GET method endpoint request and response execution.\n * @param endpoint\n * @param timeout\n * @returns {Promise<AxiosResponse>}\n */\nfunction get(endpoint, timeout) {\n return createGateway(timeout)\n .get(endpoint)\n .catch((error) => {\n console.error(`FAILED GET::${endpoint}`, error);\n throw error;\n });\n}\n\nfunction post(endpoint, data, timeout) {\n return createGateway(timeout)\n .post(endpoint, data || {})\n .catch((error) => {\n console.error(`FAILED POST::${endpoint}`, data, error);\n throw error;\n });\n}\n\nfunction execute(command) {\n return post('/command/sync', { command }, 30000)\n .then((response) => {\n addErrors(response);\n addWarnings(response);\n return response;\n });\n}\n\nfunction executeAsync(command) {\n return post('/command/async', { command })\n .then((response) => {\n addErrors(response);\n addWarnings(response);\n return response;\n });\n}\n\nfunction handleStepRunningError(response) {\n const stepChanges = response.data.data.step_changes || [];\n const hasRunningStepError = (\n !response.data.success\n || (response.data.errors || []).length > 0\n || stepChanges.filter(c => ((c || {}).step || {}).has_error).length > 0\n );\n\n if (hasRunningStepError) {\n stepper.clearQueue();\n store.commit('running', false);\n markStatusDirty();\n }\n\n return hasRunningStepError;\n}\n\nfunction runStep(stepName) {\n store.commit('running', true);\n store.commit('runningStepName', stepName);\n\n return executeAsync(`run \"${stepName}\" --print-status`, stepName)\n .then((response) => {\n handleStepRunningError(response);\n\n const payload = response.data;\n return notebook\n .applyStepModifications(\n payload.data.step_renames,\n payload.data.step_changes,\n )\n .then(() => {\n markStatusDirty();\n return response;\n });\n });\n}\n\n/**\n * Update the Vuex store with all of the state information needed to keep the\n * UI in sync with the backend. A debounce argument can optionally be specified\n * with a number of milliseconds since the last update to prevent collisions\n * with fast updates.\n *\n * @param debounce\n * @param force\n * @returns {Promise<AxiosResponse>|Promise<{data: *}>}\n */\nfunction updateStatus(debounce = 0, force = false) {\n const lastInvokedMillis = Math.max(statusCache.lastInvocationTimestamp, 0);\n if (debounce > 0) {\n const timestamp = (new Date()).getTime();\n const elapsed = timestamp - lastInvokedMillis;\n if (elapsed < debounce) {\n return Promise.resolve({ data: store.getters.status });\n }\n }\n\n const forceArg = force ? 'yes' : null;\n const lastTimestamp = (store.getters.status || {}).timestamp || 0;\n const data = { last_timestamp: lastTimestamp, force: forceArg };\n statusCache.lastInvocationTimestamp = (new Date()).getTime();\n\n return post('/status', data)\n .then((response) => {\n const payload = response.data;\n\n if (!payload) {\n // If there's no payload something went wrong and it's time to abort.\n return Promise.resolve(response);\n }\n\n if (!payload.success) {\n // This will force immediate retry to prevent transient failures from\n // causing longer-term synchronization errors with the kernel.\n statusCache.lastInvocationTimestamp = 0;\n }\n\n const { project, remote } = payload.data;\n\n // Whether or not an asynchronous command thread is currently running.\n const isActiveAsync = payload.data.is_active_async;\n\n const steps = (project || {}).steps || [];\n const hasRunningStepError = handleStepRunningError(response);\n const lastHash = (store.getters.status || {}).hash || '';\n const hash = payload.hash || '';\n\n const runningSteps = steps.filter(s => s.status.running);\n const running = !hasRunningStepError && runningSteps.length > 0;\n const syncing = ((remote || {}).sync || {}).active;\n\n // Only update status information if the information has\n // changed since the last update.\n if (lastHash !== hash) {\n store.commit('status', payload);\n store.commit('project', project);\n }\n\n // Update running status if needed.\n const wasRunning = store.getters.running;\n const shouldBeRunning = (\n syncing\n || running\n || isActiveAsync\n || store.getters.queuedStepsToRun.length > 0\n );\n if (wasRunning !== shouldBeRunning) {\n store.commit('running', shouldBeRunning);\n }\n\n // Update the running step name if necessary.\n const previousRunningStepName = store.getters.runningStepName;\n const runningStepPossibilities = [\n // If running, use the running steps name.\n running ? runningSteps[0].name : null,\n // If should be running, keep the previous running step name until that\n // is replaced by a new running step.\n shouldBeRunning ? previousRunningStepName : null,\n ];\n const newRunningStepName = runningStepPossibilities\n .reduce((choice, name) => name || choice, null);\n\n if (previousRunningStepName !== newRunningStepName) {\n store.commit('runningStepName', newRunningStepName);\n }\n\n // If running has just stopped mark status dirty to capture any post step changes\n // made after the running state change. This helps prevent the final dom updates\n // from mysteriously not appearing in the results.\n if (wasRunning && !shouldBeRunning) {\n markStatusDirty();\n }\n\n return notebook\n .applyStepModifications(\n payload.data.step_renames,\n payload.data.step_changes,\n )\n .then(() => {\n // If there's a running queue, go ahead and process the next step.\n const shouldRunNextStep = (\n !syncing\n && !running\n && !isActiveAsync\n && store.getters.queuedStepsToRun.length > 0\n );\n\n if (shouldRunNextStep) {\n const stepName = store.getters.queuedStepsToRun[0];\n store.commit('queuedStepsToRun', store.getters.queuedStepsToRun.slice(1));\n\n // Add a little bit of a wait to help prevent race conditions before running\n // a new step.\n return utils.thenWait(100)\n .then(() => runStep(stepName))\n .then(() => utils.thenWait(100))\n .then(() => response);\n }\n\n return response;\n });\n });\n}\n\nfunction abortExecution() {\n stepper.clearQueue();\n\n return post('/command/abort')\n .then((response) => {\n addErrors(response);\n addWarnings(response);\n\n store.commit('running', false);\n markStatusDirty();\n return response;\n });\n}\n\nexport default {\n abortExecution,\n get,\n post,\n execute,\n executeAsync,\n updateStatus,\n markStatusDirty,\n};\n","import Vue from 'vue';\nimport Vuex from 'vuex';\n\nVue.use(Vuex);\n\nfunction createEmptyStatus() {\n return { data: { success: true, timestamp: 0 } };\n}\n\nexport default new Vuex.Store({\n state: {\n followSteps: true,\n errors: [],\n warnings: [],\n isStatusDirty: true,\n project: null,\n queuedStepsToRun: [],\n running: false,\n runningStepName: null,\n savingFile: false,\n status: createEmptyStatus(),\n loadingMessages: [],\n isNotebookLoading: false,\n previousStepChanges: {},\n },\n mutations: {\n followSteps(state, value) {\n state.followSteps = value || false;\n },\n errors(state, value) {\n state.errors = value || [];\n },\n warnings(state, value) {\n state.warnings = value || [];\n },\n isStatusDirty(state, value) {\n state.isStatusDirty = value || false;\n },\n project(state, value) {\n state.project = value || null;\n },\n queuedStepsToRun(state, value) {\n state.queuedStepsToRun = value || [];\n },\n running(state, value) {\n state.running = value || false;\n },\n runningStepName(state, value) {\n state.runningStepName = value || null;\n },\n savingFile(state, value) {\n state.savingFile = value || false;\n },\n status(state, value) {\n state.status = value || createEmptyStatus();\n },\n loadingMessages(state, value) {\n state.loadingMessages = value || [];\n },\n isNotebookLoading(state, value) {\n state.isNotebookLoading = value || false;\n },\n previousStepChanges(state, value) {\n state.previousStepChanges = value || {};\n },\n },\n getters: {\n followSteps: state => state.followSteps,\n errors: state => state.errors,\n warnings: state => state.warnings,\n isStatusDirty: state => state.isStatusDirty,\n project: state => state.project,\n queuedStepsToRun: state => state.queuedStepsToRun,\n running: state => state.running,\n runningStepName: state => state.runningStepName,\n savingFile: state => state.savingFile,\n status: state => state.status,\n view: state => ((state.status || {}).data || {}).view || null,\n loadingMessages: state => state.loadingMessages,\n isNotebookLoading: state => state.isNotebookLoading,\n previousStepChanges: state => state.previousStepChanges,\n },\n});\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Spinner.vue?vue&type=style&index=0&id=38b6b456&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Spinner.vue?vue&type=style&index=0&id=38b6b456&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"Loader\"},[_c('div',{staticClass:\"Loader__focus\"},[_c('spinner',{staticClass:\"Loader__spinner\"}),(_vm.message)?_c('div',{staticClass:\"Loader__message\"},[_vm._v(_vm._s(_vm.message))]):_vm._e()],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template lang=\"pug\">\n .Loader\n .Loader__focus\n spinner.Loader__spinner\n .Loader__message(v-if=\"message\") {{ message }}\n</template>\n\n<script>\nimport Spinner from '../spinner/Spinner.vue';\n\nfunction data() {\n return {};\n}\n\nexport default {\n name: 'Loader',\n components: { Spinner },\n props: {\n message: { type: String, default: '' },\n },\n data,\n};\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style scoped lang=\"scss\">\n @import '../../Variables';\n\n .Loader {\n font-family: \"Source Sans Pro Light\", sans-serif;\n display: flex;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: $loader-z-index;\n align-items: center;\n justify-content: center;\n background-color: #FFF;\n\n &__message {\n padding-top: 0.5em;\n color: #999;\n max-width: 480px;\n }\n }\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Loader.vue?vue&type=template&id=d43f3f76&scoped=true&lang=pug&\"\nimport script from \"./Loader.vue?vue&type=script&lang=js&\"\nexport * from \"./Loader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Loader.vue?vue&type=style&index=0&id=d43f3f76&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d43f3f76\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorOverlay.vue?vue&type=style&index=0&id=1dde40ec&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorOverlay.vue?vue&type=style&index=0&id=1dde40ec&scoped=true&lang=scss&\""],"sourceRoot":""}