UNPKG

24.7 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};\nconst $__init__$ = Symbol.for('#__init__'), $__patch__$ = Symbol.for('#__patch__'), $$inited$ = Symbol.for('##inited'), $afterVisit$ = Symbol.for('#afterVisit'), $beforeReconcile$ = Symbol.for('#beforeReconcile'), $afterReconcile$ = Symbol.for('#afterReconcile'), $__hooks__$ = Symbol.for('#__hooks__'), $autorender$ = Symbol.for('#autorender'), $$visitContext$ = Symbol.for('##visitContext');\n\n/*body*/\n// imba$stdlib=1\n\nimport {Node,HTMLElement,CUSTOM_TYPES} from './core';\nimport {createLiveFragment,createSlot} from './fragment';\nimport {scheduler} from '../scheduler';\n\nimport {renderer} from './context';\nimport {emit} from '../utils';\n\nconst hydrator = new class {\n\t[$__patch__$]($$ = {},fields = true){\n\t\tvar $1;\n\t\t($1 = $$.items) !== undefined && (this.items = $1);\n\t\t($1 = $$.current) !== undefined && (this.current = $1);\n\t\t($1 = $$.lastQueued) !== undefined && (this.lastQueued = $1);\n\t\t($1 = $$.tests) !== undefined && (this.tests = $1);\n\t\t\n\t}\n\tconstructor($$ = null){\n\t\tthis[$__init__$]($$);\n\t}\n\t[$__init__$]($$ = null,deep = true,fields = true){\n\t\tvar $2;\n\t\tthis.items = ($$ && ($2 = $$.items) !== undefined) ? ($2) : [];\n\t\tthis.current = ($$ && ($2 = $$.current) !== undefined) ? ($2) : null;\n\t\tthis.lastQueued = ($$ && ($2 = $$.lastQueued) !== undefined) ? ($2) : null;\n\t\tthis.tests = ($$ && ($2 = $$.tests) !== undefined) ? ($2) : 0;\n\t\t\n\t}\n\tflush(){\n\t\t\n\t\tlet item = null;\n\t\t\n\t\twhile (item = this.items.shift()){\n\t\t\t\n\t\t\tif (!(item.parentNode) || item.hydratedΦ) { continue; };\n\t\t\t// Mark as inited to stop connectedCallback from early exit\n\t\t\tlet prev = this.current;\n\t\t\tthis.current = item;\n\t\t\titem.__F |= 1024;\n\t\t\titem.connectedCallback();\n\t\t\tthis.current = prev;\n\t\t};\n\t\treturn;\n\t}\n\t\n\tqueue(item){\n\t\tvar self = this;\n\t\t\n\t\t// let len = items.push(item)\n\t\tlet len = this.items.length;\n\t\tlet idx = 0;\n\t\tlet prev = this.lastQueued;\n\t\tthis.lastQueued = item;\n\t\t\n\t\tlet BEFORE = Node.DOCUMENT_POSITION_PRECEDING;\n\t\tlet AFTER = Node.DOCUMENT_POSITION_FOLLOWING;\n\t\t\n\t\tif (len) {\n\t\t\t\n\t\t\tlet prevIndex = this.items.indexOf(prev);\n\t\t\tlet index = prevIndex;\n\t\t\t\n\t\t\tlet compare = function(a,b) {\n\t\t\t\t\n\t\t\t\tself.tests++;\n\t\t\t\treturn a.compareDocumentPosition(b);\n\t\t\t};\n\t\t\t\n\t\t\tif (prevIndex == -1 || prev.nodeName != item.nodeName) {\n\t\t\t\t\n\t\t\t\tindex = prevIndex = 0;\n\t\t\t};\n\t\t\t\n\t\t\tlet curr = this.items[index];\n\t\t\t\n\t\t\twhile (curr && compare(curr,item) & AFTER){\n\t\t\t\t\n\t\t\t\tcurr = this.items[++index];\n\t\t\t};\n\t\t\t\n\t\t\tif (index != prevIndex) {\n\t\t\t\t\n\t\t\t\tcurr ? this.items.splice(index,0,item) : this.items.push(item);\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\twhile (curr && compare(curr,item) & BEFORE){\n\t\t\t\t\t\n\t\t\t\t\tcurr = this.items[--index];\n\t\t\t\t};\n\t\t\t\tif (index != prevIndex) {\n\t\t\t\t\t\n\t\t\t\t\tcurr ? this.items.splice(index + 1,0,item) : this.items.unshift(item);\n\t\t\t\t};\n\t\t\t};\n\t\t} else {\n\t\t\t\n\t\t\tthis.items.push(item);\n\t\t\tif (!(this.current)) { globalThis.queueMicrotask(this.flush.bind(this)) };\n\t\t};\n\t\t\n\t\treturn;\n\t}\n};\n\nexport function hydrate(){\n\t\n\treturn hydrator.flush();\n};\n\nexport class Component extends HTMLElement {\n\t\n\tconstructor(){\n\t\t\n\t\tsuper();\n\t\tif (this.flags$ns) {\n\t\t\t\n\t\t\t// explain?\n\t\t\tthis.flag$ = this.flagExt$;\n\t\t};\n\t\t\n\t\tthis.setup$();\n\t\tthis.build();\n\t}\n\t\n\tsetup$(){\n\t\t\n\t\tthis.__slots = {};\n\t\treturn this.__F = 0;\n\t}\n\t\n\t[$__init__$](){\n\t\t\n\t\tthis.__F |= (1 | 2);\n\t\treturn this;\n\t}\n\t\n\t[$$inited$](){\n\t\t\n\t\tif (this[$__hooks__$]) { return this[$__hooks__$].inited(this) };\n\t}\n\t\n\tflag$(str){\n\t\t\n\t\t\n\t\tthis.className = this.flags$ext = str;\n\t\treturn;\n\t}\n\t\n\t// called immediately after construction\n\tbuild(){\n\t\t\n\t\treturn this;\n\t}\n\t\n\t// called before the first mount\n\tawaken(){\n\t\t\n\t\treturn this;\n\t}\n\t\n\t// called when element is attached to document\n\tmount(){\n\t\t\n\t\treturn this;\n\t}\n\t\n\t// called when element is detached from document\n\tunmount(){\n\t\t\n\t\treturn this;\n\t}\n\t\n\t// called after render\n\trendered(){\n\t\t\n\t\treturn this;\n\t}\n\t\n\t// called before element is stringified on server (SSR)\n\tdehydrate(){\n\t\t\n\t\treturn this;\n\t}\n\t\n\t// called before awaken if element was not initially created via imba - on the client\n\thydrate(){\n\t\t\n\t\t// should only autoschedule if we are not awakening inside a parent context that\n\t\tthis.autoschedule = true;\n\t\treturn this;\n\t}\n\t\n\ttick(){\n\t\t\n\t\treturn this.commit();\n\t}\n\t\n\t// called when component is (re-)rendered from its parent\n\tvisit(){\n\t\t\n\t\treturn this.commit();\n\t}\n\t\n\t// Wrapper for rendering. Default implementation\n\tcommit(){\n\t\t\n\t\tif (!(this.renderΦ)) {\n\t\t\t\n\t\t\tthis.__F |= 8192;\n\t\t\treturn this;\n\t\t};\n\t\tthis.__F |= 256;\n\t\tthis.render && this.render();\n\t\tthis.rendered();\n\t\treturn this.__F = (this.__F | 512) & ~256 & ~8192;\n\t}\n\t\n\tget autoschedule(){\n\t\t\n\t\treturn (this.__F & 64) != 0;\n\t}\n\t\n\tset autoschedule(value){\n\t\t\n\t\tvalue ? ((this.__F |= 64)) : ((this.__F &= ~64));\n\t}\n\t\n\t/**\n\t\n\t\tNaming and accepted values will likely change - experimental\n\t\n\t\tyes = render on events / imba.commit\n\t\tno = force manual render\n\t\tnull / undefined = render via parent\n\t\t(n)s = render every n s\n\t\t(n)ms = render every n ms\n\t\t(n)fps = render n times per second\n\t\t\n\t*/\n\tset autorender(value){\n\t\t\n\t\tlet o = this[$autorender$] ||= {};\n\t\to.value = value;\n\t\tif (this.mountedΦ) { scheduler.schedule(this,o) };\n\t\treturn;\n\t}\n\t\n\tget renderΦ(){\n\t\t\n\t\treturn !(this.suspendedΦ);\n\t}\n\t\n\tget mountingΦ(){\n\t\t\n\t\treturn (this.__F & 16) != 0;\n\t}\n\t\n\tget mountedΦ(){\n\t\t\n\t\treturn (this.__F & 32) != 0;\n\t}\n\t\n\tget awakenedΦ(){\n\t\t\n\t\treturn (this.__F & 8) != 0;\n\t}\n\t\n\tget renderedΦ(){\n\t\t\n\t\treturn (this.__F & 512) != 0;\n\t}\n\t\n\tget suspendedΦ(){\n\t\t\n\t\treturn (this.__F & 4096) != 0;\n\t}\n\t\n\tget renderingΦ(){\n\t\t\n\t\treturn (this.__F & 256) != 0;\n\t}\n\t\n\tget scheduledΦ(){\n\t\t\n\t\treturn (this.__F & 128) != 0;\n\t}\n\t\n\tget hydratedΦ(){\n\t\t\n\t\treturn (this.__F & 2) != 0;\n\t}\n\t\n\tget ssrΦ(){\n\t\t\n\t\treturn (this.__F & 1024) != 0;\n\t}\n\t\n\tschedule(){\n\t\t\n\t\tscheduler.on('commit',this);\n\t\tthis.__F |= 128;\n\t\treturn this;\n\t}\n\t\n\tunschedule(){\n\t\t\n\t\tscheduler.un('commit',this);\n\t\tthis.__F &= ~128;\n\t\treturn this;\n\t}\n\t\n\tasync suspend(cb = null){\n\t\t\n\t\tlet val = this.flags.incr('@suspended');\n\t\tthis.__F |= 4096;\n\t\tif (cb instanceof Function) {\n\t\t\t\n\t\t\tawait cb();\n\t\t\tthis.unsuspend();\n\t\t};\n\t\treturn this;\n\t}\n\t\n\tunsuspend(){\n\t\t\n\t\tlet val = this.flags.decr('@suspended');\n\t\tif (val == 0) {\n\t\t\t\n\t\t\tthis.__F &= ~4096;\n\t\t\tthis.commit();;\n\t\t};\n\t\t\n\t\treturn this;\n\t}\n\t\n\t[$afterVisit$](){\n\t\t\n\t\tthis.visit();\n\t\tif (this[$$visitContext$]) { return this[$$visitContext$] = null };\n\t}\n\t\n\t[$beforeReconcile$](){\n\t\t\n\t\tif (this.__F & 1024) {\n\t\t\t\n\t\t\tthis.__F = this.__F & ~1024;\n\t\t\t// remove flag\n\t\t\t// not if ssr?!\n\t\t\tthis.classList.remove('_ssr_');\n\t\t\tif (this.flags$ext && this.flags$ext.indexOf('_ssr_') == 0) {\n\t\t\t\t\n\t\t\t\tthis.flags$ext = this.flags$ext.slice(5);\n\t\t\t};\n\t\t\t// TODO document this behaviour\n\t\t\tif (!(this.__F & 512)) { this.innerHTML = '' };\n\t\t};\n\t\t\n\t\tif (globalThis.DEBUG_IMBA) {\n\t\t\t\n\t\t\trenderer.push(this);\n\t\t};\n\t\tif (this[$$visitContext$]) { this[$$visitContext$] = null };\n\t\treturn this;\n\t}\n\t\n\t[$afterReconcile$](){\n\t\t\n\t\tif (globalThis.DEBUG_IMBA) {\n\t\t\t\n\t\t\trenderer.pop(this);\n\t\t};\n\t\treturn this;\n\t}\n\t\n\tconnectedCallback(){\n\t\t\n\t\tlet flags = this.__F;\n\t\tlet inited = flags & 1;\n\t\tlet awakened = flags & 8;\n\t\t\n\t\tif (!(inited) && !((flags & 1024))) {\n\t\t\t\n\t\t\thydrator.queue(this);\n\t\t\treturn;\n\t\t};\n\t\t\n\t\t// return if we are already in the process of mounting - or have mounted\n\t\tif (flags & (16 | 32)) {\n\t\t\t\n\t\t\treturn;\n\t\t};\n\t\t\n\t\tthis.__F |= 16;\n\t\t\n\t\tif (!(inited)) {\n\t\t\t\n\t\t\tthis[$__init__$]();\n\t\t};\n\t\t\n\t\tif (!(flags & 2)) {\n\t\t\t\n\t\t\t// clearly seems wrong?\n\t\t\tthis.flags$ext = this.className;\n\t\t\tthis.__F |= 2;\n\t\t\tthis.hydrate();\n\t\t\tthis.commit();\n\t\t};\n\t\t\n\t\tif (!(awakened)) {\n\t\t\t\n\t\t\tthis.awaken();\n\t\t\tthis.__F |= 8;\n\t\t};\n\t\t\n\t\temit(this,'mount');\n\t\tlet res = this.mount();\n\t\tif (res && (res.then instanceof Function)) {\n\t\t\t\n\t\t\tres.then(scheduler.commit);\n\t\t};\n\t\t\n\t\tflags = this.__F = (this.__F | 32) & ~16;\n\t\t\n\t\tif (flags & 64) {\n\t\t\t\n\t\t\tthis.schedule();\n\t\t};\n\t\t\n\t\tif (this[$autorender$]) { scheduler.schedule(this,this[$autorender$]) };\n\t\treturn this;\n\t}\n\t\n\tdisconnectedCallback(){\n\t\t\n\t\tthis.__F = this.__F & (~32 & ~16);\n\t\tif (this.__F & 128) {\n\t\t\t\n\t\t\t// trigger potential unschedule listeners\n\t\t\tthis.unschedule();\n\t\t};\n\t\temit(this,'unmount');\n\t\tthis.unmount();\n\t\tif (this[$autorender$]) { return scheduler.unschedule(this,this[$autorender$]) };\n\t}\n\tstatic {\n\t\tdefineName$__(this,'Component');inheritClass$__(this);}\n};\n\n// Backwards compatibility\nexport const ImbaElement = Component;\n","map":{"version":3,"file":"component.js","sourceRoot":"","sources":["/Users/abdellah/workspace/scrimba/imba/packages/imba/src/imba/dom/component.imba"],"sourcesContent":["# imba$stdlib=1\n\nimport {Node,HTMLElement,CUSTOM_TYPES} from './core'\nimport {createLiveFragment,createSlot} from './fragment'\nimport {scheduler} from '../scheduler'\n\nimport {renderer} from './context'\nimport {emit} from '../utils'\n\nconst hydrator = new class\n\titems = []\n\tcurrent = null\n\tlastQueued = null\n\ttests = 0\n\n\tdef flush\n\t\tlet item = null\n\n\t\twhile item = items.shift!\n\t\t\tcontinue if !item.parentNode or item.hydrated?\n\t\t\t# Mark as inited to stop connectedCallback from early exit\n\t\t\tlet prev = current\n\t\t\tcurrent = item\n\t\t\titem.__F |= $EL_SSR$\n\t\t\titem.connectedCallback!\n\t\t\tcurrent = prev\n\t\treturn\n\n\tdef queue item\n\t\t# let len = items.push(item)\n\t\tlet len = items.length\n\t\tlet idx = 0\n\t\tlet prev = lastQueued\n\t\tlastQueued = item\n\n\t\tlet BEFORE = Node.DOCUMENT_POSITION_PRECEDING\n\t\tlet AFTER = Node.DOCUMENT_POSITION_FOLLOWING\n\n\t\tif len\n\t\t\tlet prevIndex = items.indexOf(prev)\n\t\t\tlet index = prevIndex\n\n\t\t\tlet compare = do(a,b)\n\t\t\t\ttests++\n\t\t\t\ta.compareDocumentPosition(b)\n\n\t\t\tif prevIndex == -1 or prev.nodeName != item.nodeName\n\t\t\t\tindex = prevIndex = 0\n\n\t\t\tlet curr = items[index]\n\n\t\t\twhile curr and compare(curr,item) & AFTER\n\t\t\t\tcurr = items[++index]\n\n\t\t\tif index != prevIndex\n\t\t\t\tcurr ? items.splice(index,0,item) : items.push(item)\n\t\t\telse\n\t\t\t\twhile curr and compare(curr,item) & BEFORE\n\t\t\t\t\tcurr = items[--index]\n\t\t\t\tif index != prevIndex\n\t\t\t\t\tcurr ? items.splice(index + 1,0,item) : items.unshift(item)\n\t\telse\n\t\t\titems.push(item)\n\t\t\tglobal.queueMicrotask(flush.bind(self)) if !current\n\n\t\treturn\n\nexport def hydrate\n\thydrator.flush!\n\nexport class Component < HTMLElement\n\tdef constructor\n\t\tsuper()\n\t\tif flags$ns\n\t\t\t# explain?\n\t\t\tflag$ = flagExt$\n\n\t\tsetup$()\n\t\tbuild()\n\n\tdef setup$\n\t\t__slots = {}\n\t\t__F = 0\n\n\tdef #__init__\n\t\t__F |= ($EL_INITED$ | $EL_HYDRATED$)\n\t\tself\n\n\tdef ##inited\n\t\t#__hooks__.inited(self) if #__hooks__\n\n\tdef flag$ str\n\n\t\tself.className = flags$ext = str\n\t\treturn\n\n\t# called immediately after construction\n\tdef build\n\t\tself\n\n\t# called before the first mount\n\tdef awaken\n\t\tself\n\n\t# called when element is attached to document\n\tdef mount\n\t\tself\n\n\t# called when element is detached from document\n\tdef unmount\n\t\tself\n\n\t# called after render\n\tdef rendered\n\t\tself\n\n\t# called before element is stringified on server (SSR)\n\tdef dehydrate\n\t\tself\n\n\t# called before awaken if element was not initially created via imba - on the client\n\tdef hydrate\n\t\t# should only autoschedule if we are not awakening inside a parent context that\n\t\tautoschedule = yes\n\t\tself\n\n\tdef tick\n\t\tcommit()\n\n\t# called when component is (re-)rendered from its parent\n\tdef visit\n\t\tcommit()\n\n\t# Wrapper for rendering. Default implementation\n\tdef commit\n\t\tunless render?\n\t\t\t__F |= $EL_UNRENDERED$\n\t\t\treturn self\n\t\t__F |= $EL_RENDERING$\n\t\trender && render()\n\t\trendered()\n\t\t__F = (__F | $EL_RENDERED$) & ~$EL_RENDERING$ & ~$EL_UNRENDERED$\n\n\tget autoschedule\n\t\t(__F & $EL_SCHEDULE$) != 0\n\n\tset autoschedule value\n\t\tvalue ? (__F |= $EL_SCHEDULE$) : (__F &= ~$EL_SCHEDULE$)\n\n\t###\n\tNaming and accepted values will likely change - experimental\n\n\tyes = render on events / imba.commit\n\tno = force manual render\n\tnull / undefined = render via parent\n\t(n)s = render every n s\n\t(n)ms = render every n ms\n\t(n)fps = render n times per second\n\t###\n\tset autorender value\n\t\tlet o = #autorender ||= {}\n\t\to.value = value\n\t\tscheduler.schedule(self,o) if mounted?\n\t\treturn\n\n\tget render?\n\t\treturn !suspended?\n\n\tget mounting?\n\t\treturn (__F & $EL_MOUNTING$) != 0\n\n\tget mounted?\n\t\treturn (__F & $EL_MOUNTED$) != 0\n\n\tget awakened?\n\t\treturn (__F & $EL_AWAKENED$) != 0\n\n\tget rendered?\n\t\treturn (__F & $EL_RENDERED$) != 0\n\n\tget suspended?\n\t\treturn (__F & $EL_SUSPENDED$) != 0\n\n\tget rendering?\n\t\treturn (__F & $EL_RENDERING$) != 0\n\n\tget scheduled?\n\t\treturn (__F & $EL_SCHEDULED$) != 0\n\n\tget hydrated?\n\t\treturn (__F & $EL_HYDRATED$) != 0\n\n\tget ssr?\n\t\treturn (__F & $EL_SSR$) != 0\n\n\tdef schedule\n\t\tscheduler.on('commit',self)\n\t\t__F |= $EL_SCHEDULED$\n\t\treturn self\n\n\tdef unschedule\n\t\tscheduler.un('commit',self)\n\t\t__F &= ~$EL_SCHEDULED$\n\t\treturn self\n\n\tdef suspend cb = null\n\t\tlet val = flags.incr('@suspended')\n\t\t__F |= $EL_SUSPENDED$\n\t\tif cb isa Function\n\t\t\tawait cb()\n\t\t\tunsuspend!\n\t\tself\n\n\tdef unsuspend\n\t\tlet val = flags.decr('@suspended')\n\t\tif val == 0\n\t\t\t__F &= ~$EL_SUSPENDED$\n\t\t\tcommit! if $EL_UNRENDERED$\n\n\t\tself\n\n\tdef #afterVisit\n\t\tvisit()\n\t\t##visitContext = null if ##visitContext\n\n\tdef #beforeReconcile\n\t\tif __F & $EL_SSR$\n\t\t\t__F = __F & ~$EL_SSR$\n\t\t\t# remove flag\n\t\t\t# not if ssr?!\n\t\t\tclassList.remove('_ssr_')\n\t\t\tif flags$ext and flags$ext.indexOf('_ssr_') == 0\n\t\t\t\tflags$ext = flags$ext.slice(5)\n\t\t\t# TODO document this behaviour\n\t\t\tinnerHTML = '' unless __F & $EL_RENDERED$\n\n\t\tif global.DEBUG_IMBA\n\t\t\trenderer.push(self)\n\t\t##visitContext = null if ##visitContext\n\t\tself\n\n\tdef #afterReconcile\n\t\tif global.DEBUG_IMBA\n\t\t\trenderer.pop(self)\n\t\tself\n\n\tdef connectedCallback\n\t\tlet flags = __F\n\t\tlet inited = flags & $EL_INITED$\n\t\tlet awakened = flags & $EL_AWAKENED$\n\n\t\tif !inited and !(flags & $EL_SSR$)\n\t\t\thydrator.queue(self)\n\t\t\treturn\n\n\t\t# return if we are already in the process of mounting - or have mounted\n\t\tif flags & ($EL_MOUNTING$ | $EL_MOUNTED$)\n\t\t\treturn\n\n\t\t__F |= $EL_MOUNTING$\n\n\t\tunless inited\n\t\t\t#__init__!\n\n\t\tunless flags & $EL_HYDRATED$\n\t\t\t# clearly seems wrong?\n\t\t\tflags$ext = className\n\t\t\t__F |= $EL_HYDRATED$\n\t\t\tself.hydrate()\n\t\t\tcommit()\n\n\t\tunless awakened\n\t\t\tawaken()\n\t\t\t__F |= $EL_AWAKENED$\n\n\t\temit(self,'mount')\n\t\tlet res = mount()\n\t\tif res && res.then isa Function\n\t\t\tres.then(scheduler.commit)\n\n\t\tflags = __F = (__F | $EL_MOUNTED$) & ~$EL_MOUNTING$\n\n\t\tif flags & $EL_SCHEDULE$\n\t\t\tschedule()\n\n\t\tscheduler.schedule(self,#autorender) if #autorender\n\t\treturn this\n\n\tdef disconnectedCallback\n\t\t__F = __F & (~$EL_MOUNTED$ & ~$EL_MOUNTING$)\n\t\tif __F & $EL_SCHEDULED$\n\t\t\t# trigger potential unschedule listeners\n\t\t\tunschedule()\n\t\temit(self,'unmount')\n\t\tunmount()\n\t\tscheduler.unschedule(self,#autorender) if #autorender\n\n# Backwards compatibility\nexport const ImbaElement = Component"],"names":[],"mappings":"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"},"dependencies":[],"meta":{"vite":{"lang":"js"}}}
\No newline at end of file