{"version":3,"sources":["jsdelivr-header.js","/npm/mol_jsx_lib@0.0.1661/web.js"],"names":[],"mappings":"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","file":"/npm/mol_jsx_lib@0.0.1661/web.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.48.0.\n * Original file: /npm/mol_jsx_lib@0.0.1661/web.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","#!/usr/bin/env node\n\"use strict\";\nfunction require( path ){ return $node[ path ] };\n\nvar $node = $node || {}\nvoid function( module ) { var exports = module.exports = this; function require( id ) { return $node[ id.replace( /^.\\// , \"../\" ) ] }; \n;\n\"use strict\";\nError.stackTraceLimit = 50;\nvar $;\n(function ($) {\n})($ || ($ = {}));\nmodule.exports = $;\n\n;\n\n$node[ \"../mam.ts\" ] = $node[ \"../mam.ts\" ] = module.exports }.call( {} , {} )\n;\n\"use strict\"\n\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n\tvar c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n\tif (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n\telse for (var i = decorators.length - 1; i >= 0; i--) if ((d = decorators[i])) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n\treturn c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\nvar $ = ( typeof module === 'object' ) ? ( module['export'+'s'] = globalThis ) : globalThis\n$.$$ = $\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    $.$mol_dom_context = self;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    function $mol_fail(error) {\n        throw error;\n    }\n    $.$mol_fail = $mol_fail;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    const named = new WeakSet();\n    function $mol_func_name(func) {\n        let name = func.name;\n        if (name?.length > 1)\n            return name;\n        if (named.has(func))\n            return name;\n        for (let key in this) {\n            try {\n                if (this[key] !== func)\n                    continue;\n                name = key;\n                Object.defineProperty(func, 'name', { value: name });\n                break;\n            }\n            catch { }\n        }\n        named.add(func);\n        return name;\n    }\n    $.$mol_func_name = $mol_func_name;\n    function $mol_func_name_from(target, source) {\n        Object.defineProperty(target, 'name', { value: source.name });\n        return target;\n    }\n    $.$mol_func_name_from = $mol_func_name_from;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    $.$mol_dom = $mol_dom_context;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    function $mol_dom_render_children(el, childNodes) {\n        const node_set = new Set(childNodes);\n        let nextNode = el.firstChild;\n        for (let view of childNodes) {\n            if (view == null)\n                continue;\n            if (view instanceof $mol_dom_context.Node) {\n                while (true) {\n                    if (!nextNode) {\n                        el.appendChild(view);\n                        break;\n                    }\n                    if (nextNode == view) {\n                        nextNode = nextNode.nextSibling;\n                        break;\n                    }\n                    else {\n                        if (node_set.has(nextNode)) {\n                            el.insertBefore(view, nextNode);\n                            break;\n                        }\n                        else {\n                            const nn = nextNode.nextSibling;\n                            el.removeChild(nextNode);\n                            nextNode = nn;\n                        }\n                    }\n                }\n            }\n            else {\n                if (nextNode && nextNode.nodeName === '#text') {\n                    const str = String(view);\n                    if (nextNode.nodeValue !== str)\n                        nextNode.nodeValue = str;\n                    nextNode = nextNode.nextSibling;\n                }\n                else {\n                    const textNode = $mol_dom_context.document.createTextNode(String(view));\n                    el.insertBefore(textNode, nextNode);\n                }\n            }\n        }\n        while (nextNode) {\n            const currNode = nextNode;\n            nextNode = currNode.nextSibling;\n            el.removeChild(currNode);\n        }\n    }\n    $.$mol_dom_render_children = $mol_dom_render_children;\n})($ || ($ = {}));\n\n;\n\"use strict\";\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    $.$mol_jsx_prefix = '';\n    $.$mol_jsx_crumbs = '';\n    $.$mol_jsx_booked = null;\n    $.$mol_jsx_document = {\n        getElementById: () => null,\n        createElementNS: (space, name) => $mol_dom_context.document.createElementNS(space, name),\n        createDocumentFragment: () => $mol_dom_context.document.createDocumentFragment(),\n    };\n    $.$mol_jsx_frag = '';\n    /**\n     * JSX adapter that makes DOM tree.\n     * Generates global unique ids for every DOM-element by components tree with ids.\n     * Ensures all local ids are unique.\n     * Can reuse an existing nodes by GUIDs when used inside [`mol_jsx_attach`](https://github.com/hyoo-ru/mam_mol/tree/master/jsx/attach).\n     */\n    function $mol_jsx(Elem, props, ...childNodes) {\n        const id = props && props.id || '';\n        const guid = id ? $.$mol_jsx_prefix ? $.$mol_jsx_prefix + '/' + id : id : $.$mol_jsx_prefix;\n        const crumbs_self = id ? $.$mol_jsx_crumbs.replace(/(\\S+)/g, `$1_${id.replace(/\\/.*/i, '')}`) : $.$mol_jsx_crumbs;\n        if (Elem && $.$mol_jsx_booked) {\n            if ($.$mol_jsx_booked.has(id)) {\n                $mol_fail(new Error(`JSX already has tag with id ${JSON.stringify(guid)}`));\n            }\n            else {\n                $.$mol_jsx_booked.add(id);\n            }\n        }\n        let node = guid ? $.$mol_jsx_document.getElementById(guid) : null;\n        if ($.$mol_jsx_prefix) {\n            const prefix_ext = $.$mol_jsx_prefix;\n            const booked_ext = $.$mol_jsx_booked;\n            const crumbs_ext = $.$mol_jsx_crumbs;\n            for (const field in props) {\n                const func = props[field];\n                if (typeof func !== 'function')\n                    continue;\n                const wrapper = function (...args) {\n                    const prefix = $.$mol_jsx_prefix;\n                    const booked = $.$mol_jsx_booked;\n                    const crumbs = $.$mol_jsx_crumbs;\n                    try {\n                        $.$mol_jsx_prefix = prefix_ext;\n                        $.$mol_jsx_booked = booked_ext;\n                        $.$mol_jsx_crumbs = crumbs_ext;\n                        return func.call(this, ...args);\n                    }\n                    finally {\n                        $.$mol_jsx_prefix = prefix;\n                        $.$mol_jsx_booked = booked;\n                        $.$mol_jsx_crumbs = crumbs;\n                    }\n                };\n                $mol_func_name_from(wrapper, func);\n                props[field] = wrapper;\n            }\n        }\n        if (typeof Elem !== 'string') {\n            if ('prototype' in Elem) {\n                const view = node && node[String(Elem)] || new Elem;\n                Object.assign(view, props);\n                view[Symbol.toStringTag] = guid;\n                view.childNodes = childNodes;\n                if (!view.ownerDocument)\n                    view.ownerDocument = $.$mol_jsx_document;\n                view.className = (crumbs_self ? crumbs_self + ' ' : '') + (Elem['name'] || Elem);\n                node = view.valueOf();\n                node[String(Elem)] = view;\n                return node;\n            }\n            else {\n                const prefix = $.$mol_jsx_prefix;\n                const booked = $.$mol_jsx_booked;\n                const crumbs = $.$mol_jsx_crumbs;\n                try {\n                    $.$mol_jsx_prefix = guid;\n                    $.$mol_jsx_booked = new Set;\n                    $.$mol_jsx_crumbs = (crumbs_self ? crumbs_self + ' ' : '') + (Elem['name'] || Elem);\n                    return Elem(props, ...childNodes);\n                }\n                finally {\n                    $.$mol_jsx_prefix = prefix;\n                    $.$mol_jsx_booked = booked;\n                    $.$mol_jsx_crumbs = crumbs;\n                }\n            }\n        }\n        if (!node) {\n            node = Elem\n                ? $.$mol_jsx_document.createElementNS(props?.xmlns ?? 'http://www.w3.org/1999/xhtml', Elem)\n                : $.$mol_jsx_document.createDocumentFragment();\n        }\n        $mol_dom_render_children(node, [].concat(...childNodes));\n        if (!Elem)\n            return node;\n        if (guid)\n            node.id = guid;\n        for (const key in props) {\n            if (key === 'id')\n                continue;\n            if (typeof props[key] === 'string') {\n                if (typeof node[key] === 'string')\n                    node[key] = props[key];\n                node.setAttribute(key, props[key]);\n            }\n            else if (props[key] &&\n                typeof props[key] === 'object' &&\n                Reflect.getPrototypeOf(props[key]) === Reflect.getPrototypeOf({})) {\n                if (typeof node[key] === 'object') {\n                    Object.assign(node[key], props[key]);\n                    continue;\n                }\n            }\n            else {\n                node[key] = props[key];\n            }\n        }\n        if ($.$mol_jsx_crumbs)\n            node.className = (props?.['class'] ? props['class'] + ' ' : '') + crumbs_self;\n        return node;\n    }\n    $.$mol_jsx = $mol_jsx;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    function $mol_jsx_attach(next, action) {\n        const prev = $mol_jsx_document;\n        try {\n            $mol_jsx_document = next;\n            return action();\n        }\n        finally {\n            $mol_jsx_document = prev;\n        }\n    }\n    $.$mol_jsx_attach = $mol_jsx_attach;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    $.$mol_ambient_ref = Symbol('$mol_ambient_ref');\n    function $mol_ambient(overrides) {\n        return Object.setPrototypeOf(overrides, this || $);\n    }\n    $.$mol_ambient = $mol_ambient;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    const instances = new WeakSet();\n    /**\n     * Proxy that delegates all to lazy returned target.\n     *\n     * \t$mol_delegate( Array.prototype , ()=> fetch_array() )\n     */\n    function $mol_delegate(proto, target) {\n        const proxy = new Proxy(proto, {\n            get: (_, field) => {\n                const obj = target();\n                let val = Reflect.get(obj, field);\n                if (typeof val === 'function') {\n                    val = val.bind(obj);\n                }\n                return val;\n            },\n            has: (_, field) => Reflect.has(target(), field),\n            set: (_, field, value) => Reflect.set(target(), field, value),\n            getOwnPropertyDescriptor: (_, field) => Reflect.getOwnPropertyDescriptor(target(), field),\n            ownKeys: () => Reflect.ownKeys(target()),\n            getPrototypeOf: () => Reflect.getPrototypeOf(target()),\n            setPrototypeOf: (_, donor) => Reflect.setPrototypeOf(target(), donor),\n            isExtensible: () => Reflect.isExtensible(target()),\n            preventExtensions: () => Reflect.preventExtensions(target()),\n            apply: (_, self, args) => Reflect.apply(target(), self, args),\n            construct: (_, args, retarget) => Reflect.construct(target(), args, retarget),\n            defineProperty: (_, field, descr) => Reflect.defineProperty(target(), field, descr),\n            deleteProperty: (_, field) => Reflect.deleteProperty(target(), field),\n        });\n        instances.add(proxy);\n        return proxy;\n    }\n    $.$mol_delegate = $mol_delegate;\n    Reflect.defineProperty($mol_delegate, Symbol.hasInstance, {\n        value: (obj) => instances.has(obj),\n    });\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    $.$mol_owning_map = new WeakMap();\n    function $mol_owning_allow(having) {\n        try {\n            if (!having)\n                return false;\n            if (typeof having !== 'object' && typeof having !== 'function')\n                return false;\n            if (having instanceof $mol_delegate)\n                return false;\n            if (typeof having['destructor'] !== 'function')\n                return false;\n            return true;\n        }\n        catch {\n            return false;\n        }\n    }\n    $.$mol_owning_allow = $mol_owning_allow;\n    function $mol_owning_get(having, Owner) {\n        if (!$mol_owning_allow(having))\n            return null;\n        while (true) {\n            const owner = $.$mol_owning_map.get(having);\n            if (!owner)\n                return owner;\n            if (!Owner)\n                return owner;\n            if (owner instanceof Owner)\n                return owner;\n            having = owner;\n        }\n    }\n    $.$mol_owning_get = $mol_owning_get;\n    function $mol_owning_check(owner, having) {\n        if (!$mol_owning_allow(having))\n            return false;\n        if ($.$mol_owning_map.get(having) !== owner)\n            return false;\n        return true;\n    }\n    $.$mol_owning_check = $mol_owning_check;\n    function $mol_owning_catch(owner, having) {\n        if (!$mol_owning_allow(having))\n            return false;\n        if ($.$mol_owning_map.get(having))\n            return false;\n        $.$mol_owning_map.set(having, owner);\n        return true;\n    }\n    $.$mol_owning_catch = $mol_owning_catch;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    function $mol_fail_hidden(error) {\n        throw error; /// Use 'Never Pause Here' breakpoint in DevTools or simply blackbox this script\n    }\n    $.$mol_fail_hidden = $mol_fail_hidden;\n})($ || ($ = {}));\n\n;\n\"use strict\";\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    $.$mol_key_handle = Symbol.for('$mol_key_handle');\n    $.$mol_key_store = new WeakMap();\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    if (!Symbol.dispose)\n        Symbol.dispose = Symbol('Symbol.dispose');\n    class $mol_object2 {\n        static $ = $;\n        [Symbol.toStringTag];\n        [$mol_ambient_ref] = null;\n        get $() {\n            if (this[$mol_ambient_ref])\n                return this[$mol_ambient_ref];\n            const owner = $mol_owning_get(this);\n            return this[$mol_ambient_ref] = owner?.$ || this.constructor.$ || $mol_object2.$;\n        }\n        set $(next) {\n            if (this[$mol_ambient_ref])\n                $mol_fail_hidden(new Error('Context already defined'));\n            this[$mol_ambient_ref] = next;\n        }\n        static create(init) {\n            const obj = new this;\n            if (init)\n                init(obj);\n            return obj;\n        }\n        static [Symbol.toPrimitive]() {\n            return this.toString();\n        }\n        static toString() {\n            return this[Symbol.toStringTag] || this.$.$mol_func_name(this);\n        }\n        static toJSON() {\n            return this.toString();\n        }\n        static [$mol_key_handle]() {\n            return this.toString();\n        }\n        destructor() { }\n        static destructor() { }\n        [Symbol.dispose]() {\n            this.destructor();\n        }\n        //[ Symbol.toPrimitive ]( hint: string ) {\n        //\treturn hint === 'number' ? this.valueOf() : this.toString()\n        //}\n        toString() {\n            return this[Symbol.toStringTag] || this.constructor.name + '<>';\n        }\n    }\n    $.$mol_object2 = $mol_object2;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    /** Generates unique identifier. */\n    function $mol_guid(length = 8, exists = () => false) {\n        for (;;) {\n            let id = Math.random().toString(36).substring(2, length + 2).toUpperCase();\n            if (exists(id))\n                continue;\n            return id;\n        }\n    }\n    $.$mol_guid = $mol_guid;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    /** Special status statuses. */\n    let $mol_wire_cursor;\n    (function ($mol_wire_cursor) {\n        /** Update required. */\n        $mol_wire_cursor[$mol_wire_cursor[\"stale\"] = -1] = \"stale\";\n        /** Some of (transitive) pub update required. */\n        $mol_wire_cursor[$mol_wire_cursor[\"doubt\"] = -2] = \"doubt\";\n        /** Actual state but may be dropped. */\n        $mol_wire_cursor[$mol_wire_cursor[\"fresh\"] = -3] = \"fresh\";\n        /** State will never be changed. */\n        $mol_wire_cursor[$mol_wire_cursor[\"final\"] = -4] = \"final\";\n    })($mol_wire_cursor = $.$mol_wire_cursor || ($.$mol_wire_cursor = {}));\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    /**\n     * Collects subscribers in compact array. 28B\n     */\n    class $mol_wire_pub extends Object {\n        constructor(id = `$mol_wire_pub:${$mol_guid()}`) {\n            super();\n            this[Symbol.toStringTag] = id;\n        }\n        [Symbol.toStringTag];\n        data = [];\n        // Derived objects should be Arrays.\n        static get [Symbol.species]() {\n            return Array;\n        }\n        /**\n         * Index of first subscriber.\n         */\n        sub_from = 0; // 4B\n        /**\n         * All current subscribers.\n         */\n        get sub_list() {\n            const res = [];\n            for (let i = this.sub_from; i < this.data.length; i += 2) {\n                res.push(this.data[i]);\n            }\n            return res;\n        }\n        /**\n         * Has any subscribers or not.\n         */\n        get sub_empty() {\n            return this.sub_from === this.data.length;\n        }\n        /**\n         * Subscribe subscriber to this publisher events and return position of subscriber that required to unsubscribe.\n         */\n        sub_on(sub, pub_pos) {\n            const pos = this.data.length;\n            this.data.push(sub, pub_pos);\n            return pos;\n        }\n        /**\n         * Unsubscribe subscriber from this publisher events by subscriber position provided by `on(pub)`.\n         */\n        sub_off(sub_pos) {\n            if (!(sub_pos < this.data.length)) {\n                $mol_fail(new Error(`Wrong pos ${sub_pos}`));\n            }\n            const end = this.data.length - 2;\n            if (sub_pos !== end) {\n                this.peer_move(end, sub_pos);\n            }\n            this.data.length = end;\n            if (end === this.sub_from)\n                this.reap();\n        }\n        /**\n         * Called when last sub was unsubscribed.\n         **/\n        reap() { }\n        /**\n         * Autowire this publisher with current subscriber.\n         **/\n        promote() {\n            $mol_wire_auto()?.track_next(this);\n        }\n        /**\n         * Enforce actualization. Should not throw errors.\n         */\n        fresh() { }\n        /**\n         * Allow to put data to caches in the subtree.\n         */\n        complete() { }\n        get incompleted() {\n            return false;\n        }\n        /**\n         * Notify subscribers about self changes.\n         */\n        emit(quant = $mol_wire_cursor.stale) {\n            for (let i = this.sub_from; i < this.data.length; i += 2) {\n                ;\n                this.data[i].absorb(quant, this.data[i + 1]);\n            }\n        }\n        /**\n         * Moves peer from one position to another. Doesn't clear data at old position!\n         */\n        peer_move(from_pos, to_pos) {\n            const peer = this.data[from_pos];\n            const self_pos = this.data[from_pos + 1];\n            this.data[to_pos] = peer;\n            this.data[to_pos + 1] = self_pos;\n            peer.peer_repos(self_pos, to_pos);\n        }\n        /**\n         * Updates self position in the peer.\n         */\n        peer_repos(peer_pos, self_pos) {\n            this.data[peer_pos + 1] = self_pos;\n        }\n    }\n    $.$mol_wire_pub = $mol_wire_pub;\n})($ || ($ = {}));\n\n;\n\"use strict\";\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    $.$mol_wire_auto_sub = null;\n    /**\n     * When fulfilled, all publishers are promoted to this subscriber on access to its.\n     */\n    function $mol_wire_auto(next = $.$mol_wire_auto_sub) {\n        return $.$mol_wire_auto_sub = next;\n    }\n    $.$mol_wire_auto = $mol_wire_auto;\n    /**\n     * Affection queue. Used to prevent accidental stack overflow on emit.\n     */\n    $.$mol_wire_affected = [];\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    // https://docs.google.com/document/d/1FTascZXT9cxfetuPRT2eXPQKXui4nWFivUnS_335T3U/preview#\n    $['devtoolsFormatters'] ||= [];\n    function $mol_dev_format_register(config) {\n        $['devtoolsFormatters'].push(config);\n    }\n    $.$mol_dev_format_register = $mol_dev_format_register;\n    $.$mol_dev_format_head = Symbol('$mol_dev_format_head');\n    $.$mol_dev_format_body = Symbol('$mol_dev_format_body');\n    function $mol_dev_format_button(label, click) {\n        return $mol_dev_format_auto({\n            [$.$mol_dev_format_head]() {\n                return $.$mol_dev_format_span({ color: 'cornflowerblue' }, label);\n            },\n            [$.$mol_dev_format_body]() {\n                Promise.resolve().then(click);\n                return $.$mol_dev_format_span({});\n            }\n        });\n    }\n    $mol_dev_format_register({\n        header: (val, config = false) => {\n            if (config)\n                return null;\n            if (!val)\n                return null;\n            if ($.$mol_dev_format_head in val) {\n                try {\n                    return val[$.$mol_dev_format_head]();\n                }\n                catch (error) {\n                    return $.$mol_dev_format_accent($mol_dev_format_native(val), '💨', $mol_dev_format_native(error), '');\n                }\n            }\n            if (typeof val === 'function') {\n                return $mol_dev_format_native(val);\n            }\n            if (val instanceof Error) {\n                return $.$mol_dev_format_span({}, $mol_dev_format_native(val), ' ', $mol_dev_format_button('throw', () => $mol_fail_hidden(val)));\n            }\n            if (val instanceof Promise) {\n                return $.$mol_dev_format_shade($mol_dev_format_native(val), ' ', val[Symbol.toStringTag] ?? '');\n            }\n            if (Symbol.toStringTag in val) {\n                return $mol_dev_format_native(val);\n            }\n            return null;\n        },\n        hasBody: (val, config = false) => {\n            if (config)\n                return false;\n            if (!val)\n                return false;\n            // if( Error.isError( val ) ) true\n            if (val[$.$mol_dev_format_body])\n                return true;\n            return false;\n        },\n        body: (val, config = false) => {\n            if (config)\n                return null;\n            if (!val)\n                return null;\n            if ($.$mol_dev_format_body in val) {\n                try {\n                    return val[$.$mol_dev_format_body]();\n                }\n                catch (error) {\n                    return $.$mol_dev_format_accent($mol_dev_format_native(val), '💨', $mol_dev_format_native(error), '');\n                }\n            }\n            // if( Error.isError( val ) ) {\n            // \treturn $mol_dev_format_native( val )\n            // }\n            return null;\n        },\n    });\n    function $mol_dev_format_native(obj) {\n        if (typeof obj === 'undefined')\n            return $.$mol_dev_format_shade('undefined');\n        // if( ![ 'object', 'function', 'symbol' ].includes( typeof obj )  ) return obj\n        return [\n            'object',\n            {\n                object: obj,\n                config: true,\n            },\n        ];\n    }\n    $.$mol_dev_format_native = $mol_dev_format_native;\n    function $mol_dev_format_auto(obj) {\n        if (obj == null)\n            return $.$mol_dev_format_shade(String(obj));\n        return [\n            'object',\n            {\n                object: obj,\n                config: false,\n            },\n        ];\n    }\n    $.$mol_dev_format_auto = $mol_dev_format_auto;\n    function $mol_dev_format_element(element, style, ...content) {\n        const styles = [];\n        for (let key in style)\n            styles.push(`${key} : ${style[key]}`);\n        return [\n            element,\n            {\n                style: styles.join(' ; '),\n            },\n            ...content,\n        ];\n    }\n    $.$mol_dev_format_element = $mol_dev_format_element;\n    $.$mol_dev_format_span = $mol_dev_format_element.bind(null, 'span');\n    $.$mol_dev_format_div = $mol_dev_format_element.bind(null, 'div');\n    $.$mol_dev_format_ol = $mol_dev_format_element.bind(null, 'ol');\n    $.$mol_dev_format_li = $mol_dev_format_element.bind(null, 'li');\n    $.$mol_dev_format_table = $mol_dev_format_element.bind(null, 'table');\n    $.$mol_dev_format_tr = $mol_dev_format_element.bind(null, 'tr');\n    $.$mol_dev_format_td = $mol_dev_format_element.bind(null, 'td');\n    $.$mol_dev_format_accent = $.$mol_dev_format_span.bind(null, {\n        'color': 'magenta',\n    });\n    $.$mol_dev_format_strong = $.$mol_dev_format_span.bind(null, {\n        'font-weight': 'bold',\n    });\n    $.$mol_dev_format_string = $.$mol_dev_format_span.bind(null, {\n        'color': 'green',\n    });\n    $.$mol_dev_format_shade = $.$mol_dev_format_span.bind(null, {\n        'color': 'gray',\n    });\n    $.$mol_dev_format_indent = $.$mol_dev_format_div.bind(null, {\n        'margin-inline-start': '13px'\n    });\n    class Stack extends Array {\n        // [ Symbol.toPrimitive ]() {\n        // \treturn this.toString()\n        // }\n        match(...args) {\n            return this.toString().match(...args);\n        }\n        split(...args) {\n            return this.toString().split(...args);\n        }\n        toString() {\n            return this.join('\\n');\n        }\n    }\n    class Call extends Object {\n        type;\n        function;\n        method;\n        eval;\n        source;\n        offset;\n        pos;\n        object;\n        flags;\n        [Symbol.toStringTag];\n        constructor(call) {\n            super();\n            this.type = call.getTypeName() ?? '';\n            this.function = call.getFunctionName() ?? '';\n            this.method = call.getMethodName() ?? '';\n            if (this.method === this.function)\n                this.method = '';\n            // const func = c.getFunction()\n            this.pos = [call.getEnclosingLineNumber() ?? 0, call.getEnclosingColumnNumber() ?? 0];\n            this.eval = call.getEvalOrigin() ?? '';\n            this.source = call.getScriptNameOrSourceURL() ?? '';\n            this.object = call.getThis();\n            this.offset = call.getPosition();\n            const flags = [];\n            if (call.isAsync())\n                flags.push('async');\n            if (call.isConstructor())\n                flags.push('constructor');\n            if (call.isEval())\n                flags.push('eval');\n            if (call.isNative())\n                flags.push('native');\n            if (call.isPromiseAll())\n                flags.push('PromiseAll');\n            if (call.isToplevel())\n                flags.push('top');\n            this.flags = flags;\n            const type = this.type ? this.type + '.' : '';\n            const func = this.function || '<anon>';\n            const method = this.method ? ' [' + this.method + '] ' : '';\n            this[Symbol.toStringTag] = `${type}${func}${method}`;\n        }\n        [Symbol.toPrimitive]() {\n            return this.toString();\n        }\n        toString() {\n            const object = this.object || '';\n            const label = this[Symbol.toStringTag];\n            const source = `${this.source}:${this.pos.join(':')} #${this.offset}`;\n            return `\\tat ${object}${label} (${source})`;\n        }\n        [$.$mol_dev_format_head]() {\n            return $.$mol_dev_format_div({}, $mol_dev_format_native(this), $.$mol_dev_format_shade(' '), ...this.object ? [\n                $mol_dev_format_native(this.object),\n            ] : [], ...this.method ? [$.$mol_dev_format_shade(' ', ' [', this.method, ']')] : [], $.$mol_dev_format_shade(' ', this.flags.join(', ')));\n        }\n    }\n    Error.prepareStackTrace ??= (error, stack) => new Stack(...stack.map(call => new Call(call)));\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    /**\n     * Returns closure that returns constant value.\n     * @example\n     * const rnd = $mol_const( Math.random() )\n     */\n    function $mol_const(value) {\n        const getter = (() => value);\n        getter['()'] = value;\n        getter[Symbol.toStringTag] = value;\n        getter[$mol_dev_format_head] = () => $mol_dev_format_span({}, '()=> ', $mol_dev_format_auto(value));\n        return getter;\n    }\n    $.$mol_const = $mol_const;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    /**\n     * Publisher that can auto collect other publishers. 32B\n     *\n     * \tP1 P2 P3 P4 S1 S2 S3\n     * \t^           ^\n     * \tpubs_from   subs_from\n     */\n    class $mol_wire_pub_sub extends $mol_wire_pub {\n        pub_from = 0; // 4B\n        cursor = $mol_wire_cursor.stale; // 4B\n        get temp() {\n            return false;\n        }\n        get pub_list() {\n            const res = [];\n            const max = this.cursor >= 0 ? this.cursor : this.sub_from;\n            for (let i = this.pub_from; i < max; i += 2) {\n                if (this.data[i])\n                    res.push(this.data[i]);\n            }\n            return res;\n        }\n        track_on() {\n            this.cursor = this.pub_from;\n            const sub = $mol_wire_auto();\n            $mol_wire_auto(this);\n            return sub;\n        }\n        promote() {\n            if (this.cursor >= this.pub_from) {\n                $mol_fail(new Error('Circular subscription'));\n            }\n            super.promote();\n        }\n        track_next(pub) {\n            if (this.cursor < 0)\n                $mol_fail(new Error('Promo to non begun sub'));\n            if (this.cursor < this.sub_from) {\n                const next = this.data[this.cursor];\n                if (pub === undefined)\n                    return next ?? null;\n                if (next === pub) {\n                    this.cursor += 2;\n                    return next;\n                }\n                if (next) {\n                    if (this.sub_from < this.data.length) {\n                        this.peer_move(this.sub_from, this.data.length);\n                    }\n                    this.peer_move(this.cursor, this.sub_from);\n                    this.sub_from += 2;\n                }\n            }\n            else {\n                if (pub === undefined)\n                    return null;\n                if (this.sub_from < this.data.length) {\n                    this.peer_move(this.sub_from, this.data.length);\n                }\n                this.sub_from += 2;\n            }\n            this.data[this.cursor] = pub;\n            this.data[this.cursor + 1] = pub.sub_on(this, this.cursor);\n            this.cursor += 2;\n            return pub;\n        }\n        track_off(sub) {\n            $mol_wire_auto(sub);\n            if (this.cursor < 0) {\n                $mol_fail(new Error('End of non begun sub'));\n            }\n            for (let cursor = this.pub_from; cursor < this.cursor; cursor += 2) {\n                const pub = this.data[cursor];\n                pub.fresh();\n            }\n            this.cursor = $mol_wire_cursor.fresh;\n        }\n        pub_off(sub_pos) {\n            this.data[sub_pos] = undefined;\n            this.data[sub_pos + 1] = undefined;\n        }\n        destructor() {\n            for (let cursor = this.data.length - 2; cursor >= this.sub_from; cursor -= 2) {\n                const sub = this.data[cursor];\n                const pos = this.data[cursor + 1];\n                sub.pub_off(pos);\n            }\n            this.data.length = this.sub_from;\n            this.cursor = this.pub_from;\n            this.track_cut();\n            this.cursor = $mol_wire_cursor.stale;\n        }\n        track_cut() {\n            if (this.cursor < this.pub_from) {\n                $mol_fail(new Error('Cut of non begun sub'));\n            }\n            let end = this.data.length;\n            for (let cursor = this.cursor; cursor < this.sub_from; cursor += 2) {\n                const pub = this.data[cursor];\n                pub?.sub_off(this.data[cursor + 1]);\n                end -= 2;\n                if (this.sub_from <= end)\n                    this.peer_move(end, cursor);\n            }\n            this.data.length = end;\n            this.sub_from = this.cursor;\n        }\n        complete() { }\n        complete_pubs() {\n            const limit = this.cursor < 0 ? this.sub_from : this.cursor;\n            for (let cursor = this.pub_from; cursor < limit; cursor += 2) {\n                const pub = this.data[cursor];\n                if (pub?.incompleted)\n                    return;\n            }\n            for (let cursor = this.pub_from; cursor < limit; cursor += 2) {\n                const pub = this.data[cursor];\n                pub?.complete();\n            }\n        }\n        absorb(quant = $mol_wire_cursor.stale, pos = -1) {\n            if (this.cursor === $mol_wire_cursor.final)\n                return;\n            if (this.cursor >= quant)\n                return;\n            this.cursor = quant;\n            this.emit($mol_wire_cursor.doubt);\n            // if( pos >= 0 && pos < this.sub_from - 2 ) {\n            // \tconst pub = this.data[ pos ] as $mol_wire_pub\n            // \tif( pub instanceof $mol_wire_task ) return\n            // \tfor(\n            // \t\tlet cursor = this.pub_from;\n            // \t\tcursor < this.sub_from;\n            // \t\tcursor += 2\n            // \t) {\n            // \t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n            // \t\tif( pub instanceof $mol_wire_task ) {\n            // \t\t\tpub.destructor()\n            // \t\t}\n            // \t}\n            // }\n        }\n        [$mol_dev_format_head]() {\n            return $mol_dev_format_native(this);\n        }\n        /**\n         * Is subscribed to any publisher or not.\n         */\n        get pub_empty() {\n            return this.sub_from === this.pub_from;\n        }\n    }\n    $.$mol_wire_pub_sub = $mol_wire_pub_sub;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    class $mol_after_tick extends $mol_object2 {\n        task;\n        static promise = null;\n        cancelled = false;\n        constructor(task) {\n            super();\n            this.task = task;\n            if (!$mol_after_tick.promise)\n                $mol_after_tick.promise = Promise.resolve().then(() => {\n                    $mol_after_tick.promise = null;\n                });\n            $mol_after_tick.promise.then(() => {\n                if (this.cancelled)\n                    return;\n                task();\n            });\n        }\n        destructor() {\n            this.cancelled = true;\n        }\n    }\n    $.$mol_after_tick = $mol_after_tick;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    function $mol_promise_like(val) {\n        try {\n            return val && typeof val === 'object' && 'then' in val && typeof val.then === 'function';\n        }\n        catch {\n            return false;\n        }\n    }\n    $.$mol_promise_like = $mol_promise_like;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    const wrappers = new WeakMap();\n    /**\n     * Suspendable task with support both sync/async api.\n     *\n     * \tA1 A2 A3 A4 P1 P2 P3 P4 S1 S2 S3\n     * \t^           ^           ^\n     * \targs_from   pubs_from   subs_from\n     **/\n    class $mol_wire_fiber extends $mol_wire_pub_sub {\n        task;\n        host;\n        static warm = true;\n        static planning = new Set();\n        static reaping = new Set();\n        static plan_task = null;\n        static plan() {\n            if (this.plan_task)\n                return;\n            this.plan_task = new $mol_after_tick(() => {\n                try {\n                    this.sync();\n                }\n                finally {\n                    $mol_wire_fiber.plan_task = null;\n                }\n            });\n        }\n        static sync() {\n            // Sync whole fiber graph\n            while (this.planning.size) {\n                for (const fiber of this.planning) {\n                    this.planning.delete(fiber);\n                    if (fiber.cursor >= 0)\n                        continue;\n                    if (fiber.cursor === $mol_wire_cursor.final)\n                        continue;\n                    fiber.fresh();\n                }\n            }\n            // Collect garbage\n            while (this.reaping.size) {\n                const fibers = this.reaping;\n                this.reaping = new Set;\n                for (const fiber of fibers) {\n                    if (!fiber.sub_empty)\n                        continue;\n                    fiber.destructor();\n                }\n            }\n        }\n        cache = undefined;\n        get args() {\n            return this.data.slice(0, this.pub_from);\n        }\n        result() {\n            if ($mol_promise_like(this.cache))\n                return;\n            if (this.cache instanceof Error)\n                return;\n            return this.cache;\n        }\n        get incompleted() {\n            return $mol_promise_like(this.cache);\n        }\n        field() {\n            return this.task.name + '()';\n        }\n        constructor(id, task, host, args) {\n            super(id);\n            this.task = task;\n            this.host = host;\n            if (args)\n                this.data.push(...args);\n            this.pub_from = this.sub_from = args?.length ?? 0;\n        }\n        plan() {\n            $mol_wire_fiber.planning.add(this);\n            $mol_wire_fiber.plan();\n            return this;\n        }\n        reap() {\n            $mol_wire_fiber.reaping.add(this);\n            $mol_wire_fiber.plan();\n        }\n        toString() {\n            return this[Symbol.toStringTag];\n        }\n        toJSON() {\n            return this[Symbol.toStringTag];\n        }\n        [$mol_dev_format_head]() {\n            const cursor = {\n                [$mol_wire_cursor.stale]: '🔴',\n                [$mol_wire_cursor.doubt]: '🟡',\n                [$mol_wire_cursor.fresh]: '🟢',\n                [$mol_wire_cursor.final]: '🔵',\n            }[this.cursor] ?? this.cursor.toString();\n            return $mol_dev_format_div({}, $mol_owning_check(this, this.cache)\n                ? $mol_dev_format_shade(cursor)\n                : $mol_dev_format_shade(this[Symbol.toStringTag], cursor), $mol_dev_format_auto(this.cache));\n        }\n        [$mol_dev_format_body]() { return null; }\n        get $() {\n            return (this.host ?? this.task)['$'];\n        }\n        emit(quant = $mol_wire_cursor.stale) {\n            if (this.sub_empty)\n                this.plan();\n            else\n                super.emit(quant);\n        }\n        fresh() {\n            if (this.cursor === $mol_wire_cursor.fresh)\n                return;\n            if (this.cursor === $mol_wire_cursor.final)\n                return;\n            check: if (this.cursor === $mol_wire_cursor.doubt) {\n                for (let i = this.pub_from; i < this.sub_from; i += 2) {\n                    ;\n                    this.data[i]?.fresh();\n                    if (this.cursor !== $mol_wire_cursor.doubt)\n                        break check;\n                }\n                this.cursor = $mol_wire_cursor.fresh;\n                return;\n            }\n            const bu = this.track_on();\n            let result;\n            try {\n                switch (this.pub_from) {\n                    case 0:\n                        result = this.task.call(this.host);\n                        break;\n                    case 1:\n                        result = this.task.call(this.host, this.data[0]);\n                        break;\n                    default:\n                        result = this.task.call(this.host, ...this.args);\n                        break;\n                }\n                if ($mol_promise_like(result)) {\n                    if (wrappers.has(result)) {\n                        result = wrappers.get(result).then(a => a);\n                    }\n                    else {\n                        const put = (res) => {\n                            if (this.cache === result)\n                                this.put(res);\n                            return res;\n                        };\n                        wrappers.set(result, result = Object.assign(result.then(put, put), { destructor: result.destructor || (() => { }) }));\n                        wrappers.set(result, result);\n                        const error = new Error(`Promise in ${this}`);\n                        Object.defineProperty(result, 'stack', { get: () => error.stack });\n                    }\n                }\n            }\n            catch (error) {\n                if (error instanceof Error || $mol_promise_like(error)) {\n                    result = error;\n                }\n                else {\n                    result = new Error(String(error), { cause: error });\n                }\n                if ($mol_promise_like(result)) {\n                    if (wrappers.has(result)) {\n                        result = wrappers.get(result);\n                    }\n                    else {\n                        const put = (v) => {\n                            if (this.cache === result)\n                                this.absorb();\n                            return v;\n                        };\n                        wrappers.set(result, result = Object.assign(result.then(put, put), { destructor: result.destructor || (() => { }) }));\n                        const error = new Error(`Promise in ${this}`);\n                        Object.defineProperty(result, 'stack', { get: () => error.stack });\n                    }\n                }\n            }\n            if (!$mol_promise_like(result)) {\n                this.track_cut();\n            }\n            this.track_off(bu);\n            this.put(result);\n            return this;\n        }\n        refresh() {\n            this.cursor = $mol_wire_cursor.stale;\n            this.fresh();\n        }\n        /**\n         * Synchronous execution. Throws Promise when waits async task (SuspenseAPI provider).\n         * Should be called inside SuspenseAPI consumer (ie fiber).\n         */\n        sync() {\n            if (!$mol_wire_fiber.warm) {\n                return this.result();\n            }\n            this.promote();\n            this.fresh();\n            if (this.cache instanceof Error) {\n                return $mol_fail_hidden(this.cache);\n            }\n            if ($mol_promise_like(this.cache)) {\n                return $mol_fail_hidden(this.cache);\n            }\n            return this.cache;\n        }\n        /**\n         * Asynchronous execution.\n         * It's SuspenseAPI consumer. So SuspenseAPI providers can be called inside.\n         */\n        async async_raw() {\n            while (true) {\n                this.fresh();\n                if (this.cache instanceof Error) {\n                    $mol_fail_hidden(this.cache);\n                }\n                if (!$mol_promise_like(this.cache))\n                    return this.cache;\n                await Promise.race([this.cache, this.step()]);\n                if (!$mol_promise_like(this.cache))\n                    return this.cache;\n                if (this.cursor === $mol_wire_cursor.final) {\n                    // never ends on destructed fiber\n                    await new Promise(() => { });\n                }\n            }\n        }\n        async() {\n            const promise = this.async_raw();\n            if (!promise.destructor)\n                promise.destructor = () => this.destructor();\n            return promise;\n        }\n        step() {\n            return new Promise(done => {\n                const sub = new $mol_wire_pub_sub;\n                const prev = sub.track_on();\n                sub.track_next(this);\n                sub.track_off(prev);\n                sub.absorb = () => {\n                    done(null);\n                    setTimeout(() => sub.destructor());\n                };\n            });\n        }\n        destructor() {\n            super.destructor();\n            $mol_wire_fiber.planning.delete(this);\n            if (!$mol_owning_check(this, this.cache))\n                return;\n            try {\n                this.cache.destructor();\n            }\n            catch (result) {\n                if ($mol_promise_like(result)) {\n                    const error = new Error(`Promise in ${this}.destructor()`);\n                    Object.defineProperty(result, 'stack', { get: () => error.stack });\n                }\n                $mol_fail_hidden(result);\n            }\n        }\n    }\n    $.$mol_wire_fiber = $mol_wire_fiber;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    const TypedArray = Object.getPrototypeOf(Uint8Array);\n    /** Returns string key for any value. */\n    function $mol_key(value) {\n        primitives: {\n            if (typeof value === 'bigint')\n                return value.toString() + 'n';\n            if (typeof value === 'symbol')\n                return `Symbol(${value.description})`;\n            if (!value)\n                return JSON.stringify(value); // 0, null, \"\"\n            if (typeof value !== 'object' && typeof value !== 'function')\n                return JSON.stringify(value); // boolean, number, string\n        }\n        caching: {\n            let key = $mol_key_store.get(value);\n            if (key)\n                return key;\n        }\n        objects: {\n            if (value instanceof TypedArray) {\n                return `${value[Symbol.toStringTag]}([${[...value].map(v => $mol_key(v))}])`;\n            }\n            if (Array.isArray(value))\n                return `[${value.map(v => $mol_key(v))}]`;\n            if (value instanceof RegExp)\n                return value.toString();\n            if (value instanceof Date)\n                return `Date(${value.valueOf()})`;\n        }\n        structures: {\n            const proto = Reflect.getPrototypeOf(value);\n            if (!proto || !Reflect.getPrototypeOf(proto)) {\n                return `{${Object.entries(value).map(([k, v]) => JSON.stringify(k) + ':' + $mol_key(v))}}`;\n            }\n        }\n        handlers: {\n            if ($mol_key_handle in value) {\n                return value[$mol_key_handle]();\n            }\n        }\n        containers: {\n            const key = JSON.stringify('#' + $mol_guid());\n            $mol_key_store.set(value, key);\n            return key;\n        }\n    }\n    $.$mol_key = $mol_key;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    class $mol_after_frame extends $mol_object2 {\n        task;\n        static _promise = null;\n        static get promise() {\n            if (this._promise)\n                return this._promise;\n            return this._promise = new Promise(done => {\n                const complete = () => {\n                    this._promise = null;\n                    done();\n                };\n                if (typeof requestAnimationFrame === 'function') {\n                    requestAnimationFrame(complete);\n                }\n                else {\n                    setTimeout(complete, 16);\n                }\n            });\n        }\n        cancelled = false;\n        promise;\n        constructor(task) {\n            super();\n            this.task = task;\n            this.promise = $mol_after_frame.promise.then(() => {\n                if (this.cancelled)\n                    return;\n                task();\n            });\n        }\n        destructor() {\n            this.cancelled = true;\n        }\n    }\n    $.$mol_after_frame = $mol_after_frame;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    $.$mol_compare_deep_cache = new WeakMap();\n    /**\n     * Deeply compares two values. Returns true if equal.\n     * Define `Symbol.toPrimitive` to customize.\n     */\n    function $mol_compare_deep(left, right) {\n        if (Object.is(left, right))\n            return true;\n        if (left === null)\n            return false;\n        if (right === null)\n            return false;\n        if (typeof left !== 'object')\n            return false;\n        if (typeof right !== 'object')\n            return false;\n        const left_proto = Reflect.getPrototypeOf(left);\n        const right_proto = Reflect.getPrototypeOf(right);\n        if (left_proto !== right_proto)\n            return false;\n        if (left instanceof Boolean)\n            return Object.is(left.valueOf(), right['valueOf']());\n        if (left instanceof Number)\n            return Object.is(left.valueOf(), right['valueOf']());\n        if (left instanceof String)\n            return Object.is(left.valueOf(), right['valueOf']());\n        if (left instanceof Date)\n            return Object.is(left.valueOf(), right['valueOf']());\n        if (left instanceof RegExp)\n            return left.source === right.source && left.flags === right.flags;\n        if (left instanceof Error)\n            return left.message === right.message && $mol_compare_deep(left.stack, right.stack);\n        let left_cache = $.$mol_compare_deep_cache.get(left);\n        if (left_cache) {\n            const right_cache = left_cache.get(right);\n            if (typeof right_cache === 'boolean')\n                return right_cache;\n        }\n        else {\n            left_cache = new WeakMap();\n            $.$mol_compare_deep_cache.set(left, left_cache);\n        }\n        left_cache.set(right, true);\n        let result;\n        try {\n            if (!left_proto)\n                result = compare_pojo(left, right);\n            else if (!Reflect.getPrototypeOf(left_proto))\n                result = compare_pojo(left, right);\n            else if (Symbol.toPrimitive in left)\n                result = compare_primitive(left, right);\n            else if (Array.isArray(left))\n                result = compare_array(left, right);\n            else if (left instanceof Set)\n                result = compare_set(left, right);\n            else if (left instanceof Map)\n                result = compare_map(left, right);\n            else if (ArrayBuffer.isView(left))\n                result = compare_buffer(left, right);\n            else if (Symbol.iterator in left)\n                result = compare_iterator(left[Symbol.iterator](), right[Symbol.iterator]());\n            else\n                result = false;\n        }\n        finally {\n            left_cache.set(right, result);\n        }\n        return result;\n    }\n    $.$mol_compare_deep = $mol_compare_deep;\n    function compare_array(left, right) {\n        const len = left.length;\n        if (len !== right.length)\n            return false;\n        for (let i = 0; i < len; ++i) {\n            if (!$mol_compare_deep(left[i], right[i]))\n                return false;\n        }\n        return true;\n    }\n    function compare_buffer(left, right) {\n        const len = left.byteLength;\n        if (len !== right.byteLength)\n            return false;\n        if (left instanceof DataView)\n            return compare_buffer(new Uint8Array(left.buffer, left.byteOffset, left.byteLength), new Uint8Array(right.buffer, right.byteOffset, right.byteLength));\n        for (let i = 0; i < len; ++i) {\n            if (left[i] !== right[i])\n                return false;\n        }\n        return true;\n    }\n    function compare_iterator(left, right) {\n        while (true) {\n            const left_next = left.next();\n            const right_next = right.next();\n            if (left_next.done !== right_next.done)\n                return false;\n            if (left_next.done)\n                break;\n            if (!$mol_compare_deep(left_next.value, right_next.value))\n                return false;\n        }\n        return true;\n    }\n    function compare_set(left, right) {\n        if (left.size !== right.size)\n            return false;\n        return compare_iterator(left.values(), right.values());\n    }\n    function compare_map(left, right) {\n        if (left.size !== right.size)\n            return false;\n        return compare_iterator(left.keys(), right.keys())\n            && compare_iterator(left.values(), right.values());\n    }\n    function compare_pojo(left, right) {\n        const left_keys = Object.getOwnPropertyNames(left);\n        const right_keys = Object.getOwnPropertyNames(right);\n        if (!compare_array(left_keys, right_keys))\n            return false;\n        for (let key of left_keys) {\n            if (!$mol_compare_deep(left[key], right[key]))\n                return false;\n        }\n        const left_syms = Object.getOwnPropertySymbols(left);\n        const right_syms = Object.getOwnPropertySymbols(right);\n        if (!compare_array(left_syms, right_syms))\n            return false;\n        for (let key of left_syms) {\n            if (!$mol_compare_deep(left[key], right[key]))\n                return false;\n        }\n        return true;\n    }\n    function compare_primitive(left, right) {\n        return Object.is(left[Symbol.toPrimitive]('default'), right[Symbol.toPrimitive]('default'));\n    }\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    /** Log begin of collapsed group only when some logged inside, returns func to close group */\n    function $mol_log3_area_lazy(event) {\n        const self = this.$;\n        const stack = self.$mol_log3_stack;\n        const deep = stack.length;\n        let logged = false;\n        stack.push(() => {\n            logged = true;\n            self.$mol_log3_area.call(self, event);\n        });\n        return () => {\n            if (logged)\n                self.console.groupEnd();\n            if (stack.length > deep)\n                stack.length = deep;\n        };\n    }\n    $.$mol_log3_area_lazy = $mol_log3_area_lazy;\n    $.$mol_log3_stack = [];\n})($ || ($ = {}));\n\n;\n\"use strict\";\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    function $mol_log3_web_make(level, color) {\n        return function $mol_log3_logger(event) {\n            const pending = this.$mol_log3_stack.pop();\n            if (pending)\n                pending();\n            let tpl = '%c';\n            const chunks = Object.entries(event);\n            for (let i = 0; i < chunks.length; ++i) {\n                tpl += (typeof chunks[i][1] === 'string') ? '%s: %s\\n' : '%s: %o\\n';\n            }\n            const style = `color:${color};font-weight:bolder`;\n            this.console[level](tpl.trim(), style, ...[].concat(...chunks));\n            const self = this;\n            return () => self.console.groupEnd();\n        };\n    }\n    $.$mol_log3_web_make = $mol_log3_web_make;\n    $.$mol_log3_come = $mol_log3_web_make('info', 'royalblue');\n    $.$mol_log3_done = $mol_log3_web_make('info', 'forestgreen');\n    $.$mol_log3_fail = $mol_log3_web_make('error', 'orangered');\n    $.$mol_log3_warn = $mol_log3_web_make('warn', 'goldenrod');\n    $.$mol_log3_rise = $mol_log3_web_make('log', 'magenta');\n    $.$mol_log3_area = $mol_log3_web_make('group', 'cyan');\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    /** One-shot fiber */\n    class $mol_wire_task extends $mol_wire_fiber {\n        static getter(task) {\n            return function $mol_wire_task_get(host, args) {\n                const sub = $mol_wire_auto();\n                const existen = sub?.track_next();\n                let cause = '';\n                reuse: if (existen) {\n                    if (!existen.temp)\n                        break reuse;\n                    if (existen.host !== host) {\n                        cause = 'host';\n                        break reuse;\n                    }\n                    if (existen.task !== task) {\n                        cause = 'task';\n                        break reuse;\n                    }\n                    if (!$mol_compare_deep(existen.args, args)) {\n                        cause = 'args';\n                        break reuse;\n                    }\n                    return existen;\n                }\n                const key = (host?.[Symbol.toStringTag] ?? host) + ('.' + task.name + '<#>');\n                const next = new $mol_wire_task(key, task, host, args);\n                // Disabled because non-idempotency is required for try-catch\n                if (existen?.temp) {\n                    $$.$mol_log3_warn({\n                        place: '$mol_wire_task',\n                        message: `Different ${cause} on restart`,\n                        sub,\n                        prev: existen,\n                        next,\n                        hint: 'Maybe required additional memoization',\n                    });\n                }\n                return next;\n            };\n        }\n        get temp() {\n            return true;\n        }\n        complete() {\n            if ($mol_promise_like(this.cache))\n                return;\n            this.destructor();\n        }\n        put(next) {\n            const prev = this.cache;\n            this.cache = next;\n            if ($mol_promise_like(next)) {\n                this.cursor = $mol_wire_cursor.fresh;\n                if (next !== prev)\n                    this.emit();\n                if ($mol_owning_catch(this, next)) {\n                    try {\n                        next[Symbol.toStringTag] = this[Symbol.toStringTag];\n                    }\n                    catch { // Promises throw in strict mode\n                        Object.defineProperty(next, Symbol.toStringTag, { value: this[Symbol.toStringTag] });\n                    }\n                }\n                return next;\n            }\n            this.cursor = $mol_wire_cursor.final;\n            if (this.sub_empty)\n                this.destructor();\n            else if (next !== prev)\n                this.emit();\n            return next;\n        }\n        destructor() {\n            super.destructor();\n            this.cursor = $mol_wire_cursor.final;\n        }\n    }\n    $.$mol_wire_task = $mol_wire_task;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    /**\n     * Decorates method to fiber to ensure it is executed only once inside other fiber.\n     */\n    function $mol_wire_method(host, field, descr) {\n        if (!descr)\n            descr = Reflect.getOwnPropertyDescriptor(host, field);\n        const orig = descr?.value ?? host[field];\n        const sup = Reflect.getPrototypeOf(host);\n        if (typeof sup[field] === 'function') {\n            Object.defineProperty(orig, 'name', { value: sup[field].name });\n        }\n        const temp = $mol_wire_task.getter(orig);\n        const value = function (...args) {\n            const fiber = temp(this ?? null, args);\n            return fiber.sync();\n        };\n        Object.defineProperty(value, 'name', { value: orig.name + ' ' });\n        Object.assign(value, { orig });\n        const descr2 = { ...descr, value };\n        Reflect.defineProperty(host, field, descr2);\n        return descr2;\n    }\n    $.$mol_wire_method = $mol_wire_method;\n})($ || ($ = {}));\n\n;\n\"use strict\";\n\n;\n\"use strict\";\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    const catched = new WeakSet();\n    function $mol_fail_catch(error) {\n        if (typeof error !== 'object')\n            return false;\n        if ($mol_promise_like(error))\n            $mol_fail_hidden(error);\n        if (catched.has(error))\n            return false;\n        catched.add(error);\n        return true;\n    }\n    $.$mol_fail_catch = $mol_fail_catch;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    function $mol_try(handler) {\n        try {\n            return handler();\n        }\n        catch (error) {\n            console.error(error);\n            return error;\n        }\n    }\n    $.$mol_try = $mol_try;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    let error;\n    let result;\n    let handler;\n    /// Debugger will stop at exceptions but exception will be returned normally\n    function $mol_try_web(handler2) {\n        handler = handler2;\n        error = undefined;\n        result = undefined;\n        self.dispatchEvent(new Event('$mol_try'));\n        const error2 = error;\n        const result2 = result;\n        error = undefined;\n        result = undefined;\n        return error2 || result2;\n    }\n    $.$mol_try_web = $mol_try_web;\n    $.$mol_try = $mol_try_web;\n    self.addEventListener('$mol_try', (event) => {\n        result = handler();\n    }, true);\n    self.addEventListener('error', (event) => {\n        error = event.error;\n    }, true);\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    function $mol_fail_log(error) {\n        if ($mol_promise_like(error))\n            return false;\n        if (!$mol_fail_catch(error))\n            return false;\n        $mol_try(() => { $mol_fail_hidden(error); });\n        return true;\n    }\n    $.$mol_fail_log = $mol_fail_log;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    /** Long-living fiber. */\n    class $mol_wire_atom extends $mol_wire_fiber {\n        static solo(host, task) {\n            const field = task.name + '()';\n            const existen = Object.getOwnPropertyDescriptor(host ?? task, field)?.value;\n            if (existen)\n                return existen;\n            const prefix = host?.[Symbol.toStringTag] ?? (host instanceof Function ? $$.$mol_func_name(host) : host);\n            const key = prefix + ('.' + task.name + '<>');\n            const fiber = new $mol_wire_atom(key, task, host, []);\n            (host ?? task)[field] = fiber;\n            return fiber;\n        }\n        static plex(host, task, key) {\n            const field = task.name + '()';\n            let dict = Object.getOwnPropertyDescriptor(host ?? task, field)?.value;\n            const prefix = host?.[Symbol.toStringTag] ?? (host instanceof Function ? $$.$mol_func_name(host) : host);\n            const key_str = $mol_key(key);\n            if (dict) {\n                const existen = dict.get(key_str);\n                if (existen)\n                    return existen;\n            }\n            else {\n                dict = (host ?? task)[field] = new Map();\n            }\n            const id = prefix + ('.' + task.name) + ('<' + key_str.replace(/^\"|\"$/g, \"'\") + '>');\n            const fiber = new $mol_wire_atom(id, task, host, [key]);\n            dict.set(key_str, fiber);\n            return fiber;\n        }\n        static watching = new Set();\n        static watcher = null;\n        static watch() {\n            $mol_wire_atom.watcher = new $mol_after_frame($mol_wire_atom.watch);\n            for (const atom of $mol_wire_atom.watching) {\n                if (atom.cursor === $mol_wire_cursor.final) {\n                    $mol_wire_atom.watching.delete(atom);\n                }\n                else {\n                    atom.cursor = $mol_wire_cursor.stale;\n                    atom.fresh();\n                }\n            }\n        }\n        watch() {\n            if (!$mol_wire_atom.watcher) {\n                $mol_wire_atom.watcher = new $mol_after_frame($mol_wire_atom.watch);\n            }\n            $mol_wire_atom.watching.add(this);\n        }\n        /**\n         * Update atom value through another temp fiber.\n         */\n        resync(args) {\n            // enforce pulling tasks abort\n            for (let cursor = this.pub_from; cursor < this.sub_from; cursor += 2) {\n                const pub = this.data[cursor];\n                if (pub && pub instanceof $mol_wire_task) {\n                    pub.destructor();\n                }\n            }\n            return this.put(this.task.call(this.host, ...args));\n        }\n        once() {\n            return this.sync();\n        }\n        channel() {\n            return Object.assign((next) => {\n                if (next !== undefined)\n                    return this.resync([...this.args, next]);\n                if (!$mol_wire_fiber.warm)\n                    return this.result();\n                if ($mol_wire_auto()?.temp) {\n                    return this.once();\n                }\n                else {\n                    return this.sync();\n                }\n            }, { atom: this });\n        }\n        destructor() {\n            super.destructor();\n            if (this.pub_from === 0) {\n                ;\n                (this.host ?? this.task)[this.field()] = null;\n            }\n            else {\n                const key = $mol_key(this.args[0]);\n                const map = (this.host ?? this.task)[this.field()];\n                if (!map.has(key))\n                    this.$.$mol_log3_warn({\n                        place: this,\n                        message: 'Absent key on destruction',\n                        hint: 'Check for $mol_key(key) is not changed',\n                    });\n                map.delete(key);\n            }\n        }\n        put(next) {\n            const prev = this.cache;\n            update: if (next !== prev) {\n                try {\n                    if ($mol_compare_deep(prev, next))\n                        break update;\n                }\n                catch (error) {\n                    $mol_fail_log(error);\n                }\n                if ($mol_owning_check(this, prev)) {\n                    prev.destructor();\n                }\n                if ($mol_owning_catch(this, next)) {\n                    try {\n                        next[Symbol.toStringTag] = this[Symbol.toStringTag];\n                    }\n                    catch { // Promises throw in strict mode\n                        Object.defineProperty(next, Symbol.toStringTag, { value: this[Symbol.toStringTag] });\n                    }\n                }\n                if (!this.sub_empty)\n                    this.emit();\n            }\n            this.cache = next;\n            this.cursor = $mol_wire_cursor.fresh;\n            if ($mol_promise_like(next))\n                return next;\n            this.complete_pubs();\n            return next;\n        }\n    }\n    __decorate([\n        $mol_wire_method\n    ], $mol_wire_atom.prototype, \"resync\", null);\n    __decorate([\n        $mol_wire_method\n    ], $mol_wire_atom.prototype, \"once\", null);\n    $.$mol_wire_atom = $mol_wire_atom;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    /** Incompatible with instance fields with initializators */\n    function $mol_wire_field(host, field, descr) {\n        if (!descr)\n            descr = Reflect.getOwnPropertyDescriptor(host, field);\n        const _get = descr?.get || $mol_const(descr?.value);\n        const _set = descr?.set || function (next) {\n            $mol_wire_atom.solo(this, _get).put(next);\n        };\n        const sup = Reflect.getPrototypeOf(host);\n        const sup_descr = Reflect.getOwnPropertyDescriptor(sup, field);\n        Object.defineProperty(_get, 'name', { value: sup_descr?.get?.name ?? field });\n        Object.defineProperty(_set, 'name', { value: sup_descr?.set?.name ?? field });\n        function get() {\n            return $mol_wire_atom.solo(this, _get).sync();\n        }\n        const temp = $mol_wire_task.getter(_set);\n        function set(next) {\n            temp(this, [next]).sync();\n        }\n        Object.defineProperty(get, 'name', { value: _get.name + '$' });\n        Object.defineProperty(set, 'name', { value: _set.name + '@' });\n        Object.assign(get, { orig: _get });\n        Object.assign(set, { orig: _set });\n        const { value, writable, ...descr2 } = { ...descr, get, set };\n        Reflect.defineProperty(host, field, descr2);\n        return descr2;\n    }\n    $.$mol_wire_field = $mol_wire_field;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    /** Decorates solo object channel to [mol_wire_atom](../atom/atom.ts). */\n    function $mol_wire_solo(host, field, descr) {\n        if (!descr)\n            descr = Reflect.getOwnPropertyDescriptor(host, field);\n        const orig = descr?.value ?? host[field];\n        const sup = Reflect.getPrototypeOf(host);\n        if (typeof sup[field] === 'function') {\n            Object.defineProperty(orig, 'name', { value: sup[field].name });\n        }\n        const descr2 = {\n            ...descr,\n            value: function (...args) {\n                let atom = $mol_wire_atom.solo(this, orig);\n                if ((args.length === 0) || (args[0] === undefined)) {\n                    if (!$mol_wire_fiber.warm)\n                        return atom.result();\n                    if ($mol_wire_auto()?.temp) {\n                        return atom.once();\n                    }\n                    else {\n                        return atom.sync();\n                    }\n                }\n                return atom.resync(args);\n            }\n        };\n        Reflect.defineProperty(descr2.value, 'name', { value: orig.name + ' ' });\n        Reflect.defineProperty(descr2.value, 'length', { value: orig.length });\n        Object.assign(descr2.value, { orig });\n        Reflect.defineProperty(host, field, descr2);\n        return descr2;\n    }\n    $.$mol_wire_solo = $mol_wire_solo;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    /** Reactive memoizing multiplexed property decorator. */\n    function $mol_wire_plex(host, field, descr) {\n        if (!descr)\n            descr = Reflect.getOwnPropertyDescriptor(host, field);\n        const orig = descr?.value ?? host[field];\n        const sup = Reflect.getPrototypeOf(host);\n        if (typeof sup[field] === 'function') {\n            Object.defineProperty(orig, 'name', { value: sup[field].name });\n        }\n        const descr2 = {\n            ...descr,\n            value: function (...args) {\n                let atom = $mol_wire_atom.plex(this, orig, args[0]);\n                if ((args.length === 1) || (args[1] === undefined)) {\n                    if (!$mol_wire_fiber.warm)\n                        return atom.result();\n                    if ($mol_wire_auto()?.temp) {\n                        return atom.once();\n                    }\n                    else {\n                        return atom.sync();\n                    }\n                }\n                return atom.resync(args);\n            }\n        };\n        Reflect.defineProperty(descr2.value, 'name', { value: orig.name + ' ' });\n        Reflect.defineProperty(descr2.value, 'length', { value: orig.length });\n        Object.assign(descr2.value, { orig });\n        Reflect.defineProperty(host, field, descr2);\n        return descr2;\n    }\n    $.$mol_wire_plex = $mol_wire_plex;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    /**\n     * Reactive memoizing solo property decorator from [mol_wire](../wire/README.md)\n     * @example\n     * '@' $mol_mem\n     * name(next?: string) {\n     * \treturn next ?? 'default'\n     * }\n     * @see https://mol.hyoo.ru/#!section=docs/=qxmh6t_sinbmb\n     */\n    $.$mol_mem = $mol_wire_solo;\n    /**\n     * Reactive memoizing multiplexed property decorator [mol_wire](../wire/README.md)\n     * @example\n     * '@' $mol_mem_key\n     * name(id: number, next?: string) {\n     *  return next ?? 'default'\n     * }\n     * @see https://mol.hyoo.ru/#!section=docs/=qxmh6t_sinbmb\n     */\n    $.$mol_mem_key = $mol_wire_plex;\n})($ || ($ = {}));\n\n;\n\"use strict\";\n/** @jsx $mol_jsx */\nvar $;\n(function ($) {\n    /** Reactive JSX component */\n    class $mol_jsx_view extends $mol_object2 {\n        /** Returns component instance for DOM node. */\n        static of(node) {\n            return node[this];\n        }\n        // Allow overriding of all fields via attributes\n        attributes;\n        /** Document to reuse DOM elements by ID */\n        ownerDocument;\n        /** Autogenerated class names */\n        className = '';\n        /** Children to render inside */\n        get childNodes() {\n            return [];\n        }\n        /** Memoized render in right context */\n        valueOf() {\n            const prefix = $mol_jsx_prefix;\n            const booked = $mol_jsx_booked;\n            const crumbs = $mol_jsx_crumbs;\n            const document = $mol_jsx_document;\n            try {\n                $mol_jsx_prefix = this[Symbol.toStringTag];\n                $mol_jsx_booked = new Set;\n                $mol_jsx_crumbs = this.className;\n                $mol_jsx_document = this.ownerDocument;\n                return this.render();\n            }\n            finally {\n                $mol_jsx_prefix = prefix;\n                $mol_jsx_booked = booked;\n                $mol_jsx_crumbs = crumbs;\n                $mol_jsx_document = document;\n            }\n        }\n    }\n    __decorate([\n        $mol_wire_field\n    ], $mol_jsx_view.prototype, \"childNodes\", null);\n    __decorate([\n        $mol_mem\n    ], $mol_jsx_view.prototype, \"valueOf\", null);\n    $.$mol_jsx_view = $mol_jsx_view;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    /** Run code without state changes */\n    function $mol_wire_probe(task, def) {\n        const warm = $mol_wire_fiber.warm;\n        try {\n            $mol_wire_fiber.warm = false;\n            const res = task();\n            if (res === undefined)\n                return def;\n            return res;\n        }\n        finally {\n            $mol_wire_fiber.warm = warm;\n        }\n    }\n    $.$mol_wire_probe = $mol_wire_probe;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    /**\n     * Disable reaping of current subscriber\n     */\n    function $mol_wire_solid() {\n        let current = $mol_wire_auto();\n        if (current.temp)\n            current = current.host;\n        if (current.reap !== nothing) {\n            current?.sub_on(sub, sub.data.length);\n        }\n        current.reap = nothing;\n    }\n    $.$mol_wire_solid = $mol_wire_solid;\n    const nothing = () => { };\n    const sub = new $mol_wire_pub_sub;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    /**\n     * Real-time refresh current atom.\n     * Don't use if possible. May reduce performance.\n     */\n    function $mol_wire_watch() {\n        const atom = $mol_wire_auto();\n        if (atom instanceof $mol_wire_atom) {\n            atom.watch();\n        }\n        else {\n            $mol_fail(new Error('Atom is required for watching'));\n        }\n    }\n    $.$mol_wire_watch = $mol_wire_watch;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    const factories = new WeakMap();\n    function factory(val) {\n        let make = factories.get(val);\n        if (make)\n            return make;\n        make = $mol_func_name_from((...args) => new val(...args), val);\n        factories.set(val, make);\n        return make;\n    }\n    const getters = new WeakMap();\n    function get_prop(host, field) {\n        let props = getters.get(host);\n        let get_val = props?.[field];\n        if (get_val)\n            return get_val;\n        get_val = (next) => {\n            if (next !== undefined)\n                host[field] = next;\n            return host[field];\n        };\n        Object.defineProperty(get_val, 'name', { value: field });\n        if (!props) {\n            props = {};\n            getters.set(host, props);\n        }\n        props[field] = get_val;\n        return get_val;\n    }\n    /**\n     * Convert asynchronous (promise-based) API to synchronous by wrapping function and method calls in a fiber.\n     * @see https://mol.hyoo.ru/#!section=docs/=1fcpsq_1wh0h2\n     */\n    function $mol_wire_sync(obj) {\n        return new Proxy(obj, {\n            get(obj, field) {\n                let val = obj[field];\n                const temp = $mol_wire_task.getter(typeof val === 'function' ? val : get_prop(obj, field));\n                if (typeof val !== 'function')\n                    return temp(obj, []).sync();\n                return function $mol_wire_sync(...args) {\n                    const fiber = temp(obj, args);\n                    return fiber.sync();\n                };\n            },\n            set(obj, field, next) {\n                const temp = $mol_wire_task.getter(get_prop(obj, field));\n                temp(obj, [next]).sync();\n                return true;\n            },\n            construct(obj, args) {\n                const temp = $mol_wire_task.getter(factory(obj));\n                return temp(obj, args).sync();\n            },\n            apply(obj, self, args) {\n                const temp = $mol_wire_task.getter(obj);\n                return temp(self, args).sync();\n            },\n        });\n    }\n    $.$mol_wire_sync = $mol_wire_sync;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    /** Convert a pseudo-synchronous (Suspense API) API to an explicit asynchronous one (for integrating with external systems). */\n    function $mol_wire_async(obj) {\n        let fiber;\n        const temp = $mol_wire_task.getter(obj);\n        return new Proxy(obj, {\n            get(obj, field) {\n                const val = obj[field];\n                if (typeof val !== 'function')\n                    return val;\n                let fiber;\n                const temp = $mol_wire_task.getter(val);\n                return function $mol_wire_async(...args) {\n                    fiber?.destructor();\n                    fiber = temp(obj, args);\n                    return fiber.async();\n                };\n            },\n            apply(obj, self, args) {\n                fiber?.destructor();\n                fiber = temp(self, args);\n                return fiber.async();\n            },\n        });\n    }\n    $.$mol_wire_async = $mol_wire_async;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    /** Starts subtasks concurrently instead of serial. */\n    function $mol_wire_race(...tasks) {\n        const results = tasks.map(task => {\n            try {\n                return task();\n            }\n            catch (error) {\n                return error;\n            }\n        });\n        const promises = results.filter(res => $mol_promise_like(res));\n        if (promises.length)\n            $mol_fail(Promise.race(promises));\n        const error = results.find(res => res instanceof Error);\n        if (error)\n            $mol_fail(error);\n        return results;\n    }\n    $.$mol_wire_race = $mol_wire_race;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($_1) {\n    let $$;\n    (function ($$) {\n        let $;\n    })($$ = $_1.$$ || ($_1.$$ = {}));\n    $_1.$mol_object_field = Symbol('$mol_object_field');\n    class $mol_object extends $mol_object2 {\n        static make(config) {\n            return super.create(obj => {\n                for (let key in config)\n                    obj[key] = config[key];\n            });\n        }\n    }\n    $_1.$mol_object = $mol_object;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    class $mol_after_timeout extends $mol_object2 {\n        delay;\n        task;\n        id;\n        constructor(delay, task) {\n            super();\n            this.delay = delay;\n            this.task = task;\n            this.id = setTimeout(task, delay);\n        }\n        destructor() {\n            clearTimeout(this.id);\n        }\n    }\n    $.$mol_after_timeout = $mol_after_timeout;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    /** State of time moment */\n    class $mol_state_time extends $mol_object {\n        static task(precision, reset) {\n            if (precision) {\n                return new $mol_after_timeout(precision, () => this.task(precision, null));\n            }\n            else {\n                return new $mol_after_frame(() => this.task(precision, null));\n            }\n        }\n        static now(precision) {\n            this.task(precision);\n            return Date.now();\n        }\n    }\n    __decorate([\n        $mol_mem_key\n    ], $mol_state_time, \"task\", null);\n    __decorate([\n        $mol_mem_key\n    ], $mol_state_time, \"now\", null);\n    $.$mol_state_time = $mol_state_time;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    /** Transition atom value */\n    function $mol_wire_easing(next) {\n        const atom = $mol_wire_auto();\n        if (!(atom instanceof $mol_wire_atom))\n            $mol_fail(new Error('Allowed only inside atom'));\n        const prev = atom.result() ?? next;\n        if (typeof prev !== 'number')\n            return next;\n        const current = (prev * 2 + next) / 3;\n        const diff = Math.abs(current - next);\n        if (diff < 1)\n            return next;\n        $mol_state_time.now(0);\n        return current;\n    }\n    $.$mol_wire_easing = $mol_wire_easing;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    function $mol_wire_patch(obj) {\n        for (const field of Reflect.ownKeys(obj)) {\n            const descr = Reflect.getOwnPropertyDescriptor(obj, field);\n            if (!descr.configurable)\n                continue;\n            if (!descr.get)\n                continue;\n            const get = descr.get ?? (() => descr.value);\n            const set = descr.set ?? (next => descr.value = next);\n            Reflect.defineProperty(obj, field, {\n                configurable: true,\n                enumerable: descr.enumerable,\n                get() {\n                    const atom = $mol_wire_atom.solo(obj, get);\n                    atom.watch();\n                    return atom.sync();\n                },\n                set(next) {\n                    const atom = $mol_wire_atom.solo(obj, get);\n                    set.call(this, next);\n                    atom.refresh();\n                },\n            });\n        }\n    }\n    $.$mol_wire_patch = $mol_wire_patch;\n})($ || ($ = {}));\n\n;\n\"use strict\";\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    function $mol_wire_let(host) {\n        for (const field of Object.keys(host)) {\n            host[field] = new $mol_wire_atom(field, host[field], host).channel();\n        }\n        return host;\n    }\n    $.$mol_wire_let = $mol_wire_let;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    /** Reactive Set */\n    class $mol_wire_set extends Set {\n        pub = new $mol_wire_pub;\n        // Accessors\n        has(value) {\n            this.pub.promote();\n            return super.has(value);\n        }\n        entries() {\n            this.pub.promote();\n            return super.entries();\n        }\n        keys() {\n            this.pub.promote();\n            return super.keys();\n        }\n        values() {\n            this.pub.promote();\n            return super.values();\n        }\n        forEach(task, self) {\n            this.pub.promote();\n            super.forEach(task, self);\n        }\n        [Symbol.iterator]() {\n            this.pub.promote();\n            return super[Symbol.iterator]();\n        }\n        get size() {\n            this.pub.promote();\n            return super.size;\n        }\n        // Mutators\n        add(value) {\n            if (super.has(value))\n                return this;\n            super.add(value);\n            this.pub.emit();\n            return this;\n        }\n        delete(value) {\n            const res = super.delete(value);\n            if (res)\n                this.pub.emit();\n            return res;\n        }\n        clear() {\n            if (!super.size)\n                return;\n            super.clear();\n            this.pub.emit();\n        }\n        // Extensions\n        item(val, next) {\n            if (next === undefined)\n                return this.has(val);\n            if (next)\n                this.add(val);\n            else\n                this.delete(val);\n            return next;\n        }\n    }\n    $.$mol_wire_set = $mol_wire_set;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    const pubs = new WeakMap();\n    function $mol_wire_proxy_pub(id, target) {\n        let pub = pubs.get(target);\n        if (!pub)\n            pubs.set(target, pub = new $mol_wire_pub(id));\n        return pub;\n    }\n    $.$mol_wire_proxy_pub = $mol_wire_proxy_pub;\n    function $mol_wire_proxy(id, target) {\n        if (!target)\n            return target;\n        const type = typeof target;\n        if (type !== 'object' && type !== 'function')\n            return target;\n        return new Proxy(target, {\n            // Readers\n            get(target, property) {\n                $mol_wire_proxy_pub(id, target).promote();\n                const suffix = '.' + (typeof property === 'symbol' ? property.description : property);\n                return $mol_wire_proxy(id + suffix, Reflect.get(target, property));\n            },\n            getOwnPropertyDescriptor(target, property) {\n                $mol_wire_proxy_pub(id, target).promote();\n                return Reflect.getOwnPropertyDescriptor(target, property);\n            },\n            ownKeys(target) {\n                $mol_wire_proxy_pub(id, target).promote();\n                return Reflect.ownKeys(target);\n            },\n            has(target, property) {\n                $mol_wire_proxy_pub(id, target).promote();\n                return Reflect.has(target, property);\n            },\n            getPrototypeOf(target) {\n                $mol_wire_proxy_pub(id, target).promote();\n                return $mol_wire_proxy(id, Reflect.getPrototypeOf(target));\n            },\n            isExtensible(target) {\n                $mol_wire_proxy_pub(id, target).promote();\n                return Reflect.isExtensible(target);\n            },\n            // Writers\n            set(target, property, next) {\n                const pub = pubs.get(target);\n                if (pub) {\n                    const prev = Reflect.get(target, property);\n                    if ($mol_compare_deep(prev, next))\n                        return true;\n                    pub.emit();\n                }\n                return Reflect.set(target, property, next);\n            },\n            defineProperty(target, property, attributes) {\n                pubs.get(target)?.emit();\n                return Reflect.defineProperty(target, property, attributes);\n            },\n            deleteProperty(target, property) {\n                pubs.get(target)?.emit();\n                return Reflect.deleteProperty(target, property);\n            },\n            setPrototypeOf(target, proto) {\n                pubs.get(target)?.emit();\n                return Reflect.setPrototypeOf(target, proto);\n            },\n            preventExtensions(target) {\n                pubs.get(target)?.emit();\n                return Reflect.preventExtensions(target);\n            },\n        });\n    }\n    $.$mol_wire_proxy = $mol_wire_proxy;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    /** reactive Dictionary */\n    class $mol_wire_dict extends Map {\n        pub = new $mol_wire_pub;\n        // Accessors\n        has(key) {\n            this.pub.promote();\n            return super.has(key);\n        }\n        get(key) {\n            this.pub.promote();\n            return super.get(key);\n        }\n        entries() {\n            this.pub.promote();\n            return super.entries();\n        }\n        keys() {\n            this.pub.promote();\n            return super.keys();\n        }\n        values() {\n            this.pub.promote();\n            return super.values();\n        }\n        forEach(task, self) {\n            this.pub.promote();\n            super.forEach(task, self);\n        }\n        [Symbol.iterator]() {\n            this.pub.promote();\n            return super[Symbol.iterator]();\n        }\n        get size() {\n            this.pub.promote();\n            return super.size;\n        }\n        // Mutators\n        set(key, value) {\n            if (super.get(key) === value)\n                return this;\n            super.set(key, value);\n            this.pub?.emit(); // undefined in constructor\n            return this;\n        }\n        delete(key) {\n            const res = super.delete(key);\n            if (res)\n                this.pub.emit();\n            return res;\n        }\n        clear() {\n            if (!super.size)\n                return;\n            super.clear();\n            this.pub.emit();\n        }\n        // Extensions\n        item(key, next) {\n            if (next === undefined)\n                return this.get(key) ?? null;\n            if (next === null)\n                this.delete(key);\n            else\n                this.set(key, next);\n            return next;\n        }\n    }\n    $.$mol_wire_dict = $mol_wire_dict;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    class $mol_promise extends Promise {\n        done;\n        fail;\n        constructor(executor) {\n            let done;\n            let fail;\n            super((d, f) => {\n                done = d;\n                fail = f;\n                executor?.(d, f);\n            });\n            this.done = done;\n            this.fail = fail;\n        }\n    }\n    $.$mol_promise = $mol_promise;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    function $mol_wait_timeout_async(timeout) {\n        const promise = new $mol_promise();\n        const task = new this.$mol_after_timeout(timeout, () => promise.done());\n        return Object.assign(promise, {\n            destructor: () => task.destructor()\n        });\n    }\n    $.$mol_wait_timeout_async = $mol_wait_timeout_async;\n    function $mol_wait_timeout(timeout) {\n        return this.$mol_wire_sync(this).$mol_wait_timeout_async(timeout);\n    }\n    $.$mol_wait_timeout = $mol_wait_timeout;\n})($ || ($ = {}));\n\n;\n\"use strict\";\nvar $;\n(function ($) {\n    /** Watch and logs reactive states. Logger automatically added to test bundle which is adding to `test.html`. */\n    class $mol_wire_log extends $mol_object2 {\n        static watch(task) {\n            return task;\n        }\n        static track(fiber) {\n            const prev = $mol_wire_probe(() => this.track(fiber));\n            let next;\n            try {\n                next = fiber.sync();\n            }\n            finally {\n                for (const pub of fiber.pub_list) {\n                    if (pub instanceof $mol_wire_fiber) {\n                        this.track(pub);\n                    }\n                }\n            }\n            if (fiber.host === this)\n                return next;\n            if ($mol_compare_deep(prev, next)) {\n                this.$.$mol_log3_rise({\n                    message: '💧 Same',\n                    place: fiber,\n                });\n            }\n            else if (prev !== undefined) {\n                this.$.$mol_log3_rise({\n                    message: '🔥 Next',\n                    place: fiber,\n                    prev,\n                });\n            }\n            return next;\n        }\n        static active() {\n            try {\n                this.watch()?.();\n            }\n            catch (error) {\n                $mol_fail_log(error);\n            }\n            finally {\n                for (const pub of $mol_wire_auto().pub_list) {\n                    if (pub instanceof $mol_wire_fiber) {\n                        this.track(pub);\n                    }\n                }\n            }\n        }\n    }\n    __decorate([\n        $mol_mem\n    ], $mol_wire_log, \"watch\", null);\n    __decorate([\n        $mol_mem_key\n    ], $mol_wire_log, \"track\", null);\n    __decorate([\n        $mol_mem\n    ], $mol_wire_log, \"active\", null);\n    $.$mol_wire_log = $mol_wire_log;\n})($ || ($ = {}));\n\n\n\n"]}