{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/NodeForm.vue?e02b","webpack:///./src/components/P403.vue?ade3","webpack:///./src/components/CustomEditableNode.vue?7551","webpack:///./src/assets/help.png","webpack:///./src/components/Tab.vue?93d0","webpack:///./src/components/BaseDialog.vue?8214","webpack:///./src/components/EditableConnection.vue?88e9","webpack:///./src/components/TabsWrapper.vue?4e33","webpack:///./src/App.vue?e00f","webpack:///./src/App.vue?1366","webpack:///./src/App.vue","webpack:///./src/components/shared.vue?3528","webpack:///./src/components/shared.vue","webpack:///./src/components/BaseDialog.vue","webpack:///./src/components/BaseDialog.vue?3396","webpack:///./src/components/SmallDialog.vue","webpack:///./src/components/SmallDialog.vue?a12e","webpack:///./src/components/EditableNode.vue?7df7","webpack:///./src/components/EditableNode.vue","webpack:///./src/components/EditableConnection.vue?a426","webpack:///./src/components/EditableConnection.vue","webpack:///./src/components/NodeForm.vue","webpack:///./src/components/TabsWrapper.vue","webpack:///./src/components/TabsWrapper.vue?a844","webpack:///./src/components/Tab.vue","webpack:///./src/components/Tab.vue?d8d7","webpack:///./src/components/NodeForm.vue?b261","webpack:///./src/components/ConnectionForm.vue","webpack:///./src/components/ConnectionForm.vue?92f3","webpack:///./src/components/ContextMenu.vue","webpack:///./src/components/ContextMenu.vue?4b82","webpack:///./src/components/CustomEditableNode.vue?79af","webpack:///./src/components/CustomEditableNode.vue","webpack:///./src/components/Interface.vue?0e6a","webpack:///./src/components/Interface.vue","webpack:///./src/components/P403.vue","webpack:///./src/components/P403.vue?b3e3","webpack:///./src/router.js","webpack:///./src/main.ts","webpack:///./src/components/ContextMenu.vue?4f2f","webpack:///./src/components/ConnectionForm.vue?f451","webpack:///./src/components/Interface.vue?b296","webpack:///./src/assets/Dapta-Brandmark-RGB.png","webpack:///./src/components/EditableNode.vue?79c9","webpack:///./src/assets/chat.png","webpack:///./src/components/SmallDialog.vue?be5a"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","_withScopeId","_pushScopeId","_popScopeId","_hoisted_1","_hoisted_2","_createElementVNode","src","_imports_0","class","width","height","_hoisted_3","_defineComponent","__name","setup","__props","loginWithRedirect","isAuthenticated","idTokenClaims","getAccessTokenSilently","useAuth0","router","useRouter","isLoading","ref","accessToken","authAPIEndPoint","inject","DEBUG","console","methods","beforeEach","async","to","from","requiresAuth","meta","permission","fetch","method","headers","then","response","ok","json","log","e","beforeResolve","path","warn","loginUser","provide","_ctx","_cache","_component_router_view","_resolveComponent","_openBlock","_createElementBlock","_createCommentVNode","_createVNode","__exports__","defineComponent","error","error_msg","alert","Error","statusText","sleep","ms","Promise","resolve","setTimeout","k8sAdminAPIEndPoint","userJWTToken","runName","URLSearchParams","run_name","serverData","this","handleErrors","endOnValue","getRunName","isNamespace","controller","AbortController","signal","reader","body","getReader","read","processText","done","abort","decoder","TextDecoder","chunk","decode","JSON","parse","replace","catch","call_get_Namespace_exists","store","dataPic","file","subfolder","resp","b","blob","thumbnail","URL","createObjectURL","component","filename","run","FormData","append","String","text","canvas","html2canvas","document","getElementById","scale","canvasBlob","toBlob","uploadFile","type","open","onClick","$props","_renderSlot","id","props","title","required","eleprops","visibility","Boolean","emits","render","style","$data","placeholder","autofocus","maxlength","pattern","_hoisted_5","disabled","test","callback","callbackArgs","heading","onCancel","userInputString","_hoisted_4","selected","connectable","xPos","yPos","targetPosition","sourcePosition","dragging","isValidTargetPos","Function","isValidSourcePos","__vf","position","isHidden","draggable","selectable","dragHandle","snapGrid","emit","targetHandleStyle","background","offsetInc","dataObject","index","keys","currentHandleLabel","hoverOverHandle","timer","getHandles","handles","offsetIncVal","top","toString","offsetTop","outputHandles","computed","orchOutputs","inputHandles","orchInputs","setDriver","orchOptions","watch","newval","oldval","orchName","getLabel","showLabel","hideLabel","cancelAutoUpdate","clearInterval","onMounted","onUnmounted","_component_font_awesome_icon","_Fragment","_renderList","handle","_createBlock","_unref","Handle","Position","Left","_normalizeStyle","onMouseover","$event","onMouseenter","onMouseleave","_toDisplayString","validity","icon","size","Right","runstatus","status","$t","time","iterations","sourceX","sourceY","targetX","targetY","label","markerEndId","sourceHandleId","targetHandleId","sourceNode","targetNode","source","target","sourceHandle","targetHandle","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","animated","arrowHeadType","updatable","dragOffsetX","dragOffsetY","isDragging","cursor","getCenterFromNodes","getEdgeCenter","getCenterFromDrag","reactive","x","y","getCenter","center","drag","offsetX","offsetY","addEventListener","drop","move","transform","getComputedStyle","querySelectorAll","removeEventListener","fill","stroke","points","onMousedown","onMousemove","for","onSubmit","$options","_component_tabs_wrapper","_component_tab","invalid","onBlur","setAndValidateOrchApiInputFiles","orchApi","_hoisted_6","_hoisted_7","item","fileName","accept","onInput","event","uploaded","failedChecks","_hoisted_10","mtime","_hoisted_11","_hoisted_12","cols","rows","readonly","_hoisted_14","isStart","_hoisted_15","editableWorkflowSettings","isDriver","hasConnections","eleProps","_hoisted_17","isEnd","_hoisted_18","_hoisted_20","_hoisted_21","_hoisted_23","orchParameters","_hoisted_24","_hoisted_26","_hoisted_27","multiple","_hoisted_30","_hoisted_32","_hoisted_33","_hoisted_35","_hoisted_36","_hoisted_37","componentEventsLog","_hoisted_39","$setup","highlight","slots","tabTitles","default","map","tab","selectedTitle","components","TabsWrapper","Tab","allCompNames","workflowSettings","flowIsLocked","logStream","Json2str","validators","orchApiInputFiles","component_data_cache","deleteThis","submitThis","otherCompNames","allApis","componentApis","inputFiles","runIsPaused","getOtherCompNames","setApiDropDown","getRunStatus","runValidators","$emit","beforeUnmount","emitUpdateComponent","statuslog","orchestrator","getWorkflowSettings","keepOpen","saveRun","getValidity","validateInput","validateJsonText","validateCheckboxes","getParamInputFiles","setOrchApiInputFiles","findIndex","selector","values","entries","version","versions","option","createElement","appendChild","deleteNode","saveNode","includes","obj","stringify","val","matchChar_Name","matchChar_Image","split","indexOf","every","catchNameChange","inputsUploaded","some","user_input_files","onFolderRename","file_name","component_name","Shared","apiName","inputs","onCheckFileExists","ParamInputfiles","excludeFiles","a","filter","el","str","udateCompCache","objChar","isJson","Jsondata","IsJsonString","incoming","outgoing","conditionsForInvalid","conditionsForValid","files","forEach","element","filesaved","failed_checks","serverfiles","filenames","res","href","download","click","revokeObjectURL","expose","orchType","checked","_hoisted_8","_hoisted_13","connection","emitUpdateConnection","script","_hoisted_9","_hoisted_16","_hoisted_19","_hoisted_22","_hoisted_25","_hoisted_28","_hoisted_29","_hoisted_31","alt","onclick","_imports_1","_hoisted_34","_hoisted_38","_hoisted_40","_hoisted_41","_hoisted_42","_hoisted_43","_hoisted_44","_hoisted_45","_hoisted_46","_hoisted_47","_hoisted_48","_hoisted_49","_hoisted_50","_hoisted_51","Array","connections","workflow","run_parameters","isnamespace","viewlog","moreOptions","hideOnBoardingMsg","__expose","vfInstance","mountNode","mountEdge","contextOpen","mousePosition","currentElement","currentElementHandles","currentConnection","eleIDcounter","userAPIEndPoint","dataToFile","serverInputData","startIsSet","endIsSet","driverIsSet","hasIncomingConnections","hasOutgoingConnections","nodeVisibility","nodesToMountInBackground","allCompValidity","userQuotasCheck","startPending","pausePending","stopPending","startisDisabled","pauseisDisabled","stopisDisabled","restart","toggleLock","flowIslocked","logStreamStopped","viewRunLog","runLog","onBoardingMsg","userSecrets","userAppTokens","userAppTokensValid","nodeFormTemplate","userResourceStats","storage","pc","pods","cpu","memory","lastSaved","addSecretItem","deleteSecretItem","getUserAppTokensValidity","check","componentStyle","border","padding","connectionStyle","edge","checkFlowLockToggled","allComps","elements","checkUserResourceQuotas","podsQuota","Number","userResourceQuotas","updateFlowVariables","flowCache","logToObject","onNodeDragStop","node","onElementClick","isEdge","getScreenshot","mountNodeForm","allConnections","onNodeFormMounted","confirmComponent","onNodeFormUnMounted","startCheckingNodesInBackground","call_log_stream","nodeFormReportSave","setElements","api","options","parameters","outputs","appmeta","name_origin","origin","name_target","start","end","driver","eid","pop","ele","find","onElementsRemove","elementsToRemove","removeElements","onConnect","params","newID","newconnection","vueflowOut","toObject","appComponents","apiInputFiles","appConnections","workFlowData","runParameters","newDataValues","_","isEqual","trigger_download","getStatus","isSplash","onLoad","flowInstance","fitView","onUpdated","removeConnections","elid","oldHandles","newHandles","missing","removedElements","deleteComp","compid","call_be_api_delete_files","deleteConnection","connectid","updateComp","newcomp","comp","cloneDeep","call_be_api_upload","updateConnection","newConnection","getHandleBounds","bounds","newBounds","usedIndices","matchedHandle","newData","defaultHandle","updateHandles","handleBounds","onRightClick","pageX","pageY","listener","callback_fn","atMousePos","getCurrentViewTransform","para","getElementsByClassName","compStyles","tmat","getPropertyValue","yoffset","AddEmptyNode","xnode","ynode","getStart","currentlyPaused","confirm","termination_flag","get_termination_flag","call_be_api_terminate","call_be_api_setup","call_user_api_start","err","beApiTerminate","get_saved_run","call_be_api_download","image","matchingComp","refComp","newComp","replicas","setRunParameters_appmeta","now","Date","toISOString","uploadScreenshot","deleteMultipleFiles","route","silent","counter","updateRunstatus","logContent","search","resetControls","getUserStorage","Math","ceil","used_storage_MB","pc_used","userStatsDisplay","getUserStats","pods_used","pods_pc_used","round","cpu_used","memory_used","stopped","errorlog","msg","details","events","pause","stop","toRaw","toUpperCase","padEnd","code","sta","warning","startsWith","getPause","getStop","getUserAppTokens","setUserAppTokens","user_app_tokens","_createTextVNode","_normalizeClass","BaseDialog","onClose","_withCtx","NodeForm","ref_key","onDeleteParamfiles","onUpdateComp","onDeleteComp","onNodeMounted","onNodeBeforeUnmounted","onReportSave","onGetUserStorage","ConnectionForm","onUpdateConnection","onDeleteConnection","_withDirectives","_vModelText","trim","color","mask","onChange","_vModelCheckbox","ContextMenu","VueFlow","modelValue","ConnectionMode","Loose","onContextmenu","_withModifiers","EditableNode","_mergeProps","onUpdateHandles","ConnectionLine","_normalizeProps","_guardReactiveProps","Controls","showInteractive","Background","variant","gap","tutorial","user","logout","loaded","fileInput","flowView","logFound","loading","viewRunStore","allRuns","viewGetRunName","locale","useI18n","toggleLanguage","manualSaveToStore","saveRunToStore","openItem","call_be_api_getstoreitems","runNameIsUnique","onSetRunName","args","onLoadTutorial","renameRunFolder","tutorials","flow","cancelGetRunName","smallDialog","onFileSelected","ev","FileReader","ex","readAsText","saveToFile","Blob","link","dataset","downloadurl","join","toggleFlowLock","downloadItem","createNewObject","objCreateCallback","runs","terminateOnUserConfirm","callResetObject","callGetTutorial","getMoreOptions","logoutUser","returnTo","setUpTutorial","callLoadActiveObject","localStorage","currentRun","callLoadRunFromStore","onTerminateRun","deleteRunFromStore","autosave","substr","onRunReName","getNameThenRename","openInNewTab","url","localStorageAvailable","Storage","setOnBoardingMsg","cacheToLocalstorage","createChat","smartsuppScript","process","head","scriptIsReady","checkInterval","setInterval","smartsupp","nickname","email","toggleOnBoardingMsg","SmallDialog","CustomNode","onLoadFromStore","opt","onLoading","onFlowSave","onFlowCache","onLogFound","onCloseLog","onToggleLock","onToggleOnBoardingMsg","onResetRun","_vShow","routes","App","Interface","P403","createRouter","history","createWebHistory","authGuard","library","add","faQuestionCircle","faExclamationCircle","faCheckCircle","faPlusCircle","faMinusCircle","faFolderOpen","faSave","faPlay","faPause","faStop","faSignOutAlt","faFileDownload","faBan","faEye","faExclamationTriangle","faGear","faScrewdriverWrench","faEllipsis","faFileImport","faFileCircleExclamation","faTrash","faLightbulb","faArrowPointer","faBook","faCommentDots","faCircle","app","createApp","FontAwesomeIcon","use","createAuth0","domain","client_id","redirect_uri","location","audience","i18n","createI18n","legacy","messages","en","zh","mount"],"mappings":"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","file":"js/app.fe9daabe.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// 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 \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./NodeForm.vue?vue&type=style&index=0&id=d33bdc20&scoped=true&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./P403.vue?vue&type=style&index=0&id=0eb3a888&scoped=true&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CustomEditableNode.vue?vue&type=style&index=0&id=8ff49894&lang=scss&scoped=true\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Tab.vue?vue&type=style&index=0&id=5ee10648&scoped=true&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./BaseDialog.vue?vue&type=style&index=0&id=9041e16a&scoped=true&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./EditableConnection.vue?vue&type=style&index=0&id=2aad5ab8&scoped=true&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./TabsWrapper.vue?vue&type=style&index=0&id=35543b4c&scoped=true&lang=css\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./App.vue?vue&type=style&index=0&id=b3ff9bbe&scoped=true&lang=css\"","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from './assets/Dapta-Brandmark-RGB.png'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-b3ff9bbe\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n class: \"rotate\",\n width: \"70\",\n height: \"70\"\n}, null, -1))\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nimport { ref, provide, inject } from \"vue\";\nimport { useRouter } from 'vue-router'\nimport { useAuth0 } from '@auth0/auth0-vue';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'App',\n setup(__props) {\n\nconst { loginWithRedirect, isAuthenticated, idTokenClaims, getAccessTokenSilently } = useAuth0();\nconst router = useRouter();\nconst isLoading = ref(true);\nconst accessToken = ref();\nconst authAPIEndPoint = inject('auth_API_end_point');\n\n// disable logging\nvar DEBUG = false;\nif(!DEBUG){\n if(!window.console) window.console = {};\n var methods = [\"log\", \"debug\", \"warn\", \"info\"];\n for(var i=0;i {\n const { requiresAuth } = to.meta\n if (requiresAuth) {\n try {\n accessToken.value = await getAccessTokenSilently();\n const permission = await fetch(authAPIEndPoint + \"/get_user_subscriptions\", {\n method: \"GET\",\n headers: {\n \"Authorization\": `Bearer ${accessToken.value}`\n }\n }).then(\n (response) => {\n if (response.ok) {\n return response.json()\n } else {\n return { \"status\": \"Forbidden\" }\n }\n }\n ).then((data) => {\n isLoading.value = false\n if (data[\"status\"] === \"Success\") {\n console.log(\"User permissions verified.\")\n return true\n } else {\n console.log(\"Access Forbidden.\")\n return '/403'\n }\n })\n return permission\n } catch (e) {\n console.log(\"Permissions check failed.\")\n isLoading.value = false\n return '/403'\n }\n\n } else { \n return true\n }\n\n})\n\nrouter.beforeResolve(async to => {\n if (to.path == \"/\") {\n console.warn(\"redirect\")\n router.push('/interface')\n }\n})\n\nconst loginUser = async () => {\n if (isAuthenticated) {\n provide(\"userJWTToken\", accessToken)\n console.log(\"User Authenticated.\")\n } else {\n loginWithRedirect()\n provide(\"userJWTToken\", accessToken)\n }\n}\nloginUser()\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n (isLoading.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, _hoisted_3))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_router_view)\n ]))\n}\n}\n\n})","import script from \"./App.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./App.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./App.vue?vue&type=style&index=0&id=b3ff9bbe&scoped=true&lang=css\"\n\nimport exportComponent from \"/codebuild/output/src1203744758/src/frontend/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-b3ff9bbe\"]])\n\nexport default __exports__","\n\n // TODO import k8sAdminAPIEndPoint, userJWTToken here and remove from function calls\n import { defineComponent } from 'vue'\n import html2canvas from 'html2canvas';\n\n export default defineComponent({\n methods: {\n async handleErrors(response) {\n if (!response.ok) {\n const data = await response.json() \n console.error(data)\n if (data.error_msg && data.error_msg == \"Client is already connected\") { \n alert(\"\\u274C You already have a web client open and multiple connections to an active Run are not allowed.\\nClose this browser tab.\")\n }\n throw Error(response.statusText);\n }\n return response;\n },\n sleep(ms) {\n return new Promise(resolve => setTimeout(resolve, ms));\n },\n async call_be_api_download(k8sAdminAPIEndPoint, userJWTToken, runName) {\n console.log(\"Download dapta_input.json\");\n const data = new URLSearchParams({\n run_name: runName\n })\n const serverData = await fetch(k8sAdminAPIEndPoint + \"/downloadjson?\" + data, {\n method: \"GET\",\n headers: { \"Authorization\": `Bearer ${userJWTToken}` }\n }).then(this.handleErrors)\n .then((response) => {\n if (response.ok) {\n console.log(response)\n return response.json();\n }\n }).then((data) => {\n console.log(data);\n return data\n });\n return serverData\n }, \n async call_get_Namespace_exists(k8sAdminAPIEndPoint, userJWTToken, endOnValue, getRunName = false) {\n console.log(\"Check if user k8s namespace exists.\");\n let isNamespace\n let runName \n const controller = new AbortController();\n const signal = controller.signal; \n await fetch(k8sAdminAPIEndPoint + \"/namespace\", {\n method: \"GET\",\n headers: { \"Authorization\": `Bearer ${userJWTToken}` }, \n signal: signal\n }).then(this.handleErrors)\n .then(async (response) => {\n const reader = response.body.getReader()\n return reader.read().then(async function processText({ done, value }) {\n if (done == true || isNamespace == endOnValue || (\"any\" === endOnValue && (isNamespace == true || isNamespace == false))) {\n console.warn(\"Stopping call_get_Namespace_exists.\")\n controller.abort()\n return;\n }\n const decoder = new TextDecoder();\n const chunk = decoder.decode(value);\n const data = JSON.parse(chunk.replace(/'/g, '\"'))\n console.log(\"isnamespace = \", data[\"isnamespace\"])\n isNamespace = data[\"isnamespace\"]\n runName = data[\"runName\"]\n\n // Read some more, and call this function again\n return reader.read().then(processText);\n });\n }).catch(async () => {\n console.error(\"Fetching Namespace failed. Try again in 5s.\")\n await this.sleep(5000);\n this.call_get_Namespace_exists(k8sAdminAPIEndPoint, userJWTToken, endOnValue)\n })\n if (getRunName) { \n return [isNamespace, runName];\n } else return isNamespace\n }, \n async call_be_api_terminate(k8sAdminAPIEndPoint, userJWTToken) { \n console.log(\"Deleting user k8s namespace.\");\n await fetch(k8sAdminAPIEndPoint + \"/terminate\", {\n method: \"POST\",\n headers: { \"Authorization\": `Bearer ${userJWTToken}` }\n }).then(this.handleErrors);\n let isNamespace = await this.call_get_Namespace_exists(k8sAdminAPIEndPoint, userJWTToken, false)\n if (isNamespace) {\n throw Error(\"Namespace still exists after termination -> exiting.\")\n }\n },\n async call_be_api_getstoreitems(k8sAdminAPIEndPoint, userJWTToken, store) {\n console.log(`Get ${store} items list from server.`);\n const data = new URLSearchParams({\n store: store\n })\n const serverData = await fetch(k8sAdminAPIEndPoint + \"/getstorelist?\" + data, {\n method: \"GET\",\n headers: { \"Authorization\": `Bearer ${userJWTToken}` }\n }).then(this.handleErrors)\n .then((response) => {\n if (response.ok) {\n // console.log(response)\n return response.json();\n }\n }).then((data) => {\n // console.log(data);\n return data\n });\n\n for (let i = 0; i < serverData.length; i++) { \n const dataPic = new URLSearchParams({\n file: \"runThumbnail.png\",\n run_name: serverData[i].name,\n subfolder: \"dapta_FE\"\n })\n const resp = await fetch(k8sAdminAPIEndPoint + \"/getfiles?\" + dataPic, {\n method: \"GET\",\n headers: { \"Authorization\": `Bearer ${userJWTToken}` }\n })\n if (resp.ok) {\n const b = await resp.blob()\n serverData[i].thumbnail = window.URL.createObjectURL(b)\n } else { \n console.log(\"can't find runThumbnail...\")\n // TODO: load placeholder image?\n }\n }\n \n return serverData\n },\n async call_be_api_delete_files(k8sAdminAPIEndPoint, userJWTToken, component, subfolder, filename, run) { \n console.log(\"Delete files.\");\n let data = new FormData()\n if (component) data.append('comp', component);\n if (subfolder) data.append('subfolder', subfolder);\n if (filename) data.append('file', filename);\n data.append('run_name', String(run));\n\n const resp = await fetch(k8sAdminAPIEndPoint + \"/deletefile\", {\n method: \"POST\",\n headers: { \"Authorization\": `Bearer ${userJWTToken}`},\n body: data\n }).then(this.handleErrors)\n .then(response => { return response.text() })\n console.log(resp)\n },\n async getScreenshot(){ \n const canvas = await html2canvas(document.getElementById(\"vue-flow\") || document.body, {scale: 0.20})\n return canvas\n },\n async uploadScreenshot(k8sAdminAPIEndPoint, userJWTToken, runName, canvasBlob) { \n await canvasBlob.toBlob((blob) => {\n this.uploadFile(k8sAdminAPIEndPoint, userJWTToken, runName, blob, \"runThumbnail.png\")\n }, \"image/png\");\n },\n async uploadFile(k8sAdminAPIEndPoint, userJWTToken, runName, file, filename){ \n console.log(\"Uploading \" + file.name + \" as \" + filename + \" and type \" + file.type);\n\n let data = new FormData()\n data.append('file', file)\n data.append('file_name', filename)\n data.append('component_name', \"\")\n data.append('subfolder',\"dapta_FE\")\n data.append('run_name', runName)\n\n const resp = await fetch(k8sAdminAPIEndPoint + \"/uploadfile\", {\n method: \"POST\",\n headers: { \"Authorization\": `Bearer ${userJWTToken}`},\n body: data\n }).then(this.handleErrors)\n .then( response => { return response.text()})\n .then(response => { return JSON.parse(response)})\n return resp\n }\n }\n })\n \n","import script from \"./shared.vue?vue&type=script&lang=ts\"\nexport * from \"./shared.vue?vue&type=script&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./BaseDialog.vue?vue&type=template&id=9041e16a&scoped=true\"\nimport script from \"./BaseDialog.vue?vue&type=script&lang=js\"\nexport * from \"./BaseDialog.vue?vue&type=script&lang=js\"\n\nimport \"./BaseDialog.vue?vue&type=style&index=0&id=9041e16a&scoped=true&lang=css\"\n\nimport exportComponent from \"/codebuild/output/src1203744758/src/frontend/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-9041e16a\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./SmallDialog.vue?vue&type=template&id=6b92e66a&scoped=true\"\nimport script from \"./SmallDialog.vue?vue&type=script&lang=js\"\nexport * from \"./SmallDialog.vue?vue&type=script&lang=js\"\n\nimport \"./SmallDialog.vue?vue&type=style&index=0&id=6b92e66a&scoped=true&lang=css\"\n\nimport exportComponent from \"/codebuild/output/src1203744758/src/frontend/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6b92e66a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, normalizeStyle as _normalizeStyle, createBlock as _createBlock, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3c7c2fc2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"custom-editable-node\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"custom-handle-label\"\n}\nconst _hoisted_3 = { class: \"comp_output\" }\nconst _hoisted_4 = { style: {\"width\":\"100px\",\"height\":\"100px\"} }\n\nimport {\n CSSProperties,\n ref,\n computed,\n watch,\n onMounted,\n onUnmounted,\n inject\n} from \"vue\";\nimport { Handle, Position, Connection, Edge, NodeProps } from \"@braks/vue-flow\";\ninterface ColorSelectorNodeProps extends NodeProps {\n id: string;\n data: {\n orchName: string;\n orchApi: string;\n validity: string;\n runstatus: {\n status: string;\n time: string;\n iterations?: number;\n };\n orchOptions?: object;\n orchParameters?: object;\n orchInputs?: object;\n orchOutputs?: object;\n };\n type: string;\n selected?: boolean;\n connectable?: boolean;\n xPos?: number;\n yPos?: number;\n targetPosition?: Position;\n sourcePosition?: Position;\n dragging?: boolean;\n}\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'EditableNode',\n props: {\n id: {},\n data: {},\n type: {},\n selected: { type: Boolean },\n connectable: { type: Boolean },\n xPos: {},\n yPos: {},\n targetPosition: {},\n sourcePosition: {},\n dragging: { type: Boolean },\n isValidTargetPos: { type: Function },\n isValidSourcePos: { type: Function },\n __vf: {},\n position: {},\n class: {},\n style: {},\n isHidden: { type: Boolean },\n draggable: { type: [Object, Boolean] },\n selectable: { type: Boolean },\n dragHandle: {},\n snapGrid: {}\n },\n emits: [\"updateHandles\"],\n setup(__props: any, { emit }) {\n\nconst props = __props;\n\n\n\nconst targetHandleStyle: CSSProperties = { background: \"rgb(66, 66, 66)\" };\nconst offsetInc = (dataObject: object, index: number) =>\n (1 / (Object.keys(dataObject).length + 1)) * 100 * (index + 1);\nconst currentHandleLabel = ref();\nlet hoverOverHandle = ref(false);\nconst results = ref();\nlet isLoading = false;\nlet error = null;\nlet timer;\nlet showResult = ref(false);\nconst userAPIEndPoint = inject('back_end_user_services_API_end_point');\nconst userJWTToken = inject('userJWTToken');\n\nconst getHandles = function (data, handles) {\n for (let i = 0; i <= Object.keys(data).length - 1; i++) {\n const name: string = Object.keys(data)[i];\n\n // parametric data connections have different style\n // const isParam: boolean = data[name] === \"implicit\";\n const offsetIncVal = offsetInc(data, i);\n handles.push({\n id: name,\n value: name,\n // isParam: isParam,\n style: {\n ...targetHandleStyle,\n top: offsetIncVal.toString() + \"%\",\n },\n data: { offsetTop: offsetIncVal },\n });\n }\n return handles;\n};\n\nconst outputHandles = computed(() =>\n props.data.orchOutputs ? getHandles(props.data.orchOutputs, []) : []\n);\nconst inputHandles = computed(() =>\n props.data.orchInputs ? getHandles(props.data.orchInputs, []) : []\n);\n\nconst setDriver = function (data) {\n if (data !== \"{}\" && \"isDriver\" in data) return data[\"isDriver\"];\n return false;\n };\nconst isDriver = props.data.orchOptions\n ? setDriver(props.data.orchOptions)\n : false;\n\nwatch(\n () => [props.data.orchOutputs, props.data.orchInputs],\n (newval, oldval) => {\n console.log(\"updated handles event triggered for \", props.data.orchName);\n emit(\"updateHandles\", [\n { id: props.id, handles: outputHandles, type: \"source\" },\n { id: props.id, handles: inputHandles, type: \"target\" },\n ]);\n }\n);\n\nconst onConnect = (params: Connection | Edge) =>\n console.log(\"handle onConnect\", params);\n\nconst getLabel = (id) => (currentHandleLabel.value = id);\nconst showLabel = () => (hoverOverHandle.value = true);\nconst hideLabel = () => (hoverOverHandle.value = false);\n\nconst getStatus = async () => {\n isLoading = true;\n error = null;\n console.log(\"STATUS orch\");\n await fetch(userAPIEndPoint + \"/status\", {\n method: \"GET\",\n headers: { \"Authorization\": `Bearer ${userJWTToken.value}` }\n }).then((response) => {\n if (response.ok) {\n return response.json();\n }\n }).then((data) => {\n isLoading = false;\n results.value = data.response;\n console.log(data.response);\n if (props.data.orchName in results.value) {showResult.value = true;}\n }).catch((error) => {\n console.log(error);\n isLoading = false;\n error = \"Failed to fetch data - please try again later.\";\n });\n};\nconst cancelAutoUpdate = () => clearInterval(timer);\n\n// TODO design better display of node status information\n// TODO - status calls are currently repeated for every additional component >> split the api call and results assignment - do the api call in Custom Editable Node and provide outputs to children \n// from the server at regular intervals and fails if the server cna't be reached\nonMounted(() => {\n // getStatus();\n // timer = setInterval(getStatus, 10000);\n});\nonUnmounted(() => cancelAutoUpdate());\n\n\nreturn (_ctx: any,_cache: any) => {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(inputHandles.value, (handle) => {\n return (_openBlock(), _createBlock(_unref(Handle), {\n key: handle.id,\n id: handle.id,\n type: \"target\",\n position: _unref(Position).Left,\n style: _normalizeStyle(handle.style),\n onMouseover: ($event: any) => (getLabel(handle.id)),\n onMouseenter: showLabel,\n onMouseleave: hideLabel\n }, null, 8, [\"id\", \"position\", \"style\", \"onMouseover\"]))\n }), 128)),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"strong\", null, _toDisplayString(props.data.orchName), 1),\n (props.data.validity === 'invalid')\n ? (_openBlock(), _createBlock(_component_font_awesome_icon, {\n key: 0,\n icon: \"exclamation-circle\",\n size: \"lg\",\n style: {\"margin\":\"5px\",\"color\":\"red\"}\n }))\n : _createCommentVNode(\"\", true),\n (props.data.validity === 'pending')\n ? (_openBlock(), _createBlock(_component_font_awesome_icon, {\n key: 1,\n icon: \"question-circle\",\n size: \"lg\",\n style: {\"margin\":\"5px\",\"color\":\"blue\"}\n }))\n : _createCommentVNode(\"\", true),\n (props.data.validity === 'valid')\n ? (_openBlock(), _createBlock(_component_font_awesome_icon, {\n key: 2,\n icon: \"check-circle\",\n size: \"lg\",\n style: {\"margin\":\"5px\",\"color\":\"green\"}\n }))\n : _createCommentVNode(\"\", true)\n ]),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(outputHandles.value, (handle) => {\n return (_openBlock(), _createBlock(_unref(Handle), {\n key: handle.id,\n id: handle.id,\n type: \"source\",\n position: _unref(Position).Right,\n style: _normalizeStyle(handle.style),\n onMouseover: ($event: any) => (getLabel(handle.id)),\n onMouseenter: showLabel,\n onMouseleave: hideLabel\n }, null, 8, [\"id\", \"position\", \"style\", \"onMouseover\"]))\n }), 128))\n ]),\n (_unref(hoverOverHandle))\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_2, _toDisplayString(currentHandleLabel.value), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n (props.data.runstatus.status === 'setup')\n ? (_openBlock(), _createBlock(_component_font_awesome_icon, {\n key: 0,\n icon: \"screwdriver-wrench\",\n style: {\"margin\":\"5px\"},\n class: \"fa-3x\"\n }))\n : _createCommentVNode(\"\", true),\n (props.data.runstatus.status === 'compute')\n ? (_openBlock(), _createBlock(_component_font_awesome_icon, {\n key: 1,\n icon: \"gear\",\n style: {\"margin\":\"5px\",\"--fa-animation-duration\":\"3s\"},\n class: \"fa-3x fa-spin\"\n }))\n : _createCommentVNode(\"\", true),\n (props.data.runstatus.status === 'error')\n ? (_openBlock(), _createBlock(_component_font_awesome_icon, {\n key: 2,\n icon: \"exclamation-triangle\",\n style: {\"margin\":\"5px\"},\n class: \"fa-3x fa-fade\"\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"p\", null, _toDisplayString(_ctx.$t('message.Last_event')) + \" @ \" + _toDisplayString(props.data.runstatus.time), 1),\n _createElementVNode(\"p\", null, _toDisplayString(_ctx.$t('message.Current_iteration')) + \" # \" + _toDisplayString(props.data.runstatus.iterations), 1)\n ])\n ]))\n}\n}\n\n})","import script from \"./EditableNode.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./EditableNode.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./EditableNode.vue?vue&type=style&index=0&id=3c7c2fc2&scoped=true&lang=css\"\n\nimport exportComponent from \"/codebuild/output/src1203744758/src/frontend/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3c7c2fc2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2aad5ab8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"stroke\", \"d\"]\nconst _hoisted_2 = [\"points\"]\nconst _hoisted_3 = [\"x\", \"y\"]\n\nimport { reactive, isReactive, computed, ref } from \"vue\";\nimport { EdgeProps, getEdgeCenter } from \"@braks/vue-flow\";\ninterface CustomConnectionLineProps extends EdgeProps {\n sourceX: number;\n sourceY: number;\n targetX: number;\n targetY: number;\n id: string;\n label: string;\n style: object;\n}\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'EditableConnection',\n props: {\n sourceX: {},\n sourceY: {},\n targetX: {},\n targetY: {},\n id: {},\n label: {},\n style: {},\n selected: { type: Boolean },\n sourcePosition: {},\n targetPosition: {},\n markerEndId: {},\n sourceHandleId: {},\n targetHandleId: {},\n sourceNode: {},\n targetNode: {},\n type: {},\n source: {},\n target: {},\n sourceHandle: {},\n targetHandle: {},\n labelStyle: {},\n labelShowBg: { type: Boolean },\n labelBgStyle: {},\n labelBgPadding: {},\n labelBgBorderRadius: {},\n animated: { type: Boolean },\n arrowHeadType: {},\n data: {},\n class: {},\n isHidden: { type: Boolean },\n updatable: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props;\n\n\n\nlet dragOffsetX = ref(null);\nlet dragOffsetY = ref(null);\nlet isDragging = ref(false);\n\nconst cursor = computed(\n () => `cursor: ${isDragging.value ? \"grabbing\" : \"grab\"}`\n);\n\nconst getCenterFromNodes = computed(() =>\n getEdgeCenter({\n sourceX: props.sourceX,\n sourceY: props.sourceY,\n targetX: props.targetX,\n targetY: props.targetY,\n })\n);\nconst getCenterFromDrag = reactive({ x: 0.0, y: 0.0 });\nconst getCenter = computed(function () {\n const center = {\n x: getCenterFromNodes.value[0] + getCenterFromDrag.x,\n y: getCenterFromNodes.value[1] + getCenterFromDrag.y,\n };\n // console.log(\"center\", center);\n return center;\n});\n\nconst drag = (e) => {\n // console.log(\"onmousedown label \");\n // e.target.style.fill = \"#f00\";\n dragOffsetX.value = e.offsetX;\n dragOffsetY.value = e.offsetY;\n isDragging.value = true;\n window.addEventListener(\"mouseup\", drop);\n};\n\nconst move = (e) => {\n if (isDragging.value === true) {\n // console.log(\"move label\");\n // e.target.style.fill = \"#00f\";\n const transform = JSON.parse(\n \"[\" +\n getComputedStyle(document.querySelectorAll(\"g\")[0])\n .transform.replace(\"matrix(\", \"\")\n .replace(\")\", \"\") +\n \"]\"\n );\n getCenterFromDrag.x += (e.offsetX - dragOffsetX.value) * transform[0];\n getCenterFromDrag.y += (e.offsetY - dragOffsetY.value) * transform[0];\n }\n};\n\nconst drop = (e) => {\n if (isDragging.value === true) {\n // console.log(\"drop label\");\n // square.value.style.fill = \"#0f0\";\n isDragging.value = false;\n window.removeEventListener(\"mouseup\", drop);\n }\n};\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"g\", null, [\n _createElementVNode(\"path\", {\n fill: \"none\",\n stroke: props.style.stroke,\n \"stroke-width\": 1.5,\n d: `M${props.sourceX},${props.sourceY} \n h 20\n C ${props.sourceX + 100} ${props.sourceY} ${getCenter.value.x} ${\n getCenter.value.y\n } \n ${getCenter.value.x},${getCenter.value.y}\n C ${getCenter.value.x} ${getCenter.value.y} ${props.targetX - 100} ${\n props.targetY\n } \n ${props.targetX - 20} ${props.targetY} \n h 20`\n }, null, 8, _hoisted_1),\n _createElementVNode(\"polygon\", {\n fill: \"#222\",\n stroke: \"#222\",\n points: `${props.targetX},${props.targetY} ${props.targetX - 10},${\n props.targetY - 4\n } ${props.targetX - 10},${props.targetY + 4}`\n }, null, 8, _hoisted_2),\n _createElementVNode(\"g\", {\n \"pointer-events\": \"visibleFill\",\n onMousedown: drag,\n onMousemove: move,\n style: _normalizeStyle(cursor.value)\n }, [\n _createElementVNode(\"text\", {\n x: getCenter.value.x + 5,\n y: getCenter.value.y,\n class: \"disable-select label\",\n stroke: \"#222\",\n \"stroke-width\": 0.2\n }, _toDisplayString(props.label), 9, _hoisted_3)\n ], 36)\n ]))\n}\n}\n\n})","import script from \"./EditableConnection.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./EditableConnection.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./EditableConnection.vue?vue&type=style&index=0&id=2aad5ab8&scoped=true&lang=css\"\n\nimport exportComponent from \"/codebuild/output/src1203744758/src/frontend/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2aad5ab8\"]])\n\nexport default __exports__","\n\n\n\n\n","\n\n\n\n\n","import { render } from \"./TabsWrapper.vue?vue&type=template&id=35543b4c&scoped=true\"\nimport script from \"./TabsWrapper.vue?vue&type=script&lang=js\"\nexport * from \"./TabsWrapper.vue?vue&type=script&lang=js\"\n\nimport \"./TabsWrapper.vue?vue&type=style&index=0&id=35543b4c&scoped=true&lang=css\"\n\nimport exportComponent from \"/codebuild/output/src1203744758/src/frontend/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-35543b4c\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./Tab.vue?vue&type=template&id=5ee10648&scoped=true\"\nimport script from \"./Tab.vue?vue&type=script&lang=js\"\nexport * from \"./Tab.vue?vue&type=script&lang=js\"\n\nimport \"./Tab.vue?vue&type=style&index=0&id=5ee10648&scoped=true&lang=css\"\n\nimport exportComponent from \"/codebuild/output/src1203744758/src/frontend/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5ee10648\"]])\n\nexport default __exports__","import { render } from \"./NodeForm.vue?vue&type=template&id=d33bdc20&scoped=true\"\nimport script from \"./NodeForm.vue?vue&type=script&lang=js\"\nexport * from \"./NodeForm.vue?vue&type=script&lang=js\"\n\nimport \"./NodeForm.vue?vue&type=style&index=0&id=d33bdc20&scoped=true&lang=css\"\n\nimport exportComponent from \"/codebuild/output/src1203744758/src/frontend/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-d33bdc20\"]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./ConnectionForm.vue?vue&type=template&id=d4acf2a0&scoped=true\"\nimport script from \"./ConnectionForm.vue?vue&type=script&lang=js\"\nexport * from \"./ConnectionForm.vue?vue&type=script&lang=js\"\n\nimport \"./ConnectionForm.vue?vue&type=style&index=0&id=d4acf2a0&scoped=true&lang=css\"\n\nimport exportComponent from \"/codebuild/output/src1203744758/src/frontend/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-d4acf2a0\"]])\n\nexport default __exports__","\n\n\n\n","import { render } from \"./ContextMenu.vue?vue&type=template&id=2725d37b&scoped=true\"\nconst script = {}\n\nimport \"./ContextMenu.vue?vue&type=style&index=0&id=2725d37b&lang=scss&scoped=true\"\n\nimport exportComponent from \"/codebuild/output/src1203744758/src/frontend/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2725d37b\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, normalizeClass as _normalizeClass, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, vModelText as _vModelText, withDirectives as _withDirectives, vModelCheckbox as _vModelCheckbox, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, normalizeStyle as _normalizeStyle, unref as _unref, mergeProps as _mergeProps, normalizeProps as _normalizeProps, guardReactiveProps as _guardReactiveProps, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '../assets/help.png'\nimport _imports_1 from '../assets/chat.png'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-8ff49894\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"run-name\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_3 = { style: {\"font-size\":\"75%\"} }\nconst _hoisted_4 = [\"disabled\"]\nconst _hoisted_5 = [\"disabled\"]\nconst _hoisted_6 = [\"disabled\"]\nconst _hoisted_7 = { style: {\"text-align\":\"left\",\"padding-left\":\"20px\"} }\nconst _hoisted_8 = { class: \"option\" }\nconst _hoisted_9 = { class: \"option-description\" }\nconst _hoisted_10 = { class: \"option\" }\nconst _hoisted_11 = { class: \"option-description\" }\nconst _hoisted_12 = { style: {\"text-align\":\"left\",\"padding-left\":\"20px\"} }\nconst _hoisted_13 = { class: \"option\" }\nconst _hoisted_14 = { class: \"option-description\" }\nconst _hoisted_15 = { class: \"option\" }\nconst _hoisted_16 = {\n class: \"basedialog\",\n disabled: true\n}\nconst _hoisted_17 = { class: \"option-description\" }\nconst _hoisted_18 = { class: \"option\" }\nconst _hoisted_19 = { class: \"option-description\" }\nconst _hoisted_20 = { style: {\"padding\":\"10\",\"text-align\":\"center\"} }\nconst _hoisted_21 = { style: {\"text-align\":\"center\",\"padding\":\"30px\"} }\nconst _hoisted_22 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_23 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_24 = { style: {\"padding-left\":\"80px\",\"text-align\":\"left\",\"list-style\":\"none\"} }\nconst _hoisted_25 = { style: {\"padding\":\"15px\"} }\nconst _hoisted_26 = {\n href: \"https://daptadocs.com/Reference/The%20dashboard.html\",\n target: \"_blank\"\n}\nconst _hoisted_27 = { style: {\"padding\":\"15px\"} }\nconst _hoisted_28 = {\n href: \"https://daptadocs.com/Tutorials/Simple%20component%20analysis.html\",\n target: \"_blank\"\n}\nconst _hoisted_29 = { style: {\"padding\":\"15px\"} }\nconst _hoisted_30 = {\n href: \"https://daptadocs.com\",\n target: \"_blank\"\n}\nconst _hoisted_31 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n style: {\"width\":\"80px\"},\n src: _imports_0,\n alt: \"help\"\n}, null, -1))\nconst _hoisted_32 = { style: {\"padding\":\"15px\"} }\nconst _hoisted_33 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"#\",\n onclick: \"smartsupp('chat:open'); return false;\"\n}, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n style: {\"width\":\"30px\"},\n src: _imports_1,\n alt: \"chat\"\n })\n], -1))\nconst _hoisted_34 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_35 = { id: \"basedialogbuttons\" }\nconst _hoisted_36 = { style: {\"position\":\"absolute\",\"bottom\":\"30px\",\"right\":\"5%\"} }\nconst _hoisted_37 = { style: {\"text-align\":\"left\",\"padding-left\":\"20px\"} }\nconst _hoisted_38 = { style: {\"list-style\":\"none\",\"text-align\":\"left\",\"padding\":\"0\",\"margin\":\"0\"} }\nconst _hoisted_39 = [\"onClick\"]\nconst _hoisted_40 = { class: \"secret-key\" }\nconst _hoisted_41 = [\"onUpdate:modelValue\", \"placeholder\"]\nconst _hoisted_42 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"secret-colon\" }, [\n /*#__PURE__*/_createElementVNode(\"p\", null, \":\")\n], -1))\nconst _hoisted_43 = { class: \"secret-value\" }\nconst _hoisted_44 = [\"onUpdate:modelValue\", \"placeholder\"]\nconst _hoisted_45 = { class: \"secret-key\" }\nconst _hoisted_46 = [\"placeholder\"]\nconst _hoisted_47 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"secret-colon\" }, [\n /*#__PURE__*/_createElementVNode(\"p\", null, \" : \")\n], -1))\nconst _hoisted_48 = { class: \"secret-value\" }\nconst _hoisted_49 = [\"placeholder\"]\nconst _hoisted_50 = { id: \"basedialogbuttons\" }\nconst _hoisted_51 = [\"disabled\"]\n\nimport _ from \"lodash\"\nimport {\n onUpdated,\n onMounted,\n onBeforeUnmount,\n ref,\n isRef,\n isReactive,\n computed,\n useSSRContext,\n watch,\n inject,\n toRaw\n} from \"vue\";\nimport EditableNode from \"./EditableNode.vue\";\nimport ConnectionLine from \"./EditableConnection.vue\";\nimport BaseDialog from \"./BaseDialog.vue\";\nimport NodeForm from \"./NodeForm.vue\";\nimport ConnectionForm from \"./ConnectionForm.vue\";\nimport ContextMenu from \"./ContextMenu.vue\"\nimport {\n VueFlow,\n isEdge,\n removeElements,\n addEdge,\n MiniMap,\n Controls,\n Node,\n FlowElement,\n FlowInstance,\n Elements,\n Position,\n SnapGrid,\n FlowEvents,\n Connection,\n ConnectionMode,\n Edge,\n ArrowHeadType,\n Background,\n} from \"@braks/vue-flow\";\nimport Shared from './shared.vue'\nimport userResourceQuotas from \"./UserResourceQuotas.json\"\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'CustomEditableNode',\n props: {\n components: Array,\n connections: Array,\n workflow: Object,\n run_parameters: Object,\n isnamespace: Boolean,\n viewlog: Boolean,\n moreOptions: Boolean, \n hideOnBoardingMsg: Boolean,\n runName: String,\n},\n emits: [\n \"flowSave\", \"logFound\", \"closeLog\", \"toggleLock\", \"resetRun\", \"loading\", \"toggleOnBoardingMsg\", \"flowCache\", \"loadFromStore\"\n],\n setup(__props, { expose: __expose, emit }) {\n\nconst props = __props;\n\nconst vfInstance = ref();\n\n\nconst snapGrid: SnapGrid = [20, 20];\nconst mountNode = ref(false);\nconst mountEdge = ref(false);\nconst contextOpen = ref(false);\nconst mousePosition = ref();\nconst currentElement = ref();\nconst currentElementHandles = ref({ source: {}, target: {} });\nconst currentConnection = ref()\nlet eleIDcounter = 0;\nconst k8sAdminAPIEndPoint = inject('back_end_admin_API_end_point');\nconst userAPIEndPoint = inject('back_end_user_services_API_end_point');\nconst authAPIEndPoint = inject('auth_API_end_point');\nconst userJWTToken = inject('userJWTToken');\nconst dataToFile = ref({\n components: props.components,\n connections: props.connections,\n workflow: props.workflow,\n run_parameters: props.run_parameters,\n})\nconst serverInputData = ref()\nconst allCompNames = ref()\nconst startIsSet = ref(false);\nconst endIsSet = ref(false);\nconst driverIsSet = ref(false);\nconst hasIncomingConnections = ref(false)\nconst hasOutgoingConnections = ref(false)\nconst nodeVisibility = ref(true)\nconst nodesToMountInBackground = ref(Array())\nconst allCompValidity = ref(false)\nconst userQuotasCheck = ref()\nconst startPending = ref(false)\nconst pausePending = ref(false) \nconst stopPending = ref(false) \nconst startisDisabled = ref(true);\nconst pauseisDisabled = ref(true);\nconst stopisDisabled = ref(true);\nconst restart = ref(false);\nconst isNamespace = ref(false) \nconst toggleLock = ref(false)\nconst flowIslocked = ref(false)\nconst logStream = ref()\nconst logStreamStopped = ref(true)\nconst viewRunLog = ref(props.viewlog)\nconst runLog = ref()\nconst moreOptions = ref(props.moreOptions)\nconst onBoardingMsg = ref(true)\nconst userSecrets = ref(false)\nconst userAppTokens = ref(Array())\nconst userAppTokensValid = ref(false)\nconst hideOnBoardingMsg = ref(props.hideOnBoardingMsg)\nconst nodeFormTemplate = ref()\nconst userResourceStats = ref({\n storage: { val: \"N/A\", pc: \"N/A\" },\n pods: { val: \"N/A\", pc: \"N/A\" },\n cpu: {val: \"N/A\", pc: \"N/A\"},\n memory: {val: \"N/A\", pc: \"N/A\"},\n})\nconst runName = ref(props.runName)\nconst lastSaved = ref()\nconst canvas = ref()\n\nconst addSecretItem = () => { \n console.log(\"add secret \")\n userAppTokens.value.push({name:\"\", value:\"\"})\n}\n\nconst deleteSecretItem = (index = -1) => { \n console.log(\"delete secret of index \", index)\n userAppTokens.value.splice(index, 1);\n}\n\nconst getUserAppTokensValidity = () => { \n userAppTokensValid.value = !(userAppTokens.value.filter(e =>\n /^[a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])?$/.test(e.name) == false\n || /^[a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])?$/.test(e.value) == false).length > 0)\n}\n\nconst check = (e) => {\n // toggle hideOnBoardingMsg\n console.log(\"hideOnBoardingMsg.value\", hideOnBoardingMsg.value)\n emit(\"toggleOnBoardingMsg\",hideOnBoardingMsg.value)\n}\n\nconst componentStyle = {\n border: \"1px solid #rgb(66, 66, 66)\",\n padding: \"0px\",\n height: \"300px\",\n width: \"300px\",\n background: \"rgb(66, 66, 66)\",\n}\nconst connectionStyle = (edge) => {\n switch (edge.data.type) { \n case \"implicit\":\n edge.style.stroke = \"rgb(0, 255, 64)\"\n break;\n case \"setup\":\n edge.style.stroke = \"rgb(0, 0, 255)\"\n break;\n case \"design\": \n edge.style.stroke = \"black\"\n break; \n default: // \"should not occur\"\n edge.style.stroke = \"rgb(197, 197, 197)\"\n }\n}\n\nconst checkFlowLockToggled = () => { \n if (toggleLock.value) {\n toggleLock.value = false //reset\n flowIslocked.value = !flowIslocked.value;\n emit(\"toggleLock\",flowIslocked.value)\n }\n}\n\nconst allComps = () => { return elements.value.filter(e => e.type === \"selectorNode\")}\n\nconst checkUserResourceQuotas = () => {\n // constrain number of components to number of pods -2 (for controller and memcache)\n const podsQuota = Number(userResourceQuotas.pods)\n if (allComps().length + 2 > podsQuota) {\n alert(` \\u274C Exceeding user resource quota: Reduce number of components to ${podsQuota-3} or less.`)\n return false\n }\n return true\n}\n\nconst updateFlowVariables = async (flowCache) => {\n allCompNames.value = allComps().map(e => e.data?.orchName)\n if (allComps().length && flowIslocked.value == false) {\n startIsSet.value = allComps().some(e => e.data.isStart == true)\n endIsSet.value = allComps().some(e => e.data.isEnd == true)\n driverIsSet.value = allComps().some(e => e.data.isDriver == true)\n allCompValidity.value = allComps().every(e => e.data.validity === \"valid\")\n userQuotasCheck.value = checkUserResourceQuotas()\n\n startisDisabled.value = (allCompValidity.value && startIsSet.value && endIsSet.value && userQuotasCheck.value) ? false : true\n } else {\n startisDisabled.value = true\n }\n if (flowCache) {\n await logToObject(false)\n }\n console.warn(\"updateFlowVariables\")\n}\n\nconst onNodeDragStop = ({ node }) => console.log(\"drag stop\");\nconst onElementClick = async ({ element }) => {\n console.log(\"click\", element);\n if (isEdge(element)) {\n console.log(element.label);\n currentConnection.value = element;\n mountEdge.value = true;\n } else {\n canvas.value = await Shared.methods.getScreenshot()\n mountNodeForm(element, true);\n console.log(\"show dialogue for \", currentElement.value?.id);\n }\n};\n\nconst mountNodeForm = async (element, visibility) => { \n // console.warn(\"MountNodeForm of element\", element)\n const allConnections = elements.value.filter((el) => el.type === \"customline\" && el.data.type !== \"setup\")\n hasIncomingConnections.value = allConnections.filter((el) => el.target === element.id).length > 0\n hasOutgoingConnections.value = allConnections.filter((el) => el.source === element.id).length > 0\n currentElement.value = element;\n nodeVisibility.value = visibility;\n mountNode.value = true;\n}\n\nconst onNodeFormMounted = () => { \n if (nodeVisibility.value == false) { \n confirmComponent()\n }\n}\n\nconst onNodeFormUnMounted = () => { \n if (nodeVisibility.value == false) {\n // allows a connection's source and target to be checked sequentially\n // occurs when a connection is created or deleted, as this can affect comp. validity \n if (nodesToMountInBackground.value.length) {\n startCheckingNodesInBackground()\n } else { \n if (isNamespace.value) { \n startisDisabled.value = true;\n startPending.value = true;\n pauseisDisabled.value = true;\n pausePending.value = true;\n stopisDisabled.value = true;\n stopPending.value = true; \n toggleLock.value = true;\n call_log_stream()\n }\n emit(\"loading\", false)\n }\n }\n}\n\nconst nodeFormReportSave = (data) => { \n alert(\"\\u274C FILE UPLOAD ERROR: see dapta_upload_error.json for details.\")\n emit(\"flowSave\", JSON.stringify(data, null, 2), \"dapta_upload_error.json\"); // this triggers saveToFile function in Interface\n}\n\nconst elements = ref([]);\nconst setElements = function () {\n elements.value = [];\n if (props.components) {\n for (let i = 0; i <= props.components.length - 1; i++) {\n elements.value.push({\n id: props.components[i].name,\n type: \"selectorNode\",\n data: {\n orchName: props.components[i].name,\n orchApi: props.components[i].api,\n orchApiInputFiles: null,\n orchOptions: props.components[i].options,\n orchParameters: props.components[i].parameters,\n orchInputs: props.components[i].inputs,\n orchOutputs: props.components[i].outputs,\n validity: \"pending\",\n runstatus: {\n status: \"sleep\",\n time: \"\",\n iterations: 0,\n },\n componentEventsLog: \"\",\n isStart: false,\n isEnd: false,\n isDriver: false,\n },\n style: componentStyle,\n position: props.components[i].appmeta?.position ? props.components[i].appmeta?.position : { x: i * 20, y: i * 20 },\n });\n }\n }\n\n if (props.connections) {\n for (let i = 0; i <= props.connections.length - 1; i++) {\n elements.value.push({\n id: props.connections[i].name_origin,\n type: \"customline\",\n label: props.connections[i].name_origin,\n source: props.connections[i].origin,\n sourceHandle: props.connections[i].name_origin,\n target: props.connections[i].target,\n targetHandle: props.connections[i].name_target,\n style: {\n stroke: \"rgb(197, 197, 197)\",\n },\n data: {\n type: props.connections[i].type? props.connections[i].type : \"design\",\n },\n updatable: false,\n });\n console.log(\"connection object: \", elements.value[elements.value.length - 1])\n connectionStyle(elements.value[elements.value.length - 1])\n }\n }\n\n if (props.workflow) { \n if (\"start\" in props.workflow) { \n const index = elements.value.findIndex(e => e.type === \"selectorNode\" && e.id === props.workflow.start);\n elements.value[index].data.isStart = true;\n }\n if (\"end\" in props.workflow) { \n const index = elements.value.findIndex(e => e.type === \"selectorNode\" && e.id === props.workflow.end);\n elements.value[index].data.isEnd = true;\n }\n if (\"driver\" in props.workflow) { \n const index = elements.value.findIndex(e => e.type === \"selectorNode\" && e.id === props.workflow.driver);\n elements.value[index].data.isDriver = true;\n }\n }\n\n if (props.run_parameters) { \n if (\"name\" in props.run_parameters) { \n runName.value = props.run_parameters[\"name\"]\n }\n if (props.run_parameters.appmeta?.mtime) { \n lastSaved.value = props.run_parameters.appmeta.mtime\n }\n }\n\n // run validation check on all components\n if (props.components) {\n nodesToMountInBackground.value = allComps().map(e => e.id)\n // validation is started in onLoad or in watch of props\n }\n\n updateFlowVariables(false)\n // console.log(elements.value);\n};\nsetElements();\neleIDcounter = elements.value.length;\n\nconst startCheckingNodesInBackground = async () => { \n const eid = nodesToMountInBackground.value.pop()\n const ele = elements.value.find(e => e.type === \"selectorNode\" && e.id === eid)\n console.warn(`startCheckingNodesInBackground for ${eid}`)\n emit(\"loading\", true)\n mountNodeForm(ele, false) // check validity\n}\n\nconst onElementsRemove = (elementsToRemove: Elements) => {\n\n if (elementsToRemove.some(e => e.type === \"customline\" && e.data.type !== \"setup\")) {\n // collect ids of the source and target components\n const connections = elementsToRemove.filter(e => e.type === \"customline\" && e.data.type !== \"setup\")\n for (let i = 0; i <= connections.length - 1; i++) {\n if (!nodesToMountInBackground.value.includes(connections[i].source)) { \n nodesToMountInBackground.value.push(connections[i].source)\n }\n if (!nodesToMountInBackground.value.includes(connections[i].target)) { \n nodesToMountInBackground.value.push(connections[i].target)\n }\n }\n }\n\n removeElements(elementsToRemove, elements.value);\n console.log(\"element removed: \", elementsToRemove);\n};\n\nconst onConnect = (params: Connection | Edge) => {\n if (flowIslocked.value == false) {\n const newID = eleIDcounter;\n eleIDcounter += 1;\n const newconnection: Edge = {\n id: newID,\n type: \"customline\",\n label: params.sourceHandle,\n ...params,\n style: {\n stroke: \"rgb(197, 197, 197)\",\n },\n data: {\n type: \"design\"\n },\n updatable: false,\n };\n elements.value.push(newconnection);\n connectionStyle(elements.value[elements.value.length - 1])\n\n nodesToMountInBackground.value.push(newconnection.source, newconnection.target) // wait until source check completed then check validity or target\n startCheckingNodesInBackground()\n \n console.log(\"connection added: \", newID, params);\n }\n};\n\nconst logToObject = async (trigger_download) => {\n const vueflowOut = vfInstance.value?.toObject();\n // const path = ev.target.files[0].path;\n const appComponents = vueflowOut.elements\n .filter((el) => el.type === \"selectorNode\")\n .map((ele) => {\n const node = {\n name: ele.data.orchName,\n api: ele.data.orchApi,\n options: ele.data.orchOptions,\n parameters: ele.data.orchParameters,\n inputs: ele.data.orchInputs,\n outputs: ele.data.orchOutputs,\n appmeta: {\n apiInputFiles: ele.data.orchApiInputFiles,\n validity: ele.data.validity,\n id: ele.id,\n position: ele.position,\n },\n };\n return node;\n });\n const appConnections = vueflowOut.elements\n .filter((el) => el.type === \"customline\")\n .map((ele) => {\n const connection = {\n origin: vueflowOut.elements.filter((el) => el.type === \"selectorNode\" && el.id === ele.source).map((el) => el.data.orchName)[0],\n name_origin: ele.sourceHandle,\n target: vueflowOut.elements.filter((el) => el.type === \"selectorNode\" && el.id === ele.target).map((el) => el.data.orchName)[0], \n name_target: ele.targetHandle,\n type: ele.data.type,\n appmeta: {\n id: ele.id,\n label: ele.label,\n },\n };\n return connection;\n });\n const workFlowData = {\"start\":\"isStart\", \"end\":\"isEnd\", \"driver\":\"isDriver\"}\n for (const [key, value] of Object.entries(workFlowData)) { \n const element = vueflowOut.elements.find(e => e.type === \"selectorNode\" && e.data[value] == true)\n element ? workFlowData[key] = element.data.orchName : delete workFlowData[key]\n }\n const runParameters = props.run_parameters ? props.run_parameters : Object()\n runParameters[\"name\"] = runName.value\n \"appmeta\" in runParameters ? \"\" : runParameters[\"appmeta\"] = {\n \"filename\": \"dapta_input.json\", \"mtime\": null\n }\n const newDataValues = {\n components: appComponents,\n connections: appConnections,\n workflow: workFlowData,\n run_parameters: runParameters,\n };\n if (!_.isEqual(newDataValues, dataToFile.value)) { \n newDataValues.run_parameters.appmeta.mtime = null\n console.log(\"resetting run_parameters.appmeta.mtime\")\n dataToFile.value = newDataValues\n };\n if (trigger_download) {\n emit(\"flowSave\", JSON.stringify(dataToFile.value, null, 2), \"dapta_input.json\"); // this triggers saveToFile function in Interface\n console.log(\"Saving input to file.\");\n if (isNamespace.value) {\n await getStatus()\n emit(\"flowSave\", runLog.value, \"runlog.json\"); // this triggers saveToFile function in Interface\n console.log(\"Saving input to file.\");\n }\n } else { \n emit(\"flowCache\", JSON.stringify(dataToFile.value, null, 2));\n }\n};\n\nconst confirmComponent = (isSplash = false) => {\n mountNode.value = false;\n mountEdge.value = false;\n viewRunLog.value = false;\n moreOptions.value = false;\n userSecrets.value = false;\n if (isSplash) { \n onBoardingMsg.value = false;\n }\n emit(\"closeLog\")\n};\n\nconst updatePos = function () {\n // update the node positions to match the sreen size\n const nodeXoffset = Number.parseFloat(\n getComputedStyle(document.querySelectorAll(\".node-template\")[0]).width\n );\n for (let i = 1; i <= elements.value.length - 1; i++) {\n if (elements.value[i].type === \"selectorNode\") {\n elements.value[i].position.x = (nodeXoffset + 200) * i;\n elements.value[i].position.y = (nodeXoffset / 5 + 100) * i;\n }\n }\n};\n\nconst onLoad = (flowInstance: FlowInstance) => {\n // console.log(document.querySelectorAll(\".node-template\"))\n // if (document.querySelectorAll(\".node-template\").length > 0) updatePos();\n flowInstance.fitView({ padding: 0.1 });\n vfInstance.value = flowInstance;\n console.log(\"flow loaded:\", flowInstance);\n\n if (nodesToMountInBackground.value.length) {\n console.warn(\"Viewflow onLoad\")\n startCheckingNodesInBackground()\n }\n\n console.log(\"Vueflow instance is loaded ...\")\n};\n\nonUpdated(() => {\n // triggers whenever Vue re-renders or patches the DOM\n \n // if (event && event?.type === \"load\" && document.querySelectorAll(\".node-template\").length > 0) {\n // updatePos();\n // // vfInstance.value?.fitView(); doesn't work - always does fit-view on elements pre-update\n // console.log(\"updated elements view\");\n // };\n\n checkFlowLockToggled() \n console.log(\"Vue updated...\")\n});\n\nonMounted(async () =>{ \n // triggers whenever component is first mounted to the DOM\n console.warn(\"CustomEditableNode mounted.\")\n isNamespace.value = props.isnamespace\n onBoardingMsg.value = !hideOnBoardingMsg.value\n checkFlowLockToggled()\n})\n\nwatch(\n () => [props.components, props.connections, props.run_parameters],\n (newval, oldval) => {\n if (vfInstance.value) {\n setElements();\n if (nodesToMountInBackground.value.length) {\n console.warn(\"watch on Viewflow props triggered.\")\n startCheckingNodesInBackground()\n }\n }\n }\n);\n\nconst removeConnections = function (\n elid,\n oldHandles,\n newHandles,\n type: string\n) {\n // find handles that have been removed\n const missing = new Array();\n oldHandles.forEach((handle) => {\n if (newHandles.indexOf(handle) === -1) {\n missing.push(handle);\n }\n });\n\n console.log(\"handles to be removed:\", missing);\n // delete connections to the removed handles\n let removedElements;\n for (const handle of missing) {\n if (type === \"target\") {\n removedElements = elements.value.filter(\n (el) =>\n el.type === \"customline\" &&\n el.target === elid &&\n el.targetHandle === handle\n );\n } else if (type === \"source\") {\n removedElements = elements.value.filter(\n (el) =>\n el.type === \"customline\" &&\n el.source === elid &&\n el.sourceHandle === handle\n );\n }\n console.log(\"connections to be removed:\", removedElements);\n if (removedElements) onElementsRemove(removedElements);\n }\n};\n\nconst deleteComp = async (compid) => {\n confirmComponent();\n let removedElements = elements.value.filter(\n (el) =>\n el.type === \"selectorNode\" &&\n el.id === compid\n );\n if (removedElements) {\n if (removedElements[0].data.orchName) {\n await Shared.methods.call_be_api_delete_files(k8sAdminAPIEndPoint, userJWTToken.value, removedElements[0].data.orchName, null, null, runName.value)\n }\n onElementsRemove(removedElements)\n if (nodesToMountInBackground.value.length) {startCheckingNodesInBackground()}\n updateFlowVariables(true)\n }\n}\n\nconst deleteConnection = async (connectid) => {\n confirmComponent();\n let removedElements = elements.value.filter(\n (el) =>\n el.type === \"customline\" &&\n el.id === connectid\n );\n if (removedElements) {\n onElementsRemove(removedElements)\n if (nodesToMountInBackground.value.length) {startCheckingNodesInBackground()}\n updateFlowVariables(true)\n }\n}\n\nconst updateComp = async (newcomp, keepOpen, saveRun = false) => {\n if (!keepOpen && mountNode.value) confirmComponent();\n const comp = elements.value.find((elements) => elements.id === newcomp.id);\n comp.data.orchName = newcomp.orchName;\n comp.data.orchApi = newcomp.orchApi;\n comp.data.orchApiInputFiles = _.cloneDeep(newcomp.orchApiInputFiles);\n comp.data.orchOptions = _.cloneDeep(newcomp.orchOptions);\n comp.data.orchParameters = _.cloneDeep(newcomp.orchParameters);\n comp.data.isStart = newcomp.isStart;\n comp.data.isEnd = newcomp.isEnd;\n comp.data.isDriver = newcomp.isDriver;\n\n if (\n comp.data.orchInputs &&\n Object.keys(comp.data.orchInputs) !== Object.keys(newcomp.orchInputs)\n ) {\n removeConnections(\n comp.id,\n Object.keys(comp.data.orchInputs),\n Object.keys(newcomp.orchInputs),\n \"target\"\n );\n }\n if (\n comp.data.orchOutputs &&\n Object.keys(comp.data.orchOutputs) !== Object.keys(newcomp.orchOutputs)\n ) {\n removeConnections(\n comp.id,\n Object.keys(comp.data.orchOutputs),\n Object.keys(newcomp.orchOutputs),\n \"source\"\n );\n }\n comp.data.orchInputs = _.cloneDeep(newcomp.orchInputs);\n comp.data.orchOutputs = _.cloneDeep(newcomp.orchOutputs);\n comp.data.validity = newcomp.validity;\n\n await updateFlowVariables(true) // udates dataToFile in logToObject\n\n if (saveRun) {\n console.warn(\"call_be_api_upload after component update\") \n await call_be_api_upload(false)\n }\n\n console.log(\"Saved component: \", comp);\n // close the dialog\n};\n\nconst updateConnection = (newConnection) => {\n confirmComponent();\n const edge = elements.value.find((elements) => elements.id === newConnection.id);\n edge.label = newConnection.label;\n edge.data.type = newConnection.orchType;\n connectionStyle(edge)\n console.log(\"Saved component: \", edge);\n // close the dialog\n};\n\nconst getHandleBounds = function (bounds, height, width, data, position) {\n console.log(\"before update:\", bounds, data);\n const newBounds = new Array();\n const usedIndices = new Array();\n for (const handle of bounds) {\n const index = data.findIndex((obj) => obj.id === handle.id);\n const matchedHandle = data[index];\n // remove handles that are not in data\n if (matchedHandle) {\n // adjust the vertical position of the connections to match handle locations\n handle.y =\n (height * matchedHandle.data.offsetTop) / 100 - handle.height / 2;\n newBounds.push(handle);\n }\n usedIndices.push(index);\n }\n // add new handles\n const newData = data.filter(\n (val, index) => usedIndices.indexOf(index) === -1\n );\n if (newData.length > 0) {\n for (const handle of newData) {\n const defaultHandle = {\n height: 8,\n width: 8,\n id: \"\",\n position: position,\n x: position === \"left\" ? -4 : width - 4,\n y: 0,\n }; // keep style consistent with the other handles\n defaultHandle.id = handle.id;\n defaultHandle.y =\n (height * handle.data.offsetTop) / 100 - defaultHandle.height / 2;\n newBounds.push(defaultHandle);\n console.log(\"add handle \", defaultHandle);\n }\n }\n console.log(\"after update\", newBounds);\n return newBounds;\n};\n\nconst updateHandles = (data) => {\n if (!nodeVisibility.value) return // on initial load this function is skipped\n\n // cache the handle locations from the node component\n currentElementHandles.value.source = data.find((obj) => {\n return obj.type === \"source\";\n });\n currentElementHandles.value.target = data.find((obj) => {\n return obj.type === \"target\";\n });\n\n // update the handle bounds\n const comp = elements.value.find(\n (elements) => elements.id === currentElementHandles.value.source.id\n );\n if (comp && comp.__vf) {\n if (!comp.__vf.handleBounds.source)\n comp.__vf.handleBounds.source = new Array();\n if (!comp.__vf.handleBounds.target)\n comp.__vf.handleBounds.target = new Array();\n\n comp.__vf.handleBounds.source = getHandleBounds(\n comp.__vf.handleBounds.source,\n comp.__vf.height,\n comp.__vf.width,\n currentElementHandles.value.source.handles,\n \"right\"\n );\n\n comp.__vf.handleBounds.target = getHandleBounds(\n comp.__vf.handleBounds.target,\n comp.__vf.height,\n comp.__vf.width,\n currentElementHandles.value.target.handles,\n \"left\"\n );\n } else console.log(\"Error: could not find node.__vf to update handle bounds.\");\n\n // this is triggered if handles on a node were edited, added or removed\n if (nodesToMountInBackground.value.length) {startCheckingNodesInBackground()}\n updateFlowVariables(true) \n};\n\n// ------------------------------------------ Start - context-menu\nconst onRightClick = function (e) { \n if (flowIslocked.value == false) {\n mousePosition.value = { x: e.pageX, y: e.pageY }\n contextOpen.value = true;\n window.addEventListener(\"click\", listener); \n }\n}\nconst listener = (e) => { \n callback_fn();\n}\n\nconst callback_fn = function () {\n contextOpen.value = false;\n window.removeEventListener('click', listener); \n };\n\nconst atMousePos = computed(\n () => `top: ${mousePosition.value.y}px; left: ${mousePosition.value.x}px`\n);\n\nconst getCurrentViewTransform = function () {\n const para = document.getElementsByClassName('vue-flow__nodes');\n const compStyles = window.getComputedStyle(para[0]);\n const tmat = compStyles.getPropertyValue('transform').slice(7,-1).split(\",\") ; \n const yoffset = 50 // derived from #vue-flow, top: 50px; TODO: to be linked somehow\n // console.log(tmat)\n return [tmat, yoffset]\n}\n\nconst AddEmptyNode = function () {\n const newID = eleIDcounter;\n eleIDcounter += 1;\n const [tmat, yoffset] = getCurrentViewTransform()\n const xnode = (mousePosition.value.x - tmat[4])/ tmat[0]\n const ynode = (mousePosition.value.y - tmat[5] - yoffset)/ tmat[3]\n // console.log(tmat, yoffset, xnode, ynode)\n elements.value.push({\n id: newID,\n type: \"selectorNode\",\n data: {\n orchName: `component-${newID}`,\n orchApi: null,\n orchApiInputFiles: null,\n orchOptions: null,\n orchParameters: null,\n orchInputs: null,\n orchOutputs: null,\n validity: \"pending\",\n runstatus: {\n status: \"sleep\",\n time: \"\",\n iterations: 0,\n },\n componentEventsLog: \"\",\n isStart: false,\n isEnd: false,\n isDriver: false,\n },\n style: componentStyle,\n position: { x: xnode , y: ynode},\n });\n updateFlowVariables(true)\n console.log(\"Added Empty Node with ID \", newID)\n}\n// ------------------------------------------ End - context-menu\n\nconst getStart = async () => {\n const currentlyPaused = pausePending.value;\n\n let name\n [isNamespace.value, name] = await Shared.methods.call_get_Namespace_exists(k8sAdminAPIEndPoint, userJWTToken.value, \"any\", true)\n if (name !== null && name !== runName.value) {\n if (confirm(\"\\u274C User resource limit reached: Another run is already being executed.\\n\\nLoad the active run? \\n\" + name)) {\n console.warn(\"emit loadFromStore\")\n emit(\"loadFromStore\", name, { beApiTerminate: false })\n }\n return;\n }\n\n try {\n startPending.value = true;\n pausePending.value = false;\n stopPending.value = false;\n\n startisDisabled.value = true;\n pauseisDisabled.value = true;\n stopisDisabled.value = true;\n\n !flowIslocked.value && (toggleLock.value = true)\n checkFlowLockToggled()\n\n if (!currentlyPaused) {\n\n await logToObject(false)\n\n // 1. notify user and terminate conditions for restart are met\n if (isNamespace.value) {\n if (!logStream.value) { \n alert(\"\\u26A0 This run has already been executed. Getting latest status from server.\")\n logStreamStopped.value && call_log_stream()\n return;\n }\n\n if (confirm(\"Warning: The existing run and associated output data will be deleted. \\nDo you want to continue?\") == false) {\n console.log(\"cluster reset cancelled by user -> exiting getStart().\")\n startisDisabled.value = false;\n startPending.value = false;\n flowIslocked.value && (toggleLock.value = true)\n return\n }\n\n // delete all output files\n for (let i = 0; i <= allCompNames.value.length - 1; i++) { \n await Shared.methods.call_be_api_delete_files(k8sAdminAPIEndPoint, userJWTToken.value, allCompNames.value[i], \"outputs\", null, runName.value)\n }\n \n emit(\"logFound\", false)\n\n let termination_flag = await get_termination_flag()\n if (termination_flag) {\n await Shared.methods.call_be_api_terminate(k8sAdminAPIEndPoint, userJWTToken.value)\n isNamespace.value = false\n } else { console.log(\"No k8s restart required.\") }\n }\n\n // 2. upload input file to user cloud storage\n await call_be_api_upload()\n\n // 3. run setup as required\n if (!isNamespace.value) {\n await call_be_api_setup()\n isNamespace.value = await Shared.methods.call_get_Namespace_exists(k8sAdminAPIEndPoint, userJWTToken.value, true)\n if (!isNamespace.value) {\n throw Error(\"Namespace failed to be created -> exiting getStart().\")\n }\n }\n }\n\n // 4. execute call to start run\n if (isNamespace.value) {\n await call_user_api_start()\n call_log_stream()\n } else { \n throw Error(\"Namespace could not be found. -> exiting getStart().\")\n }\n\n } catch (err) {\n startisDisabled.value = false;\n startPending.value = false;\n pausePending.value = currentlyPaused;\n flowIslocked.value && (toggleLock.value = true)\n throw err\n } \n};\n\nconst get_saved_run = async () => { \n // 1. read previous input file from server\n serverInputData.value = await Shared.methods.call_be_api_download(k8sAdminAPIEndPoint, userJWTToken.value, runName.value)\n return serverInputData.value\n}\n\nconst get_termination_flag = async () => { \n console.log(\"Checking conditions for user cluster restart...\")\n\n // 1. read previous input file from server \n await get_saved_run()\n\n // 2. compare server input with new input\n if (dataToFile.value.components.length) {\n for (let i = 0; i <= dataToFile.value.components.length - 1; i++) {\n let name = dataToFile.value.components[i].name\n let image = dataToFile.value.components[i].api\n\n if (serverInputData.value.components.length) {\n const matchingComp = serverInputData.value.components.findIndex(e => (e.name === name && e.api === image))\n if (matchingComp >= 0) { \n\n const refComp = serverInputData.value.components[matchingComp]\n const newComp = dataToFile.value.components[i]\n // do check on the component\n if ((refComp.options.replicas || newComp.options.replicas) && refComp.options.replicas!=newComp.options.replicas) {\n console.log(`changed number of replicas for component ${name} >> restart required`)\n return true\n }\n \n serverInputData.value.components.splice(matchingComp,1)\n } else { \n // user component was added or modified\n console.log(`component ${name} was added or modified >> restart required`)\n return true\n }\n } else {\n // no user components on server\n console.log(\"no user components on server >> restart required\")\n return true\n } \n }\n\n if (serverInputData.value.components.length) { \n // a user component was removed\n console.log(\"a user component was removed >> restart required\")\n return true\n }\n }\n\n return false\n}\n\nconst setRunParameters_appmeta = () => {\n const now = new Date()\n dataToFile.value.run_parameters.appmeta = dataToFile.value.run_parameters.appmeta || {};\n dataToFile.value.run_parameters.appmeta.mtime = now.toISOString()\n lastSaved.value = now.toISOString()\n console.log(\"setRunParameters_appmeta\", dataToFile.value.run_parameters.appmeta.mtime)\n}\n\nconst call_be_api_upload = async (getScreenshot=true) => { \n console.log(\"Upload dapta_input.json\");\n setRunParameters_appmeta()\n if (getScreenshot) {\n canvas.value = await Shared.methods.getScreenshot()\n }\n await Shared.methods.uploadScreenshot(k8sAdminAPIEndPoint, userJWTToken.value, runName.value, canvas.value)\n const data = new URLSearchParams({\n run_name: String(runName.value)\n })\n await fetch(k8sAdminAPIEndPoint + \"/uploadjson?\" + data, {\n method: \"POST\",\n headers: { \"Authorization\": `Bearer ${userJWTToken.value}`, 'Content-Type': 'application/json' },\n body: JSON.stringify(dataToFile.value, null, 2)\n }).then(Shared.methods.handleErrors);\n}\n\nconst deleteMultipleFiles = async (component, subfolder, filenames) => { \n console.log(\"Delete multiple files by filename list.\");\n for (var j = 0; j < filenames.length; j++) { \n await Shared.methods.call_be_api_delete_files(k8sAdminAPIEndPoint, userJWTToken.value, component, subfolder, filenames[j], runName.value)\n }\n nodeFormTemplate.value.getParamInputFiles()\n}\n\nconst call_be_api_setup = async () => { \n console.log(\"Set up user k8s namespace.\");\n const data = new URLSearchParams({\n run_name: String(runName.value)\n })\n await fetch(k8sAdminAPIEndPoint +\"/setup?\" + data, {\n method: \"POST\",\n headers: { \"Authorization\": `Bearer ${userJWTToken.value}`}\n }).then(Shared.methods.handleErrors)\n}\n\nconst call_user_api_start = async () => { \n const data = new URLSearchParams({\n run_name: String(runName.value)\n })\n let route;\n if (restart.value) {\n route = userAPIEndPoint + \"/restart\";\n } else {\n route = userAPIEndPoint + \"/start?\" + data;\n }\n console.log(\"START orch\");\n await fetch(route, {\n method: \"GET\",\n headers: {\"Authorization\": `Bearer ${userJWTToken.value}`}\n }).then(Shared.methods.handleErrors)\n .then((response) => {\n if (response.ok) {\n console.log(response)\n return response.json();\n }\n }).then((data) => { \n console.log(data);\n })\n}\n\nconst call_log_stream = async (silent=false) => {\n console.log(\"Listen to server log.\");\n const controller = new AbortController();\n const signal = controller.signal; \n logStreamStopped.value = false;\n\n const response = await fetch(userAPIEndPoint + \"/log_stream\", {\n method: \"GET\",\n headers: { \"Authorization\": `Bearer ${userJWTToken.value}` },\n signal: signal\n }).then(Shared.methods.handleErrors)\n\n let counter = 0\n const reader = response.body.getReader();\n async function read(reader) {\n const {value, done} = await reader.read();\n\n if (done) {\n logStreamStopped.value = true;\n controller.abort()\n updateRunstatus(logStreamStopped.value, silent)\n return;\n }\n const decoder = new TextDecoder();\n const logContent = decoder.decode(value).split(/\\r?\\n/);\n for (let i = 0; i < logContent.length; i++) {\n if (logContent[i].length > 10) { // skip empty chunks and timestamps\n if (logContent[i].search(/\"/g) == -1) {\n logStream.value = JSON.parse(logContent[i].replace(/'/g, '\"'))\n } else { \n logStream.value = JSON.parse(logContent[i])\n }\n counter += 1\n console.log(counter, logStream.value)\n updateRunstatus(logStreamStopped.value, silent)\n }\n }\n\n emit(\"logFound\", true)\n return read(reader);\n }\n await read(reader)\n // .catch(async () => {\n // controller.abort()\n // console.error(\"Fetching logStream failed. Try again in 5s.\")\n // await Shared.methods.sleep(5000);\n // call_log_stream()\n // });\n console.log(\"Finished!\");\n}\n\nconst resetControls = () => { \n startPending.value = false;\n pausePending.value = false;\n stopPending.value = false;\n\n startisDisabled.value = false;\n pauseisDisabled.value = true;\n stopisDisabled.value = true;\n\n // stopLogStream.value = true;\n restart.value = false;\n flowIslocked.value && (toggleLock.value = true)\n}\n\nconst getUserStorage = async () => {\n console.warn(\"getUserStorage\")\n await fetch(k8sAdminAPIEndPoint + \"/checkstoragequota\", {\n method: \"GET\",\n headers: {\"Authorization\": `Bearer ${userJWTToken.value}`}\n }).then(Shared.methods.handleErrors)\n .then((response) => {\n if (response.ok) {\n console.log(response)\n return response.json();\n }\n }).then((data) => { \n userResourceStats.value.storage.val = Math.ceil(data.used_storage_MB);\n userResourceStats.value.storage.pc = Math.ceil(data.pc_used);\n if (data.pc_used >= 80.0) { \n alert(`\\u26A0 You are using ${data.used_storage_MB}MB = ${Math.ceil(data.pc_used)}% of your allocated file storage. \\nView the run Log for details. \\n \\n WARNING: your run may fail when 100% of storage is used.`)\n }\n }) \n}\n\nconst userStatsDisplay = async () => {\n await getUserStorage()\n getUserStats()\n alert(`User resource usage stats: \n \\n Storage: ${userResourceStats.value.storage.pc}% used / ${userResourceStats.value.storage.val} Mbi.\n \\n Pods: ${userResourceStats.value.pods.pc}% used / ${userResourceStats.value.pods.val} \n \\n CPU: ${userResourceStats.value.cpu.val} cpu\n \\n Memory: ${userResourceStats.value.memory.val} Gbi`)\n}\n\nconst getUserStats = async () => {\n console.warn(\"getUserStats\")\n if (isNamespace.value) {\n await fetch(k8sAdminAPIEndPoint + \"/checkuserstats\", {\n method: \"GET\",\n headers: { \"Authorization\": `Bearer ${userJWTToken.value}` }\n }).then(Shared.methods.handleErrors)\n .then((response) => {\n if (response.ok) {\n return response.json();\n }\n }).then((data) => {\n console.log(data)\n userResourceStats.value.pods.val = data.pods_used - 2; // excluding system pods \n userResourceStats.value.pods.pc = data.pods_pc_used;\n userResourceStats.value.cpu.val = Math.round(data.cpu_used)/1000;\n // userResourceStats.value.cpu.pc = Math.round(data.cpu_pc_used);\n userResourceStats.value.memory.val = Math.round(data.memory_used*1000)/1000;\n // userResourceStats.value.memory.pc = Math.round(data.memory_pc_used);\n })\n }\n}\n\nconst updateRunstatus = (stopped, silent=false) => { \n // update the interface control buttons \n if (stopped == true && Object.keys(logStream.value.errorlog).length > 0) {\n resetControls()\n if (!(logStream.value.statuslog.orchestrator.status === \"stopped\")) {\n let msg = \" \\u274C Run error occured: Check components for details.\\n\"\n if (\"orchestrator\" in logStream.value.errorlog) {\n msg = \"Orchestrator error found: \\n\"\n const err = logStream.value.errorlog[\"orchestrator\"]\n msg += `${err.time} -- ${err.details}\\n`\n }\n !silent && alert(msg);\n }\n } else if (\"orchestrator\" in logStream.value.statuslog) {\n const status = logStream.value.statuslog.orchestrator.status\n if ((status === \"setup\" || status === \"executing\") && startPending.value) {\n startPending.value = false;\n pausePending.value = false;\n stopPending.value = false;\n\n startisDisabled.value = true;\n pauseisDisabled.value = false;\n stopisDisabled.value = false;\n }\n if (stopped == true && status === \"paused\" && pausePending.value) {\n startPending.value = false;\n // pausePending remains true as long as the run is paused\n stopPending.value = false;\n\n startisDisabled.value = false;\n pauseisDisabled.value = true;\n stopisDisabled.value = false;\n\n restart.value = true;\n !silent && alert(\"PAUSED: click \\u23F5 to continue Run execution.\");\n }\n if (stopped == true && status === \"stopped\" && stopPending.value) {\n resetControls()\n !silent && alert(\"STOPPED: click \\u23F5 to restart Run execution.\");\n }\n if (stopped == true && status === \"completed\") {\n resetControls()\n !silent && alert(\"\\u2714 The Run has completed successfully.\");\n }\n } else { \n const e = logStream.value.events\n if ( !e.start && !e.pause && !e.stop ) \n // this occurs if starting the orchestrator failed or the logstream is called before start\n resetControls()\n stopped = true\n }\n\n // update run status for all components\n if (stopped != true) {\n allComps().map(e => {\n const name = e.data.orchName\n if (name in logStream.value.errorlog) {\n const err = logStream.value.errorlog[name]\n const s = {\n \"status\": \"error\",\n \"time\": err.time,\n \"iterations\": logStream.value.statuslog[name].iterations\n }\n if (!_.isEqual(toRaw(e.data.runstatus),s)) {\n e.data.runstatus = s;\n e.data.componentEventsLog += `${err.time} -- ${\"error\".toUpperCase().padEnd(7, ' ')} -- ${err.code} -- ${err.details}\\n`\n }\n } else if (logStream.value.statuslog.orchestrator.status === \"stopped\") {\n const sta = logStream.value.statuslog.orchestrator\n const s = {\n \"status\": sta.status,\n \"time\": sta.time,\n \"iterations\": logStream.value.statuslog[name].iterations\n }\n if (!_.isEqual(toRaw(e.data.runstatus),s)) {\n e.data.runstatus = s;\n e.data.componentEventsLog += `${sta.time} -- STOPPED by user.\\n`\n }\n } else if (logStream.value.statuslog.orchestrator.status === \"paused\") {\n const sta = logStream.value.statuslog.orchestrator\n const s = {\n \"status\": sta.status,\n \"time\": sta.time,\n \"iterations\": logStream.value.statuslog[name].iterations\n }\n if (!_.isEqual(toRaw(e.data.runstatus),s)) {\n e.data.runstatus = s;\n e.data.componentEventsLog += `${sta.time} -- PAUSED by user.\\n`\n }\n } else if (name in logStream.value.statuslog) {\n const sta = logStream.value.statuslog[name]\n const s = {\n \"status\": sta.status,\n \"time\": sta.time,\n \"iterations\": sta.iterations\n }\n if (!_.isEqual(toRaw(e.data.runstatus),s)) {\n console.log(\"run status, \", toRaw(e.data.runstatus));\n console.log(\"new status: \", s);\n e.data.runstatus = s;\n e.data.componentEventsLog += `${sta.time} -- ${sta.status.toUpperCase().padEnd(7, ' ')} -- ${sta.iterations}\\n`\n }\n }\n })\n\n // check for component warnings that trigger FE events\n for (const val of Object.values(logStream.value.statuslog)) {\n if (\"warning\" in val && val.warning.startsWith(\"USER_STORAGE_QUOTA 80% WARNING\")) {\n getUserStorage();\n }\n }\n }\n}\n\nconst getPause = async () => {\n console.log(\"PAUSED orch\");\n await fetch(userAPIEndPoint + \"/pause\", {\n method: \"GET\",\n headers: { \"Authorization\": `Bearer ${userJWTToken.value}` }\n }).then(Shared.methods.handleErrors)\n .then((response) => {\n if (response.ok) {\n startPending.value = false;\n pausePending.value = true;\n stopPending.value = false;\n\n startisDisabled.value = true;\n pauseisDisabled.value = true;\n stopisDisabled.value = true;\n return response.json();\n }\n }).then((data) => {\n console.log(data);\n });\n};\n\nconst getStop = async () => {\n console.log(\"STOP orch\");\n await fetch(userAPIEndPoint + \"/stop\", {\n method: \"GET\",\n headers: { \"Authorization\": `Bearer ${userJWTToken.value}` }\n }).then(Shared.methods.handleErrors)\n .then((response) => {\n if (response.ok) {\n startPending.value = false;\n pausePending.value = false;\n stopPending.value = true;\n\n startisDisabled.value = true;\n pauseisDisabled.value = true;\n stopisDisabled.value = true;\n return response.json();\n }\n }).then((data) => {\n console.log(data);\n });\n if (logStreamStopped.value == true) call_log_stream(); // when paused\n};\n\nconst getUserAppTokens = async () => {\n console.log(\"getUserAppTokens\");\n await fetch(authAPIEndPoint + \"/get_user_app_tokens\", {\n method: \"GET\",\n headers: { \"Authorization\": `Bearer ${userJWTToken.value}` }\n }).then(Shared.methods.handleErrors)\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n }).then((data) => userAppTokens.value = data[\"user_app_tokens\"])\n}\n\nconst setUserAppTokens = async () => {\n console.log(\"setUserAppTokens\");\n await fetch(authAPIEndPoint + \"/set_user_app_tokens\", {\n method: \"POST\",\n headers: { \"Authorization\": `Bearer ${userJWTToken.value}` },\n body: JSON.stringify({ user_app_tokens: userAppTokens.value }, null, 2),\n }).then(Shared.methods.handleErrors)\n}\n\nwatch(\n () => [props.viewlog, props.moreOptions],\n async (newval, oldval) => {\n viewRunLog.value = props.viewlog;\n moreOptions.value = props.moreOptions;\n if (viewRunLog.value) {\n await getStatus()\n console.log(\"Updated the run log from BE.\")\n }\n }\n);\n\nwatch(\n () => [props.runName],\n async (newval, oldval) => {\n runName.value = props.runName\n }\n)\n\nconst getStatus = async () => {\n console.log(\"STATUS orch\");\n await fetch(userAPIEndPoint + \"/status\", {\n method: \"GET\",\n headers: { \"Authorization\": `Bearer ${userJWTToken.value}` }\n }).then(Shared.methods.handleErrors)\n .then((response) => {\n if (response.ok) {\n return response.json();\n }\n }).then((data) => {\n runLog.value = JSON.stringify({ \"time\": data.time, \"status\": data.status }, null, \" \")\n });\n};\n\n__expose({\n logToObject,\n call_be_api_upload\n});\n\n\nreturn (_ctx: any,_cache: any) => {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"p\", _hoisted_1, [\n _createTextVNode(_toDisplayString(runName.value) + \" \", 1),\n _hoisted_2,\n _createElementVNode(\"em\", _hoisted_3, _toDisplayString(_ctx.$t('message.Last_saved')) + \" \" + _toDisplayString(lastSaved.value), 1)\n ]),\n _createElementVNode(\"button\", {\n class: \"orch-control\",\n onClick: getStart,\n disabled: startisDisabled.value,\n style: {\"float\":\"none\"}\n }, [\n _createVNode(_component_font_awesome_icon, {\n icon: \"play\",\n size: \"lg\",\n class: _normalizeClass({'fa-fade': startPending.value})\n }, null, 8, [\"class\"])\n ], 8, _hoisted_4),\n _createElementVNode(\"button\", {\n class: \"orch-control\",\n onClick: getPause,\n disabled: pauseisDisabled.value,\n style: {\"float\":\"none\"}\n }, [\n _createVNode(_component_font_awesome_icon, {\n icon: \"pause\",\n size: \"lg\",\n class: _normalizeClass({'fa-fade': pausePending.value})\n }, null, 8, [\"class\"])\n ], 8, _hoisted_5),\n _createElementVNode(\"button\", {\n class: \"orch-control\",\n onClick: getStop,\n disabled: stopisDisabled.value,\n style: {\"float\":\"none\"}\n }, [\n _createVNode(_component_font_awesome_icon, {\n icon: \"stop\",\n size: \"lg\",\n class: _normalizeClass({'fa-fade': stopPending.value})\n }, null, 8, [\"class\"])\n ], 8, _hoisted_6)\n ]),\n (mountNode.value)\n ? (_openBlock(), _createBlock(BaseDialog, {\n key: \"nodeDialogue\",\n onClose: confirmComponent,\n title: \"Component props\",\n eleprops: currentElement.value,\n visibility: nodeVisibility.value\n }, {\n default: _withCtx(() => [\n _createVNode(NodeForm, {\n ref_key: \"nodeFormTemplate\",\n ref: nodeFormTemplate,\n \"ele-props\": currentElement.value,\n \"all-comp-names\": allCompNames.value,\n \"workflow-settings\": [startIsSet.value, endIsSet.value, driverIsSet.value],\n \"has-connections\": [hasIncomingConnections.value, hasOutgoingConnections.value],\n \"flow-is-locked\": flowIslocked.value,\n visibility: nodeVisibility.value,\n \"run-name\": runName.value,\n \"log-stream\": logStream.value,\n onDeleteParamfiles: deleteMultipleFiles,\n onUpdateComp: updateComp,\n onDeleteComp: deleteComp,\n onNodeMounted: onNodeFormMounted,\n onNodeBeforeUnmounted: onNodeFormUnMounted,\n onReportSave: nodeFormReportSave,\n onGetUserStorage: getUserStorage\n }, null, 8, [\"ele-props\", \"all-comp-names\", \"workflow-settings\", \"has-connections\", \"flow-is-locked\", \"visibility\", \"run-name\", \"log-stream\"])\n ]),\n _: 1\n }, 8, [\"eleprops\", \"visibility\"]))\n : _createCommentVNode(\"\", true),\n (mountEdge.value)\n ? (_openBlock(), _createBlock(BaseDialog, {\n key: \"edgeDialogue\",\n onClose: confirmComponent,\n visibility: \"\"\n }, {\n default: _withCtx(() => [\n _createVNode(ConnectionForm, {\n \"ele-props\": currentConnection.value,\n \"flow-is-locked\": flowIslocked.value,\n onUpdateConnection: updateConnection,\n onDeleteConnection: deleteConnection\n }, null, 8, [\"ele-props\", \"flow-is-locked\"])\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (viewRunLog.value)\n ? (_openBlock(), _createBlock(BaseDialog, {\n key: \"runLog\",\n onClose: confirmComponent,\n visibility: \"\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", null, [\n _withDirectives(_createElementVNode(\"textarea\", {\n id: \"component-log\",\n cols: \"70\",\n rows: \"35\",\n readonly: \"\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((runLog).value = $event))\n }, null, 512), [\n [\n _vModelText,\n runLog.value,\n void 0,\n { trim: true }\n ]\n ]),\n _createElementVNode(\"div\", { id: \"basedialogbuttons\" }, [\n _createElementVNode(\"button\", {\n class: \"basedialog\",\n onClick: confirmComponent\n }, \" Close \")\n ])\n ])\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (moreOptions.value)\n ? (_openBlock(), _createBlock(BaseDialog, {\n key: \"moreOptions\",\n onClose: confirmComponent,\n visibility: \"\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"h3\", _hoisted_7, _toDisplayString(_ctx.$t('message.Settings')), 1),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"button\", {\n class: \"basedialog\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => {onBoardingMsg.value = true;})\n }, _toDisplayString(_ctx.$t('message.Welcome')), 1),\n _createElementVNode(\"p\", _hoisted_9, _toDisplayString(_ctx.$t('message.View_the_welcome_message')), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"button\", {\n class: \"basedialog\",\n onClick: _cache[2] || (_cache[2] = async () => {await getUserAppTokens(); userSecrets.value = true})\n }, _toDisplayString(_ctx.$t('message.User_secrets')), 1),\n _createElementVNode(\"p\", _hoisted_11, _toDisplayString(_ctx.$t('message.Secrets_are_a_secure_way')), 1)\n ]),\n _createElementVNode(\"h3\", _hoisted_12, _toDisplayString(_ctx.$t('message.Run_Management')), 1),\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"button\", {\n class: \"basedialog\",\n onClick: userStatsDisplay\n }, _toDisplayString(_ctx.$t('message.User_stats')), 1),\n _createElementVNode(\"p\", _hoisted_14, _toDisplayString(_ctx.$t('message.View_resource_usage_for_your_workspace')) + \" \", 1)\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"button\", _hoisted_16, _toDisplayString(_ctx.$t('message.Share_Run')), 1),\n _createElementVNode(\"p\", _hoisted_17, _toDisplayString(_ctx.$t('message.Invite_another_user_to_view')), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_18, [\n _createElementVNode(\"button\", {\n class: \"basedialog dangerzone\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (emit('resetRun')))\n }, _toDisplayString(_ctx.$t('message.Terminate')), 1),\n _createElementVNode(\"p\", _hoisted_19, _toDisplayString(_ctx.$t('message.Reset_your_run_environment')), 1)\n ])\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (onBoardingMsg.value)\n ? (_openBlock(), _createBlock(BaseDialog, {\n key: \"onBoardingMsg\",\n onClose: _cache[6] || (_cache[6] = (e) => confirmComponent(true)),\n visibility: \"\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"h2\", _hoisted_21, _toDisplayString(_ctx.$t('message.Welcome')), 1),\n _createElementVNode(\"p\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('message.This_is_your_dashboard')) + \" \", 1),\n _hoisted_22,\n _hoisted_23,\n _createTextVNode(),\n _createElementVNode(\"b\", null, _toDisplayString(_ctx.$t('message.Here_are_some_tips')), 1)\n ]),\n _createElementVNode(\"ul\", _hoisted_24, [\n _createElementVNode(\"li\", _hoisted_25, [\n _createVNode(_component_font_awesome_icon, {\n icon: \"arrow-pointer\",\n color: \"rgb(57, 57, 57)\",\n size: \"2x\",\n transform: \"shrink-8\",\n mask: \"circle\",\n style: {\"margin-right\":\"10px\"}\n }),\n _createElementVNode(\"b\", null, _toDisplayString(_ctx.$t('message.Learn')), 1),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('message.about_the')) + \" \", 1),\n _createElementVNode(\"a\", _hoisted_26, _toDisplayString(_ctx.$t('message.dashboard_controls')), 1),\n _createTextVNode(\".\")\n ]),\n _createElementVNode(\"li\", _hoisted_27, [\n _createVNode(_component_font_awesome_icon, {\n icon: \"lightbulb\",\n color: \"rgb(57, 57, 57)\",\n size: \"2x\",\n transform: \"shrink-8\",\n mask: \"circle\",\n style: {\"margin-right\":\"10px\"}\n }),\n _createElementVNode(\"b\", null, _toDisplayString(_ctx.$t('message.Learn')), 1),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('message.how_to_create')) + \" \", 1),\n _createElementVNode(\"a\", _hoisted_28, _toDisplayString(_ctx.$t('message.Intro_Tutorial')), 1)\n ]),\n _createElementVNode(\"li\", _hoisted_29, [\n _createVNode(_component_font_awesome_icon, {\n icon: \"book\",\n color: \"rgb(57, 57, 57)\",\n size: \"2x\",\n transform: \"shrink-8\",\n mask: \"circle\",\n style: {\"margin-right\":\"10px\"}\n }),\n _createElementVNode(\"b\", null, _toDisplayString(_ctx.$t('message.View')), 1),\n _createTextVNode(),\n _createElementVNode(\"a\", _hoisted_30, _toDisplayString(_ctx.$t('message.User_Guide')), 1),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('message.by_clicking_on_the_help')) + \" \", 1),\n _hoisted_31,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('message.button_at_any_time')), 1)\n ]),\n _createElementVNode(\"li\", _hoisted_32, [\n _createVNode(_component_font_awesome_icon, {\n icon: \"comment-dots\",\n color: \"rgb(57, 57, 57)\",\n size: \"2x\",\n transform: \"shrink-8\",\n mask: \"circle\",\n style: {\"margin-right\":\"10px\"}\n }),\n _createElementVNode(\"b\", null, _toDisplayString(_ctx.$t('message.Chat')), 1),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('message.to_our_expert')) + \" \", 1),\n _hoisted_33\n ])\n ]),\n _hoisted_34,\n _createElementVNode(\"b\", null, _toDisplayString(_ctx.$t('message.Happy_simulating')), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_35, [\n _createElementVNode(\"button\", {\n class: \"basedialog\",\n onClick: confirmComponent\n }, _toDisplayString(_ctx.$t('message.Close')), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_36, [\n _createElementVNode(\"label\", null, [\n _withDirectives(_createElementVNode(\"input\", {\n type: \"checkbox\",\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((hideOnBoardingMsg).value = $event)),\n onChange: _cache[5] || (_cache[5] = ($event: any) => (check($event)))\n }, null, 544), [\n [_vModelCheckbox, hideOnBoardingMsg.value]\n ]),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('message.show_this_message')), 1)\n ])\n ])\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (userSecrets.value)\n ? (_openBlock(), _createBlock(BaseDialog, {\n key: \"userSecrets\",\n onClose: _cache[11] || (_cache[11] = (e) => confirmComponent()),\n visibility: \"\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"h3\", _hoisted_37, _toDisplayString(_ctx.$t('message.User_secrets')), 1),\n _createElementVNode(\"ul\", _hoisted_38, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(userAppTokens.value, (item, index) => {\n return (_openBlock(), _createElementBlock(\"li\", { key: index }, [\n _createElementVNode(\"div\", {\n class: \"secret-listicon\",\n onClick: ($event: any) => (deleteSecretItem(index))\n }, [\n _createVNode(_component_font_awesome_icon, {\n icon: \"minus-circle\",\n size: \"lg\"\n })\n ], 8, _hoisted_39),\n _createElementVNode(\"div\", _hoisted_40, [\n _withDirectives(_createElementVNode(\"input\", {\n class: _normalizeClass({ invalid: /^[a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])?$/.test(item.name) == false}),\n type: \"text\",\n \"onUpdate:modelValue\": ($event: any) => ((item.name) = $event),\n placeholder: _ctx.$t('message.NAME'),\n required: \"\",\n onBlur: _cache[7] || (_cache[7] = ($event: any) => (getUserAppTokensValidity()))\n }, null, 42, _hoisted_41), [\n [\n _vModelText,\n item.name,\n void 0,\n { trim: true }\n ]\n ])\n ]),\n _hoisted_42,\n _createElementVNode(\"div\", _hoisted_43, [\n _withDirectives(_createElementVNode(\"input\", {\n class: _normalizeClass({ invalid: /^[a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])?$/.test(item.value) == false}),\n type: \"text\",\n \"onUpdate:modelValue\": ($event: any) => ((item.value) = $event),\n placeholder: _ctx.$t('message.VALUE'),\n required: \"\",\n onBlur: _cache[8] || (_cache[8] = ($event: any) => (getUserAppTokensValidity()))\n }, null, 42, _hoisted_44), [\n [\n _vModelText,\n item.value,\n void 0,\n { trim: true }\n ]\n ])\n ])\n ]))\n }), 128)),\n _createElementVNode(\"li\", null, [\n _createElementVNode(\"div\", {\n class: \"secret-listicon\",\n onClick: addSecretItem\n }, [\n _createVNode(_component_font_awesome_icon, {\n icon: \"plus-circle\",\n size: \"lg\"\n })\n ]),\n _createElementVNode(\"div\", _hoisted_45, [\n _createElementVNode(\"input\", {\n type: \"text\",\n placeholder: _ctx.$t('message.NAME'),\n readonly: \"true\",\n style: {\"background-color\":\"#ccc\"}\n }, null, 8, _hoisted_46)\n ]),\n _hoisted_47,\n _createElementVNode(\"div\", _hoisted_48, [\n _createElementVNode(\"input\", {\n type: \"text\",\n placeholder: _ctx.$t('message.VALUE'),\n readonly: \"true\",\n style: {\"background-color\":\"#ccc\"}\n }, null, 8, _hoisted_49)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_50, [\n _createElementVNode(\"button\", {\n class: \"basedialog\",\n onClick: _cache[9] || (_cache[9] = async() => {await setUserAppTokens(); userAppTokensValid.value = false}),\n disabled: userAppTokensValid.value == false && userAppTokens.value.length>0\n }, _toDisplayString(_ctx.$t('message.Save')), 9, _hoisted_51),\n _createElementVNode(\"button\", {\n class: \"basedialog\",\n onClick: _cache[10] || (_cache[10] = ($event: any) => (confirmComponent()))\n }, _toDisplayString(_ctx.$t('message.Close')), 1)\n ])\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (contextOpen.value)\n ? (_openBlock(), _createBlock(ContextMenu, {\n key: 6,\n style: _normalizeStyle(atMousePos.value)\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"section\", {\n class: \"contextoption\",\n onClick: AddEmptyNode\n }, [\n _createElementVNode(\"p\", null, _toDisplayString(_ctx.$t('message.Add_Empty_Node')), 1)\n ])\n ]),\n _: 1\n }, 8, [\"style\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_unref(VueFlow), {\n modelValue: elements.value,\n \"onUpdate:modelValue\": _cache[12] || (_cache[12] = ($event: any) => ((elements).value = $event)),\n class: \"vue-flow\",\n \"node-types\": ['selectorNode'],\n \"edge-types\": ['customline'],\n \"connection-mode\": _unref(ConnectionMode).Loose,\n \"snap-to-grid\": true,\n \"snap-grid\": snapGrid,\n \"default-zoom\": 1.0,\n onElementClick: onElementClick,\n onElementsRemove: onElementsRemove,\n onConnect: onConnect,\n onNodeDragStop: onNodeDragStop,\n onLoad: onLoad,\n onContextmenu: _withModifiers(onRightClick, [\"prevent\"])\n }, {\n \"node-selectorNode\": _withCtx((props) => [\n _createVNode(EditableNode, _mergeProps({ class: \"node-template\" }, props, { onUpdateHandles: updateHandles }), null, 16)\n ]),\n \"edge-customline\": _withCtx((props) => [\n _createVNode(ConnectionLine, _normalizeProps(_guardReactiveProps(props)), null, 16)\n ]),\n default: _withCtx(() => [\n _createVNode(_unref(Controls), { showInteractive: false }),\n _createVNode(_unref(Background), {\n variant: \"dots\",\n gap: 20,\n size: 0.5,\n color: 'rgb(0, 70, 201)'\n }, null, 8, [\"color\"])\n ]),\n _: 1\n }, 8, [\"modelValue\", \"connection-mode\", \"onContextmenu\"])\n ], 64))\n}\n}\n\n})","import script from \"./CustomEditableNode.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./CustomEditableNode.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./CustomEditableNode.vue?vue&type=style&index=0&id=8ff49894&lang=scss&scoped=true\"\n\nimport exportComponent from \"/codebuild/output/src1203744758/src/frontend/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-8ff49894\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, withCtx as _withCtx, createBlock as _createBlock, createCommentVNode as _createCommentVNode, mergeProps as _mergeProps, vShow as _vShow, withDirectives as _withDirectives } from \"vue\"\nimport _imports_0 from '../assets/Dapta-Brandmark-RGB.png'\n\n\nconst _hoisted_1 = { id: \"app-header\" }\nconst _hoisted_2 = [\"disabled\"]\nconst _hoisted_3 = [\"disabled\"]\nconst _hoisted_4 = [\"disabled\"]\nconst _hoisted_5 = [\"disabled\"]\nconst _hoisted_6 = [\"disabled\"]\nconst _hoisted_7 = [\"disabled\"]\nconst _hoisted_8 = {\n class: \"inactive\",\n style: {\"float\":\"right\"}\n}\nconst _hoisted_9 = { style: {\"display\":\"flex\",\"justify-content\":\"space-between\",\"align-items\":\"center\",\"text-align\":\"left\",\"padding-left\":\"20px\"} }\nconst _hoisted_10 = { style: {\"list-style\":\"none\",\"text-align\":\"left\",\"padding\":\"0\",\"margin\":\"0\"} }\nconst _hoisted_11 = [\"src\"]\nconst _hoisted_12 = { class: \"option-description\" }\nconst _hoisted_13 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_14 = { class: \"option-buttons\" }\nconst _hoisted_15 = [\"onClick\", \"disabled\"]\nconst _hoisted_16 = [\"onClick\"]\nconst _hoisted_17 = [\"onClick\"]\nconst _hoisted_18 = [\"onClick\"]\nconst _hoisted_19 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_20 = { class: \"option\" }\nconst _hoisted_21 = { class: \"option-description\" }\nconst _hoisted_22 = { class: \"option\" }\nconst _hoisted_23 = {\n for: \"fileInput\",\n class: \"custom-file-input\"\n}\nconst _hoisted_24 = { class: \"option-description\" }\nconst _hoisted_25 = {\n key: 2,\n id: \"vue-flow\"\n}\nconst _hoisted_26 = { class: \"loading\" }\nconst _hoisted_27 = /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n class: \"logo rotate\",\n width: \"70\",\n height: \"70\"\n}, null, -1)\nconst _hoisted_28 = [\n _hoisted_27\n]\n\nimport { onMounted, ref, reactive, toRefs, inject, watch } from \"vue\";\nimport { useAuth0 } from '@auth0/auth0-vue';\nimport Shared from './shared.vue'\nimport BaseDialog from \"./BaseDialog.vue\";\nimport SmallDialog from \"./SmallDialog.vue\";\nimport userResourceQuotas from \"./UserResourceQuotas.json\"\nimport tutorials from \"./Tutorials.json\"\nimport { useRouter } from 'vue-router'\n\nimport CustomNode from \"./CustomEditableNode.vue\";\nimport { useI18n } from 'vue-i18n';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'Interface',\n props: {\n tutorial: String,\n},\n setup(__props) {\n\nconst props = __props;\n\n\nconst router = useRouter();\nconst { user, logout } = useAuth0();\nconst loaded = ref(false);\nconst workflow = ref();\nlet fileInput = ref();\nlet flowView = ref();\nconst k8sAdminAPIEndPoint = inject('back_end_admin_API_end_point');\nconst userJWTToken = inject('userJWTToken');\nconst isNamespace = ref(false)\nconst logFound = ref(false)\nconst viewlog = ref(false)\nconst flowIslocked = ref(true)\nconst moreOptions = ref(false)\nconst hideOnBoardingMsg = ref(false)\nconst loading = ref(false)\nconst runName = ref()\nconst viewRunStore = ref(false)\nconst allRuns = ref()\nconst viewGetRunName = ref(false)\n\n// add new codes for change language\nconst { locale, t } = useI18n();\nconst toggleLanguage = () => {\n locale.value = locale.value === 'en' ? 'zh' : 'en';\n}\n\nconst manualSaveToStore = async () => {\n flowIslocked.value = true;\n loaded.value && await saveRunToStore();\n flowIslocked.value = false;\n}\n\nconst openItem = async () => { \n allRuns.value = await Shared.methods.call_be_api_getstoreitems(k8sAdminAPIEndPoint, userJWTToken.value, \"runs\")\n viewRunStore.value = true;\n}\n\nconst runNameIsUnique = (name) => { \n if (allRuns.value.filter(e => e.name === name).length) { \n return false\n }\n return true\n}\n\nconst onSetRunName = (name, args) => { \n if (runNameIsUnique(name)) {\n runName.value = name;\n viewGetRunName.value = false;\n loading.value = false;\n loaded.value = true;\n } else { \n alert(\"\\u274C This name is already associated with a stored run.\\nPlease choose another name.\")\n }\n}\nconst onLoadTutorial = async (name, args) => { \n if (runNameIsUnique(name)) {\n runName.value = name;\n viewGetRunName.value = false;\n await renameRunFolder(\"_scr_\" + tutorials[props.tutorial].name, runName.value)\n router.push('/interface')\n const flow = await Shared.methods.call_be_api_download(k8sAdminAPIEndPoint, userJWTToken.value, runName.value)\n flow.run_parameters.name = runName.value\n workflow.value = flow \n loading.value = false;\n loaded.value = true;\n } else { \n alert(\"\\u274C This name is already associated with a stored run.\\nPlease choose another name.\")\n } \n}\nconst cancelGetRunName = () => { \n console.log(\"Cancel GetRunName.\")\n viewGetRunName.value = false;\n viewRunStore.value = true;\n loading.value = false;\n}\nconst smallDialog = ref({\n callback: onSetRunName,\n callbackArgs: {},\n heading: \"Create Run\",\n onCancel: cancelGetRunName\n})\n\nconst onFileSelected = async (ev) => {\n const file = ev.target.files[0];\n const reader = new FileReader();\n\n reader.addEventListener(\"load\", (e) => {\n try {\n if (typeof reader.result !== \"string\")\n throw \"FileReader did not return string.\";\n workflow.value = JSON.parse(reader.result);\n if (workflow.value.run_parameters?.name) {\n runName.value = workflow.value.run_parameters?.name\n } else { \n runName.value = \"\"\n }\n console.log(\"loaded from file:\", workflow.value);\n } catch (ex) {\n console.log(\"ex when trying to parse json =\" + ex);\n }\n });\n if (file) reader.readAsText(file);\n\n console.log(`Input file ${file.path} read-in successfully.`);\n};\n\nconst saveToFile = async (data : string, filename : string) => {\n const blob = new Blob([data], {type : 'application/json'});\n const link = document.createElement(\"a\");\n link.href = window.URL.createObjectURL(blob)\n link.download = filename;\n link.dataset.downloadurl = ['text/json', link.download, link.href].join(':');\n link.click();\n window.URL.revokeObjectURL(link.href);\n};\n\nconst toggleFlowLock = (data) => { \n flowIslocked.value = data\n}\n\nconst downloadItem = async () => {\n await flowView.value.logToObject(true);\n};\n\n\n\nconst createNewObject = async (objCreateCallback, ev) => { \n if (allRuns.value.length >= Number(userResourceQuotas.runs)) {\n alert(\"\\u26A0 Warning: You have reached the maximum number of runs.\\nDelete a saved run before creating a new one.\")\n if (fileInput.value?.type) { \n // change type to reset event\n fileInput.value.type = \"text\";\n fileInput.value.type = \"file\";\n }\n return\n }\n loading.value = true; \n viewRunStore.value = false;\n if (await terminateOnUserConfirm()) {\n loading.value = false; \n return;\n }\n loaded.value = false; \n smallDialog.value.callback = onSetRunName\n smallDialog.value.heading = t('message.Create_Run') \n smallDialog.value.callbackArgs = {}\n await objCreateCallback(ev)\n viewGetRunName.value = true;\n}\n\nconst callResetObject = async (ev) => {\n runName.value = \"\"\n workflow.value = JSON.parse(\n '{\"components\": [], \"connections\": [], \"workflow\": {}, \"run_parameters\": {}}'\n ); \n console.log(\"loaded from file:\", workflow.value);\n};\n\nconst callGetTutorial = async () => { \n console.log(\"load tutorial: \", props.tutorial)\n runName.value = tutorials[props.tutorial].name\n // load dummy workflow\n workflow.value = JSON.parse(\n '{\"components\": [], \"connections\": [], \"workflow\": {}, \"run_parameters\": {}}'\n );\n smallDialog.value.callback = onLoadTutorial\n smallDialog.value.heading = `Create Run from Tutorial #${props.tutorial}`\n smallDialog.value.callbackArgs = {} \n}\n\nconst viewRunLog = () => { viewlog.value = true; }\n\nconst getMoreOptions = () => { moreOptions.value = true; }\n\nconst logoutUser = () => { \n logout({ returnTo: \"https://www.dapta.com/wp-login.php?action=logout\" });\n }\n\nconst setUpTutorial = async () => { \n if (!(props.tutorial in tutorials)) { \n alert(\"The requested tutorial ID doesn't exist.\")\n return false\n }\n await createNewObject(callGetTutorial, null)\n if (workflow.value) {\n return true\n }\n return false\n} \n\nconst callLoadActiveObject = async () => { \n // read input json from server and load vueflow\n if (props.tutorial && await setUpTutorial()) {\n return;\n }\n if (isNamespace.value) {\n workflow.value = await Shared.methods.call_be_api_download(k8sAdminAPIEndPoint, userJWTToken.value, runName.value)\n } else if (localStorage.currentRun) {\n workflow.value = JSON.parse(localStorage.currentRun)\n runName.value = workflow.value[\"run_parameters\"][\"name\"]\n } else { \n await openItem()\n return;\n }\n console.log(\"loaded from file:\", workflow.value);\n loaded.value = true;\n}\n\nconst callLoadRunFromStore = async (name, beApiTerminate = true) => { \n loading.value = true;\n viewRunStore.value = false;\n if (runName.value !== name) {\n if (await terminateOnUserConfirm(true, beApiTerminate)) {\n loading.value = false; \n viewRunStore.value = true;\n return;\n }\n runName.value = name\n }\n workflow.value = await Shared.methods.call_be_api_download(k8sAdminAPIEndPoint, userJWTToken.value, name)\n workflow.value.run_parameters.name = runName.value\n console.log(\"loaded from file:\", workflow.value);\n loading.value = false;\n loaded.value = true;\n}\n\nconst onTerminateRun = async () => { \n // delete the user namespace without deleting files\n loading.value = true;\n if (await terminateOnUserConfirm()) {\n loading.value = false; \n return;\n }\n loaded.value = false\n runName.value = \"\"\n workflow.value = null\n loading.value = false;\n await callLoadActiveObject()\n}\n\nconst deleteRunFromStore = async (name) => { \n loading.value = true;\n if (name === runName.value) { \n viewRunStore.value = false;\n if (await terminateOnUserConfirm(false)) {\n loading.value = false; \n viewRunStore.value = true;\n return;\n }\n runName.value = \"\"\n loaded.value = false;\n }\n await Shared.methods.call_be_api_delete_files(k8sAdminAPIEndPoint, userJWTToken.value, null, null, null, name);\n allRuns.value = await Shared.methods.call_be_api_getstoreitems(k8sAdminAPIEndPoint, userJWTToken.value, \"runs\")\n viewRunStore.value = true;\n console.log(\"deleted run: \", name);\n loading.value = false;\n}\n\nconst terminateOnUserConfirm = async (autosave = true, beApiTerminate = true) => { \n if (beApiTerminate) {\n isNamespace.value = await Shared.methods.call_get_Namespace_exists(k8sAdminAPIEndPoint, userJWTToken.value, \"any\")\n }\n if ( beApiTerminate && isNamespace.value == true) {\n if (confirm(\"Warning: \\nThe existing run cluster will be stopped and run logs will be deleted. \\n\\nDo you want to continue?\") == true) {\n flowIslocked.value = true;\n logFound.value = false;\n await Shared.methods.call_be_api_terminate(k8sAdminAPIEndPoint, userJWTToken.value)\n if (loaded.value && autosave) {\n await saveRunToStore()\n const canvasBlob = await Shared.methods.getScreenshot()\n await Shared.methods.uploadScreenshot(k8sAdminAPIEndPoint, userJWTToken.value, runName.value, canvasBlob)\n }\n if (localStorage.currentRun) {\n localStorage.currentRun = \"\"\n };\n isNamespace.value = false;\n flowIslocked.value = false;\n return false;\n } else {\n console.log(\"cluster reset cancelled by user -> exiting current function call.\")\n return true;\n }\n } else if (loaded.value) { \n flowIslocked.value = true; \n if (autosave) {\n await saveRunToStore()\n const canvasBlob = await Shared.methods.getScreenshot()\n await Shared.methods.uploadScreenshot(k8sAdminAPIEndPoint, userJWTToken.value, runName.value, canvasBlob)\n }\n if (localStorage.currentRun) {\n localStorage.currentRun = \"\"\n };\n flowIslocked.value = false;\n return false;\n }\n}\n\nconst saveRunToStore = async () => { \n await flowView.value.logToObject(false);\n await flowView.value.call_be_api_upload()\n allRuns.value = await Shared.methods.call_be_api_getstoreitems(k8sAdminAPIEndPoint, userJWTToken.value, \"runs\")\n}\n\nconst renameRunFolder = async (source, target) => { \n\n loading.value = true;\n allRuns.value = await Shared.methods.call_be_api_getstoreitems(k8sAdminAPIEndPoint, userJWTToken.value, \"runs\")\n\n let method = \"\";\n if (source === target) {\n method = \"duplicate\";\n target = target + \"-copy\"\n } else if (source.startsWith(\"_scr_\")) { \n method = \"tutorial\";\n source = source.substr(5)\n }\n\n if (allRuns.value.filter(e => e.name === target).length) { \n alert(`\\u274C A run with the name ${target} already exists. Delete or rename that run first.`)\n loading.value = false;\n return\n }\n\n const data = new FormData()\n data.append('source', source);\n data.append('target', target);\n if (method) { \n data.append('method', method);\n }\n const resp = await fetch(k8sAdminAPIEndPoint + \"/renamerunfolder\", {\n method: \"POST\",\n headers: { \"Authorization\": `Bearer ${userJWTToken.value}`},\n body: data\n }).then(Shared.methods.handleErrors)\n .then(response => { return response.text() })\n console.log(resp)\n\n allRuns.value = await Shared.methods.call_be_api_getstoreitems(k8sAdminAPIEndPoint, userJWTToken.value, \"runs\")\n loading.value = false;\n}\n\nconst onRunReName = async (name, args) => { \n if (runNameIsUnique(name)) {\n viewGetRunName.value = false;\n if (args[\"source\"] === runName.value) { \n console.warn(\"renaming loaded run\")\n if (await terminateOnUserConfirm()) {\n loading.value = false; \n return;\n }\n runName.value = \"\"\n loaded.value = false\n } \n await renameRunFolder(args[\"source\"], name)\n viewRunStore.value = true;\n loading.value = false;\n } else { \n alert(\"\\u274C This name is already associated with a stored run.\\nPlease choose another name.\")\n }\n}\n\nconst getNameThenRename = (source) => { \n loading.value = true;\n smallDialog.value.callback = onRunReName\n smallDialog.value.callbackArgs = { \"source\": source }\n smallDialog.value.heading = \"Rename Run\"\n viewGetRunName.value = true;\n viewRunStore.value = false;\n}\n\nconst openInNewTab = (url) => {\n window.open(url, '_blank', 'noreferrer');\n }\n\nconst localStorageAvailable = () => {\n if (typeof(Storage) !== \"undefined\") {\n return true;\n }\n else {\n return false;\n }\n}\n\nconst setOnBoardingMsg = () => {\n if (localStorageAvailable()) {\n if (localStorage.hideOnBoardingMsg && localStorage.hideOnBoardingMsg === \"true\") {\n hideOnBoardingMsg.value = true\n }\n };\n}\nsetOnBoardingMsg()\n\nconst cacheToLocalstorage = async (data: string) => { \n if (localStorageAvailable()) {\n console.log(\"caching current run\")\n localStorage.currentRun = String(data);\n }; \n}\n\n\nconst createChat = () => { \n let smartsuppScript = document.createElement('script')\n smartsuppScript.src = process.env.BASE_URL + \"smartsupp.js\"\n document.head.appendChild(smartsuppScript)\n let scriptIsReady = false;\n let checkInterval = setInterval(function () {\n if (window.smartsupp) {\n scriptIsReady = true;\n clearInterval(checkInterval);\n console.log(\"sending data to smartsupp\")\n window.smartsupp('name', user.value.nickname);\n window.smartsupp('email', user.value.email);\n }\n return scriptIsReady;\n }, 500);\n}\n\nconst toggleOnBoardingMsg = (val) => { \n console.log(\"set hideOnBoardingMsg message to \", val)\n if (localStorageAvailable()) {\n localStorage.hideOnBoardingMsg = String(val);\n }\n}\n\nwatch(\n () => [props.tutorial],\n (newval, oldval) => {\n console.log(\"props.tutorial update: \", newval, oldval)\n }\n);\n\nonMounted(async () => {\n [isNamespace.value, runName.value] = await Shared.methods.call_get_Namespace_exists(k8sAdminAPIEndPoint, userJWTToken.value, \"any\", true)\n allRuns.value = await Shared.methods.call_be_api_getstoreitems(k8sAdminAPIEndPoint, userJWTToken.value, \"runs\")\n await callLoadActiveObject()\n flowIslocked.value = false;\n createChat()\n console.warn(\"mounted Interface\");\n})\n\n\nreturn (_ctx: any,_cache: any) => {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"button\", {\n id: \"reset\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (createNewObject(callResetObject, null))),\n disabled: flowIslocked.value\n }, [\n _createVNode(_component_font_awesome_icon, {\n icon: \"plus-circle\",\n size: \"lg\"\n }),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('message.New')), 1)\n ], 8, _hoisted_2),\n _createElementVNode(\"button\", {\n id: \"openItem\",\n onClick: openItem,\n disabled: flowIslocked.value\n }, [\n _createVNode(_component_font_awesome_icon, {\n icon: \"folder-open\",\n size: \"lg\"\n }),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('message.Open')), 1)\n ], 8, _hoisted_3),\n _createElementVNode(\"button\", {\n id: \"saveItem\",\n onClick: manualSaveToStore,\n disabled: !loaded.value || flowIslocked.value\n }, [\n _createVNode(_component_font_awesome_icon, {\n icon: \"save\",\n size: \"lg\"\n }),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('message.Save')), 1)\n ], 8, _hoisted_4),\n _createElementVNode(\"button\", {\n id: \"downloadItem\",\n onClick: downloadItem,\n disabled: !loaded.value\n }, [\n _createVNode(_component_font_awesome_icon, {\n icon: \"file-download\",\n size: \"lg\"\n }),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('message.Download')), 1)\n ], 8, _hoisted_5),\n _createElementVNode(\"button\", {\n id: \"viewRunLog\",\n onClick: viewRunLog,\n disabled: !logFound.value\n }, [\n _createVNode(_component_font_awesome_icon, {\n icon: \"eye\",\n size: \"lg\"\n }),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('message.View_Log')), 1)\n ], 8, _hoisted_6),\n _createElementVNode(\"button\", {\n id: \"moreOptions\",\n onClick: getMoreOptions,\n disabled: !loaded.value\n }, [\n _createVNode(_component_font_awesome_icon, {\n icon: \"ellipsis\",\n size: \"lg\"\n })\n ], 8, _hoisted_7),\n _createElementVNode(\"button\", {\n onClick: logoutUser,\n style: {\"float\":\"right\"}\n }, [\n _createVNode(_component_font_awesome_icon, {\n icon: \"sign-out-alt\",\n size: \"lg\"\n }),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('message.Log_out')), 1)\n ]),\n _createElementVNode(\"button\", {\n onClick: toggleLanguage,\n style: {\"float\":\"right\"}\n }, [\n _createVNode(_component_font_awesome_icon, {\n icon: \"language\",\n size: \"lg\"\n }),\n _createTextVNode(\" En/中 \")\n ]),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (openInNewTab('https://daptadocs.com/index.html'))),\n style: {\"float\":\"right\"}\n }, [\n _createVNode(_component_font_awesome_icon, {\n icon: \"question-circle\",\n size: \"lg\"\n }),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('message.Help')), 1)\n ]),\n _createElementVNode(\"button\", _hoisted_8, _toDisplayString(_unref(user).nickname), 1)\n ]),\n (viewRunStore.value)\n ? (_openBlock(), _createBlock(BaseDialog, {\n key: \"viewRunStore\",\n onClose: _cache[4] || (_cache[4] = ($event: any) => {viewRunStore.value = false;}),\n visibility: \"\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"h3\", _hoisted_9, [\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('message.Saved_Runs')), 1),\n _createElementVNode(\"button\", {\n id: \"language\",\n onClick: toggleLanguage,\n style: {\"float\":\"right\",\"background-color\":\"black\",\"color\":\"white\"}\n }, [\n _createVNode(_component_font_awesome_icon, {\n icon: \"language\",\n size: \"lg\"\n }),\n _createTextVNode(\" En / 中 \")\n ])\n ]),\n _createElementVNode(\"ul\", _hoisted_10, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(allRuns.value, (item) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: item.name,\n class: \"option\"\n }, [\n _createElementVNode(\"img\", {\n src: item.thumbnail,\n alt: \"workspace view\",\n class: \"option-thumbnail\"\n }, null, 8, _hoisted_11),\n _createElementVNode(\"p\", _hoisted_12, [\n _createTextVNode(_toDisplayString(item.name) + \" \", 1),\n _hoisted_13,\n _createElementVNode(\"em\", null, _toDisplayString(_ctx.$t('message.Last_saved')) + \" \" + _toDisplayString(item.mtime), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"button\", {\n class: \"basedialog\",\n onClick: async() => await callLoadRunFromStore(item.name),\n disabled: runName.value === item.name\n }, _toDisplayString(_ctx.$t('message.Load')), 9, _hoisted_15),\n _createElementVNode(\"button\", {\n class: \"basedialog\",\n onClick: async () => await renameRunFolder(item.name, item.name)\n }, _toDisplayString(_ctx.$t('message.Duplicate')), 9, _hoisted_16),\n _createElementVNode(\"button\", {\n class: \"basedialog\",\n onClick: ($event: any) => (getNameThenRename(item.name))\n }, _toDisplayString(_ctx.$t('message.Rename')), 9, _hoisted_17),\n _createElementVNode(\"button\", {\n class: \"basedialog\",\n onClick: async() => await deleteRunFromStore(item.name)\n }, _toDisplayString(_ctx.$t('message.Delete')), 9, _hoisted_18)\n ])\n ]))\n }), 128)),\n _hoisted_19,\n _createElementVNode(\"li\", _hoisted_20, [\n _createElementVNode(\"button\", {\n class: \"basedialog\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (createNewObject(callResetObject, null)))\n }, _toDisplayString(_ctx.$t('message.New')), 1),\n _createElementVNode(\"p\", _hoisted_21, _toDisplayString(_ctx.$t('message.Create_a_new_Run')), 1)\n ]),\n _createElementVNode(\"li\", _hoisted_22, [\n _createElementVNode(\"label\", _hoisted_23, _toDisplayString(_ctx.$t('message.Import')), 1),\n _createElementVNode(\"input\", {\n id: \"fileInput\",\n type: \"file\",\n onChange: _cache[3] || (_cache[3] = (ev) => {createNewObject(onFileSelected, ev)}),\n ref_key: \"fileInput\",\n ref: fileInput\n }, null, 544),\n _createElementVNode(\"p\", _hoisted_24, _toDisplayString(_ctx.$t('message.Import_a_run_from_file')), 1)\n ])\n ])\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (viewGetRunName.value)\n ? (_openBlock(), _createBlock(SmallDialog, {\n key: \"viewGetRunName\",\n callback: smallDialog.value.callback,\n \"callback-args\": smallDialog.value.callbackArgs,\n heading: smallDialog.value.heading,\n \"on-cancel\": smallDialog.value.onCancel,\n \"run-name\": runName.value,\n visibility: \"\"\n }, null, 8, [\"callback\", \"callback-args\", \"heading\", \"on-cancel\", \"run-name\"]))\n : _createCommentVNode(\"\", true),\n (loaded.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_25, [\n _createVNode(CustomNode, _mergeProps({\n ref_key: \"flowView\",\n ref: flowView\n }, workflow.value, {\n isnamespace: isNamespace.value,\n viewlog: viewlog.value,\n \"more-options\": moreOptions.value,\n \"hide-on-boarding-msg\": hideOnBoardingMsg.value,\n \"run-name\": runName.value,\n onLoadFromStore: _cache[5] || (_cache[5] = (name, opt) => callLoadRunFromStore(name,opt.beApiTerminate)),\n onLoading: _cache[6] || (_cache[6] = (val) => {loading.value = val}),\n onFlowSave: saveToFile,\n onFlowCache: cacheToLocalstorage,\n onLogFound: _cache[7] || (_cache[7] = (data) => { logFound.value = data}),\n onCloseLog: _cache[8] || (_cache[8] = ($event: any) => {viewlog.value = false; moreOptions.value = false; viewRunStore.value = false; }),\n onToggleLock: toggleFlowLock,\n onToggleOnBoardingMsg: _cache[9] || (_cache[9] = (val) => { toggleOnBoardingMsg(val) }),\n onResetRun: _cache[10] || (_cache[10] = ($event: any) => {moreOptions.value = false; onTerminateRun()})\n }), null, 16, [\"isnamespace\", \"viewlog\", \"more-options\", \"hide-on-boarding-msg\", \"run-name\"])\n ]))\n : _createCommentVNode(\"\", true),\n _withDirectives(_createElementVNode(\"div\", _hoisted_26, _hoisted_28, 512), [\n [_vShow, !loaded.value || loading.value]\n ])\n ], 64))\n}\n}\n\n})","import script from \"./Interface.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./Interface.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./Interface.vue?vue&type=style&index=0&id=1a74c961&lang=css\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n","import { render } from \"./P403.vue?vue&type=template&id=0eb3a888&scoped=true\"\nconst script = {}\n\nimport \"./P403.vue?vue&type=style&index=0&id=0eb3a888&scoped=true&lang=css\"\n\nimport exportComponent from \"/codebuild/output/src1203744758/src/frontend/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0eb3a888\"]])\n\nexport default __exports__","import { createWebHistory, createRouter } from 'vue-router';\nimport { authGuard } from '@auth0/auth0-vue';\nimport App from \"./App.vue\";\nimport Interface from \"./components/Interface.vue\";\nimport P403 from \"./components/P403.vue\";\n\nconst routes = [\n {\n path: '/',\n name: 'App',\n component: App, \n },\n {\n path: '/interface',\n name: 'Interface',\n component: Interface, \n meta: {\n requiresAuth: true\n }\n },\n {\n path: '/tutorial/:tutorial',\n name: 'Tutorial',\n component: Interface, \n props: true,\n meta: {\n requiresAuth: true\n }\n },\n {\n path: '/403',\n name: '403',\n component: P403, \n }\n ];\n\nconst router = createRouter({\n\thistory: createWebHistory(),\n\troutes,\n});\n\nrouter.beforeEach(authGuard)\n\nexport default router;","import { createApp } from \"vue\";\nimport router from './router'\nimport { createAuth0 } from '@auth0/auth0-vue';\n\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n faQuestionCircle,\n faExclamationCircle,\n faCheckCircle,\n faPlusCircle,\n faMinusCircle,\n faFolderOpen,\n faSave,\n faPlay,\n faPause,\n faStop,\n faSignOutAlt, \n faFileDownload, \n faBan,\n faEye, \n faExclamationTriangle,\n faGear, \n faScrewdriverWrench,\n faEllipsis,\n faFileImport,\n faFileCircleExclamation, \n faTrash,\n faLightbulb,\n faArrowPointer,\n faBook,\n faCommentDots,\n faCircle\n} from \"@fortawesome/free-solid-svg-icons\";\n\nlibrary.add(\n faQuestionCircle,\n faExclamationCircle,\n faCheckCircle,\n faPlusCircle,\n faMinusCircle,\n faFolderOpen,\n faSave,\n faPlay,\n faPause,\n faStop,\n faSignOutAlt, \n faFileDownload,\n faBan,\n faEye,\n faExclamationTriangle,\n faGear,\n faScrewdriverWrench,\n faEllipsis,\n faFileImport, \n faFileCircleExclamation,\n faTrash,\n faLightbulb,\n faArrowPointer,\n faBook,\n faCommentDots,\n faCircle\n);\n\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\n\n// import the i18n plugin\nimport { createI18n } from 'vue-i18n';\n\nimport App from './App.vue'\nimport Interface from \"./components/Interface.vue\";\n\nconst app = createApp(App)\n\napp.component(\"font-awesome-icon\", FontAwesomeIcon);\napp.component(\"Interface\", Interface)\napp.use(router);\n\n// by adding the audience parameter, we get a JWT token back\napp.use(\n createAuth0({\n domain: \"dapta-dev1.eu.auth0.com\",\n client_id: \"821uCiX0nDPNQbI7VW0kahEbsoRRtHp5\",\n redirect_uri: window.location.origin, \n audience: \"http://localhost:4242\"\n })\n);\n\napp.provide('back_end_user_services_API_end_point', 'https://api.daptasim.com/api/v1/orchestrator')\napp.provide('back_end_admin_API_end_point', 'https://api.daptasim.com/be-api/v1')\napp.provide('auth_API_end_point', 'https://api.daptasim.com/auth-api/v1')\n\n// START = add new codes for implementing the change language feature\nimport en from './lang/en.json';\nimport zh from './lang/zh.json';\n\nconst i18n = createI18n({\n legacy: false, // Set to `true` if you're using Vue 2.x\n locale: 'en', // Default locale\n messages: {\n en,\n zh,\n },\n});\n\napp.use(i18n);\n// END = add new codes for implementing the change language feature\n\napp.mount('#app');","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ContextMenu.vue?vue&type=style&index=0&id=2725d37b&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ConnectionForm.vue?vue&type=style&index=0&id=d4acf2a0&scoped=true&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Interface.vue?vue&type=style&index=0&id=1a74c961&lang=css\"","module.exports = __webpack_public_path__ + \"img/Dapta-Brandmark-RGB.b5e1f792.png\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./EditableNode.vue?vue&type=style&index=0&id=3c7c2fc2&scoped=true&lang=css\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./SmallDialog.vue?vue&type=style&index=0&id=6b92e66a&scoped=true&lang=css\""],"sourceRoot":""}