{"version":3,"file":"omi.dev.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","../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 === 'unsafeHTML') {\n if (value) node.innerHTML = value || ''\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, removeNode } from '../dom/index'\nimport { camelCase, isArray, Fragment } from '../util'\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/** convert vnode function to object */\nconst purgeVNode = (vnode, args) => {\n if (typeof vnode === \"function\") {\n args.vnode = vnode\n args.update = (updateSelf) => {\n return diff(args.dom, args.vnode, args.dom && args.dom.parentNode, args.component, updateSelf)\n }\n vnode = args.vnode(args)\n\n if (vnode instanceof Array) {\n //wrap\n vnode = {\n nodeName: \"output\",\n children: vnode,\n }\n }\n\n if (!vnode || typeof vnode == \"string\" || typeof vnode == \"number\" || typeof vnode == \"boolean\" || typeof vnode == \"bigint\") {\n vnode = {\n nodeName: \"output\",\n children: [vnode],\n }\n }\n vnode.setDom = dom => {\n if (dom) {\n args.dom = dom\n Promise.resolve().then(() => {\n dom.dispatchEvent(\n new CustomEvent(\"updated\", {\n detail: args,\n cancelable: true,\n bubbles: true\n })\n )\n })\n if (!dom.update) dom.update = args.update\n }\n\n }\n }\n return vnode\n\n}\n\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 //dynamic vnode\n vnode = purgeVNode(vnode, { component })\n //////////////////////////////////////////////////////////////////////\n\n if (vnode && vnode.nodeName === Fragment) {\n vnode = vnode.children\n }\n if (isArray(vnode)) {\n //dynamic vnode\n vnode = vnode.map(child => purgeVNode(child, { component }))\n //////////////////////////////////////////////////////////////////////\n\n if (parent) {\n // don't use css and props.css when using h.f\n // diff node list and vnode list\n innerDiffNode(parent, vnode, hydrating, component, updateSelf)\n } else {\n // connectedCallback 的时候 parent 为 null\n ret = []\n vnode.forEach((item, index) => {\n let ele = idiff(index === 0 ? dom : null, item, component, updateSelf)\n // 返回数组的情况下,在 WeElement 中进行了 shadowRoot.appendChild\n // 所有不会出现 vnode index 大于 0 丢失的情况\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\n return ret\n}\n\n/** Internals of `diff()`, separated to allow bypassing diffLevel / mount flushing. */\nfunction idiff(dom, vnode, component, updateSelf) {\n\n if (dom && vnode && dom.props) {\n dom.props.children = vnode.children\n }\n let out = dom,\n prevSvgMode = isSvgMode\n\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 //dynamic vnode\n vnode.setDom && vnode.setDom(out)\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 //dynamic vnode \n vchildren = vnode.children.map(child => purgeVNode(child, { component }))\n /////////////////////////////////////////////////////////\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 //dynamic vnode\n vnode.setDom && vnode.setDom(out)\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\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 && dom.receiveProps) {\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 if (css.default && typeof css.default === 'string') {\n // [object Module]\n const styleSheet = new CSSStyleSheet()\n styleSheet.replaceSync(css.default)\n shadowRoot.adoptedStyleSheets = [styleSheet]\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 if (this._customStyleElement) {\n this._customStyleElement.textContent = this._customStyleContent\n } else {\n // 当 prop css 开始没有值,后来有值\n this._customStyleElement = cssToDom(this.props.css)\n this.shadowRoot.appendChild(this._customStyleElement)\n }\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 (typeof document === 'undefined' || '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.25.7'\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","\n\t\t\t\timport Omi from './omi';\n\t\t\t\tif (typeof module!='undefined') module.exports = Omi;\n\t\t\t\telse self.Omi = Omi;\n\t\t\t"],"names":["getGlobal","global","Math","Array","self","window","store","root","mapping","Reflect","undefined","customElements","hasOwnProperty","BuiltInHTMLElement","HTMLElement","construct","constructor","prototype","Object","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","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","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","bindEvent","pureRemoveAttribute","removeAttribute","ns","removeAttributeNS","setAttributeNS","pureSetAttribute","setAttribute","event","useCapture","nameLower","slice","diffLevel","isSvgMode","purgeVNode","args","update","updateSelf","diff","dom","setDom","dispatchEvent","CustomEvent","detail","cancelable","bubbles","parent","ret","ownerSVGElement","map","innerDiffNode","item","index","ele","idiff","one","recollectNodeTree","appendChild","out","prevSvgMode","_component","nodeValue","createTextNode","replaceChild","vnodeName","firstChild","fc","vchildren","a","nextSibling","is","noSlot","dangerouslySetInnerHTML","diffAttributes","isHydrating","originalChildren","childNodes","keyed","keyedLen","min","childrenLen","vlen","j","c","f","vchild","__key","trim","insertBefore","unmountOnly","removeChildren","lastChild","next","previousSibling","attrs","isWeElement","oldClone","receiveProps","assign","ccName","indexOf","id","WeElement","defaultProps","elementId","computed","isInstalled","connectedCallback","host","inject","injection","provide","injectKey","attrsToProps","beforeInstall","install","afterInstall","shadowRoot","isLightDom","attachShadow","mode","elementStyles","adoptedStyleSheets","styleSheet","CSSStyleSheet","replaceSync","styleSheets","adoptedStyleSheet","default","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","querySelector","storeHelpers","define","ctor","config","Ele","compute","apply","func","tag","target","cloneElement","getHost","rpx","b","innerWidth","hasOwn","classNames","classes","arg","argType","inner","join","extractClass","class","unshift","o","createRef","Component","defineElement","elements","omi","version","module","exports"],"mappings":"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"}