@abi-software/simulationvuer 0.5.7 → 0.5.8
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/README.md +2 -3
- package/dist/simulationvuer.common.js +79 -79
- package/dist/simulationvuer.common.js.map +1 -1
- package/dist/simulationvuer.css +1 -1
- package/dist/simulationvuer.umd.js +79 -79
- 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-lock.json +1 -1
- package/package.json +1 -1
- package/src/components/SimulationVuer.vue +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack://simulationvuer/webpack/bootstrap","webpack://simulationvuer/./src/styles/purple/divider.css?da8e","webpack://simulationvuer/external \"core-js/modules/web.dom-collections.for-each.js\"","webpack://simulationvuer/./src/components/SimulationVuerInput.vue?2f11","webpack://simulationvuer/./src/components/SimulationVuer.vue?3ce1","webpack://simulationvuer/./src/styles/purple/button.css?3e8f","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/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/slider.css?397b","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/button.css?4be0","webpack://simulationvuer/./src/styles/purple/input-number.css?7999","webpack://simulationvuer/./src/components/SimulationVuer.vue?6dde","webpack://simulationvuer/external \"core-js/modules/es.array.join.js\"","webpack://simulationvuer/./src/styles/purple/loading.css?d295","webpack://simulationvuer/external \"core-js/modules/es.regexp.exec.js\"","webpack://simulationvuer/./src/styles/purple/option.css?7429","webpack://simulationvuer/./src/styles/purple/divider.css?1cc6","webpack://simulationvuer/./src/styles/purple/loading.css?0b8b","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?7439","webpack://simulationvuer/./src/components/SimulationVuerInput.vue?a7c6","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"],"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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AAD,EAASG,KAAK,CAACwC,OAAf,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;AAC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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!./divider.css?vue&type=style&index=2&id=d42b4ea0&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&\"","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","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\");","// 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\");","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&\"","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!./button.css?vue&type=style&index=1&id=d42b4ea0&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!./input-number.css?vue&type=style&index=1&id=ca4c3b6e&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!../../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=d42b4ea0&scoped=true&lang=css&\"","module.exports = require(\"core-js/modules/es.array.join.js\");","// extracted by mini-css-extract-plugin","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&\"","// 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!./loading.css?vue&type=style&index=3&id=d42b4ea0&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 name\"},[_vm._v(_vm._s(_vm.name))]),_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 required: true,\n type: \"array\",\n },\n output: {\n additionalProperties: false,\n minItems: 1,\n properties: {\n data: {\n items: {\n additionalProperties: false,\n properties: {\n id: {\n required: true,\n type: \"string\",\n },\n name: {\n required: true,\n type: \"string\",\n },\n },\n type: \"object\",\n },\n minItems: 1,\n required: true,\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 name\">{{name}}</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 id: {\n required: true,\n type: Number,\n },\n },\n data: function() {\n let xmlhttp = new XMLHttpRequest();\n let name = undefined;\n let resource = undefined;\n\n xmlhttp.open(\"GET\", this.apiLocation + \"dataset_info/using_pennsieve_identifier?identifier=\" + this.id, false);\n xmlhttp.setRequestHeader(\"Content-type\", \"application/json\");\n xmlhttp.send();\n\n if (xmlhttp.status === 200) {\n let datasetInfo = JSON.parse(xmlhttp.responseText).result[0];\n\n if (datasetInfo !== undefined) {\n name = datasetInfo.name;\n\n let isSedmlResource = false;\n\n datasetInfo.additionalLinks.forEach(function(el) {\n if (el.description == \"SED-ML file\") {\n isSedmlResource = true;\n resource = el.uri;\n } else if (!isSedmlResource && (el.description == \"CellML file\")) {\n resource = el.uri;\n }\n });\n }\n }\n\n return {\n errorMessage: \"\",\n firstScalarInput: [],\n hasFinalisedUi: false,\n hasValidSimulationUiInformation: false,\n isMounted: false,\n isSimulationValid: true,\n layout: [],\n name: name,\n resource: resource,\n showUserMessage: false,\n simulationData: [],\n simulationDataId: {},\n simulationUiInformation: {},\n userMessage: \"\",\n ui: null,\n };\n },\n methods: {\n goToOsparc() {\n window.open(\"https://osparc.io/\", \"_blank\");\n },\n viewDataset() {\n window.open(`https://sparc.science/datasets/${this.id}?type=dataset`, \"_blank\");\n },\n runSimulation() {\n this.userMessage = \"Loading simulation results...\";\n this.showUserMessage = true;\n\n let request = {\n model_url: this.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 // Try to retrieve the UI information, but only if we have a resource.\n\n if (this.resource !== undefined) {\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.id, 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 // 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 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 }\n }\n };\n xmlhttp.send();\n }\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.name,\np.input-parameters {\n margin-top: 0;\n font-weight: 500 /* Medium */;\n}\np.name {\n line-height: 20px;\n}\np.note {\n font-size: 12px;\n line-height: 16px;\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=d42b4ea0&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=d42b4ea0&scoped=true&lang=css&\"\nimport style1 from \"../styles/purple/button.css?vue&type=style&index=1&id=d42b4ea0&scoped=true&lang=css&\"\nimport style2 from \"../styles/purple/divider.css?vue&type=style&index=2&id=d42b4ea0&scoped=true&lang=css&\"\nimport style3 from \"../styles/purple/loading.css?vue&type=style&index=3&id=d42b4ea0&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 \"d42b4ea0\",\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"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack://simulationvuer/webpack/bootstrap","webpack://simulationvuer/./src/styles/purple/button.css?78ca","webpack://simulationvuer/./src/styles/purple/loading.css?ea97","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/components/SimulationVuer.vue?7802","webpack://simulationvuer/./src/styles/purple/divider.css?c432","webpack://simulationvuer/./src/styles/purple/slider.css?d9af","webpack://simulationvuer/./src/styles/purple/input-number.css?49b3","webpack://simulationvuer/./src/styles/purple/button.css?0be2","webpack://simulationvuer/external \"element-ui\"","webpack://simulationvuer/external \"core-js/modules/es.string.replace.js\"","webpack://simulationvuer/./src/components/SimulationVuer.vue?f828","webpack://simulationvuer/./src/styles/purple/slider.css?397b","webpack://simulationvuer/./src/styles/purple/loading.css?8ba6","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/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?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/./src/styles/purple/divider.css?60a1","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?ba03","webpack://simulationvuer/./src/components/SimulationVuerInput.vue?9c22","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"],"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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AAD,EAASG,KAAK,CAACwC,OAAf,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;AAC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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=7b9bbc23&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!./loading.css?vue&type=style&index=3&id=7b9bbc23&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!../../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=7b9bbc23&scoped=true&lang=css&\"","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","// 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","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&\"","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=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\");","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=7b9bbc23&scoped=true&lang=css&\"","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 name\"},[_vm._v(_vm._s(_vm.name))]),_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 required: true,\n type: \"array\",\n },\n output: {\n additionalProperties: false,\n minItems: 1,\n properties: {\n data: {\n items: {\n additionalProperties: false,\n properties: {\n id: {\n required: true,\n type: \"string\",\n },\n name: {\n required: true,\n type: \"string\",\n },\n },\n type: \"object\",\n },\n minItems: 1,\n required: true,\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 name\">{{name}}</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 id: {\n required: true,\n type: Number,\n },\n },\n data: function() {\n let xmlhttp = new XMLHttpRequest();\n let name = undefined;\n let resource = undefined;\n\n xmlhttp.open(\"GET\", this.apiLocation + \"/dataset_info/using_pennsieve_identifier?identifier=\" + this.id, false);\n xmlhttp.setRequestHeader(\"Content-type\", \"application/json\");\n xmlhttp.send();\n\n if (xmlhttp.status === 200) {\n let datasetInfo = JSON.parse(xmlhttp.responseText).result[0];\n\n if (datasetInfo !== undefined) {\n name = datasetInfo.name;\n\n let isSedmlResource = false;\n\n datasetInfo.additionalLinks.forEach(function(el) {\n if (el.description == \"SED-ML file\") {\n isSedmlResource = true;\n resource = el.uri;\n } else if (!isSedmlResource && (el.description == \"CellML file\")) {\n resource = el.uri;\n }\n });\n }\n }\n\n return {\n errorMessage: \"\",\n firstScalarInput: [],\n hasFinalisedUi: false,\n hasValidSimulationUiInformation: false,\n isMounted: false,\n isSimulationValid: true,\n layout: [],\n name: name,\n resource: resource,\n showUserMessage: false,\n simulationData: [],\n simulationDataId: {},\n simulationUiInformation: {},\n userMessage: \"\",\n ui: null,\n };\n },\n methods: {\n goToOsparc() {\n window.open(\"https://osparc.io/\", \"_blank\");\n },\n viewDataset() {\n window.open(`https://sparc.science/datasets/${this.id}?type=dataset`, \"_blank\");\n },\n runSimulation() {\n this.userMessage = \"Loading simulation results...\";\n this.showUserMessage = true;\n\n let request = {\n model_url: this.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 // Try to retrieve the UI information, but only if we have a resource.\n\n if (this.resource !== undefined) {\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.id, 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 // 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 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 }\n }\n };\n xmlhttp.send();\n }\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.name,\np.input-parameters {\n margin-top: 0;\n font-weight: 500 /* Medium */;\n}\np.name {\n line-height: 20px;\n}\np.note {\n font-size: 12px;\n line-height: 16px;\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=7b9bbc23&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=7b9bbc23&scoped=true&lang=css&\"\nimport style1 from \"../styles/purple/button.css?vue&type=style&index=1&id=7b9bbc23&scoped=true&lang=css&\"\nimport style2 from \"../styles/purple/divider.css?vue&type=style&index=2&id=7b9bbc23&scoped=true&lang=css&\"\nimport style3 from \"../styles/purple/loading.css?vue&type=style&index=3&id=7b9bbc23&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 \"7b9bbc23\",\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"],"sourceRoot":""}
|