{"version":3,"sources":["https://lively-kernel.org/lively4/swd21-event-sourcing/templates/knot-view.js"],"names":["Morph","Graph","Triple","_","TAG_URL","select","trackInstance","baseViewForClass","debounce","KnotView","urlString","get","tagURLString","initialize","pathToLoad","addEventListener","event","onPathEntered","editorComp","urlToLoad","getAttribute","loadKnotForURL","initAExprs","knotLabel","knot","altText","Function","label","success","graph","getInstance","tag","requestKnot","URL","triples","filter","t","buildTableRowFor","buildMetadata","metadataTable","entries","getMetadata","entry","key","value","appendChild","buildNavigatableLinkFor","e","buildRefFor","buildTableDataFor","openInspector","undefined","triple","knot1","knot2","replaceTableBodyFor","selector","s","p","o","propForFirstCell","propForSecondCell","poTableBody","query","url","loadKnot","deleteKnot","urlList","getUrlsByKnot","isExternalLink","isExternalURL","followURL","open","container","openBrowser","focus","preventDefault","stopPropagation","tagContainer","tagElement","buildTagWidget","addTag","evt","addTripleWithKnotAsSubject","addTripleWithKnotAsPredicate","addTripleWithKnotAsObject","buildContentFor","buildDeleteTagElement","deleteTagTriple","refresh","notify","elementToRemove","remove","createAddTriple","addTriple","openComponentInWindow","setField","buildListItemFor","role","removeEventListener","spoList","isTriple","hide","show","enableAutocompletion","urls","changeModeForFile","error","saveKnot","text","save","debouncedSave","element","path","livelyPrepareSave","setAttribute"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEOA,W;;AAEEC,W,8BAAAA,K;AAAOC,Y,8BAAAA,M;AAAQC,O,8BAAAA,C;AAAGC,a,8BAAAA,O;;AACpBC,Y;AAAUC,mB,gBAAAA,a;AAAeC,sB,gBAAAA,gB;;AAEvBC,c,UAAAA,Q;;;;;;;;;;;;;;AALFR,gS;;;;;;;;;;;;;;;;;;;;;;;;;;AAEoBI,kS;;;;;;;;;;;;;;;;;;;;;;;;;;AAAHD,4R;;;;;;;;;;;;;;;;;;;;;;;;;;AAARD,iS;;;;;;;;;;;;;;;;;;;;;;;;;;AAAPD,gS;;;;;;;;;;;;;;;;;;;;;;;;;;AACuBM,2S;;;;;;;;;;;;;;;;;;;;;;;;;;AAAfD,wS;;;;;;;;;;;;;;;;;;;;;;;;;;AAAVD,iS;;;;;;;;;;;;;;;;;;;;;;;;;;AAEEG,oS;;;;;;;;;;;;;;;;;;AAEM,YAAMC,QAAN,SAAuBT,KAAvB,CAA6B;AAC1C,YAAIU,SAAJ,GAAgB;AAAE,mGAAO,KAAKC,GAAL,CAAS,eAAT,CAAP;AAAyC;AAC3D,YAAIC,YAAJ,GAAmB;AAAE,mGAAOR,OAAP;AAAiB;;AAEtC,cAAMS,UAAN,GAAmB;AAAA;;AACjB,0CAAmB,WAAnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA,cAAIC,oFAAa,KAAKH,GAAL,CAAS,eAAT,CAAb,CAAJ;AAHiB;AAIjB,kKAAWI,gBAAX,CAA4B,OAA5B,EAAsCC,SAAS;AAAA;;AAC7C,gBAAI,oJAAiB,EAArB,EAAyB;AAAA;AAAE;AACzB,mBAAKC,aAAL,YAAmB,IAAnB;AACD;AACF,WAJD;;AAMA,cAAIC,oFAAa,KAAKP,GAAL,CAAS,iBAAT,CAAb,CAAJ;AACA;;AAEA,cAAIQ,4FAAY,KAAKC,YAAL,CAAkB,eAAlB,CAAZ,CAAJ;AACA,cAAI,qJAAa,sJAAc,EAA/B,EAAmC;AAAA;;AACjC,iBAAKC,cAAL,EAAoBF,SAApB,YAAoBA,SAApB,6FAAoBA,SAApB,EAAoBA,SAApB;AACD;;AAhBgB;AAkBjB,eAAKG,UAAL;;AAlBiB;AAmBlB;;AAEDC,kBAAUC,IAAV,EAAgBC,UAAU,yBAA1B,EAAqD;AAAA;;AACnD,iBAAO,uHACL,wNAAsBC,QAAtB,CADK,6EAEL,oHAAKC,KAAL,EAFK,MAEWF,OAFX,YAEWA,OAFX,yFAEWA,OAFX,EAEWA,OAFX,CAAP;AAGD;;AAED,cAAMH,UAAN,GAAmB;AAAA;AAAA;;AACjB,oFAAOM,OAAP,CAAe,cAAf;;AAEA,cAAIC,QAAQ,sFAAM,sFAAMC,WAAN,EAAN,CAAZ;AACA,cAAIC,MAAM,sFAAM,0HAAMC,WAAN,CAAkB,mEAAIC,GAAJ,qFAAQ7B,OAAR,EAAlB,CAAN,CAAV;;AAEA,wGAAKO,GAAL,CAAS,kBAAT,6EACoB,OAAM;AAAM,oGAAKY,SAAL,YAAe,IAAf;AAAN,WAAN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YADpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA,gBAAMW,UAAU,0KAAOhC,MAAP,EAAhB;;AAEA,wGAAKS,GAAL,CAAS,aAAT,2KACS,sIACAwB,MADA,CACOC;AAAA;AAAK,2JAAc,IAAd;AAAL,WADP,CADT,WAGaA;AAAA;AAAK,2GAAKC,gBAAL,EAAsBD,CAAtB,YAAsBA,CAAtB,6EAAsBA,CAAtB,EAAsBA,CAAtB,eAAyBA,CAAzB,YAAyBA,CAAzB,6EAAyBA,CAAzB,EAAyBA,CAAzB,6BAAsCA,CAAtC,YAAsCA,CAAtC,6EAAsCA,CAAtC,EAAsCA,CAAtC;AAAL,WAHb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAMA,wGAAKzB,GAAL,CAAS,aAAT,2KACS,sIACAwB,MADA,CACOC;AAAA;AAAK,6JAAgB,IAAhB;AAAL,WADP,CADT,WAGaA;AAAA;AAAK,2GAAKC,gBAAL,EAAsBD,CAAtB,YAAsBA,CAAtB,6EAAsBA,CAAtB,EAAsBA,CAAtB,eAAyBA,CAAzB,YAAyBA,CAAzB,6EAAyBA,CAAzB,EAAyBA,CAAzB,2BAAoCA,CAApC,YAAoCA,CAApC,6EAAoCA,CAApC,EAAoCA,CAApC;AAAL,WAHb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAMA,wGAAKzB,GAAL,CAAS,aAAT,2KACS,sIACAwB,MADA,CACOC;AAAA;AAAK,0JAAa,IAAb;AAAL,WADP,CADT,WAGaA;AAAA;AAAK,2GAAKC,gBAAL,EAAsBD,CAAtB,YAAsBA,CAAtB,6EAAsBA,CAAtB,EAAsBA,CAAtB,eAAyBA,CAAzB,YAAyBA,CAAzB,6EAAyBA,CAAzB,EAAyBA,CAAzB,2BAAoCA,CAApC,YAAoCA,CAApC,6EAAoCA,CAApC,EAAoCA,CAApC;AAAL,WAHb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKD;;AAEDE,sBAAcd,IAAd,EAAoB;AAAA;;AAClB,gBAAMe,uFAAgB,KAAK5B,GAAL,CAAS,iBAAT,CAAhB,CAAN;AACA,6MAA0B,EAA1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA,mLAAO6B,OAAP,gFAAe,oHAAKC,WAAL,EAAf,iBAA2CC,SAAS;AAAA;;AAClD,kBAAMC,kBAAMD,KAAN,YAAMA,KAAN,qFAAMA,KAAN,EAAMA,KAAN,GAAY,CAAZ,CAAN;AACA,kBAAME,oBAAQF,KAAR,YAAQA,KAAR,qFAAQA,KAAR,EAAQA,KAAR,GAAc,CAAd,CAAN;AACF;AAHoD;AAIlD,sLAAcG,WAAd,4RACOF,GADP,YACOA,GADP,iFACOA,GADP,EACOA,GADP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mHAEOC,KAFP,YAEOA,KAFP,qFAEOA,KAFP,EAEOA,KAFP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIF;AACC,WATD;AAUD;;AAEDE,gCAAwBtB,IAAxB,EAA8B;AAAA;;AAC5B,yEAAiBuB;AAAK,yGAAK1B,cAAL,aAAoBG,IAApB,YAAoBA,IAApB,mFAAoBA,IAApB,EAAoBA,IAApB;AAAL,WAAjB,gIACG,oHAAKG,KAAL,EADH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGD;AACDqB,oBAAYxB,IAAZ,EAAkB;AAAA;;AAChB,2GAAO,KAAKsB,uBAAL,EAA6BtB,IAA7B,YAA6BA,IAA7B,mFAA6BA,IAA7B,EAA6BA,IAA7B,EAAP;AACD;AACDyB,0BAAkBzB,IAAlB,EAAwB;AAAA;;AACtB,iLACG,KAAKwB,WAAL,EAAiBxB,IAAjB,YAAiBA,IAAjB,mFAAiBA,IAAjB,EAAiBA,IAAjB,EADH,qGAEW,cAFX,iCAEiCuB,KAAK;AAAA;;AAClC,sFAAOG,aAAP,EAAqB1B,IAArB,YAAqBA,IAArB,mFAAqBA,IAArB,EAAqBA,IAArB,wEAA2B2B,SAA3B,4EAAsC,oHAAKxB,KAAL,EAAtC;AACD,WAJH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMD;AACDU,yBAAiBe,MAAjB,EAAyBC,KAAzB,EAAgCC,KAAhC,EAAuC;AAAA;;AACrC,uLACG,KAAKL,iBAAL,EAAuBI,KAAvB,YAAuBA,KAAvB,qFAAuBA,KAAvB,EAAuBA,KAAvB,EADH,kIAEG,KAAKJ,iBAAL,EAAuBK,KAAvB,YAAuBA,KAAvB,qFAAuBA,KAAvB,EAAuBA,KAAvB,EAFH,kIAGG,KAAKL,iBAAL,EAAuBG,MAAvB,YAAuBA,MAAvB,uFAAuBA,MAAvB,EAAuBA,MAAvB,EAHH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKD;AACD,cAAMG,mBAAN,CAA0BC,QAA1B,EAAoCC,CAApC,EAAuCC,CAAvC,EAA0CC,CAA1C,EAA6CC,gBAA7C,EAA+DC,iBAA/D,EAAkF;AAAA;;AAChF,cAAIhC,QAAQ,sFAAM,sFAAMC,WAAN,EAAN,CAAZ;AACA,cAAIgC,qFAAc,KAAKnD,GAAL,CAAS,8IAAW,QAApB,CAAd,CAAJ;AACA,iMAAwB,EAAxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,gOAAMoD,KAAN,EAAYN,CAAZ,YAAYA,CAAZ,6EAAYA,CAAZ,EAAYA,CAAZ,IAAeC,CAAf,YAAeA,CAAf,6EAAeA,CAAf,EAAeA,CAAf,IAAkBC,CAAlB,YAAkBA,CAAlB,6EAAkBA,CAAlB,EAAkBA,CAAlB,iBAA6BP,UAAU;AAAA;AAAA;;AACrC,0KAAYP,WAAZ,qFACE,KAAKR,gBAAL,EACEe,MADF,YACEA,MADF,uFACEA,MADF,EACEA,MADF,eAEEA,MAFF,YAEEA,MAFF,uFAEEA,MAFF,EAEEA,MAFF,IAESQ,gBAFT,YAESA,gBAFT,2GAESA,gBAFT,EAESA,gBAFT,gBAGER,MAHF,YAGEA,MAHF,uFAGEA,MAHF,EAGEA,MAHF,IAGSS,iBAHT,YAGSA,iBAHT,6GAGSA,iBAHT,EAGSA,iBAHT,GADF;AAOD,WARD;AASD;;AAED,cAAMxC,cAAN,CAAqB2C,GAArB,EAA0B;AAAA;;AACxB,4FAAO,KAAKC,QAAL,EAAcD,GAAd,YAAcA,GAAd,iFAAcA,GAAd,EAAcA,GAAd,EAAP;AACD;AACD,cAAMC,QAAN,CAAeD,GAAf,EAAoB;AAAA;;AAClB,cAAInC,QAAQ,sFAAM,sFAAMC,WAAN,EAAN,CAAZ;AACA,cAAIN,OAAO,sFAAM,0HAAMQ,WAAN,CAAkB,mEAAIC,GAAJ,GAAQ+B,GAAR,YAAQA,GAAR,iFAAQA,GAAR,EAAQA,GAAR,EAAlB,CAAN,CAAX;AACA,oCAAYxC,IAAZ,YAAYA,IAAZ,mFAAYA,IAAZ,EAAYA,IAAZ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA,iGAAKb,GAAL,CAAS,eAAT,yBAAkCa,IAAlC,YAAkCA,IAAlC,mFAAkCA,IAAlC,EAAkCA,IAAlC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA,cAAI0C,oFAAa,KAAKvD,GAAL,CAAS,gBAAT,CAAb,CAAJ;AACA,yLAAqBK;AAAA;AAAS,qGAAKkD,UAAL,EAAgBlD,KAAhB,YAAgBA,KAAhB,qFAAgBA,KAAhB,EAAgBA,KAAhB;AAAT,WAArB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;AACA,cAAImD,iFAAU,KAAKxD,GAAL,CAAS,WAAT,CAAV,CAAJ;AACA,yKAAoB,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,wOAAMyD,aAAN,EAAoB5C,IAApB,YAAoBA,IAApB,mFAAoBA,IAApB,EAAoBA,IAApB,iBAAkCwC,OAAO;AAAA;;AACvC,qBAASK,cAAT,CAAwBL,GAAxB,EAA6B;AAAA;;AAC3B,kBAAI;AACF,wGAAO,sFAAMM,aAAN,CAAoB,mEAAIrC,GAAJ,GAAQ+B,GAAR,YAAQA,GAAR,iFAAQA,GAAR,EAAQA,GAAR,EAApB,CAAP;AACD,eAFD,CAEE,OAAMjB,CAAN,EAAS;AACT,uBAAO,KAAP;AACD;AACF;;AAED,2BAAewB,SAAf,CAAyBxB,CAAzB,EAA4B;AAAA;;AAC1B,kBAAG,iLAAeiB,GAAf,YAAeA,GAAf,iFAAeA,GAAf,EAAeA,GAAf,EAAH,EAAwB;AAAA;;AACtB,0FAAOQ,IAAP,EAAYR,GAAZ,YAAYA,GAAZ,iFAAYA,GAAZ,EAAYA,GAAZ;AACD,eAFD,MAEO;AAAA;;AACL,sBAAMS,YAAY,uFAAM,0EAAOC,WAAP,EAAmBV,GAAnB,YAAmBA,GAAnB,iFAAmBA,GAAnB,EAAmBA,GAAnB,GAAwB,KAAxB,CAAN,CAAlB;AADK;AAEL,kKAAUW,KAAV;AACD;AANyB;AAO1B,gHAAEC,cAAF;AAP0B;AAQ1B,gHAAEC,eAAF;AACA,qBAAO,IAAP;AACD;;AAnBsC;AAqBvC,kJAAQhC,WAAR,2DAA+B0B,SAA/B,YAA+BA,SAA/B,6FAA+BA,SAA/B,EAA+BA,SAA/B,0DACG,iLAAeP,GAAf,YAAeA,GAAf,iFAAeA,GAAf,EAAeA,GAAf,KACC,gHAAM,qCADP,IAECA,GAFD,YAECA,GAFD,iFAECA,GAFD,EAECA,GAFD,CADH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMD,WA3BD;;AA6BA;AACA,cAAIjC,MAAM,sFAAM,0HAAMC,WAAN,CAAkB,mEAAIC,GAAJ,qFAAQ7B,OAAR,EAAlB,CAAN,CAAV;AACA,cAAI0E,sFAAe,KAAKnE,GAAL,CAAS,gBAAT,CAAf,CAAJ;AACA,uMAAyB,EAAzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,gOAAMoD,KAAN,EAAYvC,IAAZ,YAAYA,IAAZ,mFAAYA,IAAZ,EAAYA,IAAZ,IAAkBO,GAAlB,YAAkBA,GAAlB,iFAAkBA,GAAlB,EAAkBA,GAAlB,0EAAuB5B,CAAvB,iBAAkCiD,UAAU;AAAA;;AAC1C,gBAAI2B,+FAAa,KAAKC,cAAL,aAAoB5B,MAApB,YAAoBA,MAApB,uFAAoBA,MAApB,EAAoBA,MAApB,eAAmCA,MAAnC,YAAmCA,MAAnC,uFAAmCA,MAAnC,EAAmCA,MAAnC,EAAb,CAAJ;AAD0C;AAE1C,gLAAaP,WAAb,EAAyBkC,UAAzB,YAAyBA,UAAzB,+FAAyBA,UAAzB,EAAyBA,UAAzB;AACD,WAHD;AAIA,iGAAKpE,GAAL,CAAS,UAAT,eAA+BK;AAAA;AAAS,iGAAKiE,MAAL,EAAYjE,KAAZ,YAAYA,KAAZ,qFAAYA,KAAZ,EAAYA,KAAZ;AAAT,WAA/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iGAAKL,GAAL,CAAS,0BAAT,eAA+CuE;AAAA;AAAO,qHAAKC,0BAAL,EAAgCD,GAAhC,YAAgCA,GAAhC,iFAAgCA,GAAhC,EAAgCA,GAAhC;AAAP,WAA/C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,iGAAKvE,GAAL,CAAS,4BAAT,eAAiDuE;AAAA;AAAO,uHAAKE,4BAAL,EAAkCF,GAAlC,YAAkCA,GAAlC,iFAAkCA,GAAlC,EAAkCA,GAAlC;AAAP,WAAjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,iGAAKvE,GAAL,CAAS,yBAAT,eAA8CuE;AAAA;AAAO,oHAAKG,yBAAL,EAA+BH,GAA/B,YAA+BA,GAA/B,iFAA+BA,GAA/B,EAA+BA,GAA/B;AAAP,WAA9C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;AACA;;AAEA;AAjEkB;AAkElB,eAAKI,eAAL,EAAqB9D,IAArB,YAAqBA,IAArB,mFAAqBA,IAArB,EAAqBA,IAArB;AAED;;AAEDwD,uBAAejD,GAAf,EAAoBqB,MAApB,EAA4B;AAAA;;AAC1B,8LACG,KAAKN,uBAAL,EAA6Bf,GAA7B,YAA6BA,GAA7B,iFAA6BA,GAA7B,EAA6BA,GAA7B,EADH,sIAEG,KAAKwD,qBAAL,EAA2BnC,MAA3B,YAA2BA,MAA3B,uFAA2BA,MAA3B,EAA2BA,MAA3B,EAFH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAID;AACDmC,8BAAsBnC,MAAtB,EAA8B;AAAA;;AAC5B,4EAAgB,aAAhB,iCAAqCL,KAAK;AAAA;;AACxC,iBAAKyC,eAAL,EAAqBpC,MAArB,YAAqBA,MAArB,uFAAqBA,MAArB,EAAqBA,MAArB;AACD,WAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGD;AACD,cAAMoC,eAAN,CAAsBpC,MAAtB,EAA8B;AAAA;;AAC5B,gBAAMvB,QAAQ,sFAAM,sFAAMC,WAAN,EAAN,CAAd;AACA,gBAAMN,OAAO,sFAAM,0HAAMQ,WAAN,CAAkB,mEAAIC,GAAJ,cAAQmB,MAAR,YAAQA,MAAR,uFAAQA,MAAR,EAAQA,MAAR,eAAlB,CAAN,CAAb;;AAEA,cAAG,qFAAM,0HAAMc,UAAN,EAAiB1C,IAAjB,YAAiBA,IAAjB,mFAAiBA,IAAjB,EAAiBA,IAAjB,EAAN,CAAH,EAAiC;AAAA;;AAC/B,iBAAKiE,OAAL;AACD,WAFD,MAEO;AAAA;;AACL,sFAAOC,MAAP,CAAe,sBAAD,uBAAsBtC,MAAtB,YAAsBA,MAAtB,uFAAsBA,MAAtB,EAAsBA,MAAtB,yBAA6C,EAA3D;AACD;AACF;;AAEDqC,kBAAU;AAAA;;AACR,eAAKxB,QAAL,YAAc,IAAd;AACD;AACD,cAAMC,UAAN,GAAmB;AAAA;;AACjB,gBAAMrC,QAAQ,sFAAM,sFAAMC,WAAN,EAAN,CAAd;AACA,gBAAMN,OAAO,sFAAM,0HAAMQ,WAAN,CAAkB,mEAAIC,GAAJ,aAAQ,IAAR,eAAlB,CAAN,CAAb;;AAEA,cAAG,qFAAM,0HAAMiC,UAAN,EAAiB1C,IAAjB,YAAiBA,IAAjB,mFAAiBA,IAAjB,EAAiBA,IAAjB,EAAN,CAAH,EAAiC;AAAA;;AAC/B,kBAAMmE,kBAAkB,uEAA8B,IAA9B,qBAAmD,IAA3E;AAD+B;AAE/B,kMAAgBC,MAAhB;AACD,WAHD,MAGO;AAAA;;AACL,sFAAOF,MAAP,CAAe,uBAAD,WAAuB,IAAvB,cAAsC,EAApD;AACD;AACF;;AAED,cAAMG,eAAN,GAAwB;AAAA;;AACtB,gBAAMC,YAAY,iGAAM,0EAAOC,qBAAP,CAA6B,YAA7B,CAAN,CAAlB;AACA,uLAAwB,MAAM;AAC5B;AAD4B;AAE5B,iBAAKN,OAAL;AACD,WAHD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,iBAAOK,SAAP,YAAOA,SAAP,6FAAOA,SAAP,EAAOA,SAAP;AACD;AACD,cAAMb,MAAN,CAAajE,KAAb,EAAoB;AAAA;;AAClB,gBAAM8E,YAAY,yFAAM,KAAKD,eAAL,EAAN,CAAlB;;AADkB;AAGlB,4JAAUG,QAAV,CAAmB,SAAnB,aAA8B,IAA9B;AAHkB;AAIlB,4JAAUA,QAAV,CAAmB,WAAnB,aAAgC,IAAhC;AAJkB;AAKlB,4JAAUrB,KAAV,CAAgB,QAAhB;AACD;;AAED,cAAMQ,0BAAN,GAAmC;AAAA;;AACjC,gBAAMW,YAAY,yFAAM,KAAKD,eAAL,EAAN,CAAlB;;AADiC;AAGjC,4JAAUG,QAAV,CAAmB,SAAnB,aAA8B,IAA9B;AAHiC;AAIjC,4JAAUrB,KAAV,CAAgB,WAAhB;AACD;;AAED,cAAMS,4BAAN,GAAqC;AAAA;;AACnC,gBAAMU,YAAY,yFAAM,KAAKD,eAAL,EAAN,CAAlB;;AADmC;AAGnC,4JAAUG,QAAV,CAAmB,WAAnB,aAAgC,IAAhC;AAHmC;AAInC,4JAAUrB,KAAV,CAAgB,SAAhB;AACD;;AAED,cAAMU,yBAAN,GAAkC;AAAA;;AAChC,gBAAMS,YAAY,yFAAM,KAAKD,eAAL,EAAN,CAAlB;;AADgC;AAGhC,4JAAUG,QAAV,CAAmB,QAAnB,aAA6B,IAA7B;AAHgC;AAIhC,4JAAUrB,KAAV,CAAgB,SAAhB;AACD;;AAEDsB,yBAAiBzE,IAAjB,EAAuB0E,IAAvB,EAA6B;AAAA;;AAC3B,2EAAYA,IAAZ,YAAYA,IAAZ,mFAAYA,IAAZ,EAAYA,IAAZ,sHAAoB,KAAKlD,WAAL,EAAiBxB,IAAjB,YAAiBA,IAAjB,mFAAiBA,IAAjB,EAAiBA,IAAjB,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACD;AACD,cAAM8D,eAAN,CAAsB9D,IAAtB,EAA4B;AAAA;;AAC1B,cAAIN,oFAAa,KAAKP,GAAL,CAAS,iBAAT,CAAb,CAAJ;AAD0B;AAE1B,oFAAOwF,mBAAP,CAA2B,kBAA3B,GAA+CjF,UAA/C,YAA+CA,UAA/C,+FAA+CA,UAA/C,EAA+CA,UAA/C,GAA2D,QAA3D;AACA,cAAIkF,iFAAU,KAAKzF,GAAL,CAAS,WAAT,CAAV,CAAJ;AACA,yFAAG,oHAAK0F,QAAL,EAAH,EAAoB;AAAA;;AAClB,iBAAKC,IAAL,EAAUpF,UAAV,YAAUA,UAAV,+FAAUA,UAAV,EAAUA,UAAV;AADkB;AAElB,iBAAKqF,IAAL,EAAUH,OAAV,YAAUA,OAAV,yFAAUA,OAAV,EAAUA,OAAV;AACA,2KAAoB,EAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAHkB;AAIlB,kJAAQvD,WAAR,qFAAoB,KAAKoD,gBAAL,aAAsBzE,IAAtB,YAAsBA,IAAtB,mFAAsBA,IAAtB,EAAsBA,IAAtB,eAAoC,SAApC,CAApB;AAJkB;AAKlB,kJAAQqB,WAAR,qFAAoB,KAAKoD,gBAAL,aAAsBzE,IAAtB,YAAsBA,IAAtB,mFAAsBA,IAAtB,EAAsBA,IAAtB,iBAAsC,WAAtC,CAApB;AALkB;AAMlB,kJAAQqB,WAAR,qFAAoB,KAAKoD,gBAAL,aAAsBzE,IAAtB,YAAsBA,IAAtB,mFAAsBA,IAAtB,EAAsBA,IAAtB,cAAmC,QAAnC,CAApB;AACD,WAPD,MAOO;AAAA;AAAA;;AACL,iBAAK+E,IAAL,EAAUrF,UAAV,YAAUA,UAAV,+FAAUA,UAAV,EAAUA,UAAV;AADK;AAEL,iBAAKoF,IAAL,EAAUF,OAAV,YAAUA,OAAV,yFAAUA,OAAV,EAAUA,OAAV;AACA,gBAAI,6LAAqB5E,IAArB,YAAqBA,IAArB,mFAAqBA,IAArB,EAAqBA,IAArB,aAAJ,EAAuC;AACrC,uMAAmBA,IAAnB,YAAmBA,IAAnB,mFAAmBA,IAAnB,EAAmBA,IAAnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACD;AALI;AAML,oKAAWgF,oBAAX;;AAEA,gBAAI3E,QAAQ,sFAAM,sFAAMC,WAAN,EAAN,CAAZ;AACA,gBAAI2E,yFAAO,0HAAMrC,aAAN,EAAoB5C,IAApB,YAAoBA,IAApB,mFAAoBA,IAApB,EAAoBA,IAApB,EAAP,CAAJ;AACA,gBAAG,6IAAe,CAAlB,EAAqB;AAAA;;AACnB,sKAAWkF,iBAAX,aAA6BD,IAA7B,YAA6BA,IAA7B,mFAA6BA,IAA7B,EAA6BA,IAA7B,GAAkC,CAAlC;AACD,aAFD,MAEO;AAAA;;AACL,wFAAOE,KAAP,CAAa,+FAAsB,oHAAKhF,KAAL,EAAtB,CAAb;AACD;AACD,kBAAMiF,WAAW,MAAMC,IAAN,IAAc;AAAA;;AAC7B,4FAAM,oHAAKC,IAAL,EAAUD,IAAV,YAAUA,IAAV,mFAAUA,IAAV,EAAUA,IAAV,EAAN;AAD6B;AAE7B,wFAAOnB,MAAP,CAAc;AACd;AADA;AAED,aAJD;AAKA,2LAAoBkB,QAApB,YAAoBA,QAApB,2FAAoBA,QAApB,EAAoBA,QAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,kBAAMG,kCAAiB;AAAM,6KAAS7F,UAAT,YAASA,UAAT,+FAASA,UAAT,EAASA,UAAT;AAAN,aAAjB,eAA4D,IAA5D,EAAN;AArBK;AAsBL,sFAAOH,gBAAP,CAAwB,kBAAxB,GAA4CG,UAA5C,YAA4CA,UAA5C,+FAA4CA,UAA5C,EAA4CA,UAA5C,GAAwD,QAAxD,GAAkE6F,aAAlE,YAAkEA,aAAlE,qGAAkEA,aAAlE,EAAkEA,aAAlE;AACD;AACF;;AAEDT,aAAKU,OAAL,EAAc;AAAA;AAAE,4LAAwB,MAAxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiC;AACjDT,aAAKS,OAAL,EAAc;AAAA;AAAE,4LAAwB,OAAxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkC;;AAElD/F,sBAAcgG,IAAd,EAAoB;AAAA;AAAA;;AAClB,eAAK5F,cAAL,EAAoB4F,IAApB,YAAoBA,IAApB,mFAAoBA,IAApB,EAAoBA,IAApB;AACD;;AAEDC,4BAAoB;AAAA;;AAClB,eAAKC,YAAL,CAAkB,eAAlB,aAAmC,IAAnC;AACD;AAvTyC;;yBAAvB1G,Q;;;;;;;;;;6BAAAA,0R","file":"knot-view.js","sourcesContent":["'enable aexpr';\n\nimport Morph from \"src/components/widgets/lively-morph.js\"\n\nimport { Graph, Triple, _, TAG_URL } from 'src/client/triples/triples.js';\nimport select, { trackInstance, baseViewForClass } from 'active-group';\n\nimport { debounce } from \"utils\";\n\nexport default class KnotView extends Morph {\n  get urlString() { return this.get(\"#path-to-load\").value; }\n  get tagURLString() { return TAG_URL; }\n  \n  async initialize() {\n    this.windowTitle = \"Knot View\";\n\n    var pathToLoad = this.get(\"#path-to-load\");\n    pathToLoad.addEventListener('keyup',  event => {\n      if (event.keyCode == 13) { // ENTER\n        this.onPathEntered(this.urlString);\n      }\n    });\n    \n    let editorComp = this.get('#content-editor');\n    // editorComp.editor.setOptions({maxLines:Infinity});\n\n    let urlToLoad = this.getAttribute('data-knot-url');\n    if (urlToLoad && urlToLoad !== \"\") {\n      this.loadKnotForURL(urlToLoad);\n    }\n    \n    this.initAExprs();\n  }\n  \n  knotLabel(knot, altText = \"no knot label available\") {\n    return knot &&\n      knot.label instanceof Function && \n      knot.label() || altText;\n  }\n  \n  async initAExprs() {\n    lively.success('setup aexprs');\n    \n    let graph = await Graph.getInstance();\n    let tag = await graph.requestKnot(new URL(TAG_URL));\n\n    this.get('#label-container')\n      .appendChild(<h1>{aexpr(() => this.knotLabel(this.knot))}</h1>);\n    \n    const triples = select(Triple);\n    \n    this.get('#r-po-table').appendChild(<tbody>{\n          ...triples\n            .filter(t => t.subject === this.knot)\n            .map(t => this.buildTableRowFor(t, t.predicate, t.object))\n        }</tbody>);\n    \n    this.get('#r-so-table').appendChild(<tbody>{\n          ...triples\n            .filter(t => t.predicate === this.knot)\n            .map(t => this.buildTableRowFor(t, t.subject, t.object))\n        }</tbody>);\n    \n    this.get('#r-sp-table').appendChild(<tbody>{\n          ...triples\n            .filter(t => t.object === this.knot)\n            .map(t => this.buildTableRowFor(t, t.subject, t.predicate))\n        }</tbody>);\n  }\n  \n  buildMetadata(knot) {\n    const metadataTable = this.get(\"#metadata-table\");\n    metadataTable.innerHTML = \"\";\n    \n    Object.entries(knot.getMetadata()).forEach(entry => {\n      const key = entry[0];\n      const value = entry[1];\n    // for (const [key, value] of Object.entries(knot.getMetadata())) {\n      metadataTable.appendChild(<tr>\n        <td>{key}</td>\n        <td>{value}</td>\n      </tr>);\n    // }\n    });\n  }\n  \n  buildNavigatableLinkFor(knot) {\n    return <a click={e => this.loadKnotForURL(knot.fileName)}>\n      {knot.label()}\n    </a>;\n  }\n  buildRefFor(knot) {\n    return this.buildNavigatableLinkFor(knot);\n  }\n  buildTableDataFor(knot) {\n    return <td>\n      {this.buildRefFor(knot)}\n      <i class=\"fa fa-search\" click={e => {\n        lively.openInspector(knot, undefined, knot.label());\n      }}></i>\n    </td>;\n  }\n  buildTableRowFor(triple, knot1, knot2) {\n    return <tr>\n      {this.buildTableDataFor(knot1)}\n      {this.buildTableDataFor(knot2)}\n      {this.buildTableDataFor(triple)}\n    </tr>;\n  }\n  async replaceTableBodyFor(selector, s, p, o, propForFirstCell, propForSecondCell) {\n    let graph = await Graph.getInstance();\n    let poTableBody = this.get(selector + ' tbody');\n    poTableBody.innerHTML = \"\";\n    graph.query(s, p, o).forEach(triple => {\n      poTableBody.appendChild(\n        this.buildTableRowFor(\n          triple,\n          triple[propForFirstCell],\n          triple[propForSecondCell]\n        )\n      );\n    });\n  }\n  \n  async loadKnotForURL(url) {\n    return this.loadKnot(url);\n  }\n  async loadKnot(url) {\n    let graph = await Graph.getInstance();\n    let knot = await graph.requestKnot(new URL(url));\n    this.knot = knot;\n    \n    this.get(\"#path-to-load\").value = knot.url;\n    \n    let deleteKnot = this.get('#delete-button');\n    deleteKnot.onclick = event => this.deleteKnot(event);\n\n    // URLs\n    let urlList = this.get(\"#url-list\");\n    urlList.innerHTML = \"\";\n    graph.getUrlsByKnot(knot).forEach(url => {\n      function isExternalLink(url) {\n        try {\n          return Graph.isExternalURL(new URL(url));\n        } catch(e) {\n          return false;\n        }\n      }\n      \n      async function followURL(e) {\n        if(isExternalLink(url)) {\n          window.open(url);\n        } else {\n          const container = await lively.openBrowser(url, false);\n          container.focus();\n        }\n        e.preventDefault();\n        e.stopPropagation();\n        return true;\n      }\n\n      urlList.appendChild(<li click={followURL}>\n        {isExternalLink(url) ?\n          url + '<i class=\"fa fa-external-link\"></i>' :\n          url\n        }\n      </li>);\n    });\n    \n    // Tags\n    let tag = await graph.requestKnot(new URL(TAG_URL));\n    let tagContainer = this.get('#tag-container');\n    tagContainer.innerHTML = \"\";\n    graph.query(knot, tag, _).forEach(triple => {\n      let tagElement = this.buildTagWidget(triple.object, triple);\n      tagContainer.appendChild(tagElement);\n    });\n    this.get('#add-tag').onclick = event => this.addTag(event);\n\n    // spo tables\n    // this.replaceTableBodyFor('#po-table', knot, _, _, 'predicate', 'object');\n    // this.replaceTableBodyFor('#so-table', _, knot, _, 'subject', 'object');\n    // this.replaceTableBodyFor('#sp-table', _, _, knot, 'subject', 'predicate');\n\n    // add button behavior\n    this.get('#r-add-triple-as-subject').onclick = evt => this.addTripleWithKnotAsSubject(evt);\n    this.get('#r-add-triple-as-predicate').onclick = evt => this.addTripleWithKnotAsPredicate(evt);\n    this.get('#r-add-triple-as-object').onclick = evt => this.addTripleWithKnotAsObject(evt);\n\n    // metadata\n    //this.buildMetadata(knot);\n    \n    // content\n    this.buildContentFor(knot);\n\n  }\n  \n  buildTagWidget(tag, triple) {\n    return <div>\n      {this.buildNavigatableLinkFor(tag)}\n      {this.buildDeleteTagElement(triple)}\n    </div>;\n  }\n  buildDeleteTagElement(triple) {\n    return <i class=\"fa fa-trash\" click={e => {\n      this.deleteTagTriple(triple);\n    }}></i>;\n  }\n  async deleteTagTriple(triple) {\n    const graph = await Graph.getInstance();\n    const knot = await graph.requestKnot(new URL(triple.fileName));\n    \n    if(await graph.deleteKnot(knot)) {\n      this.refresh();\n    } else {\n      lively.notify(`did not delete tag ${triple.object.fileName}`);\n    }\n  }\n\n  refresh() {\n    this.loadKnot(this.urlString);\n  }\n  async deleteKnot() {\n    const graph = await Graph.getInstance();\n    const knot = await graph.requestKnot(new URL(this.urlString));\n    \n    if(await graph.deleteKnot(knot)) {\n      const elementToRemove = this.parentElement.isWindow ? this.parentElement : this;\n      elementToRemove.remove();\n    } else {\n      lively.notify(`did not delete knot ${this.urlString}`);\n    }\n  }\n  \n  async createAddTriple() {\n    const addTriple = await lively.openComponentInWindow(\"add-triple\");\n    addTriple.afterSubmit = () => {\n      addTriple.parentElement.remove();\n      this.refresh();\n    }\n    return addTriple;\n  }\n  async addTag(event) {\n    const addTriple = await this.createAddTriple();\n\n    addTriple.setField('subject', this.urlString);\n    addTriple.setField('predicate', this.tagURLString);\n    addTriple.focus('object');\n  }\n  \n  async addTripleWithKnotAsSubject() {\n    const addTriple = await this.createAddTriple();\n\n    addTriple.setField('subject', this.urlString);\n    addTriple.focus('predicate');\n  }\n\n  async addTripleWithKnotAsPredicate() {\n    const addTriple = await this.createAddTriple();\n\n    addTriple.setField('predicate', this.urlString);\n    addTriple.focus('subject');\n  }\n\n  async addTripleWithKnotAsObject() {\n    const addTriple = await this.createAddTriple();\n\n    addTriple.setField('object', this.urlString);\n    addTriple.focus('subject');\n  }\n\n  buildListItemFor(knot, role) {\n    return <li>{role}: {this.buildRefFor(knot)}</li>;\n  }\n  async buildContentFor(knot) {\n    let editorComp = this.get('#content-editor');\n    lively.removeEventListener('knot-view-editor', editorComp, 'change');\n    let spoList = this.get('#spo-list');\n    if(knot.isTriple()) {\n      this.hide(editorComp);\n      this.show(spoList);\n      spoList.innerHTML = '';\n      spoList.appendChild(this.buildListItemFor(knot.subject, 'Subject'));\n      spoList.appendChild(this.buildListItemFor(knot.predicate, 'Predicate'));\n      spoList.appendChild(this.buildListItemFor(knot.object, 'Object'));\n    } else {\n      this.show(editorComp);\n      this.hide(spoList);\n      if (editorComp.value !== knot.content) {\n        editorComp.value = knot.content;\n      }\n      editorComp.enableAutocompletion();\n\n      let graph = await Graph.getInstance();\n      let urls = graph.getUrlsByKnot(knot);\n      if(urls.length >= 1) {\n        editorComp.changeModeForFile(urls[0]);\n      } else {\n        lively.error('no url found for ' + knot.label());\n      }\n      const saveKnot = async text => {\n        await knot.save(text);\n        lively.notify('saved knot')\n        // this.refresh();\n      }\n      editorComp.doSave = saveKnot;\n      const debouncedSave = (() => saveKnot(editorComp.value)).debounce(2000);\n      lively.addEventListener('knot-view-editor', editorComp, 'change', debouncedSave);\n    }\n  }\n  \n  hide(element) { element.style.display = \"none\"; }\n  show(element) { element.style.display = \"block\"; }\n\n  onPathEntered(path) {\n    this.loadKnotForURL(path);\n  }\n  \n  livelyPrepareSave() {\n    this.setAttribute(\"data-knot-url\", this.urlString);\n  }\n}\n"]}