{"version":3,"sources":["https://lively-kernel.org/lively4/composed-offset/src/components/widgets/lively-import.js"],"names":["Morph","LivelyImport","initialize","lively","html","registerAttributeObservers","update","onSrcChanged","url","getAttribute","source","fetch","then","r","text","shadowRoot","querySelector","innerHTML","container","query","dir","replace","fixLinks","childNodes","path","followPath","components","loadUnresolved","clipboard","initializeElements","querySelectorAll","dispatchEvent","CustomEvent"],"mappings":";;;;;;AAAOA,W;;;;;;;;;;;AAAAA,gD;;;;;;;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,SAAS,MAAMC,MAAM,YAAYH,GAAlB,EAAuBI,IAAvB,CAA4BC,KAAKA,EAAEC,IAAF,EAAjC,CAAnB;;AAEA,cAAIN,QAAQ,KAAKC,YAAL,CAAkB,KAAlB,CAAZ,EAAsC,OALzB,CAKiC;;AAE9C;;;AAGA,eAAKM,UAAL,CAAgBC,aAAhB,CAA8B,iBAA9B,EAAiDC,SAAjD,GAA6D,KAAKP,MAAlE;AACA,cAAIQ,YAAYf,OAAOgB,KAAP,CAAa,IAAb,EAAmB,kBAAnB,CAAhB;AACA,cAAID,SAAJ,EAAe;AACb,gBAAIE,MAAMZ,IAAIa,OAAJ,CAAY,QAAZ,EAAqB,EAArB,CAAV;AACAlB,mBAAOC,IAAP,CAAYkB,QAAZ,CAAqB,KAAKP,UAAL,CAAgBQ,UAArC,EAAiDH,GAAjD,EACGI,IAAD,IAAUN,UAAUO,UAAV,CAAqBD,IAArB,CADZ;AAED;AACD,gBAAMrB,OAAOuB,UAAP,CAAkBC,cAAlB,CAAiC,KAAKZ,UAAtC,EAAkD,KAAlD,EAAyD,eAAzD,EAA0E,IAA1E,CAAN;;AAEAZ,iBAAOyB,SAAP,CAAiBC,kBAAjB,CAAoC,KAAKd,UAAL,CAAgBe,gBAAhB,CAAiC,GAAjC,CAApC;AACA,eAAKC,aAAL,CAAmB,IAAIC,WAAJ,CAAgB,gBAAhB,CAAnB;AACD;;AA/B6C;;yBAA3B/B,Y;;;;;;;;6BAAAA,6C","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 source = 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.querySelector(\"#container-root\").innerHTML = \"\" + source \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    lively.clipboard.initializeElements(this.shadowRoot.querySelectorAll(\"*\"))\n    this.dispatchEvent(new CustomEvent(\"content-loaded\"));\n  }\n  \n  \n}\n"]}