@abi-software/simulationvuer 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/simulationvuer.common.js +457 -662
- package/dist/simulationvuer.common.js.map +1 -1
- package/dist/simulationvuer.css +1 -1
- package/dist/simulationvuer.umd.js +457 -662
- package/dist/simulationvuer.umd.js.map +1 -1
- package/dist/simulationvuer.umd.min.js +1 -1
- package/dist/simulationvuer.umd.min.js.map +1 -1
- package/package.json +1 -1
- package/src/.DS_Store +0 -0
- package/src/App.vue +10 -8
- package/src/components/SimulationVuer.vue +85 -141
- package/src/components/SimulationVuerInput.vue +150 -0
- package/src/components/common.js +7 -7
- package/src/components/json.js +3 -0
- package/src/components/ui.js +37 -230
- package/vue.config.js +1 -2
- package/src/components/configuration.js +0 -139
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack://simulationvuer/webpack/bootstrap","webpack://simulationvuer/./src/styles/purple/button.css?cfdd","webpack://simulationvuer/external \"core-js/modules/web.dom-collections.for-each.js\"","webpack://simulationvuer/./src/styles/purple/container.css?5104","webpack://simulationvuer/external \"core-js/modules/es.regexp.to-string.js\"","webpack://simulationvuer/./src/styles/purple/aside.css?923c","webpack://simulationvuer/external \"core-js/modules/es.array.map.js\"","webpack://simulationvuer/./src/components/SimulationVuer.vue?a050","webpack://simulationvuer/external \"core-js/modules/es.symbol.description.js\"","webpack://simulationvuer/./src/styles/purple/select.css?7424","webpack://simulationvuer/external \"element-ui\"","webpack://simulationvuer/external \"core-js/modules/es.string.replace.js\"","webpack://simulationvuer/./src/styles/purple/select.css?89e5","webpack://simulationvuer/./src/styles/purple/slider.css?bc04","webpack://simulationvuer/./src/styles/purple/input-number.css?1c93","webpack://simulationvuer/external \"core-js/modules/es.array.includes.js\"","webpack://simulationvuer/external \"core-js/modules/es.regexp.constructor.js\"","webpack://simulationvuer/external \"vue\"","webpack://simulationvuer/./src/styles/purple/option.css?242e","webpack://simulationvuer/./src/styles/purple/input-number.css?6805","webpack://simulationvuer/external \"core-js/modules/es.object.to-string.js\"","webpack://simulationvuer/external \"core-js/modules/es.symbol.js\"","webpack://simulationvuer/external \"@soda/get-current-script\"","webpack://simulationvuer/external \"jsonschema\"","webpack://simulationvuer/./src/components/SimulationVuer.vue?f50f","webpack://simulationvuer/external \"core-js/modules/es.array.join.js\"","webpack://simulationvuer/external \"core-js/modules/es.regexp.exec.js\"","webpack://simulationvuer/./src/styles/purple/option.css?77f3","webpack://simulationvuer/./src/styles/purple/aside.css?f4cc","webpack://simulationvuer/external \"@abi-software/plotvuer/dist/plotvuer.css\"","webpack://simulationvuer/./src/styles/purple/slider.css?a134","webpack://simulationvuer/external \"core-js/modules/es.function.name.js\"","webpack://simulationvuer/./src/styles/purple/button.css?41da","webpack://simulationvuer/./src/styles/purple/container.css?0753","webpack://simulationvuer/external \"core-js/modules/es.object.keys.js\"","webpack://simulationvuer/external \"@abi-software/plotvuer\"","webpack://simulationvuer/external \"core-js/modules/es.number.constructor.js\"","webpack://simulationvuer/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://simulationvuer/./src/components/SimulationVuer.vue?8557","webpack://simulationvuer/./src/components/configuration.js","webpack://simulationvuer/./src/components/common.js","webpack://simulationvuer/./src/components/json.js","webpack://simulationvuer/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://simulationvuer/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://simulationvuer/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://simulationvuer/./src/components/ui.js","webpack://simulationvuer/src/components/SimulationVuer.vue","webpack://simulationvuer/./src/components/SimulationVuer.vue?8c0f","webpack://simulationvuer/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://simulationvuer/./src/components/SimulationVuer.vue?385d","webpack://simulationvuer/./src/components/index.js","webpack://simulationvuer/./node_modules/@vue/cli-service/lib/commands/build/entry-lib-no-default.js","webpack://simulationvuer/external \"core-js/modules/es.string.includes.js\""],"names":["jsonForNormalModel","input","defaultValue","id","name","possibleValues","value","enabled","maximumValue","minimumValue","output","data","plots","xAxisTitle","xValue","yAxisTitle","yValue","parameters","simulation","endingPoint","pointInterval","jsonForCompositeModel","doEvaluateValue","from","to","undefined","re","RegExp","replace","evaluateValue","ui","discreteElements","forEach","discreteElement","select","vModel","scalarElements","scalarElement","input_number","Function","evaluateSimulationValue","parent","results","i","json","simulationDataId","validJson","validator","Validator","schema","additionalProperties","properties","items","oneOf","required","type","minItems","maxItems","result","validate","nestedErrors","valid","console","warn","toString","inputIdUsed","inputValid","every","possibleValue","values","map","valueUsed","includes","join","outputIdUsed","outputDataValid","outputData","outputPlotsValid","outputPlot","parametersValid","parameter","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","_defineProperty","obj","prepareForUi","index","layout","xaxis","title","text","font","size","yaxis","simulationData","VueContainer","Vue","extend","template","VueInputNumber","methods","emitSynchroniseSliderAndInputNumber","$emit","disabled","Boolean","Number","VueLabel","classes","String","label","VueSelect","emitSelectionChanged","Array","VueSlider","Ui","inputRoot","$refs","isPreviousDiscrete","slidersAndFieldsContainer","firstScalarInput","discreteElementIndex","scalarElementIndex","isDiscrete","addVueElement","propsData","$el","$on","selectionChanged","slider","inputNumber","synchroniseSliderAndInputNumber","classList","add","root","element","attributes","attribute","setAttribute","nodeName","nodeValue","children","childElement","setVueAttributes","$mount","appendChild"],"mappings":"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AACA;AACA,KANA;AAOA,iBAPA,2BAOA;AAAA;;AACA;AAEA;AACA,sCADA;AAEA;AAFA,QAHA,CAQA;AACA;;AAEA;AACA;AACA,0DADA;AAEA;AAFA;AAIA,OAhBA,CAkBA;;;AAEA;AACA;AAEA;AACA;AACA,SAFA;AAGA,OA1BA,CA4BA;;;AAEA;AACA;AAEA;AAEA;AACA;AACA,SAFA;AAGA,OAtCA,CAwCA;;;AAEA;AAEA;AACA;;AACA;AACA;AACA;;AAEA;AACA;AAEA;;AAEA;AACA;AAEA;;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kDACA;AACA,2BADA;AAEA;AAFA,iBADA;AAMA,eAfA;AAgBA,aAtBA,MAsBA;AACA;AACA;AACA,WA9BA,MA8BA;AACA;AAEA;AACA;AACA;AACA,OAxCA;;AAyCA;AACA;AA/FA,GA9BA;AA+HA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAHA,MAGA;AACA;AACA;AACA;AACA,KAdA,CAgBA;;;AAEA;;AAEA;AACA;AACA,KAtBA,CAwBA;;;AAEA;AACA,GA1JA;AA2JA;AACA;AAEA;AACA;AACA;AACA;AAjKA,G;;ACpDwU,CAAgB,4HAAG,EAAC,C;;;;;;;;;;;;;;;;;;;;;;;;;;ACA5V;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;ACjGyG;AACvC;AACL;AACqC;AACM;AACC;AACG;AACG;AACN;AACA;AACA;;;AAGzG;AAC0F;AAC1F,gBAAgB,kBAAU;AAC1B,EAAE,iDAAM;AACR,EAAE,MAAM;AACR,EAAE,eAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEe,oE;;AC1Bf;AACA;AACA;;;ACFwB;AACF;;;;;;;;ACDtB,kE","file":"simulationvuer.common.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\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\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 = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fae3\");\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!./button.css?vue&type=style&index=2&id=3e94221a&scoped=true&lang=css&\"","module.exports = require(\"core-js/modules/web.dom-collections.for-each.js\");","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!./container.css?vue&type=style&index=3&id=3e94221a&scoped=true&lang=css&\"","module.exports = require(\"core-js/modules/es.regexp.to-string.js\");","// extracted by mini-css-extract-plugin","module.exports = require(\"core-js/modules/es.array.map.js\");","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SimulationVuer.vue?vue&type=style&index=0&id=3e94221a&scoped=true&lang=css&\"","module.exports = require(\"core-js/modules/es.symbol.description.js\");","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!./select.css?vue&type=style&index=6&id=3e94221a&scoped=true&lang=css&\"","module.exports = require(\"element-ui\");","module.exports = require(\"core-js/modules/es.string.replace.js\");","// extracted by mini-css-extract-plugin","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!./slider.css?vue&type=style&index=7&id=3e94221a&scoped=true&lang=css&\"","// extracted by mini-css-extract-plugin","module.exports = require(\"core-js/modules/es.array.includes.js\");","module.exports = require(\"core-js/modules/es.regexp.constructor.js\");","module.exports = require(\"vue\");","// extracted by mini-css-extract-plugin","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!./input-number.css?vue&type=style&index=4&id=3e94221a&scoped=true&lang=css&\"","module.exports = require(\"core-js/modules/es.object.to-string.js\");","module.exports = require(\"core-js/modules/es.symbol.js\");","module.exports = require(\"@soda/get-current-script\");","module.exports = require(\"jsonschema\");","// extracted by mini-css-extract-plugin","module.exports = require(\"core-js/modules/es.array.join.js\");","module.exports = require(\"core-js/modules/es.regexp.exec.js\");","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!./option.css?vue&type=style&index=5&id=3e94221a&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!./aside.css?vue&type=style&index=1&id=3e94221a&scoped=true&lang=css&\"","module.exports = require(\"@abi-software/plotvuer/dist/plotvuer.css\");","// extracted by mini-css-extract-plugin","module.exports = require(\"core-js/modules/es.function.name.js\");","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","module.exports = require(\"core-js/modules/es.object.keys.js\");","module.exports = require(\"@abi-software/plotvuer\");","module.exports = require(\"core-js/modules/es.number.constructor.js\");","// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.simulationBeingComputed),expression:\"simulationBeingComputed\"}],staticClass:\"simulation-vuer\",attrs:{\"element-loading-text\":\"Loading simulation results...\"}},[(!_vm.hasValidJson)?_c('p',{staticClass:\"default error\"},[_c('span',{staticClass:\"error\"},[_vm._v(\"Error:\")]),_vm._v(\" an unknown or invalid model was provided.\")]):_vm._e(),(_vm.hasValidJson)?_c('div',{staticClass:\"main\"},[_c('div',{staticClass:\"main-left\"},[_c('p',{staticClass:\"default title\"},[_vm._v(_vm._s(_vm.title))]),_c('el-divider'),_c('p',{staticClass:\"default input-parameters\"},[_vm._v(\"Input parameters\")]),_c('div',{ref:\"input\"}),_c('div',{staticClass:\"primary-button\"},[_c('el-button',{attrs:{\"type\":\"primary\",\"size\":\"mini\"},on:{\"click\":function($event){return _vm.runSimulation()}}},[_vm._v(\"Run simulation\")])],1),_c('div',{staticClass:\"secondary-button\"},[_c('el-button',{attrs:{\"size\":\"mini\"},on:{\"click\":function($event){return _vm.goToOsparc()}}},[_vm._v(\"Go to oSPARC\")])],1),_c('div',{staticClass:\"secondary-button\"},[_c('el-button',{attrs:{\"size\":\"mini\"},on:{\"click\":function($event){return _vm.viewDataset()}}},[_vm._v(\"View dataset\")])],1),_c('p',{staticClass:\"default note\"},[_vm._v(\"Additional parameters are available on oSPARC\")])],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.simulationValid),expression:\"simulationValid\"}],ref:\"output\",staticClass:\"main-right\"},_vm._l((_vm.json.output.plots),function(outputPlot,index){return _c('PlotVuer',{key:(\"output-\" + index),attrs:{\"layout-input\":_vm.layout[index],\"dataInput\":_vm.simulationData[index],\"plotType\":'plotly-only'}})}),1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.simulationValid),expression:\"!simulationValid\"}],staticClass:\"main-right\"},[_c('p',{staticClass:\"default error\"},[_c('span',{staticClass:\"error\"},[_vm._v(\"Error:\")]),_vm._v(\" \"),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.errorMessage)}}),_vm._v(\".\")])])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export function jsonForNormalModel() {\n return {\n input: [\n {\n defaultValue: 0,\n id: \"sm\",\n name: \"Simulation mode\",\n possibleValues: [\n {\n name: \"Normal sinus rhythm\",\n value: 0,\n },\n {\n name: \"Stellate stimulation\",\n value: 1,\n },\n {\n name: \"Vagal stimulation\",\n value: 2,\n },\n ],\n },\n {\n defaultValue: 0,\n enabled: \"(sm == 1) || (sm == 2)\",\n id: \"sl\",\n maximumValue: 10,\n minimumValue: 0,\n name: \"Stimulation level\",\n },\n ],\n output: {\n data: [\n {\n id: \"time\",\n name: \"environment/time\",\n },\n {\n id: \"vm\",\n name: \"Membrane/V\",\n },\n ],\n plots: [\n {\n xAxisTitle: \"Time (s)\",\n xValue: \"time\",\n yAxisTitle: \"Membrane potential (mV)\",\n yValue: \"vm\",\n },\n ],\n },\n parameters: [\n {\n name: \"Rate_modulation_experiments/Iso_1_uM\",\n value: \"(sm == 0) ? 0.0 : 1.0\",\n },\n {\n name: \"Rate_modulation_experiments/ACh\",\n value: \"(sm == 0) ? 0.0 : (sm === 1) ? (1.0 - 0.1 * sl) * 22.0e-6 : 22.0e-6 + 0.1 * sl * (38.0e-6 - 22.0e-6)\",\n },\n ],\n simulation: {\n endingPoint: 3.0,\n pointInterval: 0.001,\n },\n };\n}\n\nexport function jsonForCompositeModel() {\n return {\n input: [\n {\n defaultValue: 300,\n id: \"sf\",\n maximumValue: 1000,\n minimumValue: 0,\n name: \"Spike frequency\",\n },\n {\n defaultValue: 10,\n id: \"sn\",\n maximumValue: 30,\n minimumValue: 0,\n name: \"Spike number\",\n },\n {\n defaultValue: 10,\n id: \"sa\",\n maximumValue: 30,\n minimumValue: 0,\n name: \"Spike amplitude\",\n },\n ],\n output: {\n data: [\n {\n id: \"sa\",\n name: \"Brain_stem/w\",\n },\n {\n id: \"time\",\n name: \"environment/time\",\n },\n {\n id: \"vm\",\n name: \"Membrane/V\",\n },\n ],\n plots: [\n {\n xAxisTitle: \"Time (s)\",\n xValue: \"time\",\n yAxisTitle: \"Spike amplitude\",\n yValue: \"100.0 * sa\",\n },\n {\n xAxisTitle: \"Time (s)\",\n xValue: \"time\",\n yAxisTitle: \"Membrane potential (mV)\",\n yValue: \"vm\",\n },\n ],\n },\n parameters: [\n {\n name: \"Brain_stem/t_period\",\n value: \"sf\",\n },\n {\n name: \"Brain_stem/w_n\",\n value: \"sn\",\n },\n {\n name: \"Brain_stem/w_value\",\n value: \"0.01 * sa\",\n },\n ],\n };\n}\n","function doEvaluateValue(value, from, to) {\n if (from !== undefined) {\n let re = new RegExp(`\\\\b${ from }\\\\b`, 'g');\n\n value = value.replace(re, to);\n }\n\n return value;\n}\n\nexport function evaluateValue(ui, value) {\n ui.discreteElements.forEach((discreteElement) => {\n value = doEvaluateValue(value, discreteElement.id, discreteElement.select.vModel);\n });\n\n ui.scalarElements.forEach((scalarElement) => {\n value = doEvaluateValue(value, scalarElement.id, scalarElement.input_number.vModel);\n });\n\n return Function(\"return \" + value + \";\")();\n}\n\nexport function evaluateSimulationValue(parent, results, value, i) {\n parent.json.output.data.forEach((data) => {\n value = doEvaluateValue(value, data.id, results[parent.simulationDataId[data.id]][i]);\n });\n\n return Function(\"return \" + value + \";\")();\n}\n","import { Validator } from \"jsonschema\";\n\nexport function validJson(json) {\n // Check the JSON against our schema.\n\n let validator = new Validator();\n let schema = {\n additionalProperties: false,\n properties: {\n input: {\n items: {\n oneOf: [\n {\n additionalProperties: false,\n properties: {\n defaultValue: {\n required: true,\n type: \"number\",\n },\n id: {\n type: \"string\",\n },\n name: {\n required: true,\n type: \"string\",\n },\n possibleValues: {\n items: {\n additionalProperties: false,\n properties: {\n name: {\n required: true,\n type: \"string\",\n },\n value: {\n required: true,\n type: \"number\",\n },\n },\n type: \"object\",\n },\n minItems: 1,\n required: true,\n type: \"array\",\n },\n },\n },\n {\n additionalProperties: false,\n properties: {\n defaultValue: {\n required: true,\n type: \"number\",\n },\n enabled: {\n type: \"string\",\n },\n id: {\n type: \"string\",\n },\n maximumValue: {\n required: true,\n type: \"number\",\n },\n minimumValue: {\n required: true,\n type: \"number\",\n },\n name: {\n required: true,\n type: \"string\",\n },\n },\n },\n ],\n type: \"object\",\n },\n minItems: 1,\n type: \"array\",\n },\n output: {\n additionalProperties: false,\n properties: {\n data: {\n items: {\n additionalProperties: false,\n properties: {\n id: {\n type: \"string\",\n },\n name: {\n required: true,\n type: \"string\",\n },\n },\n type: \"object\",\n },\n type: \"array\",\n },\n plots: {\n items: {\n additionalProperties: false,\n properties: {\n xAxisTitle: {\n required: true,\n type: \"string\",\n },\n xValue: {\n required: true,\n type: \"string\",\n },\n yAxisTitle: {\n required: true,\n type: \"string\",\n },\n yValue: {\n required: true,\n type: \"string\",\n },\n },\n type: \"object\",\n },\n maxItems: 9,\n minItems: 1,\n required: true,\n type: \"array\",\n },\n },\n required: true,\n type: \"object\",\n },\n parameters: {\n items: {\n additionalProperties: false,\n properties: {\n name: {\n required: true,\n type: \"string\",\n },\n value: {\n required: true,\n type: \"string\",\n },\n },\n type: \"object\",\n },\n type: \"array\",\n },\n simulation: {\n additionalProperties: false,\n properties: {\n endingPoint: {\n required: true,\n type: \"number\",\n },\n pointInterval: {\n required: true,\n type: \"number\",\n },\n },\n type: \"object\",\n },\n },\n type: \"object\",\n };\n\n let result = validator.validate(json, schema, { nestedErrors: true });\n\n if (!result.valid) {\n console.warn(result.toString());\n\n return false;\n }\n\n // Make sure that the input information makes sense.\n\n let inputIdUsed = [];\n let inputValid = json.input.every((input) => {\n if (input.id !== undefined) {\n if (input.id === \"\") {\n console.warn(\"JSON: an input id must not be empty.\");\n\n return false;\n }\n\n if (inputIdUsed[input.id]) {\n console.warn(\"JSON: an input id must be unique (\" + input.id + \" is used more than once).\");\n\n return false;\n }\n\n inputIdUsed[input.id] = true;\n }\n\n if (input.name === \"\") {\n console.warn(\"JSON: an input name must not be empty.\");\n\n return false;\n }\n\n if (input.possibleValues !== undefined) {\n if (!input.possibleValues.every((possibleValue) => {\n if (possibleValue.name === \"\") {\n console.warn(\"JSON: an input possible value must not have an empty name.\");\n\n return false;\n }\n\n return true;\n })) {\n return false;\n }\n\n let values = input.possibleValues.map((value) => {\n return value.value;\n });\n let valueUsed = [];\n\n if (!values.every((value) => {\n if (valueUsed[value]) {\n console.warn(\"JSON: an input possible value must have a unique value (\" + value + \" is used more than once).\");\n\n return false;\n }\n\n valueUsed[value] = true;\n\n return true;\n })) {\n return false;\n }\n\n if (!values.includes(input.defaultValue)) {\n console.warn(\"JSON: the input default value (\" + input.defaultValue + \") must be one of the possible values (\" + values.join(\", \") + \").\");\n\n return false;\n }\n }\n\n if (input.enabled !== undefined) {\n if (input.enabled === \"\") {\n console.warn(\"JSON: an input enabled must not be empty.\");\n\n return false;\n }\n }\n\n if ((input.minimumValue !== undefined) && (input.maximumValue !== undefined)) {\n if (input.minimumValue >= input.maximumValue) {\n console.warn(\"JSON: the input minimum value (\" + input.minimumValue + \") must be lower than the maximum value (\" + input.maximumValue + \").\");\n\n return false;\n }\n\n if ((input.defaultValue < input.minimumValue) || (input.defaultValue > input.maximumValue)) {\n console.warn(\"JSON: the input default value (\" + input.defaultValue + \") must be greater or equal to the minimum value (\" + input.minimumValue + \") and lower or equal to the maximum value (\" + input.maximumValue + \").\");\n\n return false;\n }\n }\n\n return true;\n });\n\n if (!inputValid) {\n return false;\n }\n\n // Make sure that the output information makes sense.\n\n let outputIdUsed = [];\n let outputDataValid = json.output.data.every((outputData) => {\n if (outputData.id !== undefined) {\n if (outputData.id === \"\") {\n console.warn(\"JSON: an output data id must not be empty.\");\n\n return false;\n }\n\n if (outputIdUsed[outputData.id]) {\n console.warn(\"JSON: an output data id must be unique (\" + outputData.id + \" is used more than once).\");\n\n return false;\n }\n\n outputIdUsed[outputData.id] = true;\n }\n\n if (outputData.name === \"\") {\n console.warn(\"JSON: an output data name must not be empty.\");\n\n return false;\n }\n\n return true;\n });\n\n if (!outputDataValid) {\n return false;\n }\n\n let outputPlotsValid = json.output.plots.every((outputPlot) => {\n if (outputPlot.xAxisTitle === \"\") {\n console.warn(\"JSON: an output plot X axis title must not be empty.\");\n\n return false;\n }\n\n if (outputPlot.xValue === \"\") {\n console.warn(\"JSON: an output plot X value must not be empty.\");\n\n return false;\n }\n\n if (outputPlot.yAxisTitle === \"\") {\n console.warn(\"JSON: an output plot Y axis title must not be empty.\");\n\n return false;\n }\n\n if (outputPlot.yValue === \"\") {\n console.warn(\"JSON: an output plot Y value must not be empty.\");\n\n return false;\n }\n\n return true;\n });\n\n if (!outputPlotsValid) {\n return false;\n }\n\n // Make sure that the parameters information makes sense.\n\n let parametersValid = json.parameters.every((parameter) => {\n if (parameter.name === \"\") {\n console.warn(\"JSON: a parameter name must not be empty.\");\n\n return false;\n }\n\n if (parameter.value === \"\") {\n console.warn(\"JSON: a parameter value must not be empty.\");\n\n return false;\n }\n\n return true;\n });\n\n if (!parametersValid) {\n return false;\n }\n\n // Make sure that the simulation information makes sense.\n\n if (json.simulation !== undefined) {\n if (json.simulation.endingPoint <= 0.0) {\n console.warn(\"JSON: a simulation ending point must be greater than zero.\");\n\n return false;\n }\n\n if (json.simulation.pointInterval <= 0.0) {\n console.warn(\"JSON: a simulation point interval must be greater than zero.\");\n\n return false;\n }\n }\n\n return true;\n}\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import Vue from \"vue\";\nimport { evaluateValue } from \"./common.js\";\n\nexport function prepareForUi(parent) {\n let index = -1;\n\n parent.json.output.data.forEach((data) => {\n parent.simulationDataId[data.id] = data.name;\n });\n\n parent.json.output.plots.forEach((outputPlot) => {\n ++index;\n\n parent.layout[index] = {\n xaxis: {\n title: {\n text: outputPlot.xAxisTitle,\n font: {\n size: 10,\n },\n },\n },\n yaxis: {\n title: {\n text: outputPlot.yAxisTitle,\n font: {\n size: 10,\n },\n }\n },\n };\n\n parent.simulationData[index] = [{}];\n });\n}\n\nconst VueContainer = Vue.extend({\n template: `\n <div class=\"sliders-and-fields\"/>\n `,\n});\n\nconst VueInputNumber = Vue.extend({\n methods: {\n emitSynchroniseSliderAndInputNumber: function(value) {\n this.$emit(\"synchroniseSliderAndInputNumber\", this.index, value);\n }\n },\n props: {\n disabled: Boolean,\n index: Number,\n maximumValue: Number,\n minimumValue: Number,\n parent: Object,\n vModel: Number,\n },\n template: `\n <el-input-number class=\"scalar\" size=\"mini\" v-model=\"vModel\" :controls=\"false\" :disabled=\"disabled\" :max=\"maximumValue\" :min=\"minimumValue\" @change=\"emitSynchroniseSliderAndInputNumber\" />\n `,\n});\n\nconst VueLabel = Vue.extend({\n props: {\n classes: String,\n label: String,\n },\n template: `\n <p :class=\"classes\">{{ label }}</p>\n `,\n});\n\nconst VueSelect = Vue.extend({\n methods: {\n emitSelectionChanged: function(value) {\n this.$emit(\"selectionChanged\", this.index, value);\n }\n },\n props: {\n index: Number,\n parent: Object,\n possibleValues: Array,\n vModel: Number,\n },\n template: `\n <el-select class=\"discrete\" popper-class=\"discrete-popper\" size=\"mini\" v-model=\"vModel\" :popper-append-to-body=\"false\" @change=\"emitSelectionChanged\">\n <el-option v-for=\"possibleValue in possibleValues\" :key=\"possibleValue.value\" :label=\"possibleValue.name\" :value=\"possibleValue.value\" />\n </el-select>\n `,\n});\n\nconst VueSlider = Vue.extend({\n methods: {\n emitSynchroniseSliderAndInputNumber: function(value) {\n this.$emit(\"synchroniseSliderAndInputNumber\", this.index, value);\n }\n },\n props: {\n disabled: Boolean,\n index: Number,\n maximumValue: Number,\n parent: Object,\n vModel: Number,\n },\n template: `\n <el-slider v-model=\"vModel\" :disabled=\"disabled\" :max=\"maximumValue\" :show-input=\"false\" :show-tooltip=\"false\" @input=\"emitSynchroniseSliderAndInputNumber\" />\n `,\n});\n\nexport default class Ui {\n discreteElements = [];\n scalarElements = [];\n\n setVueAttributes(root, element) {\n root.attributes.forEach((attribute) => {\n element.setAttribute(attribute.nodeName, attribute.nodeValue);\n });\n\n element.children.forEach((childElement) => {\n this.setVueAttributes(root, childElement);\n });\n }\n\n addVueElement(root, parent, element) {\n element.$mount();\n\n this.setVueAttributes(root, element.$el);\n\n parent.appendChild(element.$el);\n }\n\n selectionChanged() {\n // Enable/disable all the scalar elements.\n\n let ui = (this instanceof Ui)?this:this.parent;\n\n ui.scalarElements.forEach((scalarElement) => {\n let enabled = scalarElement.enabled;\n\n if (enabled !== undefined) {\n let disabled = !evaluateValue(ui, enabled);\n\n scalarElement.slider.disabled = disabled;\n scalarElement.input_number.disabled = disabled;\n }\n });\n }\n\n synchroniseSliderAndInputNumber(index, value) {\n // Make sure that both a slider and its corresponding input number have\n // the same value.\n\n this.parent.scalarElements[index].slider.vModel = value;\n this.parent.scalarElements[index].input_number.vModel = value;\n }\n\n constructor(parent) {\n // Generate the UI for the input fields.\n\n let inputRoot = parent.$refs.input;\n let isPreviousDiscrete = true;\n let slidersAndFieldsContainer = undefined;\n let firstScalarInput = true;\n let discreteElementIndex = -1;\n let scalarElementIndex = -1;\n\n parent.json.input.forEach((input) => {\n // Determine whether we are dealing with a discrete or a scalar input.\n\n let isDiscrete = input.possibleValues !== undefined;\n\n // Determine our element mode and create a container for our sliders and\n // input numbers, if needed.\n\n if (!isDiscrete && isPreviousDiscrete) {\n slidersAndFieldsContainer = new VueContainer();\n\n this.addVueElement(inputRoot, inputRoot, slidersAndFieldsContainer);\n }\n\n isPreviousDiscrete = isDiscrete;\n\n // Add the Label.\n\n let label = new VueLabel({\n propsData: {\n classes: \"default \" + (isDiscrete?\"discrete\":firstScalarInput?\"first-scalar\":\"scalar\"),\n label: input.name,\n }\n });\n\n this.addVueElement(inputRoot, isDiscrete?inputRoot:slidersAndFieldsContainer.$el, label);\n\n firstScalarInput = isDiscrete;\n\n // Add a drop-down list or a slider and a text box depending on whether\n // we are dealing with a discrete or a scalar input.\n\n if (isDiscrete) {\n // Add the drop-down list.\n\n ++discreteElementIndex;\n\n let select = new VueSelect({\n propsData: {\n index: discreteElementIndex,\n parent: this,\n possibleValues: input.possibleValues,\n vModel: input.defaultValue,\n },\n });\n\n this.addVueElement(inputRoot, inputRoot, select);\n\n select.$on(\"selectionChanged\", this.selectionChanged);\n\n // Keep track of the select and its id.\n\n this.discreteElements[discreteElementIndex] = {\n id: input.id,\n select: select,\n };\n } else {\n // Add the slider and input number.\n\n ++scalarElementIndex;\n\n let slider = new VueSlider({\n propsData: {\n index: scalarElementIndex,\n maximumValue: input.maximumValue,\n parent: this,\n vModel: input.defaultValue,\n },\n });\n let inputNumber = new VueInputNumber({\n propsData: {\n index: scalarElementIndex,\n maximumValue: input.maximumValue,\n minimumValue: input.minimumValue,\n parent: this,\n vModel: input.defaultValue,\n },\n });\n\n this.addVueElement(inputRoot, slidersAndFieldsContainer.$el, slider);\n this.addVueElement(inputRoot, slidersAndFieldsContainer.$el, inputNumber);\n\n slider.$on(\"synchroniseSliderAndInputNumber\", this.synchroniseSliderAndInputNumber);\n inputNumber.$on(\"synchroniseSliderAndInputNumber\", this.synchroniseSliderAndInputNumber);\n\n // Keep track of the slider and input number.\n\n this.scalarElements[scalarElementIndex] = {\n enabled: input.enabled,\n id: input.id,\n input_number: inputNumber,\n slider: slider,\n };\n }\n });\n\n // Configure the PlotVuer's.\n // Note: the PlotVuer's are created in SimulationVuer.vue since we can't\n // create them dynamically. So, all we need to do here is to configure\n // them.\n\n parent.$refs.output.classList.add(\"x\" + parent.json.output.plots.length);\n\n // Enable/disable all the elements by pretending that a selection changed.\n\n this.selectionChanged();\n }\n}\n","<template>\n <div class=\"simulation-vuer\" v-loading=\"simulationBeingComputed\" element-loading-text=\"Loading simulation results...\">\n <p v-if=\"!hasValidJson\" class=\"default error\"><span class=\"error\">Error:</span> an unknown or invalid model was provided.</p>\n <div class=\"main\" v-if=\"hasValidJson\">\n <div class=\"main-left\">\n <p class=\"default title\">{{title}}</p>\n <el-divider></el-divider>\n <p class=\"default input-parameters\">Input parameters</p>\n <div ref=\"input\" />\n <div class=\"primary-button\">\n <el-button type=\"primary\" size=\"mini\" @click=\"runSimulation()\">Run simulation</el-button>\n </div>\n <div class=\"secondary-button\">\n <el-button size=\"mini\" @click=\"goToOsparc()\">Go to oSPARC</el-button>\n </div>\n <div class=\"secondary-button\">\n <el-button size=\"mini\" @click=\"viewDataset()\">View dataset</el-button>\n </div>\n <p class=\"default note\">Additional parameters are available on oSPARC</p>\n </div>\n <div class=\"main-right\" ref=\"output\" v-show=\"simulationValid\">\n <PlotVuer v-for=\"(outputPlot, index) in json.output.plots\" :key=\"`output-${index}`\" :layout-input=\"layout[index]\" :dataInput=\"simulationData[index]\" :plotType=\"'plotly-only'\" />\n </div>\n <div class=\"main-right\" v-show=\"!simulationValid\">\n <p class=\"default error\"><span class=\"error\">Error:</span> <span v-html=\"errorMessage\"></span>.</p>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport Vue from \"vue\";\nimport { PlotVuer } from \"@abi-software/plotvuer\";\nimport \"@abi-software/plotvuer/dist/plotvuer.css\";\nimport { Aside, Button, Container, Divider, InputNumber, Loading, Main, Option, Select, Slider } from \"element-ui\";\nimport { jsonForNormalModel, jsonForCompositeModel } from \"./configuration.js\";\nimport { evaluateValue, evaluateSimulationValue } from \"./common.js\";\nimport { validJson } from \"./json.js\";\nimport Ui from \"./ui.js\";\nimport { prepareForUi } from \"./ui.js\";\n\nVue.use(Aside);\nVue.use(Button);\nVue.use(Container);\nVue.use(Divider);\nVue.use(InputNumber);\nVue.use(Loading);\nVue.use(Main);\nVue.use(Option);\nVue.use(Select);\nVue.use(Slider);\n\nexport default {\n name: \"SimulationVuer\",\n components: {\n PlotVuer,\n },\n props: {\n apiLocation: {\n required: true,\n type: String,\n },\n entry: {\n required: true,\n type: Object,\n },\n },\n data: function() {\n return {\n mode: 0, //---GRY--- TO BE DELETED!\n json: {},\n hasValidJson: true,\n errorMessage: \"\",\n layout: [],\n simulationData: [],\n simulationDataId: {},\n simulationBeingComputed: false,\n simulationValid: true,\n title: (this.entry !== undefined)?this.entry.name:\"\",\n ui: null,\n };\n },\n methods: {\n goToOsparc() {\n window.open(\"https://osparc.io/\", \"_blank\");\n },\n viewDataset() {\n window.open(this.entry.dataset, \"_blank\");\n },\n runSimulation() {\n this.simulationBeingComputed = true;\n\n let request = {\n model_url: this.entry.resource,\n json_config: {},\n };\n\n // Specify the ending point and point interval for the normal mode (since\n // our resource is a CellML file).\n\n if (this.json.simulation !== undefined) {\n request.json_config.simulation = {\n \"Ending point\": this.json.simulation.endingPoint,\n \"Point interval\": this.json.simulation.pointInterval,\n };\n }\n\n // Specify the simulation parameters.\n\n if (this.json.parameters != undefined) {\n request.json_config.parameters = {};\n\n this.json.parameters.forEach((parameter) => {\n request.json_config.parameters[parameter.name] = evaluateValue(this.ui, parameter.value);\n });\n }\n\n // Specify what we want to retrieve.\n\n if (this.json.output.data !== undefined) {\n let index = -1;\n\n request.json_config.output = [];\n\n this.json.output.data.forEach((outputData) => {\n request.json_config.output[++index] = outputData.name;\n });\n }\n\n // Run the simulation.\n\n let xmlhttp = new XMLHttpRequest();\n\n xmlhttp.open(\"POST\", this.apiLocation + \"/simulation\", true);\n xmlhttp.setRequestHeader(\"Content-type\", \"application/json\");\n xmlhttp.onreadystatechange = () => {\n if (xmlhttp.readyState === 4) {\n this.simulationBeingComputed = false;\n\n if (xmlhttp.status === 200) {\n let response = JSON.parse(xmlhttp.responseText);\n\n this.simulationValid = response.status === \"ok\";\n\n if (this.simulationValid) {\n // Retrieve and post-process the simulation data.\n\n let index = -1;\n let iMax = response.results[this.simulationDataId[Object.keys(this.simulationDataId)[0]]].length;\n\n this.json.output.plots.forEach((outputPlot) => {\n let xValue = [];\n let yValue = [];\n\n for (let i = 0; i < iMax; ++i) {\n xValue[i] = evaluateSimulationValue(this, response.results, outputPlot.xValue, i);\n yValue[i] = evaluateSimulationValue(this, response.results, outputPlot.yValue, i);\n }\n\n this.simulationData[++index] = [\n {\n x: xValue,\n y: yValue,\n },\n ];\n });\n } else {\n this.errorMessage = response.description;\n }\n } else {\n this.simulationValid = false;\n\n this.errorMessage = xmlhttp.statusText.toLowerCase() + \" (<a href='https://httpstatuses.com/\" + xmlhttp.status + \"/' target='_blank'>\" + xmlhttp.status + \"</a>)\";\n }\n }\n };\n xmlhttp.send(JSON.stringify(request));\n },\n },\n created: function() {\n // Manually (for now) specify the JSON configuration to be used by either\n // the normal model or the composite model.\n\n this.mode = -1;\n\n if (this.entry !== undefined) {\n if (this.entry.resource === \"https://models.physiomeproject.org/workspace/486/rawfile/55879cbc485e2d4c41f3dc6d60424b849f94c4ee/HumanSAN_Fabbri_Fantini_Wilders_Severi_2017.cellml\") {\n this.mode = 0;\n this.json = jsonForNormalModel();\n } else if (this.entry.resource === \"https://models.physiomeproject.org/workspace/698/rawfile/f3fc911063ac72ed44e84c0c5af28df41c25d452/fabbri_et_al_based_composite_SAN_model.sedml\") {\n this.mode = 1;\n this.json = jsonForCompositeModel();\n }\n }\n\n // Make sure that the JSON configuration is valid.\n\n this.hasValidJson = validJson(this.json);\n\n if (!this.hasValidJson) {\n return;\n }\n\n // Prepare ourselves for the UI by initialising some data.\n\n prepareForUi(this);\n },\n mounted: function() {\n // Finish mounting by creating the UI for the given simulation dataset.\n\n if (this.hasValidJson) {\n this.ui = new Ui(this);\n }\n },\n};\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style scoped>\n@import url(\"//unpkg.com/element-ui@2.14.1/lib/theme-chalk/index.css\");\n>>> .el-button:hover {\n box-shadow: -3px 2px 4px #00000040;\n}\n>>> .el-divider {\n margin: -8px 0 8px 0;\n width: 191px;\n}\n>>> .el-input-number.scalar {\n margin-top: -8px;\n width: 0;\n height: 0;\n}\n>>> .el-input-number.scalar .el-input {\n width: 60px;\n}\n>>> .el-input-number.scalar .el-input__inner:focus {\n border-color: #8300bf;\n}\n>>> .el-select.discrete {\n margin-bottom: 16px;\n}\n>>> .el-slider {\n width: 108px;\n margin-top: -12px;\n margin-left: 8px;\n}\n>>> .el-slider__bar {\n background-color: #8300bf;\n}\n>>> .el-slider__button {\n border-color: #8300bf;\n}\n.discrete {\n margin-left: 8px;\n}\n.discrete >>> .el-input__inner {\n font-family: Asap, sans-serif;\n}\n.discrete >>> .el-input__inner:focus,\n.discrete >>> .el-input.is-focus .el-input__inner {\n border-color: #8300bf;\n}\n.discrete-popper .el-select-dropdown__item {\n font-family: Asap, sans-serif;\n}\n.discrete-popper .el-select-dropdown__item.selected {\n font-weight: normal;\n color: #8300bf;\n}\ndiv.main {\n display: grid;\n --mainLeftWidth: 224px;\n grid-template-columns: var(--mainLeftWidth) calc(100% - var(--mainLeftWidth));\n height: 100%;\n}\ndiv.main-left {\n border-right: 1px solid #dcdfe6;\n padding: 12px 20px 12px 12px;\n height: 100%;\n overflow: auto;\n}\ndiv.main-right.x1 {\n height: 100%;\n}\ndiv.main-right.x2 {\n height: 50%;\n}\ndiv.main-right.x3 {\n height: 33.333%;\n}\ndiv.main-right.x4 {\n height: 25%;\n}\ndiv.main-right.x5 {\n height: 20%;\n}\ndiv.main-right.x6 {\n height: 16.667%;\n}\ndiv.main-right.x7 {\n height: 14.286%;\n}\ndiv.main-right.x8 {\n height: 12.5%;\n}\ndiv.main-right.x9 {\n height: 11.111%;\n}\n>>> div.main-right div.controls {\n height: 0;\n}\ndiv.plot-vuer {\n display: grid;\n width: 100%;\n}\ndiv.primary-button,\ndiv.secondary-button {\n display: flex;\n justify-content: flex-end;\n width: 191px;\n}\ndiv.primary-button {\n margin-top: 14px;\n}\ndiv.secondary-button {\n margin-top: 8px;\n}\ndiv.primary-button .el-button,\ndiv.secondary-button .el-button,\ndiv.primary-button .el-button:hover,\ndiv.secondary-button .el-button:hover {\n width: 121px;\n border-color: #8300bf;\n}\ndiv.primary-button .el-button,\ndiv.primary-button .el-button:hover {\n background-color: #8300bf;\n}\ndiv.secondary-button .el-button,\ndiv.secondary-button .el-button:hover {\n background-color: #f9f2fc;\n color: #8300bf;\n}\ndiv.simulation-vuer {\n height: 100%;\n}\ndiv.sliders-and-fields {\n display: grid;\n grid-template-columns: 132px auto;\n width: 191px;\n}\np.default {\n font-family: Asap, sans-serif;\n letter-spacing: 0;\n margin: 16px 0;\n text-align: start;\n}\np.error {\n margin-left: 16px;\n}\np.first-scalar,\np.scalar {\n grid-column-start: 1;\n grid-column-end: 3;\n margin-bottom: 8px;\n}\np.note {\n font-size: 12px;\n line-height: 16px;\n}\np.title,\np.input-parameters {\n margin-top: 0;\n font-weight: 500 /* Medium */;\n}\np.title {\n line-height: 20px;\n}\np.discrete {\n margin-top: 0;\n margin-bottom: 4px;\n}\np.first-scalar {\n margin-top: 0;\n}\np.scalar {\n margin-top: 6px;\n}\nspan.error {\n font-weight: 500 /* Medium */;\n}\n</style>\n<style scoped src=\"../styles/purple/aside.css\">\n</style>\n<style scoped src=\"../styles/purple/button.css\">\n</style>\n<style scoped src=\"../styles/purple/container.css\">\n</style>\n<style scoped src=\"../styles/purple/input-number.css\">\n</style>\n<style scoped src=\"../styles/purple/option.css\">\n</style>\n<style scoped src=\"../styles/purple/select.css\">\n</style>\n<style scoped src=\"../styles/purple/slider.css\">\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-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!./SimulationVuer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-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!./SimulationVuer.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./SimulationVuer.vue?vue&type=template&id=3e94221a&scoped=true&\"\nimport script from \"./SimulationVuer.vue?vue&type=script&lang=js&\"\nexport * from \"./SimulationVuer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SimulationVuer.vue?vue&type=style&index=0&id=3e94221a&scoped=true&lang=css&\"\nimport style1 from \"../styles/purple/aside.css?vue&type=style&index=1&id=3e94221a&scoped=true&lang=css&\"\nimport style2 from \"../styles/purple/button.css?vue&type=style&index=2&id=3e94221a&scoped=true&lang=css&\"\nimport style3 from \"../styles/purple/container.css?vue&type=style&index=3&id=3e94221a&scoped=true&lang=css&\"\nimport style4 from \"../styles/purple/input-number.css?vue&type=style&index=4&id=3e94221a&scoped=true&lang=css&\"\nimport style5 from \"../styles/purple/option.css?vue&type=style&index=5&id=3e94221a&scoped=true&lang=css&\"\nimport style6 from \"../styles/purple/select.css?vue&type=style&index=6&id=3e94221a&scoped=true&lang=css&\"\nimport style7 from \"../styles/purple/slider.css?vue&type=style&index=7&id=3e94221a&scoped=true&lang=css&\"\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 \"3e94221a\",\n null\n \n)\n\nexport default component.exports","// The Vue build version to load with the `import` command\n// (runtime-only or standalone) has been set in webpack.base.conf with an alias.\nimport SimulationVuer from './SimulationVuer.vue';\n\nexport {\n SimulationVuer\n};\n","import './setPublicPath'\nexport * from '~entry'\n","module.exports = require(\"core-js/modules/es.string.includes.js\");"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack://simulationvuer/webpack/bootstrap","webpack://simulationvuer/./src/styles/purple/button.css?d314","webpack://simulationvuer/external \"core-js/modules/web.dom-collections.for-each.js\"","webpack://simulationvuer/./src/components/SimulationVuerInput.vue?2f11","webpack://simulationvuer/external \"core-js/modules/es.regexp.to-string.js\"","webpack://simulationvuer/external \"core-js/modules/es.array.map.js\"","webpack://simulationvuer/external \"core-js/modules/es.symbol.description.js\"","webpack://simulationvuer/./src/styles/purple/loading.css?4396","webpack://simulationvuer/./src/styles/purple/slider.css?d9af","webpack://simulationvuer/./src/styles/purple/input-number.css?49b3","webpack://simulationvuer/external \"element-ui\"","webpack://simulationvuer/external \"core-js/modules/es.string.replace.js\"","webpack://simulationvuer/./src/styles/purple/loading.css?dfae","webpack://simulationvuer/./src/styles/purple/slider.css?397b","webpack://simulationvuer/./src/styles/purple/button.css?8414","webpack://simulationvuer/./src/components/SimulationVuer.vue?4dc6","webpack://simulationvuer/external \"core-js/modules/es.array.includes.js\"","webpack://simulationvuer/external \"core-js/modules/es.regexp.constructor.js\"","webpack://simulationvuer/external \"vue\"","webpack://simulationvuer/external \"core-js/modules/es.object.to-string.js\"","webpack://simulationvuer/external \"core-js/modules/es.symbol.js\"","webpack://simulationvuer/external \"@soda/get-current-script\"","webpack://simulationvuer/./src/components/SimulationVuerInput.vue?4f88","webpack://simulationvuer/external \"jsonschema\"","webpack://simulationvuer/./src/styles/purple/input-number.css?7999","webpack://simulationvuer/./src/styles/purple/divider.css?5079","webpack://simulationvuer/external \"core-js/modules/es.array.join.js\"","webpack://simulationvuer/./src/styles/purple/divider.css?262f","webpack://simulationvuer/external \"core-js/modules/es.regexp.exec.js\"","webpack://simulationvuer/./src/styles/purple/option.css?7429","webpack://simulationvuer/external \"@abi-software/plotvuer/dist/plotvuer.css\"","webpack://simulationvuer/external \"core-js/modules/es.function.name.js\"","webpack://simulationvuer/./src/styles/purple/option.css?56a7","webpack://simulationvuer/external \"core-js/modules/es.object.keys.js\"","webpack://simulationvuer/./src/styles/purple/select.css?daa3","webpack://simulationvuer/external \"@abi-software/plotvuer\"","webpack://simulationvuer/external \"core-js/modules/es.number.constructor.js\"","webpack://simulationvuer/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://simulationvuer/./src/components/SimulationVuer.vue?c06f","webpack://simulationvuer/./src/components/SimulationVuerInput.vue?e53d","webpack://simulationvuer/./src/components/common.js","webpack://simulationvuer/./src/components/ui.js","webpack://simulationvuer/src/components/SimulationVuerInput.vue","webpack://simulationvuer/./src/components/SimulationVuerInput.vue?a5be","webpack://simulationvuer/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://simulationvuer/./src/components/SimulationVuerInput.vue?0d90","webpack://simulationvuer/./src/components/json.js","webpack://simulationvuer/src/components/SimulationVuer.vue","webpack://simulationvuer/./src/components/SimulationVuer.vue?8c0f","webpack://simulationvuer/./src/components/SimulationVuer.vue?385d","webpack://simulationvuer/./src/components/index.js","webpack://simulationvuer/./node_modules/@vue/cli-service/lib/commands/build/entry-lib-no-default.js","webpack://simulationvuer/external \"core-js/modules/es.string.includes.js\"","webpack://simulationvuer/./src/styles/purple/select.css?88bc","webpack://simulationvuer/./src/components/SimulationVuer.vue?82f9"],"names":["doEvaluateValue","value","from","to","undefined","re","RegExp","replace","evaluateValue","parent","index","simulationUiInformation","input","forEach","id","$children","vModel","Function","evaluateSimulationValue","results","i","output","data","simulationDataId","initialiseUi","isPreviousDiscrete","isDiscrete","possibleValues","firstScalarInput","name","plots","outputPlot","layout","xaxis","title","text","xAxisTitle","font","size","yaxis","yAxisTitle","simulationData","finaliseUi","hasFinalisedUi","isMounted","hasValidSimulationUiInformation","$refs","classList","add","length","updateUi","$nextTick","enabled","validJson","json","validator","Validator","schema","additionalProperties","properties","items","oneOf","defaultValue","required","type","minItems","maximumValue","minimumValue","xValue","yValue","maxItems","parameters","simulation","endingPoint","pointInterval","result","validate","nestedErrors","valid","console","warn","toString","inputIdUsed","inputValid","every","possibleValue","values","map","valueUsed","includes","join","outputIdUsed","outputDataValid","outputData","outputPlotsValid","parametersValid","parameter"],"mappings":"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AAf,CAApF;AACD,KAFD;AAGD,GAND;AAOD,C;;;;;;;;;;;;;;;;ACjED;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA,6BADA;AAEA;AACA;AACA,oBADA;AAEA;AAFA,KADA;AAKA;AACA;AADA,KALA;AAQA;AACA;AADA,KARA;AAWA;AACA;AADA,KAXA;AAcA;AACA,oBADA;AAEA;AAFA,KAdA;AAkBA;AACA;AADA;AAlBA,GAFA;AAwBA;AACA;AACA,mBADA;AAEA,mDAFA;AAGA,qIAHA;AAIA;AAJA;AAMA,GA/BA;AAgCA;AACA;AACA;AACA;AAHA;AAhCA,G;;ACvB6U,CAAgB,sIAAG,EAAC,C;;;;;;;;;;;;;;;;;ACAjW;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;ACjG8G;AACvC;AACL;AACqC;AACQ;AACN;AACA;AACA;;;AAGzG;AAC0F;AAC1F,gBAAgB,kBAAU;AAC1B,EAAE,sDAAM;AACR,EAAE,mEAAM;AACR,EAAE,4EAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEe,yE;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBf;AAEO,SAASC,SAAT,CAAmBC,IAAnB,EAAyB;AAC9B;AAEA,MAAIC,SAAS,GAAG,IAAIC,iCAAJ,EAAhB;AACA,MAAIC,MAAM,GAAG;AACXC,wBAAoB,EAAE,KADX;AAE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","file":"simulationvuer.common.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\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\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 = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fae3\");\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!./button.css?vue&type=style&index=1&id=d2c3a0be&scoped=true&lang=css&\"","module.exports = require(\"core-js/modules/web.dom-collections.for-each.js\");","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SimulationVuerInput.vue?vue&type=style&index=0&id=ca4c3b6e&scoped=true&lang=css&\"","module.exports = require(\"core-js/modules/es.regexp.to-string.js\");","module.exports = require(\"core-js/modules/es.array.map.js\");","module.exports = require(\"core-js/modules/es.symbol.description.js\");","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!./loading.css?vue&type=style&index=3&id=d2c3a0be&scoped=true&lang=css&\"","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","module.exports = require(\"element-ui\");","module.exports = require(\"core-js/modules/es.string.replace.js\");","// extracted by mini-css-extract-plugin","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!./slider.css?vue&type=style&index=4&id=ca4c3b6e&scoped=true&lang=css&\"","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","module.exports = require(\"core-js/modules/es.array.includes.js\");","module.exports = require(\"core-js/modules/es.regexp.constructor.js\");","module.exports = require(\"vue\");","module.exports = require(\"core-js/modules/es.object.to-string.js\");","module.exports = require(\"core-js/modules/es.symbol.js\");","module.exports = require(\"@soda/get-current-script\");","// extracted by mini-css-extract-plugin","module.exports = require(\"jsonschema\");","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!./input-number.css?vue&type=style&index=1&id=ca4c3b6e&scoped=true&lang=css&\"","// extracted by mini-css-extract-plugin","module.exports = require(\"core-js/modules/es.array.join.js\");","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!./divider.css?vue&type=style&index=2&id=d2c3a0be&scoped=true&lang=css&\"","module.exports = require(\"core-js/modules/es.regexp.exec.js\");","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!./option.css?vue&type=style&index=2&id=ca4c3b6e&scoped=true&lang=css&\"","module.exports = require(\"@abi-software/plotvuer/dist/plotvuer.css\");","module.exports = require(\"core-js/modules/es.function.name.js\");","// extracted by mini-css-extract-plugin","module.exports = require(\"core-js/modules/es.object.keys.js\");","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!./select.css?vue&type=style&index=3&id=ca4c3b6e&scoped=true&lang=css&\"","module.exports = require(\"@abi-software/plotvuer\");","module.exports = require(\"core-js/modules/es.number.constructor.js\");","// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.showUserMessage),expression:\"showUserMessage\"}],staticClass:\"simulation-vuer\",attrs:{\"element-loading-text\":_vm.userMessage}},[(!_vm.hasValidSimulationUiInformation && !_vm.showUserMessage)?_c('p',{staticClass:\"default error\"},[_c('span',{staticClass:\"error\"},[_vm._v(\"Error:\")]),_vm._v(\" an unknown or invalid model was provided.\")]):_vm._e(),(_vm.hasValidSimulationUiInformation)?_c('div',{staticClass:\"main\"},[_c('div',{staticClass:\"main-left\"},[_c('p',{staticClass:\"default title\"},[_vm._v(_vm._s(_vm.title))]),_c('el-divider'),_c('p',{staticClass:\"default input-parameters\"},[_vm._v(\"Input parameters\")]),_c('div',_vm._l((_vm.simulationUiInformation.input),function(input,index){return _c('SimulationVuerInput',{key:(\"input-\" + index),attrs:{\"defaultValue\":input.defaultValue,\"firstScalarInput\":_vm.firstScalarInput[index],\"name\":input.name,\"maximumValue\":input.maximumValue,\"minimumValue\":input.minimumValue,\"possibleValues\":input.possibleValues}})}),1),_c('div',{ref:\"input\"}),_c('div',{staticClass:\"primary-button\"},[_c('el-button',{attrs:{\"type\":\"primary\",\"size\":\"mini\"},on:{\"click\":function($event){return _vm.runSimulation()}}},[_vm._v(\"Run simulation\")])],1),_c('div',{staticClass:\"secondary-button\"},[_c('el-button',{attrs:{\"size\":\"mini\"},on:{\"click\":function($event){return _vm.goToOsparc()}}},[_vm._v(\"Go to oSPARC\")])],1),_c('div',{staticClass:\"secondary-button\"},[_c('el-button',{attrs:{\"size\":\"mini\"},on:{\"click\":function($event){return _vm.viewDataset()}}},[_vm._v(\"View dataset\")])],1),_c('p',{staticClass:\"default note\"},[_vm._v(\"Additional parameters are available on oSPARC\")])],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isSimulationValid),expression:\"isSimulationValid\"}],ref:\"output\",staticClass:\"main-right\"},_vm._l((_vm.simulationUiInformation.output.plots),function(outputPlot,index){return _c('PlotVuer',{key:(\"output-\" + index),attrs:{\"layout-input\":_vm.layout[index],\"dataInput\":_vm.simulationData[index],\"plotType\":'plotly-only'}})}),1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isSimulationValid),expression:\"!isSimulationValid\"}],staticClass:\"main-right\"},[_c('p',{staticClass:\"default error\"},[_c('span',{staticClass:\"error\"},[_vm._v(\"Error:\")]),_vm._v(\" \"),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.errorMessage)}}),_vm._v(\".\")])])]):_vm._e()])}\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',[_c('p',{class:_vm.labelClasses},[_vm._v(_vm._s(_vm.name))]),(_vm.isDiscrete)?_c('el-select',{staticClass:\"discrete\",attrs:{\"popper-class\":\"discrete-popper\",\"size\":\"mini\",\"disabled\":!_vm.enabled,\"popper-append-to-body\":false},on:{\"change\":function($event){return _vm.updateUi()}},model:{value:(_vm.vModel),callback:function ($$v) {_vm.vModel=$$v},expression:\"vModel\"}},_vm._l((_vm.possibleValues),function(possibleValue){return _c('el-option',{key:possibleValue.value,attrs:{\"label\":possibleValue.name,\"value\":possibleValue.value}})}),1):_vm._e(),(!_vm.isDiscrete)?_c('div',{staticClass:\"sliders-and-fields\"},[_c('el-slider',{attrs:{\"disabled\":!_vm.enabled,\"max\":_vm.maximumValue,\"min\":_vm.minimumValue,\"show-input\":false,\"show-tooltip\":false},on:{\"change\":function($event){return _vm.updateUi()}},model:{value:(_vm.vModel),callback:function ($$v) {_vm.vModel=$$v},expression:\"vModel\"}}),_c('el-input-number',{staticClass:\"scalar\",attrs:{\"size\":\"mini\",\"controls\":false,\"disabled\":!_vm.enabled,\"max\":_vm.maximumValue,\"min\":_vm.minimumValue},on:{\"input\":function($event){return _vm.updateUi()}},model:{value:(_vm.vModel),callback:function ($$v) {_vm.vModel=$$v},expression:\"vModel\"}})],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function doEvaluateValue(value, from, to) {\n if (from !== undefined) {\n let re = new RegExp(`\\\\b${ from }\\\\b`, 'g');\n\n value = value.replace(re, to);\n }\n\n return value;\n}\n\nexport function evaluateValue(parent, value) {\n let index = -1;\n\n parent.simulationUiInformation.input.forEach((input) => {\n ++index;\n\n value = doEvaluateValue(value, input.id, parent.$children[index].vModel);\n });\n\n return Function(\"return \" + value + \";\")();\n}\n\nexport function evaluateSimulationValue(parent, results, value, i) {\n parent.simulationUiInformation.output.data.forEach((data) => {\n value = doEvaluateValue(value, data.id, results[parent.simulationDataId[data.id]][i]);\n });\n\n return Function(\"return \" + value + \";\")();\n}\n","import { evaluateValue } from \"./common.js\";\n\nexport function initialiseUi(parent) {\n // Initialise some input-related data.\n\n let index = -1;\n let isPreviousDiscrete = true;\n\n parent.simulationUiInformation.input.forEach((input) => {\n let isDiscrete = input.possibleValues !== undefined;\n\n parent.firstScalarInput[++index] = !isDiscrete && isPreviousDiscrete;\n\n isPreviousDiscrete = isDiscrete;\n });\n\n // Initialise some output-related data.\n\n parent.simulationUiInformation.output.data.forEach((data) => {\n parent.simulationDataId[data.id] = data.name;\n });\n\n index = -1;\n\n parent.simulationUiInformation.output.plots.forEach((outputPlot) => {\n ++index;\n\n parent.layout[index] = {\n xaxis: {\n title: {\n text: outputPlot.xAxisTitle,\n font: {\n size: 10,\n },\n },\n },\n yaxis: {\n title: {\n text: outputPlot.yAxisTitle,\n font: {\n size: 10,\n },\n }\n },\n };\n\n parent.simulationData[index] = [{}];\n });\n}\n\nexport function finaliseUi(parent) {\n // Finalise our UI, but only if we haven't already done so, we are mounted,\n // and we have some valid simulation UI information.\n\n if (!parent.hasFinalisedUi && parent.isMounted && parent.hasValidSimulationUiInformation) {\n // Configure the PlotVuer's.\n\n parent.$refs.output.classList.add(\"x\" + parent.simulationUiInformation.output.plots.length);\n\n // Make sure that our UI is up to date.\n\n updateUi(parent);\n\n parent.hasFinalisedUi = true;\n }\n}\n\nexport function updateUi(parent) {\n // Enable/disable all the elements.\n // Note: we do this using $nextTick() to be ensure that the UI has been fully\n // mounted.\n\n parent.$nextTick(() => {\n let index = -1;\n\n parent.simulationUiInformation.input.forEach((input) => {\n parent.$children[++index].enabled = (input.enabled === undefined)?true:evaluateValue(parent, input.enabled);\n });\n });\n}\n","<template>\n <div>\n <p :class=\"labelClasses\">{{ name }}</p>\n <el-select class=\"discrete\" popper-class=\"discrete-popper\" size=\"mini\" v-if=\"isDiscrete\" v-model=\"vModel\" :disabled=\"!enabled\" :popper-append-to-body=\"false\" @change=\"updateUi()\">\n <el-option v-for=\"possibleValue in possibleValues\" :key=\"possibleValue.value\" :label=\"possibleValue.name\" :value=\"possibleValue.value\" />\n </el-select>\n <div class=\"sliders-and-fields\" v-if=\"!isDiscrete\">\n <el-slider v-model=\"vModel\" :disabled=\"!enabled\" :max=\"maximumValue\" :min=\"minimumValue\" :show-input=\"false\" :show-tooltip=\"false\" @change=\"updateUi()\" />\n <el-input-number class=\"scalar\" size=\"mini\" v-model=\"vModel\" :controls=\"false\" :disabled=\"!enabled\" :max=\"maximumValue\" :min=\"minimumValue\" @input=\"updateUi()\" />\n </div>\n </div>\n</template>\n\n<script>\nimport Vue from \"vue\";\nimport { InputNumber, Option, Select, Slider } from \"element-ui\";\nimport { updateUi } from \"./ui.js\";\n\nVue.use(InputNumber);\nVue.use(Option);\nVue.use(Select);\nVue.use(Slider);\n\nexport default {\n name: \"SimulationVuerInput\",\n props: {\n defaultValue: {\n required: true,\n type: Number,\n },\n firstScalarInput: {\n type: Boolean,\n },\n maximumValue: {\n type: Number,\n },\n minimumValue: {\n type: Number,\n },\n name: {\n required: true,\n type: String,\n },\n possibleValues: {\n type: Array,\n },\n },\n data: function() {\n return {\n enabled: true,\n isDiscrete: this.possibleValues !== undefined,\n labelClasses: \"default \" + ((this.possibleValues !== undefined)?\"discrete\":this.firstScalarInput?\"first-scalar\":\"scalar\"),\n vModel: this.defaultValue,\n };\n },\n methods: {\n updateUi: function() {\n updateUi(this.$parent);\n },\n },\n};\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style scoped>\n@import url(\"//unpkg.com/element-ui@2.14.1/lib/theme-chalk/index.css\");\n>>> .el-input-number.scalar {\n margin-top: -8px;\n width: 0;\n}\n>>> .el-input-number.scalar .el-input {\n width: 60px;\n}\n>>> .el-input-number.scalar .el-input__inner:focus {\n border-color: #8300bf;\n}\n>>> .el-select.discrete {\n margin-bottom: 16px;\n}\n>>> .el-slider {\n width: 108px;\n margin-top: -12px;\n margin-left: 8px;\n}\n>>> .el-slider__bar {\n background-color: #8300bf;\n}\n>>> .el-slider__button {\n border-color: #8300bf;\n}\n.discrete {\n margin-left: 8px;\n}\n.discrete >>> .el-input__inner {\n font-family: Asap, sans-serif;\n}\n.discrete >>> .el-input__inner:focus,\n.discrete >>> .el-input.is-focus .el-input__inner {\n border-color: #8300bf;\n}\n.discrete-popper .el-select-dropdown__item {\n font-family: Asap, sans-serif;\n}\n.discrete-popper .el-select-dropdown__item.selected {\n font-weight: normal;\n color: #8300bf;\n}\n.scalar >>> .el-input__inner {\n text-align: center;\n}\ndiv.simulation-vuer {\n height: 100%;\n}\ndiv.sliders-and-fields {\n display: grid;\n grid-template-columns: 132px auto;\n width: 191px;\n height: 26px;\n}\np.default {\n font-family: Asap, sans-serif;\n letter-spacing: 0;\n margin: 16px 0;\n text-align: start;\n}\np.first-scalar,\np.scalar {\n grid-column-start: 1;\n grid-column-end: 3;\n margin-bottom: 8px;\n}\np.discrete {\n margin-top: 0;\n margin-bottom: 4px;\n}\np.first-scalar {\n margin-top: 0;\n}\np.scalar {\n margin-top: 6px;\n}\n</style>\n<style scoped src=\"../styles/purple/input-number.css\">\n</style>\n<style scoped src=\"../styles/purple/option.css\">\n</style>\n<style scoped src=\"../styles/purple/select.css\">\n</style>\n<style scoped src=\"../styles/purple/slider.css\">\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-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!./SimulationVuerInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-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!./SimulationVuerInput.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./SimulationVuerInput.vue?vue&type=template&id=ca4c3b6e&scoped=true&\"\nimport script from \"./SimulationVuerInput.vue?vue&type=script&lang=js&\"\nexport * from \"./SimulationVuerInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SimulationVuerInput.vue?vue&type=style&index=0&id=ca4c3b6e&scoped=true&lang=css&\"\nimport style1 from \"../styles/purple/input-number.css?vue&type=style&index=1&id=ca4c3b6e&scoped=true&lang=css&\"\nimport style2 from \"../styles/purple/option.css?vue&type=style&index=2&id=ca4c3b6e&scoped=true&lang=css&\"\nimport style3 from \"../styles/purple/select.css?vue&type=style&index=3&id=ca4c3b6e&scoped=true&lang=css&\"\nimport style4 from \"../styles/purple/slider.css?vue&type=style&index=4&id=ca4c3b6e&scoped=true&lang=css&\"\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 \"ca4c3b6e\",\n null\n \n)\n\nexport default component.exports","import { Validator } from \"jsonschema\";\n\nexport function validJson(json) {\n // Check the JSON against our schema.\n\n let validator = new Validator();\n let schema = {\n additionalProperties: false,\n properties: {\n input: {\n items: {\n oneOf: [\n {\n additionalProperties: false,\n properties: {\n defaultValue: {\n required: true,\n type: \"number\",\n },\n enabled: {\n type: \"string\",\n },\n id: {\n type: \"string\",\n },\n name: {\n required: true,\n type: \"string\",\n },\n possibleValues: {\n items: {\n additionalProperties: false,\n properties: {\n name: {\n required: true,\n type: \"string\",\n },\n value: {\n required: true,\n type: \"number\",\n },\n },\n type: \"object\",\n },\n minItems: 1,\n required: true,\n type: \"array\",\n },\n },\n },\n {\n additionalProperties: false,\n properties: {\n defaultValue: {\n required: true,\n type: \"number\",\n },\n enabled: {\n type: \"string\",\n },\n id: {\n type: \"string\",\n },\n maximumValue: {\n required: true,\n type: \"number\",\n },\n minimumValue: {\n required: true,\n type: \"number\",\n },\n name: {\n required: true,\n type: \"string\",\n },\n },\n },\n ],\n type: \"object\",\n },\n minItems: 1,\n type: \"array\",\n },\n output: {\n additionalProperties: false,\n properties: {\n data: {\n items: {\n additionalProperties: false,\n properties: {\n id: {\n type: \"string\",\n },\n name: {\n required: true,\n type: \"string\",\n },\n },\n type: \"object\",\n },\n type: \"array\",\n },\n plots: {\n items: {\n additionalProperties: false,\n properties: {\n xAxisTitle: {\n required: true,\n type: \"string\",\n },\n xValue: {\n required: true,\n type: \"string\",\n },\n yAxisTitle: {\n required: true,\n type: \"string\",\n },\n yValue: {\n required: true,\n type: \"string\",\n },\n },\n type: \"object\",\n },\n maxItems: 9,\n minItems: 1,\n required: true,\n type: \"array\",\n },\n },\n required: true,\n type: \"object\",\n },\n parameters: {\n items: {\n additionalProperties: false,\n properties: {\n name: {\n required: true,\n type: \"string\",\n },\n value: {\n required: true,\n type: \"string\",\n },\n },\n type: \"object\",\n },\n type: \"array\",\n },\n simulation: {\n additionalProperties: false,\n properties: {\n endingPoint: {\n required: true,\n type: \"number\",\n },\n pointInterval: {\n required: true,\n type: \"number\",\n },\n },\n type: \"object\",\n },\n },\n type: \"object\",\n };\n\n let result = validator.validate(json, schema, { nestedErrors: true });\n\n if (!result.valid) {\n console.warn(result.toString());\n\n return false;\n }\n\n // Make sure that the input information makes sense.\n\n let inputIdUsed = [];\n let inputValid = json.input.every((input) => {\n if (input.id !== undefined) {\n if (input.id === \"\") {\n console.warn(\"JSON: an input id must not be empty.\");\n\n return false;\n }\n\n if (inputIdUsed[input.id]) {\n console.warn(\"JSON: an input id must be unique (\" + input.id + \" is used more than once).\");\n\n return false;\n }\n\n inputIdUsed[input.id] = true;\n }\n\n if (input.name === \"\") {\n console.warn(\"JSON: an input name must not be empty.\");\n\n return false;\n }\n\n if (input.possibleValues !== undefined) {\n if (!input.possibleValues.every((possibleValue) => {\n if (possibleValue.name === \"\") {\n console.warn(\"JSON: an input possible value must not have an empty name.\");\n\n return false;\n }\n\n return true;\n })) {\n return false;\n }\n\n let values = input.possibleValues.map((value) => {\n return value.value;\n });\n let valueUsed = [];\n\n if (!values.every((value) => {\n if (valueUsed[value]) {\n console.warn(\"JSON: an input possible value must have a unique value (\" + value + \" is used more than once).\");\n\n return false;\n }\n\n valueUsed[value] = true;\n\n return true;\n })) {\n return false;\n }\n\n if (!values.includes(input.defaultValue)) {\n console.warn(\"JSON: the input default value (\" + input.defaultValue + \") must be one of the possible values (\" + values.join(\", \") + \").\");\n\n return false;\n }\n }\n\n if (input.enabled !== undefined) {\n if (input.enabled === \"\") {\n console.warn(\"JSON: an input enabled must not be empty.\");\n\n return false;\n }\n }\n\n if ((input.minimumValue !== undefined) && (input.maximumValue !== undefined)) {\n if (input.minimumValue >= input.maximumValue) {\n console.warn(\"JSON: the input minimum value (\" + input.minimumValue + \") must be lower than the maximum value (\" + input.maximumValue + \").\");\n\n return false;\n }\n\n if ((input.defaultValue < input.minimumValue) || (input.defaultValue > input.maximumValue)) {\n console.warn(\"JSON: the input default value (\" + input.defaultValue + \") must be greater or equal to the minimum value (\" + input.minimumValue + \") and lower or equal to the maximum value (\" + input.maximumValue + \").\");\n\n return false;\n }\n }\n\n return true;\n });\n\n if (!inputValid) {\n return false;\n }\n\n // Make sure that the output information makes sense.\n\n let outputIdUsed = [];\n let outputDataValid = json.output.data.every((outputData) => {\n if (outputData.id !== undefined) {\n if (outputData.id === \"\") {\n console.warn(\"JSON: an output data id must not be empty.\");\n\n return false;\n }\n\n if (outputIdUsed[outputData.id]) {\n console.warn(\"JSON: an output data id must be unique (\" + outputData.id + \" is used more than once).\");\n\n return false;\n }\n\n outputIdUsed[outputData.id] = true;\n }\n\n if (outputData.name === \"\") {\n console.warn(\"JSON: an output data name must not be empty.\");\n\n return false;\n }\n\n return true;\n });\n\n if (!outputDataValid) {\n return false;\n }\n\n let outputPlotsValid = json.output.plots.every((outputPlot) => {\n if (outputPlot.xAxisTitle === \"\") {\n console.warn(\"JSON: an output plot X axis title must not be empty.\");\n\n return false;\n }\n\n if (outputPlot.xValue === \"\") {\n console.warn(\"JSON: an output plot X value must not be empty.\");\n\n return false;\n }\n\n if (outputPlot.yAxisTitle === \"\") {\n console.warn(\"JSON: an output plot Y axis title must not be empty.\");\n\n return false;\n }\n\n if (outputPlot.yValue === \"\") {\n console.warn(\"JSON: an output plot Y value must not be empty.\");\n\n return false;\n }\n\n return true;\n });\n\n if (!outputPlotsValid) {\n return false;\n }\n\n // Make sure that the parameters information makes sense.\n\n let parametersValid = json.parameters.every((parameter) => {\n if (parameter.name === \"\") {\n console.warn(\"JSON: a parameter name must not be empty.\");\n\n return false;\n }\n\n if (parameter.value === \"\") {\n console.warn(\"JSON: a parameter value must not be empty.\");\n\n return false;\n }\n\n return true;\n });\n\n if (!parametersValid) {\n return false;\n }\n\n // Make sure that the simulation information makes sense.\n\n if (json.simulation !== undefined) {\n if (json.simulation.endingPoint <= 0.0) {\n console.warn(\"JSON: a simulation ending point must be greater than zero.\");\n\n return false;\n }\n\n if (json.simulation.pointInterval <= 0.0) {\n console.warn(\"JSON: a simulation point interval must be greater than zero.\");\n\n return false;\n }\n }\n\n return true;\n}\n","<template>\n <div class=\"simulation-vuer\" v-loading=\"showUserMessage\" :element-loading-text=\"userMessage\">\n <p v-if=\"!hasValidSimulationUiInformation && !showUserMessage\" class=\"default error\"><span class=\"error\">Error:</span> an unknown or invalid model was provided.</p>\n <div class=\"main\" v-if=\"hasValidSimulationUiInformation\">\n <div class=\"main-left\">\n <p class=\"default title\">{{title}}</p>\n <el-divider></el-divider>\n <p class=\"default input-parameters\">Input parameters</p>\n <div>\n <SimulationVuerInput v-for=\"(input, index) in simulationUiInformation.input\" :defaultValue=\"input.defaultValue\" :firstScalarInput=\"firstScalarInput[index]\" :key=\"`input-${index}`\" :name=\"input.name\" :maximumValue=\"input.maximumValue\" :minimumValue=\"input.minimumValue\" :possibleValues=\"input.possibleValues\" />\n </div>\n <div ref=\"input\" />\n <div class=\"primary-button\">\n <el-button type=\"primary\" size=\"mini\" @click=\"runSimulation()\">Run simulation</el-button>\n </div>\n <div class=\"secondary-button\">\n <el-button size=\"mini\" @click=\"goToOsparc()\">Go to oSPARC</el-button>\n </div>\n <div class=\"secondary-button\">\n <el-button size=\"mini\" @click=\"viewDataset()\">View dataset</el-button>\n </div>\n <p class=\"default note\">Additional parameters are available on oSPARC</p>\n </div>\n <div class=\"main-right\" ref=\"output\" v-show=\"isSimulationValid\">\n <PlotVuer v-for=\"(outputPlot, index) in simulationUiInformation.output.plots\" :key=\"`output-${index}`\" :layout-input=\"layout[index]\" :dataInput=\"simulationData[index]\" :plotType=\"'plotly-only'\" />\n </div>\n <div class=\"main-right\" v-show=\"!isSimulationValid\">\n <p class=\"default error\"><span class=\"error\">Error:</span> <span v-html=\"errorMessage\"></span>.</p>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport Vue from \"vue\";\nimport { PlotVuer } from \"@abi-software/plotvuer\";\nimport \"@abi-software/plotvuer/dist/plotvuer.css\";\nimport SimulationVuerInput from \"./SimulationVuerInput.vue\";\nimport { Button, Divider, Loading } from \"element-ui\";\nimport { evaluateValue, evaluateSimulationValue } from \"./common.js\";\nimport { validJson } from \"./json.js\";\nimport { initialiseUi, finaliseUi } from \"./ui.js\";\n\nVue.use(Button);\nVue.use(Divider);\nVue.use(Loading);\n\nexport default {\n name: \"SimulationVuer\",\n components: {\n PlotVuer,\n SimulationVuerInput,\n },\n props: {\n apiLocation: {\n required: true,\n type: String,\n },\n entry: {\n required: true,\n type: Object,\n },\n },\n data: function() {\n return {\n errorMessage: \"\",\n firstScalarInput: [],\n hasFinalisedUi: false,\n hasValidSimulationUiInformation: false,\n isMounted: false,\n isSimulationValid: true,\n layout: [],\n showUserMessage: false,\n simulationData: [],\n simulationDataId: {},\n simulationUiInformation: {},\n userMessage: \"\",\n title: (this.entry !== undefined)?this.entry.name:\"\",\n ui: null,\n };\n },\n methods: {\n goToOsparc() {\n window.open(\"https://osparc.io/\", \"_blank\");\n },\n viewDataset() {\n window.open(this.entry.dataset, \"_blank\");\n },\n runSimulation() {\n this.userMessage = \"Loading simulation results...\";\n this.showUserMessage = true;\n\n let request = {\n model_url: this.entry.resource,\n json_config: {},\n };\n\n // Specify the ending point and point interval, if we have some simulation\n // data.\n\n if (this.simulationUiInformation.simulation !== undefined) {\n request.json_config.simulation = {\n \"Ending point\": this.simulationUiInformation.simulation.endingPoint,\n \"Point interval\": this.simulationUiInformation.simulation.pointInterval,\n };\n }\n\n // Specify the simulation parameters.\n\n if (this.simulationUiInformation.parameters != undefined) {\n request.json_config.parameters = {};\n\n this.simulationUiInformation.parameters.forEach((parameter) => {\n request.json_config.parameters[parameter.name] = evaluateValue(this, parameter.value);\n });\n }\n\n // Specify what we want to retrieve.\n\n if (this.simulationUiInformation.output.data !== undefined) {\n let index = -1;\n\n request.json_config.output = [];\n\n this.simulationUiInformation.output.data.forEach((outputData) => {\n request.json_config.output[++index] = outputData.name;\n });\n }\n\n // Run the simulation.\n\n let xmlhttp = new XMLHttpRequest();\n\n xmlhttp.open(\"POST\", this.apiLocation + \"/simulation\", true);\n xmlhttp.setRequestHeader(\"Content-type\", \"application/json\");\n xmlhttp.onreadystatechange = () => {\n if (xmlhttp.readyState === 4) {\n this.showUserMessage = false;\n\n if (xmlhttp.status === 200) {\n let response = JSON.parse(xmlhttp.responseText);\n\n this.isSimulationValid = response.status === \"ok\";\n\n if (this.isSimulationValid) {\n // Retrieve and post-process the simulation data.\n\n let index = -1;\n let iMax = response.results[this.simulationDataId[Object.keys(this.simulationDataId)[0]]].length;\n\n this.simulationUiInformation.output.plots.forEach((outputPlot) => {\n let xValue = [];\n let yValue = [];\n\n for (let i = 0; i < iMax; ++i) {\n xValue[i] = evaluateSimulationValue(this, response.results, outputPlot.xValue, i);\n yValue[i] = evaluateSimulationValue(this, response.results, outputPlot.yValue, i);\n }\n\n this.simulationData[++index] = [\n {\n x: xValue,\n y: yValue,\n },\n ];\n });\n } else {\n this.errorMessage = response.description;\n }\n } else {\n this.isSimulationValid = false;\n\n this.errorMessage = xmlhttp.statusText.toLowerCase() + \" (<a href='https://httpstatuses.com/\" + xmlhttp.status + \"/' target='_blank'>\" + xmlhttp.status + \"</a>)\";\n }\n }\n };\n xmlhttp.send(JSON.stringify(request));\n },\n },\n created: function() {\n this.userMessage = \"Retrieving UI information...\";\n this.showUserMessage = true;\n\n // Retrieve the simulation UI file for the given dataset.\n\n let xmlhttp = new XMLHttpRequest();\n\n xmlhttp.open(\"GET\", this.apiLocation + \"/simulation_ui_file/\" + this.entry.datasetId, true);\n xmlhttp.setRequestHeader(\"Content-type\", \"application/json\");\n xmlhttp.onreadystatechange = () => {\n if (xmlhttp.readyState === 4) {\n // Keep track of the simulation UI information.\n\n this.simulationUiInformation = JSON.parse(xmlhttp.responseText);\n\n // Make sure that the simulation UI information is valid.\n\n this.hasValidSimulationUiInformation = validJson(this.simulationUiInformation);\n\n if (!this.hasValidSimulationUiInformation) {\n this.showUserMessage = false;\n\n return;\n }\n\n // Initialise our UI.\n\n initialiseUi(this);\n\n // Finalise our UI.\n // Note: we try both here and in the mounded() function since we have no\n // idea how long it's going to take to retrieve the simulation UI\n // information.\n\n this.$nextTick(() => {\n finaliseUi(this);\n\n this.showUserMessage = false;\n });\n }\n };\n xmlhttp.send();\n },\n mounted: function() {\n // Finalise our UI.\n // Note: we try both here and in the created() function since we have no\n // idea how long it's going to take to retrieve the simulation UI\n // information.\n\n this.isMounted = true;\n\n finaliseUi(this);\n },\n};\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style scoped>\n@import url(\"//unpkg.com/element-ui@2.14.1/lib/theme-chalk/index.css\");\n>>> .el-button:hover {\n box-shadow: -3px 2px 4px #00000040;\n}\n>>> .el-divider {\n margin: -8px 0 8px 0 !important;\n width: 191px;\n}\ndiv.main {\n display: grid;\n --mainLeftWidth: 224px;\n grid-template-columns: var(--mainLeftWidth) calc(100% - var(--mainLeftWidth));\n height: 100%;\n}\ndiv.main-left {\n border-right: 1px solid #dcdfe6;\n padding: 12px 20px 12px 12px;\n height: 100%;\n overflow: auto;\n}\ndiv.main-right.x1 {\n height: 100%;\n}\ndiv.main-right.x2 {\n height: 50%;\n}\ndiv.main-right.x3 {\n height: 33.333%;\n}\ndiv.main-right.x4 {\n height: 25%;\n}\ndiv.main-right.x5 {\n height: 20%;\n}\ndiv.main-right.x6 {\n height: 16.667%;\n}\ndiv.main-right.x7 {\n height: 14.286%;\n}\ndiv.main-right.x8 {\n height: 12.5%;\n}\ndiv.main-right.x9 {\n height: 11.111%;\n}\n>>> div.main-right div.controls {\n height: 0;\n}\ndiv.primary-button,\ndiv.secondary-button {\n display: flex;\n justify-content: flex-end;\n width: 191px;\n}\ndiv.primary-button {\n margin-top: 14px;\n}\ndiv.secondary-button {\n margin-top: 8px;\n}\ndiv.primary-button .el-button,\ndiv.secondary-button .el-button,\ndiv.primary-button .el-button:hover,\ndiv.secondary-button .el-button:hover {\n width: 121px;\n border-color: #8300bf;\n}\ndiv.primary-button .el-button,\ndiv.primary-button .el-button:hover {\n background-color: #8300bf;\n}\ndiv.secondary-button .el-button,\ndiv.secondary-button .el-button:hover {\n background-color: #f9f2fc;\n color: #8300bf;\n}\ndiv.simulation-vuer {\n height: 100%;\n}\np.default {\n font-family: Asap, sans-serif;\n letter-spacing: 0;\n margin: 16px 0;\n text-align: start;\n}\np.error {\n margin-left: 16px;\n}\np.note {\n font-size: 12px;\n line-height: 16px;\n}\np.title,\np.input-parameters {\n margin-top: 0;\n font-weight: 500 /* Medium */;\n}\np.title {\n line-height: 20px;\n}\nspan.error {\n font-weight: 500 /* Medium */;\n}\n</style>\n<style scoped src=\"../styles/purple/button.css\">\n</style>\n<style scoped src=\"../styles/purple/divider.css\">\n</style>\n<style scoped src=\"../styles/purple/loading.css\">\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-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!./SimulationVuer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-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!./SimulationVuer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SimulationVuer.vue?vue&type=template&id=d2c3a0be&scoped=true&\"\nimport script from \"./SimulationVuer.vue?vue&type=script&lang=js&\"\nexport * from \"./SimulationVuer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SimulationVuer.vue?vue&type=style&index=0&id=d2c3a0be&scoped=true&lang=css&\"\nimport style1 from \"../styles/purple/button.css?vue&type=style&index=1&id=d2c3a0be&scoped=true&lang=css&\"\nimport style2 from \"../styles/purple/divider.css?vue&type=style&index=2&id=d2c3a0be&scoped=true&lang=css&\"\nimport style3 from \"../styles/purple/loading.css?vue&type=style&index=3&id=d2c3a0be&scoped=true&lang=css&\"\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 \"d2c3a0be\",\n null\n \n)\n\nexport default component.exports","// The Vue build version to load with the `import` command\n// (runtime-only or standalone) has been set in webpack.base.conf with an alias.\nimport SimulationVuer from './SimulationVuer.vue';\n\nexport {\n SimulationVuer\n};\n","import './setPublicPath'\nexport * from '~entry'\n","module.exports = require(\"core-js/modules/es.string.includes.js\");","// extracted by mini-css-extract-plugin","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SimulationVuer.vue?vue&type=style&index=0&id=d2c3a0be&scoped=true&lang=css&\""],"sourceRoot":""}
|