{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-bp2019/templates/add-knot.js"],"names":["Morph","Graph","AddKnot","initialize","windowTitle","title","get","addEventListener","event","keyCode","save","button","focus","graph","getInstance","directory","value","fileEnding","knot","createKnot","knotView","lively","openComponentInWindow","loadKnotForURL","url","afterSubmit"],"mappings":";;;;;;AAAOA,W;;AAEEC,W,8BAAAA,K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEM,YAAMC,OAAN,SAAsBF,KAAtB,CAA4B;;AAEzC,cAAMG,UAAN,GAAmB;AACjB,eAAKC,WAAL,GAAmB,UAAnB;;AAEA,cAAIC,QAAQ,KAAKC,GAAL,CAAS,QAAT,CAAZ;AACAD,gBAAME,gBAAN,CAAuB,OAAvB,EAAgCC,SAAS;AACvC,gBAAIA,MAAMC,OAAN,IAAiB,EAArB,EAAyB;AAAE;AACzB,mBAAKC,IAAL;AACD;AACF,WAJD;;AAMA,cAAIC,SAAS,KAAKL,GAAL,CAAS,OAAT,CAAb;AACAK,iBAAOJ,gBAAP,CAAwB,OAAxB,EAAiCC,SAAS,KAAKE,IAAL,EAA1C;AACD;;AAEDE,gBAAQ;AACN,eAAKN,GAAL,CAAS,QAAT,EAAmBM,KAAnB;AACD;;AAED,cAAMF,IAAN,GAAa;AACX,cAAIG,QAAQ,MAAMZ,MAAMa,WAAN,EAAlB;;AAEA,cAAIC,YAAY,KAAKT,GAAL,CAAS,YAAT,EAAuBU,KAAvC;AACA,cAAIX,QAAQ,KAAKC,GAAL,CAAS,QAAT,EAAmBU,KAA/B;AACA,cAAIC,aAAa,KAAKX,GAAL,CAAS,cAAT,EAAyBU,KAA1C;;AAEA,cAAIE,OAAO,MAAML,MAAMM,UAAN,CAAiBJ,SAAjB,EAA4BV,KAA5B,EAAmCY,UAAnC,CAAjB;AACA,cAAIG,WAAW,MAAMC,OAAOC,qBAAP,CAA6B,WAA7B,CAArB;AACAF,mBAASG,cAAT,CAAwBL,KAAKM,GAA7B;;AAEA,eAAKC,WAAL,CAAiBP,IAAjB;AACD;;AAED;AACAO,oBAAYP,IAAZ,EAAkB,CAAE;AAnCqB;;yBAAtBhB,O","file":"add-knot.js","sourcesContent":["import Morph from \"src/components/widgets/lively-morph.js\"\n\nimport { Graph } from 'src/client/triples/triples.js';\n\nexport default class AddKnot extends Morph {\n\n  async initialize() {\n    this.windowTitle = \"Add Knot\";\n\n    let title = this.get(\"#title\");\n    title.addEventListener('keyup', event => {\n      if (event.keyCode == 13) { // ENTER\n        this.save();\n      }\n    });\n\n    let button = this.get('#save');\n    button.addEventListener('click', event => this.save());\n  }\n\n  focus() {\n    this.get(\"#title\").focus();\n  }\n\n  async save() {\n    let graph = await Graph.getInstance();\n\n    let directory = this.get('#directory').value;\n    let title = this.get('#title').value;\n    let fileEnding = this.get('#file-ending').value;\n\n    let knot = await graph.createKnot(directory, title, fileEnding);\n    let knotView = await lively.openComponentInWindow(\"knot-view\");\n    knotView.loadKnotForURL(knot.url);\n\n    this.afterSubmit(knot);\n  }\n\n  // TODO: employ nice event-based approach or AOP/COP\n  afterSubmit(knot) {}\n}\n"]}