{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-bp2019/src/components/draft/lively-treeview.js"],"names":["Morph","Treeview","onItemClick","target","active","classList","contains","querySelectorAll","forEach","ea","remove","add","activeLeaf","dispatchEvent","CustomEvent","attachedCallback","addEventListener","evt","composedPath","find","selectLeaf","removeLeaf","parentElement","livelyExample","innerHTML","livelyMigrate","other"],"mappings":";;;;;;AAAOA,W;;;;;;;;;;;;;;;;;;AAGQ,YAAMC,QAAN,SAAuBD,KAAvB,CAA6B;;AAG1CE,oBAAYC,MAAZ,EAAoB;AAClB,cAAI,CAACA,MAAL,EAAa;AACb,cAAIC,SAASD,OAAOE,SAAP,CAAiBC,QAAjB,CAA0B,QAA1B,CAAb;AACA,eAAKC,gBAAL,CAAsB,SAAtB,EAAiCC,OAAjC,CAAyCC,MAAMA,GAAGJ,SAAH,CAAaK,MAAb,CAAoB,QAApB,CAA/C;;AAEA,cAAIN,MAAJ,EAAY;AACVD,mBAAOE,SAAP,CAAiBK,MAAjB,CAAwB,QAAxB;AACD,WAFD,MAEO;AACLP,mBAAOE,SAAP,CAAiBM,GAAjB,CAAqB,QAArB;AACD;;AAED,eAAKC,UAAL,GAAkB,CAACR,MAAD,GAAUD,MAAV,GAAmB,IAArC;AACA,eAAKU,aAAL,CAAmB,IAAIC,WAAJ,CAAgB,QAAhB,CAAnB;AACD;;AAEDC,2BAAmB;AACjB,eAAKH,UAAL,GAAkB,IAAlB;;AAEA;AACA,eAAKI,gBAAL,CAAsB,OAAtB,EAAgCC,GAAD,IAAS;;AAEtC,gBAAId,SAASc,IAAIC,YAAJ,GAAmBC,IAAnB,CAAwBV,MAAMA,MAAMA,GAAGJ,SAAT,IAAsBI,GAAGJ,SAAH,CAAaC,QAAb,CAAsB,MAAtB,CAApD,CAAb;AACA,gBAAI,CAACH,MAAL,EAAa;AACb,iBAAKD,WAAL,CAAiBC,MAAjB;AACD,WALD;AAMD;;AAEDiB,mBAAWjB,MAAX,EAAmB;;AAEjB,eAAKI,gBAAL,CAAsB,SAAtB,EAAiCC,OAAjC,CAAyCC,MAAMA,GAAGJ,SAAH,CAAaK,MAAb,CAAoB,QAApB,CAA/C;AACA,eAAKR,WAAL,CAAiBC,MAAjB;AACD;;AAEDkB,mBAAWlB,MAAX,EAAmB;AACjBA,iBAAOmB,aAAP,CAAqBZ,MAArB;AACD;;AAEDa,wBAAgB;AACd,eAAKC,SAAL,GAAkB;;;;;;;;;;MAAlB;AAWD;;AAEDC,sBAAcC,KAAd,EAAqB;AACnB;AACD;AAxDyC;;yBAAvBzB,Q","file":"lively-treeview.js","sourcesContent":["import Morph from 'src/components/widgets/lively-morph.js';\n\n\nexport default class Treeview extends Morph {\n  \n  \n  onItemClick(target) {\n    if (!target) return\n    var active = target.classList.contains('active');\n    this.querySelectorAll(\".active\").forEach(ea => ea.classList.remove(\"active\"))\n\n    if (active) {\n      target.classList.remove(\"active\")\n    } else {\n      target.classList.add(\"active\")\n    }\n\n    this.activeLeaf = !active ? target : null;\n    this.dispatchEvent(new CustomEvent('change'));\n  }\n  \n  attachedCallback() {\n    this.activeLeaf = null;\n  \n    // activate/deactivate leaves\n    this.addEventListener(\"click\", (evt) => {      \n      \n      var target = evt.composedPath().find(ea => ea && ea.classList && ea.classList.contains(\"leaf\"))\n      if (!target) return;\n      this.onItemClick(target)\n    });\n  }\n  \n  selectLeaf(target) {\n    \n    this.querySelectorAll(\".active\").forEach(ea => ea.classList.remove(\"active\"))\n    this.onItemClick(target)\n  }\n  \n  removeLeaf(target) {\n    target.parentElement.remove();\n  }\n  \n  livelyExample() {\n    this.innerHTML = `\n<ul>\n  <li class=\"leaf\">hello</li>\n  <li class=\"leaf\">world</li>\n  <li>\n    <ul>\n      <li class=\"leaf\">sub1</li>\n      <li class=\"leaf\">sub2</li>\n    </ul>\n  </li>\n</ul>`\n  }\n  \n  livelyMigrate(other) {\n    // this.innerHTML = other.innerHTML\n  }\n}"]}