{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-core/src/components/halo/lively-halo-name-item.js"],"names":["HaloItem","HalloNameItem","initialize","lively","html","registerKeys","get","draggable","addEventListener","evt","onCustomDragStart","onCustomDrag","target","that","url","files","tempfile","name","id","mimetype","saveFile","outerHTML","dataTransfer","setData","textContent","stopPropagation","onEnterDown","preventDefault","focusWithoutScroll","document","body","onLeftDown","onRightDown","updateTarget","tagName","toLowerCase","classList","length","Array","from","join"],"mappings":";;;;;;AAAOA,c;;;;;;;;;;;AAAAA,mD;;;;;;;AAEQ,YAAMC,aAAN,SAA4BD,QAA5B,CAAqC;;AAElDE,qBAAa;AACXC,iBAAOC,IAAP,CAAYC,YAAZ,CAAyB,KAAKC,GAAL,CAAS,OAAT,CAAzB,EAA4C,MAA5C,EAAoD,IAApD;AACA,eAAKC,SAAL,GAAiB,IAAjB;AACA,eAAKC,gBAAL,CAAsB,WAAtB,EAAmCC,OAAO,KAAKC,iBAAL,CAAuBD,GAAvB,CAA1C;AACA,eAAKD,gBAAL,CAAsB,MAAtB,EAA8BC,OAAO,KAAKE,YAAL,CAAkBF,GAAlB,CAArC;AAED;;AAED,cAAMC,iBAAN,CAAwBD,GAAxB,EAA6B;AAC3B;AACA,cAAIG,SAASC,IAAb;AACA,cAAIC,MAAMX,OAAOY,KAAP,CAAaC,QAAb,EAAV;AAAA,cACEC,OAAO,CAACL,OAAOM,EAAP,IAAa,SAAd,IAA2B,OADpC;AAAA,cAEEC,WAAW,WAFb;AAGAhB,iBAAOY,KAAP,CAAaK,QAAb,CAAsBN,GAAtB,EAA2BF,OAAOS;AAClC;AACA;AACA;AACA;AAJA,YAKAZ,IAAIa,YAAJ,CAAiBC,OAAjB,CAAyB,aAAzB,EAAyC,GAAEJ,QAAS,IAAGF,IAAK,IAAGH,GAAI,EAAnE;;AAEAL,cAAIa,YAAJ,CAAiBC,OAAjB,CAAyB,WAAzB,EAAsCX,OAAOS,SAA7C;AACAZ,cAAIa,YAAJ,CAAiBC,OAAjB,CAAyB,YAAzB,EAAuCX,OAAOY,WAA9C;AACD;;AAEDb,qBAAaF,GAAb,EAAkB;AAChBA,cAAIgB,eAAJ;AACD;;AAEDC,oBAAYjB,GAAZ,EAAiB;AACfA,cAAIgB,eAAJ;AACAhB,cAAIkB,cAAJ;AACA,eAAKf,MAAL,CAAYM,EAAZ,GAAiB,KAAKZ,GAAL,CAAS,OAAT,EAAkBkB,WAAnC;AACArB,iBAAOyB,kBAAP,CAA0BC,SAASC,IAAnC;AACD;;AAEDC,mBAAWtB,GAAX,EAAgB;AACdA,cAAIgB,eAAJ,GADc,CACS;AACxB;;AAEDO,oBAAYvB,GAAZ,EAAiB;AACfA,cAAIgB,eAAJ,GADe,CACQ;AACxB;;AAGDQ,qBAAarB,MAAb,EAAqB;AACnB,eAAKA,MAAL,GAAcA,MAAd;AACA,cAAIA,OAAOM,EAAX,EAAe;AACb,iBAAKZ,GAAL,CAAS,OAAT,EAAkBkB,WAAlB,GAAgCZ,OAAOM,EAAvC;AACD,WAFD,MAEO;AACL,iBAAKZ,GAAL,CAAS,OAAT,EAAkBkB,WAAlB,GAAgC,EAAhC;AACD;;AAED,eAAKlB,GAAL,CAAS,YAAT,EAAuBkB,WAAvB,GAAqC,KAAKZ,MAAL,CAAYsB,OAAZ,CAAoBC,WAApB,MACjC,KAAKvB,MAAL,CAAYwB,SAAZ,CAAsBC,MAAtB,GAA+B,CAAhC,GAAsC,MAAMC,MAAMC,IAAN,CAAW,KAAK3B,MAAL,CAAYwB,SAAvB,EAAkCI,IAAlC,CAAuC,GAAvC,CAA5C,GAA2F,EADzD,CAArC;AAKD;AA5DiD;;yBAA/BvC,a;;;;;;;;6BAAAA,8C","file":"lively-halo-name-item.js","sourcesContent":["import HaloItem from 'src/components/halo/lively-halo-item.js';\n\nexport default class HalloNameItem extends HaloItem {\n  \n  initialize() {\n    lively.html.registerKeys(this.get(\"#name\"), \"Halo\", this)\n    this.draggable = true\n    this.addEventListener(\"dragstart\", evt => this.onCustomDragStart(evt))\n    this.addEventListener(\"drag\", evt => this.onCustomDrag(evt))\n\n  }\n  \n  async onCustomDragStart(evt) {\n    // lively.notify(\"drag2\")\n    var target = that\n    let url = lively.files.tempfile(),\n      name = (target.id || \"unnamed\") + \".html\",\n      mimetype = \"text/html\"\n    lively.files.saveFile(url, target.outerHTML)\n    // there can be a race condition, when the url is faster requested \n    // than it is actually loaded #Hack \n    // This is a #Problem, but we cannot wait after until after we told the server, because the dataTransfer have to be intialized syncronously \n    // so we hope fore the best!\n    evt.dataTransfer.setData(\"DownloadURL\", `${mimetype}:${name}:${url}`);    \n    \n    evt.dataTransfer.setData(\"text/html\", target.outerHTML);    \n    evt.dataTransfer.setData(\"text/plain\", target.textContent);    \n  }\n    \n  onCustomDrag(evt) {\n    evt.stopPropagation()\n  }\n\n  onEnterDown(evt) {\n    evt.stopPropagation()\n    evt.preventDefault()\n    this.target.id = this.get(\"#name\").textContent \n    lively.focusWithoutScroll(document.body)\n  }\n  \n  onLeftDown(evt) {\n    evt.stopPropagation(); // don't move halo, but text cursor\n  }\n  \n  onRightDown(evt) {\n    evt.stopPropagation(); // don't move halo, but text cursor\n  }\n\n\n  updateTarget(target) {\n    this.target = target\n    if (target.id) {\n      this.get(\"#name\").textContent = target.id\n    } else {\n      this.get(\"#name\").textContent = \"\"\n    }\n\n    this.get(\"#classname\").textContent = this.target.tagName.toLowerCase() +\n      ((this.target.classList.length > 0) ? (\".\" + Array.from(this.target.classList).join(\".\")) : \"\")\n      \n  \n\n  }\n}"]}