UNPKG

11 kBPlain TextView Raw
1{"code":"function iter$__(a){ let v; return a ? ((v=a.toIterable) ? v.call(a) : a) : a; };;\nfunction 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 $getSlot$ = Symbol.for('#getSlot'), $container$ = Symbol.for('#container'), $afterVisit$ = Symbol.for('#afterVisit'), $__init__$ = Symbol.for('#__init__'), $__patch__$ = Symbol.for('#__patch__'), $__initor__$ = Symbol.for('#__initor__'), $__inited__$ = Symbol.for('#__inited__'), $__hooks__$ = Symbol.for('#__hooks__'), $listeners$ = Symbol.for('#listeners'), $slot$ = Symbol.for('#slot'), $parent$ = Symbol.for('#parent'), $$container$ = Symbol.for('##container'), $domTarget$ = Symbol.for('#domTarget'), $insertInto$ = Symbol.for('#insertInto'), $removeFrom$ = Symbol.for('#removeFrom'), $teleport$ = Symbol.for('#teleport'), $self$ = Symbol.for('#self'), $target$ = Symbol.for('#target');\nvar $1 = Symbol();\n\n/*body*/\nimport {Element} from './core';\nimport {Component} from './component.imba';\nimport {createSlot} from './fragment';\n\nclass TeleportHook extends Component {\n\t[$__patch__$]($$ = {},fields = true){\n\t\tvar $2;\n\t\tsuper[$__patch__$] && super[$__patch__$]($$,fields);\n\t\t($2 = $$.to) !== undefined && (this.to = $2);\n\t\t\n\t}\n\tconstructor(){\n\t\tsuper(...arguments);\n\t\tsuper[$__init__$] || this[$__init__$]();this[$__initor__$]===$1 && (this[$__hooks__$]&&this[$__hooks__$].inited(this),this[$__inited__$] && this[$__inited__$]());\n\t}\n\t[$__init__$]($$ = null,deep = true,fields = true){\n\t\tdeep && super[$__init__$] && super[$__init__$](...arguments);\n\t\tthis.to = $$ ? $$.to : undefined;\n\t\t\n\t}\n\tbuild(){\n\t\t\n\t\tthis[$listeners$] = [];\n\t\tthis.win = globalThis;\n\t\treturn this.doc = globalThis.document;\n\t}\n\t\n\tsetup(){\n\t\t\n\t\treturn this.setAttribute('style',\"display:none !important;\");\n\t}\n\t\n\t[$getSlot$](name,ctx){\n\t\t\n\t\tthis[$slot$] ||= createSlot(0,this[$parent$]);\n\t\treturn this[$slot$];\n\t}\n\t\n\tget [$container$](){\n\t\t\n\t\t// FIXME the outer container is currently disabled\n\t\tif (!this[$$container$]) {\n\t\t\t\n\t\t\tlet classes = this.className;\n\t\t\tthis[$$container$] = this.doc.createElement('div');\n\t\t\tthis[$$container$].className = classes;\n\t\t\tthis[$$container$].style.cssText = \"display:contents !important;\";\n\t\t};\n\t\treturn this[$$container$];\n\t}\n\t\n\tget domTarget(){\n\t\t\n\t\treturn this[$domTarget$] ||= ((this.to instanceof Element) ? this.to : ((this.closest(this.to) || this.doc.querySelector(this.to))));\n\t}\n\t\n\tget eventTarget(){\n\t\t\n\t\treturn this.domTarget;\n\t}\n\t\n\tget style(){\n\t\t\n\t\treturn this[$$container$] ? this[$$container$].style : (super.style);\n\t}\n\t\n\tget classList(){\n\t\t\n\t\treturn this[$$container$] ? this[$$container$].classList : (super.classList);\n\t}\n\t\n\tget className(){\n\t\t\n\t\treturn this[$$container$] ? this[$$container$].className : (super.className);\n\t}\n\t\n\tset className(val){\n\t\t\n\t\tthis[$$container$] ? ((this[$$container$].className = val)) : (super.className = val);\n\t}\n\t\n\t[$afterVisit$](){\n\t\t\n\t\tif (this.mountedΦ && this[$slot$] && !(this[$slot$].parentNode)) {\n\t\t\t\n\t\t\treturn this[$slot$][$insertInto$](this.target);\n\t\t};\n\t}\n\t\n\tmount(){\n\t\t\n\t\tfor (let $3 = 0, $4 = iter$__(this[$listeners$]), $5 = $4.length; $3 < $5; $3++) {\n\t\t\tlet [name,handler,o] = $4[$3];\n\t\t\tthis.eventTarget.addEventListener(name,handler,o);\n\t\t};\n\t\t\n\t\tlet target = this.domTarget;\n\t\t\n\t\tif (this[$slot$]) {\n\t\t\t\n\t\t\tthis[$slot$][$insertInto$](target);\n\t\t};\n\t\treturn this;\n\t}\n\t\n\tunmount(){\n\t\t\n\t\tfor (let $6 = 0, $7 = iter$__(this[$listeners$]), $8 = $7.length; $6 < $8; $6++) {\n\t\t\tlet [name,handler,o] = $7[$6];\n\t\t\tthis.eventTarget.removeEventListener(name,handler,o);\n\t\t};\n\t\t\n\t\tif (this[$slot$]) {\n\t\t\t\n\t\t\tthis[$slot$][$removeFrom$](this.domTarget);\n\t\t};\n\t\t\n\t\tthis[$domTarget$] = null;\n\t\treturn this;\n\t}\n\t\n\taddEventListener(name,handler,o = {}){\n\t\t\n\t\thandler[$teleport$] = this;\n\t\thandler[$self$] = this;\n\t\t\n\t\tthis[$listeners$].push([name,handler,o]);\n\t\tif (this.mountedΦ && this.eventTarget?.addEventListener) {\n\t\t\t\n\t\t\treturn this.eventTarget.addEventListener(name,handler,o);\n\t\t};\n\t}\n\tstatic {\n\t\tthis.prototype[$__initor__$] = $1;defineName$__(this,'TeleportHook');inheritClass$__(this);}\n};\n\nclass GlobalHook extends TeleportHook {\n\t\n\t\n\tget domTarget(){\n\t\t\n\t\treturn this.doc.body;\n\t}\n\t\n\tget eventTarget(){\n\t\t\n\t\treturn this.win;\n\t}\n\t\n\taddEventListener(name,handler,o = {}){\n\t\t\n\t\thandler[$target$] = this.domTarget.parentNode;\n\t\treturn super.addEventListener(...arguments);\n\t}\n\t\n\ton$resize(mods,scope,handler,o){\n\t\t\n\t\tthis.addEventListener('resize',handler,o);\n\t\treturn handler;\n\t}\n\tstatic {\n\t\tdefineName$__(this,'GlobalHook');inheritClass$__(this);}\n};\n\nif (globalThis.customElements) {\n\t\n\tglobalThis.customElements.define('i-teleport',TeleportHook);\n\tglobalThis.customElements.define('i-global',GlobalHook);\n};\n\nexport function use_dom_teleport(){\n\t\n\tglobalThis.imba.uses_dom_teleport = true;\n\treturn true;\n};\n","map":{"version":3,"file":"teleport.js","sourceRoot":"","sources":["/Users/abdellah/workspace/scrimba/imba/packages/imba/src/imba/dom/teleport.imba"],"sourcesContent":["import {Element} from './core'\nimport {Component} from './component.imba'\nimport {createSlot} from './fragment'\n\nclass TeleportHook < Component\n\tprop to\n\n\tdef build\n\t\t#listeners = []\n\t\twin = global\n\t\tdoc = global.document\n\n\tdef setup\n\t\tsetAttribute('style',\"display:none !important;\")\n\n\tdef #getSlot name, ctx\n\t\t#slot ||= createSlot(0,#parent)\n\t\treturn #slot\n\n\tget #container\n\t\t# FIXME the outer container is currently disabled\n\t\tunless ##container\n\t\t\tlet classes = self.className\n\t\t\t##container = doc.createElement('div')\n\t\t\t##container.className = classes\n\t\t\t##container.style.cssText = \"display:contents !important;\"\n\t\treturn ##container\n\n\tget domTarget\n\t\t#domTarget ||= (to isa Element ? to : (self.closest(to) or doc.querySelector(to)))\n\n\tget eventTarget\n\t\tdomTarget\n\n\tget style\n\t\t##container ? ##container.style : super\n\n\tget classList\n\t\t##container ? ##container.classList : super\n\n\tget className\n\t\t##container ? ##container.className : super\n\n\tset className val\n\t\t##container ? (##container.className=val) : super\n\n\tdef #afterVisit\n\t\tif mounted? and #slot and !#slot.parentNode\n\t\t\t#slot.#insertInto(target)\n\n\tdef mount\n\t\tfor [name,handler,o] in #listeners\n\t\t\teventTarget.addEventListener(name,handler,o)\n\n\t\tlet target = domTarget\n\n\t\tif #slot\n\t\t\t#slot.#insertInto(target)\n\t\treturn self\n\n\tdef unmount\n\t\tfor [name,handler,o] in #listeners\n\t\t\teventTarget.removeEventListener(name,handler,o)\n\n\t\tif #slot\n\t\t\t#slot.#removeFrom(domTarget)\n\n\t\t#domTarget = null\n\t\treturn self\n\n\tdef addEventListener name, handler, o = {}\n\t\thandler.#teleport = self\n\t\thandler.#self = self\n\n\t\t#listeners.push([name,handler,o])\n\t\tif mounted? and eventTarget..addEventListener\n\t\t\teventTarget.addEventListener(name,handler,o)\n\nclass GlobalHook < TeleportHook\n\n\tget domTarget\n\t\tdoc.body\n\n\tget eventTarget\n\t\twin\n\n\tdef addEventListener name, handler, o = {}\n\t\thandler.#target = domTarget.parentNode\n\t\tsuper\n\n\tdef on$resize mods,scope, handler, o\n\t\tself.addEventListener('resize',handler,o)\n\t\treturn handler\n\nif global.customElements\n\tglobal.customElements.define('i-teleport',TeleportHook)\n\tglobal.customElements.define('i-global',GlobalHook)\n\nexport def use_dom_teleport\n\tglobal.imba.uses_dom_teleport = yes\n\tyes\n"],"names":[],"mappings":"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"},"dependencies":[],"meta":{"vite":{"lang":"js"}}}
\No newline at end of file