{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-leo/src/components/widgets/lively-import.js"],"names":["Morph","LivelyImport","initialize","lively","html","registerAttributeObservers","update","onSrcChanged","url","getAttribute","src","fetch","then","r","text","shadowRoot","innerHTML","container","query","dir","replace","fixLinks","childNodes","path","followPath","components","loadUnresolved"],"mappings":";;;;;;AAAOA,W;;;;;;;;;;;;;;;;;;AAEQ,YAAMC,YAAN,SAA2BD,KAA3B,CAAiC;AAC9C,cAAME,UAAN,GAAmB;AACjBC,iBAAOC,IAAP,CAAYC,0BAAZ,CAAuC,IAAvC;AACA,eAAKC,MAAL;AACD;;AAED,cAAMC,YAAN,GAAqB;AACnB,eAAKD,MAAL;AACD;;AAED,cAAMA,MAAN,GAAe;AACb,cAAIE,MAAM,KAAKC,YAAL,CAAkB,KAAlB,CAAV;AACA,cAAI,CAACD,GAAL,EAAU;AACV,cAAIE,MAAM,MAAMC,MAAM,YAAYH,GAAlB,EAAuBI,IAAvB,CAA4BC,KAAKA,EAAEC,IAAF,EAAjC,CAAhB;;AAEA,cAAIN,QAAQ,KAAKC,YAAL,CAAkB,KAAlB,CAAZ,EAAsC,OALzB,CAKiC;;AAE9C;;;AAGA,eAAKM,UAAL,CAAgBC,SAAhB,GAA4B,KAAKN,GAAjC;AACA,cAAIO,YAAYd,OAAOe,KAAP,CAAa,IAAb,EAAmB,kBAAnB,CAAhB;AACA,cAAID,SAAJ,EAAe;AACb,gBAAIE,MAAMX,IAAIY,OAAJ,CAAY,QAAZ,EAAqB,EAArB,CAAV;AACAjB,mBAAOC,IAAP,CAAYiB,QAAZ,CAAqB,KAAKN,UAAL,CAAgBO,UAArC,EAAiDH,GAAjD,EACGI,IAAD,IAAUN,UAAUO,UAAV,CAAqBD,IAArB,CADZ;AAED;AACD,gBAAMpB,OAAOsB,UAAP,CAAkBC,cAAlB,CAAiC,KAAKX,UAAtC,EAAkD,KAAlD,EAAyD,eAAzD,EAA0E,IAA1E,CAAN;AACD;;AA5B6C;;yBAA3Bd,Y","file":"lively-import.js","sourcesContent":["import Morph from 'src/components/widgets/lively-morph.js';\n\nexport default class LivelyImport extends Morph {\n  async initialize() {\n    lively.html.registerAttributeObservers(this)\n    this.update()\n  }\n      \n  async onSrcChanged() {\n    this.update()\n  }\n  \n  async update() {\n    let url = this.getAttribute(\"src\")\n    if (!url) return;\n    let src = await fetch(\"cached:\" + url).then(r => r.text())\n    \n    if (url !== this.getAttribute(\"src\")) return; // check if we are still on the same url...\n    \n    /*MD ## #TODO support markdown beside HTML    \nsee [appendMarkdown](edit://src/components/tools/lively-container.js#appendMarkdown)\n    MD*/\n    this.shadowRoot.innerHTML = \"\" + src \n    let container = lively.query(this, \"lively-container\")\n    if (container) {\n      let dir = url.replace(/[^/]*$/,\"\")\n      lively.html.fixLinks(this.shadowRoot.childNodes, dir, \n        (path) => container.followPath(path))\n    }\n    await lively.components.loadUnresolved(this.shadowRoot, false, \"lively-import\", true);\n  }\n  \n  \n}\n"]}