{"version":3,"sources":["jsdelivr-header.js","/npm/rionite@0.42.25/dist/rionite.polyfills.js"],"names":[],"mappings":"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","file":"/npm/rionite@0.42.25/dist/rionite.polyfills.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/rionite@0.42.25/dist/rionite.polyfills.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/*!\nISC License\n\nCopyright (c) 2014-2018, Andrea Giammarchi, @WebReflection\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE\nOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n\n*/\n;(function(window, polyfill){'use strict';\n\n  // DO NOT USE THIS FILE DIRECTLY, IT WON'T WORK\n  // THIS IS A PROJECT BASED ON A BUILD SYSTEM\n  // THIS FILE IS JUST WRAPPED UP RESULTING IN\n  // build/document-register-element.js\n  // and its .max.js counter part\n\n  var\n    document = window.document,\n    Object = window.Object\n  ;\n\n  var htmlClass = (function (info) {\n    // (C) Andrea Giammarchi - @WebReflection - MIT Style\n    var\n      catchClass = /^[A-Z]+[a-z]/,\n      filterBy = function (re) {\n        var arr = [], tag;\n        for (tag in register) {\n          if (re.test(tag)) arr.push(tag);\n        }\n        return arr;\n      },\n      add = function (Class, tag) {\n        tag = tag.toLowerCase();\n        if (!(tag in register)) {\n          register[Class] = (register[Class] || []).concat(tag);\n          register[tag] = (register[tag.toUpperCase()] = Class);\n        }\n      },\n      register = (Object.create || Object)(null),\n      htmlClass = {},\n      i, section, tags, Class\n    ;\n    for (section in info) {\n      for (Class in info[section]) {\n        tags = info[section][Class];\n        register[Class] = tags;\n        for (i = 0; i < tags.length; i++) {\n          register[tags[i].toLowerCase()] =\n          register[tags[i].toUpperCase()] = Class;\n        }\n      }\n    }\n    htmlClass.get = function get(tagOrClass) {\n      return typeof tagOrClass === 'string' ?\n        (register[tagOrClass] || (catchClass.test(tagOrClass) ? [] : '')) :\n        filterBy(tagOrClass);\n    };\n    htmlClass.set = function set(tag, Class) {\n      return (catchClass.test(tag) ?\n        add(tag, Class) :\n        add(Class, tag)\n      ), htmlClass;\n    };\n    return htmlClass;\n  }({\n    \"collections\": {\n      \"HTMLAllCollection\": [\n        \"all\"\n      ],\n      \"HTMLCollection\": [\n        \"forms\"\n      ],\n      \"HTMLFormControlsCollection\": [\n        \"elements\"\n      ],\n      \"HTMLOptionsCollection\": [\n        \"options\"\n      ]\n    },\n    \"elements\": {\n      \"Element\": [\n        \"element\"\n      ],\n      \"HTMLAnchorElement\": [\n        \"a\"\n      ],\n      \"HTMLAppletElement\": [\n        \"applet\"\n      ],\n      \"HTMLAreaElement\": [\n        \"area\"\n      ],\n      \"HTMLAttachmentElement\": [\n        \"attachment\"\n      ],\n      \"HTMLAudioElement\": [\n        \"audio\"\n      ],\n      \"HTMLBRElement\": [\n        \"br\"\n      ],\n      \"HTMLBaseElement\": [\n        \"base\"\n      ],\n      \"HTMLBodyElement\": [\n        \"body\"\n      ],\n      \"HTMLButtonElement\": [\n        \"button\"\n      ],\n      \"HTMLCanvasElement\": [\n        \"canvas\"\n      ],\n      \"HTMLContentElement\": [\n        \"content\"\n      ],\n      \"HTMLDListElement\": [\n        \"dl\"\n      ],\n      \"HTMLDataElement\": [\n        \"data\"\n      ],\n      \"HTMLDataListElement\": [\n        \"datalist\"\n      ],\n      \"HTMLDetailsElement\": [\n        \"details\"\n      ],\n      \"HTMLDialogElement\": [\n        \"dialog\"\n      ],\n      \"HTMLDirectoryElement\": [\n        \"dir\"\n      ],\n      \"HTMLDivElement\": [\n        \"div\"\n      ],\n      \"HTMLDocument\": [\n        \"document\"\n      ],\n      \"HTMLElement\": [\n        \"element\",\n        \"abbr\",\n        \"address\",\n        \"article\",\n        \"aside\",\n        \"b\",\n        \"bdi\",\n        \"bdo\",\n        \"cite\",\n        \"code\",\n        \"command\",\n        \"dd\",\n        \"dfn\",\n        \"dt\",\n        \"em\",\n        \"figcaption\",\n        \"figure\",\n        \"footer\",\n        \"header\",\n        \"i\",\n        \"kbd\",\n        \"mark\",\n        \"nav\",\n        \"noscript\",\n        \"rp\",\n        \"rt\",\n        \"ruby\",\n        \"s\",\n        \"samp\",\n        \"section\",\n        \"small\",\n        \"strong\",\n        \"sub\",\n        \"summary\",\n        \"sup\",\n        \"u\",\n        \"var\",\n        \"wbr\"\n      ],\n      \"HTMLEmbedElement\": [\n        \"embed\"\n      ],\n      \"HTMLFieldSetElement\": [\n        \"fieldset\"\n      ],\n      \"HTMLFontElement\": [\n        \"font\"\n      ],\n      \"HTMLFormElement\": [\n        \"form\"\n      ],\n      \"HTMLFrameElement\": [\n        \"frame\"\n      ],\n      \"HTMLFrameSetElement\": [\n        \"frameset\"\n      ],\n      \"HTMLHRElement\": [\n        \"hr\"\n      ],\n      \"HTMLHeadElement\": [\n        \"head\"\n      ],\n      \"HTMLHeadingElement\": [\n        \"h1\",\n        \"h2\",\n        \"h3\",\n        \"h4\",\n        \"h5\",\n        \"h6\"\n      ],\n      \"HTMLHtmlElement\": [\n        \"html\"\n      ],\n      \"HTMLIFrameElement\": [\n        \"iframe\"\n      ],\n      \"HTMLImageElement\": [\n        \"img\"\n      ],\n      \"HTMLInputElement\": [\n        \"input\"\n      ],\n      \"HTMLKeygenElement\": [\n        \"keygen\"\n      ],\n      \"HTMLLIElement\": [\n        \"li\"\n      ],\n      \"HTMLLabelElement\": [\n        \"label\"\n      ],\n      \"HTMLLegendElement\": [\n        \"legend\"\n      ],\n      \"HTMLLinkElement\": [\n        \"link\"\n      ],\n      \"HTMLMapElement\": [\n        \"map\"\n      ],\n      \"HTMLMarqueeElement\": [\n        \"marquee\"\n      ],\n      \"HTMLMediaElement\": [\n        \"media\"\n      ],\n      \"HTMLMenuElement\": [\n        \"menu\"\n      ],\n      \"HTMLMenuItemElement\": [\n        \"menuitem\"\n      ],\n      \"HTMLMetaElement\": [\n        \"meta\"\n      ],\n      \"HTMLMeterElement\": [\n        \"meter\"\n      ],\n      \"HTMLModElement\": [\n        \"del\",\n        \"ins\"\n      ],\n      \"HTMLOListElement\": [\n        \"ol\"\n      ],\n      \"HTMLObjectElement\": [\n        \"object\"\n      ],\n      \"HTMLOptGroupElement\": [\n        \"optgroup\"\n      ],\n      \"HTMLOptionElement\": [\n        \"option\"\n      ],\n      \"HTMLOutputElement\": [\n        \"output\"\n      ],\n      \"HTMLParagraphElement\": [\n        \"p\"\n      ],\n      \"HTMLParamElement\": [\n        \"param\"\n      ],\n      \"HTMLPictureElement\": [\n        \"picture\"\n      ],\n      \"HTMLPreElement\": [\n        \"pre\"\n      ],\n      \"HTMLProgressElement\": [\n        \"progress\"\n      ],\n      \"HTMLQuoteElement\": [\n        \"blockquote\",\n        \"q\",\n        \"quote\"\n      ],\n      \"HTMLScriptElement\": [\n        \"script\"\n      ],\n      \"HTMLSelectElement\": [\n        \"select\"\n      ],\n      \"HTMLShadowElement\": [\n        \"shadow\"\n      ],\n      \"HTMLSlotElement\": [\n        \"slot\"\n      ],\n      \"HTMLSourceElement\": [\n        \"source\"\n      ],\n      \"HTMLSpanElement\": [\n        \"span\"\n      ],\n      \"HTMLStyleElement\": [\n        \"style\"\n      ],\n      \"HTMLTableCaptionElement\": [\n        \"caption\"\n      ],\n      \"HTMLTableCellElement\": [\n        \"td\",\n        \"th\"\n      ],\n      \"HTMLTableColElement\": [\n        \"col\",\n        \"colgroup\"\n      ],\n      \"HTMLTableElement\": [\n        \"table\"\n      ],\n      \"HTMLTableRowElement\": [\n        \"tr\"\n      ],\n      \"HTMLTableSectionElement\": [\n        \"thead\",\n        \"tbody\",\n        \"tfoot\"\n      ],\n      \"HTMLTemplateElement\": [\n        \"template\"\n      ],\n      \"HTMLTextAreaElement\": [\n        \"textarea\"\n      ],\n      \"HTMLTimeElement\": [\n        \"time\"\n      ],\n      \"HTMLTitleElement\": [\n        \"title\"\n      ],\n      \"HTMLTrackElement\": [\n        \"track\"\n      ],\n      \"HTMLUListElement\": [\n        \"ul\"\n      ],\n      \"HTMLUnknownElement\": [\n        \"unknown\",\n        \"vhgroupv\",\n        \"vkeygen\"\n      ],\n      \"HTMLVideoElement\": [\n        \"video\"\n      ]\n    },\n    \"nodes\": {\n      \"Attr\": [\n        \"node\"\n      ],\n      \"Audio\": [\n        \"audio\"\n      ],\n      \"CDATASection\": [\n        \"node\"\n      ],\n      \"CharacterData\": [\n        \"node\"\n      ],\n      \"Comment\": [\n        \"#comment\"\n      ],\n      \"Document\": [\n        \"#document\"\n      ],\n      \"DocumentFragment\": [\n        \"#document-fragment\"\n      ],\n      \"DocumentType\": [\n        \"node\"\n      ],\n      \"HTMLDocument\": [\n        \"#document\"\n      ],\n      \"Image\": [\n        \"img\"\n      ],\n      \"Option\": [\n        \"option\"\n      ],\n      \"ProcessingInstruction\": [\n        \"node\"\n      ],\n      \"ShadowRoot\": [\n        \"#shadow-root\"\n      ],\n      \"Text\": [\n        \"#text\"\n      ],\n      \"XMLDocument\": [\n        \"xml\"\n      ]\n    }\n  }));\n\n\n\n  // passed at runtime, configurable via nodejs module\n  if (typeof polyfill !== 'object') polyfill = {type: polyfill || 'auto'};\n\n  var\n    // V0 polyfill entry\n    REGISTER_ELEMENT = 'registerElement',\n\n    // pseudo-random number used as expando/unique name on feature detection\n    UID = window.Math.random() * 10e4 >> 0,\n\n    // IE < 11 only + old WebKit for attributes + feature detection\n    EXPANDO_UID = '__' + REGISTER_ELEMENT + UID,\n\n    // shortcuts and costants\n    ADD_EVENT_LISTENER = 'addEventListener',\n    ATTACHED = 'attached',\n    CALLBACK = 'Callback',\n    DETACHED = 'detached',\n    EXTENDS = 'extends',\n\n    ATTRIBUTE_CHANGED_CALLBACK = 'attributeChanged' + CALLBACK,\n    ATTACHED_CALLBACK = ATTACHED + CALLBACK,\n    CONNECTED_CALLBACK = 'connected' + CALLBACK,\n    DISCONNECTED_CALLBACK = 'disconnected' + CALLBACK,\n    CREATED_CALLBACK = 'created' + CALLBACK,\n    DETACHED_CALLBACK = DETACHED + CALLBACK,\n\n    ADDITION = 'ADDITION',\n    MODIFICATION = 'MODIFICATION',\n    REMOVAL = 'REMOVAL',\n\n    DOM_ATTR_MODIFIED = 'DOMAttrModified',\n    DOM_CONTENT_LOADED = 'DOMContentLoaded',\n    DOM_SUBTREE_MODIFIED = 'DOMSubtreeModified',\n\n    PREFIX_TAG = '<',\n    PREFIX_IS = '=',\n\n    // valid and invalid node names\n    validName = /^[A-Z][._A-Z0-9]*-[-._A-Z0-9]*$/,\n    invalidNames = [\n      'ANNOTATION-XML',\n      'COLOR-PROFILE',\n      'FONT-FACE',\n      'FONT-FACE-SRC',\n      'FONT-FACE-URI',\n      'FONT-FACE-FORMAT',\n      'FONT-FACE-NAME',\n      'MISSING-GLYPH'\n    ],\n\n    // registered types and their prototypes\n    types = [],\n    protos = [],\n\n    // to query subnodes\n    query = '',\n\n    // html shortcut used to feature detect\n    documentElement = document.documentElement,\n\n    // ES5 inline helpers || basic patches\n    indexOf = types.indexOf || function (v) {\n      for(var i = this.length; i-- && this[i] !== v;){}\n      return i;\n    },\n\n    // other helpers / shortcuts\n    OP = Object.prototype,\n    hOP = OP.hasOwnProperty,\n    iPO = OP.isPrototypeOf,\n\n    defineProperty = Object.defineProperty,\n    empty = [],\n    gOPD = Object.getOwnPropertyDescriptor,\n    gOPN = Object.getOwnPropertyNames,\n    gPO = Object.getPrototypeOf,\n    sPO = Object.setPrototypeOf,\n\n    // jshint proto: true\n    hasProto = !!Object.__proto__,\n\n    // V1 helpers\n    fixGetClass = false,\n    DRECEV1 = '__dreCEv1',\n    customElements = window.customElements,\n    usableCustomElements = !/^force/.test(polyfill.type) && !!(\n      customElements &&\n      customElements.define &&\n      customElements.get &&\n      customElements.whenDefined\n    ),\n    Dict = Object.create || Object,\n    Map = window.Map || function Map() {\n      var K = [], V = [], i;\n      return {\n        get: function (k) {\n          return V[indexOf.call(K, k)];\n        },\n        set: function (k, v) {\n          i = indexOf.call(K, k);\n          if (i < 0) V[K.push(k) - 1] = v;\n          else V[i] = v;\n        }\n      };\n    },\n    Promise = window.Promise || function (fn) {\n      var\n        notify = [],\n        done = false,\n        p = {\n          'catch': function () {\n            return p;\n          },\n          'then': function (cb) {\n            notify.push(cb);\n            if (done) setTimeout(resolve, 1);\n            return p;\n          }\n        }\n      ;\n      function resolve(value) {\n        done = true;\n        while (notify.length) notify.shift()(value);\n      }\n      fn(resolve);\n      return p;\n    },\n    justCreated = false,\n    constructors = Dict(null),\n    waitingList = Dict(null),\n    nodeNames = new Map(),\n    secondArgument = function (is) {\n      return is.toLowerCase();\n    },\n\n    // used to create unique instances\n    create = Object.create || function Bridge(proto) {\n      // silly broken polyfill probably ever used but short enough to work\n      return proto ? ((Bridge.prototype = proto), new Bridge()) : this;\n    },\n\n    // will set the prototype if possible\n    // or copy over all properties\n    setPrototype = sPO || (\n      hasProto ?\n        function (o, p) {\n          o.__proto__ = p;\n          return o;\n        } : (\n      (gOPN && gOPD) ?\n        (function(){\n          function setProperties(o, p) {\n            for (var\n              key,\n              names = gOPN(p),\n              i = 0, length = names.length;\n              i < length; i++\n            ) {\n              key = names[i];\n              if (!hOP.call(o, key)) {\n                defineProperty(o, key, gOPD(p, key));\n              }\n            }\n          }\n          return function (o, p) {\n            do {\n              setProperties(o, p);\n            } while ((p = gPO(p)) && !iPO.call(p, o));\n            return o;\n          };\n        }()) :\n        function (o, p) {\n          for (var key in p) {\n            o[key] = p[key];\n          }\n          return o;\n        }\n    )),\n\n    // DOM shortcuts and helpers, if any\n\n    MutationObserver = window.MutationObserver ||\n                       window.WebKitMutationObserver,\n\n    HTMLAnchorElement = window.HTMLAnchorElement,\n\n    HTMLElementPrototype = (\n      window.HTMLElement ||\n      window.Element ||\n      window.Node\n    ).prototype,\n\n    IE8 = !iPO.call(HTMLElementPrototype, documentElement),\n\n    safeProperty = IE8 ? function (o, k, d) {\n      o[k] = d.value;\n      return o;\n    } : defineProperty,\n\n    isValidNode = IE8 ?\n      function (node) {\n        return node.nodeType === 1;\n      } :\n      function (node) {\n        return iPO.call(HTMLElementPrototype, node);\n      },\n\n    targets = IE8 && [],\n\n    attachShadow = HTMLElementPrototype.attachShadow,\n    cloneNode = HTMLElementPrototype.cloneNode,\n    closest = HTMLElementPrototype.closest || function (name) {\n      var self = this;\n      while (self && self.nodeName !== name)\n        self = self.parentNode;\n      return self;\n    },\n    dispatchEvent = HTMLElementPrototype.dispatchEvent,\n    getAttribute = HTMLElementPrototype.getAttribute,\n    hasAttribute = HTMLElementPrototype.hasAttribute,\n    removeAttribute = HTMLElementPrototype.removeAttribute,\n    setAttribute = HTMLElementPrototype.setAttribute,\n\n    // replaced later on\n    createElement = document.createElement,\n    importNode = document.importNode,\n    patchedCreateElement = createElement,\n\n    // shared observer for all attributes\n    attributesObserver = MutationObserver && {\n      attributes: true,\n      characterData: true,\n      attributeOldValue: true\n    },\n\n    // useful to detect only if there's no MutationObserver\n    DOMAttrModified = MutationObserver || function(e) {\n      doesNotSupportDOMAttrModified = false;\n      documentElement.removeEventListener(\n        DOM_ATTR_MODIFIED,\n        DOMAttrModified\n      );\n    },\n\n    // will both be used to make DOMNodeInserted asynchronous\n    asapQueue,\n    asapTimer = 0,\n\n    // internal flags\n    V0 = REGISTER_ELEMENT in document &&\n         !/^force-all/.test(polyfill.type),\n    setListener = true,\n    justSetup = false,\n    doesNotSupportDOMAttrModified = true,\n    dropDomContentLoaded = true,\n\n    // needed for the innerHTML helper\n    notFromInnerHTMLHelper = true,\n\n    // optionally defined later on\n    onSubtreeModified,\n    callDOMAttrModified,\n    getAttributesMirror,\n    observer,\n    observe,\n\n    // based on setting prototype capability\n    // will check proto or the expando attribute\n    // in order to setup the node once\n    patchIfNotAlready,\n    patch,\n\n    // used for tests\n    tmp\n  ;\n\n  // IE11 disconnectedCallback issue #\n  // to be tested before any createElement patch\n  if (MutationObserver) {\n    // original fix:\n    // https://github.com/javan/mutation-observer-inner-html-shim\n    tmp = document.createElement('div');\n    tmp.innerHTML = '<div><div></div></div>';\n    new MutationObserver(function (mutations, observer) {\n      if (\n        mutations[0] &&\n        mutations[0].type == 'childList' &&\n        !mutations[0].removedNodes[0].childNodes.length\n      ) {\n        tmp = gOPD(HTMLElementPrototype, 'innerHTML');\n        var set = tmp && tmp.set;\n        if (set)\n          defineProperty(HTMLElementPrototype, 'innerHTML', {\n            set: function (value) {\n              while (this.lastChild)\n                this.removeChild(this.lastChild);\n              set.call(this, value);\n            }\n          });\n      }\n      observer.disconnect();\n      tmp = null;\n    }).observe(tmp, {childList: true, subtree: true});\n    tmp.innerHTML = \"\";\n  }\n\n  // only if needed\n  if (!V0) {\n\n    if (sPO || hasProto) {\n        patchIfNotAlready = function (node, proto) {\n          if (!iPO.call(proto, node)) {\n            setupNode(node, proto);\n          }\n        };\n        patch = setupNode;\n    } else {\n        patchIfNotAlready = function (node, proto) {\n          if (!node[EXPANDO_UID]) {\n            node[EXPANDO_UID] = Object(true);\n            setupNode(node, proto);\n          }\n        };\n        patch = patchIfNotAlready;\n    }\n\n    if (IE8) {\n      doesNotSupportDOMAttrModified = false;\n      (function (){\n        var\n          descriptor = gOPD(HTMLElementPrototype, ADD_EVENT_LISTENER),\n          addEventListener = descriptor.value,\n          patchedRemoveAttribute = function (name) {\n            var e = new CustomEvent(DOM_ATTR_MODIFIED, {bubbles: true});\n            e.attrName = name;\n            e.prevValue = getAttribute.call(this, name);\n            e.newValue = null;\n            e[REMOVAL] = e.attrChange = 2;\n            removeAttribute.call(this, name);\n            dispatchEvent.call(this, e);\n          },\n          patchedSetAttribute = function (name, value) {\n            var\n              had = hasAttribute.call(this, name),\n              old = had && getAttribute.call(this, name),\n              e = new CustomEvent(DOM_ATTR_MODIFIED, {bubbles: true})\n            ;\n            setAttribute.call(this, name, value);\n            e.attrName = name;\n            e.prevValue = had ? old : null;\n            e.newValue = value;\n            if (had) {\n              e[MODIFICATION] = e.attrChange = 1;\n            } else {\n              e[ADDITION] = e.attrChange = 0;\n            }\n            dispatchEvent.call(this, e);\n          },\n          onPropertyChange = function (e) {\n            // jshint eqnull:true\n            var\n              node = e.currentTarget,\n              superSecret = node[EXPANDO_UID],\n              propertyName = e.propertyName,\n              event\n            ;\n            if (superSecret.hasOwnProperty(propertyName)) {\n              superSecret = superSecret[propertyName];\n              event = new CustomEvent(DOM_ATTR_MODIFIED, {bubbles: true});\n              event.attrName = superSecret.name;\n              event.prevValue = superSecret.value || null;\n              event.newValue = (superSecret.value = node[propertyName] || null);\n              if (event.prevValue == null) {\n                event[ADDITION] = event.attrChange = 0;\n              } else {\n                event[MODIFICATION] = event.attrChange = 1;\n              }\n              dispatchEvent.call(node, event);\n            }\n          }\n        ;\n        descriptor.value = function (type, handler, capture) {\n          if (\n            type === DOM_ATTR_MODIFIED &&\n            this[ATTRIBUTE_CHANGED_CALLBACK] &&\n            this.setAttribute !== patchedSetAttribute\n          ) {\n            this[EXPANDO_UID] = {\n              className: {\n                name: 'class',\n                value: this.className\n              }\n            };\n            this.setAttribute = patchedSetAttribute;\n            this.removeAttribute = patchedRemoveAttribute;\n            addEventListener.call(this, 'propertychange', onPropertyChange);\n          }\n          addEventListener.call(this, type, handler, capture);\n        };\n        defineProperty(HTMLElementPrototype, ADD_EVENT_LISTENER, descriptor);\n      }());\n    } else if (!MutationObserver) {\n      documentElement[ADD_EVENT_LISTENER](DOM_ATTR_MODIFIED, DOMAttrModified);\n      documentElement.setAttribute(EXPANDO_UID, 1);\n      documentElement.removeAttribute(EXPANDO_UID);\n      if (doesNotSupportDOMAttrModified) {\n        onSubtreeModified = function (e) {\n          var\n            node = this,\n            oldAttributes,\n            newAttributes,\n            key\n          ;\n          if (node === e.target) {\n            oldAttributes = node[EXPANDO_UID];\n            node[EXPANDO_UID] = (newAttributes = getAttributesMirror(node));\n            for (key in newAttributes) {\n              if (!(key in oldAttributes)) {\n                // attribute was added\n                return callDOMAttrModified(\n                  0,\n                  node,\n                  key,\n                  oldAttributes[key],\n                  newAttributes[key],\n                  ADDITION\n                );\n              } else if (newAttributes[key] !== oldAttributes[key]) {\n                // attribute was changed\n                return callDOMAttrModified(\n                  1,\n                  node,\n                  key,\n                  oldAttributes[key],\n                  newAttributes[key],\n                  MODIFICATION\n                );\n              }\n            }\n            // checking if it has been removed\n            for (key in oldAttributes) {\n              if (!(key in newAttributes)) {\n                // attribute removed\n                return callDOMAttrModified(\n                  2,\n                  node,\n                  key,\n                  oldAttributes[key],\n                  newAttributes[key],\n                  REMOVAL\n                );\n              }\n            }\n          }\n        };\n        callDOMAttrModified = function (\n          attrChange,\n          currentTarget,\n          attrName,\n          prevValue,\n          newValue,\n          action\n        ) {\n          var e = {\n            attrChange: attrChange,\n            currentTarget: currentTarget,\n            attrName: attrName,\n            prevValue: prevValue,\n            newValue: newValue\n          };\n          e[action] = attrChange;\n          onDOMAttrModified(e);\n        };\n        getAttributesMirror = function (node) {\n          for (var\n            attr, name,\n            result = {},\n            attributes = node.attributes,\n            i = 0, length = attributes.length;\n            i < length; i++\n          ) {\n            attr = attributes[i];\n            name = attr.name;\n            if (name !== 'setAttribute') {\n              result[name] = attr.value;\n            }\n          }\n          return result;\n        };\n      }\n    }\n\n    // set as enumerable, writable and configurable\n    document[REGISTER_ELEMENT] = function registerElement(type, options) {\n      upperType = type.toUpperCase();\n      if (setListener) {\n        // only first time document.registerElement is used\n        // we need to set this listener\n        // setting it by default might slow down for no reason\n        setListener = false;\n        if (MutationObserver) {\n          observer = (function(attached, detached){\n            function checkEmAll(list, callback) {\n              for (var i = 0, length = list.length; i < length; callback(list[i++])){}\n            }\n            return new MutationObserver(function (records) {\n              for (var\n                current, node, newValue,\n                i = 0, length = records.length; i < length; i++\n              ) {\n                current = records[i];\n                if (current.type === 'childList') {\n                  checkEmAll(current.addedNodes, attached);\n                  checkEmAll(current.removedNodes, detached);\n                } else {\n                  node = current.target;\n                  if (notFromInnerHTMLHelper &&\n                      node[ATTRIBUTE_CHANGED_CALLBACK] &&\n                      current.attributeName !== 'style') {\n                    newValue = getAttribute.call(node, current.attributeName);\n                    if (newValue !== current.oldValue) {\n                      node[ATTRIBUTE_CHANGED_CALLBACK](\n                        current.attributeName,\n                        current.oldValue,\n                        newValue\n                      );\n                    }\n                  }\n                }\n              }\n            });\n          }(executeAction(ATTACHED), executeAction(DETACHED)));\n          observe = function (node) {\n            observer.observe(\n              node,\n              {\n                childList: true,\n                subtree: true\n              }\n            );\n            return node;\n          };\n          observe(document);\n          if (attachShadow) {\n            HTMLElementPrototype.attachShadow = function () {\n              return observe(attachShadow.apply(this, arguments));\n            };\n          }\n        } else {\n          asapQueue = [];\n          document[ADD_EVENT_LISTENER]('DOMNodeInserted', onDOMNode(ATTACHED));\n          document[ADD_EVENT_LISTENER]('DOMNodeRemoved', onDOMNode(DETACHED));\n        }\n\n        document[ADD_EVENT_LISTENER](DOM_CONTENT_LOADED, onReadyStateChange);\n        document[ADD_EVENT_LISTENER]('readystatechange', onReadyStateChange);\n\n        document.importNode = function (node, deep) {\n          switch (node.nodeType) {\n            case 1:\n              return setupAll(document, importNode, [node, !!deep]);\n            case 11:\n              for (var\n                fragment = document.createDocumentFragment(),\n                childNodes = node.childNodes,\n                length = childNodes.length,\n                i = 0; i < length; i++\n              )\n                fragment.appendChild(document.importNode(childNodes[i], !!deep));\n              return fragment;\n            default:\n              return cloneNode.call(node, !!deep);\n          }\n        };\n\n        [HTMLElementPrototype, DocumentFragment.prototype].forEach(function (proto) {\n          proto.cloneNode = function (deep) {\n            return setupAll(this, cloneNode, [!!deep]);\n          };\n        });\n      }\n\n      if (justSetup) return (justSetup = false);\n\n      if (-2 < (\n        indexOf.call(types, PREFIX_IS + upperType) +\n        indexOf.call(types, PREFIX_TAG + upperType)\n      )) {\n        throwTypeError(type);\n      }\n\n      if (!validName.test(upperType) || -1 < indexOf.call(invalidNames, upperType)) {\n        throw new Error('The type ' + type + ' is invalid');\n      }\n\n      var\n        constructor = function () {\n          return extending ?\n            document.createElement(nodeName, upperType) :\n            document.createElement(nodeName);\n        },\n        opt = options || OP,\n        extending = hOP.call(opt, EXTENDS),\n        nodeName = extending ? options[EXTENDS].toUpperCase() : upperType,\n        upperType,\n        i\n      ;\n\n      if (extending && -1 < (\n        indexOf.call(types, PREFIX_TAG + nodeName)\n      )) {\n        throwTypeError(nodeName);\n      }\n\n      i = types.push((extending ? PREFIX_IS : PREFIX_TAG) + upperType) - 1;\n\n      query = query.concat(\n        query.length ? ',' : '',\n        extending ? nodeName + '[is=\"' + type.toLowerCase() + '\"]' : nodeName\n      );\n\n      constructor.prototype = (\n        protos[i] = hOP.call(opt, 'prototype') ?\n          opt.prototype :\n          create(HTMLElementPrototype)\n      );\n\n      if (query.length) loopAndVerify(\n        document.querySelectorAll(query),\n        ATTACHED\n      );\n\n      return constructor;\n    };\n\n    document.createElement = (patchedCreateElement = function (localName, typeExtension) {\n      var\n        is = getIs(typeExtension),\n        node = is ?\n          createElement.call(document, localName, secondArgument(is)) :\n          createElement.call(document, localName),\n        name = '' + localName,\n        i = indexOf.call(\n          types,\n          (is ? PREFIX_IS : PREFIX_TAG) +\n          (is || name).toUpperCase()\n        ),\n        setup = -1 < i\n      ;\n      if (is) {\n        node.setAttribute('is', is = is.toLowerCase());\n        if (setup) {\n          setup = isInQSA(name.toUpperCase(), is);\n        }\n      }\n      notFromInnerHTMLHelper = !document.createElement.innerHTMLHelper;\n      if (setup) patch(node, protos[i]);\n      return node;\n    });\n\n  }\n\n  function ASAP() {\n    var queue = asapQueue.splice(0, asapQueue.length);\n    asapTimer = 0;\n    while (queue.length) {\n      queue.shift().call(\n        null, queue.shift()\n      );\n    }\n  }\n\n  function loopAndVerify(list, action) {\n    for (var i = 0, length = list.length; i < length; i++) {\n      verifyAndSetupAndAction(list[i], action);\n    }\n  }\n\n  function loopAndSetup(list) {\n    for (var i = 0, length = list.length, node; i < length; i++) {\n      node = list[i];\n      patch(node, protos[getTypeIndex(node)]);\n    }\n  }\n\n  function executeAction(action) {\n    return function (node) {\n      if (isValidNode(node)) {\n        verifyAndSetupAndAction(node, action);\n        if (query.length) loopAndVerify(\n          node.querySelectorAll(query),\n          action\n        );\n      }\n    };\n  }\n\n  function getTypeIndex(target) {\n    var\n      is = getAttribute.call(target, 'is'),\n      nodeName = target.nodeName.toUpperCase(),\n      i = indexOf.call(\n        types,\n        is ?\n            PREFIX_IS + is.toUpperCase() :\n            PREFIX_TAG + nodeName\n      )\n    ;\n    return is && -1 < i && !isInQSA(nodeName, is) ? -1 : i;\n  }\n\n  function isInQSA(name, type) {\n    return -1 < query.indexOf(name + '[is=\"' + type + '\"]');\n  }\n\n  function onDOMAttrModified(e) {\n    var\n      node = e.currentTarget,\n      attrChange = e.attrChange,\n      attrName = e.attrName,\n      target = e.target,\n      addition = e[ADDITION] || 2,\n      removal = e[REMOVAL] || 3\n    ;\n    if (notFromInnerHTMLHelper &&\n        (!target || target === node) &&\n        node[ATTRIBUTE_CHANGED_CALLBACK] &&\n        attrName !== 'style' && (\n          e.prevValue !== e.newValue ||\n          // IE9, IE10, and Opera 12 gotcha\n          e.newValue === '' && (\n            attrChange === addition ||\n            attrChange === removal\n          )\n    )) {\n      node[ATTRIBUTE_CHANGED_CALLBACK](\n        attrName,\n        attrChange === addition ? null : e.prevValue,\n        attrChange === removal ? null : e.newValue\n      );\n    }\n  }\n\n  function onDOMNode(action) {\n    var executor = executeAction(action);\n    return function (e) {\n      asapQueue.push(executor, e.target);\n      if (asapTimer) clearTimeout(asapTimer);\n      asapTimer = setTimeout(ASAP, 1);\n    };\n  }\n\n  function onReadyStateChange(e) {\n    if (dropDomContentLoaded) {\n      dropDomContentLoaded = false;\n      e.currentTarget.removeEventListener(DOM_CONTENT_LOADED, onReadyStateChange);\n    }\n    if (query.length) loopAndVerify(\n      (e.target || document).querySelectorAll(query),\n      e.detail === DETACHED ? DETACHED : ATTACHED\n    );\n    if (IE8) purge();\n  }\n\n  function patchedSetAttribute(name, value) {\n    // jshint validthis:true\n    var self = this;\n    setAttribute.call(self, name, value);\n    onSubtreeModified.call(self, {target: self});\n  }\n\n  function setupAll(context, callback, args) {\n    var\n      node = callback.apply(context, args),\n      i\n    ;\n    if (node.nodeType === Node.ELEMENT_NODE) {\n      i = getTypeIndex(node);\n      if (-1 < i) patch(node, protos[i]);\n    }\n    if (args[args.length - 1] && query.length)\n      loopAndSetup(node.querySelectorAll(query));\n    return node;\n  }\n\n  function setupNode(node, proto) {\n    setPrototype(node, proto);\n    if (observer) {\n      observer.observe(node, attributesObserver);\n    } else {\n      if (doesNotSupportDOMAttrModified) {\n        node.setAttribute = patchedSetAttribute;\n        node[EXPANDO_UID] = getAttributesMirror(node);\n        node[ADD_EVENT_LISTENER](DOM_SUBTREE_MODIFIED, onSubtreeModified);\n      }\n      node[ADD_EVENT_LISTENER](DOM_ATTR_MODIFIED, onDOMAttrModified);\n    }\n    if (node[CREATED_CALLBACK] && notFromInnerHTMLHelper) {\n      node.created = true;\n      node[CREATED_CALLBACK]();\n      node.created = false;\n    }\n  }\n\n  function purge() {\n    for (var\n      node,\n      i = 0,\n      length = targets.length;\n      i < length; i++\n    ) {\n      node = targets[i];\n      if (!documentElement.contains(node)) {\n        length--;\n        targets.splice(i--, 1);\n        verifyAndSetupAndAction(node, DETACHED);\n      }\n    }\n  }\n\n  function throwTypeError(type) {\n    throw new Error('A ' + type + ' type is already registered');\n  }\n\n  function verifyAndSetupAndAction(node, action) {\n    var\n      fn,\n      i = getTypeIndex(node),\n      counterAction\n    ;\n    if ((-1 < i) && !closest.call(node, 'TEMPLATE')) {\n      patchIfNotAlready(node, protos[i]);\n      i = 0;\n      if (action === ATTACHED && !node[ATTACHED]) {\n        node[DETACHED] = false;\n        node[ATTACHED] = true;\n        counterAction = 'connected';\n        i = 1;\n        if (IE8 && indexOf.call(targets, node) < 0) {\n          targets.push(node);\n        }\n      } else if (action === DETACHED && !node[DETACHED]) {\n        node[ATTACHED] = false;\n        node[DETACHED] = true;\n        counterAction = 'disconnected';\n        i = 1;\n      }\n      if (i && (fn = (\n        node[action + CALLBACK] ||\n        node[counterAction + CALLBACK]\n      ))) fn.call(node);\n    }\n  }\n\n  // V1 in da House!\n  function CustomElementRegistry() {}\n\n  CustomElementRegistry.prototype = {\n    constructor: CustomElementRegistry,\n    // a workaround for the stubborn WebKit\n    define: usableCustomElements ?\n      function (name, Class, options) {\n        if (options) {\n          CERDefine(name, Class, options);\n        } else {\n          var NAME = name.toUpperCase();\n          constructors[NAME] = {\n            constructor: Class,\n            create: [NAME]\n          };\n          nodeNames.set(Class, NAME);\n          customElements.define(name, Class);\n        }\n      } :\n      CERDefine,\n    get: usableCustomElements ?\n      function (name) {\n        return customElements.get(name) || get(name);\n      } :\n      get,\n    whenDefined: usableCustomElements ?\n      function (name) {\n        return Promise.race([\n          customElements.whenDefined(name),\n          whenDefined(name)\n        ]);\n      } :\n      whenDefined\n  };\n\n  function CERDefine(name, Class, options) {\n    var\n      is = options && options[EXTENDS] || '',\n      CProto = Class.prototype,\n      proto = create(CProto),\n      attributes = Class.observedAttributes || empty,\n      definition = {prototype: proto}\n    ;\n    // TODO: is this needed at all since it's inherited?\n    // defineProperty(proto, 'constructor', {value: Class});\n    safeProperty(proto, CREATED_CALLBACK, {\n        value: function () {\n          if (justCreated) justCreated = false;\n          else if (!this[DRECEV1]) {\n            this[DRECEV1] = true;\n            new Class(this);\n            if (CProto[CREATED_CALLBACK])\n              CProto[CREATED_CALLBACK].call(this);\n            var info = constructors[nodeNames.get(Class)];\n            if (!usableCustomElements || info.create.length > 1) {\n              notifyAttributes(this);\n            }\n          }\n      }\n    });\n    safeProperty(proto, ATTRIBUTE_CHANGED_CALLBACK, {\n      value: function (name) {\n        if (-1 < indexOf.call(attributes, name)) {\n          if (CProto[ATTRIBUTE_CHANGED_CALLBACK])\n            CProto[ATTRIBUTE_CHANGED_CALLBACK].apply(this, arguments);\n        }\n      }\n    });\n    if (CProto[CONNECTED_CALLBACK]) {\n      safeProperty(proto, ATTACHED_CALLBACK, {\n        value: CProto[CONNECTED_CALLBACK]\n      });\n    }\n    if (CProto[DISCONNECTED_CALLBACK]) {\n      safeProperty(proto, DETACHED_CALLBACK, {\n        value: CProto[DISCONNECTED_CALLBACK]\n      });\n    }\n    if (is) definition[EXTENDS] = is;\n    name = name.toUpperCase();\n    constructors[name] = {\n      constructor: Class,\n      create: is ? [is, secondArgument(name)] : [name]\n    };\n    nodeNames.set(Class, name);\n    document[REGISTER_ELEMENT](name.toLowerCase(), definition);\n    whenDefined(name);\n    waitingList[name].r();\n  }\n\n  function get(name) {\n    var info = constructors[name.toUpperCase()];\n    return info && info.constructor;\n  }\n\n  function getIs(options) {\n    return typeof options === 'string' ?\n        options : (options && options.is || '');\n  }\n\n  function notifyAttributes(self) {\n    var\n      callback = self[ATTRIBUTE_CHANGED_CALLBACK],\n      attributes = callback ? self.attributes : empty,\n      i = attributes.length,\n      attribute\n    ;\n    while (i--) {\n      attribute =  attributes[i]; // || attributes.item(i);\n      callback.call(\n        self,\n        attribute.name || attribute.nodeName,\n        null,\n        attribute.value || attribute.nodeValue\n      );\n    }\n  }\n\n  function whenDefined(name) {\n    name = name.toUpperCase();\n    if (!(name in waitingList)) {\n      waitingList[name] = {};\n      waitingList[name].p = new Promise(function (resolve) {\n        waitingList[name].r = resolve;\n      });\n    }\n    return waitingList[name].p;\n  }\n\n  function polyfillV1() {\n    if (customElements) delete window.customElements;\n    defineProperty(window, 'customElements', {\n      configurable: true,\n      value: new CustomElementRegistry()\n    });\n    defineProperty(window, 'CustomElementRegistry', {\n      configurable: true,\n      value: CustomElementRegistry\n    });\n    for (var\n      patchClass = function (name) {\n        var Class = window[name];\n        if (Class) {\n          window[name] = function CustomElementsV1(self) {\n            var info, isNative;\n            if (!self) self = this;\n            if (!self[DRECEV1]) {\n              justCreated = true;\n              info = constructors[nodeNames.get(self.constructor)];\n              isNative = usableCustomElements && info.create.length === 1;\n              self = isNative ?\n                Reflect.construct(Class, empty, info.constructor) :\n                document.createElement.apply(document, info.create);\n              self[DRECEV1] = true;\n              justCreated = false;\n              if (!isNative) notifyAttributes(self);\n            }\n            return self;\n          };\n          window[name].prototype = Class.prototype;\n          try {\n            Class.prototype.constructor = window[name];\n          } catch(WebKit) {\n            fixGetClass = true;\n            defineProperty(Class, DRECEV1, {value: window[name]});\n          }\n        }\n      },\n      Classes = htmlClass.get(/^HTML[A-Z]*[a-z]/),\n      i = Classes.length;\n      i--;\n      patchClass(Classes[i])\n    ) {}\n    (document.createElement = function (name, options) {\n      var is = getIs(options);\n      return is ?\n        patchedCreateElement.call(this, name, secondArgument(is)) :\n        patchedCreateElement.call(this, name);\n    });\n    if (!V0) {\n      justSetup = true;\n      document[REGISTER_ELEMENT]('');\n    }\n  }\n\n  // if customElements is not there at all\n  if (!customElements || /^force/.test(polyfill.type)) polyfillV1();\n  else if(!polyfill.noBuiltIn) {\n    // if available test extends work as expected\n    try {\n      (function (DRE, options, name) {\n        var re = new RegExp('^<a\\\\s+is=(\\'|\")' + name + '\\\\1></a>$');\n        options[EXTENDS] = 'a';\n        DRE.prototype = create(HTMLAnchorElement.prototype);\n        DRE.prototype.constructor = DRE;\n        window.customElements.define(name, DRE, options);\n        if (\n          !re.test(document.createElement('a', {is: name}).outerHTML) ||\n          !re.test((new DRE()).outerHTML)\n        ) {\n          throw options;\n        }\n      }(\n        function DRE() {\n          return Reflect.construct(HTMLAnchorElement, [], DRE);\n        },\n        {},\n        'document-register-element-a' + UID\n      ));\n    } catch(o_O) {\n      // or force the polyfill if not\n      // and keep internal original reference\n      polyfillV1();\n    }\n  }\n\n  // FireFox only issue\n  if(!polyfill.noBuiltIn) {\n    try {\n      if (createElement.call(document, 'a', 'a').outerHTML.indexOf('is') < 0)\n        throw {};\n    } catch(FireFox) {\n      secondArgument = function (is) {\n        return {is: is.toLowerCase()};\n      };\n    }\n  }\n\n}(window));\n\n/*!\nISC License\n\nCopyright (c) 2014-2018, Andrea Giammarchi, @WebReflection\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE\nOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n\n*/\n// see https://github.com/WebReflection/document-register-element/issues/21#issuecomment-102020311\nwindow.innerHTML = (function (document) {\n\n  var\n    EXTENDS = 'extends',\n    register = document.registerElement,\n    div = document.createElement('div'),\n    dre = 'document-register-element',\n    innerHTML = register.innerHTML,\n    initialize,\n    registered\n  ;\n\n  // avoid duplicated wrappers\n  if (innerHTML) return innerHTML;\n\n  try {\n\n    // feature detect the problem\n    register.call(\n      document,\n      dre,\n      {prototype: Object.create(\n        HTMLElement.prototype,\n        {createdCallback: {value: Object}}\n      )}\n    );\n\n    div.innerHTML = '<' + dre + '></' + dre + '>';\n\n    // if natively supported, nothing to do\n    if ('createdCallback' in div.querySelector(dre)) {\n      // return just an innerHTML wrap\n      return (register.innerHTML = function (el, html) {\n        el.innerHTML = html;\n        return el;\n      });\n    }\n\n  } catch(meh) {}\n\n  // in other cases\n  registered = [];\n  initialize = function (el) {\n    if (\n      'createdCallback' in el         ||\n      'attachedCallback' in el        ||\n      'detachedCallback' in el        ||\n      'attributeChangedCallback' in el\n    ) return;\n    document.createElement.innerHTMLHelper = true;\n    for (var\n      parentNode = el.parentNode,\n      type = el.getAttribute('is'),\n      name = el.nodeName,\n      node = document.createElement.apply(\n        document,\n        type ? [name, type] : [name]\n      ),\n      attributes = el.attributes,\n      i = 0,\n      length = attributes.length,\n      attr, fc;\n      i < length; i++\n    ) {\n      attr = attributes[i];\n      node.setAttribute(attr.name, attr.value);\n    }\n    while ((fc = el.firstChild)) node.appendChild(fc);\n    document.createElement.innerHTMLHelper = false;\n    if (parentNode) parentNode.replaceChild(node, el);\n    if (node.createdCallback) {\n      node.created = true;\n      node.createdCallback();\n      node.created = false;\n    }\n  };\n  // augment the document.registerElement method\n  return ((document.registerElement = function registerElement(type, options) {\n    var name = (options[EXTENDS] ?\n      (options[EXTENDS] + '[is=\"' + type + '\"]') : type\n    ).toLowerCase();\n    if (registered.indexOf(name) < 0) registered.push(name);\n    return register.apply(document, arguments);\n  }).innerHTML = function (el, html) {\n    el.innerHTML = html;\n    for (var\n      nodes = registered.length ? el.querySelectorAll(registered.join(',')) : [],\n      i = nodes.length; i--; initialize(nodes[i])\n    ) {}\n    return el;\n  });\n}(document));\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"cellx\"), require(\"@riim/next-uid\"), require(\"cellx-collections\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"cellx\", \"@riim/next-uid\", \"cellx-collections\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"rionite\"] = factory(require(\"cellx\"), require(\"@riim/next-uid\"), require(\"cellx-collections\"));\n\telse\n\t\troot[\"rionite\"] = factory(root[\"cellx\"], root[\"@riim/next-uid\"], root[\"cellx-collections\"]);\n})(self, (__WEBPACK_EXTERNAL_MODULE__4__, __WEBPACK_EXTERNAL_MODULE__9__, __WEBPACK_EXTERNAL_MODULE__17__) => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ([\n/* 0 */,\n/* 1 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar reHeadTail = /-?([A-Z])([^A-Z])/g;\nvar reLongHead = /-?([A-Z]+)/g;\nvar reDash = /^-/;\nvar cache = Object.create(null);\nfunction kebabCase(str, useCache) {\n    str = String(str);\n    var value;\n    return ((useCache && cache[str]) ||\n        ((value = str\n            .replace(reHeadTail, function (match, head, tail) { return '-' + head.toLowerCase() + tail; })\n            .replace(reLongHead, function (match, head) { return '-' + head.toLowerCase(); })\n            .replace(reDash, '')),\n            useCache ? (cache[str] = value) : value));\n}\nexports.kebabCase = kebabCase;\n\n\n/***/ }),\n/* 2 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.snakeCaseAttributeName = void 0;\nconst reCamelCase = /^_?[a-z][0-9a-z]*$/i;\nconst reLetters = /[A-Z][^A-Z]/g;\nconst reLetters2 = /[A-Z]{2,}/g;\nconst cache = new Map();\nfunction snakeCaseAttributeName(str, useCache) {\n    let value;\n    return ((useCache && cache.get(str)) ||\n        ((value = reCamelCase.test(str)\n            ? str\n                .replace(reLetters, (word) => '_' + word)\n                .replace(reLetters2, (word) => '_' + word)\n                .toLowerCase()\n            : str),\n            useCache && cache.set(str, value),\n            value));\n}\nexports.snakeCaseAttributeName = snakeCaseAttributeName;\n\n\n/***/ }),\n/* 3 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TemplateParser = exports.NodeType = void 0;\nvar NodeType;\n(function (NodeType) {\n    NodeType[NodeType[\"ELEMENT\"] = 1] = \"ELEMENT\";\n    NodeType[NodeType[\"ELEMENT_ATTRIBUTE\"] = 2] = \"ELEMENT_ATTRIBUTE\";\n    NodeType[NodeType[\"TEXT\"] = 3] = \"TEXT\";\n    NodeType[NodeType[\"SUPER_CALL\"] = 4] = \"SUPER_CALL\";\n    NodeType[NodeType[\"DEBUGGER_CALL\"] = 5] = \"DEBUGGER_CALL\";\n})(NodeType = exports.NodeType || (exports.NodeType = {}));\nconst escapee = new Map([\n    ['/', '/'],\n    ['\\\\', '\\\\'],\n    ['b', '\\b'],\n    ['f', '\\f'],\n    ['n', '\\n'],\n    ['r', '\\r'],\n    ['t', '\\t']\n]);\nconst reWhitespace = /\\s/;\nconst reLineBreak = /\\n|\\r\\n?/g;\nconst reTagName = /[a-zA-Z][-\\w]*/gy;\nconst reElementName = /[a-zA-Z][-\\w]*/gy;\nconst reAttributeName = /[^\\s'\">/=,)]+/gy;\nconst reSuperCall = /super(?:\\.([a-zA-Z][-\\w]*))?!/gy;\nconst reTrimStartLine = /^[\\x20\\t]+/gm;\nconst reTrimEndLine = /[\\x20\\t]+$/gm;\nfunction normalizeMultilineText(text) {\n    return text.replace(reTrimStartLine, '').replace(reTrimEndLine, '');\n}\nclass TemplateParser {\n    constructor(template) {\n        this.template = template;\n    }\n    parse() {\n        this._pos = 0;\n        this._chr = this.template.charAt(0);\n        this._skipWhitespacesAndComments();\n        return this._readContent(false);\n    }\n    _readContent(brackets) {\n        if (brackets) {\n            this._next( /* '{' */);\n            this._skipWhitespacesAndComments();\n        }\n        let content = [];\n        for (;;) {\n            switch (this._chr) {\n                case \"'\":\n                case '\"':\n                case '`': {\n                    content.push([NodeType.TEXT, this._readString()]);\n                    break;\n                }\n                case '': {\n                    if (brackets) {\n                        this._throwError('Unexpected end of template. Expected \"}\" to close block.');\n                    }\n                    return content;\n                }\n                default: {\n                    let chr = this._chr;\n                    if (chr == 'd' && this.template.substr(this._pos, 9) == 'debugger!') {\n                        this._chr = this.template.charAt((this._pos += 9));\n                        content.push([NodeType.DEBUGGER_CALL]);\n                        break;\n                    }\n                    if (brackets) {\n                        if (chr == '}') {\n                            this._next();\n                            return content;\n                        }\n                        let superCall = this._readSuperCall();\n                        if (superCall) {\n                            content.push(superCall);\n                            break;\n                        }\n                    }\n                    this._readElement(content);\n                    break;\n                }\n            }\n            this._skipWhitespacesAndComments();\n        }\n    }\n    _readElement(targetContent) {\n        let pos = this._pos;\n        let isTransformer = this._chr == '@';\n        if (isTransformer) {\n            this._next();\n        }\n        let tagName = this._readName(reTagName);\n        this._skipWhitespacesAndComments();\n        let elNames;\n        let override;\n        if (this._chr == ':') {\n            this._next();\n            let pos = this._pos;\n            this._skipWhitespacesAndComments();\n            if (this._chr == ':') {\n                elNames = [undefined];\n                this._next();\n                this._skipWhitespacesAndComments();\n            }\n            for (let name; (name = this._readName(reElementName));) {\n                if (!elNames) {\n                    elNames = [];\n                    if (this._chr == '!') {\n                        override = 1;\n                        this._next();\n                    }\n                }\n                elNames.push(name);\n                if (this._skipWhitespacesAndComments() != ':') {\n                    break;\n                }\n                this._next();\n                this._skipWhitespacesAndComments();\n            }\n            if (!elNames || (!elNames[0] && elNames.length == 1)) {\n                this._throwError('Expected element name', pos);\n            }\n        }\n        if (!tagName && !(elNames && elNames[0])) {\n            this._throwError('Expected element', pos);\n        }\n        let attrs;\n        if (this._chr == '(') {\n            attrs = this._readAttributes();\n            this._skipWhitespacesAndComments();\n        }\n        let content;\n        if (this._chr == '{') {\n            content = this._readContent(true);\n        }\n        targetContent.push([\n            NodeType.ELEMENT,\n            elNames,\n            override,\n            isTransformer ? 1 : undefined,\n            tagName !== null && tagName !== void 0 ? tagName : undefined,\n            attrs,\n            content\n        ]);\n    }\n    _readAttributes() {\n        var _a;\n        this._next( /* '(' */);\n        if (this._skipWhitespacesAndComments() == ')') {\n            this._next();\n            return [undefined, undefined];\n        }\n        let superCall;\n        let list;\n        loop: for (let f = true;; f = false) {\n            if (f && this._chr == 's' && (superCall = this._readSuperCall())) {\n                this._skipWhitespacesAndComments();\n            }\n            else {\n                let isTransformer = this._chr == '@';\n                if (isTransformer) {\n                    this._next();\n                }\n                let name = this._readName(reAttributeName);\n                if (!name) {\n                    name = '`' + this._readString();\n                    if (!name) {\n                        throw this._throwError('Expected attribute name');\n                    }\n                }\n                if (this._skipWhitespacesAndComments() == '=') {\n                    this._next();\n                    let chr = this._skipWhitespaces();\n                    if (chr == \"'\" || chr == '\"' || chr == '`') {\n                        (list !== null && list !== void 0 ? list : (list = [])).push([\n                            isTransformer ? 1 : undefined,\n                            name,\n                            this._readString()\n                        ]);\n                        this._skipWhitespacesAndComments();\n                    }\n                    else {\n                        let value = '';\n                        for (;;) {\n                            if (!chr) {\n                                this._throwError('Unexpected end of template. Expected \",\" or \")\" to finalize attribute value.');\n                            }\n                            if (chr == ',' || chr == ')' || chr == '\\n' || chr == '\\r') {\n                                (list !== null && list !== void 0 ? list : (list = [])).push([\n                                    isTransformer ? 1 : undefined,\n                                    name,\n                                    value.trim()\n                                ]);\n                                if (chr == '\\n' || chr == '\\r') {\n                                    this._skipWhitespacesAndComments();\n                                }\n                                break;\n                            }\n                            value += chr;\n                            chr = this._next();\n                        }\n                    }\n                }\n                else {\n                    (list !== null && list !== void 0 ? list : (list = [])).push([isTransformer ? 1 : undefined, name, '']);\n                }\n            }\n            switch (this._chr) {\n                case ')': {\n                    this._next();\n                    break loop;\n                }\n                case ',': {\n                    this._next();\n                    this._skipWhitespacesAndComments();\n                    break;\n                }\n                default: {\n                    this._throwError('Unexpected end of template. Expected \",\" or \")\" to finalize attribute value.');\n                }\n            }\n        }\n        return [superCall ? (_a = superCall[1]) !== null && _a !== void 0 ? _a : 1 : undefined, list];\n    }\n    _readSuperCall() {\n        reSuperCall.lastIndex = this._pos;\n        let match = reSuperCall.exec(this.template);\n        if (match) {\n            this._chr = this.template.charAt((this._pos = reSuperCall.lastIndex));\n            return [NodeType.SUPER_CALL, match[1]];\n        }\n        return null;\n    }\n    _readName(reName) {\n        reName.lastIndex = this._pos;\n        let match = reName.exec(this.template);\n        if (match) {\n            this._chr = this.template.charAt((this._pos = reName.lastIndex));\n            return match[0];\n        }\n        return null;\n    }\n    _readString() {\n        let quoteChar = this._chr;\n        // if (quoteChar != \"'\" && quoteChar != '\"' && quoteChar != '`') {\n        // \tthis._throwError('Expected string');\n        // }\n        let str = '';\n        for (let chr = this._next(); chr;) {\n            if (chr == quoteChar) {\n                this._next();\n                return quoteChar == '`' ? normalizeMultilineText(str) : str;\n            }\n            if (chr == '\\\\') {\n                chr = this._next();\n                if (chr == 'x' || chr == 'u') {\n                    let pos = this._pos + 1;\n                    let code = parseInt(this.template.slice(pos, pos + (chr == 'x' ? 2 : 4)), 16);\n                    if (!isFinite(code)) {\n                        this._throwError(`Invalid ${chr == 'x' ? 'hexadecimal' : 'unicode'} escape sequence`, pos);\n                    }\n                    str += String.fromCharCode(code);\n                    chr = this._chr = this.template.charAt((this._pos = pos + (chr == 'x' ? 2 : 4)));\n                }\n                else if (escapee.has(chr)) {\n                    str += escapee.get(chr);\n                    chr = this._next();\n                }\n                else {\n                    this._throwError('Invalid escape sequence', this._pos - 1);\n                }\n            }\n            else {\n                str += chr;\n                chr = this._next();\n            }\n        }\n        throw 1;\n    }\n    _skipWhitespaces() {\n        let chr = this._chr;\n        while (chr && reWhitespace.test(chr)) {\n            chr = this._next();\n        }\n        return chr;\n    }\n    _skipWhitespacesAndComments() {\n        let chr = this._chr;\n        loop1: for (;;) {\n            if (chr == '/') {\n                switch (this.template.charAt(this._pos + 1)) {\n                    case '/': {\n                        this._next();\n                        while ((chr = this._next()) && chr != '\\n' && chr != '\\r') { }\n                        break;\n                    }\n                    case '*': {\n                        let pos = this._pos;\n                        this._next();\n                        loop2: for (;;) {\n                            switch (this._next()) {\n                                case '*': {\n                                    if (this._next() == '/') {\n                                        chr = this._next();\n                                        break loop2;\n                                    }\n                                    break;\n                                }\n                                case '': {\n                                    this._throwError('Expected \"*/\" to close multiline comment', pos);\n                                }\n                            }\n                        }\n                        break;\n                    }\n                    default: {\n                        break loop1;\n                    }\n                }\n            }\n            else if (chr && reWhitespace.test(chr)) {\n                chr = this._next();\n            }\n            else {\n                break;\n            }\n        }\n        return chr;\n    }\n    _next( /* current?: string */) {\n        // if (current && current != this._chr) {\n        // \tthis._throwError(`Expected \"${current}\" instead of \"${this._chr}\"`);\n        // }\n        return (this._chr = this.template.charAt(++this._pos));\n    }\n    _throwError(msg, pos = this._pos) {\n        let n = pos < 40 ? 40 - pos : 0;\n        throw SyntaxError(msg +\n            '\\n' +\n            this.template\n                .slice(pos < 40 ? 0 : pos - 40, pos + 20)\n                .replace(/\\t/g, ' ')\n                .replace(reLineBreak, (match) => {\n                if (match.length == 2) {\n                    n++;\n                }\n                return '↵';\n            }) +\n            '\\n' +\n            '----------------------------------------'.slice(n) +\n            '↑');\n    }\n}\nexports.TemplateParser = TemplateParser;\n\n\n/***/ }),\n/* 4 */\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__4__;\n\n/***/ }),\n/* 5 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar reEscapableChars = /[\\\\'\"\\r\\n]/g;\nvar charToEscapedMap = Object.create(null);\ncharToEscapedMap['\\\\'] = '\\\\\\\\';\ncharToEscapedMap['\\''] = '\\\\\\'';\ncharToEscapedMap['\"'] = '\\\\\"';\ncharToEscapedMap['\\r'] = '\\\\r';\ncharToEscapedMap['\\n'] = '\\\\n';\nfunction escapeString(str) {\n    return reEscapableChars.test(str) ? str.replace(reEscapableChars, function (chr) { return charToEscapedMap[chr]; }) : str;\n}\nexports.escapeString = escapeString;\n\n\n/***/ }),\n/* 6 */\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar escapeHTML_1 = __webpack_require__(7);\nexports.escapeHTML = escapeHTML_1.escapeHTML;\nvar unescapeHTML_1 = __webpack_require__(8);\nexports.unescapeHTML = unescapeHTML_1.unescapeHTML;\n\n\n/***/ }),\n/* 7 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar reEscapableChars = /[&<>\"]/g;\nvar charToEscapedMap = Object.create(null);\ncharToEscapedMap['&'] = '&amp;';\ncharToEscapedMap['<'] = '&lt;';\ncharToEscapedMap['>'] = '&gt;';\ncharToEscapedMap['\"'] = '&quot;';\nfunction escapeHTML(str) {\n    return (str\n        ? reEscapableChars.test(str)\n            ? str.replace(reEscapableChars, function (chr) { return charToEscapedMap[chr]; })\n            : str\n        : null);\n}\nexports.escapeHTML = escapeHTML;\n\n\n/***/ }),\n/* 8 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar reEscapableEntities = /&(?:amp|lt|gt|quot);/g;\nvar escapedToCharMap = Object.create(null);\nescapedToCharMap['&amp;'] = '&';\nescapedToCharMap['&lt;'] = '<';\nescapedToCharMap['&gt;'] = '>';\nescapedToCharMap['&quot;'] = '\"';\nfunction unescapeHTML(str) {\n    return (str\n        ? reEscapableEntities.test(str)\n            ? str.replace(reEscapableEntities, function (entity) { return escapedToCharMap[entity]; })\n            : str\n        : null);\n}\nexports.unescapeHTML = unescapeHTML;\n\n\n/***/ }),\n/* 9 */\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__9__;\n\n/***/ }),\n/* 10 */\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar camelize_1 = __webpack_require__(11);\nvar cache = Object.create(null);\nfunction pascalize(str, useCache) {\n    str = String(str);\n    var value;\n    return ((useCache && cache[str]) ||\n        ((value = camelize_1.camelize(str)),\n            (value = value.charAt(0).toUpperCase() + value.slice(1)),\n            useCache ? (cache[str] = value) : value));\n}\nexports.pascalize = pascalize;\n\n\n/***/ }),\n/* 11 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar reHyphen = /[-_]+([a-z])/g;\nvar cache = Object.create(null);\nfunction camelize(str, useCache) {\n    str = String(str);\n    var value;\n    return ((useCache && cache[str]) ||\n        ((value = str.replace(reHyphen, function (match, chr) { return chr.toUpperCase(); })),\n            useCache ? (cache[str] = value) : value));\n}\nexports.camelize = camelize;\n\n\n/***/ }),\n/* 12 */\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst utils_1 = __webpack_require__(13);\nvar config_1 = __webpack_require__(14);\nexports.configure = config_1.configure;\nlet queue;\nfunction run() {\n    let track = queue;\n    queue = null;\n    for (let callback of track) {\n        try {\n            callback();\n        }\n        catch (err) {\n            utils_1.logError(err);\n        }\n    }\n}\nfunction defer(callback) {\n    if (queue) {\n        queue.push(callback);\n    }\n    else {\n        queue = [callback];\n        setTimeout(run, 1);\n    }\n}\nexports.defer = defer;\n\n\n/***/ }),\n/* 13 */\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst config_1 = __webpack_require__(14);\nfunction logError(...args) {\n    config_1.config.logError(...args);\n}\nexports.logError = logError;\n\n\n/***/ }),\n/* 14 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.config = {\n    logError: (...args) => {\n        console.error(...args);\n    }\n};\nfunction configure(options) {\n    Object.assign(exports.config, options);\n    return exports.config;\n}\nexports.configure = configure;\n\n\n/***/ }),\n/* 15 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nfunction moveContent(target, source) {\n    for (var child = void 0; (child = source.firstChild);) {\n        target.appendChild(child);\n    }\n    return target;\n}\nexports.moveContent = moveContent;\n\n\n/***/ }),\n/* 16 */\n/***/ (function(__unused_webpack_module, exports) {\n\n(function (global, factory) {\n\t true ? factory(exports) :\n\t0;\n}(this, (function (exports) { 'use strict';\n\n\tconst nextTick = (() => {\n\t    const global = Function('return this;')();\n\t    if (global.process &&\n\t        global.process.toString() == '[object process]' &&\n\t        global.process.nextTick) {\n\t        return global.process.nextTick;\n\t    }\n\t    if (global.setImmediate && global.setImmediate.toString().indexOf('[native code]') != -1) {\n\t        const setImmediate = global.setImmediate;\n\t        return (cb) => {\n\t            setImmediate(cb);\n\t        };\n\t    }\n\t    const promise = Promise.resolve();\n\t    return (cb) => {\n\t        promise.then(cb);\n\t    };\n\t})();\n\n\texports.nextTick = nextTick;\n\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n/***/ }),\n/* 17 */\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__17__;\n\n/***/ })\n/******/ \t]);\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = (exports, definition) => {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t(() => {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = (exports) => {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be in strict mode.\n(() => {\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n  \"Attr\": () => (/* reexport */ Attr),\n  \"BaseComponent\": () => (/* reexport */ BaseComponent),\n  \"Callback\": () => (/* reexport */ Callback),\n  \"Component\": () => (/* reexport */ Component),\n  \"ComponentParams\": () => (/* reexport */ ComponentParams),\n  \"InterruptError\": () => (/* reexport */ InterruptError),\n  \"Interruptible\": () => (/* reexport */ Interruptible),\n  \"KEY_CONTENT_TEMPLATE\": () => (/* reexport */ KEY_CONTENT_TEMPLATE),\n  \"KEY_ELEMENT_CONNECTED\": () => (/* reexport */ KEY_ELEMENT_CONNECTED),\n  \"KEY_PARAMS_CONFIG\": () => (/* reexport */ KEY_PARAMS_CONFIG),\n  \"KEY_PARAM_VALUES\": () => (/* reexport */ KEY_PARAM_VALUES),\n  \"Listen\": () => (/* reexport */ Listen),\n  \"Param\": () => (/* reexport */ Param),\n  \"Ref\": () => (/* reexport */ Ref),\n  \"RnCondition\": () => (/* reexport */ RnCondition),\n  \"RnHtml\": () => (/* reexport */ RnHtml),\n  \"RnRepeat\": () => (/* reexport */ RnRepeat),\n  \"RnSlot\": () => (/* reexport */ RnSlot),\n  \"Template\": () => (/* reexport */ Template),\n  \"TemplateNodeType\": () => (/* reexport */ NodeType),\n  \"configure\": () => (/* reexport */ configure),\n  \"formatters\": () => (/* reexport */ formatters),\n  \"onConnected\": () => (/* reexport */ onConnected),\n  \"onDisconnected\": () => (/* reexport */ onDisconnected),\n  \"onElementMoved\": () => (/* reexport */ onElementMoved),\n  \"onReady\": () => (/* reexport */ onReady),\n  \"registerComponent\": () => (/* reexport */ registerComponent)\n});\n\n// EXTERNAL MODULE: ./node_modules/@riim/kebab-case/dist/index.js\nvar dist = __webpack_require__(1);\n// EXTERNAL MODULE: ../rionite-snake-case-attribute-name/dist/index.js\nvar rionite_snake_case_attribute_name_dist = __webpack_require__(2);\n// EXTERNAL MODULE: ../rionite-template-parser-2/dist/index.js\nvar rionite_template_parser_2_dist = __webpack_require__(3);\n// EXTERNAL MODULE: external \"cellx\"\nvar external_cellx_ = __webpack_require__(4);\n// EXTERNAL MODULE: ./node_modules/escape-string/dist/index.js\nvar escape_string_dist = __webpack_require__(5);\n;// CONCATENATED MODULE: ./src/bindingToJSExpression.ts\nfunction formattersReducer(jsExpr, formatter) {\n    return `(this.${formatter.name} || formatters.${formatter.name}).call(this[KEY_COMPONENT_SELF], ${jsExpr}${formatter.arguments ? ', ' + formatter.arguments.join(', ') : ''})`;\n}\nfunction bindingToJSExpression(binding) {\n    let formatters = binding.formatters;\n    if (binding.keypath) {\n        let keys = binding.keypath.split('.');\n        let keyCount = keys.length;\n        if (keyCount == 1) {\n            return formatters\n                ? formatters.reduce(formattersReducer, `this['${keys[0]}']`)\n                : `this['${keys[0]}']`;\n        }\n        let index = keyCount - 2;\n        let fragments = Array(index);\n        while (index) {\n            fragments[--index] = ` && (tmp = tmp['${keys[index + 1]}'])`;\n        }\n        let jsExpr = `(tmp = this['${keys[0]}'])${fragments.join('')} && tmp['${keys[keyCount - 1]}']`;\n        return formatters ? formatters.reduce(formattersReducer, jsExpr) : jsExpr;\n    }\n    return formatters ? formatters.reduce(formattersReducer, binding.value) : binding.value;\n}\n\n// EXTERNAL MODULE: ./node_modules/@riim/escape-html/dist/index.js\nvar escape_html_dist = __webpack_require__(6);\n;// CONCATENATED MODULE: ./src/componentParamValueConverters.ts\n\nconst KEY_COMPONENT_PARAM_VALUES = Symbol('componentParamValues');\nconst componentParamValueСonverters = new Map([\n    [\n        Boolean,\n        {\n            toData: (rawValue, defaultValue) => {\n                return rawValue !== null ? rawValue != 'no' : !!defaultValue;\n            },\n            toString: (value, defaultValue) => {\n                return value ? '' : defaultValue ? 'no' : null;\n            }\n        }\n    ],\n    [\n        Number,\n        {\n            toData: (rawValue, defaultValue) => {\n                return rawValue !== null\n                    ? +rawValue\n                    : defaultValue !== undefined\n                        ? defaultValue\n                        : null;\n            },\n            toString: (value) => {\n                return value != null ? +value + '' : null;\n            }\n        }\n    ],\n    [\n        String,\n        {\n            toData: (rawValue, defaultValue) => {\n                return rawValue !== null\n                    ? rawValue\n                    : defaultValue !== undefined\n                        ? defaultValue\n                        : null;\n            },\n            toString: (value) => {\n                return value != null ? value + '' : null;\n            }\n        }\n    ],\n    [\n        Object,\n        {\n            toData: (rawValue, defaultValue, el) => {\n                if (rawValue) {\n                    let value = el[KEY_COMPONENT_PARAM_VALUES] &&\n                        el[KEY_COMPONENT_PARAM_VALUES].get(rawValue);\n                    if (!value) {\n                        throw TypeError('Value is not an object');\n                    }\n                    return value;\n                }\n                if (defaultValue == null) {\n                    return null;\n                }\n                if (typeof defaultValue == 'object' && defaultValue.clone) {\n                    return defaultValue.clone.length != 0\n                        ? defaultValue.clone(true)\n                        : defaultValue.clone();\n                }\n                return defaultValue;\n            },\n            toString: null\n        }\n    ],\n    [\n        eval,\n        {\n            toData: (rawValue, defaultValue) => {\n                if (rawValue !== null) {\n                    // eslint-disable-next-line @typescript-eslint/no-implied-eval\n                    return Function(`return ${(0,escape_html_dist.unescapeHTML)(rawValue)};`)();\n                }\n                if (defaultValue == null) {\n                    return null;\n                }\n                if (defaultValue && typeof defaultValue == 'object' && defaultValue.clone) {\n                    return defaultValue.clone.length != 0\n                        ? defaultValue.clone(true)\n                        : defaultValue.clone();\n                }\n                return defaultValue;\n            },\n            toString: null\n        }\n    ]\n]);\n\n;// CONCATENATED MODULE: ./src/Constants.ts\nconst KEY_COMPONENT_SELF = Symbol('componentSelf');\nconst KEY_PARAMS_CONFIG = Symbol('paramsConfig');\nconst KEY_PARAM_VALUES = Symbol('paramValues');\nconst KEY_CHILD_COMPONENTS = Symbol('childComponents');\n\n// EXTERNAL MODULE: external \"@riim/next-uid\"\nvar next_uid_ = __webpack_require__(9);\n;// CONCATENATED MODULE: ./src/config.ts\nconst config = {\n    logError: (...args) => {\n        console.error(...args);\n    },\n    getText: ((_msgctxt, msgid) => msgid)\n};\nfunction configure(options) {\n    Object.assign(config, options);\n    return config;\n}\n\n;// CONCATENATED MODULE: ./src/lib/formatters.ts\n\n\nconst formatters = {\n    default(value, defaultValue) {\n        return value === undefined ? defaultValue : value;\n    },\n    defaultFor(defaultValue, value) {\n        return value === undefined ? defaultValue : value;\n    },\n    placeholder(value, placeholderValue) {\n        return value === null ? placeholderValue : value;\n    },\n    and(value1, ...values) {\n        return values.reduce((result, valueN) => result && valueN, value1);\n    },\n    andNot(value1, ...values) {\n        return values.reduce((result, valueN) => result && !valueN, value1);\n    },\n    or(value1, ...values) {\n        return values.reduce((result, valueN) => result || valueN, value1);\n    },\n    orNot(value1, ...values) {\n        return values.reduce((result, valueN) => result || !valueN, value1);\n    },\n    cond(condition, value1, value2) {\n        return condition ? value1 : value2;\n    },\n    not(value) {\n        return !value;\n    },\n    bool(value) {\n        return !!value;\n    },\n    eq(value1, value2) {\n        return value1 == value2;\n    },\n    seq(value1, value2) {\n        return value1 === value2;\n    },\n    lt(value1, value2) {\n        return value1 < value2;\n    },\n    lte(value1, value2) {\n        return value1 <= value2;\n    },\n    gt(value1, value2) {\n        return value1 > value2;\n    },\n    gte(value1, value2) {\n        return value1 >= value2;\n    },\n    startsWith(str, searchString, pos) {\n        return (str !== null && str !== void 0 ? str : '').startsWith(searchString, pos);\n    },\n    endsWith(str, searchString, pos) {\n        return (str !== null && str !== void 0 ? str : '').endsWith(searchString, pos);\n    },\n    padStart(str, maxLength, fillString) {\n        return str && str.padStart(maxLength, fillString);\n    },\n    padEnd(str, maxLength, fillString) {\n        return str && str.padEnd(maxLength, fillString);\n    },\n    replace(str, searchValue, replaceValue) {\n        return str && str.replace(searchValue, replaceValue);\n    },\n    trim(str) {\n        return str && str.trim();\n    },\n    uid(target) {\n        return target && (0,next_uid_.getUID)(target);\n    },\n    has(target, key) {\n        return !!target && target.has(key);\n    },\n    hasOwn(target, propName) {\n        return !!target && Object.prototype.hasOwnProperty.call(target, propName);\n    },\n    get(target, key) {\n        return target && target.get(key);\n    },\n    key(target, key) {\n        return target && target[key];\n    },\n    prop(target, name) {\n        return target && target.map((item) => item[name]);\n    },\n    contains(target, ...values) {\n        return (!!target &&\n            values.every(Array.isArray(target)\n                ? (value) => target.includes(value)\n                : (value) => target.contains(value)));\n    },\n    join(target, separator = ', ') {\n        return target && target.join(separator);\n    },\n    dump(value) {\n        return value == null ? value : JSON.stringify(value);\n    },\n    t(msgid, ...args) {\n        return msgid && config.getText('', msgid, args);\n    },\n    pt(msgid, msgctxt, ...args) {\n        return msgid && config.getText(msgctxt, msgid, args);\n    },\n    log(msg, ...optionalParams) {\n        console.log(msg, ...optionalParams);\n        return msg;\n    }\n};\n\n;// CONCATENATED MODULE: ./src/lib/namePattern.ts\nconst namePattern = '[$_a-zA-Z][$\\\\w]*';\n\n;// CONCATENATED MODULE: ./src/lib/keypathPattern.ts\n\nconst keypathPattern = `(?:${namePattern}|\\\\d+)(?:\\\\.(?:${namePattern}|\\\\d+))*`;\n\n;// CONCATENATED MODULE: ./src/lib/keypathToJSExpression.ts\nconst cache = new Map();\nfunction keypathToJSExpression(keypath, cacheKey = keypath) {\n    if (!cache.has(cacheKey)) {\n        let keys = typeof keypath == 'string' ? keypath.split('.') : keypath;\n        let keyCount = keys.length;\n        if (keyCount == 1) {\n            cache.set(cacheKey, `this['${keypath}']`);\n        }\n        else {\n            let index = keyCount - 2;\n            let fragments = Array(index);\n            while (index != 0) {\n                fragments[--index] = ` && (tmp = tmp['${keys[index + 1]}'])`;\n            }\n            cache.set(cacheKey, `(tmp = this['${keys[0]}'])${fragments.join('')} && tmp['${keys[keyCount - 1]}']`);\n        }\n    }\n    return cache.get(cacheKey);\n}\n\n;// CONCATENATED MODULE: ./src/TemplateNodeValueParser.ts\n\n\n\nvar TemplateNodeValueNodeType;\n(function (TemplateNodeValueNodeType) {\n    TemplateNodeValueNodeType[TemplateNodeValueNodeType[\"TEXT\"] = 1] = \"TEXT\";\n    TemplateNodeValueNodeType[TemplateNodeValueNodeType[\"BINDING\"] = 2] = \"BINDING\";\n    TemplateNodeValueNodeType[TemplateNodeValueNodeType[\"BINDING_KEYPATH\"] = 3] = \"BINDING_KEYPATH\";\n    TemplateNodeValueNodeType[TemplateNodeValueNodeType[\"BINDING_FORMATTER\"] = 4] = \"BINDING_FORMATTER\";\n})(TemplateNodeValueNodeType || (TemplateNodeValueNodeType = {}));\nconst reWhitespace = /\\s/;\nconst reName = RegExp(namePattern, 'gy');\nconst reKeypath = RegExp(keypathPattern, 'gy');\nconst reBoolean = /false|true/gy;\nconst reNumber = /(?:[+-]\\s*)?(?:0b[01]+|0[0-7]+|0x[0-9a-fA-F]+|(?:(?:0|[1-9]\\d*)(?:\\.\\d+)?|\\.\\d+)(?:[eE][+-]?\\d+)?|Infinity|NaN)/gy;\nconst reRegExpModifiers = /[gimyu]+/gy;\nconst reVacuum = /null|undefined|void 0/gy;\nclass TemplateNodeValueParser {\n    constructor(templateNodeValue) {\n        this.templateNodeValue = templateNodeValue;\n    }\n    parse(index) {\n        let templateNodeValue = this.templateNodeValue;\n        this._pos = 0;\n        let result = (this.result = []);\n        do {\n            this._pushText(templateNodeValue.slice(this._pos, index));\n            this._pos = index;\n            this._chr = templateNodeValue.charAt(index);\n            let binding = this._readBinding();\n            if (binding) {\n                result.push(binding);\n            }\n            else {\n                this._pushText(this._chr);\n                this._next();\n            }\n            index = templateNodeValue.indexOf('{', this._pos);\n        } while (index != -1);\n        this._pushText(templateNodeValue.slice(this._pos));\n        return result;\n    }\n    _pushText(value) {\n        if (value) {\n            let result = this.result;\n            let resultLen = result.length;\n            if (resultLen != 0 &&\n                result[resultLen - 1].nodeType == TemplateNodeValueNodeType.TEXT) {\n                result[resultLen - 1].value += value;\n            }\n            else {\n                result.push({\n                    nodeType: TemplateNodeValueNodeType.TEXT,\n                    value\n                });\n            }\n        }\n    }\n    _readBinding() {\n        let pos = this._pos;\n        this._next( /* '{' */);\n        this._skipWhitespaces();\n        let prefix = this._readPrefix();\n        this._skipWhitespaces();\n        let keypath = this._readKeypath();\n        let value;\n        if (!prefix && !keypath) {\n            value = this._readValue();\n        }\n        if (keypath || value) {\n            let formatters;\n            for (let formatter; this._skipWhitespaces() == '|' && (formatter = this._readFormatter());) {\n                (formatters !== null && formatters !== void 0 ? formatters : (formatters = [])).push(formatter);\n            }\n            if (this._chr == '}') {\n                this._next();\n                return {\n                    nodeType: TemplateNodeValueNodeType.BINDING,\n                    prefix,\n                    keypath,\n                    value: value !== null && value !== void 0 ? value : null,\n                    formatters: formatters !== null && formatters !== void 0 ? formatters : null,\n                    raw: this.templateNodeValue.slice(pos, this._pos)\n                };\n            }\n        }\n        this._pos = pos;\n        this._chr = this.templateNodeValue.charAt(pos);\n        return null;\n    }\n    _readPrefix() {\n        let chr = this._chr;\n        if (chr == '=') {\n            this._next();\n            return '=';\n        }\n        if (chr == '<') {\n            let pos = this._pos;\n            if (this.templateNodeValue.charAt(pos + 1) == '-') {\n                if (this.templateNodeValue.charAt(pos + 2) == '>') {\n                    this._chr = this.templateNodeValue.charAt((this._pos = pos + 3));\n                    return '<->';\n                }\n                this._chr = this.templateNodeValue.charAt((this._pos = pos + 2));\n                return '<-';\n            }\n        }\n        else if (chr == '-' && this.templateNodeValue.charAt(this._pos + 1) == '>') {\n            this._chr = this.templateNodeValue.charAt((this._pos += 2));\n            return '->';\n        }\n        return null;\n    }\n    _readFormatter() {\n        let pos = this._pos;\n        this._next( /* '|' */);\n        this._skipWhitespaces();\n        let name = this._readName();\n        if (name) {\n            return {\n                nodeType: TemplateNodeValueNodeType.BINDING_FORMATTER,\n                name,\n                arguments: this._chr == '(' ? this._readFormatterArguments() : null\n            };\n        }\n        this._pos = pos;\n        this._chr = this.templateNodeValue.charAt(pos);\n        return null;\n    }\n    _readFormatterArguments() {\n        var _a;\n        let pos = this._pos;\n        this._next( /* '(' */);\n        let args;\n        if (this._skipWhitespaces() != ')') {\n            for (;;) {\n                let arg = (_a = this._readValue()) !== null && _a !== void 0 ? _a : this._readKeypath(true);\n                if (!(arg && (this._skipWhitespaces() == ',' || this._chr == ')'))) {\n                    this._pos = pos;\n                    this._chr = this.templateNodeValue.charAt(pos);\n                    return null;\n                }\n                (args !== null && args !== void 0 ? args : (args = [])).push(arg);\n                if (this._chr == ')') {\n                    break;\n                }\n                this._next();\n                this._skipWhitespaces();\n            }\n        }\n        this._next();\n        return args !== null && args !== void 0 ? args : null;\n    }\n    _readValue() {\n        switch (this._chr) {\n            case '{': {\n                return this._readObject();\n            }\n            case '[': {\n                return this._readArray();\n            }\n            case \"'\":\n            case '\"': {\n                return this._readString();\n            }\n            case '/': {\n                return this._readRegExp();\n            }\n        }\n        let readers = ['_readBoolean', '_readNumber', '_readVacuum'];\n        for (let reader of readers) {\n            let value = this[reader]();\n            if (value) {\n                return value;\n            }\n        }\n        return null;\n    }\n    _readObject() {\n        var _a;\n        let pos = this._pos;\n        this._next( /* '{' */);\n        let obj = '{';\n        while (this._skipWhitespaces() != '}') {\n            let key = this._chr == \"'\" || this._chr == '\"' ? this._readString() : this._readObjectKey();\n            if (key && this._skipWhitespaces() == ':') {\n                this._next();\n                this._skipWhitespaces();\n                let valueOrKeypath = (_a = this._readValue()) !== null && _a !== void 0 ? _a : this._readKeypath(true);\n                if (valueOrKeypath) {\n                    if (this._skipWhitespaces() == ',') {\n                        obj += key + ':' + valueOrKeypath + ',';\n                        this._next();\n                        continue;\n                    }\n                    else if (this._chr == '}') {\n                        obj += key + ':' + valueOrKeypath + '}';\n                        break;\n                    }\n                }\n            }\n            this._pos = pos;\n            this._chr = this.templateNodeValue.charAt(pos);\n            return null;\n        }\n        this._next();\n        return obj;\n    }\n    _readObjectKey() {\n        return this._readName();\n    }\n    _readArray() {\n        var _a;\n        let pos = this._pos;\n        this._next( /* '[' */);\n        let arr = '[';\n        while (this._skipWhitespaces() != ']') {\n            if (this._chr == ',') {\n                arr += ',';\n                this._next();\n            }\n            else {\n                let valueOrKeypath = (_a = this._readValue()) !== null && _a !== void 0 ? _a : this._readKeypath(true);\n                if (valueOrKeypath) {\n                    arr += valueOrKeypath;\n                }\n                else {\n                    this._pos = pos;\n                    this._chr = this.templateNodeValue.charAt(pos);\n                    return null;\n                }\n            }\n        }\n        this._next();\n        return arr + ']';\n    }\n    _readBoolean() {\n        reBoolean.lastIndex = this._pos;\n        let match = reBoolean.exec(this.templateNodeValue);\n        if (match) {\n            this._chr = this.templateNodeValue.charAt((this._pos = reBoolean.lastIndex));\n            return match[0];\n        }\n        return null;\n    }\n    _readNumber() {\n        reNumber.lastIndex = this._pos;\n        let match = reNumber.exec(this.templateNodeValue);\n        if (match) {\n            this._chr = this.templateNodeValue.charAt((this._pos = reNumber.lastIndex));\n            return match[0];\n        }\n        return null;\n    }\n    _readString() {\n        let pos = this._pos;\n        let quoteChar = this._chr;\n        let str = '';\n        for (let next /* = this._next(quoteChar == '\"' ? null : \"'\") */; (next = this._next());) {\n            if (next == quoteChar) {\n                this._next();\n                return quoteChar + str + quoteChar;\n            }\n            if (next == '\\\\') {\n                str += next + this._next();\n            }\n            else {\n                if (next == '\\n' || next == '\\r') {\n                    break;\n                }\n                str += next;\n            }\n        }\n        this._pos = pos;\n        this._chr = this.templateNodeValue.charAt(pos);\n        return null;\n    }\n    _readRegExp() {\n        let pos = this._pos;\n        let next = this._next( /* '/' */);\n        let regex = '';\n        while (next) {\n            if (next == '/') {\n                if (!regex) {\n                    break;\n                }\n                this._next();\n                reRegExpModifiers.lastIndex = this._pos;\n                let match = reRegExpModifiers.exec(this.templateNodeValue);\n                if (match) {\n                    this._chr = this.templateNodeValue.charAt((this._pos = reRegExpModifiers.lastIndex));\n                    return '/' + regex + '/' + match[0];\n                }\n                return '/' + regex + '/';\n            }\n            if (next == '\\\\') {\n                regex += next + this._next();\n            }\n            else {\n                if (next == '\\n' || next == '\\r') {\n                    break;\n                }\n                regex += next;\n            }\n            next = this._next();\n        }\n        this._pos = pos;\n        this._chr = this.templateNodeValue.charAt(pos);\n        return null;\n    }\n    _readVacuum() {\n        reVacuum.lastIndex = this._pos;\n        let match = reVacuum.exec(this.templateNodeValue);\n        if (match) {\n            this._chr = this.templateNodeValue.charAt((this._pos = reVacuum.lastIndex));\n            return match[0];\n        }\n        return null;\n    }\n    _readKeypath(toJSExpression) {\n        reKeypath.lastIndex = this._pos;\n        let match = reKeypath.exec(this.templateNodeValue);\n        if (match) {\n            this._chr = this.templateNodeValue.charAt((this._pos = reKeypath.lastIndex));\n            return toJSExpression ? keypathToJSExpression(match[0]) : match[0];\n        }\n        return null;\n    }\n    _readName() {\n        reName.lastIndex = this._pos;\n        let match = reName.exec(this.templateNodeValue);\n        if (match) {\n            this._chr = this.templateNodeValue.charAt((this._pos = reName.lastIndex));\n            return match[0];\n        }\n        return null;\n    }\n    _skipWhitespaces() {\n        let chr = this._chr;\n        while (chr && reWhitespace.test(chr)) {\n            chr = this._next();\n        }\n        return chr;\n    }\n    _next( /* current?: string | null */) {\n        // if (current != null && current != this._chr) {\n        // \tthrow {\n        // \t\tname: 'SyntaxError',\n        // \t\tmessage: `Expected \"${current}\" instead of \"${this._chr}\"`,\n        // \t\tpos: this._pos,\n        // \t\ttemplateNodeValue: this.templateNodeValue\n        // \t};\n        // }\n        return (this._chr = this.templateNodeValue.charAt(++this._pos));\n    }\n}\n\n;// CONCATENATED MODULE: ./src/compileTemplateNodeValue.ts\n\n\n\n\n\n\nconst compileTemplateNodeValue_cache = new Map();\nfunction compileTemplateNodeValue(templateNodeValueAST, templateNodeValueString, useComponentParamValues) {\n    let cacheKey = templateNodeValueString + (useComponentParamValues ? ',' : '.');\n    if (!compileTemplateNodeValue_cache.has(cacheKey)) {\n        let inner;\n        if (templateNodeValueAST.length == 1) {\n            // eslint-disable-next-line @typescript-eslint/no-implied-eval\n            inner = Function('formatters, KEY_COMPONENT_SELF', `var tmp; return ${bindingToJSExpression(templateNodeValueAST[0])};`);\n        }\n        else {\n            let fragments = [];\n            for (let node of templateNodeValueAST) {\n                fragments.push(node.nodeType == TemplateNodeValueNodeType.TEXT\n                    ? `'${(0,escape_string_dist.escapeString)(node.value)}'`\n                    : bindingToJSExpression(node));\n            }\n            // eslint-disable-next-line @typescript-eslint/no-implied-eval\n            inner = Function('formatters, KEY_COMPONENT_SELF', `var tmp; return [${fragments.join(', ')}].join('');`);\n        }\n        compileTemplateNodeValue_cache.set(cacheKey, useComponentParamValues\n            ? function (cell) {\n                let value = inner.call(this, formatters, KEY_COMPONENT_SELF);\n                if (value && (typeof value == 'object' || typeof value == 'function')) {\n                    let meta = cell.meta;\n                    (meta.element[KEY_COMPONENT_PARAM_VALUES] ||\n                        (meta.element[KEY_COMPONENT_PARAM_VALUES] = new Map())).set(meta.attributeName, value);\n                    return meta.attributeName;\n                }\n                return value;\n            }\n            : function () {\n                let value = inner.call(this, formatters);\n                return value == null ? '' : value + '';\n            });\n    }\n    return compileTemplateNodeValue_cache.get(cacheKey);\n}\n\n;// CONCATENATED MODULE: ./src/lib/compileKeypath.ts\n\nconst compileKeypath_cache = new Map();\nfunction compileKeypath(keypath, cacheKey = keypath) {\n    var _a;\n    return ((_a = compileKeypath_cache.get(cacheKey)) !== null && _a !== void 0 ? _a : compileKeypath_cache\n        .set(cacheKey, \n    // eslint-disable-next-line @typescript-eslint/no-implied-eval\n    Function(`var tmp; return ${keypathToJSExpression(keypath, cacheKey)};`))\n        .get(cacheKey));\n}\n\n;// CONCATENATED MODULE: ./src/lib/SVG_NAMESPACE_URI.ts\nconst SVG_NAMESPACE_URI = 'http://www.w3.org/2000/svg';\n\n;// CONCATENATED MODULE: ./src/lib/setAttribute.ts\n\nfunction setAttribute(el, name, value) {\n    if (el.namespaceURI == SVG_NAMESPACE_URI) {\n        if (name == 'xlink:href' || name == 'href' || name == 'xmlns') {\n            let ns = name == 'xmlns' ? 'http://www.w3.org/2000/xmlns/' : 'http://www.w3.org/1999/xlink';\n            if (value == null || value === false) {\n                el.removeAttributeNS(ns, name);\n            }\n            else {\n                el.setAttributeNS(ns, name, value === true ? '' : value);\n            }\n            return el;\n        }\n    }\n    else if (name == 'class') {\n        el.className = value;\n        return el;\n    }\n    if (value == null || value === false) {\n        el.removeAttribute(name);\n    }\n    else {\n        el.setAttribute(name, value === true ? '' : value);\n    }\n    return el;\n}\n\n;// CONCATENATED MODULE: ./src/parseTemplateNodeValue.ts\n\n\nfunction parseTemplateNodeValue(templateNodeValue) {\n    if (!templateNodeValueASTCache.has(templateNodeValue)) {\n        let bracketIndex = templateNodeValue.indexOf('{');\n        if (bracketIndex == -1) {\n            templateNodeValueASTCache.set(templateNodeValue, null);\n        }\n        else {\n            let templateNodeValueAST = new TemplateNodeValueParser(templateNodeValue).parse(bracketIndex);\n            if (templateNodeValueAST.length == 1 &&\n                templateNodeValueAST[0].nodeType == TemplateNodeValueNodeType.TEXT) {\n                templateNodeValueAST = null;\n            }\n            templateNodeValueASTCache.set(templateNodeValue, templateNodeValueAST);\n        }\n    }\n    return templateNodeValueASTCache.get(templateNodeValue);\n}\n\n;// CONCATENATED MODULE: ./src/bindContent.ts\n\n\n\n\n\n\nconst KEY_CONTEXT = Symbol('context');\nconst templateNodeValueASTCache = new Map();\nfunction onAttributeBindingCellChange(evt) {\n    setAttribute(evt.target.meta.element, evt.target.meta.attributeName, evt.data['value']);\n}\nfunction onTextNodeBindingCellChange(evt) {\n    evt.target.meta.textNode.nodeValue = evt.data['value'];\n}\nfunction bindContent(node, ownerComponent, context, result, parentComponent) {\n    var _a, _b, _c, _d;\n    for (let child = node.firstChild; child; child = child.nextSibling) {\n        switch (child.nodeType) {\n            case Node.ELEMENT_NODE: {\n                let childComponent = child.rioniteComponent;\n                let $paramsConfig;\n                let $specifiedParams;\n                if (childComponent) {\n                    $paramsConfig = childComponent.constructor[KEY_PARAMS_CONFIG];\n                    $specifiedParams = new Set();\n                }\n                let attrs = child.attributes;\n                for (let i = attrs.length; i != 0;) {\n                    let attr = attrs[--i];\n                    let attrName = attr.name;\n                    let targetAttrName;\n                    if (attrName.charAt(0) == '_') {\n                        targetAttrName = attrName.slice(1);\n                    }\n                    else {\n                        targetAttrName = attrName;\n                        if (!attrName.lastIndexOf('oncomponent-', 0) ||\n                            !attrName.lastIndexOf('on-', 0)) {\n                            child[KEY_CONTEXT] = context;\n                        }\n                    }\n                    let $paramConfig = $paramsConfig && $paramsConfig.get(targetAttrName);\n                    let attrValue = attr.value;\n                    if ($paramConfig) {\n                        $specifiedParams.add($paramConfig.name);\n                    }\n                    if (!attrValue) {\n                        continue;\n                    }\n                    let attrValueAST = parseTemplateNodeValue(attrValue);\n                    if (!attrValueAST) {\n                        continue;\n                    }\n                    let bindingPrefix = attrValueAST.length == 1\n                        ? attrValueAST[0].prefix\n                        : null;\n                    if (bindingPrefix === '=') {\n                        setAttribute(child, targetAttrName, compileTemplateNodeValue(attrValueAST, attrValue, true).call(context, {\n                            meta: {\n                                element: child,\n                                attributeName: targetAttrName\n                            }\n                        }));\n                    }\n                    else {\n                        if (bindingPrefix !== '->') {\n                            let cell = new external_cellx_.Cell(compileTemplateNodeValue(attrValueAST, attrValue, attrValueAST.length == 1), {\n                                context,\n                                meta: {\n                                    element: child,\n                                    attributeName: targetAttrName\n                                },\n                                onChange: onAttributeBindingCellChange\n                            });\n                            setAttribute(child, targetAttrName, cell.get());\n                            ((_a = result[1]) !== null && _a !== void 0 ? _a : (result[1] = [])).push(cell);\n                        }\n                        if ($paramConfig && (bindingPrefix === '->' || bindingPrefix === '<->')) {\n                            if (bindingPrefix == '->' && attrName.charAt(0) != '_') {\n                                child.removeAttribute(attrName);\n                            }\n                            let keypath = attrValueAST[0].keypath.split('.');\n                            ((_b = result[2]) !== null && _b !== void 0 ? _b : (result[2] = [])).push(childComponent, $paramConfig.property, keypath.length == 1\n                                ? ((propName) => function (evt) {\n                                    this.ownerComponent[propName] = evt.data['value'];\n                                })(keypath[0])\n                                : ((propName, keypath) => {\n                                    let getPropertyHolder = compileKeypath(keypath, keypath.join('.'));\n                                    return function (evt) {\n                                        let propHolder = getPropertyHolder.call(this.ownerComponent);\n                                        if (propHolder) {\n                                            propHolder[propName] = evt.data['value'];\n                                        }\n                                    };\n                                })(keypath[keypath.length - 1], keypath.slice(0, -1)));\n                        }\n                    }\n                }\n                if (childComponent) {\n                    childComponent._ownerComponent = ownerComponent;\n                    childComponent.$context = context;\n                    childComponent.$specifiedParams = $specifiedParams;\n                    if (parentComponent) {\n                        (parentComponent[KEY_CHILD_COMPONENTS] ||\n                            (parentComponent[KEY_CHILD_COMPONENTS] = [])).push(childComponent);\n                    }\n                    else {\n                        ((_c = result[0]) !== null && _c !== void 0 ? _c : (result[0] = [])).push(childComponent);\n                    }\n                }\n                if (child.firstChild &&\n                    (!childComponent || !childComponent.constructor.bindsInputContent)) {\n                    bindContent(child, ownerComponent, context, result, childComponent);\n                }\n                break;\n            }\n            case Node.TEXT_NODE: {\n                let childValue = child.nodeValue;\n                let childValueAST = parseTemplateNodeValue(childValue);\n                if (!childValueAST) {\n                    break;\n                }\n                if (childValueAST.length == 1 &&\n                    childValueAST[0].prefix === '=') {\n                    child.nodeValue = compileTemplateNodeValue(childValueAST, childValue, false).call(context);\n                }\n                else {\n                    let cell = new external_cellx_.Cell(compileTemplateNodeValue(childValueAST, childValue, false), {\n                        context,\n                        meta: { textNode: child },\n                        onChange: onTextNodeBindingCellChange\n                    });\n                    child.nodeValue = cell.get();\n                    ((_d = result[1]) !== null && _d !== void 0 ? _d : (result[1] = [])).push(cell);\n                }\n                break;\n            }\n        }\n    }\n    return result;\n}\n\n;// CONCATENATED MODULE: ./src/componentConstructors.ts\nconst componentConstructors = new Map();\n\n;// CONCATENATED MODULE: ./src/lib/InterruptError.ts\nfunction InterruptError() {\n    if (!(this instanceof InterruptError)) {\n        return new InterruptError();\n    }\n}\nInterruptError.prototype = {\n    __proto__: Error.prototype,\n    constructor: InterruptError\n};\n\n;// CONCATENATED MODULE: ./src/handleDOMEvent.ts\n\n\n\nconst KEY_DOM_EVENTS = Symbol('domEvents');\nfunction handleDOMEvent(evt) {\n    let el = evt.target;\n    if (el == document.body) {\n        return;\n    }\n    let evtType = evt.type;\n    let attrName = 'on-' + evtType;\n    let parentEl = el.parentElement;\n    let receivers;\n    while (parentEl) {\n        if (parentEl == document.body) {\n            return;\n        }\n        if ((el[KEY_DOM_EVENTS] && el[KEY_DOM_EVENTS].has(evtType)) || el.hasAttribute(attrName)) {\n            (receivers !== null && receivers !== void 0 ? receivers : (receivers = [])).push(el);\n        }\n        let component = parentEl.$component;\n        if (component && receivers && receivers.length != 0) {\n            let i = 0;\n            do {\n                let receiver = receivers[i];\n                let handler;\n                if (receiver[KEY_DOM_EVENTS]) {\n                    let elName = receiver[KEY_DOM_EVENTS].get(evtType);\n                    if (elName) {\n                        let events = component.constructor.domEvents;\n                        if (events && events[elName]) {\n                            handler = events[elName][evtType];\n                            if (handler) {\n                                let result = handler.call(component, evt, receiver[KEY_CONTEXT], receiver);\n                                if (result === false) {\n                                    return;\n                                }\n                                if (result instanceof Promise) {\n                                    result.catch((err) => {\n                                        if (!(err instanceof InterruptError)) {\n                                            config.logError(err);\n                                        }\n                                    });\n                                }\n                                receivers.splice(i, 1);\n                            }\n                        }\n                    }\n                }\n                handler = component[receiver.getAttribute(attrName)];\n                if (handler) {\n                    let result = handler.call(component, evt, receiver[KEY_CONTEXT], receiver);\n                    if (result === false) {\n                        return;\n                    }\n                    if (result instanceof Promise) {\n                        result.catch((err) => {\n                            if (!(err instanceof InterruptError)) {\n                                config.logError(err);\n                            }\n                        });\n                    }\n                    if (i != receivers.length && receivers[i] == receiver) {\n                        receivers.splice(i, 1);\n                    }\n                }\n                if (i != receivers.length && receivers[i] == receiver) {\n                    i++;\n                }\n            } while (i < receivers.length);\n        }\n        el = parentEl;\n        parentEl = el.parentElement;\n    }\n}\n\n;// CONCATENATED MODULE: ./src/handleEvent.ts\n\n\n\nconst KEY_EVENTS = Symbol('events');\nconst componentStack = [];\nfunction handleEvent(evt) {\n    let target = evt.target;\n    let ownerComponent = target.ownerComponent;\n    if (target == ownerComponent) {\n        return;\n    }\n    let targetEl = target.element;\n    let el = targetEl;\n    if (!el.parentElement) {\n        return;\n    }\n    componentStack.length = 0;\n    let evtType = evt.type;\n    let attrName = typeof evtType == 'string' ? 'oncomponent-' + evtType : null;\n    let receivers = null;\n    for (;;) {\n        if ((el[KEY_EVENTS] && el[KEY_EVENTS].has(evtType)) ||\n            (attrName && el.hasAttribute(attrName))) {\n            (receivers !== null && receivers !== void 0 ? receivers : (receivers = [])).push(el);\n        }\n        if (el.parentElement == ownerComponent.element) {\n            if (receivers) {\n                for (let receiver of receivers) {\n                    if (receiver[KEY_EVENTS]) {\n                        let elName = receiver[KEY_EVENTS].get(evtType);\n                        if (elName) {\n                            let events = ownerComponent.constructor.events;\n                            let handler = events[elName][evtType];\n                            if (handler) {\n                                let result = handler.call(ownerComponent, evt, receiver[KEY_CONTEXT], receiver);\n                                if (result === false) {\n                                    return;\n                                }\n                                if (result instanceof Promise) {\n                                    result.catch((err) => {\n                                        if (!(err instanceof InterruptError)) {\n                                            config.logError(err);\n                                        }\n                                    });\n                                }\n                            }\n                        }\n                    }\n                    if (attrName) {\n                        let handler = ownerComponent[receiver.getAttribute(attrName)];\n                        if (handler) {\n                            let result = handler.call(ownerComponent, evt, receiver[KEY_CONTEXT], receiver);\n                            if (result === false) {\n                                return;\n                            }\n                            if (result instanceof Promise) {\n                                result.catch((err) => {\n                                    if (!(err instanceof InterruptError)) {\n                                        config.logError(err);\n                                    }\n                                });\n                            }\n                        }\n                    }\n                }\n                receivers.length = 0;\n            }\n            if (componentStack.length == 0) {\n                break;\n            }\n            el = el.parentElement;\n            if (!el.parentElement) {\n                break;\n            }\n            [ownerComponent, receivers] = componentStack.pop();\n        }\n        else {\n            el = el.parentElement;\n            if (!el.parentElement) {\n                break;\n            }\n            let component = el.$component;\n            if (component && component.ownerComponent != ownerComponent) {\n                componentStack.push([ownerComponent, receivers]);\n                ownerComponent = component.ownerComponent;\n                receivers = null;\n            }\n        }\n    }\n}\n\n;// CONCATENATED MODULE: ./src/Template2.ts\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar NodeType;\n(function (NodeType) {\n    NodeType[NodeType[\"BLOCK\"] = 1] = \"BLOCK\";\n    NodeType[NodeType[\"ELEMENT\"] = 2] = \"ELEMENT\";\n    NodeType[NodeType[\"TEXT\"] = 3] = \"TEXT\";\n    NodeType[NodeType[\"ELEMENT_CALL\"] = 4] = \"ELEMENT_CALL\";\n    NodeType[NodeType[\"SUPER_CALL\"] = 5] = \"SUPER_CALL\";\n    NodeType[NodeType[\"DEBUGGER_CALL\"] = 6] = \"DEBUGGER_CALL\";\n})(NodeType || (NodeType = {}));\nconst KEY_CONTENT_TEMPLATE = Symbol('contentTemplate');\nconst ELEMENT_NAME_DELIMITER = '__';\nclass Template {\n    constructor(template, options) {\n        var _a;\n        this.initialized = false;\n        let embedded = (this._embedded = !!(options === null || options === void 0 ? void 0 : options._embedded));\n        let parent = (this.parent = (_a = options === null || options === void 0 ? void 0 : options.parent) !== null && _a !== void 0 ? _a : null);\n        if (typeof template == 'string') {\n            template = new rionite_template_parser_2_dist.TemplateParser(template).parse();\n        }\n        if (Array.isArray(template)) {\n            this.template = template;\n            this.block = null;\n        }\n        else {\n            this.template = null;\n            this.block = template;\n            if (this._embedded) {\n                this._elements = template.elements;\n            }\n        }\n        if (embedded) {\n            this._elementNamesTemplate = parent._elementNamesTemplate;\n        }\n        else {\n            let blockName = options && options.blockName;\n            if (Array.isArray(blockName)) {\n                this.setBlockName(blockName);\n            }\n            else if (parent) {\n                this._elementNamesTemplate = blockName\n                    ? [blockName + ELEMENT_NAME_DELIMITER].concat(parent._elementNamesTemplate)\n                    : parent._elementNamesTemplate.slice();\n            }\n            else if (blockName) {\n                this._elementNamesTemplate = [blockName + ELEMENT_NAME_DELIMITER, ''];\n            }\n            else {\n                this._elementNamesTemplate = ['', ''];\n            }\n        }\n    }\n    initialize(component) {\n        if (this.initialized) {\n            return;\n        }\n        this.initialized = true;\n        if (this.parent) {\n            this.parent.parse(component);\n        }\n        let parent = this.parent;\n        if (!this._embedded) {\n            this._elements = parent\n                ? { __proto__: parent._elements }\n                : {\n                    __proto__: null,\n                    '@root': {\n                        nodeType: NodeType.ELEMENT,\n                        names: ['root'],\n                        isTransformer: true,\n                        namespaceSVG: false,\n                        tagName: 'section',\n                        is: null,\n                        attributes: null,\n                        $specifiedParams: null,\n                        events: null,\n                        domEvents: null,\n                        content: [],\n                        contentTemplateIndex: null\n                    }\n                };\n        }\n        this._embeddedTemplates = this._embedded\n            ? parent._embeddedTemplates\n            : parent &&\n                parent._embeddedTemplates &&\n                parent._embeddedTemplates.map((template) => new Template({\n                    nodeType: NodeType.BLOCK,\n                    content: template.block.content,\n                    elements: this._elements\n                }, {\n                    _embedded: true,\n                    parent: this\n                }));\n    }\n    parse(component) {\n        this.initialize(component);\n        if (this.block) {\n            return this.block;\n        }\n        let block = (this.block = {\n            nodeType: NodeType.BLOCK,\n            content: null,\n            elements: this._elements\n        });\n        this._readContent(this.parent ? null : block.elements['@root'].content, this.template, false, null, component === null || component === void 0 ? void 0 : component.constructor);\n        return block;\n    }\n    _setElement(name, override, el) {\n        if (this._elements[name]) {\n            if (!override) {\n                config.logError(`Implicit overriding of element \"${name}\"`);\n            }\n        }\n        else {\n            if (override) {\n                config.logError(`Overriding of non-existent element \"${name}\"`);\n            }\n        }\n        this._elements[name] = el;\n    }\n    _readContent(targetContent, content, namespaceSVG, superElName, componentCtor) {\n        for (let node of content) {\n            switch (node[0]) {\n                case rionite_template_parser_2_dist.NodeType.ELEMENT: {\n                    targetContent = this._readElement(targetContent, node, namespaceSVG, superElName, componentCtor);\n                    break;\n                }\n                case rionite_template_parser_2_dist.NodeType.TEXT: {\n                    (targetContent !== null && targetContent !== void 0 ? targetContent : (targetContent = [])).push({\n                        nodeType: NodeType.TEXT,\n                        value: node[1]\n                    });\n                    break;\n                }\n                case rionite_template_parser_2_dist.NodeType.SUPER_CALL: {\n                    (targetContent !== null && targetContent !== void 0 ? targetContent : (targetContent = [])).push(this._readSuperCall(node, superElName));\n                    break;\n                }\n                case rionite_template_parser_2_dist.NodeType.DEBUGGER_CALL: {\n                    (targetContent !== null && targetContent !== void 0 ? targetContent : (targetContent = [])).push({\n                        nodeType: NodeType.DEBUGGER_CALL\n                    });\n                    break;\n                }\n            }\n        }\n        return targetContent;\n    }\n    _readElement(targetContent, elNode, namespaceSVG, superElName, componentCtor) {\n        var _a, _b, _c, _d, _e, _f, _g;\n        let elNames = elNode[1];\n        let override = elNode[2] == 1;\n        let isTransformer = !!elNode[3];\n        let tagName = (_a = elNode[4]) !== null && _a !== void 0 ? _a : null;\n        if (elNames && !elNames[0]) {\n            elNames[0] = null;\n        }\n        let elName = elNames\n            ? isTransformer\n                ? elNames[0] && '@' + elNames[0]\n                : elNames[0]\n            : null;\n        if (tagName) {\n            if (!namespaceSVG) {\n                if (tagName.toLowerCase() == 'svg') {\n                    namespaceSVG = true;\n                    tagName = 'svg';\n                }\n                else {\n                    if (elName) {\n                        let superEl;\n                        if (this.parent && (superEl = this.parent._elements[elName])) {\n                            namespaceSVG = superEl.namespaceSVG;\n                        }\n                    }\n                }\n            }\n            if (!isTransformer && !namespaceSVG) {\n                tagName = (0,dist.kebabCase)(tagName, true);\n            }\n        }\n        else {\n            if (!elName) {\n                this._throwError('Expected element', elNode);\n            }\n            let superEl;\n            if (!this.parent || !(superEl = this.parent._elements[elName])) {\n                throw this._throwError('Element.tagName is required', elNode);\n            }\n            if (!namespaceSVG) {\n                namespaceSVG = superEl.namespaceSVG;\n            }\n            tagName = superEl.tagName;\n        }\n        let elComponentCtor = isTransformer || namespaceSVG ? null : componentConstructors.get(tagName);\n        let attrs;\n        let $specifiedParams;\n        if (elComponentCtor) {\n            $specifiedParams = new Set();\n        }\n        if (elNode[5]) {\n            attrs = this._readAttributes(elNode[5], namespaceSVG, elName !== null && elName !== void 0 ? elName : superElName, elComponentCtor && elComponentCtor[KEY_PARAMS_CONFIG], $specifiedParams);\n        }\n        let events;\n        let domEvents;\n        if (elNames && componentCtor) {\n            let componentEvents = componentCtor.events;\n            let componentDOMEvents = componentCtor.domEvents;\n            if (componentEvents || componentDOMEvents) {\n                for (let name of elNames) {\n                    if (!name) {\n                        continue;\n                    }\n                    let elEvents = componentEvents && componentEvents[name];\n                    for (let type in elEvents) {\n                        if (elEvents[type] !== Object.prototype[type]) {\n                            (events !== null && events !== void 0 ? events : (events = new Map())).set(type, name);\n                        }\n                    }\n                    while (elEvents) {\n                        for (let type of Object.getOwnPropertySymbols(elEvents)) {\n                            if (!events || !events.has(type)) {\n                                (events !== null && events !== void 0 ? events : (events = new Map())).set(type, name);\n                            }\n                        }\n                        elEvents = elEvents.__proto__;\n                        if (elEvents == Object.prototype) {\n                            break;\n                        }\n                    }\n                    let elDOMEvents = componentDOMEvents && componentDOMEvents[name];\n                    for (let type in elDOMEvents) {\n                        if (elDOMEvents[type] !== Object.prototype[type]) {\n                            (domEvents !== null && domEvents !== void 0 ? domEvents : (domEvents = new Map())).set(type, name);\n                        }\n                    }\n                }\n            }\n        }\n        let content;\n        if (elNode[6]) {\n            content = this._readContent(null, elNode[6], namespaceSVG, elName !== null && elName !== void 0 ? elName : superElName, componentCtor);\n        }\n        let el = {\n            nodeType: NodeType.ELEMENT,\n            names: elNames !== null && elNames !== void 0 ? elNames : null,\n            isTransformer,\n            namespaceSVG,\n            tagName,\n            is: (_b = attrs === null || attrs === void 0 ? void 0 : attrs.attributeIsValue) !== null && _b !== void 0 ? _b : null,\n            attributes: attrs !== null && attrs !== void 0 ? attrs : null,\n            $specifiedParams: $specifiedParams !== null && $specifiedParams !== void 0 ? $specifiedParams : null,\n            events: events !== null && events !== void 0 ? events : null,\n            domEvents: domEvents !== null && domEvents !== void 0 ? domEvents : null,\n            content: content !== null && content !== void 0 ? content : null,\n            contentTemplateIndex: null\n        };\n        if (isTransformer) {\n            let transformer = Template.elementTransformers[tagName];\n            if (!transformer) {\n                this._throwError(`Transformer \"${tagName}\" is not defined`, elNode);\n            }\n            content = transformer(el);\n            if (content && content.length != 0) {\n                el.content = content;\n                for (let i = 0, l = content.length; i < l; i++) {\n                    let node = content[i];\n                    if (node.nodeType == NodeType.ELEMENT) {\n                        if (!namespaceSVG &&\n                            node.content &&\n                            (node.tagName == 'template' ||\n                                node.tagName == 'rn-slot')) {\n                            let contentEl = {\n                                nodeType: NodeType.ELEMENT,\n                                names: node.names,\n                                isTransformer: false,\n                                namespaceSVG: node.namespaceSVG,\n                                tagName: node.tagName,\n                                is: node.is,\n                                attributes: node.attributes,\n                                $specifiedParams: node.$specifiedParams,\n                                events: node.events,\n                                domEvents: node.domEvents,\n                                content: node.content,\n                                contentTemplateIndex: ((_c = this._embeddedTemplates) !== null && _c !== void 0 ? _c : (this._embeddedTemplates = [])).push(new Template({\n                                    nodeType: NodeType.BLOCK,\n                                    content: node.content,\n                                    elements: this._elements\n                                }, {\n                                    _embedded: true,\n                                    parent: this\n                                })) - 1\n                            };\n                            let elName = contentEl.names && contentEl.names[0];\n                            if (elName) {\n                                this._setElement(elName, override, contentEl);\n                                content[i] = {\n                                    nodeType: NodeType.ELEMENT_CALL,\n                                    name: elName\n                                };\n                            }\n                            else {\n                                content[i] = contentEl;\n                            }\n                        }\n                        else {\n                            let elName = node.names && node.names[0];\n                            if (elName) {\n                                this._setElement(elName, override, node);\n                                content[i] = {\n                                    nodeType: NodeType.ELEMENT_CALL,\n                                    name: elName\n                                };\n                            }\n                        }\n                    }\n                }\n            }\n            else {\n                el.content = null;\n            }\n        }\n        else {\n            let attrList = attrs && attrs.list;\n            if (attrList) {\n                for (let attr of attrList) {\n                    if (attr.isTransformer) {\n                        let transformer = Template.attributeTransformers[attr.name];\n                        if (!transformer) {\n                            this._throwError(`Transformer \"${attr.name}\" is not defined`, elNode);\n                        }\n                        el = transformer(el, attr);\n                        for (let i = 0, l = (_e = (_d = el.content) === null || _d === void 0 ? void 0 : _d.length) !== null && _e !== void 0 ? _e : 0; i < l; i++) {\n                            let node = el.content[i];\n                            if (node.nodeType == NodeType.ELEMENT) {\n                                if (!namespaceSVG &&\n                                    node.content &&\n                                    (node.tagName == 'template' ||\n                                        node.tagName == 'rn-slot')) {\n                                    let contentEl = {\n                                        nodeType: NodeType.ELEMENT,\n                                        names: node.names,\n                                        isTransformer: false,\n                                        namespaceSVG: node.namespaceSVG,\n                                        tagName: node.tagName,\n                                        is: node.is,\n                                        attributes: node.attributes,\n                                        $specifiedParams: node.$specifiedParams,\n                                        events: node.events,\n                                        domEvents: node.domEvents,\n                                        content: node.content,\n                                        contentTemplateIndex: ((_f = this._embeddedTemplates) !== null && _f !== void 0 ? _f : (this._embeddedTemplates = [])).push(new Template({\n                                            nodeType: NodeType.BLOCK,\n                                            content: node.content,\n                                            elements: this._elements\n                                        }, {\n                                            _embedded: true,\n                                            parent: this\n                                        })) - 1\n                                    };\n                                    let elName = contentEl.names && contentEl.names[0];\n                                    if (elName) {\n                                        this._setElement(elName, override, contentEl);\n                                        el.content[i] = {\n                                            nodeType: NodeType.ELEMENT_CALL,\n                                            name: elName\n                                        };\n                                    }\n                                    else {\n                                        el.content[i] = contentEl;\n                                    }\n                                }\n                                else {\n                                    let elName = node.names && node.names[0];\n                                    if (elName) {\n                                        this._setElement(elName, override, node);\n                                        el.content[i] = {\n                                            nodeType: NodeType.ELEMENT_CALL,\n                                            name: elName\n                                        };\n                                    }\n                                }\n                            }\n                        }\n                    }\n                }\n                elName = el.names && el.names[0];\n            }\n            if (el.content && (el.tagName == 'template' || el.tagName == 'rn-slot')) {\n                el.contentTemplateIndex =\n                    ((_g = this._embeddedTemplates) !== null && _g !== void 0 ? _g : (this._embeddedTemplates = [])).push(new Template({\n                        nodeType: NodeType.BLOCK,\n                        content: el.content,\n                        elements: this._elements\n                    }, {\n                        _embedded: true,\n                        parent: this\n                    })) - 1;\n            }\n        }\n        if (elName) {\n            this._setElement(elName, override, el);\n            (targetContent !== null && targetContent !== void 0 ? targetContent : (targetContent = [])).push({\n                nodeType: NodeType.ELEMENT_CALL,\n                name: elName\n            });\n        }\n        else {\n            (targetContent !== null && targetContent !== void 0 ? targetContent : (targetContent = [])).push(el);\n        }\n        return targetContent;\n    }\n    _readAttributes(elAttrs, namespaceSVG, superElName, $paramsConfig, $specifiedParams) {\n        let superCall = elAttrs[0] &&\n            this._readSuperCall([rionite_template_parser_2_dist.NodeType.SUPER_CALL, elAttrs[0] === 1 ? undefined : elAttrs[0]], superElName);\n        let attrIsValue;\n        let list;\n        if (superCall) {\n            let superElAttrs = superCall.element.attributes;\n            if (superElAttrs) {\n                let superElAttrList = superElAttrs.list;\n                attrIsValue = superElAttrs.attributeIsValue;\n                list = superElAttrList === null || superElAttrList === void 0 ? void 0 : superElAttrList.slice(0);\n                if ($paramsConfig && superElAttrList) {\n                    for (let attr of superElAttrList) {\n                        if (!attr.isTransformer && $paramsConfig.has(attr.name)) {\n                            $specifiedParams.add($paramsConfig.get(attr.name).name);\n                        }\n                    }\n                }\n            }\n        }\n        if (elAttrs[1]) {\n            for (let elAttr of elAttrs[1]) {\n                let isTransformer = !!elAttr[0];\n                let backquote = elAttr[1].charAt(0) == '`';\n                let rawName = backquote ? elAttr[1].slice(1) : elAttr[1];\n                let name = !isTransformer && !namespaceSVG && !backquote\n                    ? (0,rionite_snake_case_attribute_name_dist.snakeCaseAttributeName)(rawName, true)\n                    : rawName;\n                let value = elAttr[2];\n                if (name == 'is' && !isTransformer) {\n                    attrIsValue = value;\n                }\n                else {\n                    let index;\n                    if (list &&\n                        (index = list.findIndex((attr) => attr.name == name && attr.isTransformer == isTransformer)) != -1) {\n                        let rawNames = list[index].rawNames;\n                        list[index] = {\n                            isTransformer,\n                            rawNames: rawName != name && (!rawNames || !rawNames.includes(rawName))\n                                ? rawNames\n                                    ? rawNames.concat(rawName)\n                                    : [rawName]\n                                : rawNames,\n                            name,\n                            value\n                        };\n                    }\n                    else {\n                        (list !== null && list !== void 0 ? list : (list = [])).push({\n                            isTransformer,\n                            rawNames: rawName == name ? null : [rawName],\n                            name,\n                            value\n                        });\n                    }\n                }\n                if ($paramsConfig && $paramsConfig.has(name)) {\n                    $specifiedParams.add($paramsConfig.get(name).name);\n                }\n            }\n        }\n        return attrIsValue == null && !list\n            ? null\n            : {\n                attributeIsValue: attrIsValue !== null && attrIsValue !== void 0 ? attrIsValue : null,\n                list: list !== null && list !== void 0 ? list : null\n            };\n    }\n    _readSuperCall(superCallNode, defaultElName) {\n        var _a, _b;\n        if (!this.parent) {\n            this._throwError('SuperCall is impossible if there is no parent', superCallNode);\n        }\n        let elName = (_b = (_a = superCallNode[1]) !== null && _a !== void 0 ? _a : defaultElName) !== null && _b !== void 0 ? _b : this._throwError('SuperCall.elementName is required', superCallNode);\n        let el = (elName.charAt(0) == '@' && this.parent._elements[elName.slice(1)]) ||\n            this.parent._elements[elName];\n        if (!el) {\n            this._throwError(`Element \"${elName}\" is not defined`, superCallNode);\n        }\n        return {\n            nodeType: NodeType.SUPER_CALL,\n            elementName: elName,\n            element: el\n        };\n    }\n    _throwError(msg, node) {\n        throw {\n            type: TypeError,\n            message: msg,\n            node\n        };\n    }\n    extend(template, options) {\n        return new Template(template, {\n            __proto__: options,\n            parent: this\n        });\n    }\n    setBlockName(blockName) {\n        if (Array.isArray(blockName)) {\n            (this._elementNamesTemplate = blockName.map((blockName) => blockName + ELEMENT_NAME_DELIMITER)).push('');\n        }\n        else {\n            this._elementNamesTemplate[0] = blockName + ELEMENT_NAME_DELIMITER;\n        }\n        return this;\n    }\n    render(component, ownerComponent, context, result, parentComponent) {\n        var _a;\n        let block = this.parse(component);\n        return this._renderContent(document.createDocumentFragment(), (_a = block.content) !== null && _a !== void 0 ? _a : block.elements['@root'].content, this, ownerComponent, context, result, parentComponent);\n    }\n    _renderContent(targetNode, content, template, ownerComponent, context, result, parentComponent) {\n        var _a, _b, _c, _d, _e;\n        if (content) {\n            for (let node of content) {\n                switch (node.nodeType) {\n                    case NodeType.ELEMENT_CALL: {\n                        node = template._elements[node.name];\n                        break;\n                    }\n                    case NodeType.SUPER_CALL: {\n                        this._renderContent(targetNode, node.element.content, template, ownerComponent, context, result, parentComponent);\n                        break;\n                    }\n                    case NodeType.ELEMENT: {\n                        if (node.isTransformer) {\n                            this._renderContent(targetNode, node.content, template, ownerComponent, context, result, parentComponent);\n                        }\n                        else {\n                            let tagName = node.tagName;\n                            let el;\n                            if (node.namespaceSVG) {\n                                el = document.createElementNS(SVG_NAMESPACE_URI, tagName);\n                            }\n                            else if (node.is) {\n                                el = window.innerHTML(document.createElement('div'), `<${tagName} is=\"${node.is}\">`).firstChild;\n                            }\n                            else {\n                                el = document.createElement(tagName);\n                            }\n                            let nodeComponent = result && el.rioniteComponent;\n                            let className;\n                            if (nodeComponent) {\n                                className = nodeComponent.constructor._blockNamesString;\n                            }\n                            if (node.names) {\n                                className =\n                                    (className !== null && className !== void 0 ? className : '') +\n                                        this._renderElementClasses(template._elementNamesTemplate, node.names);\n                            }\n                            let attrList = node.attributes &&\n                                node.attributes.list;\n                            if (attrList) {\n                                let $paramsConfig;\n                                if (nodeComponent) {\n                                    $paramsConfig = nodeComponent.constructor[KEY_PARAMS_CONFIG];\n                                }\n                                for (let attr of attrList) {\n                                    if (attr.isTransformer) {\n                                        continue;\n                                    }\n                                    let attrName = attr.name;\n                                    let attrValue = attr.value;\n                                    if (attrName == 'class') {\n                                        attrValue = (className !== null && className !== void 0 ? className : '') + attrValue;\n                                        className = null;\n                                    }\n                                    if (result) {\n                                        if (!attrName.lastIndexOf('oncomponent-', 0) ||\n                                            !attrName.lastIndexOf('on-', 0)) {\n                                            el[KEY_CONTEXT] = context;\n                                        }\n                                        if (attrValue) {\n                                            let attrValueAST = parseTemplateNodeValue(attrValue);\n                                            if (attrValueAST) {\n                                                let bindingPrefix = attrValueAST.length == 1\n                                                    ? attrValueAST[0].prefix\n                                                    : null;\n                                                if (bindingPrefix === '=' ||\n                                                    (bindingPrefix === null &&\n                                                        ((_a = ($paramsConfig &&\n                                                            $paramsConfig.get(attrName))) === null || _a === void 0 ? void 0 : _a.readonly))) {\n                                                    attrValue = compileTemplateNodeValue(attrValueAST, attrValue, true).call(context, {\n                                                        meta: {\n                                                            element: el,\n                                                            attributeName: attrName\n                                                        }\n                                                    });\n                                                }\n                                                else {\n                                                    if (bindingPrefix !== '->') {\n                                                        let cell = new external_cellx_.Cell(compileTemplateNodeValue(attrValueAST, attrValue, attrValueAST.length == 1), {\n                                                            context,\n                                                            meta: {\n                                                                element: el,\n                                                                attributeName: attrName\n                                                            },\n                                                            onChange: onAttributeBindingCellChange\n                                                        });\n                                                        attrValue = cell.get();\n                                                        ((_b = result[1]) !== null && _b !== void 0 ? _b : (result[1] = [])).push(cell);\n                                                    }\n                                                    let $paramConfig = $paramsConfig &&\n                                                        $paramsConfig.get(attrName);\n                                                    if ($paramConfig &&\n                                                        (bindingPrefix === '->' ||\n                                                            bindingPrefix === '<->')) {\n                                                        if (bindingPrefix == '->' &&\n                                                            attrName.charAt(0) != '_') {\n                                                            attrValue = null;\n                                                        }\n                                                        let keypath = attrValueAST[0].keypath.split('.');\n                                                        ((_c = result[2]) !== null && _c !== void 0 ? _c : (result[2] = [])).push(nodeComponent, $paramConfig.property, keypath.length == 1\n                                                            ? ((propName) => function (evt) {\n                                                                this.ownerComponent[propName] = evt.data['value'];\n                                                            })(keypath[0])\n                                                            : ((propName, keypath) => {\n                                                                let getPropertyHolder = compileKeypath(keypath, keypath.join('.'));\n                                                                return function (evt) {\n                                                                    let propHolder = getPropertyHolder.call(this\n                                                                        .ownerComponent);\n                                                                    if (propHolder) {\n                                                                        propHolder[propName] =\n                                                                            evt.data['value'];\n                                                                    }\n                                                                };\n                                                            })(keypath[keypath.length - 1], keypath.slice(0, -1)));\n                                                    }\n                                                }\n                                            }\n                                        }\n                                    }\n                                    if (attrValue !== false && attrValue != null) {\n                                        setAttribute(el, attrName, attrValue);\n                                    }\n                                }\n                            }\n                            if (className) {\n                                if (node.namespaceSVG) {\n                                    el.setAttribute('class', className);\n                                }\n                                else {\n                                    el.className = className;\n                                }\n                            }\n                            if (node.events) {\n                                el[KEY_EVENTS] = node.events;\n                                el[KEY_CONTEXT] = context;\n                            }\n                            if (node.domEvents) {\n                                el[KEY_DOM_EVENTS] = node.domEvents;\n                                el[KEY_CONTEXT] = context;\n                            }\n                            if (nodeComponent) {\n                                nodeComponent._ownerComponent = ownerComponent;\n                                nodeComponent.$context = context;\n                                nodeComponent.$specifiedParams = node.$specifiedParams;\n                                if (parentComponent) {\n                                    (parentComponent[KEY_CHILD_COMPONENTS] ||\n                                        (parentComponent[KEY_CHILD_COMPONENTS] = [])).push(nodeComponent);\n                                }\n                                else {\n                                    ((_d = result[0]) !== null && _d !== void 0 ? _d : (result[0] = [])).push(nodeComponent);\n                                }\n                            }\n                            if (node.contentTemplateIndex !== null) {\n                                el[KEY_CONTENT_TEMPLATE] =\n                                    template._embeddedTemplates[node.contentTemplateIndex];\n                            }\n                            else if (result &&\n                                (!nodeComponent || !nodeComponent.constructor.bindsInputContent)) {\n                                this._renderContent(el, node.content, template, ownerComponent, context, result, nodeComponent);\n                            }\n                            else {\n                                this._renderContent(el, node.content, template);\n                            }\n                            targetNode.appendChild(el);\n                        }\n                        break;\n                    }\n                    case NodeType.TEXT: {\n                        let nodeValue = node.value;\n                        if (result) {\n                            let nodeValueAST = parseTemplateNodeValue(nodeValue);\n                            if (nodeValueAST) {\n                                if (nodeValueAST.length == 1 &&\n                                    nodeValueAST[0].prefix === '=') {\n                                    targetNode.appendChild(document.createTextNode(compileTemplateNodeValue(nodeValueAST, nodeValue, false).call(context)));\n                                }\n                                else {\n                                    let meta = { textNode: null };\n                                    let cell = new external_cellx_.Cell(compileTemplateNodeValue(nodeValueAST, nodeValue, false), {\n                                        context,\n                                        meta,\n                                        onChange: onTextNodeBindingCellChange\n                                    });\n                                    meta.textNode = targetNode.appendChild(document.createTextNode(cell.get()));\n                                    ((_e = result[1]) !== null && _e !== void 0 ? _e : (result[1] = [])).push(cell);\n                                }\n                                break;\n                            }\n                        }\n                        targetNode.appendChild(document.createTextNode(nodeValue));\n                        break;\n                    }\n                }\n            }\n        }\n        return targetNode;\n    }\n    _renderElementClasses(elementNamesTemplate, elNames) {\n        let elClasses = '';\n        for (let i = elNames[0] ? 0 : 1, l = elNames.length; i < l; i++) {\n            elClasses += elementNamesTemplate.join(elNames[i] + ' ');\n        }\n        return elClasses;\n    }\n}\nTemplate.elementTransformers = {\n    section: (el) => el.content\n};\nTemplate.attributeTransformers = {};\n\n;// CONCATENATED MODULE: ./src/lib/templateTransformers.ts\n\nfor (let [name, is] of [\n    ['cond', 'rn-condition'],\n    ['repeat', 'rn-repeat']\n]) {\n    Template.elementTransformers[name] = (el) => [\n        {\n            nodeType: NodeType.ELEMENT,\n            names: el.names,\n            isTransformer: false,\n            namespaceSVG: false,\n            tagName: 'template',\n            is,\n            attributes: el.attributes,\n            $specifiedParams: null,\n            events: null,\n            domEvents: null,\n            content: el.content,\n            contentTemplateIndex: null\n        }\n    ];\n}\nfor (let name of ['if', 'unless']) {\n    Template.elementTransformers[name] = (el) => {\n        var _a, _b;\n        return [\n            {\n                nodeType: NodeType.ELEMENT,\n                names: el.names,\n                isTransformer: false,\n                namespaceSVG: false,\n                tagName: 'template',\n                is: 'rn-condition',\n                attributes: {\n                    attributeIsValue: 'rn-condition',\n                    list: [\n                        {\n                            isTransformer: false,\n                            rawNames: null,\n                            name,\n                            value: (_b = (_a = el.attributes.list[0].rawNames) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : el.attributes.list[0].name\n                        }\n                    ]\n                },\n                $specifiedParams: null,\n                events: null,\n                domEvents: null,\n                content: el.content,\n                contentTemplateIndex: null\n            }\n        ];\n    };\n}\nfor (let [name, is] of [\n    ['if', 'rn-condition'],\n    ['unless', 'rn-condition'],\n    ['for', 'rn-repeat']\n]) {\n    Template.attributeTransformers[name] = (el, attr) => ({\n        nodeType: NodeType.ELEMENT,\n        names: null,\n        isTransformer: false,\n        namespaceSVG: false,\n        tagName: 'template',\n        is,\n        attributes: {\n            attributeIsValue: is,\n            list: [\n                {\n                    isTransformer: false,\n                    rawNames: null,\n                    name,\n                    value: attr.value\n                }\n            ]\n        },\n        $specifiedParams: null,\n        events: null,\n        domEvents: null,\n        content: [el],\n        contentTemplateIndex: null\n    });\n}\n\n// EXTERNAL MODULE: ./node_modules/@riim/pascalize/dist/index.js\nvar pascalize_dist = __webpack_require__(10);\n;// CONCATENATED MODULE: ./src/ComponentParams.ts\n\n\n\nconst KEY_COMPONENT_PARAMS_INITED = Symbol('componentParamsInited');\nconst ComponentParams = {\n    init(component) {\n        if (component[KEY_COMPONENT_PARAMS_INITED]) {\n            return;\n        }\n        let $specifiedParams;\n        if (component.$specifiedParams) {\n            $specifiedParams = null;\n        }\n        else {\n            $specifiedParams = component.$specifiedParams = new Set();\n        }\n        let paramsConfig = component.constructor.params;\n        if (paramsConfig) {\n            let $paramsConfig = component.constructor[KEY_PARAMS_CONFIG];\n            for (let name in paramsConfig) {\n                if (paramsConfig[name] !== null && paramsConfig[name] !== Object.prototype[name]) {\n                    let $paramConfig = $paramsConfig.get(name);\n                    let valueСonverters = $paramConfig.valueСonverters;\n                    let defaultValue = $paramConfig.default;\n                    let el = component.element;\n                    let snakeCaseName = (0,rionite_snake_case_attribute_name_dist.snakeCaseAttributeName)(name, true);\n                    let rawValue = el.getAttribute(snakeCaseName);\n                    if (rawValue === null) {\n                        if ($paramConfig.required) {\n                            throw TypeError(`Parameter \"${name}\" is required`);\n                        }\n                        if (defaultValue != null &&\n                            defaultValue !== false &&\n                            valueСonverters.toString) {\n                            el.setAttribute(snakeCaseName, valueСonverters.toString(defaultValue));\n                        }\n                    }\n                    else {\n                        if ($specifiedParams) {\n                            $specifiedParams.add(name);\n                        }\n                    }\n                    let valueCell = (this[external_cellx_.KEY_VALUE_CELLS] || (this[external_cellx_.KEY_VALUE_CELLS] = new Map())).get($paramConfig.property);\n                    let value = valueСonverters.toData(rawValue, defaultValue, el);\n                    if (valueCell) {\n                        valueCell.set(value);\n                    }\n                    else {\n                        component[KEY_PARAM_VALUES].set(name, value);\n                    }\n                }\n            }\n        }\n        component[KEY_COMPONENT_PARAMS_INITED] = true;\n    }\n};\n\n;// CONCATENATED MODULE: ./src/elementConstructors.ts\nconst elementConstructors = new Map([\n    ['a', window.HTMLAnchorElement],\n    ['blockquote', window.HTMLQuoteElement],\n    ['br', window.HTMLBRElement],\n    ['caption', window.HTMLTableCaptionElement],\n    ['col', window.HTMLTableColElement],\n    ['colgroup', window.HTMLTableColElement],\n    ['datalist', window.HTMLDataListElement],\n    ['del', window.HTMLModElement],\n    // ['dir', window.HTMLDirectoryElement],\n    ['dl', window.HTMLDListElement],\n    // ['document', window.HTMLDocument],\n    ['fieldset', window.HTMLFieldSetElement],\n    // ['frameset', window.HTMLFrameSetElement],\n    ['h1', window.HTMLHeadingElement],\n    ['h2', window.HTMLHeadingElement],\n    ['h3', window.HTMLHeadingElement],\n    ['h4', window.HTMLHeadingElement],\n    ['h5', window.HTMLHeadingElement],\n    ['h6', window.HTMLHeadingElement],\n    ['hr', window.HTMLHRElement],\n    ['iframe', window.HTMLIFrameElement],\n    ['img', window.HTMLImageElement],\n    ['ins', window.HTMLModElement],\n    ['li', window.HTMLLIElement],\n    ['menuitem', window.HTMLMenuItemElement],\n    ['ol', window.HTMLOListElement],\n    ['optgroup', window.HTMLOptGroupElement],\n    ['p', window.HTMLParagraphElement],\n    ['q', window.HTMLQuoteElement],\n    ['tbody', window.HTMLTableSectionElement],\n    ['td', window.HTMLTableCellElement],\n    ['template', window.HTMLTemplateElement],\n    ['textarea', window.HTMLTextAreaElement],\n    ['tfoot', window.HTMLTableSectionElement],\n    ['th', window.HTMLTableCellElement],\n    ['thead', window.HTMLTableSectionElement],\n    ['tr', window.HTMLTableRowElement],\n    ['ul', window.HTMLUListElement],\n    ['vhgroupv', window.HTMLUnknownElement],\n    ['vkeygen', window.HTMLUnknownElement]\n]);\n\n// EXTERNAL MODULE: ./node_modules/@riim/defer/dist/index.js\nvar defer_dist = __webpack_require__(12);\n// EXTERNAL MODULE: ./node_modules/@riim/move-content/dist/index.js\nvar move_content_dist = __webpack_require__(15);\n;// CONCATENATED MODULE: ./src/componentBinding.ts\n\nconst KEY_FROZEN_STATE = Symbol('frozenState');\nfunction freezeBinding(binding) {\n    let changeEvent = binding._events.get(external_cellx_.Cell.EVENT_CHANGE);\n    binding._events.delete(external_cellx_.Cell.EVENT_CHANGE);\n    binding[KEY_FROZEN_STATE] = {\n        changeEventListener: changeEvent.listener,\n        changeEventContext: changeEvent.context,\n        value: binding._value\n    };\n}\nfunction unfreezeBinding(binding) {\n    let frozenState = binding[KEY_FROZEN_STATE];\n    binding[KEY_FROZEN_STATE] = null;\n    binding.onChange(frozenState.changeEventListener, frozenState.changeEventContext);\n    if (frozenState.value !== binding._value) {\n        binding.emit(external_cellx_.Cell.EVENT_CHANGE, {\n            prevValue: frozenState.value,\n            value: binding._value\n        });\n    }\n}\nfunction freezeBindings(bindings) {\n    external_cellx_.Cell.release();\n    for (let binding of bindings) {\n        freezeBinding(binding);\n    }\n}\nfunction unfreezeBindings(bindings) {\n    for (let binding of bindings) {\n        unfreezeBinding(binding);\n    }\n    external_cellx_.Cell.release();\n}\n\n;// CONCATENATED MODULE: ./src/connectChildComponentElements.ts\n\n\nfunction connectChildComponentElements(childComponents) {\n    for (let component of childComponents) {\n        component._parentComponent = undefined;\n        ComponentParams.init(component);\n        callLifecycle([\n            ...component.constructor._lifecycleHooks.elementConnected,\n            ...component._lifecycleHooks.elementConnected,\n            component.elementConnected\n        ], component);\n        component._connect();\n    }\n}\n\n;// CONCATENATED MODULE: ./src/lib/findChildComponents.ts\nfunction findChildComponents(node, childComponents) {\n    for (let child = node.firstChild; child; child = child.nextSibling) {\n        if (child.nodeType == Node.ELEMENT_NODE) {\n            let childComponent = child.$component;\n            if (childComponent) {\n                (childComponents !== null && childComponents !== void 0 ? childComponents : (childComponents = [])).push(childComponent);\n            }\n            if (child.firstChild && !(childComponent === null || childComponent === void 0 ? void 0 : childComponent.constructor.bindsInputContent)) {\n                childComponents = findChildComponents(child, childComponents);\n            }\n        }\n    }\n    return childComponents !== null && childComponents !== void 0 ? childComponents : null;\n}\n\n;// CONCATENATED MODULE: ./src/BaseComponent.ts\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction callLifecycle(lifecycle, context) {\n    let promises;\n    for (let lifecycleFn of lifecycle) {\n        let result;\n        try {\n            result =\n                lifecycleFn.length == 0\n                    ? lifecycleFn.call(context)\n                    : lifecycleFn.call(context, context);\n        }\n        catch (err) {\n            config.logError(err);\n            return null;\n        }\n        if (result instanceof Promise) {\n            (promises !== null && promises !== void 0 ? promises : (promises = [])).push(result.catch((err) => {\n                if (!(err instanceof InterruptError)) {\n                    config.logError(err);\n                }\n            }));\n        }\n    }\n    return promises !== null && promises !== void 0 ? promises : null;\n}\nlet currentComponent;\nfunction onElementConnected(lifecycleHook) {\n    currentComponent._lifecycleHooks.elementConnected.push(lifecycleHook);\n}\nfunction onElementDisconnected(lifecycleHook) {\n    currentComponent._lifecycleHooks.elementDisconnected.push(lifecycleHook);\n}\nfunction onReady(lifecycleHook) {\n    currentComponent._lifecycleHooks.ready.push(lifecycleHook);\n}\nfunction onConnected(lifecycleHook) {\n    currentComponent._lifecycleHooks.connected.push(lifecycleHook);\n}\nfunction onDisconnected(lifecycleHook) {\n    currentComponent._lifecycleHooks.disconnected.push(lifecycleHook);\n}\nfunction onElementMoved(lifecycleHook) {\n    currentComponent._lifecycleHooks.elementMoved.push(lifecycleHook);\n}\nclass BaseComponent extends external_cellx_.EventEmitter {\n    constructor(el) {\n        super();\n        this._disposables = new Set();\n        this._parentComponent = null;\n        this.$inputContent = null;\n        this.initializationPromise = null;\n        this.readyPromise = null;\n        this._initialized = false;\n        this._isReady = false;\n        this._isConnected = false;\n        this._lifecycleHooks = {\n            elementConnected: [],\n            elementDisconnected: [],\n            ready: [],\n            connected: [],\n            disconnected: [],\n            elementMoved: []\n        };\n        currentComponent = this;\n        this[KEY_COMPONENT_SELF] = this;\n        let ctor = this.constructor;\n        if (!elementConstructors.has(ctor.elementIs)) {\n            throw TypeError('Component must be registered');\n        }\n        if (!el) {\n            el = document.createElement((0,dist.kebabCase)(ctor.elementIs, true));\n        }\n        this.element = el;\n        el.$component = this;\n        this[KEY_PARAM_VALUES] = new Map();\n    }\n    static get bindsInputContent() {\n        return this.template !== null;\n    }\n    get ownerComponent() {\n        if (this._ownerComponent) {\n            return this._ownerComponent;\n        }\n        let component = this.parentComponent;\n        if (!component) {\n            return (this._ownerComponent = this);\n        }\n        for (let parentComponent; (parentComponent = component.parentComponent);) {\n            component = parentComponent;\n        }\n        return (this._ownerComponent = component);\n    }\n    set ownerComponent(ownerComponent) {\n        this._ownerComponent = ownerComponent;\n    }\n    get parentComponent() {\n        if (this._parentComponent !== undefined) {\n            return this._parentComponent;\n        }\n        for (let node; (node = (node || this.element).parentNode);) {\n            if (node.$component !== undefined) {\n                return (this._parentComponent = node.$component || node.rioniteComponent);\n            }\n        }\n        return (this._parentComponent = null);\n    }\n    get initialized() {\n        return this._initialized;\n    }\n    get isReady() {\n        return this._isReady;\n    }\n    get isConnected() {\n        return this._isConnected;\n    }\n    onChange(listener, context) {\n        return this.on(this.constructor.EVENT_CHANGE, listener, context);\n    }\n    offChange(listener, context) {\n        return this.off(this.constructor.EVENT_CHANGE, listener, context);\n    }\n    handleEvent(evt) {\n        super.handleEvent(evt);\n        if (evt.bubbles !== false && !evt.propagationStopped) {\n            let parentComponent = this.parentComponent;\n            if (parentComponent) {\n                parentComponent.handleEvent(evt);\n                return;\n            }\n        }\n        handleEvent(evt);\n    }\n    listenTo(target, evtType, listener, context, useCapture) {\n        if (typeof target == 'string') {\n            target = this.$(target);\n        }\n        let listenings;\n        if (typeof evtType == 'object') {\n            listenings = [];\n            if (Array.isArray(evtType)) {\n                for (let i = 0, l = evtType.length; i < l; i++) {\n                    listenings.push(this.listenTo(target, evtType[i], listener, context, useCapture));\n                }\n            }\n            else {\n                for (let evtType_ in evtType) {\n                    if (Object.prototype.hasOwnProperty.call(evtType, evtType_)) {\n                        listenings.push(this.listenTo(target, evtType_, evtType[evtType_], listener, context));\n                    }\n                }\n                for (let evtType_ of Object.getOwnPropertySymbols(evtType)) {\n                    listenings.push(this.listenTo(target, evtType_, evtType[evtType_], listener, context));\n                }\n            }\n        }\n        else {\n            if (Array.isArray(target) ||\n                target instanceof NodeList ||\n                target instanceof HTMLCollection) {\n                listenings = [];\n                for (let i = 0, l = target.length; i < l; i++) {\n                    listenings.push(this.listenTo(target[i], evtType, listener, context, useCapture));\n                }\n            }\n            else {\n                if (Array.isArray(listener)) {\n                    listenings = [];\n                    for (let i = 0, l = listener.length; i < l; i++) {\n                        listenings.push(this.listenTo(target, evtType, listener[i], context, useCapture));\n                    }\n                }\n                else {\n                    return this._listenTo(target, evtType, listener, context !== undefined ? context : this, useCapture !== null && useCapture !== void 0 ? useCapture : false);\n                }\n            }\n        }\n        let listening;\n        let stop = () => {\n            for (let i = listenings.length; i != 0;) {\n                listenings[--i].stop();\n            }\n            this._disposables.delete(listening);\n        };\n        listening = {\n            stop,\n            dispose: stop\n        };\n        this._disposables.add(listening);\n        return listening;\n    }\n    _listenTo(target, evtType, listener, context, useCapture) {\n        if (!target) {\n            throw TypeError('\"target\" is required');\n        }\n        if (target instanceof external_cellx_.EventEmitter) {\n            target.on(evtType, listener, context);\n        }\n        else {\n            if (target !== context) {\n                listener = listener.bind(context);\n            }\n            target.addEventListener(evtType, listener, useCapture);\n        }\n        let listening;\n        let stop = () => {\n            if (this._disposables.has(listening)) {\n                if (target instanceof external_cellx_.EventEmitter) {\n                    target.off(evtType, listener, context);\n                }\n                else {\n                    target.removeEventListener(evtType, listener, useCapture);\n                }\n                this._disposables.delete(listening);\n            }\n        };\n        listening = {\n            stop,\n            dispose: stop\n        };\n        this._disposables.add(listening);\n        return listening;\n    }\n    setTimeout(cb, delay) {\n        let timeout;\n        let timeoutId = setTimeout(() => {\n            this._disposables.delete(timeout);\n            cb.call(this);\n        }, delay);\n        let clear = () => {\n            if (this._disposables.has(timeout)) {\n                clearTimeout(timeoutId);\n                this._disposables.delete(timeout);\n            }\n        };\n        timeout = {\n            clear,\n            dispose: clear\n        };\n        this._disposables.add(timeout);\n        return timeout;\n    }\n    setInterval(cb, delay) {\n        let interval;\n        let clear;\n        let intervalId = setInterval(() => {\n            if (cb.call(this, clear) === false) {\n                clear();\n            }\n        }, delay);\n        clear = () => {\n            if (this._disposables.has(interval)) {\n                clearInterval(intervalId);\n                this._disposables.delete(interval);\n            }\n        };\n        interval = {\n            clear,\n            dispose: clear\n        };\n        this._disposables.add(interval);\n        return interval;\n    }\n    registerCallback(cb) {\n        let registeredCallback;\n        let cancel = () => {\n            this._disposables.delete(registeredCallback);\n        };\n        registeredCallback = ((...args) => {\n            if (this._disposables.has(registeredCallback)) {\n                this._disposables.delete(registeredCallback);\n                return cb.apply(this, args);\n            }\n        });\n        registeredCallback.cancel = cancel;\n        registeredCallback.dispose = cancel;\n        this._disposables.add(registeredCallback);\n        return registeredCallback;\n    }\n    $interruptIfNotConnected(value) {\n        if (!this._isConnected) {\n            throw InterruptError();\n        }\n        return value;\n    }\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\n    _beforeInitializationWait() { }\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\n    _afterInitializationWait() { }\n    connect(ownerComponent) {\n        if (ownerComponent) {\n            this._ownerComponent = ownerComponent;\n        }\n        if (this._isConnected) {\n            return this.initializationPromise;\n        }\n        this._parentComponent = undefined;\n        ComponentParams.init(this);\n        callLifecycle([\n            ...this.constructor._lifecycleHooks.elementConnected,\n            ...this._lifecycleHooks.elementConnected,\n            this.elementConnected\n        ], this);\n        return this._connect();\n    }\n    _connect() {\n        var _a;\n        this._isConnected = true;\n        if (this._initialized) {\n            if (!this._isReady) {\n                this._afterInitializationWait();\n            }\n        }\n        else {\n            currentComponent = this;\n            let initializationPromise;\n            try {\n                initializationPromise = this.initialize();\n            }\n            catch (err) {\n                config.logError(err);\n                return null;\n            }\n            if (initializationPromise) {\n                this._beforeInitializationWait();\n                return (this.initializationPromise = initializationPromise.then(() => {\n                    this._initialized = true;\n                    if (this._isConnected) {\n                        this._connect();\n                    }\n                }, (err) => {\n                    if (!(err instanceof InterruptError)) {\n                        config.logError(err);\n                    }\n                }));\n            }\n            this._initialized = true;\n        }\n        let ctor = this.constructor;\n        let readyPromises;\n        if (this._isReady) {\n            this._unfreezeBindings();\n            let childComponents = findChildComponents(this.element);\n            if (childComponents) {\n                connectChildComponentElements(childComponents);\n            }\n        }\n        else {\n            let el = this.element;\n            if (el.className.lastIndexOf(ctor._blockNamesString, 0)) {\n                el.className = ctor._blockNamesString + el.className;\n            }\n            if (ctor.template === null) {\n                if (this.ownerComponent == this) {\n                    let contentBindingResult = [null, null, null];\n                    bindContent(el, this, this, contentBindingResult);\n                    let childComponents = contentBindingResult[0];\n                    let backBindings = contentBindingResult[2];\n                    this._bindings = contentBindingResult[1];\n                    if (childComponents) {\n                        connectChildComponentElements(childComponents);\n                    }\n                    if (backBindings) {\n                        for (let i = backBindings.length; i != 0; i -= 3) {\n                            backBindings[i - 3].on('change:' + backBindings[i - 2], backBindings[i - 1]);\n                        }\n                    }\n                }\n                else {\n                    this._bindings = null;\n                    if (this[KEY_CHILD_COMPONENTS]) {\n                        connectChildComponentElements(this[KEY_CHILD_COMPONENTS]);\n                    }\n                }\n            }\n            else {\n                if (el.firstChild) {\n                    suppressConnectionStatusCallbacks();\n                    (0,move_content_dist.moveContent)((_a = this.$inputContent) !== null && _a !== void 0 ? _a : (this.$inputContent = document.createDocumentFragment()), el);\n                    resumeConnectionStatusCallbacks();\n                }\n                let contentBindingResult = [null, null, null];\n                let content = ctor.template.render(this, this, this, contentBindingResult);\n                let childComponents = contentBindingResult[0];\n                let backBindings = contentBindingResult[2];\n                this._bindings = contentBindingResult[1];\n                if (childComponents) {\n                    for (let i = childComponents.length; i != 0;) {\n                        let childComponent = childComponents[--i];\n                        if (childComponent.element.firstChild &&\n                            childComponent.constructor.bindsInputContent) {\n                            childComponent.$inputContent = (0,move_content_dist.moveContent)(document.createDocumentFragment(), childComponent.element);\n                        }\n                    }\n                }\n                suppressConnectionStatusCallbacks();\n                this.element.appendChild(content);\n                resumeConnectionStatusCallbacks();\n                if (childComponents) {\n                    connectChildComponentElements(childComponents);\n                }\n                if (backBindings) {\n                    for (let i = backBindings.length; i != 0; i -= 3) {\n                        backBindings[i - 3].on('change:' + backBindings[i - 2], backBindings[i - 1]);\n                    }\n                }\n            }\n            readyPromises = callLifecycle([\n                ...this.constructor._lifecycleHooks.ready,\n                ...this._lifecycleHooks.ready,\n                this.ready\n            ], this);\n            if (readyPromises) {\n                this.readyPromise = Promise.all(readyPromises).finally(() => {\n                    this.readyPromise = null;\n                });\n            }\n            this._isReady = true;\n        }\n        if (readyPromises) {\n            this.readyPromise.finally(() => {\n                if (this._isConnected) {\n                    callLifecycle([\n                        ...this.constructor._lifecycleHooks.connected,\n                        ...this._lifecycleHooks.connected,\n                        this.connected\n                    ], this);\n                }\n            });\n        }\n        else if (!this.readyPromise) {\n            callLifecycle([\n                ...this.constructor._lifecycleHooks.connected,\n                ...this._lifecycleHooks.connected,\n                this.connected\n            ], this);\n        }\n        return this.initializationPromise;\n    }\n    _disconnect() {\n        this._isConnected = false;\n        callLifecycle([\n            ...this.constructor._lifecycleHooks.disconnected,\n            ...this._lifecycleHooks.disconnected,\n            this.disconnected\n        ], this);\n        this.dispose();\n    }\n    dispose() {\n        this._freezeBindings();\n        for (let disposable of this._disposables) {\n            disposable.dispose();\n        }\n        return this;\n    }\n    _freezeBindings() {\n        if (this._bindings) {\n            freezeBindings(this._bindings);\n        }\n    }\n    _unfreezeBindings() {\n        if (this._bindings) {\n            unfreezeBindings(this._bindings);\n        }\n    }\n    _destroyBindings() {\n        let bindings = this._bindings;\n        if (bindings) {\n            for (let i = bindings.length; i != 0;) {\n                bindings[--i].off();\n            }\n            this._bindings = null;\n        }\n    }\n    // Callbacks\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\n    elementConnected() { }\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\n    elementDisconnected() { }\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\n    initialize() { }\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\n    ready() { }\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\n    connected() { }\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\n    disconnected() { }\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\n    elementMoved() { }\n    $(name, container) {\n        var _a;\n        let elList = this._$$(name, container);\n        return (elList && elList.length != 0\n            ? (_a = elList[0].$component) !== null && _a !== void 0 ? _a : elList[0]\n            : null);\n    }\n    $$(name, container) {\n        let elList = this._$$(name, container);\n        return elList\n            ? Array.prototype.map.call(elList, (el) => { var _a; return (_a = el.$component) !== null && _a !== void 0 ? _a : el; })\n            : [];\n    }\n    _$$(name, container) {\n        if (container) {\n            if (typeof container == 'string') {\n                container = this.$(container);\n            }\n            if (container instanceof BaseComponent) {\n                container = container.element;\n            }\n        }\n        else {\n            container = this.element;\n        }\n        let elementBlockNames = this.constructor._elementBlockNames;\n        return container.getElementsByClassName(elementBlockNames[elementBlockNames.length - 1] + '__' + name);\n    }\n}\nBaseComponent.EVENT_CHANGE = 'change';\nBaseComponent.elementExtends = null;\nBaseComponent.params = null;\nBaseComponent.i18n = null;\nBaseComponent.template = null;\nBaseComponent._lifecycleHooks = {\n    elementConnected: [],\n    elementDisconnected: [],\n    ready: [],\n    connected: [],\n    disconnected: [],\n    elementMoved: []\n};\nBaseComponent.events = null;\nBaseComponent.domEvents = null;\nconst handledEventTypes = [\n    'change',\n    'click',\n    'dblclick',\n    'focusin',\n    'focusout',\n    'input',\n    'mousedown',\n    'mouseup',\n    'submit'\n];\ndocument.addEventListener('DOMContentLoaded', function onDOMContentLoaded() {\n    document.removeEventListener('DOMContentLoaded', onDOMContentLoaded);\n    for (let type of handledEventTypes) {\n        document.body.addEventListener(type, handleDOMEvent);\n    }\n});\n\n;// CONCATENATED MODULE: ./src/lib/observedAttributesFeature.ts\nlet observedAttributesFeature_ = false;\nwindow.customElements.define('test-observed-attributes-feature', class extends HTMLElement {\n    static get observedAttributes() {\n        return ['test'];\n    }\n    attributeChangedCallback() {\n        observedAttributesFeature_ = true;\n    }\n});\ndocument.createElement('test-observed-attributes-feature').setAttribute('test', '');\nconst observedAttributesFeature = observedAttributesFeature_;\n\n;// CONCATENATED MODULE: ./src/ElementProtoMixin.ts\n\n\n\n\n\n\nconst KEY_RIONITE_COMPONENT_CONSTRUCTOR = Symbol('rioniteComponentConstructor');\nconst KEY_ELEMENT_CONNECTED = Symbol('elementConnected');\nlet connectionStatusCallbacksSuppressed = false;\nfunction suppressConnectionStatusCallbacks() {\n    connectionStatusCallbacksSuppressed = true;\n}\nfunction resumeConnectionStatusCallbacks() {\n    connectionStatusCallbacksSuppressed = false;\n}\nconst ElementProtoMixin = {\n    $component: null,\n    get rioniteComponent() {\n        var _a;\n        return ((_a = this.$component) !== null && _a !== void 0 ? _a : new this.constructor[KEY_RIONITE_COMPONENT_CONSTRUCTOR](this));\n    },\n    [KEY_ELEMENT_CONNECTED]: false,\n    connectedCallback() {\n        this[KEY_ELEMENT_CONNECTED] = true;\n        if (connectionStatusCallbacksSuppressed) {\n            return;\n        }\n        let component = this.$component;\n        if (component) {\n            if (component._isConnected) {\n                if (component._parentComponent === null) {\n                    component._parentComponent = undefined;\n                    callLifecycle([\n                        ...component.constructor._lifecycleHooks.elementConnected,\n                        ...component._lifecycleHooks.elementConnected,\n                        component.elementConnected,\n                        ...component.constructor._lifecycleHooks.elementMoved,\n                        ...component._lifecycleHooks.elementMoved,\n                        component.elementMoved\n                    ], component);\n                }\n                else {\n                    callLifecycle([\n                        ...component.constructor._lifecycleHooks.elementConnected,\n                        ...component._lifecycleHooks.elementConnected,\n                        component.elementConnected\n                    ], component);\n                }\n            }\n            else {\n                component._parentComponent = undefined;\n                ComponentParams.init(component);\n                callLifecycle([\n                    ...component.constructor._lifecycleHooks.elementConnected,\n                    ...component._lifecycleHooks.elementConnected,\n                    component.elementConnected\n                ], component);\n                component._connect();\n            }\n            return;\n        }\n        component = this.rioniteComponent;\n        component._parentComponent = undefined;\n        if (component.parentComponent && component._parentComponent._isReady) {\n            ComponentParams.init(component);\n            callLifecycle([\n                ...component.constructor._lifecycleHooks.elementConnected,\n                ...component._lifecycleHooks.elementConnected,\n                component.elementConnected\n            ], component);\n            component._connect();\n            return;\n        }\n        (0,defer_dist.defer)(() => {\n            if (!this[KEY_ELEMENT_CONNECTED]) {\n                return;\n            }\n            let component = this.rioniteComponent;\n            component._parentComponent = undefined;\n            if (!component._isConnected && !component.parentComponent) {\n                ComponentParams.init(component);\n                callLifecycle([\n                    ...component.constructor._lifecycleHooks.elementConnected,\n                    ...component._lifecycleHooks.elementConnected,\n                    component.elementConnected\n                ], component);\n                component._connect();\n            }\n        });\n    },\n    disconnectedCallback() {\n        this[KEY_ELEMENT_CONNECTED] = false;\n        if (connectionStatusCallbacksSuppressed) {\n            return;\n        }\n        let component = this.$component;\n        if (component && component._isConnected) {\n            component._parentComponent = null;\n            callLifecycle([\n                ...component.constructor._lifecycleHooks.elementDisconnected,\n                ...component._lifecycleHooks.elementDisconnected,\n                component.elementDisconnected\n            ], component);\n            (0,defer_dist.defer)(() => {\n                if (component._parentComponent === null && component._isConnected) {\n                    component._disconnect();\n                }\n            });\n        }\n    },\n    attributeChangedCallback(name, _prevRawValue, rawValue) {\n        var _a;\n        let component = this.$component;\n        if (component && component._isReady) {\n            let $paramConfig = component.constructor[KEY_PARAMS_CONFIG].get(name);\n            if ($paramConfig.readonly) {\n                if (observedAttributesFeature) {\n                    throw TypeError(`Cannot write to readonly parameter \"${$paramConfig.name}\"`);\n                }\n            }\n            else {\n                let valueCell = ((_a = component[external_cellx_.KEY_VALUE_CELLS]) !== null && _a !== void 0 ? _a : (component[external_cellx_.KEY_VALUE_CELLS] = new Map())).get($paramConfig.property);\n                let value = $paramConfig.valueСonverters.toData(rawValue, $paramConfig.default, this);\n                if (valueCell) {\n                    valueCell.set(value);\n                }\n                else {\n                    component[KEY_PARAM_VALUES].set($paramConfig.name, value);\n                }\n            }\n        }\n    }\n};\n\n;// CONCATENATED MODULE: ./src/registerComponent.ts\n\n\n\n\n\n\n\n\n\n\n\nconst componentParamTypeMap = new Map([\n    ['boolean', Boolean],\n    ['number', Number],\n    ['string', String]\n]);\nconst componentParamTypeMap2 = new Map([\n    [Boolean, 'boolean'],\n    [Number, 'number'],\n    [String, 'string']\n]);\nfunction inheritProperty(target, source, name, depth) {\n    let obj = target[name];\n    let parentObj = source[name];\n    if (obj && parentObj && obj != parentObj) {\n        let inheritedObj = (target[name] = { __proto__: parentObj });\n        for (let key in obj) {\n            if (Object.prototype.hasOwnProperty.call(obj, key)) {\n                inheritedObj[key] = obj[key];\n                if (depth) {\n                    inheritProperty(inheritedObj, parentObj, key, depth - 1);\n                }\n            }\n        }\n    }\n}\nfunction registerComponent(componentCtor) {\n    var _a, _b, _c, _d, _e, _f;\n    var _g, _h;\n    let elIs = Object.prototype.hasOwnProperty.call(componentCtor, 'elementIs')\n        ? componentCtor.elementIs\n        : (componentCtor.elementIs = componentCtor.name);\n    if (!elIs) {\n        throw TypeError('Static property \"elementIs\" is required');\n    }\n    let kebabCaseElIs = (0,dist.kebabCase)(elIs, true);\n    if (componentConstructors.has(kebabCaseElIs)) {\n        throw TypeError(`Component \"${kebabCaseElIs}\" already registered`);\n    }\n    let componentProto = componentCtor.prototype;\n    let parentComponentCtor = Object.getPrototypeOf(componentProto).constructor;\n    inheritProperty(componentCtor, parentComponentCtor, 'params', 0);\n    componentCtor[KEY_PARAMS_CONFIG] = null;\n    let paramsConfig = componentCtor.params;\n    for (let name in paramsConfig) {\n        let paramConfig = paramsConfig[name];\n        if (paramConfig === null || paramConfig === Object.prototype[name]) {\n            continue;\n        }\n        let snakeCaseName = (0,rionite_snake_case_attribute_name_dist.snakeCaseAttributeName)(name, true);\n        let propName;\n        let type;\n        let valueСonverters;\n        let defaultValue;\n        let required;\n        let readonly;\n        if (typeof paramConfig == 'object') {\n            propName = (_a = paramConfig.property) !== null && _a !== void 0 ? _a : name;\n            type = paramConfig.type;\n            defaultValue = paramConfig.default;\n            required = (_b = paramConfig.required) !== null && _b !== void 0 ? _b : false;\n            readonly = (_c = paramConfig.readonly) !== null && _c !== void 0 ? _c : false;\n        }\n        else {\n            propName = name;\n            type = paramConfig;\n            required = readonly = false;\n        }\n        if (!type) {\n            type =\n                defaultValue === undefined\n                    ? Object\n                    : (_d = componentParamTypeMap.get(typeof defaultValue)) !== null && _d !== void 0 ? _d : Object;\n        }\n        valueСonverters = componentParamValueСonverters.get(type);\n        if (!valueСonverters) {\n            throw TypeError('Unsupported parameter type');\n        }\n        if (defaultValue !== undefined &&\n            type != Object &&\n            type != eval &&\n            componentParamTypeMap2.get(type) != typeof defaultValue) {\n            throw TypeError('Specified type does not match type of defaultValue');\n        }\n        let $paramConfig = {\n            name,\n            property: propName,\n            type,\n            valueСonverters,\n            default: defaultValue,\n            required,\n            readonly,\n            paramConfig\n        };\n        ((_e = componentCtor[KEY_PARAMS_CONFIG]) !== null && _e !== void 0 ? _e : (componentCtor[KEY_PARAMS_CONFIG] = new Map()))\n            .set(name, $paramConfig)\n            .set(snakeCaseName, $paramConfig);\n        let descriptor = {\n            configurable: true,\n            enumerable: true,\n            get() {\n                var _a;\n                ComponentParams.init(this);\n                let self = this[KEY_COMPONENT_SELF];\n                let valueCell = ((_a = self[external_cellx_.KEY_VALUE_CELLS]) !== null && _a !== void 0 ? _a : (self[external_cellx_.KEY_VALUE_CELLS] = new Map())).get(propName);\n                if (valueCell) {\n                    return valueCell.get();\n                }\n                let value = self[KEY_PARAM_VALUES].get(name);\n                if (external_cellx_.Cell.currentlyPulling || external_cellx_.EventEmitter.currentlySubscribing) {\n                    self[KEY_PARAM_VALUES].delete(name);\n                    valueCell = new external_cellx_.Cell(null, {\n                        context: self,\n                        value\n                    });\n                    self[external_cellx_.KEY_VALUE_CELLS].set(propName, valueCell);\n                    if (external_cellx_.Cell.currentlyPulling) {\n                        return valueCell.get();\n                    }\n                }\n                return value;\n            },\n            set(value) {\n                var _a;\n                let self = this[KEY_COMPONENT_SELF];\n                let valueCell = ((_a = self[external_cellx_.KEY_VALUE_CELLS]) !== null && _a !== void 0 ? _a : (self[external_cellx_.KEY_VALUE_CELLS] = new Map())).get(propName);\n                if (self[KEY_COMPONENT_PARAMS_INITED]) {\n                    if (readonly) {\n                        if (value !==\n                            (valueCell ? valueCell.get() : self[KEY_PARAM_VALUES].get(name))) {\n                            throw TypeError(`Parameter \"${name}\" is readonly`);\n                        }\n                        return;\n                    }\n                    if ($paramConfig.valueСonverters.toString) {\n                        let rawValue = $paramConfig.valueСonverters.toString(value, $paramConfig.default);\n                        if (rawValue === null) {\n                            self.element.removeAttribute(snakeCaseName);\n                        }\n                        else {\n                            self.element.setAttribute(snakeCaseName, rawValue);\n                        }\n                    }\n                }\n                if (valueCell) {\n                    valueCell.set(value);\n                }\n                else {\n                    self[KEY_PARAM_VALUES].set(name, value);\n                }\n            }\n        };\n        Object.defineProperty(componentProto, propName, descriptor);\n    }\n    inheritProperty(componentCtor, parentComponentCtor, 'i18n', 0);\n    componentCtor._blockNamesString = elIs + ' ' + (parentComponentCtor._blockNamesString || '');\n    componentCtor._elementBlockNames = [elIs];\n    if (parentComponentCtor._elementBlockNames) {\n        componentCtor._elementBlockNames.push(...parentComponentCtor._elementBlockNames);\n    }\n    let template = componentCtor.template;\n    if (template !== null) {\n        if (template === parentComponentCtor.template) {\n            componentCtor.template = template.extend('', {\n                blockName: elIs\n            });\n        }\n        else if (template instanceof Template) {\n            template.setBlockName(componentCtor._elementBlockNames);\n        }\n        else {\n            componentCtor.template = parentComponentCtor.template\n                ? parentComponentCtor.template.extend(template, {\n                    blockName: elIs\n                })\n                : new Template(template, { blockName: componentCtor._elementBlockNames });\n        }\n    }\n    inheritProperty(componentCtor, parentComponentCtor, 'events', 1);\n    inheritProperty(componentCtor, parentComponentCtor, 'domEvents', 1);\n    let elExtends = componentCtor.elementExtends;\n    let parentElCtor;\n    if (elExtends) {\n        parentElCtor =\n            (_f = elementConstructors.get(elExtends)) !== null && _f !== void 0 ? _f : window[`HTML${(0,pascalize_dist.pascalize)(elExtends)}Element`];\n        if (!parentElCtor) {\n            throw TypeError(`Component \"${elExtends}\" is not registered`);\n        }\n    }\n    else {\n        parentElCtor = HTMLElement;\n    }\n    let elCtor = (_h = class extends parentElCtor {\n            static get observedAttributes() {\n                let paramsConfig = componentCtor.params;\n                let attrs = [];\n                for (let name in paramsConfig) {\n                    if (paramsConfig[name] !== null && paramsConfig[name] !== Object.prototype[name]) {\n                        attrs.push((0,rionite_snake_case_attribute_name_dist.snakeCaseAttributeName)(name, true));\n                    }\n                }\n                return attrs;\n            }\n        },\n        _g = KEY_RIONITE_COMPONENT_CONSTRUCTOR,\n        _h[_g] = componentCtor,\n        _h);\n    let elProto = elCtor.prototype;\n    elProto.constructor = elCtor;\n    let names = Object.getOwnPropertyNames(ElementProtoMixin);\n    for (let name of names) {\n        Object.defineProperty(elProto, name, Object.getOwnPropertyDescriptor(ElementProtoMixin, name));\n    }\n    names = Object.getOwnPropertySymbols(ElementProtoMixin);\n    for (let name of names) {\n        Object.defineProperty(elProto, name, Object.getOwnPropertyDescriptor(ElementProtoMixin, name));\n    }\n    componentConstructors.set(elIs, componentCtor).set(kebabCaseElIs, componentCtor);\n    elementConstructors.set(elIs, elCtor);\n    window.customElements.define(kebabCaseElIs, elCtor, elExtends ? { extends: elExtends } : undefined);\n    return componentCtor;\n}\n\n;// CONCATENATED MODULE: ./src/decorators/Component.ts\n\nfunction Component(config) {\n    return (componentCtor) => {\n        if (config) {\n            if (config.elementIs !== undefined) {\n                componentCtor.elementIs = config.elementIs;\n            }\n            if (config.elementExtends !== undefined) {\n                componentCtor.elementExtends = config.elementExtends;\n            }\n            if (config.params !== undefined) {\n                componentCtor.params = config.params;\n            }\n            if (config.i18n !== undefined) {\n                componentCtor.i18n = config.i18n;\n            }\n            if (config.template !== undefined) {\n                componentCtor.template = config.template;\n            }\n            if (config.events !== undefined) {\n                componentCtor.events = config.events;\n            }\n            if (config.domEvents !== undefined) {\n                componentCtor.domEvents = config.domEvents;\n            }\n        }\n        registerComponent(componentCtor);\n    };\n}\n\n;// CONCATENATED MODULE: ./src/decorators/Param.ts\nfunction Param(target, propName, propDesc, name, config) {\n    if (typeof propName != 'string') {\n        if (target && typeof target != 'string') {\n            config = target;\n        }\n        else {\n            name = target;\n            config = propName;\n        }\n        return (target, propName, propDesc) => Param(target, propName, propDesc, name, config);\n    }\n    if (!config) {\n        config = {};\n    }\n    else if (typeof config == 'function') {\n        config = { type: config };\n    }\n    config.property = propName;\n    let ctor = target.constructor;\n    ((Object.prototype.hasOwnProperty.call(ctor, 'params') && ctor.params) || (ctor.params = {}))[name !== null && name !== void 0 ? name : propName] = config;\n}\n\n;// CONCATENATED MODULE: ./src/decorators/Attr.ts\n\n\n\nfunction Attr(target, propName) {\n    let lifecycleHooks = Object.prototype.hasOwnProperty.call(target.constructor, '_lifecycleHooks')\n        ? target.constructor._lifecycleHooks\n        : (target.constructor._lifecycleHooks = {\n            __proto__: target.constructor._lifecycleHooks\n        });\n    (Object.prototype.hasOwnProperty.call(lifecycleHooks, 'connected')\n        ? lifecycleHooks.connected\n        : (lifecycleHooks.connected = lifecycleHooks.connected.slice())).push((component) => {\n        let attrName = (0,rionite_snake_case_attribute_name_dist.snakeCaseAttributeName)(propName, true);\n        setAttribute(component.element, attrName, component[propName]);\n        component.listenTo(component, external_cellx_.Cell.EVENT_CHANGE + ':' + propName, function () {\n            setAttribute(this.element, attrName, this[propName]);\n        });\n    });\n}\n\n;// CONCATENATED MODULE: ./src/decorators/Ref.ts\nfunction Ref(target, propName, _propDesc, name) {\n    if (!propName) {\n        return (target, propName, propDesc) => Ref(target, propName, propDesc, name);\n    }\n    if (!name) {\n        name = propName;\n    }\n    let lifecycleHooks = Object.prototype.hasOwnProperty.call(target.constructor, '_lifecycleHooks')\n        ? target.constructor._lifecycleHooks\n        : (target.constructor._lifecycleHooks = {\n            __proto__: target.constructor._lifecycleHooks\n        });\n    (Object.prototype.hasOwnProperty.call(lifecycleHooks, 'ready')\n        ? lifecycleHooks.ready\n        : (lifecycleHooks.ready = lifecycleHooks.ready.slice())).push((component) => {\n        component[propName] = component.$(name);\n    });\n}\n\n;// CONCATENATED MODULE: ./src/decorators/Listen.ts\nfunction Listen(evtType, target, useCapture) {\n    return (target_, methodName) => {\n        let options = target &&\n            typeof target == 'object' &&\n            !Array.isArray(target) &&\n            Object.getPrototypeOf(target) === Object.prototype\n            ? target\n            : null;\n        let listeningTarget = options ? options.target : target;\n        if (options) {\n            useCapture = options.useCapture;\n        }\n        let lifecycleHooks = Object.prototype.hasOwnProperty.call(target_.constructor, '_lifecycleHooks')\n            ? target_.constructor._lifecycleHooks\n            : (target_.constructor._lifecycleHooks = {\n                __proto__: target_.constructor._lifecycleHooks\n            });\n        (Object.prototype.hasOwnProperty.call(lifecycleHooks, 'connected')\n            ? lifecycleHooks.connected\n            : (lifecycleHooks.connected = lifecycleHooks.connected.slice())).push((component) => {\n            let target = listeningTarget;\n            if (target) {\n                if (typeof target == 'function') {\n                    target = target.call(component, component);\n                }\n                if (typeof target == 'string' && target.charAt(0) == '@') {\n                    // eslint-disable-next-line @typescript-eslint/no-implied-eval\n                    target = Function(`return this.${target.slice(1)};`).call(component);\n                }\n            }\n            else {\n                target = component;\n            }\n            component.listenTo(target, typeof evtType == 'function'\n                ? evtType.call(component, component.constructor)\n                : evtType, component[methodName], component, useCapture);\n        });\n    };\n}\n\n;// CONCATENATED MODULE: ./src/decorators/Callback.ts\nfunction Callback(target, methodName, methodDesc) {\n    if (!methodDesc) {\n        methodDesc = Object.getOwnPropertyDescriptor(target, methodName);\n    }\n    let method = methodDesc.value;\n    methodDesc.value = function (...args) {\n        return this._isConnected ? method.call(this, ...args) : Promise.resolve();\n    };\n    return methodDesc;\n}\n\n;// CONCATENATED MODULE: ./src/decorators/Interruptible.ts\n\nfunction Interruptible(target, methodName, methodDesc) {\n    if (!methodDesc) {\n        methodDesc = Object.getOwnPropertyDescriptor(target, methodName);\n    }\n    let method = methodDesc.value;\n    methodDesc.value = function (...args) {\n        let result = method.call(this, ...args);\n        result.catch((err) => {\n            if (!(err instanceof InterruptError)) {\n                throw err;\n            }\n        });\n        return result;\n    };\n    return methodDesc;\n}\n\n// EXTERNAL MODULE: ./node_modules/@riim/next-tick/dist/nextTick.umd.js\nvar nextTick_umd = __webpack_require__(16);\n;// CONCATENATED MODULE: ./src/compileBinding.ts\n\n\n\nconst compileBinding_cache = new Map();\nfunction compileBinding(binding, cacheKey) {\n    if (!compileBinding_cache.has(cacheKey)) {\n        let inner = \n        // eslint-disable-next-line @typescript-eslint/no-implied-eval\n        Function('formatters, KEY_COMPONENT_SELF', `var tmp; return ${bindingToJSExpression(binding[0])};`);\n        compileBinding_cache.set(cacheKey, function () {\n            return inner.call(this, formatters, KEY_COMPONENT_SELF);\n        });\n    }\n    return compileBinding_cache.get(cacheKey);\n}\n\n;// CONCATENATED MODULE: ./src/lib/removeNodes.ts\nfunction removeNodes(nodes) {\n    let nodeCount = nodes.length;\n    if (nodeCount == 1) {\n        let node = nodes[0];\n        if (node.parentNode) {\n            node.parentNode.removeChild(node);\n        }\n    }\n    else {\n        for (let i = 0; i < nodeCount; i++) {\n            let node = nodes[i];\n            if (node.parentNode) {\n                node.parentNode.removeChild(node);\n            }\n        }\n    }\n}\n\n// EXTERNAL MODULE: external \"cellx-collections\"\nvar external_cellx_collections_ = __webpack_require__(17);\n;// CONCATENATED MODULE: ./src/components/RnRepeat.ts\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else 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    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RnRepeat_1;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst reForAttrValue = RegExp(`^\\\\s*(${namePattern})\\\\s+in\\\\s+(${keypathPattern}(?:\\\\s*(.*\\\\S))?)\\\\s*$`);\nfunction getItem(list, index) {\n    return Array.isArray(list) ? list[index] : list.get(index);\n}\nfunction insertBefore(nodes, beforeNode, parentNode) {\n    let nodeCount = nodes.length;\n    if (nodeCount == 1) {\n        parentNode.insertBefore(nodes[0], beforeNode);\n        return nodes[0];\n    }\n    for (let i = 0; i < nodeCount; i++) {\n        parentNode.insertBefore(nodes[i], beforeNode);\n    }\n    return nodes[nodeCount - 1];\n}\nfunction offBindings(bindings) {\n    if (bindings) {\n        for (let i = bindings.length; i != 0;) {\n            bindings[--i].off();\n        }\n    }\n}\nfunction deactivateChildComponents(childComponents) {\n    if (childComponents) {\n        for (let i = childComponents.length; i != 0;) {\n            let childComponent = childComponents[--i];\n            if (childComponent instanceof RnCondition || childComponent instanceof RnRepeat) {\n                childComponent._deactivate();\n            }\n        }\n    }\n}\nlet RnRepeat = RnRepeat_1 = class RnRepeat extends BaseComponent {\n    constructor() {\n        super(...arguments);\n        this._active = false;\n    }\n    static get bindsInputContent() {\n        return true;\n    }\n    elementConnected() {\n        if (this._active) {\n            return;\n        }\n        this._active = true;\n        if (!this._initialized) {\n            this._prevList = [];\n            if (this.$specifiedParams.has('in')) {\n                this._itemName = this.paramFor;\n                this._list = this.paramIn;\n            }\n            else if (this.paramInKeypath) {\n                this._itemName = this.paramFor;\n                this._list = new external_cellx_.Cell(compileKeypath(this.paramInKeypath), {\n                    context: this.$context\n                });\n            }\n            else {\n                let for_ = this.paramFor.match(reForAttrValue);\n                if (!for_) {\n                    throw SyntaxError(`Invalid value in parameter \"for\" (${this.paramFor})`);\n                }\n                let getList;\n                if (for_[3]) {\n                    let inListAST = parseTemplateNodeValue(`{${for_[2]}}`);\n                    if (!inListAST || inListAST.length != 1) {\n                        throw SyntaxError(`Invalid value in parameter \"for\" (${this.paramFor})`);\n                    }\n                    getList = compileBinding(inListAST, for_[2]);\n                }\n                else {\n                    getList = compileKeypath(for_[2]);\n                }\n                this._itemName = for_[1];\n                this._list = new external_cellx_.Cell(getList, { context: this.$context });\n            }\n            this._$itemsMap = new Map();\n            this._initialized = true;\n        }\n        if (this.element[KEY_CONTENT_TEMPLATE]) {\n            let list = this._list;\n            if (list && (list instanceof external_cellx_.Cell || list instanceof external_cellx_collections_.ObservableList)) {\n                list.onChange(this._onListChange, this);\n            }\n            this._render(false);\n        }\n    }\n    elementDisconnected() {\n        (0,nextTick_umd.nextTick)(() => {\n            if (!this.element[KEY_ELEMENT_CONNECTED]) {\n                this._deactivate();\n            }\n        });\n    }\n    _onListChange() {\n        if (this.element.parentNode) {\n            this._render(true);\n        }\n    }\n    _connect() {\n        this._isConnected = true;\n        return null;\n    }\n    _disconnect() {\n        this._isConnected = false;\n    }\n    _render(fromChangeEvent) {\n        var _a, _b;\n        let prevList = this._prevList;\n        let prevListLength = prevList.length;\n        let list = this._list instanceof external_cellx_.Cell ? this._list.get() : this._list;\n        let $itemsMap = this._$itemsMap;\n        let trackBy = this.trackBy;\n        let startIndex = 0;\n        let changed = false;\n        if (list) {\n            let new$ItemsMap = new Map();\n            let removedValues = new Map();\n            let el = this.element;\n            let lastNode = el;\n            for (let i = 0, l = list.length; i < l;) {\n                let item = getItem(list, i);\n                let value = trackBy ? item[trackBy] : item;\n                let $items = $itemsMap.get(value);\n                if ($items) {\n                    if (removedValues.has(value)) {\n                        let $item = $items.shift();\n                        if (new$ItemsMap.has(value)) {\n                            new$ItemsMap.get(value).push($item);\n                        }\n                        else {\n                            new$ItemsMap.set(value, [$item]);\n                        }\n                        if ($items.length == 0) {\n                            $itemsMap.delete(value);\n                        }\n                        let removedCount = removedValues.get(value);\n                        if (removedCount == 1) {\n                            removedValues.delete(value);\n                        }\n                        else {\n                            removedValues.set(value, removedCount - 1);\n                        }\n                        $item.item.set(item);\n                        $item.index.set(i);\n                        lastNode = insertBefore($item.nodes, lastNode == el && this.beforeTemplate ? el : lastNode.nextSibling, el.parentNode);\n                        i++;\n                    }\n                    else {\n                        let foundIndex;\n                        for (let j = startIndex;; j++) {\n                            if (foundIndex === undefined) {\n                                if (value === (trackBy ? prevList[j][trackBy] : prevList[j])) {\n                                    let $item = $items.shift();\n                                    if (new$ItemsMap.has(value)) {\n                                        new$ItemsMap.get(value).push($item);\n                                    }\n                                    else {\n                                        new$ItemsMap.set(value, [$item]);\n                                    }\n                                    if ($items.length == 0) {\n                                        $itemsMap.delete(value);\n                                    }\n                                    if (j == startIndex) {\n                                        lastNode = $item.nodes[$item.nodes.length - 1];\n                                        startIndex++;\n                                        i++;\n                                        break;\n                                    }\n                                    foundIndex = j;\n                                }\n                            }\n                            else {\n                                let foundCount = j - foundIndex;\n                                let ii = i + foundCount;\n                                if (ii < l) {\n                                    let iiValue;\n                                    if (j < prevListLength &&\n                                        (trackBy\n                                            ? (iiValue = getItem(list, ii)[trackBy]) ===\n                                                prevList[j][trackBy]\n                                            : (iiValue = getItem(list, ii)) === prevList[j])) {\n                                        let ii$Items = $itemsMap.get(iiValue);\n                                        if (new$ItemsMap.has(iiValue)) {\n                                            new$ItemsMap.get(iiValue).push(ii$Items.shift());\n                                        }\n                                        else {\n                                            new$ItemsMap.set(iiValue, [ii$Items.shift()]);\n                                        }\n                                        if (ii$Items.length == 0) {\n                                            $itemsMap.delete(iiValue);\n                                        }\n                                        continue;\n                                    }\n                                    if (foundCount < foundIndex - startIndex) {\n                                        for (let k = foundIndex; k < j; k++) {\n                                            let kValue = trackBy\n                                                ? prevList[k][trackBy]\n                                                : prevList[k];\n                                            let k$Item = new$ItemsMap.get(kValue);\n                                            k$Item[0].item.set(item);\n                                            k$Item[0].index.set(i);\n                                            lastNode = insertBefore(k$Item[0].nodes, lastNode == el && this.beforeTemplate\n                                                ? el\n                                                : lastNode.nextSibling, el.parentNode);\n                                        }\n                                        prevList.splice(foundIndex, foundCount);\n                                        prevListLength -= foundCount;\n                                        i = ii;\n                                        changed = true;\n                                        break;\n                                    }\n                                }\n                                for (let k = startIndex; k < foundIndex; k++) {\n                                    let kValue = trackBy ? prevList[k][trackBy] : prevList[k];\n                                    let index = (_a = removedValues.get(kValue)) !== null && _a !== void 0 ? _a : 0;\n                                    removeNodes($itemsMap.get(kValue)[index].nodes);\n                                    removedValues.set(kValue, index + 1);\n                                }\n                                let lastFoundValue = trackBy\n                                    ? prevList[j - 1][trackBy]\n                                    : prevList[j - 1];\n                                let nodes = new$ItemsMap.get(lastFoundValue)[(_b = removedValues.get(lastFoundValue)) !== null && _b !== void 0 ? _b : 0].nodes;\n                                lastNode = nodes[nodes.length - 1];\n                                startIndex = j;\n                                i = ii;\n                                changed = true;\n                                break;\n                            }\n                        }\n                    }\n                }\n                else {\n                    let itemCell = new external_cellx_.Cell(null, { value: item });\n                    let indexCell = new external_cellx_.Cell(i);\n                    let contentBindingResult = [null, null, null];\n                    let content = this.element[KEY_CONTENT_TEMPLATE].render(null, this.ownerComponent, Object.create(this.$context, {\n                        [this._itemName]: {\n                            configurable: true,\n                            enumerable: true,\n                            get: ((itemCell) => () => itemCell.get())(itemCell)\n                        },\n                        $index: {\n                            configurable: true,\n                            enumerable: true,\n                            get: ((indexCell) => () => indexCell.get())(indexCell)\n                        }\n                    }), contentBindingResult);\n                    let childComponents = contentBindingResult[0];\n                    let backBindings = contentBindingResult[2];\n                    let new$Item = {\n                        item: itemCell,\n                        index: indexCell,\n                        nodes: Array.prototype.slice.call(content.childNodes),\n                        bindings: contentBindingResult[1],\n                        childComponents\n                    };\n                    if (new$ItemsMap.has(value)) {\n                        new$ItemsMap.get(value).push(new$Item);\n                    }\n                    else {\n                        new$ItemsMap.set(value, [new$Item]);\n                    }\n                    if (childComponents) {\n                        for (let i = childComponents.length; i != 0;) {\n                            let childComponent = childComponents[--i];\n                            if (childComponent.element.firstChild &&\n                                childComponent.constructor.bindsInputContent) {\n                                childComponent.$inputContent = (0,move_content_dist.moveContent)(document.createDocumentFragment(), childComponent.element);\n                            }\n                        }\n                    }\n                    let newLastNode = content.lastChild;\n                    suppressConnectionStatusCallbacks();\n                    lastNode.parentNode.insertBefore(content, lastNode == el && this.beforeTemplate ? el : lastNode.nextSibling);\n                    resumeConnectionStatusCallbacks();\n                    lastNode = newLastNode;\n                    if (childComponents) {\n                        connectChildComponentElements(childComponents);\n                    }\n                    if (backBindings) {\n                        for (let i = backBindings.length; i != 0; i -= 3) {\n                            backBindings[i - 3].on('change:' + backBindings[i - 2], backBindings[i - 1]);\n                        }\n                    }\n                    changed = true;\n                    i++;\n                }\n            }\n            if (removedValues.size != 0) {\n                (($itemsMap) => {\n                    for (let value of removedValues.keys()) {\n                        for (let $item of $itemsMap.get(value)) {\n                            offBindings($item.bindings);\n                            deactivateChildComponents($item.childComponents);\n                        }\n                    }\n                })($itemsMap);\n            }\n            this._$itemsMap = new$ItemsMap;\n        }\n        else {\n            this._$itemsMap = new Map();\n        }\n        if (startIndex < prevListLength) {\n            for (let i = startIndex; i < prevListLength; i++) {\n                let value = trackBy ? prevList[i][trackBy] : prevList[i];\n                for (let $item of $itemsMap.get(value)) {\n                    removeNodes($item.nodes);\n                    offBindings($item.bindings);\n                    deactivateChildComponents($item.childComponents);\n                }\n            }\n        }\n        else if (!changed) {\n            return;\n        }\n        this._prevList = list ? (Array.isArray(list) ? list.slice() : list.toArray()) : [];\n        if (fromChangeEvent) {\n            external_cellx_.Cell.release();\n            this.emit(RnRepeat_1.EVENT_CHANGE);\n        }\n    }\n    _deactivate() {\n        if (!this._active) {\n            return;\n        }\n        this._active = false;\n        let list = this._list;\n        if (list && (list instanceof external_cellx_.Cell || list instanceof external_cellx_collections_.ObservableList)) {\n            list.offChange(this._onListChange, this);\n        }\n        let prevList = this._prevList;\n        let $itemsMap = this._$itemsMap;\n        let trackBy = this.trackBy;\n        for (let i = 0, l = prevList.length; i < l; i++) {\n            let value = trackBy ? prevList[i][trackBy] : prevList[i];\n            for (let $item of $itemsMap.get(value)) {\n                removeNodes($item.nodes);\n                offBindings($item.bindings);\n                deactivateChildComponents($item.childComponents);\n            }\n        }\n        $itemsMap.clear();\n    }\n};\nRnRepeat.EVENT_CHANGE = Symbol('change');\nRnRepeat = RnRepeat_1 = __decorate([\n    Component({\n        elementIs: 'RnRepeat',\n        elementExtends: 'template',\n        params: {\n            for: { property: 'paramFor', type: String, required: true, readonly: true },\n            in: { property: 'paramIn', readonly: true },\n            inKeypath: { property: 'paramInKeypath', type: String, readonly: true },\n            trackBy: { type: String, readonly: true },\n            beforeTemplate: { type: Boolean, readonly: true }\n        }\n    })\n], RnRepeat);\n\n\n;// CONCATENATED MODULE: ./src/components/RnCondition.ts\nvar RnCondition_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else 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    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RnCondition_1;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst RnCondition_reKeypath = RegExp(`^${keypathPattern}$`);\nlet RnCondition = RnCondition_1 = class RnCondition extends BaseComponent {\n    constructor() {\n        super(...arguments);\n        this._nodes = null;\n        this._childComponents = null;\n        this._active = false;\n    }\n    static get bindsInputContent() {\n        return true;\n    }\n    elementConnected() {\n        if (this._active) {\n            return;\n        }\n        this._active = true;\n        if (!this._initialized) {\n            let condition = this.paramIf;\n            if (condition) {\n                condition = condition.trim();\n                this._unless = false;\n            }\n            else {\n                condition = this.paramUnless;\n                if (condition) {\n                    condition = condition.trim();\n                    this._unless = true;\n                }\n                else {\n                    throw TypeError('Parameter \"if\" is required');\n                }\n            }\n            let getConditionResult;\n            if (RnCondition_reKeypath.test(condition)) {\n                getConditionResult = compileKeypath(condition);\n            }\n            else {\n                let conditionAST = parseTemplateNodeValue(`{${condition}}`);\n                if (!conditionAST || conditionAST.length != 1) {\n                    throw SyntaxError(`Invalid value in parameter \"${(this.paramIf || '').trim() ? 'if' : 'unless'}\" (${condition})`);\n                }\n                getConditionResult = compileBinding(conditionAST, condition);\n            }\n            this._conditionCell = new external_cellx_.Cell(() => !!getConditionResult.call(this.$context));\n            this._initialized = true;\n        }\n        if (this.element[KEY_CONTENT_TEMPLATE]) {\n            this._conditionCell.onChange(this._onConditionChange, this);\n            this._render(false);\n        }\n    }\n    elementDisconnected() {\n        (0,nextTick_umd.nextTick)(() => {\n            if (!this.element[KEY_ELEMENT_CONNECTED]) {\n                this._deactivate();\n            }\n        });\n    }\n    _onConditionChange() {\n        if (this.element.parentNode) {\n            this._render(true);\n        }\n    }\n    _connect() {\n        this._isConnected = true;\n        return null;\n    }\n    _disconnect() {\n        this._isConnected = false;\n    }\n    _render(changed) {\n        let conditionResult = this._conditionCell.get();\n        if (this._unless\n            ? !conditionResult && (conditionResult !== undefined || this.trueWhenPending)\n            : conditionResult || (conditionResult === undefined && this.trueWhenPending)) {\n            let contentBindingResult = [null, null, null];\n            let content = this.element[KEY_CONTENT_TEMPLATE].render(null, this.ownerComponent, this.$context, contentBindingResult);\n            let childComponents = contentBindingResult[0];\n            let backBindings = contentBindingResult[2];\n            this._nodes = Array.prototype.slice.call(content.childNodes);\n            this._childComponents = childComponents;\n            this._bindings = contentBindingResult[1];\n            if (childComponents) {\n                for (let i = childComponents.length; i != 0;) {\n                    let childComponent = childComponents[--i];\n                    if (childComponent.element.firstChild &&\n                        childComponent.constructor.bindsInputContent) {\n                        childComponent.$inputContent = (0,move_content_dist.moveContent)(document.createDocumentFragment(), childComponent.element);\n                    }\n                }\n            }\n            suppressConnectionStatusCallbacks();\n            this.element.parentNode.insertBefore(content, this.element);\n            resumeConnectionStatusCallbacks();\n            if (childComponents) {\n                connectChildComponentElements(childComponents);\n            }\n            if (backBindings) {\n                for (let i = backBindings.length; i != 0; i -= 3) {\n                    backBindings[i - 3].on('change:' + backBindings[i - 2], backBindings[i - 1]);\n                }\n            }\n        }\n        else {\n            let nodes = this._nodes;\n            if (nodes) {\n                removeNodes(nodes);\n                this._destroyBindings();\n                this._nodes = null;\n                this._deactivateChildComponents();\n            }\n        }\n        if (changed) {\n            external_cellx_.Cell.release();\n            this.emit(RnCondition_1.EVENT_CHANGE);\n        }\n    }\n    _deactivate() {\n        if (!this._active) {\n            return;\n        }\n        this._active = false;\n        this._conditionCell.offChange(this._onConditionChange, this);\n        let nodes = this._nodes;\n        if (nodes) {\n            removeNodes(nodes);\n            this._destroyBindings();\n            this._nodes = null;\n            this._deactivateChildComponents();\n        }\n    }\n    _deactivateChildComponents() {\n        let childComponents = this._childComponents;\n        if (childComponents) {\n            for (let i = childComponents.length; i != 0;) {\n                let childComponent = childComponents[--i];\n                if (childComponent instanceof RnCondition_1 || childComponent instanceof RnRepeat) {\n                    childComponent._deactivate();\n                }\n            }\n        }\n        this._childComponents = null;\n    }\n};\nRnCondition.EVENT_CHANGE = Symbol('change');\nRnCondition = RnCondition_1 = RnCondition_decorate([\n    Component({\n        elementIs: 'RnCondition',\n        elementExtends: 'template',\n        params: {\n            if: { property: 'paramIf', type: String, readonly: true },\n            unless: { property: 'paramUnless', type: String, readonly: true },\n            trueWhenPending: { type: Boolean, readonly: true }\n        }\n    })\n], RnCondition);\n\n\n;// CONCATENATED MODULE: ./src/lib/cloneNode.ts\n\n\n\nconst isEdge = !!document.documentMode || navigator.userAgent.indexOf('Edge/') != -1;\nfunction cloneNode(node) {\n    let copy;\n    switch (node.nodeType) {\n        case Node.DOCUMENT_FRAGMENT_NODE: {\n            copy = document.createDocumentFragment();\n            for (let child = node.firstChild; child; child = child.nextSibling) {\n                copy.appendChild(cloneNode(child));\n            }\n            break;\n        }\n        case Node.ELEMENT_NODE: {\n            let tagName = node.tagName.toLowerCase();\n            let is = node.getAttribute('is');\n            if (is) {\n                copy = window.innerHTML(document.createElement('div'), `<${tagName} is=\"${is}\">`).firstChild;\n            }\n            else if (isEdge) {\n                copy = window.innerHTML(document.createElement('div'), `<${tagName}>`).firstChild;\n            }\n            else {\n                copy = document.createElementNS(node.namespaceURI, tagName);\n            }\n            if ((tagName == 'template' || tagName == 'rn-slot') && node[KEY_CONTENT_TEMPLATE]) {\n                copy[KEY_CONTENT_TEMPLATE] = node[KEY_CONTENT_TEMPLATE];\n            }\n            if (node[KEY_EVENTS]) {\n                copy[KEY_EVENTS] = node[KEY_EVENTS];\n            }\n            if (node[KEY_DOM_EVENTS]) {\n                copy[KEY_DOM_EVENTS] = node[KEY_DOM_EVENTS];\n            }\n            let attrs = node.attributes;\n            for (let i = 0, l = attrs.length; i < l; i++) {\n                let attr = attrs.item(i);\n                if (!is || attr.name != 'is') {\n                    copy.setAttributeNS(attr.namespaceURI, attr.name, attr.value);\n                }\n            }\n            for (let child = node.firstChild; child; child = child.nextSibling) {\n                copy.appendChild(cloneNode(child));\n            }\n            break;\n        }\n        case Node.TEXT_NODE: {\n            copy = document.createTextNode(node.nodeValue);\n            break;\n        }\n    }\n    return copy;\n}\n\n;// CONCATENATED MODULE: ./src/components/RnSlot.ts\nvar RnSlot_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else 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    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\n\nconst KEY_SLOTS_CONTENT = Symbol('slotsContent');\nlet RnSlot = class RnSlot extends BaseComponent {\n    static get bindsInputContent() {\n        return true;\n    }\n    _connect() {\n        var _a;\n        this._isConnected = true;\n        if (this._isReady) {\n            this._unfreezeBindings();\n            if (this._childComponents) {\n                connectChildComponentElements(this._childComponents);\n            }\n            return null;\n        }\n        let ownerComponent = this.ownerComponent;\n        let contentOwnerComponent = ownerComponent.ownerComponent;\n        let ownerComponentInputContent = ownerComponent.$inputContent;\n        let el = this.element;\n        let cloneContent = this.cloneContent;\n        let content;\n        let childComponents;\n        let bindings;\n        let backBindings;\n        if (ownerComponentInputContent || !cloneContent) {\n            let name = this.name;\n            let for_;\n            let forTag;\n            if (!name) {\n                for_ = this.paramFor;\n                if (!for_) {\n                    forTag = this.forTag;\n                    if (forTag) {\n                        forTag = forTag.toUpperCase();\n                    }\n                }\n            }\n            let key = (0,next_uid_.getUID)(ownerComponent) +\n                '/' +\n                (name ? 'slot:' + name : for_ ? 'element:' + for_ : forTag ? 'tag:' + forTag : '*');\n            if (name || for_ || forTag) {\n                let slotsContent;\n                if (!cloneContent &&\n                    (slotsContent = contentOwnerComponent[KEY_SLOTS_CONTENT]) &&\n                    slotsContent.has(key)) {\n                    let container = slotsContent.get(key);\n                    if (container.firstChild) {\n                        content = (0,move_content_dist.moveContent)(document.createDocumentFragment(), container);\n                        slotsContent.set(key, el);\n                        childComponents = container.$component._childComponents;\n                        bindings = container.$component._bindings;\n                    }\n                }\n                else {\n                    if (ownerComponentInputContent) {\n                        if (for_ && for_.indexOf('__') == -1) {\n                            let elementBlockNames = ownerComponent.constructor._elementBlockNames;\n                            for_ = elementBlockNames[elementBlockNames.length - 1] + '__' + for_;\n                        }\n                        let selectedElements = ownerComponentInputContent.querySelectorAll(name ? `[slot=${name}]` : for_ ? '.' + for_ : forTag);\n                        let selectedElementCount = selectedElements.length;\n                        if (selectedElementCount != 0) {\n                            content = document.createDocumentFragment();\n                            for (let i = 0; i < selectedElementCount; i++) {\n                                content.appendChild(cloneContent\n                                    ? cloneNode(selectedElements[i])\n                                    : selectedElements[i]);\n                            }\n                        }\n                        if (!cloneContent) {\n                            ((_a = slotsContent !== null && slotsContent !== void 0 ? slotsContent : contentOwnerComponent[KEY_SLOTS_CONTENT]) !== null && _a !== void 0 ? _a : (contentOwnerComponent[KEY_SLOTS_CONTENT] = new Map())).set(key, el);\n                        }\n                    }\n                }\n            }\n            else {\n                if (cloneContent) {\n                    content = cloneNode(ownerComponentInputContent);\n                }\n                else {\n                    let slotsContent = contentOwnerComponent[KEY_SLOTS_CONTENT];\n                    if (slotsContent && slotsContent.has(key)) {\n                        let container = slotsContent.get(key);\n                        content = (0,move_content_dist.moveContent)(document.createDocumentFragment(), container);\n                        slotsContent.set(key, el);\n                        childComponents = container.$component._childComponents;\n                        bindings = container.$component._bindings;\n                    }\n                    else {\n                        if (ownerComponentInputContent) {\n                            content = ownerComponentInputContent;\n                            (slotsContent !== null && slotsContent !== void 0 ? slotsContent : (contentOwnerComponent[KEY_SLOTS_CONTENT] = new Map())).set(key, el);\n                        }\n                    }\n                }\n            }\n        }\n        if (bindings === undefined) {\n            if (content || this.element[KEY_CONTENT_TEMPLATE]) {\n                let contentBindingResult = [null, null, null];\n                if (content) {\n                    bindContent(content, contentOwnerComponent, this.getContext\n                        ? this.getContext.call(ownerComponent, ownerComponent.$context, this)\n                        : ownerComponent.$context, contentBindingResult);\n                }\n                else {\n                    content = this.element[KEY_CONTENT_TEMPLATE].render(null, ownerComponent, this.getContext\n                        ? this.getContext.call(ownerComponent, this.$context, this)\n                        : this.$context, contentBindingResult);\n                }\n                childComponents = this._childComponents = contentBindingResult[0];\n                this._bindings = contentBindingResult[1];\n                backBindings = contentBindingResult[2];\n                if (childComponents) {\n                    for (let i = childComponents.length; i != 0;) {\n                        let childComponent = childComponents[--i];\n                        if (childComponent.element.firstChild &&\n                            childComponent.constructor.bindsInputContent) {\n                            childComponent.$inputContent = (0,move_content_dist.moveContent)(document.createDocumentFragment(), childComponent.element);\n                        }\n                    }\n                }\n            }\n            else {\n                this._childComponents = null;\n                this._bindings = null;\n            }\n        }\n        else {\n            this._childComponents = childComponents;\n            this._bindings = bindings;\n            this._unfreezeBindings();\n        }\n        if (content) {\n            suppressConnectionStatusCallbacks();\n            el.appendChild(content);\n            resumeConnectionStatusCallbacks();\n        }\n        if (childComponents) {\n            connectChildComponentElements(childComponents);\n        }\n        if (backBindings) {\n            for (let i = backBindings.length; i != 0; i -= 3) {\n                backBindings[i - 3].on('change:' + backBindings[i - 2], backBindings[i - 1]);\n            }\n        }\n        this._isReady = true;\n        return null;\n    }\n    _disconnect() {\n        this._isConnected = false;\n        this._freezeBindings();\n    }\n};\nRnSlot = RnSlot_decorate([\n    Component({\n        elementIs: 'RnSlot',\n        params: {\n            name: { type: String, readonly: true },\n            for: { property: 'paramFor', type: String, readonly: true },\n            forTag: { type: String, readonly: true },\n            cloneContent: { type: Boolean, readonly: true },\n            getContext: { readonly: true }\n        }\n    })\n], RnSlot);\n\n\n;// CONCATENATED MODULE: ./src/components/RnHtml.ts\nvar RnHtml_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else 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    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\nlet RnHtml = class RnHtml extends BaseComponent {\n    ready() {\n        this._setHtml();\n    }\n    connected() {\n        this.listenTo(this, 'change:html', this._onHtmlChange);\n    }\n    _onHtmlChange() {\n        this._setHtml();\n    }\n    _setHtml() {\n        this.element.innerHTML = this.html || '';\n    }\n};\nRnHtml = RnHtml_decorate([\n    Component({\n        elementIs: 'RnHtml',\n        params: {\n            html: { type: String }\n        }\n    })\n], RnHtml);\n\n\n;// CONCATENATED MODULE: ./src/index.ts\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});"]}