{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-bp2019/src/components/widgets/lively-mle-code-editor.js"],"names":["Morph","SocketSingleton","LivelyMleCodeEditor","initialize","registerButtons","getAttribute","get","onDeployButton","editor","file","getValue","onResetButton","reset","socket","v","m","r","status","connectionString","user","password","loading","livelyPrepareSave","setAttribute","livelyPreMigrate","livelyMigrate","other"],"mappings":"AAAA;;;;;;;;;;;;;;;;;AAEOA,W;;AACEC,qB,6BAAAA,e;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEM,YAAMC,mBAAN,SAAkCF,KAAlC,CAAwC;AACrD,cAAMG,UAAN,GAAmB;AACjB,0CAAmB,iBAAnB;AADiB;AAEjB,eAAKC,eAAL;AACA,cAAG,EAAE,qFAAKC,YAAL,CAAkB,YAAlB,OAAoC,OAAtC,CAAH;AAAmD,wCAAc,wFAAM,oHAAgBC,GAAhB,EAAN,CAAd;AAAnD;AACD;;AAEDC,yBAAiB;AAAA;;AACf,sCAAe,IAAf;AACA,gBAAMC,sCAAS,IAAT,oCAAwC,MAAxC,EAAN;AACA,iEAAiB,MAAjB,EAAyB;AACvBC,gGAAM,0FAAOC,QAAP,EAAN;AADuB,WAAzB;AAGD;;AAED,cAAMC,aAAN,GAAqB;AACnB,sCAAe,IAAf;AACA,sCAAc,0FAAM,oHAAgBC,KAAhB,EAAN,CAAd;AACA,sCAAe,KAAf;AACD;;AAED,YAAIC,MAAJ,CAAWC,CAAX,EAAa;AAAA;;AACX,6GAAcA,CAAd;AACA,sCAAe,IAAf;AACA,iEAAiB,MAAjB;AACA,+DAAe,SAAf,EAA0BC,KAAK;AAAA;;AAC7B,wCAAe,KAAf;AACA,4FAA+B,QAA/B,yFAAqDA,CAArD;AACA,4FAA+B,QAA/B,iBAAqD,wBAArD;AACD,WAJD;AAKA,+DAAe,MAAf,EAAuBA,KAAK;AAC1B,wCAAe,KAAf;AACD,WAFD;AAGA,+DAAe,QAAf,EAAyB,CAACC,CAAD,EAAIC,MAAJ,KAAe;AAAA;;AACtC,gBAAG,8FAAW,MAAd,EAAqB;AACnB,0CAAe,KAAf;AACA,8FAA+B,MAA/B,qFAA+CD,CAA/C;AACD;AACD,gBAAI,8FAAW,OAAf,EAAwB;AACtB,qEAAiB,QAAjB,EAA2B;AACzBE,kCAAkB,+BADO;AAEzBC,sBAAM,QAFmB;AAGzBC,0BAAU;AAHe,eAA3B;AAKA,8FAA+B,QAA/B,iBAAqD,gBAArD;AACD;AACD,gBAAI,8FAAW,UAAf,EAA2B;AACzB,0CAAa,KAAb;AACA,8FAA+B,QAA/B,iBAAqD,mBAArD;AACA,8FAA+B,QAA/B,kBAAsD,yBAAtD;AACD;AACF,WAlBD;AAmBD;;AAED,YAAIC,OAAJ,CAAYP,CAAZ,EAAe;AAAA;;AACb,0FAA+B,MAA/B,wFAAkDA,CAAlD;AACA,0FAA+B,cAA/B,wFAA0DA,CAA1D;AACA,0FAA+B,cAA/B,iBAA4D,kBAAiB,6EAAI,YAAJ,GAAmB,EAAG,EAAnG;AACA,0FAA+B,aAA/B,wFAAyDA,CAAzD;AACA,0FAA+B,aAA/B,iBAA2D,qBAAoB,6EAAI,YAAJ,GAAmB,EAAG,EAArG;AACD;;AAED;;AAEA;AACAQ,4BAAoB;AAAA;;AAClB,eAAKC,YAAL,CAAkB,aAAlB,oFAAiC,KAAKjB,GAAL,CAAS,YAAT,CAAjC;AACD;;AAEDkB,2BAAmB;AACjB;AACD;;AAEDC,sBAAcC,KAAd,EAAqB;AAAA;;AACnB;AACA;AACA,gJAA8BA,KAA9B;AACD;AA7EoD;;yBAAlCxB,mB","file":"lively-mle-code-editor.js","sourcesContent":["\"enable aexpr\";\n\nimport Morph from 'src/components/widgets/lively-morph.js';\nimport { SocketSingleton } from 'src/components/mle/socket.js';\n\nexport default class LivelyMleCodeEditor extends Morph {\n  async initialize() {\n    this.windowTitle = \"MLE Code Editor\";\n    this.registerButtons();\n    if(!(this.getAttribute(\"initSocket\") === \"false\")) this.socket = await SocketSingleton.get();\n  }\n\n  onDeployButton() {\n    this.loading = true;\n    const editor = this.shadowRoot.getElementById(\"code\");\n    this.socket.emit('save', {\n      file: editor.getValue()\n    });\n  }\n  \n  async onResetButton(){\n    this.loading = true;\n    this.socket = await SocketSingleton.reset();\n    this.loading = false;\n  }\n  \n  set socket(v){\n    this.socket = v;\n    this.loading = true;\n    this.socket.emit('read');\n    this.socket.on('failure', m => {\n      this.loading = false;\n      this.shadowRoot.getElementById(\"result\").innerHTML = m;\n      this.shadowRoot.getElementById(\"result\").className = \"notification is-danger\";\n    });\n    this.socket.on('busy', m => {\n      this.loading = false;\n    });\n    this.socket.on('result', (r, status) => {\n      if(status === \"read\"){\n        this.loading = false;\n        this.shadowRoot.getElementById(\"code\").value = r;\n      }\n      if (status === \"saved\") {\n        this.socket.emit('deploy', {\n          connectionString: '132.145.55.192:1521/MLEEDITOR',\n          user: 'system',\n          password: 'MY_PASSWORD_123'\n        });\n        this.shadowRoot.getElementById(\"result\").innerHTML = \"Saved the code\";\n      }\n      if (status === \"deployed\") {\n        this.loading=false;\n        this.shadowRoot.getElementById(\"result\").innerHTML = \"Deployed the code\";\n        this.shadowRoot.getElementById(\"result\").classNames = \"notification is-success\";\n      }\n    });\n  }\n\n  set loading(v) {\n    this.shadowRoot.getElementById(\"code\").disabled = v;\n    this.shadowRoot.getElementById(\"deployButton\").disabled = v;\n    this.shadowRoot.getElementById(\"deployButton\").className = `button is-link ${v ? \"is-loading\" : \"\"}`;\n    this.shadowRoot.getElementById(\"resetButton\").disabled = v;\n    this.shadowRoot.getElementById(\"resetButton\").className = `button is-warning ${v ? \"is-loading\" : \"\"}`;\n  }\n  \n  /* Lively-specific API */\n\n  // store something that would be lost\n  livelyPrepareSave() {\n    this.setAttribute(\"data-mydata\", this.get(\"#textField\").value)\n  }\n\n  livelyPreMigrate() {\n    // is called on the old object before the migration\n  }\n\n  livelyMigrate(other) {\n    // whenever a component is replaced with a newer version during development\n    // this method is called on the new object during migration, but before initialization\n    this.someJavaScriptProperty = other.som\n  }\n}\n"]}