{"version":3,"file":"omi.esm.js","sources":["../src/options.js","../src/util.js","../src/h.js","../src/constants.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/tag.js","../src/clone-element.js","../src/get-host.js","../src/rpx.js","../src/class.js","../src/o.js","../node_modules/construct-style-sheets-polyfill/dist/adoptedStyleSheets.js","../src/omi.js"],"sourcesContent":["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","/**\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","// render modes\n\nexport const NO_RENDER = 0\nexport const SYNC_RENDER = 1\nexport const FORCE_RENDER = 2\nexport const ASYNC_RENDER = 3\n\nexport const ATTR_KEY = 'prevProps'\n\n// DOM properties that should NOT have \"px\" added when numeric\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i\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 { define } from './define'\n\nexport function tag(name) {\n  return function(target) {\n    define(name, target)\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","export function rpx(css) {\n  return css.replace(/([1-9]\\d*|0)(\\.\\d*)*rpx/g, (a, b) => {\n    return (window.innerWidth * Number(b)) / 750 + 'px'\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","export function o(obj) {\n  return JSON.stringify(obj)\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","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"],"names":["getGlobal","global","Math","Array","self","window","Reflect","undefined","customElements","hasOwnProperty","BuiltInHTMLElement","HTMLElement","construct","constructor","prototype","setPrototypeOf","cssToDom","css","node","document","createElement","textContent","camelCase","str","replace","$","$1","toUpperCase","Fragment","props","children","extend","obj","i","applyRef","ref","value","current","defer","Promise","resolve","then","bind","setTimeout","isArray","Object","toString","call","pathToArr","path","split","hyphenateRE","hyphenate","toLowerCase","capitalize","name","all","letter","s","getValByPath","arr","forEach","prop","stack","h","nodeName","attributes","lastSimple","child","simple","arguments","length","push","pop","String","p","key","options","vnode","ATTR_KEY","IS_NON_DIMENSIONAL","isSameNodeType","hydrating","splitText","_componentConstructor","isNamedNode","mapping","normalizedNodeName","extension","handler","set","origin","len","get","eventProxy","e","_listeners","type","el","addEventListener","unbind","removeEventListener","createNode","isSvg","createElementNS","removeNode","parentNode","removeChild","setAccessor","old","component","className","style","cssText","test","innerHTML","__html","pureRemoveAttribute","removeAttribute","ns","removeAttributeNS","setAttributeNS","pureSetAttribute","setAttribute","event","bindEvent","useCapture","nameLower","slice","diffLevel","isSvgMode","diff","dom","parent","updateSelf","ret","ownerSVGElement","item","index","ele","idiff","one","appendChild","out","prevSvgMode","_component","nodeValue","createTextNode","replaceChild","vnodeName","firstChild","fc","vchildren","a","nextSibling","is","noSlot","dangerouslySetInnerHTML","innerDiffNode","isHydrating","originalChildren","childNodes","keyed","keyedLen","min","childrenLen","vlen","j","c","f","vchild","__key","trim","insertBefore","recollectNodeTree","unmountOnly","removeChildren","lastChild","next","previousSibling","diffAttributes","attrs","isWeElement","update","oldClone","receiveProps","assign","ccName","indexOf","id","WeElement","defaultProps","elementId","computed","isInstalled","connectedCallback","store","host","inject","injection","provide","injectKey","attrsToProps","beforeInstall","install","afterInstall","shadowRoot","isLightDom","attachShadow","elementStyles","adoptedStyleSheets","styleSheet","CSSStyleSheet","replaceSync","styleSheets","adoptedStyleSheet","beforeRender","rendered","render","rootNode","_customStyleElement","_customStyleContent","installed","disconnectedCallback","uninstall","ignoreAttrs","_willUpdate","beforeUpdate","updated","forceUpdate","updateProps","keys","prevProps","val","JSON","stringify","getAttribute","propTypes","Number","Boolean","substr","Omi","parse","fire","data","CustomEvent","dispatchEvent","querySelector","storeHelpers","define","ctor","config","Ele","compute","apply","func","tag","target","cloneElement","getHost","rpx","b","innerWidth","hasOwn","classNames","classes","arg","argType","inner","join","extractClass","args","class","unshift","o","createRef","Component","defineElement","elements","omi","root","version"],"mappings":"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"}