{"version":3,"sources":["../src/util.js","../src/h.js","../src/vdom/index.js","../src/extend.js","../src/dom/index.js","../src/vdom/diff.js","../src/we-element.js","../src/render.js","../src/define.js","../src/clone-element.js","../src/get-host.js","../src/class.js","../node_modules/construct-style-sheets-polyfill/dist/adoptedStyleSheets.js","../src/options.js","../src/o.js","../src/omi.js"],"names":["cssToDom","css","node","document","createElement","textContent","camelCase","str","replace","$","$1","toUpperCase","Fragment","props","children","extend","obj","i","applyRef","ref","value","current","isArray","Object","prototype","toString","call","pathToArr","path","split","hyphenate","hyphenateRE","toLowerCase","capitalize","name","all","letter","s","getValByPath","arr","forEach","prop","h","nodeName","attributes","lastSimple","child","simple","arguments","length","stack","push","pop","undefined","String","p","key","options","vnode","isSameNodeType","splitText","mapping","hydrating","_componentConstructor","isNamedNode","extend$1","handler","extension","origin","get","e","type","eventProxy","el","_listeners","addEventListener","createNode","removeNode","setAccessor","component","old","isSvg","className","style","cssText","IS_NON_DIMENSIONAL","test","bindEvent","innerHTML","__html","pureRemoveAttribute","removeAttribute","ns","removeAttributeNS","pureSetAttribute","setAttribute","useCapture","event","nameLower","eventProxy$1","ret","diffLevel","isSvgMode","parent","ownerSVGElement","dom","innerDiffNode","updateSelf","item","index","ele","one","idiff","recollectNodeTree","parentNode","appendChild","out","nodeValue","createTextNode","replaceChild","vnodeName","vchildren","firstChild","fc","a","nextSibling","constructor","is","noSlot","dangerouslySetInnerHTML","diffAttributes","min","len","childrenLen","vlen","j","keyedLen","originalChildren","keyed","vchild","_child","_component","__key","trim","isHydrating","c","f","unmountOnly","ATTR_KEY","removeChildren","oldClone","assign","receiveProps","isWeElement","attrs","ccName","indexOf","_ccName","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","ReferenceError","HTMLElement","WeElement","_classCallCheck$1","_possibleConstructorReturn$1","define","ctor","customElements","config","Ele","_WeElement","_temp","_this","_ret","_len","args","Array","this","apply","concat","compute","propTypes","defaultProps","isLightDom","storeHelpers","func","target","cloneElement","getHost","shadowRoot","host","rpx","b","window","innerWidth","Number","arg","classNames","classes","argType","inner","join","_Array$prototype$slic","slice","class","unshift","o","JSON","stringify","createRef","store","root","global","Math","Reflect","hasOwnProperty","BuiltInHTMLElement","construct","setPrototypeOf","Promise","resolve","then","bind","setTimeout","_HTMLElement","elementId","id","computed","isInstalled","connectedCallback","_this2","inject","provide","injection","injectKey","attrsToProps","beforeInstall","install","afterInstall","attachShadow","mode","removeChild","elementStyles","adoptedStyleSheets","styleSheet","CSSStyleSheet","replaceSync","adoptedStyleSheet","styleSheets","beforeRender","_customStyleContent","_customStyleElement","rootNode","installed","disconnectedCallback","uninstall","update","ignoreAttrs","beforeUpdate","_willUpdate","rendered","forceUpdate","updated","_this3","updateProps","prevProps","val","getAttribute","Boolean","substr","Omi","parse","fire","data","CustomEvent","detail","_contents","contents","importPattern","console","warn","clearRules","sheet","cssRules","deleteRule","insertAllRules","from","to","rule","insertRule","isElementConnected","element","isConnected","contains","unique","filter","diff","arr1","arr2","getShadowRoot","closedShadowRootRegistry","isCSSStyleSheetInstance","proto$2","isPrototypeOf","nonConstructedProto","isNonConstructedStyleSheetInstance","addAdopterLocation","location","adopter","$adoptersByLocation","set","$locations","getAdopterByLocation","removeAdopterLocation","delete","_location","restyleAdopter","requestAnimationFrame","$basicStyleSheet","checkInvocationCorrectness","has","ConstructedStyleSheet","bootstrapper","body","WeakMap","getAssociatedLocation","locations","Location","attachAdoptedStyleSheetProperty","defineProperty","configurable","enumerable","sheets","traverseWebComponents","callback","iter","createNodeIterator","NodeFilter","SHOW_ELEMENT","foundNode","FILTER_ACCEPT","FILTER_REJECT","next","nextNode","isExistingAdopter","HTMLStyleElement","$uniqueSheets","some","getAdopterContainer","$element","Document","adopt","styleList","createDocumentFragment","observer","$observer","container","disconnect","insertBefore","observe","defaultObserverOptions","MutationObserver","mutations","mutation","hasShadyCss","addedNodes","Element","connect","removedNodes","ShadyCSS","nativeShadow","implementation","createHTMLDocument","cssStyleSheetMethods","NonConstructedStyleSheet","reject","_DOMException","self_1","ownerNode","rejectImports","method","basic","result","Symbol","hasInstance","childList","subtree","proto$1","readyState","locationType","every","oldUniqueSheets","uniqueSheets","removedSheets","proto","attach_1","init","documentLocation","Component","defineElement","tag","elements","render","extractClass","omi","unbind","version","module","exports"],"mappings":"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","file":"omi.js","sourcesContent":["/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * This shim allows elements written in, or compiled to, ES5 to work on native\n * implementations of Custom Elements v1. It sets new.target to the value of\n * this.constructor so that the native HTMLElement constructor can access the\n * current under-construction element's definition.\n */\n;(function() {\n  if (\n    // No Reflect, no classes, no need for shim because native custom elements\n    // require ES2015 classes or Reflect.\n    window.Reflect === undefined ||\n    window.customElements === undefined ||\n    // The webcomponentsjs custom elements polyfill doesn't require\n    // ES2015-compatible construction (`super()` or `Reflect.construct`).\n    window.customElements.hasOwnProperty('polyfillWrapFlushCallback')\n  ) {\n    return\n  }\n  const BuiltInHTMLElement = HTMLElement\n  window.HTMLElement = function HTMLElement() {\n    return Reflect.construct(BuiltInHTMLElement, [], this.constructor)\n  }\n  HTMLElement.prototype = BuiltInHTMLElement.prototype\n  HTMLElement.prototype.constructor = HTMLElement\n  Object.setPrototypeOf(HTMLElement, BuiltInHTMLElement)\n})()\n\nexport function cssToDom(css) {\n  const node = document.createElement('style')\n  node.textContent = css\n  return node\n}\n\nexport function camelCase(str) {\n  return str.replace(/-(\\w)/g, ($, $1) => {\n    return $1.toUpperCase()\n  })\n}\n\nexport function Fragment(props) {\n  return props.children\n}\n\nexport function extend(obj, props) {\n  for (let i in props) obj[i] = props[i]\n  return obj\n}\n\n/** Invoke or update a ref, depending on whether it is a function or object ref.\n *  @param {object|function} [ref=null]\n *  @param {any} [value]\n */\nexport function applyRef(ref, value) {\n  if (ref != null) {\n    if (typeof ref == 'function') ref(value)\n    else ref.current = value\n  }\n}\n\n/**\n * Call a function asynchronously, as soon as possible. Makes\n * use of HTML Promise to schedule the callback if available,\n * otherwise falling back to `setTimeout` (mainly for IE<11).\n * @type {(callback: function) => void}\n */\nexport const defer =\n  typeof Promise == 'function'\n    ? Promise.resolve().then.bind(Promise.resolve())\n    : setTimeout\n\nexport function isArray(obj) {\n  return Object.prototype.toString.call(obj) === '[object Array]'\n}\n\nexport function pathToArr(path) {\n  if (typeof path !== 'string' || !path) return []\n  // return path.split(/\\.|\\[|\\]/).filter(name => !!name)\n  return path\n    .replace(/]/g, '')\n    .replace(/\\[/g, '.')\n    .split('.')\n}\n\nconst hyphenateRE = /\\B([A-Z])/g\nexport function hyphenate(str) {\n  return str.replace(hyphenateRE, '-$1').toLowerCase()\n}\n\nexport function capitalize(name) {\n  return name\n    .replace(/\\-(\\w)/g, function(all, letter) {\n      return letter.toUpperCase()\n    })\n    .replace(/^\\S/, s => s.toUpperCase())\n}\n\nexport function getValByPath(path, current) {\n  const arr = pathToArr(path)\n  arr.forEach(prop => {\n    current = current[prop]\n  })\n  return current\n}\n\nexport function removeItem(item, arr) {\n  if (!arr) return\n  for (let i = 0, len = arr.length; i < len; i++) {\n    if (arr[i] === item) {\n      arr.splice(i, 1)\n      break\n    }\n  }\n}\n","import options from './options'\nimport { Fragment } from './util'\n\nconst stack = []\n\nexport function h(nodeName, attributes) {\n  let children = [],\n    lastSimple,\n    child,\n    simple,\n    i\n  for (i = arguments.length; i-- > 2; ) {\n    stack.push(arguments[i])\n  }\n  if (attributes && attributes.children != null) {\n    if (!stack.length) stack.push(attributes.children)\n    delete attributes.children\n  }\n  while (stack.length) {\n    if ((child = stack.pop()) && child.pop !== undefined) {\n      for (i = child.length; i--; ) stack.push(child[i])\n    } else {\n      if (typeof child === 'boolean') child = null\n\n      if ((simple = typeof nodeName !== 'function')) {\n        if (child == null) child = ''\n        else if (typeof child === 'number') child = String(child)\n        else if (typeof child !== 'string') simple = false\n      }\n\n      if (simple && lastSimple) {\n        children[children.length - 1] += child\n      } else if (children.length === 0) {\n        children = [child]\n      } else {\n        children.push(child)\n      }\n\n      lastSimple = simple\n    }\n  }\n\n  if (nodeName === Fragment) {\n    return children\n  }\n\n  const p = {\n    nodeName,\n    children,\n    attributes: attributes == null ? undefined : attributes,\n    key: attributes == null ? undefined : attributes.key\n  }\n\n  // if a \"vnode hook\" is defined, pass every created VNode to it\n  if (options.vnode !== undefined) options.vnode(p)\n\n  return p\n}\n","import { extend } from '../util'\nimport options from '../options'\n/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node      DOM Node to compare\n * @param {VNode} vnode      Virtual DOM node to compare\n * @param {boolean} [hydrating=false]  If true, ignores component constructors when comparing.\n * @private\n */\nexport function isSameNodeType(node, vnode, hydrating) {\n  if (typeof vnode === 'string' || typeof vnode === 'number') {\n    return node.splitText !== undefined\n  }\n  if (typeof vnode.nodeName === 'string') {\n    return !node._componentConstructor && isNamedNode(node, vnode.nodeName)\n  } else if (typeof vnode.nodeName === 'function') {\n    return options.mapping[node.nodeName.toLowerCase()] === vnode.nodeName\n  }\n  return hydrating || node._componentConstructor === vnode.nodeName\n}\n\n/**\n * Check if an Element has a given nodeName, case-insensitively.\n *\n * @param {Element} node  A DOM Element to inspect the name of.\n * @param {String} nodeName  Unnormalized name to compare against.\n */\nexport function isNamedNode(node, nodeName) {\n  return (\n    node.normalizedNodeName === nodeName ||\n    node.nodeName.toLowerCase() === nodeName.toLowerCase()\n  )\n}\n\n/**\n * Reconstruct Component-style `props` from a VNode.\n * Ensures default/fallback values from `defaultProps`:\n * Own-properties of `defaultProps` not present in `vnode.attributes` are added.\n *\n * @param {VNode} vnode\n * @returns {Object} props\n */\nexport function getNodeProps(vnode) {\n  let props = extend({}, vnode.attributes)\n  props.children = vnode.children\n\n  let defaultProps = vnode.nodeName.defaultProps\n  if (defaultProps !== undefined) {\n    for (let i in defaultProps) {\n      if (props[i] === undefined) {\n        props[i] = defaultProps[i]\n      }\n    }\n  }\n\n  return props\n}\n","import { pathToArr } from './util'\n\nexport const extension = {}\n\nexport function extend(name, handler) {\n  extension['o-' + name] = handler\n}\n\nexport function set(origin, path, value) {\n  const arr = pathToArr(path)\n  let current = origin\n  for (let i = 0, len = arr.length; i < len; i++) {\n    if (i === len - 1) {\n      current[arr[i]] = value\n    } else {\n      current = current[arr[i]]\n    }\n  }\n}\n\nexport function get(origin, path) {\n  const arr = pathToArr(path)\n  let current = origin\n  for (let i = 0, len = arr.length; i < len; i++) {\n    current = current[arr[i]]\n  }\n\n  return current\n}\n\nfunction eventProxy(e) {\n  return this._listeners[e.type](e)\n}\n\nexport function bind(el, type, handler) {\n  el._listeners = el._listeners || {}\n  el._listeners[type] = handler\n  el.addEventListener(type, eventProxy)\n}\n\nexport function unbind(el, type) {\n  el.removeEventListener(type, eventProxy)\n}\n","import { IS_NON_DIMENSIONAL } from '../constants'\nimport { applyRef } from '../util'\nimport options from '../options'\nimport { extension } from '../extend'\n\n/**\n * Create an element with the given nodeName.\n * @param {string} nodeName The DOM node to create\n * @param {boolean} [isSvg=false] If `true`, creates an element within the SVG\n *  namespace.\n * @returns {Element} The created DOM node\n */\nexport function createNode(nodeName, isSvg) {\n  /** @type {Element} */\n  let node = isSvg\n    ? document.createElementNS('http://www.w3.org/2000/svg', nodeName)\n    : document.createElement(nodeName)\n  node.normalizedNodeName = nodeName\n  return node\n}\n\n/**\n * Remove a child node from its parent if attached.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n  let parentNode = node.parentNode\n  if (parentNode) parentNode.removeChild(node)\n}\n\n/**\n * Set a named attribute on the given Node, with special behavior for some names\n * and event handlers. If `value` is `null`, the attribute/handler will be\n * removed.\n * @param {Element} node An element to mutate\n * @param {string} name The name/key to set, such as an event or attribute name\n * @param {*} old The last value that was set for this name/node pair\n * @param {*} value An attribute value, such as a function to be used as an\n *  event handler\n * @param {boolean} isSvg Are we currently diffing inside an svg?\n * @private\n */\nexport function setAccessor(node, name, old, value, isSvg, component) {\n  if (name === 'className') name = 'class'\n\n  if (name[0] == 'o' && name[1] == '-') {\n    if (extension[name]) {\n      extension[name](node, value, component)\n    }\n  } else if (name === 'key') {\n    // ignore\n  } else if (name === 'ref') {\n    applyRef(old, null)\n    applyRef(value, node)\n  } else if (name === 'class' && !isSvg) {\n    node.className = value || ''\n  } else if (name === 'style') {\n    if (!value || typeof value === 'string' || typeof old === 'string') {\n      node.style.cssText = value || ''\n    }\n    if (value && typeof value === 'object') {\n      if (typeof old !== 'string') {\n        for (let i in old) if (!(i in value)) node.style[i] = ''\n      }\n      for (let i in value) {\n        node.style[i] =\n          typeof value[i] === 'number' && IS_NON_DIMENSIONAL.test(i) === false\n            ? value[i] + 'px'\n            : value[i]\n      }\n    }\n  } else if (name === 'dangerouslySetInnerHTML') {\n    if (value) node.innerHTML = value.__html || ''\n  } else if (name[0] == 'o' && name[1] == 'n') {\n    bindEvent(node, name, value, old)\n  } else if (node.nodeName === 'INPUT' && name === 'value') {\n    node[name] = value == null ? '' : value\n  } else if (\n    name !== 'list' &&\n    name !== 'type' &&\n    name !== 'css' &&\n    !isSvg &&\n    name in node &&\n    value !== ''\n  ) {\n    //value !== '' fix for selected, disabled, checked with pure element\n    // Attempt to set a DOM property to the given value.\n    // IE & FF throw for certain property-value combinations.\n    try {\n      node[name] = value == null ? '' : value\n    } catch (e) {}\n    if ((value == null || value === false) && name != 'spellcheck')\n      node.pureRemoveAttribute\n        ? node.pureRemoveAttribute(name)\n        : node.removeAttribute(name)\n  } else {\n    let ns = isSvg && name !== (name = name.replace(/^xlink:?/, ''))\n    // spellcheck is treated differently than all other boolean values and\n    // should not be removed when the value is `false`. See:\n    // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-spellcheck\n    if (value == null || value === false) {\n      if (ns)\n        node.removeAttributeNS(\n          'http://www.w3.org/1999/xlink',\n          name.toLowerCase()\n        )\n      else\n        node.pureRemoveAttribute\n          ? node.pureRemoveAttribute(name)\n          : node.removeAttribute(name)\n    } else if (typeof value !== 'function') {\n      if (ns) {\n        node.setAttributeNS(\n          'http://www.w3.org/1999/xlink',\n          name.toLowerCase(),\n          value\n        )\n      } else {\n        node.pureSetAttribute\n          ? node.pureSetAttribute(name, value)\n          : node.setAttribute(name, value)\n      }\n    }\n  }\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n  return this._listeners[e.type]((options.event && options.event(e)) || e)\n}\n\nfunction bindEvent(node, name, value, old) {\n  let useCapture = name !== (name = name.replace(/Capture$/, ''))\n  let nameLower = name.toLowerCase()\n  name = (nameLower in node ? nameLower : name).slice(2)\n  if (value) {\n    if (!old) {\n      node.addEventListener(name, eventProxy, useCapture)\n    }\n  } else {\n    node.removeEventListener(name, eventProxy, useCapture)\n  }\n  ;(node._listeners || (node._listeners = {}))[name] = value\n}\n","import { ATTR_KEY } from '../constants'\nimport { isSameNodeType, isNamedNode } from './index'\nimport { createNode, setAccessor } from '../dom/index'\nimport { camelCase, isArray, Fragment } from '../util'\nimport { removeNode } from '../dom/index'\nimport options from '../options'\n\n/** Queue of components that have been mounted and are awaiting componentDidMount */\nexport const mounts = []\n\n/** Diff recursion count, used to track the end of the diff cycle. */\nexport let diffLevel = 0\n\n/** Global flag indicating if the diff is currently within an SVG */\nlet isSvgMode = false\n\n/** Global flag indicating if the diff is performing hydration */\nlet hydrating = false\n\n/** Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n *  @param {Element} [dom=null]    A DOM node to mutate into the shape of the `vnode`\n *  @param {VNode} vnode      A VNode (with descendants forming a tree) representing the desired DOM structure\n *  @returns {Element} dom      The created/mutated element\n *  @private\n */\nexport function diff(dom, vnode, parent, component, updateSelf) {\n  //first render return undefined\n  if (!dom && !vnode) return\n  // diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\n  let ret\n  if (!diffLevel++) {\n    // when first starting the diff, check if we're diffing an SVG or within an SVG\n    isSvgMode = parent != null && parent.ownerSVGElement !== undefined\n\n    // hydration is indicated by the existing element to be diffed not having a prop cache\n    hydrating = dom != null && !(ATTR_KEY in dom)\n  }\n  if (vnode && vnode.nodeName === Fragment) {\n    vnode = vnode.children\n  }\n  if (isArray(vnode)) {\n    if (parent) {\n      //don't use css and props.css when using h.f\n      innerDiffNode(parent, vnode, hydrating, component, updateSelf)\n    } else {\n      ret = []\n      vnode.forEach((item, index) => {\n        let ele = idiff(index === 0 ? dom : null, item, component, updateSelf)\n        ret.push(ele)\n      })\n    }\n  } else {\n    if (isArray(dom)) {\n      dom.forEach((one, index) => {\n        if (index === 0) {\n          ret = idiff(one, vnode, component, updateSelf)\n        } else {\n          recollectNodeTree(one, false)\n        }\n      })\n    } else {\n      ret = idiff(dom, vnode, component, updateSelf)\n    }\n    // append the element if its a new parent\n    if (parent && ret.parentNode !== parent) parent.appendChild(ret)\n  }\n\n  // diffLevel being reduced to 0 means we're exiting the diff\n  if (!--diffLevel) {\n    hydrating = false\n    // invoke queued componentDidMount lifecycle methods\n  }\n\n  return ret\n}\n\n/** Internals of `diff()`, separated to allow bypassing diffLevel / mount flushing. */\nfunction idiff(dom, vnode, component, updateSelf) {\n  if (dom && vnode && dom.props) {\n    dom.props.children = vnode.children\n  }\n  let out = dom,\n    prevSvgMode = isSvgMode\n\n  // empty values (null, undefined, booleans) render as empty Text nodes\n  if (vnode == null || typeof vnode === 'boolean') vnode = ''\n\n  // Fast case: Strings & Numbers create/update Text nodes.\n  if (typeof vnode === 'string' || typeof vnode === 'number') {\n    // update if it's already a Text node:\n    if (\n      dom &&\n      dom.splitText !== undefined &&\n      dom.parentNode &&\n      (!dom._component || component)\n    ) {\n      /* istanbul ignore if */ /* Browser quirk that can't be covered: https://github.com/developit/preact/commit/fd4f21f5c45dfd75151bd27b4c217d8003aa5eb9 */\n      if (dom.nodeValue != vnode) {\n        dom.nodeValue = vnode\n      }\n    } else {\n      // it wasn't a Text node: replace it with one and recycle the old Element\n      out = document.createTextNode(vnode)\n      if (dom) {\n        if (dom.parentNode) dom.parentNode.replaceChild(out, dom)\n        recollectNodeTree(dom, true)\n      }\n    }\n\n    out[ATTR_KEY] = true\n\n    return out\n  }\n\n  // If the VNode represents a Component, perform a component diff:\n  let vnodeName = vnode.nodeName\n  if (typeof vnodeName === 'function') {\n    for (let key in options.mapping) {\n      if (options.mapping[key] === vnodeName) {\n        vnodeName = key\n        vnode.nodeName = key\n        break\n      }\n    }\n  }\n  // Tracks entering and exiting SVG namespace when descending through the tree.\n  isSvgMode =\n    vnodeName === 'svg'\n      ? true\n      : vnodeName === 'foreignObject'\n      ? false\n      : isSvgMode\n\n  // If there's no existing element or it's the wrong type, create a new one:\n  vnodeName = String(vnodeName)\n  if (!dom || !isNamedNode(dom, vnodeName)) {\n    out = createNode(vnodeName, isSvgMode)\n\n    if (dom) {\n      // move children into the replacement node\n      while (dom.firstChild) out.appendChild(dom.firstChild)\n\n      // if the previous Element was mounted into the DOM, replace it inline\n      if (dom.parentNode) dom.parentNode.replaceChild(out, dom)\n\n      // recycle the old element (skips non-Element node types)\n      recollectNodeTree(dom, true)\n    }\n  }\n\n  let fc = out.firstChild,\n    props = out[ATTR_KEY],\n    vchildren = vnode.children\n\n  if (props == null) {\n    props = out[ATTR_KEY] = {}\n    for (let a = out.attributes, i = a.length; i--; )\n      props[a[i].name] = a[i].value\n  }\n\n  // Optimization: fast-path for elements containing a single TextNode:\n  if (\n    !hydrating &&\n    vchildren &&\n    vchildren.length === 1 &&\n    typeof vchildren[0] === 'string' &&\n    fc != null &&\n    fc.splitText !== undefined &&\n    fc.nextSibling == null\n  ) {\n    if (fc.nodeValue != vchildren[0]) {\n      fc.nodeValue = vchildren[0]\n    }\n  }\n  // otherwise, if there are existing or new children, diff them:\n  else if ((vchildren && vchildren.length) || fc != null) {\n    if (!(out.constructor.is == 'WeElement' && out.constructor.noSlot)) {\n      innerDiffNode(\n        out,\n        vchildren,\n        hydrating || props.dangerouslySetInnerHTML != null,\n        component,\n        updateSelf\n      )\n    }\n  }\n\n  // Apply attributes/props from VNode to the DOM Element:\n  diffAttributes(out, vnode.attributes, props, component, updateSelf)\n  if (out.props) {\n    out.props.children = vnode.children\n  }\n  // restore previous SVG mode: (in case we're exiting an SVG namespace)\n  isSvgMode = prevSvgMode\n\n  return out\n}\n\n/** Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n *  @param {Element} dom      Element whose children should be compared & mutated\n *  @param {Array} vchildren    Array of VNodes to compare to `dom.childNodes`\n *  @param {Boolean} isHydrating  If `true`, consumes externally created elements similar to hydration\n */\nfunction innerDiffNode(dom, vchildren, isHydrating, component, updateSelf) {\n  let originalChildren = dom.childNodes,\n    children = [],\n    keyed = {},\n    keyedLen = 0,\n    min = 0,\n    len = originalChildren.length,\n    childrenLen = 0,\n    vlen = vchildren ? vchildren.length : 0,\n    j,\n    c,\n    f,\n    vchild,\n    child\n\n  // Build up a map of keyed children and an Array of unkeyed children:\n  if (len !== 0) {\n    for (let i = 0; i < len; i++) {\n      let child = originalChildren[i],\n        props = child[ATTR_KEY],\n        key =\n          vlen && props\n            ? child._component\n              ? child._component.__key\n              : props.key\n            : null\n      if (key != null) {\n        keyedLen++\n        keyed[key] = child\n      } else if (\n        props ||\n        (child.splitText !== undefined\n          ? isHydrating\n            ? child.nodeValue.trim()\n            : true\n          : isHydrating)\n      ) {\n        children[childrenLen++] = child\n      }\n    }\n  }\n\n  if (vlen !== 0) {\n    for (let i = 0; i < vlen; i++) {\n      vchild = vchildren[i]\n      child = null\n\n      if (vchild) {\n        // attempt to find a node based on key matching\n        let key = vchild.key\n        if (key != null) {\n          if (keyedLen && keyed[key] !== undefined) {\n            child = keyed[key]\n            keyed[key] = undefined\n            keyedLen--\n          }\n        }\n        // attempt to pluck a node of the same type from the existing children\n        else if (!child && min < childrenLen) {\n          for (j = min; j < childrenLen; j++) {\n            if (\n              children[j] !== undefined &&\n              isSameNodeType((c = children[j]), vchild, isHydrating)\n            ) {\n              child = c\n              children[j] = undefined\n              if (j === childrenLen - 1) childrenLen--\n              if (j === min) min++\n              break\n            }\n          }\n        }\n      }\n\n      // morph the matched/found/created DOM child to match vchild (deep)\n      child = idiff(child, vchild, component, updateSelf)\n\n      f = originalChildren[i]\n      if (child && child !== dom && child !== f) {\n        if (f == null) {\n          dom.appendChild(child)\n        } else if (child === f.nextSibling) {\n          removeNode(f)\n        } else {\n          dom.insertBefore(child, f)\n        }\n      }\n    }\n  }\n\n  // remove unused keyed children:\n  if (keyedLen) {\n    for (let i in keyed)\n      if (keyed[i] !== undefined) recollectNodeTree(keyed[i], false)\n  }\n\n  // remove orphaned unkeyed children:\n  while (min <= childrenLen) {\n    if ((child = children[childrenLen--]) !== undefined)\n      recollectNodeTree(child, false)\n  }\n}\n\n/** Recursively recycle (or just unmount) a node and its descendants.\n *  @param {Node} node            DOM node to start unmount/removal from\n *  @param {Boolean} [unmountOnly=false]  If `true`, only triggers unmount lifecycle, skips removal\n */\nexport function recollectNodeTree(node, unmountOnly) {\n  // If the node's VNode had a ref function, invoke it with null here.\n  // (this is part of the React spec, and smart for unsetting references)\n  if (node[ATTR_KEY] != null && node[ATTR_KEY].ref) {\n    if (typeof node[ATTR_KEY].ref === 'function') {\n      node[ATTR_KEY].ref(null)\n    } else if (node[ATTR_KEY].ref.current) {\n      node[ATTR_KEY].ref.current = null\n    }\n  }\n\n  if (unmountOnly === false || node[ATTR_KEY] == null) {\n    removeNode(node)\n  }\n\n  removeChildren(node)\n}\n\n/** Recollect/unmount all children.\n *  - we use .lastChild here because it causes less reflow than .firstChild\n *  - it's also cheaper than accessing the .childNodes Live NodeList\n */\nexport function removeChildren(node) {\n  node = node.lastChild\n  while (node) {\n    let next = node.previousSibling\n    recollectNodeTree(node, true)\n    node = next\n  }\n}\n\n/** Apply differences in attributes from a VNode to the given DOM Element.\n *  @param {Element} dom    Element with attributes to diff `attrs` against\n *  @param {Object} attrs    The desired end-state key-value attribute pairs\n *  @param {Object} old      Current/previous attributes (from previous VNode or element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old, component, updateSelf) {\n  let name\n  //let update = false\n  let isWeElement = dom.update\n  let oldClone\n  if (dom.receiveProps) {\n    oldClone = Object.assign({}, old)\n  }\n  // remove attributes no longer present on the vnode by setting them to undefined\n  for (name in old) {\n    if (!(attrs && attrs[name] != null) && old[name] != null) {\n      setAccessor(\n        dom,\n        name,\n        old[name],\n        (old[name] = undefined),\n        isSvgMode,\n        component\n      )\n      if (isWeElement) {\n        delete dom.props[name]\n        //update = true\n      }\n    }\n  }\n\n  // add new & update changed attributes\n  for (name in attrs) {\n    if (isWeElement && typeof attrs[name] === 'object' && name !== 'ref') {\n      if (name === 'style') {\n        setAccessor(\n          dom,\n          name,\n          old[name],\n          (old[name] = attrs[name]),\n          isSvgMode,\n          component\n        )\n      }\n      let ccName = camelCase(name)\n      dom.props[ccName] = old[ccName] = attrs[name]\n      //update = true\n    } else if (\n      name !== 'children' &&\n      (!(name in old) ||\n        attrs[name] !==\n          (name === 'value' || name === 'checked' ? dom[name] : old[name]))\n    ) {\n      setAccessor(dom, name, old[name], attrs[name], isSvgMode, component)\n      //fix lazy load props missing\n      if (dom.nodeName.indexOf('-') !== -1) {\n        dom.props = dom.props || {}\n        let ccName = camelCase(name)\n        dom.props[ccName] = old[ccName] = attrs[name]\n        //update = true\n      } else {\n        old[name] = attrs[name]\n      }\n    }\n  }\n\n  if (isWeElement && !updateSelf && dom.parentNode) {\n    //__hasChildren is not accuracy when it was empty at first, so add dom.children.length > 0 condition\n    //if (update || dom.__hasChildren || dom.children.length > 0 || (dom.store && !dom.store.data)) {\n    if (dom.receiveProps(dom.props, oldClone) !== false) {\n      dom.update()\n    }\n    //}\n  }\n}\n","import { cssToDom, isArray, hyphenate, getValByPath, capitalize } from './util'\nimport { diff } from './vdom/diff'\nimport options from './options'\n\nlet id = 0\n\nexport default class WeElement extends HTMLElement {\n  static is = 'WeElement'\n\n  constructor() {\n    super()\n    // fix lazy load props missing\n    this.props = Object.assign({}, this.constructor.defaultProps, this.props)\n    this.elementId = id++\n    this.computed = {}\n    this.isInstalled = false\n  }\n\n  connectedCallback() {\n    let p = this.parentNode\n    while (p && !this.store) {\n      this.store = p.store\n      p = p.parentNode || p.host\n    }\n\n    if (this.inject) {\n      this.injection = {}\n      p = this.parentNode\n      let provide\n      while (p && !provide) {\n        provide = p.provide\n        p = p.parentNode || p.host\n      }\n      if (provide) {\n        this.inject.forEach(injectKey => {\n          this.injection[injectKey] = provide[injectKey]\n        })\n      } else {\n        throw 'The provide prop was not found on the parent node or the provide type is incorrect.'\n      }\n    }\n\n    this.attrsToProps()\n\n    this.beforeInstall()\n    this.install()\n    this.afterInstall()\n\n    let shadowRoot\n    if (this.constructor.isLightDom) {\n      shadowRoot = this\n    } else {\n      if (!this.shadowRoot) {\n        shadowRoot = this.attachShadow({\n          mode: 'open'\n        })\n      } else {\n        shadowRoot = this.shadowRoot\n        let fc\n        while ((fc = shadowRoot.firstChild)) {\n          shadowRoot.removeChild(fc)\n        }\n      }\n    }\n\n    if (this.constructor.elementStyles) {\n      shadowRoot.adoptedStyleSheets = this.constructor.elementStyles\n    } else {\n      const css = this.constructor.css\n      if (css) {\n        if (typeof css === 'string') {\n          const styleSheet = new CSSStyleSheet()\n          styleSheet.replaceSync(css)\n          shadowRoot.adoptedStyleSheets = [styleSheet]\n        } else if (Object.prototype.toString.call(css) === '[object Array]') {\n          const styleSheets = []\n          css.forEach(styleSheet => {\n            if (typeof styleSheet === 'string') {\n              const adoptedStyleSheet = new CSSStyleSheet()\n              adoptedStyleSheet.replaceSync(styleSheet)\n              styleSheets.push(adoptedStyleSheet)\n            } else {\n              styleSheets.push(styleSheet)\n            }\n            shadowRoot.adoptedStyleSheets = styleSheets\n          })\n        } else {\n          shadowRoot.adoptedStyleSheets = [css]\n        }\n        this.constructor.elementStyles = shadowRoot.adoptedStyleSheets\n      }\n    }\n\n    this.beforeRender()\n    options.afterInstall && options.afterInstall(this)\n\n    const rendered = this.render(this.props, this.store)\n\n    this.rootNode = diff(null, rendered, null, this)\n    this.rendered()\n\n    if (this.css) {\n      shadowRoot.appendChild(\n        cssToDom(typeof this.css === 'function' ? this.css() : this.css)\n      )\n    }\n\n    if (this.props.css) {\n      this._customStyleElement = cssToDom(this.props.css)\n      this._customStyleContent = this.props.css\n      shadowRoot.appendChild(this._customStyleElement)\n    }\n\n    if (isArray(this.rootNode)) {\n      this.rootNode.forEach(function(item) {\n        shadowRoot.appendChild(item)\n      })\n    } else {\n      this.rootNode && shadowRoot.appendChild(this.rootNode)\n    }\n    this.installed()\n    this.isInstalled = true\n  }\n\n  disconnectedCallback() {\n    this.uninstall()\n    this.isInstalled = false\n  }\n\n  update(ignoreAttrs, updateSelf) {\n    this._willUpdate = true\n    this.beforeUpdate()\n    this.beforeRender()\n    //fix null !== undefined\n    if (this._customStyleContent != this.props.css) {\n      this._customStyleContent = this.props.css\n      this._customStyleElement.textContent = this._customStyleContent\n    }\n    this.attrsToProps(ignoreAttrs)\n\n    const rendered = this.render(this.props, this.store)\n    this.rendered()\n\n    this.rootNode = diff(\n      this.rootNode,\n      rendered,\n      this.constructor.isLightDom ? this : this.shadowRoot,\n      this,\n      updateSelf\n    )\n    this._willUpdate = false\n    this.updated()\n  }\n\n  forceUpdate() {\n    this.update(true)\n  }\n\n  updateProps(obj) {\n    Object.keys(obj).forEach(key => {\n      this.props[key] = obj[key]\n      if (this.prevProps) {\n        this.prevProps[key] = obj[key]\n      }\n    })\n    this.forceUpdate()\n  }\n\n  updateSelf(ignoreAttrs) {\n    this.update(ignoreAttrs, true)\n  }\n\n  removeAttribute(key) {\n    super.removeAttribute(key)\n    //Avoid executing removeAttribute methods before connectedCallback\n    this.isInstalled && this.update()\n  }\n\n  setAttribute(key, val) {\n    if (val && typeof val === 'object') {\n      super.setAttribute(key, JSON.stringify(val))\n    } else {\n      super.setAttribute(key, val)\n    }\n    //Avoid executing setAttribute methods before connectedCallback\n    this.isInstalled && this.update()\n  }\n\n  pureRemoveAttribute(key) {\n    super.removeAttribute(key)\n  }\n\n  pureSetAttribute(key, val) {\n    super.setAttribute(key, val)\n  }\n\n  attrsToProps(ignoreAttrs) {\n    if (\n      ignoreAttrs ||\n      (this.store && this.store.ignoreAttrs) ||\n      this.props.ignoreAttrs\n    )\n      return\n    const ele = this\n    ele.props['css'] = ele.getAttribute('css')\n    const attrs = this.constructor.propTypes\n    if (!attrs) return\n    Object.keys(attrs).forEach(key => {\n      const type = attrs[key]\n      const val = ele.getAttribute(hyphenate(key))\n      if (val !== null) {\n        switch (type) {\n          case String:\n            ele.props[key] = val\n            break\n          case Number:\n            ele.props[key] = Number(val)\n            break\n          case Boolean:\n            if (val === 'false' || val === '0') {\n              ele.props[key] = false\n            } else {\n              ele.props[key] = true\n            }\n            break\n          case Array:\n          case Object:\n            if (val[0] === ':') {\n              ele.props[key] = getValByPath(val.substr(1), Omi.$)\n            } else {\n              ele.props[key] = JSON.parse(\n                val\n                  .replace(/(['\"])?([a-zA-Z0-9_-]+)(['\"])?:([^\\/])/g, '\"$2\":$4')\n                  .replace(/'([\\s\\S]*?)'/g, '\"$1\"')\n                  .replace(/,(\\s*})/g, '$1')\n              )\n            }\n            break\n        }\n      } else {\n        if (\n          ele.constructor.defaultProps &&\n          ele.constructor.defaultProps.hasOwnProperty(key)\n        ) {\n          ele.props[key] = ele.constructor.defaultProps[key]\n        } else {\n          ele.props[key] = null\n        }\n      }\n    })\n  }\n\n  fire(name, data) {\n    const handler = this.props[`on${capitalize(name)}`]\n    if (handler) {\n      handler(\n        new CustomEvent(name, {\n          detail: data\n        })\n      )\n    } else {\n      this.dispatchEvent(\n        new CustomEvent(name, {\n          detail: data\n        })\n      )\n    }\n  }\n\n  beforeInstall() {}\n\n  install() {}\n\n  afterInstall() {}\n\n  installed() {}\n\n  uninstall() {}\n\n  beforeUpdate() {}\n\n  updated() {}\n\n  beforeRender() {}\n\n  rendered() {}\n\n  receiveProps() {}\n}\n","import { diff } from './vdom/diff'\n\nexport function render(vnode, parent, store) {\n  parent = typeof parent === 'string' ? document.querySelector(parent) : parent\n  if (store) {\n    parent.store = store\n  }\n  return diff(null, vnode, parent, false)\n}\n","import WeElement from './we-element'\nimport options from './options'\n\nconst storeHelpers = ['use', 'useSelf']\n\nexport function define(name, ctor, config) {\n  if (customElements.get(name)) {\n    return\n  }\n  if (options.mapping[name]) {\n    return\n  }\n  if (ctor.is === 'WeElement') {\n    customElements.define(name, ctor)\n    options.mapping[name] = ctor\n  } else {\n    if (typeof config === 'string') {\n      config = { css: config }\n    } else {\n      config = config || {}\n    }\n\n    class Ele extends WeElement {\n      static css = config.css\n\n      static propTypes = config.propTypes\n\n      static defaultProps = config.defaultProps\n\n      static isLightDom = config.isLightDom\n\n      compute = config.compute\n\n      render() {\n        return ctor.call(this, this)\n      }\n    }\n\n    for (let key in config) {\n      if (typeof config[key] === 'function') {\n        Ele.prototype[key] = function() {\n          return config[key].apply(this, arguments)\n        }\n      }\n    }\n\n    storeHelpers.forEach(func => {\n      if (config[func] && config[func] !== 'function') {\n        Ele.prototype[func] = function() {\n          return config[func]\n        }\n      }\n    })\n\n    customElements.define(name, Ele)\n    options.mapping[name] = Ele\n  }\n}\n","import { extend } from './util'\nimport { h } from './h'\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {VNode} vnode    The virtual DOM element to clone\n * @param {Object} props  Attributes/props to add when cloning\n * @param {VNode} rest    Any additional arguments will be used as replacement children.\n */\nexport function cloneElement(vnode, props) {\n  return h(\n    vnode.nodeName,\n    extend(extend({}, vnode.attributes), props),\n    arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children\n  )\n}\n","export function getHost(ele) {\n  let p = ele.parentNode\n  while (p) {\n    if (p.host) {\n      return p.host\n    } else if (p.shadowRoot && p.shadowRoot.host) {\n      return p.shadowRoot.host\n    } else {\n      p = p.parentNode\n    }\n  }\n}\n","/**\n * classNames based on https://github.com/JedWatson/classnames\n * by Jed Watson\n * Licensed under the MIT License\n * https://github.com/JedWatson/classnames/blob/master/LICENSE\n * modified by dntzhang\n */\n\nvar hasOwn = {}.hasOwnProperty\n\nexport function classNames() {\n  var classes = []\n\n  for (var i = 0; i < arguments.length; i++) {\n    var arg = arguments[i]\n    if (!arg) continue\n\n    var argType = typeof arg\n\n    if (argType === 'string' || argType === 'number') {\n      classes.push(arg)\n    } else if (Array.isArray(arg) && arg.length) {\n      var inner = classNames.apply(null, arg)\n      if (inner) {\n        classes.push(inner)\n      }\n    } else if (argType === 'object') {\n      for (var key in arg) {\n        if (hasOwn.call(arg, key) && arg[key]) {\n          classes.push(key)\n        }\n      }\n    }\n  }\n\n  return classes.join(' ')\n}\n\nexport function extractClass() {\n  const [props, ...args] = Array.prototype.slice.call(arguments, 0)\n  if (props.class) {\n    args.unshift(props.class)\n    delete props.class\n  } else if (props.className) {\n    args.unshift(props.className)\n    delete props.className\n  }\n  if (args.length > 0) {\n    return { class: classNames.apply(null, args) }\n  }\n}\n","(function () {\n    'use strict';\n\n    if ('adoptedStyleSheets' in document) { return; }\n\n    var hasShadyCss = 'ShadyCSS' in window && !ShadyCSS.nativeShadow;\n    var bootstrapper = document.implementation.createHTMLDocument('boot');\n    var closedShadowRootRegistry = new WeakMap();\n    var _DOMException = typeof DOMException === 'object' ? Error : DOMException;\n\n    var defineProperty = Object.defineProperty;\n    var forEach = Array.prototype.forEach;\n    var importPattern = /@import.+?;?$/gm;\n    function rejectImports(contents) {\n        var _contents = contents.replace(importPattern, '');\n        if (_contents !== contents) {\n            console.warn('@import rules are not allowed here. See https://github.com/WICG/construct-stylesheets/issues/119#issuecomment-588352418');\n        }\n        return _contents.trim();\n    }\n    function clearRules(sheet) {\n        for (var i = 0; i < sheet.cssRules.length; i++) {\n            sheet.deleteRule(0);\n        }\n    }\n    function insertAllRules(from, to) {\n        forEach.call(from.cssRules, function (rule, i) {\n            to.insertRule(rule.cssText, i);\n        });\n    }\n    function isElementConnected(element) {\n        return 'isConnected' in element\n            ? element.isConnected\n            : document.contains(element);\n    }\n    function unique(arr) {\n        return arr.filter(function (value, index) { return arr.indexOf(value) === index; });\n    }\n    function diff(arr1, arr2) {\n        return arr1.filter(function (value) { return arr2.indexOf(value) === -1; });\n    }\n    function removeNode(node) {\n        node.parentNode.removeChild(node);\n    }\n    function getShadowRoot(element) {\n        return element.shadowRoot || closedShadowRootRegistry.get(element);\n    }\n\n    var cssStyleSheetMethods = [\n        'addImport',\n        'addPageRule',\n        'addRule',\n        'deleteRule',\n        'insertRule',\n        'removeImport',\n        'removeRule',\n    ];\n    var NonConstructedStyleSheet = CSSStyleSheet;\n    var nonConstructedProto = NonConstructedStyleSheet.prototype;\n    nonConstructedProto.replace = function () {\n        return Promise.reject(new _DOMException(\"Can't call replace on non-constructed CSSStyleSheets.\"));\n    };\n    nonConstructedProto.replaceSync = function () {\n        throw new _DOMException(\"Failed to execute 'replaceSync' on 'CSSStyleSheet': Can't call replaceSync on non-constructed CSSStyleSheets.\");\n    };\n    function isCSSStyleSheetInstance(instance) {\n        return typeof instance === 'object'\n            ? proto$2.isPrototypeOf(instance) ||\n                nonConstructedProto.isPrototypeOf(instance)\n            : false;\n    }\n    function isNonConstructedStyleSheetInstance(instance) {\n        return typeof instance === 'object'\n            ? nonConstructedProto.isPrototypeOf(instance)\n            : false;\n    }\n    var $basicStyleSheet = new WeakMap();\n    var $locations = new WeakMap();\n    var $adoptersByLocation = new WeakMap();\n    function addAdopterLocation(sheet, location) {\n        var adopter = document.createElement('style');\n        $adoptersByLocation.get(sheet).set(location, adopter);\n        $locations.get(sheet).push(location);\n        return adopter;\n    }\n    function getAdopterByLocation(sheet, location) {\n        return $adoptersByLocation.get(sheet).get(location);\n    }\n    function removeAdopterLocation(sheet, location) {\n        $adoptersByLocation.get(sheet).delete(location);\n        $locations.set(sheet, $locations.get(sheet).filter(function (_location) { return _location !== location; }));\n    }\n    function restyleAdopter(sheet, adopter) {\n        requestAnimationFrame(function () {\n            clearRules(adopter.sheet);\n            insertAllRules($basicStyleSheet.get(sheet), adopter.sheet);\n        });\n    }\n    function checkInvocationCorrectness(self) {\n        if (!$basicStyleSheet.has(self)) {\n            throw new TypeError('Illegal invocation');\n        }\n    }\n    function ConstructedStyleSheet() {\n        var self = this;\n        var style = document.createElement('style');\n        bootstrapper.body.appendChild(style);\n        $basicStyleSheet.set(self, style.sheet);\n        $locations.set(self, []);\n        $adoptersByLocation.set(self, new WeakMap());\n    }\n    var proto$2 = ConstructedStyleSheet.prototype;\n    proto$2.replace = function replace(contents) {\n        try {\n            this.replaceSync(contents);\n            return Promise.resolve(this);\n        }\n        catch (e) {\n            return Promise.reject(e);\n        }\n    };\n    proto$2.replaceSync = function replaceSync(contents) {\n        checkInvocationCorrectness(this);\n        if (typeof contents === 'string') {\n            var self_1 = this;\n            var style = $basicStyleSheet.get(self_1).ownerNode;\n            style.textContent = rejectImports(contents);\n            $basicStyleSheet.set(self_1, style.sheet);\n            $locations.get(self_1).forEach(function (location) {\n                if (location.isConnected()) {\n                    restyleAdopter(self_1, getAdopterByLocation(self_1, location));\n                }\n            });\n        }\n    };\n    defineProperty(proto$2, 'cssRules', {\n        configurable: true,\n        enumerable: true,\n        get: function cssRules() {\n            checkInvocationCorrectness(this);\n            return $basicStyleSheet.get(this).cssRules;\n        },\n    });\n    cssStyleSheetMethods.forEach(function (method) {\n        proto$2[method] = function () {\n            var self = this;\n            checkInvocationCorrectness(self);\n            var args = arguments;\n            var basic = $basicStyleSheet.get(self);\n            var locations = $locations.get(self);\n            var result = basic[method].apply(basic, args);\n            locations.forEach(function (location) {\n                if (location.isConnected()) {\n                    var sheet = getAdopterByLocation(self, location).sheet;\n                    sheet[method].apply(sheet, args);\n                }\n            });\n            return result;\n        };\n    });\n    defineProperty(ConstructedStyleSheet, Symbol.hasInstance, {\n        configurable: true,\n        value: isCSSStyleSheetInstance,\n    });\n\n    var defaultObserverOptions = {\n        childList: true,\n        subtree: true,\n    };\n    var locations = new WeakMap();\n    function getAssociatedLocation(element) {\n        var location = locations.get(element);\n        if (!location) {\n            location = new Location(element);\n            locations.set(element, location);\n        }\n        return location;\n    }\n    function attachAdoptedStyleSheetProperty(constructor) {\n        defineProperty(constructor.prototype, 'adoptedStyleSheets', {\n            configurable: true,\n            enumerable: true,\n            get: function () {\n                return getAssociatedLocation(this).sheets;\n            },\n            set: function (sheets) {\n                getAssociatedLocation(this).update(sheets);\n            },\n        });\n    }\n    function traverseWebComponents(node, callback) {\n        var iter = document.createNodeIterator(node, NodeFilter.SHOW_ELEMENT, function (foundNode) {\n            return getShadowRoot(foundNode)\n                ? NodeFilter.FILTER_ACCEPT\n                : NodeFilter.FILTER_REJECT;\n        },\n        null, false);\n        for (var next = void 0; (next = iter.nextNode());) {\n            callback(getShadowRoot(next));\n        }\n    }\n    var $element = new WeakMap();\n    var $uniqueSheets = new WeakMap();\n    var $observer = new WeakMap();\n    function isExistingAdopter(self, element) {\n        return (element instanceof HTMLStyleElement &&\n            $uniqueSheets.get(self).some(function (sheet) { return getAdopterByLocation(sheet, self); }));\n    }\n    function getAdopterContainer(self) {\n        var element = $element.get(self);\n        return element instanceof Document ? element.body : element;\n    }\n    function adopt(self) {\n        var styleList = document.createDocumentFragment();\n        var sheets = $uniqueSheets.get(self);\n        var observer = $observer.get(self);\n        var container = getAdopterContainer(self);\n        observer.disconnect();\n        sheets.forEach(function (sheet) {\n            styleList.appendChild(getAdopterByLocation(sheet, self) || addAdopterLocation(sheet, self));\n        });\n        container.insertBefore(styleList, null);\n        observer.observe(container, defaultObserverOptions);\n        sheets.forEach(function (sheet) {\n            restyleAdopter(sheet, getAdopterByLocation(sheet, self));\n        });\n    }\n    function Location(element) {\n        var self = this;\n        self.sheets = [];\n        $element.set(self, element);\n        $uniqueSheets.set(self, []);\n        $observer.set(self, new MutationObserver(function (mutations, observer) {\n            if (!document) {\n                observer.disconnect();\n                return;\n            }\n            mutations.forEach(function (mutation) {\n                if (!hasShadyCss) {\n                    forEach.call(mutation.addedNodes, function (node) {\n                        if (!(node instanceof Element)) {\n                            return;\n                        }\n                        traverseWebComponents(node, function (root) {\n                            getAssociatedLocation(root).connect();\n                        });\n                    });\n                }\n                forEach.call(mutation.removedNodes, function (node) {\n                    if (!(node instanceof Element)) {\n                        return;\n                    }\n                    if (isExistingAdopter(self, node)) {\n                        adopt(self);\n                    }\n                    if (!hasShadyCss) {\n                        traverseWebComponents(node, function (root) {\n                            getAssociatedLocation(root).disconnect();\n                        });\n                    }\n                });\n            });\n        }));\n    }\n    var proto$1 = Location.prototype;\n    proto$1.isConnected = function isConnected() {\n        var element = $element.get(this);\n        return element instanceof Document\n            ? element.readyState !== 'loading'\n            : isElementConnected(element.host);\n    };\n    proto$1.connect = function connect() {\n        var container = getAdopterContainer(this);\n        $observer.get(this).observe(container, defaultObserverOptions);\n        if ($uniqueSheets.get(this).length > 0) {\n            adopt(this);\n        }\n        traverseWebComponents(container, function (root) {\n            getAssociatedLocation(root).connect();\n        });\n    };\n    proto$1.disconnect = function disconnect() {\n        $observer.get(this).disconnect();\n    };\n    proto$1.update = function update(sheets) {\n        var self = this;\n        var locationType = $element.get(self) === document ? 'Document' : 'ShadowRoot';\n        if (!Array.isArray(sheets)) {\n            throw new TypeError(\"Failed to set the 'adoptedStyleSheets' property on \" + locationType + \": Iterator getter is not callable.\");\n        }\n        if (!sheets.every(isCSSStyleSheetInstance)) {\n            throw new TypeError(\"Failed to set the 'adoptedStyleSheets' property on \" + locationType + \": Failed to convert value to 'CSSStyleSheet'\");\n        }\n        if (sheets.some(isNonConstructedStyleSheetInstance)) {\n            throw new TypeError(\"Failed to set the 'adoptedStyleSheets' property on \" + locationType + \": Can't adopt non-constructed stylesheets\");\n        }\n        self.sheets = sheets;\n        var oldUniqueSheets = $uniqueSheets.get(self);\n        var uniqueSheets = unique(sheets);\n        var removedSheets = diff(oldUniqueSheets, uniqueSheets);\n        removedSheets.forEach(function (sheet) {\n            removeNode(getAdopterByLocation(sheet, self));\n            removeAdopterLocation(sheet, self);\n        });\n        $uniqueSheets.set(self, uniqueSheets);\n        if (self.isConnected() && uniqueSheets.length > 0) {\n            adopt(self);\n        }\n    };\n\n    window.CSSStyleSheet = ConstructedStyleSheet;\n    attachAdoptedStyleSheetProperty(Document);\n    if ('ShadowRoot' in window) {\n        attachAdoptedStyleSheetProperty(ShadowRoot);\n        var proto = Element.prototype;\n        var attach_1 = proto.attachShadow;\n        proto.attachShadow = function attachShadow(init) {\n            var root = attach_1.call(this, init);\n            if (init.mode === 'closed') {\n                closedShadowRootRegistry.set(this, root);\n            }\n            return root;\n        };\n    }\n    var documentLocation = getAssociatedLocation(document);\n    if (documentLocation.isConnected()) {\n        documentLocation.connect();\n    }\n    else {\n        document.addEventListener('DOMContentLoaded', documentLocation.connect.bind(documentLocation));\n    }\n\n}());\n","function getGlobal() {\n  if (\n    typeof global !== 'object' ||\n    !global ||\n    global.Math !== Math ||\n    global.Array !== Array\n  ) {\n    return (\n      self ||\n      window ||\n      global ||\n      (function() {\n        return this\n      })()\n    )\n  }\n  return global\n}\n\n/** Global options\n *  @public\n *  @namespace options {Object}\n */\nexport default {\n  store: null,\n  root: getGlobal(),\n  mapping: {}\n}\n","export function o(obj) {\n  return JSON.stringify(obj)\n}\n","import { h, h as createElement } from './h'\nimport options from './options'\nimport WeElement from './we-element'\nimport { render } from './render'\nimport { define } from './define'\nimport { tag } from './tag'\nimport { cloneElement } from './clone-element'\nimport { getHost } from './get-host'\nimport { rpx } from './rpx'\nimport { classNames, extractClass } from './class'\nimport { o } from './o'\nimport { extend, get, set, bind, unbind } from './extend'\nimport { Fragment } from './util'\nimport 'construct-style-sheets-polyfill'\n\nh.f = Fragment\n\nfunction createRef() {\n  return {}\n}\n\nconst $ = {}\nconst Component = WeElement\nconst defineElement = define\nconst elements = options.mapping\n\nconst omi = {\n  tag,\n  WeElement,\n  Component,\n  render,\n  h,\n  createElement,\n  options,\n  define,\n  cloneElement,\n  getHost,\n  rpx,\n  defineElement,\n  classNames,\n  extractClass,\n  createRef,\n  o,\n  elements,\n  $,\n  extend,\n  get,\n  set,\n  bind,\n  unbind\n}\n\noptions.root.Omi = omi\noptions.root.omi = omi\noptions.root.Omi.version = '6.23.0'\n\nexport default omi\n\nexport {\n  tag,\n  WeElement,\n  Component,\n  render,\n  h,\n  createElement,\n  options,\n  define,\n  cloneElement,\n  getHost,\n  rpx,\n  defineElement,\n  classNames,\n  extractClass,\n  createRef,\n  o,\n  elements,\n  $,\n  extend,\n  get,\n  set,\n  bind,\n  unbind\n}\n"]}