{"version":3,"file":"imm_legacy.mjs","sources":["../code/imm_utils.mjs","../code/imm_async.mjs","../code/imm_dom_core.mjs","../code/imm_dom.mjs","../code/imm_legacy.mjs"],"sourcesContent":["export const\n _I_ = x=>x,\n _dash_name = s => s?.replace(/_/g, '-'),\n _prop_name = s => s?.replace(/-/g, '_'),\n _pairs = o => Object.entries(o),\n _is_obj = a => 'object' === typeof a && null !== a,\n _is_iter = a => _is_obj(a) && Symbol.iterator in a,\n _is_attr_dict = a => _is_obj(a)\n && !a.nodeType && !a.toDOM\n && !_is_iter(a)\n\nexport const\n _imm_cp = (tgt, src, key) =>\n Object.assign(tgt, key ? {[key]:src} : src),\n _ce = /* #__PURE__ */ _I_(customElements),\n\n _el_on = (el, ...z) => ( el.addEventListener(...z), el ),\n _el_get = (el,k) => (k=el.getAttribute(k), ''==k || k),\n _el_has = (el,k) => el.hasAttribute(k),\n _el_set = (el,k,v) => (\n (null == v || false === v\n ? el.removeAttribute(k) // false or nullish is semantically removeAttribute()\n : _is_obj(v) == {style: 1}[k] ? _imm_cp(el[k], v) // use object assign for known keys: style; note true==1 but false!=undefined\n : el.setAttribute(k, true === v ? '' : v)\n ), 1)\n\n","\nexport function imm_defer_ctx(as_res=((...args) => args)) {\n let y,n,_pset = (a,b) => { y=a, n=b }\n return p => (p = new Promise(_pset), as_res(p, y, n))\n}\n\nexport const imm_defer_v = /* #__PURE__ */\n imm_defer_ctx()\n\nexport const imm_defer = /* #__PURE__ */\n imm_defer_ctx((p,y,n) =>\n ({promise: p, resolve: y, reject: n}))\n\n","import {\n _dash_name, _pairs,\n _is_attr_dict, _is_iter,\n _el_set, _el_on, _imm_cp\n} from './imm_utils.mjs'\nexport {\n _imm_cp\n} from './imm_utils.mjs'\n\n\n// complex expressions to avoid 'if', 'else', and 'return' keywords\nconst\n // .reduce(_imm_aop, el) interpretation of imm attribute dictionary semantics\n _imm_aop = (el,[k,v],k0,attrs) => (\n k0 = k[0]\n , (\n '$' === k0 // children to prepend\n ? (attrs.z ||= []).push(v)\n\n : '=' === k0 // direct property assignment\n ? _imm_cp(el, v, k.split('=')[1])\n\n : '@' === k0 // hook callback\n ? v(el, k)\n\n : v?.call // event handlers\n ? _el_on(el, k, v, v.opt)\n\n : _el_set(el, _dash_name(k), v) // attribute values\n ), el),\n\n // .flatMap(_imm_cf) interpretation of imm child elements and iterables\n _imm_cf = c => (\n // allow opt-in coersion\n c &&= c.toDOM?.(c) || c.valueOf(c),\n\n null == c ? [] // filter nullish\n\n : c.nodeType ? [c] // pass-through nodes\n\n : _is_iter(c) ? _imm_b(c) // recursively reduce arrays and iterables\n\n : ''+c ) // otherwise force toString()\n\n\n\nexport function imm(el, ...args) {\n let len=args.length, attrs=args[0]\n\n if (0 < len && el?.nodeType) {\n if (_is_attr_dict(attrs)) {\n // replace attrs with null in args\n 1 === len ? args = null : args[0] = null\n\n attrs = _pairs(attrs)\n attrs.reduce(_imm_aop, el)\n\n // prepend children found in attrs.z\n attrs.z && el.prepend(... _imm_b(attrs.z))\n }\n\n // append arguments as children\n args && el.append(... _imm_b(args))\n }\n return el\n}\n\n\nexport const\n // clear all inner content (text and html)\n _imm0 = el => (el.textContent = '', el),\n imm_set = (el, ...args) => imm(_imm0(el), ...args),\n\n _imm_b = iterable => [... iterable].flatMap(_imm_cf)\n\n","import {imm, imm_set} from './imm_dom_core.mjs'\nexport {imm, imm_set} from './imm_dom_core.mjs'\n\n\nexport function imm_dom(host, tagns) {\n tagns = {\n $: 'html', html: 'http://www.w3.org/1999/xhtml',\n svg: 'http://www.w3.org/2000/svg',\n ... tagns }\n let\n _tag0 = (tag, ns) => (\n // split xml-tag like namespace prefix\n ((ns = tag.split(':'))[1] // if tuple is present\n ? [ns, tag]=ns // use namespace by prefix\n : ns=0 ) // otherwise use default namespace (falsy)\n , host.createElementNS( tagns[ns || tagns.$], tag )),\n\n tag_fn = (tag, ...args) =>\n imm(tag.nodeType ? tag : _tag0(tag), ...args)\n\n tag_fn.fragment = (...args) =>\n imm(host.createDocumentFragment(), null, ...args)\n\n tag_fn.text = text =>\n host.createTextNode(text)\n\n return tag_fn.tag = tag_fn\n}\n\nexport const\n imm_otag = (el, tag, ...args) =>\n imm(el.ownerDocument.createElement(tag), ...args),\n\n imm_tag = /* #__PURE__ */\n imm_dom(document)\n\nexport {\n imm_tag as default,\n imm_tag as tag,\n}\n\n","import { _ce } from './imm_utils.mjs'\nimport { imm_defer_v } from './imm_async.mjs'\nimport { imm_mixin } from './imm_elem_core.mjs'\nimport { imm_tag } from './imm_dom.mjs'\n\nexport const with_legacy = (base=HTMLElement) =>\n class extends base {\n static M = new Map()\n\n static import_src(opt) {\n let M = this.M, p = M.get(opt.src)\n if (!p)\n M.set(opt.src, p = this._import(opt))\n return p\n }\n\n static async _import({el, ...opt}) {\n let dp = imm_defer_v(),\n el_script = imm_tag('script',\n {...opt, load: dp[1], error: dp[2]})\n\n let p = el_script.ready =\n dp[0].then(opt.load, opt.error)\n .finally(() => el_script.remove())\n\n ;(el || document.head)\n .append(el_script)\n\n return await p\n }\n }\n\nexport function imm_legacy(opt) {\n let {tag, once, base} = opt.trim ? {tag:opt} : opt\n let klass = _ce.get(tag)\n if (! klass) {\n _ce.define(tag, klass=with_legacy(base))\n once && once(klass, tag)\n }\n return klass\n}\n"],"names":[],"mappings":"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"}