UNPKG

89.1 kBPlain TextView Raw
1{"code":"function defineName$__(cls,name){\n\tObject.defineProperty(cls,\"name\",{value:name,configurable:true});\n};;\nfunction inheritClass$__(cls){\n\tObject.getPrototypeOf(cls.prototype).constructor?.inherited?.(cls);\n};;\nfunction iter$__(a){ let v; return a ? ((v=a.toIterable) ? v.call(a) : a) : a; };\nconst $parent$ = Symbol.for('#parent'), $context$ = Symbol.for('#context'), $closestNode$ = Symbol.for('#closestNode'), $parentNode$ = Symbol.for('#parentNode'), $__init__$ = Symbol.for('#__init__'), $$inited$ = Symbol.for('##inited'), $getRenderContext$ = Symbol.for('#getRenderContext'), $getDynamicContext$ = Symbol.for('#getDynamicContext'), $replaceChild$ = Symbol.for('#replaceChild'), $appendChild$ = Symbol.for('#appendChild'), $removeChild$ = Symbol.for('#removeChild'), $insertInto$ = Symbol.for('#insertInto'), $insertChild$ = Symbol.for('#insertChild'), $removeFrom$ = Symbol.for('#removeFrom'), $removeFromDeopt$ = Symbol.for('#removeFromDeopt'), $replaceWith$ = Symbol.for('#replaceWith'), $replaceWithDeopt$ = Symbol.for('#replaceWithDeopt'), $placeholderNode$ = Symbol.for('#placeholderNode'), $attachToParent$ = Symbol.for('#attachToParent'), $detachFromParent$ = Symbol.for('#detachFromParent'), $placeChild$ = Symbol.for('#placeChild'), $beforeReconcile$ = Symbol.for('#beforeReconcile'), $afterReconcile$ = Symbol.for('#afterReconcile'), $afterVisit$ = Symbol.for('#afterVisit'), $visitContext$ = Symbol.for('#visitContext'), $__patch__$ = Symbol.for('#__patch__'), $document$ = Symbol.for('#document'), $htmlNodeName$ = Symbol.for('#htmlNodeName'), $ImbaElement$ = Symbol.for('#ImbaElement'), $flags$ = Symbol.for('#flags'), $scripts$ = Symbol.for('#scripts'), $location$ = Symbol.for('#location'), $$document$ = Symbol.for('##document'), $$parent$ = Symbol.for('##parent'), $$up$ = Symbol.for('##up'), $$context$ = Symbol.for('##context'), $domNode$ = Symbol.for('#domNode'), $$placeholderNode$ = Symbol.for('##placeholderNode'), $domDeopt$ = Symbol.for('#domDeopt'), $insertIntoDeopt$ = Symbol.for('#insertIntoDeopt'), $$classList$ = Symbol.for('##classList'), $$style$ = Symbol.for('##style'), $$dataset$ = Symbol.for('##dataset'), $asset$ = Symbol.for('#asset'), $innerHTML$ = Symbol.for('#innerHTML'), $$visitContext$ = Symbol.for('##visitContext'), $isRichElement$ = Symbol.for('#isRichElement'), $src$ = Symbol.for('#src'), $getSlot$ = Symbol.for('#getSlot'), $cssns$ = Symbol.for('#cssns'), $cssid$ = Symbol.for('#cssid'), $dom$ = Symbol.for('#dom');\n\n/*body*/\n// imba$stdlib=1\n\n/*\nVery basic shim for the DOM to support rendering on the server\nWe want to support this in webworkers as well, so the asynclocalstorage\nshould move elsewhere\n*/\n\n\nimport {TYPES,MAP} from './schema';\nimport {AsyncLocalStorage} from '../bindings';\nimport {Flags} from './flags';\nimport {createRenderContext} from './context';\nimport {getDeepPropertyDescriptor} from '../utils';\n\nconst manifest = {};\n\nlet asl = null;\n\nexport class Location extends URL {\nstatic {\n\tdefineName$__(this,'Location');inheritClass$__(this);}};\n\nexport class Window {\n\t\n\tget document(){\n\t\t\n\t\treturn this[$document$] ||= new this.Document(this);\n\t}\n\t\n\tget location(){\n\t\t\n\t\treturn this.document.location;\n\t}\n\tstatic {\n\t\tdefineName$__(this,'Window');}\n};\n\nexport function use_window(){\n\t\n\tglobalThis.imba.uses_window = true;\n\treturn true;\n};\n\nconst voidElements = {\n\tarea: true,\n\tbase: true,\n\tbr: true,\n\tcol: true,\n\tembed: true,\n\thr: true,\n\timg: true,\n\tinput: true,\n\tkeygen: true,\n\tlink: true,\n\tmeta: true,\n\tparam: true,\n\tsource: true,\n\ttrack: true,\n\twbr: true\n};\n\nlet HtmlContext = null;\n\nconst CustomTagToElementNames = {};\n\nclass CustomElementRegistry {\n\t\n\t\n\tdefine(){\n\t\t\n\t\treturn this;\n\t}\n\t\n\tget(){\n\t\t\n\t\treturn this;\n\t}\n\t\n\tupgrade(){\n\t\t\n\t\treturn;\n\t}\n\t\n\twhenDefined(){\n\t\t\n\t\treturn;\n\t}\n\tstatic {\n\t\tdefineName$__(this,'CustomElementRegistry');}\n};\n\nexport const customElements = new CustomElementRegistry;\n\nexport const CUSTOM_TYPES = {};\n\nexport function getTagType(typ,klass){\n\t\n\t\n\tlet name = typ;\n\tif (typeof typ == 'string') {\n\t\t\n\t\ttyp = TYPES[typ] || MAP[typ] || TYPES[typ + 'Element'] || MAP['svg_' + typ];\n\t};\n\t\n\tif (typ instanceof Node) {\n\t\t\n\t\treturn typ;\n\t};\n\t\n\tif (!(typ)) {\n\t\t\n\t\treturn getTagType('HTML');\n\t};\n\t\n\tif (typ && !(typ.klass)) {\n\t\t\n\t\tclass element extends getTagType(typ.up) {\n\t\tstatic {\n\t\t\tdefineName$__(this,'element');inheritClass$__(this);}};\n\t\ttyp.klass = element;\n\t};\n\t\n\tif (typ && !(typ.idl)) {\n\t\t\n\t\ttyp.idl = true;\n\t\tlet existing = Object.getOwnPropertyDescriptors(typ.klass.prototype);\n\t\tfor (let $3 = typ[1], $1 = 0, $2 = Object.keys($3), $4 = $2.length, key, alias; $1 < $4; $1++){\n\t\t\tkey = $2[$1];alias = $3[key];\n\t\t\tlet name = (alias == 1) ? key : alias;\n\t\t\tif (existing[name] || name == 'style') { continue; };\n\t\t\t\n\t\t\tObject.defineProperty(typ.klass.prototype,key,{\n\t\t\t\tset: function(value) {\n\t\t\t\t\t\n\t\t\t\t\tthis.setAttribute(name,value);\n\t\t\t\t\treturn;\n\t\t\t\t},\n\t\t\t\tget: function() { return this.getAttribute(name); }\n\t\t\t});\n\t\t};\n\t};\n\t\n\treturn typ.klass;\n};\n\nexport function getSuperTagType(name,klass,cmp){\n\t\n\tlet typ = getTagType(name,klass);\n\tlet custom = typ == cmp || (typ.prototype instanceof cmp) || typ.prototype[$htmlNodeName$];\n\t\n\tif (!(custom)) {\n\t\t\n\t\tlet cls = typ.prototype[$ImbaElement$];\n\t\t\n\t\tif (!(cls)) {\n\t\t\t\n\t\t\tcls = class CustomBuiltInElement extends typ {\n\t\t\t\t\n\t\t\t\tconstructor(){\n\t\t\t\t\t\n\t\t\t\t\tsuper(...arguments);\n\t\t\t\t\tthis.__slots = {};\n\t\t\t\t\tthis.__F = 0;\n\t\t\t\t}\n\t\t\t\tstatic {\n\t\t\t\t\tdefineName$__(this,'CustomBuiltInElement');inheritClass$__(this);}\n\t\t\t};\n\t\t\t\n\t\t\ttyp.prototype[$ImbaElement$] = cls;\n\t\t\tlet descriptors = Object.getOwnPropertyDescriptors(cmp.prototype);\n\t\t\tObject.defineProperties(cls.prototype,descriptors);\n\t\t\tcls.prototype[$htmlNodeName$] = name;\n\t\t};\n\t\t\n\t\treturn cls;\n\t};\n\t\n\treturn typ;\n};\n\nconst escapeAttributeValue = function(val) {\n\t\n\tlet str = (typeof val == 'string') ? val : String(val);\n\tif (str.indexOf('\"') >= 0) {\n\t\t\n\t\tstr = str.replace(/\\\"/g,\"&quot;\");\n\t};\n\treturn str;\n};\n\nconst escapeTextContent = function(val,nodeName) {\n\t\n\tlet str = (typeof val == 'string') ? val : String(val);\n\t\n\tif (nodeName == 'script') {\n\t\t\n\t\treturn str;\n\t};\n\t\n\tif (str.indexOf('\"') >= 0) {\n\t\t\n\t\tstr = str.replace(/\\\"/g,\"&quot;\");\n\t};\n\tif (str.indexOf('<') >= 0) {\n\t\t\n\t\tstr = str.replace(/\\</g,\"&lt;\");\n\t};\n\tif (str.indexOf('>') >= 0) {\n\t\t\n\t\tstr = str.replace(/\\>/g,\"&gt;\");\n\t};\n\treturn str;\n};\n\n// could create a fake document\nexport class Document {\n\t\n\t\n\tstatic create(ctx,cb){\n\t\t\n\t\tlet doc = new Document;\n\t\tdoc[$context$] = ctx;\n\t\tdoc.location = ctx.location;\n\t\tasl ||= new AsyncLocalStorage;\n\t\tasl.run(doc,cb);\n\t\treturn doc;\n\t}\n\t\n\tconstructor(){\n\t\t\n\t\tthis;\n\t}\n\t\n\tget flags(){\n\t\t\n\t\t// should be the html root\n\t\treturn this[$flags$] ||= new Flags({classList: new DOMTokenList(this)});\n\t}\n\t\n\tget scripts(){\n\t\t\n\t\treturn this[$scripts$] ||= [];\n\t}\n\t\n\tset location(value){\n\t\t\n\t\tif (typeof value == 'string') {\n\t\t\t\n\t\t\tvalue = new Location(value);\n\t\t};\n\t\tthis[$location$] = value;\n\t}\n\t\n\tget location(){\n\t\t\n\t\treturn this[$location$] ||= new Location('http://localhost/');\n\t}\n\t\n\tcreateElement(name){\n\t\t\n\t\t// look for custom elements now?\n\t\tlet ctor = getTagType(name);\n\t\tlet el = new ctor(name);\n\t\tel.nodeName = name;\n\t\treturn el;\n\t}\n\t\n\tcreateElementNS(ns,name){\n\t\t\n\t\tif (ns == \"http://www.w3.org/2000/svg\") {\n\t\t\t\n\t\t\tlet typ = getTagType('svg_' + name);\n\t\t\tlet el = new typ;\n\t\t\tel.nodeName = name;\n\t\t\treturn el;\n\t\t};\n\t\treturn this.createElement(name);\n\t}\n\t\n\tcreateTextNode(value){\n\t\t\n\t\treturn new Text(value);\n\t}\n\t\n\tcreateComment(value){\n\t\t\n\t\treturn new Comment(value);\n\t}\n\t\n\tcreateDocumentFragment(){\n\t\t\n\t\treturn new DocumentFragment;\n\t}\n\t\n\tgetElementById(id){\n\t\t\n\t\treturn null;\n\t}\n\tstatic {\n\t\tdefineName$__(this,'Document');}\n};\n\nconst doc = new Document;\nexport const document = doc;\n\nexport function get_document(){\n\t\n\treturn asl && asl?.getStore?.() || doc;\n};\n\n// could optimize by using a dictionary in addition to keys\n// where we cache the indexes?\n// export these as well?\nclass DOMTokenList {\n\t\n\t\n\tconstructor(dom,classes){\n\t\t\n\t\tthis.classes = classes || [];\n\t\tthis.dom = dom;\n\t}\n\t\n\tadd(flag){\n\t\t\n\t\tif (this.classes.indexOf(flag) < 0) { this.classes.push(flag) };\n\t\treturn this;\n\t}\n\t\n\tremove(flag){\n\t\t\n\t\t// TODO implement!\n\t\t// self.classes.push(flag) unless self.classes.indexOf(flag) >= 0\n\t\tlet idx = this.classes.indexOf(flag);\n\t\tif (idx >= 0) {\n\t\t\t\n\t\t\tthis.classes[idx] = '';\n\t\t};\n\t\treturn this;\n\t}\n\t\n\ttoggle(flag){\n\t\t\n\t\tthis.contains(flag) ? this.remove(flag) : this.add(flag);\n\t\treturn this;\n\t}\n\t\n\tcontains(flag){\n\t\t\n\t\treturn this.classes.indexOf(flag) >= 0;\n\t}\n\t\n\tclone(dom){\n\t\t\n\t\treturn new DOMTokenList(dom,this.classes.slice(0));\n\t}\n\t\n\ttoString(){\n\t\t\n\t\t// beware of perf\n\t\treturn this.classes.join(\" \").trim();\n\t}\n\tstatic {\n\t\tdefineName$__(this,'DOMTokenList');}\n};\n\nexport class StyleDeclaration {\n\t\n\t\n\tconstructor(){\n\t\t\n\t\tthis;\n\t}\n\t\n\tremoveProperty(key){\n\t\tvar $5;\n\t\t\n\t\treturn ((($5 = this[key]),delete this[key], $5));\n\t}\n\t\n\tsetProperty(name,value){\n\t\t\n\t\treturn this[name] = value;\n\t}\n\t\n\ttoString(){\n\t\t\n\t\tlet items = [];\n\t\tfor (let $8 = this, $6 = 0, $7 = Object.keys($8), $9 = $7.length, k, v; $6 < $9; $6++){\n\t\t\tk = $7[$6];v = $8[k];\n\t\t\tif (!((v instanceof Function))) {\n\t\t\t\t\n\t\t\t\titems.push((\"\" + k + \": \" + v));\n\t\t\t};\n\t\t};\n\t\treturn items.join(';');\n\t}\n\tstatic {\n\t\tdefineName$__(this,'StyleDeclaration');}\n};\n\nclass DataSet {\n\t\n\tstatic wrap(node){\n\t\t\n\t\treturn new Proxy(node.attributes,new DataSet);\n\t}\n\t\n\tset(target,key,value){\n\t\t\n\t\ttarget[\"data-\" + key] = value;\n\t\treturn true;\n\t}\n\t\n\tget(target,key){\n\t\t\n\t\treturn target[\"data-\" + key];\n\t}\n\tstatic {\n\t\tdefineName$__(this,'DataSet');}\n};\n\nconst contextHandler = {\n\tget(target,name){\n\t\t\n\t\tlet ctx = target;\n\t\tlet val = undefined;\n\t\twhile (ctx && val == undefined){\n\t\t\t\n\t\t\tif (ctx = ctx[$parent$]) {\n\t\t\t\t\n\t\t\t\tval = ctx[name];\n\t\t\t};\n\t\t};\n\t\treturn val;\n\t}\n};\n\nexport class Node {\n\t\n\t\n\ttoString(){\n\t\t\n\t\treturn this.outerHTML;\n\t}\n\t\n\tget outerHTML(){\n\t\t\n\t\treturn '';\n\t}\n\t\n\ttext$(item){\n\t\t\n\t\tthis.textContent = item;\n\t\treturn this;\n\t}\n\t\n\tget ownerDocument(){\n\t\t\n\t\treturn this[$$document$] ||= get_document();\n\t}\n\t\n\tget [$parent$](){\n\t\t\n\t\treturn this[$$parent$] || this.parentNode || this[$$up$];\n\t}\n\t\n\tget [$context$](){\n\t\t\n\t\treturn this[$$context$] ||= new Proxy(this,contextHandler);\n\t}\n\t\n\tget [$closestNode$](){\n\t\t\n\t\treturn this;\n\t}\n\t\n\tget [$parentNode$](){\n\t\t\n\t\treturn this[$parent$][$closestNode$];\n\t}\n\t\n\t[$__init__$](){\n\t\t\n\t\treturn this;\n\t}\n\t\n\t[$$inited$](){\n\t\t\n\t\treturn this;\n\t}\n\t\n\t[$getRenderContext$](sym){\n\t\t\n\t\treturn createRenderContext(this,sym);\n\t}\n\t\n\t[$getDynamicContext$](sym,key){\n\t\t\n\t\treturn this[$getRenderContext$](sym)[$getRenderContext$](key);\n\t}\n\t\n\t[$replaceChild$](newnode,oldnode){\n\t\t\n\t\tlet res = this[$insertChild$](newnode,oldnode);\n\t\tthis[$removeChild$](oldnode);\n\t\treturn res;\n\t}\n\t\n\t[$appendChild$](newnode){\n\t\t\n\t\treturn newnode[$insertInto$](this,null);\n\t}\n\t\n\t[$removeChild$](node){\n\t\t\n\t\treturn node[$removeFrom$](this);\n\t}\n\t\n\t[$insertInto$](parent,before){\n\t\t\n\t\tbefore ? parent.insertBefore(this,before) : parent.appendChild(this);\n\t\treturn this;\n\t}\n\t\n\t[$insertChild$](newnode,refnode){\n\t\t\n\t\treturn newnode[$insertInto$](this,refnode);\n\t}\n\t\n\t[$removeFrom$](parent){\n\t\t\n\t\treturn parent.removeChild(this);\n\t}\n\t\n\t[$removeFromDeopt$](parent){\n\t\t\n\t\treturn parent.removeChild(this[$domNode$] || this);\n\t}\n\t\n\t[$replaceWith$](other,parent){\n\t\t\n\t\treturn parent[$replaceChild$](other,this);\n\t}\n\t\n\t[$replaceWithDeopt$](other,parent){\n\t\t\n\t\treturn parent[$replaceChild$](other,this[$domNode$] || this);\n\t}\n\t\n\tget [$placeholderNode$](){\n\t\t\n\t\treturn this[$$placeholderNode$] ||= doc.createComment(\"placeholder\");\n\t}\n\t\n\tset [$placeholderNode$](value){\n\t\t\n\t\tlet prev = this[$$placeholderNode$];\n\t\tthis[$$placeholderNode$] = value;\n\t\tif (prev && prev != value && prev.parentNode) {\n\t\t\t\n\t\t\tprev[$replaceWith$](value);\n\t\t};\n\t}\n\t\n\t[$attachToParent$](){\n\t\t\n\t\tlet ph = this[$domNode$];\n\t\tlet par = ph && ph.parentNode;\n\t\tif (ph && par && ph != this) {\n\t\t\t\n\t\t\tthis[$domNode$] = null;\n\t\t\tthis[$insertInto$](par,ph);\n\t\t\tph[$removeFrom$](par);\n\t\t};\n\t\treturn this;\n\t}\n\t\n\t[$detachFromParent$](){\n\t\t\n\t\tif ((this[$domDeopt$] != true) ? ((this[$domDeopt$] = true,true)) : false) {\n\t\t\t\n\t\t\tthis[$replaceWith$] = this[$replaceWithDeopt$];\n\t\t\tthis[$removeFrom$] = this[$removeFromDeopt$];\n\t\t\tthis[$insertInto$] = this[$insertIntoDeopt$];\n\t\t};\n\t\t\n\t\tlet ph = this[$placeholderNode$];\n\t\tif (this.parentNode && ph != this) {\n\t\t\t\n\t\t\tph[$insertInto$](this.parentNode,this);\n\t\t\tthis[$removeFrom$](this.parentNode);\n\t\t};\n\t\t\n\t\tthis[$domNode$] = ph;\n\t\t// self.#replaceWith(ph,parentNode)\n\t\treturn this;\n\t}\n\t\n\t[$placeChild$](item,f,prev){\n\t\t\n\t\t\n\t\tlet type = typeof item;\n\t\t// console.log '#inserting!',item,f,prev,type\n\t\t\n\t\tif (type === 'undefined' || item === null) {\n\t\t\t\n\t\t\t// what if the prev value was the same?\n\t\t\tif (prev && (prev instanceof Comment)) { // check perf\n\t\t\t\t\n\t\t\t\treturn prev;\n\t\t\t};\n\t\t\t\n\t\t\tlet el = new Comment('');\n\t\t\treturn prev ? prev[$replaceWith$](el,this) : el[$insertInto$](this,null);\n\t\t};\n\t\t\n\t\t// dont reinsert again\n\t\tif (item === prev) {\n\t\t\t\n\t\t\treturn item;\n\t\t} else if (type !== 'object') {\n\t\t\t\n\t\t\tlet res;\n\t\t\tlet txt = item;\n\t\t\t\n\t\t\tif ((f & 128) && (f & 256) && false) {\n\t\t\t\t\n\t\t\t\t// FIXME what if the previous one was not text? Possibly dangerous\n\t\t\t\t// when we set this on a fragment - it essentially replaces the whole\n\t\t\t\t// fragment?\n\t\t\t\t// log 'set textcontent raw',txt,prev\n\t\t\t\tthis.textContent = txt;\n\t\t\t\treturn;\n\t\t\t};\n\t\t\t\n\t\t\tif (prev) {\n\t\t\t\t\n\t\t\t\tif (prev instanceof Text) { // check perf\n\t\t\t\t\t\n\t\t\t\t\tprev.textContent = txt;\n\t\t\t\t\treturn prev;\n\t\t\t\t} else {\n\t\t\t\t\t\n\t\t\t\t\tres = document.createTextNode(txt);\n\t\t\t\t\tprev[$replaceWith$](res,this);\n\t\t\t\t\treturn res;\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tthis.appendChild(res = document.createTextNode(txt));\n\t\t\t\treturn res;\n\t\t\t};\n\t\t} else {\n\t\t\t\n\t\t\treturn prev ? prev[$replaceWith$](item,this) : item[$insertInto$](this,null);\n\t\t};\n\t\treturn;\n\t}\n\tstatic {\n\t\tdefineName$__(this,'Node');}\n};\n\nexport class Text extends Node {\n\t\n\t\n\tconstructor(str){\n\t\t\n\t\tsuper();\n\t\tthis.textContent = (str ?? '');\n\t\tthis;\n\t}\n\t\n\tget outerHTML(){\n\t\t\n\t\treturn this.textContent;\n\t}\n\tstatic {\n\t\tdefineName$__(this,'Text');inheritClass$__(this);}\n};\n\nexport class Comment extends Node {\n\t\n\t\n\tconstructor(value){\n\t\t\n\t\tsuper();\n\t\tthis.value = value;\n\t}\n\t\n\tget outerHTML(){\n\t\t\n\t\treturn (\"<!-- \" + escapeTextContent(this.value) + \" -->\");\n\t}\n\t\n\ttoString(){\n\t\t\n\t\tif (this.tag && this.tag.toNodeString) {\n\t\t\t\n\t\t\treturn this.tag.toNodeString();\n\t\t};\n\t\treturn this.outerHTML;\n\t}\n\tstatic {\n\t\tdefineName$__(this,'Comment');inheritClass$__(this);}\n};\n\nexport class Element extends Node {\n\t\n\t\n\tconstructor(name){\n\t\t\n\t\tsuper();\n\t\tthis.nodeName = name;\n\t\tthis.childNodes = [];\n\t\tthis.attributes = {};\n\t\tthis;\n\t}\n\t\n\temit(name,detail,o = {bubbles: true}){\n\t\t\n\t\tconsole.warn('Element#emit not supported on node');\n\t\treturn;\n\t}\n\t\n\tget classList(){\n\t\t\n\t\treturn this[$$classList$] ||= new DOMTokenList(this);\n\t}\n\t\n\tget style(){\n\t\t\n\t\treturn this[$$style$] ||= new StyleDeclaration;\n\t}\n\t\n\tget dataset(){\n\t\t\n\t\treturn this[$$dataset$] ||= DataSet.wrap(this);\n\t}\n\t\n\tget richValue(){\n\t\t\n\t\treturn this.value;\n\t}\n\t\n\tset richValue(value){\n\t\t\n\t\tthis.value = value;\n\t}\n\t\n\tset asset(asset){\n\t\t\n\t\tthis[$asset$] = asset;\n\t}\n\t\n\tget asset(){\n\t\t\n\t\treturn this[$asset$];\n\t}\n\t\n\tflag$(){\n\t\t\n\t\treturn this;\n\t}\n\t\n\tflagIf$(){\n\t\t\n\t\treturn this;\n\t}\n\t\n\tappendChild(child){\n\t\t\n\t\tthis.childNodes.push(child);\n\t\tchild.parentNode = this;\n\t\treturn child;\n\t}\n\t\n\tremoveChild(child){\n\t\t\n\t\tlet idx = this.childNodes.indexOf(child);\n\t\tif (idx >= 0) {\n\t\t\t\n\t\t\tthis.childNodes.splice(idx,1);\n\t\t};\n\t\treturn this;\n\t}\n\t\n\treplaceChild(newChild,oldChild){\n\t\t\n\t\tlet idx = this.childNodes.indexOf(oldChild);\n\t\tif (idx >= 0) {\n\t\t\t\n\t\t\tthis.childNodes.splice(idx,1,newChild);\n\t\t\tnewChild.parentNode = this;\n\t\t};\n\t\t// self.childNodes.push(child)\n\t\t// child.parentNode = self\n\t\treturn oldChild;\n\t}\n\t\n\tinsertBefore(node,before){\n\t\t\n\t\tlet idx = this.childNodes.indexOf(before);\n\t\tthis.childNodes.splice(idx,0,node);\n\t\treturn this;\n\t}\n\t\n\tsetAttribute(key,value){\n\t\t\n\t\tthis.attributes[key] = value;\n\t\treturn this;\n\t}\n\t\n\tsetAttributeNS(ns,key,value){\n\t\t\n\t\treturn this.setAttribute(ns + ':' + key,value);\n\t}\n\t\n\tgetAttribute(key){\n\t\t\n\t\t// console.log \"getAttribute not implemented on server\"\n\t\treturn this.attributes ? this.attributes[key] : undefined;\n\t}\n\t\n\tgetAttributeNS(ns,key){\n\t\t\n\t\treturn this.getAttribute(ns + ':' + key);\n\t}\n\t\n\tremoveAttribute(key){\n\t\tvar $10;\n\t\t\n\t\t((($10 = this.attributes[key]),delete this.attributes[key], $10));\n\t\treturn true;\n\t}\n\t\n\t// noop\n\taddEventListener(){\n\t\t\n\t\treturn this;\n\t}\n\t\n\t// noop\n\tremoveEventListener(){\n\t\t\n\t\treturn this;\n\t}\n\t\n\tresolve(){\n\t\t\n\t\treturn this;\n\t}\n\t\n\tset innerHTML(value){\n\t\t\n\t\tthis[$innerHTML$] = value;\n\t}\n\t\n\tget innerHTML(){\n\t\t\n\t\tlet o = \"\";\n\t\tif (this[$innerHTML$]) {\n\t\t\t\n\t\t\treturn this[$innerHTML$];\n\t\t};\n\t\t\n\t\tif (this.textContent != undefined) {\n\t\t\t\n\t\t\treturn escapeTextContent(this.textContent);\n\t\t};\n\t\t\n\t\tfor (let i = 0, $11 = iter$__(this.childNodes), $12 = $11.length; i < $12; i++) {\n\t\t\tlet item = $11[i];\n\t\t\tif (item instanceof String) {\n\t\t\t\t\n\t\t\t\to += escapeTextContent(item,this.nodeName);\n\t\t\t} else if (item instanceof Number) {\n\t\t\t\t\n\t\t\t\to += \"\" + item;\n\t\t\t} else if (item) {\n\t\t\t\t\n\t\t\t\to += item.outerHTML;\n\t\t\t};\n\t\t};\n\t\treturn o;\n\t}\n\t\n\tget outerHTML(){\n\t\t\n\t\tlet typ = this.nodeName;\n\t\tlet nativeType = this[$htmlNodeName$];\n\t\tlet sel = (\"\" + typ);\n\t\t\n\t\tif (nativeType) {\n\t\t\t\n\t\t\tsel = (\"\" + nativeType + \" is='\" + typ + \"'\");\n\t\t\ttyp = nativeType;\n\t\t};\n\t\t\n\t\tlet v;\n\t\tlet cls = this.classList.toString();\n\t\t\n\t\tif (this.dehydrate) {\n\t\t\t\n\t\t\tcls = (cls ? (('_ssr_ ' + cls)) : '_ssr_');\n\t\t\tthis.dehydrate();\n\t\t};\n\t\t\n\t\tif (v = this.id) { sel += (\" id=\\\"\" + escapeAttributeValue(v) + \"\\\"\") };\n\t\tif (cls) { sel += (\" class=\\\"\" + escapeAttributeValue(cls) + \"\\\"\") };\n\t\t\n\t\tfor (let $15 = this.attributes, $13 = 0, $14 = Object.keys($15), $16 = $14.length, key, value; $13 < $16; $13++){\n\t\t\tkey = $14[$13];value = $15[key];\n\t\t\tsel += (\" \" + key + \"=\\\"\" + escapeAttributeValue(value) + \"\\\"\");\n\t\t};\n\t\t\n\t\tif (this[$$style$]) {\n\t\t\t\n\t\t\tsel += (\" style=\\\"\" + escapeAttributeValue(this[$$style$].toString()) + \"\\\"\");\n\t\t};\n\t\t\n\t\tif (voidElements[typ]) {\n\t\t\t\n\t\t\treturn (\"<\" + sel + \">\");\n\t\t} else {\n\t\t\t\n\t\t\treturn (\"<\" + sel + \">\" + (this.innerHTML) + \"</\" + typ + \">\");\n\t\t};\n\t}\n\t\n\tget firstChild(){\n\t\t\n\t\treturn this.childNodes[0];\n\t}\n\t\n\tget lastChild(){\n\t\t\n\t\treturn this.childNodes[this.childNodes.length - 1];\n\t}\n\t\n\tget firstElementChild(){\n\t\t\n\t\tlet l = this.childNodes.length;\n\t\tlet i = 0;\n\t\twhile (i < l){\n\t\t\t\n\t\t\tlet el = this.childNodes[i++];\n\t\t\tif (el instanceof Element) { return el };\n\t\t};\n\t\treturn null;\n\t}\n\t\n\tget lastElementChild(){\n\t\t\n\t\tlet i = this.childNodes.length;\n\t\twhile (i > 0){\n\t\t\t\n\t\t\tlet el = this.childNodes[--i];\n\t\t\tif (el instanceof Element) { return el };\n\t\t};\n\t\treturn null;\n\t}\n\t\n\tget className(){\n\t\t\n\t\treturn this.classList.toString();\n\t}\n\t\n\tset className(value){\n\t\t\n\t\tthis.classList.classes = (value || '').split(' ');\n\t\tthis.classList.toString();\n\t}\n\t\n\tlog(...params){\n\t\t\n\t\treturn console.log(...params);\n\t}\n\t\n\t// inline in files or remove all together?\n\ttext$(item){\n\t\t\n\t\tthis.textContent = item;\n\t\treturn this;\n\t}\n\t\n\t[$beforeReconcile$](){\n\t\t\n\t\treturn this;\n\t}\n\t\n\t[$afterReconcile$](){\n\t\t\n\t\treturn this;\n\t}\n\t\n\t[$afterVisit$](){\n\t\t\n\t\tif (this.render) { this.render() };\n\t\tif (this[$$visitContext$]) { this[$$visitContext$] = null };\n\t\treturn;\n\t}\n\t\n\tget [$visitContext$](){\n\t\t\n\t\treturn this[$$visitContext$] ||= {};\n\t}\n\t\n\tget flags(){\n\t\t\n\t\tif (!(this.$flags)) {\n\t\t\t\n\t\t\t// unless deopted - we want to first cache the extflags\n\t\t\tthis.$flags = new Flags(this);\n\t\t\tif (this.flag$ == Element.prototype.flag$) {\n\t\t\t\t\n\t\t\t\tthis.flags$ext = this.className;\n\t\t\t};\n\t\t\tthis.flagDeopt$();\n\t\t};\n\t\treturn this.$flags;\n\t}\n\t\n\tflag$(str){\n\t\t\n\t\t// Potentially slow\n\t\tlet ns = this.flags$ns;\n\t\tthis.className = ns ? ((ns + (this.flags$ext = str))) : ((this.flags$ext = str));\n\t\treturn;\n\t}\n\t\n\tflagDeopt$(){\n\t\tvar self = this;\n\t\t\n\t\tthis.flag$ = this.flagExt$;// do(str) self.flagSync$(flags$ext = str)\n\t\tthis.flagSelf$ = function(str) { return self.flagSync$(self.flags$own = str); };\n\t\treturn;\n\t}\n\t\n\tflagExt$(str){\n\t\t\n\t\treturn this.flagSync$(this.flags$ext = str);\n\t}\n\t\n\tflagSelf$(str){\n\t\t\n\t\t// if a tag receives flags from inside <self> we need to\n\t\t// redefine the flag-methods to later use both\n\t\tthis.flagDeopt$();\n\t\treturn this.flagSelf$(str);\n\t}\n\t\n\tflagSync$(){\n\t\t\n\t\treturn this.className = ((this.flags$ns || '') + (this.flags$ext || '') + ' ' + (this.flags$own || '') + ' ' + (this.$flags || ''));\n\t}\n\t\n\tset$(key,value){\n\t\t\n\t\tlet desc = getDeepPropertyDescriptor(this,key,Element);\n\t\tif (!(desc) || !(desc.set)) {\n\t\t\t\n\t\t\tthis.setAttribute(key,value);\n\t\t} else {\n\t\t\t\n\t\t\tthis[key] = value;\n\t\t};\n\t\treturn;\n\t}\n\tstatic {\n\t\tdefineName$__(this,'Element');inheritClass$__(this);}\n};\n\n// Element.prototype.appendChild$ = Element.prototype.appendChild\n// Element.prototype.removeChild$ = Element.prototype.removeChild\n// Element.prototype.insertBefore$ = Element.prototype.insertBefore\n// Element.prototype.replaceChild$ = Element.prototype.replaceChild\nElement.prototype.setns$ = Element.prototype.setAttributeNS;\nElement.prototype[$isRichElement$] = true;\n\nexport class DocumentFragment extends Element {\n\t\n\tconstructor(){\n\t\t\n\t\tsuper(null);\n\t}\n\t\n\tget outerHTML(){\n\t\t\n\t\treturn this.innerHTML;\n\t}\n\tstatic {\n\t\tdefineName$__(this,'DocumentFragment');inheritClass$__(this);}\n};\n\nexport class ShadowRoot extends DocumentFragment {\n\t\n\t\n\tget outerHTML(){\n\t\t\n\t\treturn this.innerHTML;\n\t}\n\tstatic {\n\t\tdefineName$__(this,'ShadowRoot');inheritClass$__(this);}\n};\n\nexport class HTMLElement extends Element {\nstatic {\n\tdefineName$__(this,'HTMLElement');inheritClass$__(this);}};\n\nexport class HTMLHtmlElement extends HTMLElement {\n\t[$__patch__$]($$ = {},fields = true){\n\t\tvar $17;\n\t\tsuper[$__patch__$] && super[$__patch__$]($$,fields);\n\t\t($17 = $$.hmr) !== undefined && (this.hmr = $17);\n\t\t\n\t}\n\tconstructor(){\n\t\tsuper(...arguments);\n\t\tsuper[$__init__$] || this[$__init__$]();\n\t}\n\t[$__init__$]($$ = null,deep = true,fields = true){\n\t\tdeep && super[$__init__$] && super[$__init__$](...arguments);\n\t\tthis.hmr = $$ ? $$.hmr : undefined;\n\t\t\n\t}\n\tget scripts(){\n\t\t\n\t\treturn this[$scripts$] ||= [];\n\t}\n\t\n\tget outerHTML(){\n\t\t\n\t\t// watch for assets that are collected etc\n\t\t// console.log \"compiling outerhtml!\"\n\t\tlet prev = HtmlContext;\n\t\tHtmlContext = this;\n\t\tlet html = super.outerHTML;\n\t\t// console.log 'has scripts',self.scripts.length\n\t\t// automatically include stylesheets?\n\t\t// add data-hmr yes or inject hmr script if hmr?\n\t\tlet sheets = new Set;\n\t\tlet jsassets = [];\n\t\tlet inject = [];\n\t\t\n\t\tif (globalThis.IMBA_HMR_PATH && this.hmr !== false) {\n\t\t\t\n\t\t\tinject.push(\"<script src='/__hmr__.js'></script>\");\n\t\t};\n\t\t\n\t\tif (globalThis.__vite_manifest__) {\n\t\t\t\n\t\t\t// in production\n\t\t\tfor (let i = 0, $18 = iter$__(this.scripts), $22 = $18.length; i < $22; i++) {\n\t\t\t\tlet script = $18[i];\n\t\t\t\tif (!((this.src = globalThis.__vite_manifest__[script.src]))) { continue; };\n\t\t\t\tinject.push((\"<script type=\\\"module\\\" src=\\\"\" + (this.src.file) + \"\\\"></script>\"));\n\t\t\t\tfor (let $19 = 0, $20 = iter$__(this.src.css), $21 = $20.length; $19 < $21; $19++) {\n\t\t\t\t\tlet cssΞfile = $20[$19];\n\t\t\t\t\tsheets.add({url: cssΞfile});\n\t\t\t\t};\n\t\t\t};\n\t\t} else if (globalThis.__vite__) {\n\t\t\t\n\t\t\t// in development\n\t\t\tinject.push('<link rel=\\'stylesheet\\' id=\\'imba-dev-ssr\\' href=\\'.dev-ssr/all.css\\'>\\n<script>addEventListener(\\'DOMContentLoaded\\', (event) => {\\n\tdocument.getElementById(\"imba-dev-ssr\").remove()\\n});</script>');\n\t\t};\n\t\t// if we havent included any styles in the html at all\n\t\tif (!(this.styles)) {\n\t\t\t\n\t\t\t// maybe only if there are no\n\t\t\tfor (let $23 = 0, $24 = iter$__(this.scripts), $25 = $24.length; $23 < $25; $23++) {\n\t\t\t\tlet script = $24[$23];\n\t\t\t\tlet src = script.src;\n\t\t\t\tlet asset = manifest[src];\n\t\t\t\t\n\t\t\t\tif (asset && asset.css) {\n\t\t\t\t\t\n\t\t\t\t\tsheets.add(asset.css);\n\t\t\t\t};\n\t\t\t\t// add preloads?\n\t\t\t};\n\t\t\t\n\t\t\tfor (let sheet of iter$__(sheets)){\n\t\t\t\t\n\t\t\t\tinject.push((\"<link rel='stylesheet' href='\" + (sheet.url) + \"'>\"));\n\t\t\t};\n\t\t\t// now go through the stylesheets?\n\t\t};\n\t\t\n\t\tHtmlContext = prev;\n\t\t\n\t\tif (inject.length) {\n\t\t\t\n\t\t\tlet pos = html.indexOf('</head>');\n\t\t\tif (pos == -1) { pos = html.indexOf('<body>') };\n\t\t\tif (pos == -1) { pos = 0 };\n\t\t\thtml = html.slice(0,pos) + '\\n' + inject.join('\\n') + '\\n' + html.slice(pos);\n\t\t};\n\t\treturn \"<!DOCTYPE html>\" + html;\n\t}\n\tstatic {\n\t\tdefineName$__(this,'HTMLHtmlElement');inheritClass$__(this);}\n};\n\nexport class HTMLSelectElement extends HTMLElement {\nstatic {\n\tdefineName$__(this,'HTMLSelectElement');inheritClass$__(this);}};\nexport class HTMLInputElement extends HTMLElement {\nstatic {\n\tdefineName$__(this,'HTMLInputElement');inheritClass$__(this);}};\nexport class HTMLTextAreaElement extends HTMLElement {\nstatic {\n\tdefineName$__(this,'HTMLTextAreaElement');inheritClass$__(this);}};\nexport class HTMLButtonElement extends HTMLElement {\nstatic {\n\tdefineName$__(this,'HTMLButtonElement');inheritClass$__(this);}};\nexport class HTMLOptionElement extends HTMLElement {\nstatic {\n\tdefineName$__(this,'HTMLOptionElement');inheritClass$__(this);}};\n\nexport class HTMLScriptElement extends HTMLElement {\n\t\n\t\n\tget outerHTML(){\n\t\t\n\t\tif (HtmlContext) {\n\t\t\t\n\t\t\t(HtmlContext.scripts ||= []).push(this);\n\t\t\tif (globalThis.__vite_manifest__ && globalThis.__vite_manifest__[this.src]) {\n\t\t\t\t\n\t\t\t\t// The HTMLElement will take care of resolving the entry\n\t\t\t\t// to js and css files as defined in the manifest\n\t\t\t\treturn '';\n\t\t\t};\n\t\t};\n\t\t\n\t\tif (this[$asset$]) {\n\t\t\t\n\t\t\tif (this[$asset$].js) {\n\t\t\t\t\n\t\t\t\t// add nomodule version as well?\n\t\t\t\tthis.setAttribute('src',this[$asset$].js.url);\n\t\t\t\tthis.setAttribute('type','module');\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconsole.warn((\"could not find browser entrypoint for \" + (this[$asset$].path)));\n\t\t\t};\n\t\t};\n\t\t\n\t\treturn super.outerHTML;\n\t}\n\tstatic {\n\t\tdefineName$__(this,'HTMLScriptElement');inheritClass$__(this);}\n};\n\nexport class HTMLLinkElement extends HTMLElement {\n\t\n\t\n\tget outerHTML(){\n\t\t\n\t\tif (this[$asset$]) {\n\t\t\t\n\t\t\tlet rel = this.getAttribute('rel');\n\t\t\tlet href;\n\t\t\tif (rel == 'stylesheet') {\n\t\t\t\t\n\t\t\t\tif (!((href = this[$asset$].css.url))) {\n\t\t\t\t\t\n\t\t\t\t\tconsole.warn((\"could not find stylesheet for \" + (this[$asset$].path)));\n\t\t\t\t};\n\t\t\t};\n\t\t\t\n\t\t\tif (href) {\n\t\t\t\t\n\t\t\t\tthis.setAttribute('href',href);\n\t\t\t};\n\t\t};\n\t\treturn super.outerHTML;\n\t}\n\tstatic {\n\t\tdefineName$__(this,'HTMLLinkElement');inheritClass$__(this);}\n};\n\nexport class HTMLStyleElement extends HTMLElement {\n\t\n\t\n\tset src(value){\n\t\t\n\t\tif ((this[$src$] != value) ? ((this[$src$] = value,true)) : false) {\n\t\t\t\n\t\t\ttrue;\n\t\t};\n\t\treturn;\n\t}\n\t\n\tget src(){\n\t\t\n\t\treturn this[$src$];\n\t}\n\t\n\tget outerHTML(){\n\t\t\n\t\tif (HtmlContext && this.src) {\n\t\t\t\n\t\t\t(HtmlContext.styles ||= []).push(this);\n\t\t};\n\t\t\n\t\tif (this.src) {\n\t\t\t\n\t\t\t// rewrite to a link? Too much magic?\n\t\t\tthis.nodeName = 'link';\n\t\t\tthis.setAttribute('rel','stylesheet');\n\t\t\tthis.setAttribute('href',String(this.src));\n\t\t\tlet out = super.outerHTML;\n\t\t\tthis.nodeName = 'style';\n\t\t\treturn out;\n\t\t};\n\t\t\n\t\treturn super.outerHTML;\n\t}\n\tstatic {\n\t\tdefineName$__(this,'HTMLStyleElement');inheritClass$__(this);}\n};\n\n/* Event */\n\nexport class Event {\nstatic {\n\tdefineName$__(this,'Event');}};\nexport class UIEvent extends Event {\nstatic {\n\tdefineName$__(this,'UIEvent');inheritClass$__(this);}};\nexport class MouseEvent extends UIEvent {\nstatic {\n\tdefineName$__(this,'MouseEvent');inheritClass$__(this);}};\nexport class PointerEvent extends MouseEvent {\nstatic {\n\tdefineName$__(this,'PointerEvent');inheritClass$__(this);}};\nexport class KeyboardEvent extends UIEvent {\nstatic {\n\tdefineName$__(this,'KeyboardEvent');inheritClass$__(this);}};\nexport class CustomEvent extends Event {\nstatic {\n\tdefineName$__(this,'CustomEvent');inheritClass$__(this);}};\n\nconst descriptorCache = {};\n\nfunction getDescriptor(item,key,cache){\n\t\n\tif (!(item)) {\n\t\t\n\t\treturn cache[key] = null;\n\t};\n\t\n\tif (cache[key] !== undefined) {\n\t\t\n\t\treturn cache[key];\n\t};\n\t\n\tlet desc = Object.getOwnPropertyDescriptor(item,key);\n\t\n\tif (desc !== undefined || item == SVGElement) {\n\t\t\n\t\treturn cache[key] = desc || null;\n\t};\n\t\n\treturn getDescriptor(Reflect.getPrototypeOf(item),key,cache);\n};\n\nexport class SVGElement extends Element {\n\t\n\t\n\tset$(key,value){\n\t\t\n\t\tlet cache = descriptorCache[this.nodeName] ||= {};\n\t\tlet desc = getDescriptor(this,key,cache);\n\t\t\n\t\tif (!(desc) || !(desc.set)) {\n\t\t\t\n\t\t\tthis.setAttribute(key,value);\n\t\t} else {\n\t\t\t\n\t\t\tthis[key] = value;\n\t\t};\n\t\treturn;\n\t}\n\tstatic {\n\t\tdefineName$__(this,'SVGElement');inheritClass$__(this);}\n};\n\nexport class SVGSVGElement extends SVGElement {\n\t\n\t\n\tset src(value){\n\t\t\n\t\tif ((this[$src$] != value) ? ((this[$src$] = value,true)) : false) {\n\t\t\t\n\t\t\tif (value && value.adoptNode) {\n\t\t\t\t\n\t\t\t\tvalue.adoptNode(this);\n\t\t\t} else if (value && value.type == 'svg') {\n\t\t\t\t\n\t\t\t\tif (value.attributes) {\n\t\t\t\t\t\n\t\t\t\t\tfor (let $28 = value.attributes, $26 = 0, $27 = Object.keys($28), $29 = $27.length, k, v; $26 < $29; $26++){\n\t\t\t\t\t\tk = $27[$26];v = $28[k];\n\t\t\t\t\t\tthis.setAttribute(k,v);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t\tthis.innerHTML = value.content;\n\t\t\t};\n\t\t};\n\t\treturn;\n\t}\n\tstatic {\n\t\tdefineName$__(this,'SVGSVGElement');inheritClass$__(this);}\n};\n\nTYPES[''].klass = Element;\nTYPES.HTML.klass = HTMLElement;\nTYPES.SVG.klass = SVGElement;\n\nMAP.html.klass = HTMLHtmlElement;\nMAP.select.klass = HTMLSelectElement;\nMAP.input.klass = HTMLInputElement;\nMAP.textarea.klass = HTMLTextAreaElement;\nMAP.button.klass = HTMLButtonElement;\nMAP.option.klass = HTMLOptionElement;\nMAP.script.klass = HTMLScriptElement;\nMAP.style.klass = HTMLStyleElement;\nMAP.link.klass = HTMLLinkElement;\n\nMAP.svg_svg.klass = SVGSVGElement;\n\ngetTagType('');\ngetTagType('HTML');\ngetTagType('SVG');\n\nexport function createElement(name,parent,flags,text){\n\t\n\t// struggling with this thing here\n\tlet el = doc.createElement(name);\n\tif (flags) { el.className = flags };\n\t\n\tif (text !== null) {\n\t\t\n\t\tel.text$(text);\n\t};\n\t\n\t// FIXME\n\tif (parent && parent[$appendChild$]) {\n\t\t\n\t\tparent[$appendChild$](el);\n\t};\n\t\n\treturn el;\n};\n\nexport function createSVGElement(name,parent,flags,text,ctx){\n\t\n\tlet el = doc.createElementNS(\"http://www.w3.org/2000/svg\",name);\n\t\n\tif (flags) {\n\t\t\n\t\tel.className = flags;\n\t};\n\t\n\tif (parent && parent[$appendChild$]) {\n\t\t\n\t\tparent[$appendChild$](el);\n\t};\n\t\n\tif (text) {\n\t\t\n\t\tel.textContent = text;\n\t};\n\treturn el;\n};\n\nexport function createComment(text){\n\t\n\treturn doc.createComment(text);\n};\n\nexport function createTextNode(text){\n\t\n\treturn doc.createTextNode(text);\n};\n\nexport function createFragment(){\n\t\n\treturn doc.createDocumentFragment();\n};\n\nexport function createComponent(name,parent,flags,text,ctx){\n\t\n\t// the component could have a different web-components name?\n\tlet el;\n\t\n\tif (typeof name != 'string') {\n\t\t\n\t\t\n\t\tif (name.prototype instanceof HTMLElement) {\n\t\t\t\n\t\t\tel = new name();\n\t\t\tel.nodeName = name.nodeName;\n\t\t} else if (name && name.nodeName) {\n\t\t\t\n\t\t\tname = name.nodeName;\n\t\t};\n\t};\n\t\n\tel ||= doc.createElement(CustomTagToElementNames[name] || name);\n\tel[$$parent$] = parent;\n\tel[$__init__$]();\n\t\n\tif (text !== null) {\n\t\t\n\t\tel[$getSlot$]('__').text$(text);\n\t};\n\t\n\tif (flags || el.flags$ns) { // or nsflag\n\t\t\n\t\tel.flag$(flags || '');\n\t};\n\treturn el;\n};\n\nexport function createDynamic(value,parent,flags,text){\n\t\n\tif (value == null || value == undefined) {\n\t\t\n\t\treturn createComment('');\n\t} else if (value instanceof Node) {\n\t\t\n\t\t// check if node already exists somewhere else in dom\n\t\treturn value;\n\t} else if (typeof value == 'string' || (value && (value.prototype instanceof Node))) {\n\t\t\n\t\treturn createComponent(value,parent,flags,text);\n\t};\n};\n\nexport function defineTag(name,klass,options = {}){\n\t\n\tTYPES[name] = CUSTOM_TYPES[name] = {\n\t\tidl: true,\n\t\tname: name,\n\t\tklass: klass\n\t};\n\tlet componentName = klass.nodeName = name;\n\tlet proto = klass.prototype;\n\t\n\tif (name.indexOf('-') == -1) {\n\t\t\n\t\tcomponentName = klass.nodeName = (\"\" + name + \"-tag\");\n\t\tCustomTagToElementNames[name] = componentName;\n\t};\n\t\n\tif (options.extends) {\n\t\t\n\t\tproto[$htmlNodeName$] = options.extends;\n\t};\n\t\n\tif (options.cssns) {\n\t\t\n\t\tlet ns = (proto._ns_ || '') + ' ' + options.cssns;\n\t\tproto._ns_ = ns.trim() + ' ';\n\t\tproto[$cssns$] = options.cssns;\n\t};\n\t\n\tif (options.cssid) {\n\t\t\n\t\tlet ids = (proto.flags$ns || '') + ' ' + options.cssid;\n\t\tproto[$cssid$] = options.cssid;\n\t\tproto.flags$ns = ids.trim() + ' ';\n\t};\n\t\n\treturn klass;\n};\n\nglobalThis[$dom$] = {\n\tLocation: Location,\n\tDocument: Document\n};\n","map":{"version":3,"file":"core.js","sourceRoot":"","sources":["/Users/abdellah/workspace/scrimba/imba/packages/imba/src/imba/dom/core.imba"],"sourcesContent":["# imba$stdlib=1\n\n###\nVery basic shim for the DOM to support rendering on the server\nWe want to support this in webworkers as well, so the asynclocalstorage\nshould move elsewhere\n###\n\nimport {TYPES,MAP} from './schema'\nimport {AsyncLocalStorage} from '../bindings'\nimport {Flags} from './flags'\nimport {createRenderContext} from './context'\nimport {getDeepPropertyDescriptor} from '../utils'\n\nconst manifest = {}\n\nlet asl = null\n\nexport class Location < URL\n\nexport class Window\n\tget document\n\t\t#document ||= new self.Document(self)\n\n\tget location\n\t\tself.document.location\n\nexport def use_window\n\tglobal.imba.uses_window = yes\n\tyes\n\nconst voidElements = {\n\tarea: yes\n\tbase: yes\n\tbr: yes\n\tcol: yes\n\tembed: yes\n\thr: yes\n\timg: yes\n\tinput: yes\n\tkeygen: yes\n\tlink: yes\n\tmeta: yes\n\tparam: yes\n\tsource: yes\n\ttrack: yes\n\twbr: yes\n}\n\nlet HtmlContext = null\n\nconst CustomTagToElementNames = {}\n\nclass CustomElementRegistry\n\n\tdef define\n\t\tself\n\n\tdef get\n\t\tself\n\n\tdef upgrade\n\t\treturn\n\n\tdef whenDefined\n\t\treturn\n\nexport const customElements = new CustomElementRegistry\n\nexport const CUSTOM_TYPES = {}\n\nexport def getTagType typ, klass\n\n\tlet name = typ\n\tif typeof typ == 'string'\n\t\ttyp = TYPES[typ] or MAP[typ] or TYPES[typ + 'Element'] or MAP['svg_' + typ]\n\n\tif typ isa Node\n\t\treturn typ\n\n\tif !typ\n\t\treturn getTagType('HTML')\n\n\tif typ and !typ.klass\n\t\tclass element < getTagType(typ.up)\n\t\ttyp.klass = element\n\n\tif typ and !typ.idl\n\t\ttyp.idl = yes\n\t\tlet existing = Object.getOwnPropertyDescriptors(typ.klass.prototype)\n\t\tfor own key,alias of typ[1]\n\t\t\tlet name = alias == 1 ? key : alias\n\t\t\tcontinue if existing[name] or name == 'style'\n\n\t\t\tObject.defineProperty(typ.klass.prototype,key,{\n\t\t\t\tset: do(value)\n\t\t\t\t\tthis.setAttribute(name,value)\n\t\t\t\t\treturn\n\t\t\t\tget: do this.getAttribute(name)\n\t\t\t})\n\n\treturn typ.klass\n\nexport def getSuperTagType name, klass, cmp\n\tlet typ = getTagType(name,klass)\n\tlet custom = typ == cmp or typ.prototype isa cmp or typ.prototype.#htmlNodeName\n\n\tif !custom\n\t\tlet cls = typ.prototype.#ImbaElement\n\n\t\tif !cls\n\t\t\tcls = class CustomBuiltInElement < typ\n\t\t\t\tdef constructor\n\t\t\t\t\tsuper\n\t\t\t\t\t__slots = {}\n\t\t\t\t\t__F = 0\n\n\t\t\ttyp.prototype.#ImbaElement = cls\n\t\t\tlet descriptors = Object.getOwnPropertyDescriptors(cmp.prototype)\n\t\t\tObject.defineProperties(cls.prototype,descriptors)\n\t\t\tcls.prototype.#htmlNodeName = name\n\n\t\treturn cls\n\n\treturn typ\n\nconst escapeAttributeValue = do(val)\n\tlet str = typeof val == 'string' ? val : String(val)\n\tif str.indexOf('\"') >= 0\n\t\tstr = str.replace(/\\\"/g,\"&quot;\")\n\treturn str\n\nconst escapeTextContent = do(val, nodeName)\n\tlet str = typeof val == 'string' ? val : String(val)\n\n\tif nodeName == 'script'\n\t\treturn str\n\n\tif str.indexOf('\"') >= 0\n\t\tstr = str.replace(/\\\"/g,\"&quot;\")\n\tif str.indexOf('<') >= 0\n\t\tstr = str.replace(/\\</g,\"&lt;\")\n\tif str.indexOf('>') >= 0\n\t\tstr = str.replace(/\\>/g,\"&gt;\")\n\treturn str\n\n# could create a fake document\nexport class Document\n\n\tstatic def create ctx, cb\n\t\tlet doc = new Document\n\t\tdoc.#context = ctx\n\t\tdoc.location = ctx.location\n\t\tasl ||= new AsyncLocalStorage\n\t\tasl.run(doc,cb)\n\t\treturn doc\n\n\tdef constructor\n\t\tself\n\n\tget flags\n\t\t# should be the html root\n\t\t#flags ||= new Flags({classList: new DOMTokenList(self)})\n\n\tget scripts\n\t\t#scripts ||= []\n\n\tset location value\n\t\tif typeof value == 'string'\n\t\t\tvalue = new Location(value)\n\t\t#location = value\n\n\tget location\n\t\t#location ||= new Location('http://localhost/')\n\n\tdef createElement name\n\t\t# look for custom elements now?\n\t\tlet ctor = getTagType(name)\n\t\tlet el = new ctor(name)\n\t\tel.nodeName = name\n\t\treturn el\n\n\tdef createElementNS ns, name\n\t\tif ns == \"http://www.w3.org/2000/svg\"\n\t\t\tlet typ = getTagType('svg_'+name)\n\t\t\tlet el = new typ\n\t\t\tel.nodeName = name\n\t\t\treturn el\n\t\treturn self.createElement(name)\n\n\tdef createTextNode value\n\t\treturn new Text(value)\n\n\tdef createComment value\n\t\treturn new Comment(value)\n\n\tdef createDocumentFragment\n\t\treturn new DocumentFragment\n\n\tdef getElementById id\n\t\treturn null\n\nconst doc = new Document\nexport const document = doc\n\nexport def get_document\n\tasl && asl..getStore! or doc\n\n# could optimize by using a dictionary in addition to keys\n# where we cache the indexes?\n# export these as well?\nclass DOMTokenList\n\n\tdef constructor dom, classes\n\t\tthis.classes = classes or []\n\t\tthis.dom = dom\n\n\tdef add flag\n\t\tself.classes.push(flag) unless self.classes.indexOf(flag) >= 0\n\t\tself\n\n\tdef remove flag\n\t\t# TODO implement!\n\t\t# self.classes.push(flag) unless self.classes.indexOf(flag) >= 0\n\t\tlet idx = self.classes.indexOf(flag)\n\t\tif idx >= 0\n\t\t\tself.classes[idx] = ''\n\t\tself\n\n\tdef toggle flag\n\t\tself.contains(flag) ? self.remove(flag) : self.add(flag)\n\t\tself\n\n\tdef contains flag\n\t\tself.classes.indexOf(flag) >= 0\n\n\tdef clone dom\n\t\tnew DOMTokenList(dom,self.classes.slice(0))\n\n\tdef toString\n\t\t# beware of perf\n\t\tself.classes.join(\" \").trim()\n\nexport class StyleDeclaration\n\n\tdef constructor\n\t\tself\n\n\tdef removeProperty key\n\t\tdelete self[key]\n\n\tdef setProperty name, value\n\t\tself[name] = value\n\n\tdef toString\n\t\tlet items = []\n\t\tfor own k,v of self\n\t\t\tunless v isa Function\n\t\t\t\titems.push(\"{k}: {v}\")\n\t\treturn items.join(';')\n\nclass DataSet\n\tstatic def wrap node\n\t\tnew Proxy(node.attributes,new DataSet)\n\n\tdef set target, key, value\n\t\ttarget[\"data-\" + key] = value\n\t\treturn true\n\n\tdef get target, key\n\t\ttarget[\"data-\" + key]\n\nconst contextHandler =\n\tdef get target, name\n\t\tlet ctx = target\n\t\tlet val = undefined\n\t\twhile ctx and val == undefined\n\t\t\tif ctx = ctx.#parent\n\t\t\t\tval = ctx[name]\n\t\treturn val\n\nexport class Node\n\n\tdef toString\n\t\tthis.outerHTML\n\n\tget outerHTML\n\t\t''\n\n\tdef text$ item\n\t\tself.textContent = item\n\t\tself\n\n\tget ownerDocument\n\t\t##document ||= get_document!\n\n\tget #parent\n\t\t##parent or this.parentNode or ##up\n\n\tget #context\n\t\t##context ||= new Proxy(self,contextHandler)\n\n\tget #closestNode\n\t\tself\n\n\tget #parentNode\n\t\t#parent.#closestNode\n\n\tdef #__init__\n\t\tself\n\n\tdef ##inited\n\t\tself\n\n\tdef #getRenderContext sym\n\t\tcreateRenderContext(self,sym)\n\n\tdef #getDynamicContext sym,key\n\t\t#getRenderContext(sym).#getRenderContext(key)\n\n\tdef #replaceChild newnode, oldnode\n\t\tlet res = #insertChild(newnode,oldnode)\n\t\t#removeChild(oldnode)\n\t\treturn res\n\n\tdef #appendChild newnode\n\t\tnewnode.#insertInto(self,null)\n\n\tdef #removeChild node\n\t\tnode.#removeFrom(self)\n\n\tdef #insertInto parent, before\n\t\tbefore ? parent.insertBefore(self,before) : parent.appendChild(self)\n\t\treturn this\n\n\tdef #insertChild newnode, refnode\n\t\tnewnode.#insertInto(self,refnode)\n\n\tdef #removeFrom parent\n\t\tparent.removeChild(self)\n\n\tdef #removeFromDeopt parent\n\t\tparent.removeChild(#domNode or self)\n\n\tdef #replaceWith other, parent\n\t\tparent.#replaceChild(other,self)\n\n\tdef #replaceWithDeopt other, parent\n\t\tparent.#replaceChild(other,#domNode or self)\n\n\tget #placeholderNode\n\t\t##placeholderNode ||= doc.createComment(\"placeholder\")\n\n\tset #placeholderNode value\n\t\tlet prev = ##placeholderNode\n\t\t##placeholderNode = value\n\t\tif prev and prev != value and prev.parentNode\n\t\t\tprev.#replaceWith(value)\n\n\tdef #attachToParent\n\t\tlet ph = #domNode\n\t\tlet par = ph and ph.parentNode\n\t\tif ph and par and ph != self\n\t\t\t#domNode = null\n\t\t\t#insertInto(par,ph)\n\t\t\tph.#removeFrom(par)\n\t\tself\n\n\tdef #detachFromParent\n\t\tif #domDeopt =? yes\n\t\t\t#replaceWith = #replaceWithDeopt\n\t\t\t#removeFrom = #removeFromDeopt\n\t\t\t#insertInto = #insertIntoDeopt\n\n\t\tlet ph = #placeholderNode\n\t\tif parentNode and ph != self\n\t\t\tph.#insertInto(parentNode,self)\n\t\t\t#removeFrom(parentNode)\n\n\t\t#domNode = ph\n\t\t# self.#replaceWith(ph,parentNode)\n\t\tself\n\n\tdef #placeChild item, f, prev\n\n\t\tlet type = typeof item\n\t\t# console.log '#inserting!',item,f,prev,type\n\n\t\tif type === 'undefined' or item === null\n\t\t\t# what if the prev value was the same?\n\t\t\tif prev and prev isa Comment # check perf\n\t\t\t\treturn prev\n\n\t\t\tlet el = new Comment('')\n\t\t\treturn prev ? prev.#replaceWith(el,self) : el.#insertInto(this,null)\n\n\t\t# dont reinsert again\n\t\tif item === prev\n\t\t\treturn item\n\n\t\t# what if this is null or undefined -- add comment and return? Or blank text node?\n\t\telif type !== 'object'\n\t\t\tlet res\n\t\t\tlet txt = item\n\n\t\t\tif (f & $TAG_FIRST_CHILD$) && (f & $TAG_LAST_CHILD$) and false\n\t\t\t\t# FIXME what if the previous one was not text? Possibly dangerous\n\t\t\t\t# when we set this on a fragment - it essentially replaces the whole\n\t\t\t\t# fragment?\n\t\t\t\t# log 'set textcontent raw',txt,prev\n\t\t\t\tself.textContent = txt\n\t\t\t\treturn\n\n\t\t\tif prev\n\t\t\t\tif prev isa Text # check perf\n\t\t\t\t\tprev.textContent = txt\n\t\t\t\t\treturn prev\n\t\t\t\telse\n\t\t\t\t\tres = document.createTextNode(txt)\n\t\t\t\t\tprev.#replaceWith(res,self)\n\t\t\t\t\treturn res\n\t\t\telse\n\t\t\t\tself.appendChild(res = document.createTextNode(txt))\n\t\t\t\treturn res\t\n\n\t\telse\n\t\t\treturn prev ? prev.#replaceWith(item,this) : item.#insertInto(this,null)\n\t\treturn\n\nexport class Text < Node\n\n\tdef constructor str\n\t\tsuper()\n\t\tself.textContent = str ?? ''\n\t\tself\n\n\tget outerHTML\n\t\tself.textContent\n\nexport class Comment < Node\n\n\tdef constructor value\n\t\tsuper()\n\t\tself.value = value\n\n\tget outerHTML\n\t\t\"<!-- {escapeTextContent(self.value)} -->\"\n\n\tdef toString\n\t\tif self.tag and self.tag.toNodeString\n\t\t\treturn self.tag.toNodeString()\n\t\tself.outerHTML\n\nexport class Element < Node\n\n\tdef constructor name\n\t\tsuper()\n\t\tself.nodeName = name\n\t\tself.childNodes = []\n\t\tself.attributes = {}\n\t\tself\n\n\tdef emit name, detail, o = {bubbles: true}\n\t\tconsole.warn 'Element#emit not supported on node'\n\t\treturn\n\n\tget classList\n\t\t##classList ||= new DOMTokenList(self)\n\n\tget style\n\t\t##style ||= new StyleDeclaration\n\n\tget dataset\n\t\t##dataset ||= DataSet.wrap(self)\n\n\tget richValue\n\t\tvalue\n\n\tset richValue value\n\t\tself.value = value\n\n\tset asset asset\n\t\t#asset = asset\n\n\tget asset\n\t\t#asset\n\n\tdef flag$\n\t\tself\n\n\tdef flagIf$\n\t\tself\n\n\tdef appendChild child\n\t\tself.childNodes.push(child)\n\t\tchild.parentNode = self\n\t\treturn child\n\n\tdef removeChild child\n\t\tlet idx = self.childNodes.indexOf(child)\n\t\tif idx >= 0\n\t\t\tself.childNodes.splice(idx, 1)\n\t\treturn self\n\n\tdef replaceChild newChild, oldChild\n\t\tlet idx = childNodes.indexOf(oldChild)\n\t\tif idx >= 0\n\t\t\tchildNodes.splice(idx,1,newChild)\n\t\t\tnewChild.parentNode = self\n\t\t# self.childNodes.push(child)\n\t\t# child.parentNode = self\n\t\treturn oldChild\n\n\tdef insertBefore node, before\n\t\tlet idx = self.childNodes.indexOf(before)\n\t\tself.childNodes.splice(idx, 0, node)\n\t\tself\n\n\tdef setAttribute key, value\n\t\tself.attributes[key] = value\n\t\tself\n\n\tdef setAttributeNS ns, key, value\n\t\tself.setAttribute(ns + ':' + key,value)\n\n\tdef getAttribute key\n\t\t# console.log \"getAttribute not implemented on server\"\n\t\tself.attributes ? self.attributes[key] : undefined\n\n\tdef getAttributeNS ns, key\n\t\tself.getAttribute(ns + ':' + key)\n\n\tdef removeAttribute key\n\t\tdelete self.attributes[key]\n\t\ttrue\n\n\t# noop\n\tdef addEventListener\n\t\tself\n\n\t# noop\n\tdef removeEventListener\n\t\tself\n\n\tdef resolve\n\t\tself\n\n\tset innerHTML value\n\t\t#innerHTML = value\n\n\tget innerHTML\n\t\tlet o = \"\"\n\t\tif #innerHTML\n\t\t\treturn #innerHTML\n\n\t\tif self.textContent != undefined\n\t\t\treturn escapeTextContent(self.textContent)\n\n\t\tfor item,i in self.childNodes\n\t\t\tif item isa String\n\t\t\t\to += escapeTextContent(item,self.nodeName)\n\t\t\telif item isa Number\n\t\t\t\to += \"\" + item\n\t\t\telif item\n\t\t\t\to += item.outerHTML\n\t\treturn o\n\n\tget outerHTML\n\t\tlet typ = self.nodeName\n\t\tlet nativeType = #htmlNodeName\n\t\tlet sel = \"{typ}\"\n\n\t\tif nativeType\n\t\t\tsel = \"{nativeType} is='{typ}'\"\n\t\t\ttyp = nativeType\n\n\t\tlet v\n\t\tlet cls = self.classList.toString!\n\n\t\tif self.dehydrate\n\t\t\tcls = (cls ? ('_ssr_ ' + cls) : '_ssr_')\n\t\t\tself.dehydrate!\n\n\t\tsel += \" id=\\\"{escapeAttributeValue(v)}\\\"\" if v = self.id\n\t\tsel += \" class=\\\"{escapeAttributeValue(cls)}\\\"\" if cls\n\n\t\tfor own key,value of self.attributes\n\t\t\tsel += \" {key}=\\\"{escapeAttributeValue(value)}\\\"\"\n\n\t\tif ##style\n\t\t\tsel += \" style=\\\"{escapeAttributeValue(##style.toString())}\\\"\"\n\n\t\tif voidElements[typ]\n\t\t\treturn \"<{sel}>\"\n\t\telse\n\t\t\treturn \"<{sel}>{self.innerHTML}</{typ}>\"\n\n\tget firstChild\n\t\tself.childNodes[0]\n\n\tget lastChild\n\t\tself.childNodes[self.childNodes.length - 1]\n\n\tget firstElementChild\n\t\tlet l = self.childNodes.length\n\t\tlet i = 0\n\t\twhile i < l\n\t\t\tlet el = self.childNodes[i++]\n\t\t\treturn el if el isa Element\n\t\treturn null\n\n\tget lastElementChild\n\t\tlet i = self.childNodes.length\n\t\twhile i > 0\n\t\t\tlet el = self.childNodes[--i]\n\t\t\treturn el if el isa Element\n\t\treturn null\n\n\tget className\n\t\tself.classList.toString()\n\n\tset className value\n\t\tself.classList.classes = (value or '').split(' ')\n\t\tself.classList.toString()\n\n\tdef log ...params\n\t\tconsole.log(...params)\n\n\t# inline in files or remove all together?\n\tdef text$ item\n\t\tself.textContent = item\n\t\tself\n\n\tdef #beforeReconcile\n\t\tself\n\n\tdef #afterReconcile\n\t\tself\n\n\tdef #afterVisit\n\t\tself.render() if self.render\n\t\t##visitContext = null if ##visitContext\n\t\treturn\n\n\tget #visitContext\n\t\t##visitContext ||= {}\n\n\tget flags\n\t\tunless $flags\n\t\t\t# unless deopted - we want to first cache the extflags\n\t\t\t$flags = new Flags(self)\n\t\t\tif flag$ == Element.prototype.flag$\n\t\t\t\tflags$ext = self.className\n\t\t\tflagDeopt$()\n\t\treturn $flags\n\n\tdef flag$ str\n\t\t# Potentially slow\n\t\tlet ns = flags$ns\n\t\tself.className = ns ? (ns + (flags$ext = str)) : (flags$ext = str)\n\t\treturn\n\n\tdef flagDeopt$\n\t\tself.flag$ = self.flagExt$ # do(str) self.flagSync$(flags$ext = str)\n\t\tself.flagSelf$ = do(str) self.flagSync$(flags$own = str)\n\t\treturn\n\n\tdef flagExt$ str\n\t\tself.flagSync$(flags$ext = str)\n\n\tdef flagSelf$ str\n\t\t# if a tag receives flags from inside <self> we need to\n\t\t# redefine the flag-methods to later use both\n\t\tflagDeopt$()\n\t\treturn flagSelf$(str)\n\n\tdef flagSync$\n\t\tself.className = ((flags$ns or '') + (flags$ext or '') + ' ' + (flags$own || '') + ' ' + ($flags or ''))\n\n\tdef set$ key, value\n\t\tlet desc = getDeepPropertyDescriptor(this,key,Element)\n\t\tif !desc or !desc.set\n\t\t\tsetAttribute(key,value)\n\t\telse\n\t\t\tself[key] = value\n\t\treturn\n\n# Element.prototype.appendChild$ = Element.prototype.appendChild\n# Element.prototype.removeChild$ = Element.prototype.removeChild\n# Element.prototype.insertBefore$ = Element.prototype.insertBefore\n# Element.prototype.replaceChild$ = Element.prototype.replaceChild\nElement.prototype.setns$ = Element.prototype.setAttributeNS\nElement.prototype.#isRichElement = yes\n\nexport class DocumentFragment < Element\n\tdef constructor\n\t\tsuper(null)\n\n\tget outerHTML\n\t\treturn self.innerHTML\n\nexport class ShadowRoot < DocumentFragment\n\n\tget outerHTML\n\t\treturn self.innerHTML\n\nexport class HTMLElement < Element\n\nexport class HTMLHtmlElement < HTMLElement\n\tprop hmr\n\n\tget scripts\n\t\t#scripts ||= []\n\n\tget outerHTML\n\t\t# watch for assets that are collected etc\n\t\t# console.log \"compiling outerhtml!\"\n\t\tlet prev = HtmlContext\n\t\tHtmlContext = self\n\t\tlet html = super.outerHTML\n\t\t# console.log 'has scripts',self.scripts.length\n\t\t# automatically include stylesheets?\n\t\t# add data-hmr yes or inject hmr script if hmr?\n\t\tlet sheets = new Set\n\t\tlet jsassets = []\n\t\tlet inject = []\n\n\t\tif global.IMBA_HMR_PATH and hmr !== false\n\t\t\tinject.push(\"<script src='/__hmr__.js'></script>\")\n\t\t\n\t\tif global.__vite_manifest__\n\t\t\t# in production\n\t\t\tfor script, i in self.scripts when src = global.__vite_manifest__[script.src]\n\t\t\t\tinject.push \"<script type=\\\"module\\\" src=\\\"{src.file}\\\"></script>\"\n\t\t\t\tfor css-file in src.css\n\t\t\t\t\tsheets.add url:css-file\n\t\telif global.__vite__\n\t\t\t# in development\n\t\t\tinject.push '''\n\t\t\t\t<link rel='stylesheet' id='imba-dev-ssr' href='.dev-ssr/all.css'>\n\t\t\t\t<script>addEventListener('DOMContentLoaded', (event) => {\n\t\t\t\t\tdocument.getElementById(\"imba-dev-ssr\").remove()\n\t\t\t\t});</script>\n\t\t\t'''\n\t\t# if we havent included any styles in the html at all\n\t\tunless self.styles\n\t\t\t# maybe only if there are no\n\t\t\tfor script in self.scripts\n\t\t\t\tlet src = script.src\n\t\t\t\tlet asset = manifest[src]\n\n\t\t\t\tif asset and asset.css\n\t\t\t\t\tsheets.add(asset.css)\n\t\t\t\t# add preloads?\n\n\t\t\tfor sheet of sheets\n\t\t\t\tinject.push(\"<link rel='stylesheet' href='{sheet.url}'>\")\n\t\t\t# now go through the stylesheets?\n\n\t\tHtmlContext = prev\n\n\t\tif inject.length\n\t\t\tlet pos = html.indexOf('</head>')\n\t\t\tpos = html.indexOf('<body>') if pos == -1\n\t\t\tpos = 0 if pos == -1\n\t\t\thtml = html.slice(0,pos) + '\\n' + inject.join('\\n') + '\\n' + html.slice(pos)\n\t\treturn \"<!DOCTYPE html>\" + html\n\nexport class HTMLSelectElement < HTMLElement\nexport class HTMLInputElement < HTMLElement\nexport class HTMLTextAreaElement < HTMLElement\nexport class HTMLButtonElement < HTMLElement\nexport class HTMLOptionElement < HTMLElement\n\nexport class HTMLScriptElement < HTMLElement\n\n\tget outerHTML\n\t\tif HtmlContext\n\t\t\t(HtmlContext.scripts||=[]).push(self)\n\t\t\tif global.__vite_manifest__ and global.__vite_manifest__[self.src]\n\t\t\t\t# The HTMLElement will take care of resolving the entry\n\t\t\t\t# to js and css files as defined in the manifest\n\t\t\t\treturn ''\n\n\t\tif #asset\n\t\t\tif #asset.js\n\t\t\t\t# add nomodule version as well?\n\t\t\t\tsetAttribute('src',#asset.js.url)\n\t\t\t\tsetAttribute('type','module')\n\t\t\telse\n\t\t\t\tconsole.warn \"could not find browser entrypoint for {#asset.path}\"\n\n\t\tsuper\n\nexport class HTMLLinkElement < HTMLElement\n\n\tget outerHTML\n\t\tif #asset\n\t\t\tlet rel = getAttribute('rel')\n\t\t\tlet href\n\t\t\tif rel == 'stylesheet'\n\t\t\t\tunless href = #asset.css.url\n\t\t\t\t\tconsole.warn \"could not find stylesheet for {#asset.path}\"\n\n\t\t\tif href\n\t\t\t\tsetAttribute('href',href)\n\t\tsuper\n\nexport class HTMLStyleElement < HTMLElement\n\n\tset src value\n\t\tif #src =? value\n\t\t\tyes\n\t\treturn\n\n\tget src\n\t\t#src\n\n\tget outerHTML\n\t\tif HtmlContext and src\n\t\t\t(HtmlContext.styles||=[]).push(self)\n\n\t\tif src\n\t\t\t# rewrite to a link? Too much magic?\n\t\t\tnodeName = 'link'\n\t\t\tsetAttribute('rel','stylesheet')\n\t\t\tsetAttribute('href',String(src))\n\t\t\tlet out = super\n\t\t\tnodeName = 'style'\n\t\t\treturn out\n\n\t\tsuper\n\n### Event ###\nexport class Event\nexport class UIEvent < Event\nexport class MouseEvent < UIEvent\nexport class PointerEvent < MouseEvent\nexport class KeyboardEvent < UIEvent\nexport class CustomEvent < Event\n\nconst descriptorCache = {}\n\ndef getDescriptor item,key,cache\n\tif !item\n\t\treturn cache[key] = null\n\n\tif cache[key] !== undefined\n\t\treturn cache[key]\n\n\tlet desc = Object.getOwnPropertyDescriptor(item,key)\n\n\tif desc !== undefined or item == SVGElement\n\t\treturn cache[key] = desc or null\n\n\tgetDescriptor(Reflect.getPrototypeOf(item),key,cache)\n\nexport class SVGElement < Element\n\n\tdef set$ key,value\n\t\tlet cache = descriptorCache[nodeName] ||= {}\n\t\tlet desc = getDescriptor(this,key,cache)\n\n\t\tif !desc or !desc.set\n\t\t\tsetAttribute(key,value)\n\t\telse\n\t\t\tself[key] = value\n\t\treturn\n\nexport class SVGSVGElement < SVGElement\n\n\tset src value\n\t\tif #src =? value\n\t\t\tif value and value.adoptNode\n\t\t\t\tvalue.adoptNode(self)\n\t\t\telif value and value.type == 'svg'\n\t\t\t\tif value.attributes\n\t\t\t\t\tfor own k,v of value.attributes\n\t\t\t\t\t\tsetAttribute(k,v)\n\t\t\t\tinnerHTML = value.content\n\t\treturn\n\nTYPES[''].klass = Element\nTYPES['HTML'].klass = HTMLElement\nTYPES['SVG'].klass = SVGElement\n\nMAP['html'].klass = HTMLHtmlElement\nMAP['select'].klass = HTMLSelectElement\nMAP['input'].klass = HTMLInputElement\nMAP['textarea'].klass = HTMLTextAreaElement\nMAP['button'].klass = HTMLButtonElement\nMAP['option'].klass = HTMLOptionElement\nMAP['script'].klass = HTMLScriptElement\nMAP['style'].klass = HTMLStyleElement\nMAP['link'].klass = HTMLLinkElement\n\nMAP['svg_svg'].klass = SVGSVGElement\n\ngetTagType('')\ngetTagType('HTML')\ngetTagType('SVG')\n\nexport def createElement name, parent, flags, text\n\t# struggling with this thing here\n\tlet el = doc.createElement(name)\n\tel.className = flags if flags\n\n\tif text !== null\n\t\tel.text$(text)\n\n\t# FIXME\n\tif parent and parent.#appendChild\n\t\tparent.#appendChild(el)\n\n\treturn el\n\nexport def createSVGElement name, parent, flags, text, ctx\n\tlet el = doc.createElementNS(\"http://www.w3.org/2000/svg\",name)\n\n\tif flags\n\t\tel.className = flags\n\n\tif parent and parent.#appendChild\n\t\tparent.#appendChild(el)\n\n\tif text\n\t\tel.textContent = text\n\treturn el\n\nexport def createComment text\n\tdoc.createComment(text)\n\nexport def createTextNode text\n\tdoc.createTextNode(text)\n\nexport def createFragment\n\tdoc.createDocumentFragment!\n\nexport def createComponent name, parent, flags, text, ctx\n\t# the component could have a different web-components name?\n\tlet el\n\n\tif typeof name != 'string'\n\n\t\tif name.prototype isa HTMLElement\n\t\t\tel = new name()\n\t\t\tel.nodeName = name.nodeName\n\n\t\telif name and name.nodeName\n\t\t\tname = name.nodeName\t\n\n\tel ||= doc.createElement(CustomTagToElementNames[name] or name)\n\tel.##parent = parent\n\tel.#__init__!\n\n\tif text !== null\n\t\tel.#getSlot('__').text$(text)\n\n\tif flags or el.flags$ns # or nsflag\n\t\tel.flag$(flags or '')\n\treturn el\n\nexport def createDynamic value, parent, flags, text\n\tif value == null or value == undefined\n\t\treturn createComment('')\n\telif value isa Node\n\t\t# check if node already exists somewhere else in dom\n\t\treturn value\t\t\n\telif typeof value == 'string' or (value and value.prototype isa Node)\n\t\treturn createComponent(value,parent,flags,text)\n\nexport def defineTag name, klass, options = {}\n\tTYPES[name] = CUSTOM_TYPES[name] = {\n\t\tidl: yes\n\t\tname: name\n\t\tklass: klass\n\t}\n\tlet componentName = klass.nodeName = name\n\tlet proto = klass.prototype\n\n\tif name.indexOf('-') == -1\n\t\tcomponentName = klass.nodeName = \"{name}-tag\"\n\t\tCustomTagToElementNames[name] = componentName\n\n\tif options.extends\n\t\tproto.#htmlNodeName = options.extends\n\n\tif options.cssns\n\t\tlet ns = (proto._ns_ || '') + ' ' + options.cssns\n\t\tproto._ns_ = ns.trim! + ' '\n\t\tproto.#cssns = options.cssns\n\n\tif options.cssid\n\t\tlet ids = (proto.flags$ns || '') + ' ' + options.cssid\n\t\tproto.#cssid = options.cssid\n\t\tproto.flags$ns = ids.trim! + ' '\n\n\treturn klass\n\nglobal.#dom = {\n\tLocation: Location\n\tDocument: Document\n}"],"names":[],"mappings":"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"},"dependencies":[],"meta":{"vite":{"lang":"js"}}}
\No newline at end of file