From 977a66ef419e81a7bef4343bc58eecd52ca5134d Mon Sep 17 00:00:00 2001 From: dntzhang Date: Sun, 10 Sep 2023 07:50:29 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86=20d?= =?UTF-8?q?om=20=E5=86=85=E7=BD=AE=E4=BA=8B=E4=BB=B6=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E7=BB=91=E5=AE=9A=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/omi/dist/omi.dev.js | 23 ++++++++++++++++++----- packages/omi/dist/omi.dev.js.map | 2 +- packages/omi/dist/omi.esm.js | 23 ++++++++++++++++++----- packages/omi/dist/omi.esm.js.map | 2 +- packages/omi/dist/omi.js | 17 +++++++++++++++-- packages/omi/dist/omi.js.map | 2 +- packages/omi/dist/omi.min.js | 2 +- packages/omi/dist/omi.min.js.map | 2 +- packages/omi/package.json | 2 +- packages/omi/src/constants.js | 14 ++++++++++++++ packages/omi/src/dom/index.js | 4 ++-- packages/omi/src/omi.js | 2 +- 12 files changed, 74 insertions(+), 21 deletions(-) diff --git a/packages/omi/dist/omi.dev.js b/packages/omi/dist/omi.dev.js index cdbacfcf6e..ea6f964625 100644 --- a/packages/omi/dist/omi.dev.js +++ b/packages/omi/dist/omi.dev.js @@ -1,5 +1,5 @@ /** - * Omi v6.25.20 http://omijs.org + * Omi v6.25.21 http://omijs.org * Front End Cross-Frameworks Framework. * By dntzhang https://github.com/dntzhang * Github: https://github.com/Tencent/omi @@ -195,8 +195,21 @@ return p; } - // DOM properties that should NOT have "px" added when numeric - var IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i; + var DOM_EVENT_MAP = { + onanimationcancel: 1, + oncompositionend: 1, + oncompositionstart: 1, + oncompositionupdate: 1, + onfocusin: 1, + onfocusout: 1, + onscrollend: 1, + ontouchcancel: 1, + ontouchend: 1, + ontouchmove: 1, + ontouchstart: 1 + + // DOM properties that should NOT have "px" added when numeric + };var IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i; /** * Check if two nodes are equivalent. @@ -378,7 +391,7 @@ function bindEvent(node, name, value, old) { var useCapture = name !== (name = name.replace(/Capture$/, '')); var nameLower = name.toLowerCase(); - name = (nameLower in node ? nameLower : name).slice(2); + name = (DOM_EVENT_MAP[nameLower] || nameLower in node ? nameLower : name).slice(2); if (value) { if (!old) { node.addEventListener(name, eventProxy$1, useCapture); @@ -1734,7 +1747,7 @@ options.root.Omi = omi; options.root.omi = omi; - options.root.Omi.version = '6.25.20'; + options.root.Omi.version = '6.25.21'; if (typeof module != 'undefined') module.exports = omi;else self.Omi = omi; }()); diff --git a/packages/omi/dist/omi.dev.js.map b/packages/omi/dist/omi.dev.js.map index 283a7a5cc3..cd85edad98 100644 --- a/packages/omi/dist/omi.dev.js.map +++ b/packages/omi/dist/omi.dev.js.map @@ -1 +1 @@ -{"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","../node_modules/weakmap-polyfill/weakmap-polyfill.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\nexport function createStyleSheet(style) {\n const styleSheet = new CSSStyleSheet()\n styleSheet.replaceSync(style)\n return styleSheet\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\n // jsx 嵌套的元素自动忽略 attrs\n if(attributes) {\n attributes.ignoreAttrs = true\n } else {\n attributes = { ignoreAttrs: true }\n }\n for (i = arguments.length; i-- > 2; ) {\n stack.push(arguments[i])\n }\n if (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,\n key: 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, options) {\n /** @type {Element} */\n let node = isSvg\n ? document.createElementNS('http://www.w3.org/2000/svg', nodeName)\n : document.createElement(nodeName, options)\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' || name === 'ignoreAttrs') {\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.html || 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\nlet isForeignObject = false\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 // 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 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 prevForeignObject = isForeignObject\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 isForeignObject = vnodeName === 'foreignObject'\n isSvgMode =\n vnodeName === 'svg'\n ? true\n : isForeignObject\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 // foreignObject 自身 isSvgMode 设置成 true,内部设置成 false\n out = createNode(vnodeName, isForeignObject || 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.unsafeHTML != null || 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 isForeignObject = prevForeignObject\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 isForeignObject || 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 isForeignObject || 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], isForeignObject || 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","/*!\n * weakmap-polyfill v2.0.4 - ECMAScript6 WeakMap polyfill\n * https://github.com/polygonplanet/weakmap-polyfill\n * Copyright (c) 2015-2021 polygonplanet \n * @license MIT\n */\n\n(function(self) {\n 'use strict';\n\n if (self.WeakMap) {\n return;\n }\n\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var hasDefine = Object.defineProperty && (function() {\n try {\n // Avoid IE8's broken Object.defineProperty\n return Object.defineProperty({}, 'x', { value: 1 }).x === 1;\n } catch (e) {}\n })();\n\n var defineProperty = function(object, name, value) {\n if (hasDefine) {\n Object.defineProperty(object, name, {\n configurable: true,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n };\n\n self.WeakMap = (function() {\n\n // ECMA-262 23.3 WeakMap Objects\n function WeakMap() {\n if (this === void 0) {\n throw new TypeError(\"Constructor WeakMap requires 'new'\");\n }\n\n defineProperty(this, '_id', genId('_WeakMap'));\n\n // ECMA-262 23.3.1.1 WeakMap([iterable])\n if (arguments.length > 0) {\n // Currently, WeakMap `iterable` argument is not supported\n throw new TypeError('WeakMap iterable is not supported');\n }\n }\n\n // ECMA-262 23.3.3.2 WeakMap.prototype.delete(key)\n defineProperty(WeakMap.prototype, 'delete', function(key) {\n checkInstance(this, 'delete');\n\n if (!isObject(key)) {\n return false;\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n delete key[this._id];\n return true;\n }\n\n return false;\n });\n\n // ECMA-262 23.3.3.3 WeakMap.prototype.get(key)\n defineProperty(WeakMap.prototype, 'get', function(key) {\n checkInstance(this, 'get');\n\n if (!isObject(key)) {\n return void 0;\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n return entry[1];\n }\n\n return void 0;\n });\n\n // ECMA-262 23.3.3.4 WeakMap.prototype.has(key)\n defineProperty(WeakMap.prototype, 'has', function(key) {\n checkInstance(this, 'has');\n\n if (!isObject(key)) {\n return false;\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n return true;\n }\n\n return false;\n });\n\n // ECMA-262 23.3.3.5 WeakMap.prototype.set(key, value)\n defineProperty(WeakMap.prototype, 'set', function(key, value) {\n checkInstance(this, 'set');\n\n if (!isObject(key)) {\n throw new TypeError('Invalid value used as weak map key');\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n entry[1] = value;\n return this;\n }\n\n defineProperty(key, this._id, [key, value]);\n return this;\n });\n\n function checkInstance(x, methodName) {\n if (!isObject(x) || !hasOwnProperty.call(x, '_id')) {\n throw new TypeError(\n methodName + ' method called on incompatible receiver ' +\n typeof x\n );\n }\n }\n\n function genId(prefix) {\n return prefix + '_' + rand() + '.' + rand();\n }\n\n function rand() {\n return Math.random().toString().substring(2);\n }\n\n defineProperty(WeakMap, '_polyfill', true);\n return WeakMap;\n })();\n\n function isObject(x) {\n return Object(x) === x;\n }\n\n})(\n typeof globalThis !== 'undefined' ? globalThis :\n typeof self !== 'undefined' ? self :\n typeof window !== 'undefined' ? window :\n typeof global !== 'undefined' ? global : this\n);\n","import {\n cssToDom,\n isArray,\n hyphenate,\n getValByPath,\n capitalize,\n createStyleSheet\n} from './util'\nimport { diff } from './vdom/diff'\nimport options from './options'\nimport 'weakmap-polyfill'\n\nlet id = 0\n\nconst adoptedStyleSheetsMap = new WeakMap()\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 (!adoptedStyleSheetsMap.has(this.constructor)) {\n const css = this.constructor.css\n if (css) {\n let styleSheets = []\n if (typeof css === 'string') {\n styleSheets = [createStyleSheet(css)]\n } else if (isArray(css)) {\n styleSheets = css.map(styleSheet => {\n if (typeof styleSheet === 'string') {\n return createStyleSheet(styleSheet)\n } else if (\n styleSheet.default &&\n typeof styleSheet.default === 'string'\n ) {\n return createStyleSheet(styleSheet.default)\n } else {\n return styleSheet\n }\n })\n } else if (css.default && typeof css.default === 'string') {\n styleSheets = [createStyleSheet(css.default)]\n } else {\n styleSheets = [css]\n }\n shadowRoot.adoptedStyleSheets = styleSheets\n adoptedStyleSheetsMap.set(this.constructor, styleSheets)\n }\n } else {\n shadowRoot.adoptedStyleSheets = adoptedStyleSheetsMap.get(\n this.constructor\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(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()\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 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.update()\n }\n\n updateSelf() {\n this.update(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() {\n if (this.props.ignoreAttrs) 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 types = isArray(attrs[key]) ? attrs[key] : [attrs[key]]\n const val = ele.getAttribute(hyphenate(key))\n if (val !== null) {\n for (let i = 0; i < types.length; i++) {\n const type = types[i]\n let matched = false\n switch (type) {\n case String:\n ele.props[key] = val\n matched = true\n break\n case Number:\n ele.props[key] = Number(val)\n matched = true\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 matched = true\n break\n case Array:\n case Object:\n if (val[0] === ':') {\n ele.props[key] = getValByPath(val.substr(1), Omi.$)\n } else {\n try {\n ele.props[key] = JSON.parse(val)\n } catch (e) {\n console.warn(\n `The ${key} object prop does not comply with the JSON specification, the incorrect string is [${val}].`\n )\n }\n }\n matched = true\n break\n }\n if (matched) 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 root = ele.getRootNode()\n return root && root.host\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.20'\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","createStyleSheet","style","styleSheet","CSSStyleSheet","replaceSync","stack","h","nodeName","attributes","lastSimple","child","simple","ignoreAttrs","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","cssText","test","innerHTML","html","__html","bindEvent","pureRemoveAttribute","removeAttribute","ns","removeAttributeNS","setAttributeNS","pureSetAttribute","setAttribute","event","useCapture","nameLower","slice","diffLevel","isSvgMode","isForeignObject","diff","dom","parent","updateSelf","ret","ownerSVGElement","innerDiffNode","item","index","ele","idiff","one","recollectNodeTree","appendChild","out","prevSvgMode","prevForeignObject","_component","nodeValue","createTextNode","replaceChild","vnodeName","firstChild","fc","vchildren","a","nextSibling","is","noSlot","unsafeHTML","dangerouslySetInnerHTML","diffAttributes","isHydrating","originalChildren","childNodes","keyed","keyedLen","min","childrenLen","vlen","j","c","f","vchild","__key","trim","insertBefore","unmountOnly","removeChildren","lastChild","next","previousSibling","attrs","isWeElement","update","oldClone","receiveProps","assign","ccName","indexOf","this","id","adoptedStyleSheetsMap","WeakMap","WeElement","defaultProps","elementId","computed","isInstalled","connectedCallback","host","inject","injection","provide","injectKey","attrsToProps","beforeInstall","install","afterInstall","shadowRoot","isLightDom","attachShadow","mode","has","styleSheets","map","default","adoptedStyleSheets","beforeRender","rendered","render","rootNode","_customStyleElement","_customStyleContent","installed","disconnectedCallback","uninstall","_willUpdate","beforeUpdate","updated","updateProps","keys","prevProps","val","JSON","stringify","getAttribute","propTypes","types","matched","Number","Boolean","substr","Omi","parse","console","warn","fire","data","CustomEvent","detail","dispatchEvent","querySelector","storeHelpers","define","ctor","config","Ele","compute","apply","func","tag","target","cloneElement","getHost","getRootNode","rpx","b","innerWidth","hasOwn","classNames","classes","arg","argType","inner","join","extractClass","args","class","unshift","o","createRef","Component","defineElement","elements","omi","version","module","exports"],"mappings":"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"} \ No newline at end of file +{"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","../node_modules/weakmap-polyfill/weakmap-polyfill.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\nexport function createStyleSheet(style) {\n const styleSheet = new CSSStyleSheet()\n styleSheet.replaceSync(style)\n return styleSheet\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\n // jsx 嵌套的元素自动忽略 attrs\n if(attributes) {\n attributes.ignoreAttrs = true\n } else {\n attributes = { ignoreAttrs: true }\n }\n for (i = arguments.length; i-- > 2; ) {\n stack.push(arguments[i])\n }\n if (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,\n key: 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\nexport const DOM_EVENT_MAP = {\n onanimationcancel: 1,\n oncompositionend: 1,\n oncompositionstart: 1,\n oncompositionupdate: 1,\n onfocusin: 1,\n onfocusout: 1,\n onscrollend: 1,\n ontouchcancel : 1,\n ontouchend: 1,\n ontouchmove: 1,\n ontouchstart: 1\n}\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, DOM_EVENT_MAP } 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, options) {\n /** @type {Element} */\n let node = isSvg\n ? document.createElementNS('http://www.w3.org/2000/svg', nodeName)\n : document.createElement(nodeName, options)\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' || name === 'ignoreAttrs') {\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.html || 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 = ((DOM_EVENT_MAP[nameLower] || 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\nlet isForeignObject = false\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 // 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 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 prevForeignObject = isForeignObject\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 isForeignObject = vnodeName === 'foreignObject'\n isSvgMode =\n vnodeName === 'svg'\n ? true\n : isForeignObject\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 // foreignObject 自身 isSvgMode 设置成 true,内部设置成 false\n out = createNode(vnodeName, isForeignObject || 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.unsafeHTML != null || 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 isForeignObject = prevForeignObject\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 isForeignObject || 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 isForeignObject || 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], isForeignObject || 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","/*!\n * weakmap-polyfill v2.0.4 - ECMAScript6 WeakMap polyfill\n * https://github.com/polygonplanet/weakmap-polyfill\n * Copyright (c) 2015-2021 polygonplanet \n * @license MIT\n */\n\n(function(self) {\n 'use strict';\n\n if (self.WeakMap) {\n return;\n }\n\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var hasDefine = Object.defineProperty && (function() {\n try {\n // Avoid IE8's broken Object.defineProperty\n return Object.defineProperty({}, 'x', { value: 1 }).x === 1;\n } catch (e) {}\n })();\n\n var defineProperty = function(object, name, value) {\n if (hasDefine) {\n Object.defineProperty(object, name, {\n configurable: true,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n };\n\n self.WeakMap = (function() {\n\n // ECMA-262 23.3 WeakMap Objects\n function WeakMap() {\n if (this === void 0) {\n throw new TypeError(\"Constructor WeakMap requires 'new'\");\n }\n\n defineProperty(this, '_id', genId('_WeakMap'));\n\n // ECMA-262 23.3.1.1 WeakMap([iterable])\n if (arguments.length > 0) {\n // Currently, WeakMap `iterable` argument is not supported\n throw new TypeError('WeakMap iterable is not supported');\n }\n }\n\n // ECMA-262 23.3.3.2 WeakMap.prototype.delete(key)\n defineProperty(WeakMap.prototype, 'delete', function(key) {\n checkInstance(this, 'delete');\n\n if (!isObject(key)) {\n return false;\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n delete key[this._id];\n return true;\n }\n\n return false;\n });\n\n // ECMA-262 23.3.3.3 WeakMap.prototype.get(key)\n defineProperty(WeakMap.prototype, 'get', function(key) {\n checkInstance(this, 'get');\n\n if (!isObject(key)) {\n return void 0;\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n return entry[1];\n }\n\n return void 0;\n });\n\n // ECMA-262 23.3.3.4 WeakMap.prototype.has(key)\n defineProperty(WeakMap.prototype, 'has', function(key) {\n checkInstance(this, 'has');\n\n if (!isObject(key)) {\n return false;\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n return true;\n }\n\n return false;\n });\n\n // ECMA-262 23.3.3.5 WeakMap.prototype.set(key, value)\n defineProperty(WeakMap.prototype, 'set', function(key, value) {\n checkInstance(this, 'set');\n\n if (!isObject(key)) {\n throw new TypeError('Invalid value used as weak map key');\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n entry[1] = value;\n return this;\n }\n\n defineProperty(key, this._id, [key, value]);\n return this;\n });\n\n function checkInstance(x, methodName) {\n if (!isObject(x) || !hasOwnProperty.call(x, '_id')) {\n throw new TypeError(\n methodName + ' method called on incompatible receiver ' +\n typeof x\n );\n }\n }\n\n function genId(prefix) {\n return prefix + '_' + rand() + '.' + rand();\n }\n\n function rand() {\n return Math.random().toString().substring(2);\n }\n\n defineProperty(WeakMap, '_polyfill', true);\n return WeakMap;\n })();\n\n function isObject(x) {\n return Object(x) === x;\n }\n\n})(\n typeof globalThis !== 'undefined' ? globalThis :\n typeof self !== 'undefined' ? self :\n typeof window !== 'undefined' ? window :\n typeof global !== 'undefined' ? global : this\n);\n","import {\n cssToDom,\n isArray,\n hyphenate,\n getValByPath,\n capitalize,\n createStyleSheet\n} from './util'\nimport { diff } from './vdom/diff'\nimport options from './options'\nimport 'weakmap-polyfill'\n\nlet id = 0\n\nconst adoptedStyleSheetsMap = new WeakMap()\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 (!adoptedStyleSheetsMap.has(this.constructor)) {\n const css = this.constructor.css\n if (css) {\n let styleSheets = []\n if (typeof css === 'string') {\n styleSheets = [createStyleSheet(css)]\n } else if (isArray(css)) {\n styleSheets = css.map(styleSheet => {\n if (typeof styleSheet === 'string') {\n return createStyleSheet(styleSheet)\n } else if (\n styleSheet.default &&\n typeof styleSheet.default === 'string'\n ) {\n return createStyleSheet(styleSheet.default)\n } else {\n return styleSheet\n }\n })\n } else if (css.default && typeof css.default === 'string') {\n styleSheets = [createStyleSheet(css.default)]\n } else {\n styleSheets = [css]\n }\n shadowRoot.adoptedStyleSheets = styleSheets\n adoptedStyleSheetsMap.set(this.constructor, styleSheets)\n }\n } else {\n shadowRoot.adoptedStyleSheets = adoptedStyleSheetsMap.get(\n this.constructor\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(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()\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 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.update()\n }\n\n updateSelf() {\n this.update(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() {\n if (this.props.ignoreAttrs) 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 types = isArray(attrs[key]) ? attrs[key] : [attrs[key]]\n const val = ele.getAttribute(hyphenate(key))\n if (val !== null) {\n for (let i = 0; i < types.length; i++) {\n const type = types[i]\n let matched = false\n switch (type) {\n case String:\n ele.props[key] = val\n matched = true\n break\n case Number:\n ele.props[key] = Number(val)\n matched = true\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 matched = true\n break\n case Array:\n case Object:\n if (val[0] === ':') {\n ele.props[key] = getValByPath(val.substr(1), Omi.$)\n } else {\n try {\n ele.props[key] = JSON.parse(val)\n } catch (e) {\n console.warn(\n `The ${key} object prop does not comply with the JSON specification, the incorrect string is [${val}].`\n )\n }\n }\n matched = true\n break\n }\n if (matched) 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 root = ele.getRootNode()\n return root && root.host\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.21'\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","createStyleSheet","style","styleSheet","CSSStyleSheet","replaceSync","stack","h","nodeName","attributes","lastSimple","child","simple","ignoreAttrs","arguments","length","push","pop","String","p","key","options","vnode","ATTR_KEY","DOM_EVENT_MAP","onanimationcancel","oncompositionend","oncompositionstart","oncompositionupdate","onfocusin","onfocusout","onscrollend","ontouchcancel","ontouchend","ontouchmove","ontouchstart","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","cssText","test","innerHTML","html","__html","bindEvent","pureRemoveAttribute","removeAttribute","ns","removeAttributeNS","setAttributeNS","pureSetAttribute","setAttribute","event","useCapture","nameLower","slice","diffLevel","isSvgMode","isForeignObject","diff","dom","parent","updateSelf","ret","ownerSVGElement","innerDiffNode","item","index","ele","idiff","one","recollectNodeTree","appendChild","out","prevSvgMode","prevForeignObject","_component","nodeValue","createTextNode","replaceChild","vnodeName","firstChild","fc","vchildren","a","nextSibling","is","noSlot","unsafeHTML","dangerouslySetInnerHTML","diffAttributes","isHydrating","originalChildren","childNodes","keyed","keyedLen","min","childrenLen","vlen","j","c","f","vchild","__key","trim","insertBefore","unmountOnly","removeChildren","lastChild","next","previousSibling","attrs","isWeElement","update","oldClone","receiveProps","assign","ccName","indexOf","this","id","adoptedStyleSheetsMap","WeakMap","WeElement","defaultProps","elementId","computed","isInstalled","connectedCallback","host","inject","injection","provide","injectKey","attrsToProps","beforeInstall","install","afterInstall","shadowRoot","isLightDom","attachShadow","mode","has","styleSheets","map","default","adoptedStyleSheets","beforeRender","rendered","render","rootNode","_customStyleElement","_customStyleContent","installed","disconnectedCallback","uninstall","_willUpdate","beforeUpdate","updated","updateProps","keys","prevProps","val","JSON","stringify","getAttribute","propTypes","types","matched","Number","Boolean","substr","Omi","parse","console","warn","fire","data","CustomEvent","detail","dispatchEvent","querySelector","storeHelpers","define","ctor","config","Ele","compute","apply","func","tag","target","cloneElement","getHost","getRootNode","rpx","b","innerWidth","hasOwn","classNames","classes","arg","argType","inner","join","extractClass","args","class","unshift","o","createRef","Component","defineElement","elements","omi","version","module","exports"],"mappings":"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"} \ No newline at end of file diff --git a/packages/omi/dist/omi.esm.js b/packages/omi/dist/omi.esm.js index 1aa64b03ab..67276782ab 100644 --- a/packages/omi/dist/omi.esm.js +++ b/packages/omi/dist/omi.esm.js @@ -1,5 +1,5 @@ /** - * Omi v6.25.20 http://omijs.org + * Omi v6.25.21 http://omijs.org * Front End Cross-Frameworks Framework. * By dntzhang https://github.com/dntzhang * Github: https://github.com/Tencent/omi @@ -192,8 +192,21 @@ function h(nodeName, attributes) { return p; } -// DOM properties that should NOT have "px" added when numeric -var IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i; +var DOM_EVENT_MAP = { + onanimationcancel: 1, + oncompositionend: 1, + oncompositionstart: 1, + oncompositionupdate: 1, + onfocusin: 1, + onfocusout: 1, + onscrollend: 1, + ontouchcancel: 1, + ontouchend: 1, + ontouchmove: 1, + ontouchstart: 1 + + // DOM properties that should NOT have "px" added when numeric +};var IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i; /** * Check if two nodes are equivalent. @@ -375,7 +388,7 @@ function eventProxy$1(e) { function bindEvent(node, name, value, old) { var useCapture = name !== (name = name.replace(/Capture$/, '')); var nameLower = name.toLowerCase(); - name = (nameLower in node ? nameLower : name).slice(2); + name = (DOM_EVENT_MAP[nameLower] || nameLower in node ? nameLower : name).slice(2); if (value) { if (!old) { node.addEventListener(name, eventProxy$1, useCapture); @@ -1731,7 +1744,7 @@ var omi = { options.root.Omi = omi; options.root.omi = omi; -options.root.Omi.version = '6.25.20'; +options.root.Omi.version = '6.25.21'; export default omi; export { tag, WeElement, Component, render, h, h as createElement, options, define, cloneElement, getHost, rpx, defineElement, classNames, extractClass, createRef, o, elements, $, extend$1 as extend, get, set, bind, unbind }; diff --git a/packages/omi/dist/omi.esm.js.map b/packages/omi/dist/omi.esm.js.map index 4eae67c718..a557aeecb8 100644 --- a/packages/omi/dist/omi.esm.js.map +++ b/packages/omi/dist/omi.esm.js.map @@ -1 +1 @@ -{"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","../node_modules/weakmap-polyfill/weakmap-polyfill.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\nexport function createStyleSheet(style) {\n const styleSheet = new CSSStyleSheet()\n styleSheet.replaceSync(style)\n return styleSheet\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\n // jsx 嵌套的元素自动忽略 attrs\n if(attributes) {\n attributes.ignoreAttrs = true\n } else {\n attributes = { ignoreAttrs: true }\n }\n for (i = arguments.length; i-- > 2; ) {\n stack.push(arguments[i])\n }\n if (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,\n key: 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, options) {\n /** @type {Element} */\n let node = isSvg\n ? document.createElementNS('http://www.w3.org/2000/svg', nodeName)\n : document.createElement(nodeName, options)\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' || name === 'ignoreAttrs') {\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.html || 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\nlet isForeignObject = false\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 // 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 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 prevForeignObject = isForeignObject\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 isForeignObject = vnodeName === 'foreignObject'\n isSvgMode =\n vnodeName === 'svg'\n ? true\n : isForeignObject\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 // foreignObject 自身 isSvgMode 设置成 true,内部设置成 false\n out = createNode(vnodeName, isForeignObject || 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.unsafeHTML != null || 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 isForeignObject = prevForeignObject\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 isForeignObject || 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 isForeignObject || 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], isForeignObject || 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","/*!\n * weakmap-polyfill v2.0.4 - ECMAScript6 WeakMap polyfill\n * https://github.com/polygonplanet/weakmap-polyfill\n * Copyright (c) 2015-2021 polygonplanet \n * @license MIT\n */\n\n(function(self) {\n 'use strict';\n\n if (self.WeakMap) {\n return;\n }\n\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var hasDefine = Object.defineProperty && (function() {\n try {\n // Avoid IE8's broken Object.defineProperty\n return Object.defineProperty({}, 'x', { value: 1 }).x === 1;\n } catch (e) {}\n })();\n\n var defineProperty = function(object, name, value) {\n if (hasDefine) {\n Object.defineProperty(object, name, {\n configurable: true,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n };\n\n self.WeakMap = (function() {\n\n // ECMA-262 23.3 WeakMap Objects\n function WeakMap() {\n if (this === void 0) {\n throw new TypeError(\"Constructor WeakMap requires 'new'\");\n }\n\n defineProperty(this, '_id', genId('_WeakMap'));\n\n // ECMA-262 23.3.1.1 WeakMap([iterable])\n if (arguments.length > 0) {\n // Currently, WeakMap `iterable` argument is not supported\n throw new TypeError('WeakMap iterable is not supported');\n }\n }\n\n // ECMA-262 23.3.3.2 WeakMap.prototype.delete(key)\n defineProperty(WeakMap.prototype, 'delete', function(key) {\n checkInstance(this, 'delete');\n\n if (!isObject(key)) {\n return false;\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n delete key[this._id];\n return true;\n }\n\n return false;\n });\n\n // ECMA-262 23.3.3.3 WeakMap.prototype.get(key)\n defineProperty(WeakMap.prototype, 'get', function(key) {\n checkInstance(this, 'get');\n\n if (!isObject(key)) {\n return void 0;\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n return entry[1];\n }\n\n return void 0;\n });\n\n // ECMA-262 23.3.3.4 WeakMap.prototype.has(key)\n defineProperty(WeakMap.prototype, 'has', function(key) {\n checkInstance(this, 'has');\n\n if (!isObject(key)) {\n return false;\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n return true;\n }\n\n return false;\n });\n\n // ECMA-262 23.3.3.5 WeakMap.prototype.set(key, value)\n defineProperty(WeakMap.prototype, 'set', function(key, value) {\n checkInstance(this, 'set');\n\n if (!isObject(key)) {\n throw new TypeError('Invalid value used as weak map key');\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n entry[1] = value;\n return this;\n }\n\n defineProperty(key, this._id, [key, value]);\n return this;\n });\n\n function checkInstance(x, methodName) {\n if (!isObject(x) || !hasOwnProperty.call(x, '_id')) {\n throw new TypeError(\n methodName + ' method called on incompatible receiver ' +\n typeof x\n );\n }\n }\n\n function genId(prefix) {\n return prefix + '_' + rand() + '.' + rand();\n }\n\n function rand() {\n return Math.random().toString().substring(2);\n }\n\n defineProperty(WeakMap, '_polyfill', true);\n return WeakMap;\n })();\n\n function isObject(x) {\n return Object(x) === x;\n }\n\n})(\n typeof globalThis !== 'undefined' ? globalThis :\n typeof self !== 'undefined' ? self :\n typeof window !== 'undefined' ? window :\n typeof global !== 'undefined' ? global : this\n);\n","import {\n cssToDom,\n isArray,\n hyphenate,\n getValByPath,\n capitalize,\n createStyleSheet\n} from './util'\nimport { diff } from './vdom/diff'\nimport options from './options'\nimport 'weakmap-polyfill'\n\nlet id = 0\n\nconst adoptedStyleSheetsMap = new WeakMap()\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 (!adoptedStyleSheetsMap.has(this.constructor)) {\n const css = this.constructor.css\n if (css) {\n let styleSheets = []\n if (typeof css === 'string') {\n styleSheets = [createStyleSheet(css)]\n } else if (isArray(css)) {\n styleSheets = css.map(styleSheet => {\n if (typeof styleSheet === 'string') {\n return createStyleSheet(styleSheet)\n } else if (\n styleSheet.default &&\n typeof styleSheet.default === 'string'\n ) {\n return createStyleSheet(styleSheet.default)\n } else {\n return styleSheet\n }\n })\n } else if (css.default && typeof css.default === 'string') {\n styleSheets = [createStyleSheet(css.default)]\n } else {\n styleSheets = [css]\n }\n shadowRoot.adoptedStyleSheets = styleSheets\n adoptedStyleSheetsMap.set(this.constructor, styleSheets)\n }\n } else {\n shadowRoot.adoptedStyleSheets = adoptedStyleSheetsMap.get(\n this.constructor\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(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()\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 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.update()\n }\n\n updateSelf() {\n this.update(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() {\n if (this.props.ignoreAttrs) 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 types = isArray(attrs[key]) ? attrs[key] : [attrs[key]]\n const val = ele.getAttribute(hyphenate(key))\n if (val !== null) {\n for (let i = 0; i < types.length; i++) {\n const type = types[i]\n let matched = false\n switch (type) {\n case String:\n ele.props[key] = val\n matched = true\n break\n case Number:\n ele.props[key] = Number(val)\n matched = true\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 matched = true\n break\n case Array:\n case Object:\n if (val[0] === ':') {\n ele.props[key] = getValByPath(val.substr(1), Omi.$)\n } else {\n try {\n ele.props[key] = JSON.parse(val)\n } catch (e) {\n console.warn(\n `The ${key} object prop does not comply with the JSON specification, the incorrect string is [${val}].`\n )\n }\n }\n matched = true\n break\n }\n if (matched) 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 root = ele.getRootNode()\n return root && root.host\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.20'\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","createStyleSheet","style","styleSheet","CSSStyleSheet","replaceSync","stack","h","nodeName","attributes","lastSimple","child","simple","ignoreAttrs","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","cssText","test","innerHTML","html","__html","pureRemoveAttribute","removeAttribute","ns","removeAttributeNS","setAttributeNS","pureSetAttribute","setAttribute","event","bindEvent","useCapture","nameLower","slice","diffLevel","isSvgMode","isForeignObject","diff","dom","parent","updateSelf","ret","ownerSVGElement","item","index","ele","idiff","one","appendChild","out","prevSvgMode","prevForeignObject","_component","nodeValue","createTextNode","replaceChild","vnodeName","firstChild","fc","vchildren","a","nextSibling","is","noSlot","unsafeHTML","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","this","id","adoptedStyleSheetsMap","WeakMap","WeElement","defaultProps","elementId","computed","isInstalled","connectedCallback","store","host","inject","injection","provide","injectKey","attrsToProps","beforeInstall","install","afterInstall","shadowRoot","isLightDom","attachShadow","has","styleSheets","map","default","adoptedStyleSheets","beforeRender","rendered","render","rootNode","_customStyleElement","_customStyleContent","installed","disconnectedCallback","uninstall","_willUpdate","beforeUpdate","updated","updateProps","keys","prevProps","val","JSON","stringify","getAttribute","propTypes","types","matched","Number","Boolean","substr","Omi","parse","warn","fire","data","CustomEvent","dispatchEvent","querySelector","storeHelpers","define","ctor","config","Ele","compute","apply","func","tag","target","cloneElement","getHost","root","getRootNode","rpx","b","innerWidth","hasOwn","classNames","classes","arg","argType","inner","join","extractClass","args","class","unshift","o","createRef","Component","defineElement","elements","omi","version"],"mappings":"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"} \ No newline at end of file +{"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","../node_modules/weakmap-polyfill/weakmap-polyfill.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\nexport function createStyleSheet(style) {\n const styleSheet = new CSSStyleSheet()\n styleSheet.replaceSync(style)\n return styleSheet\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\n // jsx 嵌套的元素自动忽略 attrs\n if(attributes) {\n attributes.ignoreAttrs = true\n } else {\n attributes = { ignoreAttrs: true }\n }\n for (i = arguments.length; i-- > 2; ) {\n stack.push(arguments[i])\n }\n if (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,\n key: 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\nexport const DOM_EVENT_MAP = {\n onanimationcancel: 1,\n oncompositionend: 1,\n oncompositionstart: 1,\n oncompositionupdate: 1,\n onfocusin: 1,\n onfocusout: 1,\n onscrollend: 1,\n ontouchcancel : 1,\n ontouchend: 1,\n ontouchmove: 1,\n ontouchstart: 1\n}\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, DOM_EVENT_MAP } 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, options) {\n /** @type {Element} */\n let node = isSvg\n ? document.createElementNS('http://www.w3.org/2000/svg', nodeName)\n : document.createElement(nodeName, options)\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' || name === 'ignoreAttrs') {\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.html || 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 = ((DOM_EVENT_MAP[nameLower] || 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\nlet isForeignObject = false\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 // 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 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 prevForeignObject = isForeignObject\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 isForeignObject = vnodeName === 'foreignObject'\n isSvgMode =\n vnodeName === 'svg'\n ? true\n : isForeignObject\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 // foreignObject 自身 isSvgMode 设置成 true,内部设置成 false\n out = createNode(vnodeName, isForeignObject || 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.unsafeHTML != null || 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 isForeignObject = prevForeignObject\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 isForeignObject || 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 isForeignObject || 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], isForeignObject || 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","/*!\n * weakmap-polyfill v2.0.4 - ECMAScript6 WeakMap polyfill\n * https://github.com/polygonplanet/weakmap-polyfill\n * Copyright (c) 2015-2021 polygonplanet \n * @license MIT\n */\n\n(function(self) {\n 'use strict';\n\n if (self.WeakMap) {\n return;\n }\n\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var hasDefine = Object.defineProperty && (function() {\n try {\n // Avoid IE8's broken Object.defineProperty\n return Object.defineProperty({}, 'x', { value: 1 }).x === 1;\n } catch (e) {}\n })();\n\n var defineProperty = function(object, name, value) {\n if (hasDefine) {\n Object.defineProperty(object, name, {\n configurable: true,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n };\n\n self.WeakMap = (function() {\n\n // ECMA-262 23.3 WeakMap Objects\n function WeakMap() {\n if (this === void 0) {\n throw new TypeError(\"Constructor WeakMap requires 'new'\");\n }\n\n defineProperty(this, '_id', genId('_WeakMap'));\n\n // ECMA-262 23.3.1.1 WeakMap([iterable])\n if (arguments.length > 0) {\n // Currently, WeakMap `iterable` argument is not supported\n throw new TypeError('WeakMap iterable is not supported');\n }\n }\n\n // ECMA-262 23.3.3.2 WeakMap.prototype.delete(key)\n defineProperty(WeakMap.prototype, 'delete', function(key) {\n checkInstance(this, 'delete');\n\n if (!isObject(key)) {\n return false;\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n delete key[this._id];\n return true;\n }\n\n return false;\n });\n\n // ECMA-262 23.3.3.3 WeakMap.prototype.get(key)\n defineProperty(WeakMap.prototype, 'get', function(key) {\n checkInstance(this, 'get');\n\n if (!isObject(key)) {\n return void 0;\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n return entry[1];\n }\n\n return void 0;\n });\n\n // ECMA-262 23.3.3.4 WeakMap.prototype.has(key)\n defineProperty(WeakMap.prototype, 'has', function(key) {\n checkInstance(this, 'has');\n\n if (!isObject(key)) {\n return false;\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n return true;\n }\n\n return false;\n });\n\n // ECMA-262 23.3.3.5 WeakMap.prototype.set(key, value)\n defineProperty(WeakMap.prototype, 'set', function(key, value) {\n checkInstance(this, 'set');\n\n if (!isObject(key)) {\n throw new TypeError('Invalid value used as weak map key');\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n entry[1] = value;\n return this;\n }\n\n defineProperty(key, this._id, [key, value]);\n return this;\n });\n\n function checkInstance(x, methodName) {\n if (!isObject(x) || !hasOwnProperty.call(x, '_id')) {\n throw new TypeError(\n methodName + ' method called on incompatible receiver ' +\n typeof x\n );\n }\n }\n\n function genId(prefix) {\n return prefix + '_' + rand() + '.' + rand();\n }\n\n function rand() {\n return Math.random().toString().substring(2);\n }\n\n defineProperty(WeakMap, '_polyfill', true);\n return WeakMap;\n })();\n\n function isObject(x) {\n return Object(x) === x;\n }\n\n})(\n typeof globalThis !== 'undefined' ? globalThis :\n typeof self !== 'undefined' ? self :\n typeof window !== 'undefined' ? window :\n typeof global !== 'undefined' ? global : this\n);\n","import {\n cssToDom,\n isArray,\n hyphenate,\n getValByPath,\n capitalize,\n createStyleSheet\n} from './util'\nimport { diff } from './vdom/diff'\nimport options from './options'\nimport 'weakmap-polyfill'\n\nlet id = 0\n\nconst adoptedStyleSheetsMap = new WeakMap()\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 (!adoptedStyleSheetsMap.has(this.constructor)) {\n const css = this.constructor.css\n if (css) {\n let styleSheets = []\n if (typeof css === 'string') {\n styleSheets = [createStyleSheet(css)]\n } else if (isArray(css)) {\n styleSheets = css.map(styleSheet => {\n if (typeof styleSheet === 'string') {\n return createStyleSheet(styleSheet)\n } else if (\n styleSheet.default &&\n typeof styleSheet.default === 'string'\n ) {\n return createStyleSheet(styleSheet.default)\n } else {\n return styleSheet\n }\n })\n } else if (css.default && typeof css.default === 'string') {\n styleSheets = [createStyleSheet(css.default)]\n } else {\n styleSheets = [css]\n }\n shadowRoot.adoptedStyleSheets = styleSheets\n adoptedStyleSheetsMap.set(this.constructor, styleSheets)\n }\n } else {\n shadowRoot.adoptedStyleSheets = adoptedStyleSheetsMap.get(\n this.constructor\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(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()\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 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.update()\n }\n\n updateSelf() {\n this.update(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() {\n if (this.props.ignoreAttrs) 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 types = isArray(attrs[key]) ? attrs[key] : [attrs[key]]\n const val = ele.getAttribute(hyphenate(key))\n if (val !== null) {\n for (let i = 0; i < types.length; i++) {\n const type = types[i]\n let matched = false\n switch (type) {\n case String:\n ele.props[key] = val\n matched = true\n break\n case Number:\n ele.props[key] = Number(val)\n matched = true\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 matched = true\n break\n case Array:\n case Object:\n if (val[0] === ':') {\n ele.props[key] = getValByPath(val.substr(1), Omi.$)\n } else {\n try {\n ele.props[key] = JSON.parse(val)\n } catch (e) {\n console.warn(\n `The ${key} object prop does not comply with the JSON specification, the incorrect string is [${val}].`\n )\n }\n }\n matched = true\n break\n }\n if (matched) 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 root = ele.getRootNode()\n return root && root.host\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.21'\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","createStyleSheet","style","styleSheet","CSSStyleSheet","replaceSync","stack","h","nodeName","attributes","lastSimple","child","simple","ignoreAttrs","arguments","length","push","pop","String","p","key","options","vnode","ATTR_KEY","DOM_EVENT_MAP","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","cssText","test","innerHTML","html","__html","pureRemoveAttribute","removeAttribute","ns","removeAttributeNS","setAttributeNS","pureSetAttribute","setAttribute","event","bindEvent","useCapture","nameLower","slice","diffLevel","isSvgMode","isForeignObject","diff","dom","parent","updateSelf","ret","ownerSVGElement","item","index","ele","idiff","one","appendChild","out","prevSvgMode","prevForeignObject","_component","nodeValue","createTextNode","replaceChild","vnodeName","firstChild","fc","vchildren","a","nextSibling","is","noSlot","unsafeHTML","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","this","id","adoptedStyleSheetsMap","WeakMap","WeElement","defaultProps","elementId","computed","isInstalled","connectedCallback","store","host","inject","injection","provide","injectKey","attrsToProps","beforeInstall","install","afterInstall","shadowRoot","isLightDom","attachShadow","has","styleSheets","map","default","adoptedStyleSheets","beforeRender","rendered","render","rootNode","_customStyleElement","_customStyleContent","installed","disconnectedCallback","uninstall","_willUpdate","beforeUpdate","updated","updateProps","keys","prevProps","val","JSON","stringify","getAttribute","propTypes","types","matched","Number","Boolean","substr","Omi","parse","warn","fire","data","CustomEvent","dispatchEvent","querySelector","storeHelpers","define","ctor","config","Ele","compute","apply","func","tag","target","cloneElement","getHost","root","getRootNode","rpx","b","innerWidth","hasOwn","classNames","classes","arg","argType","inner","join","extractClass","args","class","unshift","o","createRef","Component","defineElement","elements","omi","version"],"mappings":"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"} \ No newline at end of file diff --git a/packages/omi/dist/omi.js b/packages/omi/dist/omi.js index 0d088018dc..dc4e505880 100644 --- a/packages/omi/dist/omi.js +++ b/packages/omi/dist/omi.js @@ -149,7 +149,7 @@ function bindEvent(node, name, value, old) { var useCapture = name !== (name = name.replace(/Capture$/, '')); var nameLower = name.toLowerCase(); - name = (nameLower in node ? nameLower : name).slice(2); + name = (DOM_EVENT_MAP[nameLower] || nameLower in node ? nameLower : name).slice(2); if (value) { if (!old) node.addEventListener(name, eventProxy$1, useCapture); } else node.removeEventListener(name, eventProxy$1, useCapture); @@ -454,6 +454,19 @@ 'function' == typeof Promise ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout; var hyphenateRE = /\B([A-Z])/g; var stack = []; + var DOM_EVENT_MAP = { + onanimationcancel: 1, + oncompositionend: 1, + oncompositionstart: 1, + oncompositionupdate: 1, + onfocusin: 1, + onfocusout: 1, + onscrollend: 1, + ontouchcancel: 1, + ontouchend: 1, + ontouchmove: 1, + ontouchstart: 1 + }; var IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i; var extension = {}; var diffLevel = 0; @@ -1016,7 +1029,7 @@ }; options.root.Omi = omi; options.root.omi = omi; - options.root.Omi.version = '6.25.20'; + options.root.Omi.version = '6.25.21'; if ('undefined' != typeof module) module.exports = omi; else self.Omi = omi; }(); //# sourceMappingURL=omi.js.map \ No newline at end of file diff --git a/packages/omi/dist/omi.js.map b/packages/omi/dist/omi.js.map index f6851afb55..a69d21b1de 100644 --- a/packages/omi/dist/omi.js.map +++ b/packages/omi/dist/omi.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/util.js","../src/h.js","../src/vdom/index.js","../src/extend.js","../src/dom/index.js","../src/vdom/diff.js","../node_modules/weakmap-polyfill/weakmap-polyfill.js","../src/we-element.js","../src/render.js","../src/define.js","../src/clone-element.js","../src/get-host.js","../src/class.js","../node_modules/construct-style-sheets-polyfill/dist/adoptedStyleSheets.js","../src/options.js","../src/o.js","../src/omi.js"],"names":["cssToDom","css","node","document","createElement","textContent","camelCase","str","replace","$","$1","toUpperCase","Fragment","props","children","extend","obj","i","applyRef","ref","value","current","isArray","Object","prototype","toString","call","pathToArr","path","split","hyphenate","hyphenateRE","toLowerCase","capitalize","name","all","letter","s","getValByPath","arr","forEach","prop","createStyleSheet","style","styleSheet","CSSStyleSheet","replaceSync","h","nodeName","attributes","lastSimple","child","simple","ignoreAttrs","arguments","length","stack","push","pop","undefined","String","p","key","options","vnode","isSameNodeType","splitText","mapping","hydrating","_componentConstructor","isNamedNode","extend$1","handler","extension","origin","get","e","type","eventProxy","el","_listeners","addEventListener","createNode","removeNode","setAccessor","component","old","isSvg","className","cssText","IS_NON_DIMENSIONAL","test","innerHTML","__html","bindEvent","pureRemoveAttribute","removeAttribute","ns","removeAttributeNS","pureSetAttribute","setAttribute","useCapture","event","nameLower","eventProxy$1","ret","diffLevel","isSvgMode","parent","ownerSVGElement","dom","updateSelf","innerDiffNode","ele","idiff","index","item","one","recollectNodeTree","parentNode","appendChild","out","prevSvgMode","nodeValue","createTextNode","replaceChild","vnodeName","isForeignObject","vchildren","firstChild","fc","a","nextSibling","constructor","is","noSlot","unsafeHTML","dangerouslySetInnerHTML","diffAttributes","min","len","childrenLen","vlen","j","keyedLen","originalChildren","keyed","vchild","_child","_component","__key","trim","isHydrating","c","f","unmountOnly","ATTR_KEY","removeChildren","oldClone","assign","receiveProps","isWeElement","attrs","ccName","indexOf","_ccName","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","ReferenceError","HTMLElement","WeElement","_classCallCheck$1","_possibleConstructorReturn$1","define","ctor","customElements","config","Ele","_WeElement","_temp","_this","_ret","_len","args","Array","this","apply","concat","compute","propTypes","defaultProps","isLightDom","storeHelpers","func","target","cloneElement","root","host","b","window","innerWidth","Number","arg","classNames","classes","argType","inner","join","_Array$prototype$slic","slice","class","unshift","o","JSON","stringify","createRef","store","global","Math","Reflect","hasOwnProperty","BuiltInHTMLElement","construct","setPrototypeOf","Promise","resolve","then","bind","setTimeout","isObject","x","WeakMap","hasDefine","defineProperty","object","genId","checkInstance","methodName","prefix","rand","random","substring","entry","_id","globalThis","id","_HTMLElement","elementId","computed","isInstalled","connectedCallback","_this2","inject","provide","injection","injectKey","attrsToProps","beforeInstall","shadowRoot","install","afterInstall","attachShadow","mode","removeChild","adoptedStyleSheetsMap","has","styleSheets","map","default","set","beforeRender","adoptedStyleSheets","_customStyleContent","_customStyleElement","rootNode","installed","disconnectedCallback","uninstall","update","beforeUpdate","_willUpdate","rendered","render","updateProps","_this3","prevProps","val","getAttribute","keys","types","matched","Boolean","substr","Omi","parse","console","warn","fire","data","CustomEvent","detail","updated","_contents","contents","importPattern","clearRules","sheet","cssRules","deleteRule","insertAllRules","from","to","rule","insertRule","isElementConnected","element","isConnected","contains","unique","filter","diff","arr1","arr2","getShadowRoot","closedShadowRootRegistry","isCSSStyleSheetInstance","proto$2","isPrototypeOf","nonConstructedProto","isNonConstructedStyleSheetInstance","addAdopterLocation","location","adopter","$adoptersByLocation","$locations","getAdopterByLocation","removeAdopterLocation","delete","_location","restyleAdopter","requestAnimationFrame","$basicStyleSheet","checkInvocationCorrectness","ConstructedStyleSheet","bootstrapper","body","getAssociatedLocation","locations","Location","attachAdoptedStyleSheetProperty","configurable","enumerable","sheets","traverseWebComponents","callback","iter","createNodeIterator","NodeFilter","SHOW_ELEMENT","foundNode","FILTER_ACCEPT","FILTER_REJECT","next","nextNode","isExistingAdopter","HTMLStyleElement","$uniqueSheets","some","getAdopterContainer","$element","Document","adopt","styleList","createDocumentFragment","observer","$observer","container","disconnect","insertBefore","observe","defaultObserverOptions","MutationObserver","mutations","mutation","hasShadyCss","addedNodes","Element","connect","removedNodes","ShadyCSS","nativeShadow","implementation","createHTMLDocument","cssStyleSheetMethods","NonConstructedStyleSheet","reject","_DOMException","self_1","ownerNode","rejectImports","method","basic","result","Symbol","hasInstance","childList","subtree","proto$1","readyState","locationType","every","oldUniqueSheets","uniqueSheets","removedSheets","proto","attach_1","init","documentLocation","Component","defineElement","tag","elements","getHost","rpx","extractClass","omi","unbind","version","module","exports"],"mappings":"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","file":"omi.js","sourcesContent":["/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * This shim allows elements written in, or compiled to, ES5 to work on native\n * implementations of Custom Elements v1. It sets new.target to the value of\n * this.constructor so that the native HTMLElement constructor can access the\n * current under-construction element's definition.\n */\n;(function() {\n if (\n // No Reflect, no classes, no need for shim because native custom elements\n // require ES2015 classes or Reflect.\n window.Reflect === undefined ||\n window.customElements === undefined ||\n // The webcomponentsjs custom elements polyfill doesn't require\n // ES2015-compatible construction (`super()` or `Reflect.construct`).\n window.customElements.hasOwnProperty('polyfillWrapFlushCallback')\n ) {\n return\n }\n const BuiltInHTMLElement = HTMLElement\n window.HTMLElement = function HTMLElement() {\n return Reflect.construct(BuiltInHTMLElement, [], this.constructor)\n }\n HTMLElement.prototype = BuiltInHTMLElement.prototype\n HTMLElement.prototype.constructor = HTMLElement\n Object.setPrototypeOf(HTMLElement, BuiltInHTMLElement)\n})()\n\nexport function cssToDom(css) {\n const node = document.createElement('style')\n node.textContent = css\n return node\n}\n\nexport function camelCase(str) {\n return str.replace(/-(\\w)/g, ($, $1) => {\n return $1.toUpperCase()\n })\n}\n\nexport function Fragment(props) {\n return props.children\n}\n\nexport function extend(obj, props) {\n for (let i in props) obj[i] = props[i]\n return obj\n}\n\n/** Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} [ref=null]\n * @param {any} [value]\n */\nexport function applyRef(ref, value) {\n if (ref != null) {\n if (typeof ref == 'function') ref(value)\n else ref.current = value\n }\n}\n\n/**\n * Call a function asynchronously, as soon as possible. Makes\n * use of HTML Promise to schedule the callback if available,\n * otherwise falling back to `setTimeout` (mainly for IE<11).\n * @type {(callback: function) => void}\n */\nexport const defer =\n typeof Promise == 'function'\n ? Promise.resolve().then.bind(Promise.resolve())\n : setTimeout\n\nexport function isArray(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]'\n}\n\nexport function pathToArr(path) {\n if (typeof path !== 'string' || !path) return []\n // return path.split(/\\.|\\[|\\]/).filter(name => !!name)\n return path\n .replace(/]/g, '')\n .replace(/\\[/g, '.')\n .split('.')\n}\n\nconst hyphenateRE = /\\B([A-Z])/g\nexport function hyphenate(str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n}\n\nexport function capitalize(name) {\n return name\n .replace(/\\-(\\w)/g, function(all, letter) {\n return letter.toUpperCase()\n })\n .replace(/^\\S/, s => s.toUpperCase())\n}\n\nexport function getValByPath(path, current) {\n const arr = pathToArr(path)\n arr.forEach(prop => {\n current = current[prop]\n })\n return current\n}\n\nexport function removeItem(item, arr) {\n if (!arr) return\n for (let i = 0, len = arr.length; i < len; i++) {\n if (arr[i] === item) {\n arr.splice(i, 1)\n break\n }\n }\n}\n\nexport function createStyleSheet(style) {\n const styleSheet = new CSSStyleSheet()\n styleSheet.replaceSync(style)\n return styleSheet\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\n // jsx 嵌套的元素自动忽略 attrs\n if(attributes) {\n attributes.ignoreAttrs = true\n } else {\n attributes = { ignoreAttrs: true }\n }\n for (i = arguments.length; i-- > 2; ) {\n stack.push(arguments[i])\n }\n if (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,\n key: attributes.key\n }\n\n // if a \"vnode hook\" is defined, pass every created VNode to it\n if (options.vnode !== undefined) options.vnode(p)\n\n return p\n}\n","import { extend } from '../util'\nimport options from '../options'\n/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node DOM Node to compare\n * @param {VNode} vnode Virtual DOM node to compare\n * @param {boolean} [hydrating=false] If true, ignores component constructors when comparing.\n * @private\n */\nexport function isSameNodeType(node, vnode, hydrating) {\n if (typeof vnode === 'string' || typeof vnode === 'number') {\n return node.splitText !== undefined\n }\n if (typeof vnode.nodeName === 'string') {\n return !node._componentConstructor && isNamedNode(node, vnode.nodeName)\n } else if (typeof vnode.nodeName === 'function') {\n return options.mapping[node.nodeName.toLowerCase()] === vnode.nodeName\n }\n return hydrating || node._componentConstructor === vnode.nodeName\n}\n\n/**\n * Check if an Element has a given nodeName, case-insensitively.\n *\n * @param {Element} node A DOM Element to inspect the name of.\n * @param {String} nodeName Unnormalized name to compare against.\n */\nexport function isNamedNode(node, nodeName) {\n return (\n node.normalizedNodeName === nodeName ||\n node.nodeName.toLowerCase() === nodeName.toLowerCase()\n )\n}\n\n/**\n * Reconstruct Component-style `props` from a VNode.\n * Ensures default/fallback values from `defaultProps`:\n * Own-properties of `defaultProps` not present in `vnode.attributes` are added.\n *\n * @param {VNode} vnode\n * @returns {Object} props\n */\nexport function getNodeProps(vnode) {\n let props = extend({}, vnode.attributes)\n props.children = vnode.children\n\n let defaultProps = vnode.nodeName.defaultProps\n if (defaultProps !== undefined) {\n for (let i in defaultProps) {\n if (props[i] === undefined) {\n props[i] = defaultProps[i]\n }\n }\n }\n\n return props\n}\n","import { pathToArr } from './util'\n\nexport const extension = {}\n\nexport function extend(name, handler) {\n extension['o-' + name] = handler\n}\n\nexport function set(origin, path, value) {\n const arr = pathToArr(path)\n let current = origin\n for (let i = 0, len = arr.length; i < len; i++) {\n if (i === len - 1) {\n current[arr[i]] = value\n } else {\n current = current[arr[i]]\n }\n }\n}\n\nexport function get(origin, path) {\n const arr = pathToArr(path)\n let current = origin\n for (let i = 0, len = arr.length; i < len; i++) {\n current = current[arr[i]]\n }\n\n return current\n}\n\nfunction eventProxy(e) {\n return this._listeners[e.type](e)\n}\n\nexport function bind(el, type, handler) {\n el._listeners = el._listeners || {}\n el._listeners[type] = handler\n el.addEventListener(type, eventProxy)\n}\n\nexport function unbind(el, type) {\n el.removeEventListener(type, eventProxy)\n}\n","import { IS_NON_DIMENSIONAL } from '../constants'\nimport { applyRef } from '../util'\nimport options from '../options'\nimport { extension } from '../extend'\n\n/**\n * Create an element with the given nodeName.\n * @param {string} nodeName The DOM node to create\n * @param {boolean} [isSvg=false] If `true`, creates an element within the SVG\n * namespace.\n * @returns {Element} The created DOM node\n */\nexport function createNode(nodeName, isSvg, options) {\n /** @type {Element} */\n let node = isSvg\n ? document.createElementNS('http://www.w3.org/2000/svg', nodeName)\n : document.createElement(nodeName, options)\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' || name === 'ignoreAttrs') {\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.html || 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\nlet isForeignObject = false\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 // 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 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 prevForeignObject = isForeignObject\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 isForeignObject = vnodeName === 'foreignObject'\n isSvgMode =\n vnodeName === 'svg'\n ? true\n : isForeignObject\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 // foreignObject 自身 isSvgMode 设置成 true,内部设置成 false\n out = createNode(vnodeName, isForeignObject || 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.unsafeHTML != null || 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 isForeignObject = prevForeignObject\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 isForeignObject || 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 isForeignObject || 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], isForeignObject || 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","/*!\n * weakmap-polyfill v2.0.4 - ECMAScript6 WeakMap polyfill\n * https://github.com/polygonplanet/weakmap-polyfill\n * Copyright (c) 2015-2021 polygonplanet \n * @license MIT\n */\n\n(function(self) {\n 'use strict';\n\n if (self.WeakMap) {\n return;\n }\n\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var hasDefine = Object.defineProperty && (function() {\n try {\n // Avoid IE8's broken Object.defineProperty\n return Object.defineProperty({}, 'x', { value: 1 }).x === 1;\n } catch (e) {}\n })();\n\n var defineProperty = function(object, name, value) {\n if (hasDefine) {\n Object.defineProperty(object, name, {\n configurable: true,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n };\n\n self.WeakMap = (function() {\n\n // ECMA-262 23.3 WeakMap Objects\n function WeakMap() {\n if (this === void 0) {\n throw new TypeError(\"Constructor WeakMap requires 'new'\");\n }\n\n defineProperty(this, '_id', genId('_WeakMap'));\n\n // ECMA-262 23.3.1.1 WeakMap([iterable])\n if (arguments.length > 0) {\n // Currently, WeakMap `iterable` argument is not supported\n throw new TypeError('WeakMap iterable is not supported');\n }\n }\n\n // ECMA-262 23.3.3.2 WeakMap.prototype.delete(key)\n defineProperty(WeakMap.prototype, 'delete', function(key) {\n checkInstance(this, 'delete');\n\n if (!isObject(key)) {\n return false;\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n delete key[this._id];\n return true;\n }\n\n return false;\n });\n\n // ECMA-262 23.3.3.3 WeakMap.prototype.get(key)\n defineProperty(WeakMap.prototype, 'get', function(key) {\n checkInstance(this, 'get');\n\n if (!isObject(key)) {\n return void 0;\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n return entry[1];\n }\n\n return void 0;\n });\n\n // ECMA-262 23.3.3.4 WeakMap.prototype.has(key)\n defineProperty(WeakMap.prototype, 'has', function(key) {\n checkInstance(this, 'has');\n\n if (!isObject(key)) {\n return false;\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n return true;\n }\n\n return false;\n });\n\n // ECMA-262 23.3.3.5 WeakMap.prototype.set(key, value)\n defineProperty(WeakMap.prototype, 'set', function(key, value) {\n checkInstance(this, 'set');\n\n if (!isObject(key)) {\n throw new TypeError('Invalid value used as weak map key');\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n entry[1] = value;\n return this;\n }\n\n defineProperty(key, this._id, [key, value]);\n return this;\n });\n\n function checkInstance(x, methodName) {\n if (!isObject(x) || !hasOwnProperty.call(x, '_id')) {\n throw new TypeError(\n methodName + ' method called on incompatible receiver ' +\n typeof x\n );\n }\n }\n\n function genId(prefix) {\n return prefix + '_' + rand() + '.' + rand();\n }\n\n function rand() {\n return Math.random().toString().substring(2);\n }\n\n defineProperty(WeakMap, '_polyfill', true);\n return WeakMap;\n })();\n\n function isObject(x) {\n return Object(x) === x;\n }\n\n})(\n typeof globalThis !== 'undefined' ? globalThis :\n typeof self !== 'undefined' ? self :\n typeof window !== 'undefined' ? window :\n typeof global !== 'undefined' ? global : this\n);\n","import {\n cssToDom,\n isArray,\n hyphenate,\n getValByPath,\n capitalize,\n createStyleSheet\n} from './util'\nimport { diff } from './vdom/diff'\nimport options from './options'\nimport 'weakmap-polyfill'\n\nlet id = 0\n\nconst adoptedStyleSheetsMap = new WeakMap()\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 (!adoptedStyleSheetsMap.has(this.constructor)) {\n const css = this.constructor.css\n if (css) {\n let styleSheets = []\n if (typeof css === 'string') {\n styleSheets = [createStyleSheet(css)]\n } else if (isArray(css)) {\n styleSheets = css.map(styleSheet => {\n if (typeof styleSheet === 'string') {\n return createStyleSheet(styleSheet)\n } else if (\n styleSheet.default &&\n typeof styleSheet.default === 'string'\n ) {\n return createStyleSheet(styleSheet.default)\n } else {\n return styleSheet\n }\n })\n } else if (css.default && typeof css.default === 'string') {\n styleSheets = [createStyleSheet(css.default)]\n } else {\n styleSheets = [css]\n }\n shadowRoot.adoptedStyleSheets = styleSheets\n adoptedStyleSheetsMap.set(this.constructor, styleSheets)\n }\n } else {\n shadowRoot.adoptedStyleSheets = adoptedStyleSheetsMap.get(\n this.constructor\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(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()\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 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.update()\n }\n\n updateSelf() {\n this.update(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() {\n if (this.props.ignoreAttrs) 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 types = isArray(attrs[key]) ? attrs[key] : [attrs[key]]\n const val = ele.getAttribute(hyphenate(key))\n if (val !== null) {\n for (let i = 0; i < types.length; i++) {\n const type = types[i]\n let matched = false\n switch (type) {\n case String:\n ele.props[key] = val\n matched = true\n break\n case Number:\n ele.props[key] = Number(val)\n matched = true\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 matched = true\n break\n case Array:\n case Object:\n if (val[0] === ':') {\n ele.props[key] = getValByPath(val.substr(1), Omi.$)\n } else {\n try {\n ele.props[key] = JSON.parse(val)\n } catch (e) {\n console.warn(\n `The ${key} object prop does not comply with the JSON specification, the incorrect string is [${val}].`\n )\n }\n }\n matched = true\n break\n }\n if (matched) break\n }\n } else {\n if (\n ele.constructor.defaultProps &&\n ele.constructor.defaultProps.hasOwnProperty(key)\n ) {\n ele.props[key] = ele.constructor.defaultProps[key]\n } else {\n ele.props[key] = null\n }\n }\n })\n }\n\n fire(name, data) {\n const handler = this.props[`on${capitalize(name)}`]\n if (handler) {\n handler(\n new CustomEvent(name, {\n detail: data\n })\n )\n } else {\n this.dispatchEvent(\n new CustomEvent(name, {\n detail: data\n })\n )\n }\n }\n\n beforeInstall() {}\n\n install() {}\n\n afterInstall() {}\n\n installed() {}\n\n uninstall() {}\n\n beforeUpdate() {}\n\n updated() {}\n\n beforeRender() {}\n\n rendered() {}\n\n receiveProps() {}\n}\n","import { diff } from './vdom/diff'\n\nexport function render(vnode, parent, store) {\n parent = typeof parent === 'string' ? document.querySelector(parent) : parent\n if (store) {\n parent.store = store\n }\n return diff(null, vnode, parent, false)\n}\n","import WeElement from './we-element'\nimport options from './options'\n\nconst storeHelpers = ['use', 'useSelf']\n\nexport function define(name, ctor, config) {\n if (customElements.get(name)) {\n return\n }\n if (options.mapping[name]) {\n return\n }\n if (ctor.is === 'WeElement') {\n customElements.define(name, ctor)\n options.mapping[name] = ctor\n } else {\n if (typeof config === 'string') {\n config = { css: config }\n } else {\n config = config || {}\n }\n\n class Ele extends WeElement {\n static css = config.css\n\n static propTypes = config.propTypes\n\n static defaultProps = config.defaultProps\n\n static isLightDom = config.isLightDom\n\n compute = config.compute\n\n render() {\n return ctor.call(this, this)\n }\n }\n\n for (let key in config) {\n if (typeof config[key] === 'function') {\n Ele.prototype[key] = function() {\n return config[key].apply(this, arguments)\n }\n }\n }\n\n storeHelpers.forEach(func => {\n if (config[func] && config[func] !== 'function') {\n Ele.prototype[func] = function() {\n return config[func]\n }\n }\n })\n\n customElements.define(name, Ele)\n options.mapping[name] = Ele\n }\n}\n","import { extend } from './util'\nimport { h } from './h'\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {VNode} vnode The virtual DOM element to clone\n * @param {Object} props Attributes/props to add when cloning\n * @param {VNode} rest Any additional arguments will be used as replacement children.\n */\nexport function cloneElement(vnode, props) {\n return h(\n vnode.nodeName,\n extend(extend({}, vnode.attributes), props),\n arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children\n )\n}\n","export function getHost(ele) {\n let root = ele.getRootNode()\n return root && root.host\n}\n","/**\n * classNames based on https://github.com/JedWatson/classnames\n * by Jed Watson\n * Licensed under the MIT License\n * https://github.com/JedWatson/classnames/blob/master/LICENSE\n * modified by dntzhang\n */\n\nvar hasOwn = {}.hasOwnProperty\n\nexport function classNames() {\n var classes = []\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i]\n if (!arg) continue\n\n var argType = typeof arg\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg)\n } else if (Array.isArray(arg) && arg.length) {\n var inner = classNames.apply(null, arg)\n if (inner) {\n classes.push(inner)\n }\n } else if (argType === 'object') {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key)\n }\n }\n }\n }\n\n return classes.join(' ')\n}\n\nexport function extractClass() {\n const [props, ...args] = Array.prototype.slice.call(arguments, 0)\n if (props.class) {\n args.unshift(props.class)\n delete props.class\n } else if (props.className) {\n args.unshift(props.className)\n delete props.className\n }\n if (args.length > 0) {\n return { class: classNames.apply(null, args) }\n }\n}\n","(function () {\n 'use strict';\n\n if (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","function getGlobal() {\n if (\n typeof global !== 'object' ||\n !global ||\n global.Math !== Math ||\n global.Array !== Array\n ) {\n return (\n self ||\n window ||\n global ||\n (function() {\n return this\n })()\n )\n }\n return global\n}\n\n/** Global options\n * @public\n * @namespace options {Object}\n */\nexport default {\n store: null,\n root: getGlobal(),\n mapping: {}\n}\n","export function o(obj) {\n return JSON.stringify(obj)\n}\n","import { h, h as createElement } from './h'\nimport options from './options'\nimport WeElement from './we-element'\nimport { render } from './render'\nimport { define } from './define'\nimport { tag } from './tag'\nimport { cloneElement } from './clone-element'\nimport { getHost } from './get-host'\nimport { rpx } from './rpx'\nimport { classNames, extractClass } from './class'\nimport { o } from './o'\nimport { extend, get, set, bind, unbind } from './extend'\nimport { Fragment } from './util'\nimport 'construct-style-sheets-polyfill'\n\nh.f = Fragment\n\nfunction createRef() {\n return {}\n}\n\nconst $ = {}\nconst Component = WeElement\nconst defineElement = define\nconst elements = options.mapping\n\nconst omi = {\n tag,\n WeElement,\n Component,\n render,\n h,\n createElement,\n options,\n define,\n cloneElement,\n getHost,\n rpx,\n defineElement,\n classNames,\n extractClass,\n createRef,\n o,\n elements,\n $,\n extend,\n get,\n set,\n bind,\n unbind\n}\n\noptions.root.Omi = omi\noptions.root.omi = omi\noptions.root.Omi.version = '6.25.20'\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"]} \ No newline at end of file +{"version":3,"sources":["../src/util.js","../src/h.js","../src/vdom/index.js","../src/extend.js","../src/dom/index.js","../src/vdom/diff.js","../node_modules/weakmap-polyfill/weakmap-polyfill.js","../src/we-element.js","../src/render.js","../src/define.js","../src/clone-element.js","../src/get-host.js","../src/class.js","../node_modules/construct-style-sheets-polyfill/dist/adoptedStyleSheets.js","../src/options.js","../src/constants.js","../src/o.js","../src/omi.js"],"names":["cssToDom","css","node","document","createElement","textContent","camelCase","str","replace","$","$1","toUpperCase","Fragment","props","children","extend","obj","i","applyRef","ref","value","current","isArray","Object","prototype","toString","call","pathToArr","path","split","hyphenate","hyphenateRE","toLowerCase","capitalize","name","all","letter","s","getValByPath","arr","forEach","prop","createStyleSheet","style","styleSheet","CSSStyleSheet","replaceSync","h","nodeName","attributes","lastSimple","child","simple","ignoreAttrs","arguments","length","stack","push","pop","undefined","String","p","key","options","vnode","isSameNodeType","splitText","mapping","hydrating","_componentConstructor","isNamedNode","extend$1","handler","extension","origin","get","e","type","eventProxy","el","_listeners","addEventListener","createNode","removeNode","setAccessor","component","old","isSvg","className","cssText","IS_NON_DIMENSIONAL","test","innerHTML","__html","bindEvent","pureRemoveAttribute","removeAttribute","ns","removeAttributeNS","pureSetAttribute","setAttribute","useCapture","event","nameLower","eventProxy$1","ret","diffLevel","isSvgMode","parent","ownerSVGElement","dom","updateSelf","innerDiffNode","ele","idiff","index","item","one","recollectNodeTree","parentNode","appendChild","out","prevSvgMode","nodeValue","createTextNode","replaceChild","vnodeName","isForeignObject","vchildren","firstChild","fc","a","nextSibling","constructor","is","noSlot","unsafeHTML","dangerouslySetInnerHTML","diffAttributes","min","len","childrenLen","vlen","j","keyedLen","originalChildren","keyed","vchild","_child","_component","__key","trim","isHydrating","c","f","unmountOnly","ATTR_KEY","removeChildren","oldClone","assign","receiveProps","isWeElement","attrs","ccName","indexOf","_ccName","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","ReferenceError","HTMLElement","WeElement","_classCallCheck$1","_possibleConstructorReturn$1","define","ctor","customElements","config","Ele","_WeElement","_temp","_this","_ret","_len","args","Array","this","apply","concat","compute","propTypes","defaultProps","isLightDom","storeHelpers","func","target","cloneElement","root","host","b","window","innerWidth","Number","arg","classNames","classes","argType","inner","join","_Array$prototype$slic","slice","class","unshift","o","JSON","stringify","createRef","store","global","Math","Reflect","hasOwnProperty","BuiltInHTMLElement","construct","setPrototypeOf","Promise","resolve","then","bind","setTimeout","DOM_EVENT_MAP","oncompositionend","oncompositionupdate","onanimationcancel","oncompositionstart","onfocusin","onfocusout","onscrollend","ontouchmove","isObject","x","WeakMap","hasDefine","defineProperty","object","genId","checkInstance","methodName","prefix","rand","random","substring","entry","_id","globalThis","id","_HTMLElement","elementId","computed","isInstalled","connectedCallback","_this2","inject","provide","injection","injectKey","attrsToProps","beforeInstall","shadowRoot","install","afterInstall","attachShadow","mode","removeChild","adoptedStyleSheetsMap","has","styleSheets","map","default","set","beforeRender","adoptedStyleSheets","_customStyleContent","_customStyleElement","rootNode","installed","disconnectedCallback","uninstall","update","beforeUpdate","_willUpdate","rendered","render","updateProps","_this3","prevProps","val","getAttribute","keys","types","matched","Boolean","substr","Omi","parse","console","warn","fire","data","CustomEvent","detail","updated","_contents","contents","importPattern","clearRules","sheet","cssRules","deleteRule","insertAllRules","from","to","rule","insertRule","isElementConnected","element","isConnected","contains","unique","filter","diff","arr1","arr2","getShadowRoot","closedShadowRootRegistry","isCSSStyleSheetInstance","proto$2","isPrototypeOf","nonConstructedProto","isNonConstructedStyleSheetInstance","addAdopterLocation","location","adopter","$adoptersByLocation","$locations","getAdopterByLocation","removeAdopterLocation","delete","_location","restyleAdopter","requestAnimationFrame","$basicStyleSheet","checkInvocationCorrectness","ConstructedStyleSheet","bootstrapper","body","getAssociatedLocation","locations","Location","attachAdoptedStyleSheetProperty","configurable","enumerable","sheets","traverseWebComponents","callback","iter","createNodeIterator","NodeFilter","SHOW_ELEMENT","foundNode","FILTER_ACCEPT","FILTER_REJECT","next","nextNode","isExistingAdopter","HTMLStyleElement","$uniqueSheets","some","getAdopterContainer","$element","Document","adopt","styleList","createDocumentFragment","observer","$observer","container","disconnect","insertBefore","observe","defaultObserverOptions","MutationObserver","mutations","mutation","hasShadyCss","addedNodes","Element","connect","removedNodes","ShadyCSS","nativeShadow","implementation","createHTMLDocument","cssStyleSheetMethods","NonConstructedStyleSheet","reject","_DOMException","self_1","ownerNode","rejectImports","method","basic","result","Symbol","hasInstance","childList","subtree","proto$1","readyState","locationType","every","oldUniqueSheets","uniqueSheets","removedSheets","proto","attach_1","init","documentLocation","Component","defineElement","tag","elements","getHost","rpx","extractClass","omi","unbind","version","module","exports"],"mappings":"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","file":"omi.js","sourcesContent":["/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * This shim allows elements written in, or compiled to, ES5 to work on native\n * implementations of Custom Elements v1. It sets new.target to the value of\n * this.constructor so that the native HTMLElement constructor can access the\n * current under-construction element's definition.\n */\n;(function() {\n if (\n // No Reflect, no classes, no need for shim because native custom elements\n // require ES2015 classes or Reflect.\n window.Reflect === undefined ||\n window.customElements === undefined ||\n // The webcomponentsjs custom elements polyfill doesn't require\n // ES2015-compatible construction (`super()` or `Reflect.construct`).\n window.customElements.hasOwnProperty('polyfillWrapFlushCallback')\n ) {\n return\n }\n const BuiltInHTMLElement = HTMLElement\n window.HTMLElement = function HTMLElement() {\n return Reflect.construct(BuiltInHTMLElement, [], this.constructor)\n }\n HTMLElement.prototype = BuiltInHTMLElement.prototype\n HTMLElement.prototype.constructor = HTMLElement\n Object.setPrototypeOf(HTMLElement, BuiltInHTMLElement)\n})()\n\nexport function cssToDom(css) {\n const node = document.createElement('style')\n node.textContent = css\n return node\n}\n\nexport function camelCase(str) {\n return str.replace(/-(\\w)/g, ($, $1) => {\n return $1.toUpperCase()\n })\n}\n\nexport function Fragment(props) {\n return props.children\n}\n\nexport function extend(obj, props) {\n for (let i in props) obj[i] = props[i]\n return obj\n}\n\n/** Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} [ref=null]\n * @param {any} [value]\n */\nexport function applyRef(ref, value) {\n if (ref != null) {\n if (typeof ref == 'function') ref(value)\n else ref.current = value\n }\n}\n\n/**\n * Call a function asynchronously, as soon as possible. Makes\n * use of HTML Promise to schedule the callback if available,\n * otherwise falling back to `setTimeout` (mainly for IE<11).\n * @type {(callback: function) => void}\n */\nexport const defer =\n typeof Promise == 'function'\n ? Promise.resolve().then.bind(Promise.resolve())\n : setTimeout\n\nexport function isArray(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]'\n}\n\nexport function pathToArr(path) {\n if (typeof path !== 'string' || !path) return []\n // return path.split(/\\.|\\[|\\]/).filter(name => !!name)\n return path\n .replace(/]/g, '')\n .replace(/\\[/g, '.')\n .split('.')\n}\n\nconst hyphenateRE = /\\B([A-Z])/g\nexport function hyphenate(str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n}\n\nexport function capitalize(name) {\n return name\n .replace(/\\-(\\w)/g, function(all, letter) {\n return letter.toUpperCase()\n })\n .replace(/^\\S/, s => s.toUpperCase())\n}\n\nexport function getValByPath(path, current) {\n const arr = pathToArr(path)\n arr.forEach(prop => {\n current = current[prop]\n })\n return current\n}\n\nexport function removeItem(item, arr) {\n if (!arr) return\n for (let i = 0, len = arr.length; i < len; i++) {\n if (arr[i] === item) {\n arr.splice(i, 1)\n break\n }\n }\n}\n\nexport function createStyleSheet(style) {\n const styleSheet = new CSSStyleSheet()\n styleSheet.replaceSync(style)\n return styleSheet\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\n // jsx 嵌套的元素自动忽略 attrs\n if(attributes) {\n attributes.ignoreAttrs = true\n } else {\n attributes = { ignoreAttrs: true }\n }\n for (i = arguments.length; i-- > 2; ) {\n stack.push(arguments[i])\n }\n if (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,\n key: attributes.key\n }\n\n // if a \"vnode hook\" is defined, pass every created VNode to it\n if (options.vnode !== undefined) options.vnode(p)\n\n return p\n}\n","import { extend } from '../util'\nimport options from '../options'\n/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node DOM Node to compare\n * @param {VNode} vnode Virtual DOM node to compare\n * @param {boolean} [hydrating=false] If true, ignores component constructors when comparing.\n * @private\n */\nexport function isSameNodeType(node, vnode, hydrating) {\n if (typeof vnode === 'string' || typeof vnode === 'number') {\n return node.splitText !== undefined\n }\n if (typeof vnode.nodeName === 'string') {\n return !node._componentConstructor && isNamedNode(node, vnode.nodeName)\n } else if (typeof vnode.nodeName === 'function') {\n return options.mapping[node.nodeName.toLowerCase()] === vnode.nodeName\n }\n return hydrating || node._componentConstructor === vnode.nodeName\n}\n\n/**\n * Check if an Element has a given nodeName, case-insensitively.\n *\n * @param {Element} node A DOM Element to inspect the name of.\n * @param {String} nodeName Unnormalized name to compare against.\n */\nexport function isNamedNode(node, nodeName) {\n return (\n node.normalizedNodeName === nodeName ||\n node.nodeName.toLowerCase() === nodeName.toLowerCase()\n )\n}\n\n/**\n * Reconstruct Component-style `props` from a VNode.\n * Ensures default/fallback values from `defaultProps`:\n * Own-properties of `defaultProps` not present in `vnode.attributes` are added.\n *\n * @param {VNode} vnode\n * @returns {Object} props\n */\nexport function getNodeProps(vnode) {\n let props = extend({}, vnode.attributes)\n props.children = vnode.children\n\n let defaultProps = vnode.nodeName.defaultProps\n if (defaultProps !== undefined) {\n for (let i in defaultProps) {\n if (props[i] === undefined) {\n props[i] = defaultProps[i]\n }\n }\n }\n\n return props\n}\n","import { pathToArr } from './util'\n\nexport const extension = {}\n\nexport function extend(name, handler) {\n extension['o-' + name] = handler\n}\n\nexport function set(origin, path, value) {\n const arr = pathToArr(path)\n let current = origin\n for (let i = 0, len = arr.length; i < len; i++) {\n if (i === len - 1) {\n current[arr[i]] = value\n } else {\n current = current[arr[i]]\n }\n }\n}\n\nexport function get(origin, path) {\n const arr = pathToArr(path)\n let current = origin\n for (let i = 0, len = arr.length; i < len; i++) {\n current = current[arr[i]]\n }\n\n return current\n}\n\nfunction eventProxy(e) {\n return this._listeners[e.type](e)\n}\n\nexport function bind(el, type, handler) {\n el._listeners = el._listeners || {}\n el._listeners[type] = handler\n el.addEventListener(type, eventProxy)\n}\n\nexport function unbind(el, type) {\n el.removeEventListener(type, eventProxy)\n}\n","import { IS_NON_DIMENSIONAL, DOM_EVENT_MAP } 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, options) {\n /** @type {Element} */\n let node = isSvg\n ? document.createElementNS('http://www.w3.org/2000/svg', nodeName)\n : document.createElement(nodeName, options)\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' || name === 'ignoreAttrs') {\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.html || 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 = ((DOM_EVENT_MAP[nameLower] || 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\nlet isForeignObject = false\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 // 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 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 prevForeignObject = isForeignObject\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 isForeignObject = vnodeName === 'foreignObject'\n isSvgMode =\n vnodeName === 'svg'\n ? true\n : isForeignObject\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 // foreignObject 自身 isSvgMode 设置成 true,内部设置成 false\n out = createNode(vnodeName, isForeignObject || 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.unsafeHTML != null || 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 isForeignObject = prevForeignObject\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 isForeignObject || 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 isForeignObject || 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], isForeignObject || 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","/*!\n * weakmap-polyfill v2.0.4 - ECMAScript6 WeakMap polyfill\n * https://github.com/polygonplanet/weakmap-polyfill\n * Copyright (c) 2015-2021 polygonplanet \n * @license MIT\n */\n\n(function(self) {\n 'use strict';\n\n if (self.WeakMap) {\n return;\n }\n\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var hasDefine = Object.defineProperty && (function() {\n try {\n // Avoid IE8's broken Object.defineProperty\n return Object.defineProperty({}, 'x', { value: 1 }).x === 1;\n } catch (e) {}\n })();\n\n var defineProperty = function(object, name, value) {\n if (hasDefine) {\n Object.defineProperty(object, name, {\n configurable: true,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n };\n\n self.WeakMap = (function() {\n\n // ECMA-262 23.3 WeakMap Objects\n function WeakMap() {\n if (this === void 0) {\n throw new TypeError(\"Constructor WeakMap requires 'new'\");\n }\n\n defineProperty(this, '_id', genId('_WeakMap'));\n\n // ECMA-262 23.3.1.1 WeakMap([iterable])\n if (arguments.length > 0) {\n // Currently, WeakMap `iterable` argument is not supported\n throw new TypeError('WeakMap iterable is not supported');\n }\n }\n\n // ECMA-262 23.3.3.2 WeakMap.prototype.delete(key)\n defineProperty(WeakMap.prototype, 'delete', function(key) {\n checkInstance(this, 'delete');\n\n if (!isObject(key)) {\n return false;\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n delete key[this._id];\n return true;\n }\n\n return false;\n });\n\n // ECMA-262 23.3.3.3 WeakMap.prototype.get(key)\n defineProperty(WeakMap.prototype, 'get', function(key) {\n checkInstance(this, 'get');\n\n if (!isObject(key)) {\n return void 0;\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n return entry[1];\n }\n\n return void 0;\n });\n\n // ECMA-262 23.3.3.4 WeakMap.prototype.has(key)\n defineProperty(WeakMap.prototype, 'has', function(key) {\n checkInstance(this, 'has');\n\n if (!isObject(key)) {\n return false;\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n return true;\n }\n\n return false;\n });\n\n // ECMA-262 23.3.3.5 WeakMap.prototype.set(key, value)\n defineProperty(WeakMap.prototype, 'set', function(key, value) {\n checkInstance(this, 'set');\n\n if (!isObject(key)) {\n throw new TypeError('Invalid value used as weak map key');\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n entry[1] = value;\n return this;\n }\n\n defineProperty(key, this._id, [key, value]);\n return this;\n });\n\n function checkInstance(x, methodName) {\n if (!isObject(x) || !hasOwnProperty.call(x, '_id')) {\n throw new TypeError(\n methodName + ' method called on incompatible receiver ' +\n typeof x\n );\n }\n }\n\n function genId(prefix) {\n return prefix + '_' + rand() + '.' + rand();\n }\n\n function rand() {\n return Math.random().toString().substring(2);\n }\n\n defineProperty(WeakMap, '_polyfill', true);\n return WeakMap;\n })();\n\n function isObject(x) {\n return Object(x) === x;\n }\n\n})(\n typeof globalThis !== 'undefined' ? globalThis :\n typeof self !== 'undefined' ? self :\n typeof window !== 'undefined' ? window :\n typeof global !== 'undefined' ? global : this\n);\n","import {\n cssToDom,\n isArray,\n hyphenate,\n getValByPath,\n capitalize,\n createStyleSheet\n} from './util'\nimport { diff } from './vdom/diff'\nimport options from './options'\nimport 'weakmap-polyfill'\n\nlet id = 0\n\nconst adoptedStyleSheetsMap = new WeakMap()\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 (!adoptedStyleSheetsMap.has(this.constructor)) {\n const css = this.constructor.css\n if (css) {\n let styleSheets = []\n if (typeof css === 'string') {\n styleSheets = [createStyleSheet(css)]\n } else if (isArray(css)) {\n styleSheets = css.map(styleSheet => {\n if (typeof styleSheet === 'string') {\n return createStyleSheet(styleSheet)\n } else if (\n styleSheet.default &&\n typeof styleSheet.default === 'string'\n ) {\n return createStyleSheet(styleSheet.default)\n } else {\n return styleSheet\n }\n })\n } else if (css.default && typeof css.default === 'string') {\n styleSheets = [createStyleSheet(css.default)]\n } else {\n styleSheets = [css]\n }\n shadowRoot.adoptedStyleSheets = styleSheets\n adoptedStyleSheetsMap.set(this.constructor, styleSheets)\n }\n } else {\n shadowRoot.adoptedStyleSheets = adoptedStyleSheetsMap.get(\n this.constructor\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(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()\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 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.update()\n }\n\n updateSelf() {\n this.update(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() {\n if (this.props.ignoreAttrs) 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 types = isArray(attrs[key]) ? attrs[key] : [attrs[key]]\n const val = ele.getAttribute(hyphenate(key))\n if (val !== null) {\n for (let i = 0; i < types.length; i++) {\n const type = types[i]\n let matched = false\n switch (type) {\n case String:\n ele.props[key] = val\n matched = true\n break\n case Number:\n ele.props[key] = Number(val)\n matched = true\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 matched = true\n break\n case Array:\n case Object:\n if (val[0] === ':') {\n ele.props[key] = getValByPath(val.substr(1), Omi.$)\n } else {\n try {\n ele.props[key] = JSON.parse(val)\n } catch (e) {\n console.warn(\n `The ${key} object prop does not comply with the JSON specification, the incorrect string is [${val}].`\n )\n }\n }\n matched = true\n break\n }\n if (matched) break\n }\n } else {\n if (\n ele.constructor.defaultProps &&\n ele.constructor.defaultProps.hasOwnProperty(key)\n ) {\n ele.props[key] = ele.constructor.defaultProps[key]\n } else {\n ele.props[key] = null\n }\n }\n })\n }\n\n fire(name, data) {\n const handler = this.props[`on${capitalize(name)}`]\n if (handler) {\n handler(\n new CustomEvent(name, {\n detail: data\n })\n )\n } else {\n this.dispatchEvent(\n new CustomEvent(name, {\n detail: data\n })\n )\n }\n }\n\n beforeInstall() {}\n\n install() {}\n\n afterInstall() {}\n\n installed() {}\n\n uninstall() {}\n\n beforeUpdate() {}\n\n updated() {}\n\n beforeRender() {}\n\n rendered() {}\n\n receiveProps() {}\n}\n","import { diff } from './vdom/diff'\n\nexport function render(vnode, parent, store) {\n parent = typeof parent === 'string' ? document.querySelector(parent) : parent\n if (store) {\n parent.store = store\n }\n return diff(null, vnode, parent, false)\n}\n","import WeElement from './we-element'\nimport options from './options'\n\nconst storeHelpers = ['use', 'useSelf']\n\nexport function define(name, ctor, config) {\n if (customElements.get(name)) {\n return\n }\n if (options.mapping[name]) {\n return\n }\n if (ctor.is === 'WeElement') {\n customElements.define(name, ctor)\n options.mapping[name] = ctor\n } else {\n if (typeof config === 'string') {\n config = { css: config }\n } else {\n config = config || {}\n }\n\n class Ele extends WeElement {\n static css = config.css\n\n static propTypes = config.propTypes\n\n static defaultProps = config.defaultProps\n\n static isLightDom = config.isLightDom\n\n compute = config.compute\n\n render() {\n return ctor.call(this, this)\n }\n }\n\n for (let key in config) {\n if (typeof config[key] === 'function') {\n Ele.prototype[key] = function() {\n return config[key].apply(this, arguments)\n }\n }\n }\n\n storeHelpers.forEach(func => {\n if (config[func] && config[func] !== 'function') {\n Ele.prototype[func] = function() {\n return config[func]\n }\n }\n })\n\n customElements.define(name, Ele)\n options.mapping[name] = Ele\n }\n}\n","import { extend } from './util'\nimport { h } from './h'\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {VNode} vnode The virtual DOM element to clone\n * @param {Object} props Attributes/props to add when cloning\n * @param {VNode} rest Any additional arguments will be used as replacement children.\n */\nexport function cloneElement(vnode, props) {\n return h(\n vnode.nodeName,\n extend(extend({}, vnode.attributes), props),\n arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children\n )\n}\n","export function getHost(ele) {\n let root = ele.getRootNode()\n return root && root.host\n}\n","/**\n * classNames based on https://github.com/JedWatson/classnames\n * by Jed Watson\n * Licensed under the MIT License\n * https://github.com/JedWatson/classnames/blob/master/LICENSE\n * modified by dntzhang\n */\n\nvar hasOwn = {}.hasOwnProperty\n\nexport function classNames() {\n var classes = []\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i]\n if (!arg) continue\n\n var argType = typeof arg\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg)\n } else if (Array.isArray(arg) && arg.length) {\n var inner = classNames.apply(null, arg)\n if (inner) {\n classes.push(inner)\n }\n } else if (argType === 'object') {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key)\n }\n }\n }\n }\n\n return classes.join(' ')\n}\n\nexport function extractClass() {\n const [props, ...args] = Array.prototype.slice.call(arguments, 0)\n if (props.class) {\n args.unshift(props.class)\n delete props.class\n } else if (props.className) {\n args.unshift(props.className)\n delete props.className\n }\n if (args.length > 0) {\n return { class: classNames.apply(null, args) }\n }\n}\n","(function () {\n 'use strict';\n\n if (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","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","// 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\nexport const DOM_EVENT_MAP = {\n onanimationcancel: 1,\n oncompositionend: 1,\n oncompositionstart: 1,\n oncompositionupdate: 1,\n onfocusin: 1,\n onfocusout: 1,\n onscrollend: 1,\n ontouchcancel : 1,\n ontouchend: 1,\n ontouchmove: 1,\n ontouchstart: 1\n}\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","export function o(obj) {\n return JSON.stringify(obj)\n}\n","import { h, h as createElement } from './h'\nimport options from './options'\nimport WeElement from './we-element'\nimport { render } from './render'\nimport { define } from './define'\nimport { tag } from './tag'\nimport { cloneElement } from './clone-element'\nimport { getHost } from './get-host'\nimport { rpx } from './rpx'\nimport { classNames, extractClass } from './class'\nimport { o } from './o'\nimport { extend, get, set, bind, unbind } from './extend'\nimport { Fragment } from './util'\nimport 'construct-style-sheets-polyfill'\n\nh.f = Fragment\n\nfunction createRef() {\n return {}\n}\n\nconst $ = {}\nconst Component = WeElement\nconst defineElement = define\nconst elements = options.mapping\n\nconst omi = {\n tag,\n WeElement,\n Component,\n render,\n h,\n createElement,\n options,\n define,\n cloneElement,\n getHost,\n rpx,\n defineElement,\n classNames,\n extractClass,\n createRef,\n o,\n elements,\n $,\n extend,\n get,\n set,\n bind,\n unbind\n}\n\noptions.root.Omi = omi\noptions.root.omi = omi\noptions.root.Omi.version = '6.25.21'\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"]} \ No newline at end of file diff --git a/packages/omi/dist/omi.min.js b/packages/omi/dist/omi.min.js index 9dad0a8224..f0f9b257f8 100644 --- a/packages/omi/dist/omi.min.js +++ b/packages/omi/dist/omi.min.js @@ -1,2 +1,2 @@ -!function(){"use strict";function e(e){var t=document.createElement("style");return t.textContent=e,t}function t(e){return e.replace(/-(\w)/g,function(e,t){return t.toUpperCase()})}function n(e){return e.children}function o(e,t){for(var n in t)e[n]=t[n];return e}function r(e,t){null!=e&&("function"==typeof e?e(t):e.current=t)}function i(e){return"[object Array]"===Object.prototype.toString.call(e)}function s(e){return"string"==typeof e&&e?e.replace(/]/g,"").replace(/\[/g,".").split("."):[]}function c(e){return e.replace(G,"-$1").toLowerCase()}function a(e){return e.replace(/\-(\w)/g,function(e,t){return t.toUpperCase()}).replace(/^\S/,function(e){return e.toUpperCase()})}function l(e,t){return s(e).forEach(function(e){t=t[e]}),t}function u(e){var t=new CSSStyleSheet;return t.replaceSync(e),t}function p(e,t){var o,r,i,s,c=[];for(t?t.ignoreAttrs=!0:t={ignoreAttrs:!0},s=arguments.length;s-- >2;)Z.push(arguments[s]);null!=t.children&&(Z.length||Z.push(t.children),delete t.children);while(Z.length)if((r=Z.pop())&&void 0!==r.pop)for(s=r.length;s--;)Z.push(r[s]);else"boolean"==typeof r&&(r=null),(i="function"!=typeof e)&&(null==r?r="":"number"==typeof r?r+="":"string"!=typeof r&&(i=!1)),i&&o?c[c.length-1]+=r:0===c.length?c=[r]:c.push(r),o=i;if(e===n)return c;var a={nodeName:e,children:c,attributes:t,key:t.key};return void 0!==z.vnode&&z.vnode(a),a}function f(e,t,n){return"string"==typeof t||"number"==typeof t?void 0!==e.splitText:"string"==typeof t.nodeName?!e._componentConstructor&&h(e,t.nodeName):"function"==typeof t.nodeName?z.mapping[e.nodeName.toLowerCase()]===t.nodeName:n||e._componentConstructor===t.nodeName}function h(e,t){return e.normalizedNodeName===t||e.nodeName.toLowerCase()===t.toLowerCase()}function d(e,t){Q["o-"+e]=t}function y(e,t,n){for(var o=s(t),r=e,i=0,c=o.length;i2?[].slice.call(arguments,2):e.children)}function J(e){var t=e.getRootNode();return t&&t.host}function U(e){return e.replace(/([1-9]\d*|0)(\.\d*)*rpx/g,function(e,t){return window.innerWidth*+t/750+"px"})}function V(){for(var e=[],t=0;t0)return{class:V.apply(null,n)}}function B(e){return JSON.stringify(e)}function q(){return{}}var z={store:null,root:function(){return"object"==typeof global&&global&&global.Math===Math&&global.Array===Array?global:self||window||global||function(){return this}()}(),mapping:{}};!function(){if(void 0!==window.Reflect&&void 0!==window.customElements&&!window.customElements.hasOwnProperty("polyfillWrapFlushCallback")){var e=HTMLElement;window.HTMLElement=function(){return Reflect.construct(e,[],this.constructor)},HTMLElement.prototype=e.prototype,HTMLElement.prototype.constructor=HTMLElement,Object.setPrototypeOf(HTMLElement,e)}}(),"function"==typeof Promise?Promise.resolve().then.bind(Promise.resolve()):setTimeout;var G=/\B([A-Z])/g,Z=[],K=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,Q={},X=0,Y=!1,ee=!1,te=!1;!function(e){function t(e){return Object(e)===e}if(!e.WeakMap){var n=Object.prototype.hasOwnProperty,o=Object.defineProperty&&function(){try{return 1===Object.defineProperty({},"x",{value:1}).x}catch(e){}}(),r=function(e,t,n){o||(e[t]=n)};e.WeakMap=function(){function e(){if(void 0===this)throw new TypeError("Constructor WeakMap requires 'new'");if(r(this,"_id",i("_WeakMap")),arguments.length>0)throw new TypeError("WeakMap iterable is not supported")}function o(e,o){if(!t(e)||!n.call(e,"_id"))throw new TypeError(o+" method called on incompatible receiver "+typeof e)}function i(e){return e+"_"+s()+"."+s()}function s(){return(""+Math.random()).substring(2)}return r(e.prototype,"delete",function(e){if(o(this,"delete"),!t(e))return!1;var n=e[this.s];return!(!n||n[0]!==e)&&(delete e[this.s],!0)}),r(e.prototype,"get",function(e){if(o(this,"get"),t(e)){var n=e[this.s];return n&&n[0]===e?n[1]:void 0}}),r(e.prototype,"has",function(e){if(o(this,"has"),!t(e))return!1;var n=e[this.s];return!(!n||n[0]!==e)}),r(e.prototype,"set",function(e,n){if(o(this,"set"),!t(e))throw new TypeError("Invalid value used as weak map key");var i=e[this.s];return i&&i[0]===e?(i[1]=n,this):(r(e,this.s,[e,n]),this)}),r(e,"_polyfill",!0),e}()}}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:void 0);var ne=0,oe=new WeakMap,re=function(t){function n(){j(this,n);var e=M(this,t.call(this));return e.props=Object.assign({},e.constructor.defaultProps,e.props),e.elementId=ne++,e.computed={},e.isInstalled=!1,e}return L(n,t),n.prototype.connectedCallback=function(){var t=this,n=this.parentNode;while(n&&!this.store)this.store=n.store,n=n.parentNode||n.host;if(this.inject){this.injection={},n=this.parentNode;var o;while(n&&!o)o=n.provide,n=n.parentNode||n.host;if(!o)throw"The provide prop was not found on the parent node or the provide type is incorrect.";this.inject.forEach(function(e){t.injection[e]=o[e]})}this.attrsToProps(),this.beforeInstall(),this.install(),this.afterInstall();var r;if(this.constructor.isLightDom)r=this;else if(this.shadowRoot){r=this.shadowRoot;var s;while(s=r.firstChild)r.removeChild(s)}else r=this.attachShadow({mode:"open"});if(oe.has(this.constructor))r.adoptedStyleSheets=oe.get(this.constructor);else{var c=this.constructor.css;if(c){var a=[];a="string"==typeof c?[u(c)]:i(c)?c.map(function(e){return"string"==typeof e?u(e):e.default&&"string"==typeof e.default?u(e.default):e}):c.default&&"string"==typeof c.default?[u(c.default)]:[c],r.adoptedStyleSheets=a,oe.set(this.constructor,a)}}this.beforeRender(),z.afterInstall&&z.afterInstall(this),this.rootNode=O(null,this.render(this.props,this.store),null,this),this.rendered(),this.css&&r.appendChild(e("function"==typeof this.css?this.css():this.css)),this.props.css&&(this.N=e(this.props.css),this.O=this.props.css,r.appendChild(this.N)),i(this.rootNode)?this.rootNode.forEach(function(e){r.appendChild(e)}):this.rootNode&&r.appendChild(this.rootNode),this.installed(),this.isInstalled=!0},n.prototype.disconnectedCallback=function(){this.uninstall(),this.isInstalled=!1},n.prototype.update=function(t){this.J=!0,this.beforeUpdate(),this.beforeRender(),this.O!=this.props.css&&(this.O=this.props.css,this.N?this.N.textContent=this.O:(this.N=e(this.props.css),this.shadowRoot.appendChild(this.N))),this.attrsToProps();var n=this.render(this.props,this.store);this.rendered(),this.rootNode=O(this.rootNode,n,this.constructor.isLightDom?this:this.shadowRoot,this,t),this.J=!1,this.updated()},n.prototype.updateProps=function(e){var t=this;Object.keys(e).forEach(function(n){t.props[n]=e[n],t.prevProps&&(t.prevProps[n]=e[n])}),this.update()},n.prototype.updateSelf=function(){this.update(!0)},n.prototype.removeAttribute=function(e){t.prototype.removeAttribute.call(this,e),this.isInstalled&&this.update()},n.prototype.setAttribute=function(e,n){n&&"object"==typeof n?t.prototype.setAttribute.call(this,e,JSON.stringify(n)):t.prototype.setAttribute.call(this,e,n),this.isInstalled&&this.update()},n.prototype.pureRemoveAttribute=function(e){t.prototype.removeAttribute.call(this,e)},n.prototype.pureSetAttribute=function(e,n){t.prototype.setAttribute.call(this,e,n)},n.prototype.attrsToProps=function(){if(!this.props.ignoreAttrs){var e=this;e.props.css=e.getAttribute("css");var t=this.constructor.propTypes;t&&Object.keys(t).forEach(function(n){var o=i(t[n])?t[n]:[t[n]],r=e.getAttribute(c(n));if(null!==r)for(var s=0;s0&&S(this),g(e,function(e){v(e).connect()})},U.disconnect=function(){J.get(this).disconnect()},U.update=function(e){var t=this,n=D.get(t)===document?"Document":"ShadowRoot";if(!Array.isArray(e))throw new TypeError("Failed to set the 'adoptedStyleSheets' property on "+n+": Iterator getter is not callable.");if(!e.every(a))throw new TypeError("Failed to set the 'adoptedStyleSheets' property on "+n+": Failed to convert value to 'CSSStyleSheet'");if(e.some(l))throw new TypeError("Failed to set the 'adoptedStyleSheets' property on "+n+": Can't adopt non-constructed stylesheets");t.sheets=e;var o=F.get(t),c=r(e);i(o,c).forEach(function(e){s(p(e,t)),f(e,t)}),F.set(t,c),t.isConnected()&&c.length>0&&S(t)},window.CSSStyleSheet=y,m(Document),"ShadowRoot"in window){m(ShadowRoot);var V=Element.prototype,$=V.attachShadow;V.attachShadow=function(e){var t=$.call(this,e);return"closed"===e.mode&&O.set(this,t),t}}var B=v(document);B.isConnected()?B.connect():document.addEventListener("DOMContentLoaded",B.connect.bind(B))}}(),p.f=n;var ce={},ae=re,le=H,ue=z.mapping,pe={tag:D,WeElement:re,Component:ae,render:R,h:p,createElement:p,options:z,define:H,cloneElement:F,getHost:J,rpx:U,defineElement:le,classNames:V,extractClass:$,createRef:q,o:B,elements:ue,$:ce,extend:d,get:v,set:y,bind:g,unbind:b};z.root.Omi=pe,z.root.omi=pe,z.root.Omi.version="6.25.20","undefined"!=typeof module?module.exports=pe:self.Omi=pe}(); +!function(){"use strict";function e(e){var t=document.createElement("style");return t.textContent=e,t}function t(e){return e.replace(/-(\w)/g,function(e,t){return t.toUpperCase()})}function n(e){return e.children}function o(e,t){for(var n in t)e[n]=t[n];return e}function r(e,t){null!=e&&("function"==typeof e?e(t):e.current=t)}function i(e){return"[object Array]"===Object.prototype.toString.call(e)}function s(e){return"string"==typeof e&&e?e.replace(/]/g,"").replace(/\[/g,".").split("."):[]}function c(e){return e.replace(G,"-$1").toLowerCase()}function a(e){return e.replace(/\-(\w)/g,function(e,t){return t.toUpperCase()}).replace(/^\S/,function(e){return e.toUpperCase()})}function l(e,t){return s(e).forEach(function(e){t=t[e]}),t}function u(e){var t=new CSSStyleSheet;return t.replaceSync(e),t}function p(e,t){var o,r,i,s,c=[];for(t?t.ignoreAttrs=!0:t={ignoreAttrs:!0},s=arguments.length;s-- >2;)Z.push(arguments[s]);null!=t.children&&(Z.length||Z.push(t.children),delete t.children);while(Z.length)if((r=Z.pop())&&void 0!==r.pop)for(s=r.length;s--;)Z.push(r[s]);else"boolean"==typeof r&&(r=null),(i="function"!=typeof e)&&(null==r?r="":"number"==typeof r?r+="":"string"!=typeof r&&(i=!1)),i&&o?c[c.length-1]+=r:0===c.length?c=[r]:c.push(r),o=i;if(e===n)return c;var a={nodeName:e,children:c,attributes:t,key:t.key};return void 0!==z.vnode&&z.vnode(a),a}function f(e,t,n){return"string"==typeof t||"number"==typeof t?void 0!==e.splitText:"string"==typeof t.nodeName?!e._componentConstructor&&h(e,t.nodeName):"function"==typeof t.nodeName?z.mapping[e.nodeName.toLowerCase()]===t.nodeName:n||e._componentConstructor===t.nodeName}function h(e,t){return e.normalizedNodeName===t||e.nodeName.toLowerCase()===t.toLowerCase()}function d(e,t){X["o-"+e]=t}function y(e,t,n){for(var o=s(t),r=e,i=0,c=o.length;i2?[].slice.call(arguments,2):e.children)}function J(e){var t=e.getRootNode();return t&&t.host}function U(e){return e.replace(/([1-9]\d*|0)(\.\d*)*rpx/g,function(e,t){return window.innerWidth*+t/750+"px"})}function V(){for(var e=[],t=0;t0)return{class:V.apply(null,n)}}function B(e){return JSON.stringify(e)}function q(){return{}}var z={store:null,root:function(){return"object"==typeof global&&global&&global.Math===Math&&global.Array===Array?global:self||window||global||function(){return this}()}(),mapping:{}};!function(){if(void 0!==window.Reflect&&void 0!==window.customElements&&!window.customElements.hasOwnProperty("polyfillWrapFlushCallback")){var e=HTMLElement;window.HTMLElement=function(){return Reflect.construct(e,[],this.constructor)},HTMLElement.prototype=e.prototype,HTMLElement.prototype.constructor=HTMLElement,Object.setPrototypeOf(HTMLElement,e)}}(),"function"==typeof Promise?Promise.resolve().then.bind(Promise.resolve()):setTimeout;var G=/\B([A-Z])/g,Z=[],K={onanimationcancel:1,oncompositionend:1,oncompositionstart:1,oncompositionupdate:1,onfocusin:1,onfocusout:1,onscrollend:1,ontouchcancel:1,ontouchend:1,ontouchmove:1,ontouchstart:1},Q=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,X={},Y=0,ee=!1,te=!1,ne=!1;!function(e){function t(e){return Object(e)===e}if(!e.WeakMap){var n=Object.prototype.hasOwnProperty,o=Object.defineProperty&&function(){try{return 1===Object.defineProperty({},"x",{value:1}).x}catch(e){}}(),r=function(e,t,n){o||(e[t]=n)};e.WeakMap=function(){function e(){if(void 0===this)throw new TypeError("Constructor WeakMap requires 'new'");if(r(this,"_id",i("_WeakMap")),arguments.length>0)throw new TypeError("WeakMap iterable is not supported")}function o(e,o){if(!t(e)||!n.call(e,"_id"))throw new TypeError(o+" method called on incompatible receiver "+typeof e)}function i(e){return e+"_"+s()+"."+s()}function s(){return(""+Math.random()).substring(2)}return r(e.prototype,"delete",function(e){if(o(this,"delete"),!t(e))return!1;var n=e[this.s];return!(!n||n[0]!==e)&&(delete e[this.s],!0)}),r(e.prototype,"get",function(e){if(o(this,"get"),t(e)){var n=e[this.s];return n&&n[0]===e?n[1]:void 0}}),r(e.prototype,"has",function(e){if(o(this,"has"),!t(e))return!1;var n=e[this.s];return!(!n||n[0]!==e)}),r(e.prototype,"set",function(e,n){if(o(this,"set"),!t(e))throw new TypeError("Invalid value used as weak map key");var i=e[this.s];return i&&i[0]===e?(i[1]=n,this):(r(e,this.s,[e,n]),this)}),r(e,"_polyfill",!0),e}()}}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:void 0);var oe=0,re=new WeakMap,ie=function(t){function n(){j(this,n);var e=M(this,t.call(this));return e.props=Object.assign({},e.constructor.defaultProps,e.props),e.elementId=oe++,e.computed={},e.isInstalled=!1,e}return L(n,t),n.prototype.connectedCallback=function(){var t=this,n=this.parentNode;while(n&&!this.store)this.store=n.store,n=n.parentNode||n.host;if(this.inject){this.injection={},n=this.parentNode;var o;while(n&&!o)o=n.provide,n=n.parentNode||n.host;if(!o)throw"The provide prop was not found on the parent node or the provide type is incorrect.";this.inject.forEach(function(e){t.injection[e]=o[e]})}this.attrsToProps(),this.beforeInstall(),this.install(),this.afterInstall();var r;if(this.constructor.isLightDom)r=this;else if(this.shadowRoot){r=this.shadowRoot;var s;while(s=r.firstChild)r.removeChild(s)}else r=this.attachShadow({mode:"open"});if(re.has(this.constructor))r.adoptedStyleSheets=re.get(this.constructor);else{var c=this.constructor.css;if(c){var a=[];a="string"==typeof c?[u(c)]:i(c)?c.map(function(e){return"string"==typeof e?u(e):e.default&&"string"==typeof e.default?u(e.default):e}):c.default&&"string"==typeof c.default?[u(c.default)]:[c],r.adoptedStyleSheets=a,re.set(this.constructor,a)}}this.beforeRender(),z.afterInstall&&z.afterInstall(this),this.rootNode=O(null,this.render(this.props,this.store),null,this),this.rendered(),this.css&&r.appendChild(e("function"==typeof this.css?this.css():this.css)),this.props.css&&(this.N=e(this.props.css),this.O=this.props.css,r.appendChild(this.N)),i(this.rootNode)?this.rootNode.forEach(function(e){r.appendChild(e)}):this.rootNode&&r.appendChild(this.rootNode),this.installed(),this.isInstalled=!0},n.prototype.disconnectedCallback=function(){this.uninstall(),this.isInstalled=!1},n.prototype.update=function(t){this.J=!0,this.beforeUpdate(),this.beforeRender(),this.O!=this.props.css&&(this.O=this.props.css,this.N?this.N.textContent=this.O:(this.N=e(this.props.css),this.shadowRoot.appendChild(this.N))),this.attrsToProps();var n=this.render(this.props,this.store);this.rendered(),this.rootNode=O(this.rootNode,n,this.constructor.isLightDom?this:this.shadowRoot,this,t),this.J=!1,this.updated()},n.prototype.updateProps=function(e){var t=this;Object.keys(e).forEach(function(n){t.props[n]=e[n],t.prevProps&&(t.prevProps[n]=e[n])}),this.update()},n.prototype.updateSelf=function(){this.update(!0)},n.prototype.removeAttribute=function(e){t.prototype.removeAttribute.call(this,e),this.isInstalled&&this.update()},n.prototype.setAttribute=function(e,n){n&&"object"==typeof n?t.prototype.setAttribute.call(this,e,JSON.stringify(n)):t.prototype.setAttribute.call(this,e,n),this.isInstalled&&this.update()},n.prototype.pureRemoveAttribute=function(e){t.prototype.removeAttribute.call(this,e)},n.prototype.pureSetAttribute=function(e,n){t.prototype.setAttribute.call(this,e,n)},n.prototype.attrsToProps=function(){if(!this.props.ignoreAttrs){var e=this;e.props.css=e.getAttribute("css");var t=this.constructor.propTypes;t&&Object.keys(t).forEach(function(n){var o=i(t[n])?t[n]:[t[n]],r=e.getAttribute(c(n));if(null!==r)for(var s=0;s0&&S(this),g(e,function(e){v(e).connect()})},U.disconnect=function(){J.get(this).disconnect()},U.update=function(e){var t=this,n=D.get(t)===document?"Document":"ShadowRoot";if(!Array.isArray(e))throw new TypeError("Failed to set the 'adoptedStyleSheets' property on "+n+": Iterator getter is not callable.");if(!e.every(a))throw new TypeError("Failed to set the 'adoptedStyleSheets' property on "+n+": Failed to convert value to 'CSSStyleSheet'");if(e.some(l))throw new TypeError("Failed to set the 'adoptedStyleSheets' property on "+n+": Can't adopt non-constructed stylesheets");t.sheets=e;var o=F.get(t),c=r(e);i(o,c).forEach(function(e){s(p(e,t)),f(e,t)}),F.set(t,c),t.isConnected()&&c.length>0&&S(t)},window.CSSStyleSheet=y,m(Document),"ShadowRoot"in window){m(ShadowRoot);var V=Element.prototype,$=V.attachShadow;V.attachShadow=function(e){var t=$.call(this,e);return"closed"===e.mode&&O.set(this,t),t}}var B=v(document);B.isConnected()?B.connect():document.addEventListener("DOMContentLoaded",B.connect.bind(B))}}(),p.f=n;var ae={},le=ie,ue=H,pe=z.mapping,fe={tag:D,WeElement:ie,Component:le,render:R,h:p,createElement:p,options:z,define:H,cloneElement:F,getHost:J,rpx:U,defineElement:ue,classNames:V,extractClass:$,createRef:q,o:B,elements:pe,$:ae,extend:d,get:v,set:y,bind:g,unbind:b};z.root.Omi=fe,z.root.omi=fe,z.root.Omi.version="6.25.21","undefined"!=typeof module?module.exports=fe:self.Omi=fe}(); //# sourceMappingURL=omi.min.js.map \ No newline at end of file diff --git a/packages/omi/dist/omi.min.js.map b/packages/omi/dist/omi.min.js.map index dd6376e591..5ae3a27324 100644 --- a/packages/omi/dist/omi.min.js.map +++ b/packages/omi/dist/omi.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/util.js","../src/h.js","../src/vdom/index.js","../src/extend.js","../src/dom/index.js","../src/vdom/diff.js","../node_modules/weakmap-polyfill/weakmap-polyfill.js","../src/we-element.js","../src/render.js","../src/define.js","../src/clone-element.js","../src/get-host.js","../src/class.js","../node_modules/construct-style-sheets-polyfill/dist/adoptedStyleSheets.js","../src/options.js","../src/o.js","../src/omi.js"],"names":["cssToDom","css","node","document","createElement","textContent","camelCase","str","replace","$","$1","toUpperCase","Fragment","props","children","extend","obj","i","applyRef","ref","value","current","isArray","Object","prototype","toString","call","pathToArr","path","split","hyphenate","hyphenateRE","toLowerCase","capitalize","name","all","letter","s","getValByPath","forEach","prop","createStyleSheet","style","styleSheet","CSSStyleSheet","replaceSync","h","nodeName","attributes","lastSimple","child","simple","ignoreAttrs","arguments","length","stack","push","pop","String","p","key","options","vnode","isSameNodeType","splitText","mapping","hydrating","_componentConstructor","isNamedNode","extend$1","handler","extension","origin","arr","get","e","type","eventProxy","el","_listeners","addEventListener","createNode","removeNode","setAccessor","component","old","isSvg","cssText","IS_NON_DIMENSIONAL","test","innerHTML","__html","bindEvent","pureRemoveAttribute","removeAttribute","ns","removeAttributeNS","pureSetAttribute","setAttribute","className","useCapture","event","nameLower","eventProxy$1","ret","diffLevel","isSvgMode","parent","ownerSVGElement","dom","updateSelf","innerDiffNode","ele","idiff","index","item","one","recollectNodeTree","parentNode","appendChild","out","prevSvgMode","nodeValue","createTextNode","replaceChild","vnodeName","isForeignObject","prevProps","vchildren","firstChild","fc","a","nextSibling","constructor","is","noSlot","unsafeHTML","dangerouslySetInnerHTML","diffAttributes","min","len","childrenLen","vlen","j","keyedLen","originalChildren","keyed","vchild","_child","_component","__key","trim","isHydrating","c","f","unmountOnly","ATTR_KEY","removeChildren","oldClone","assign","receiveProps","isWeElement","attrs","ccName","indexOf","_ccName","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","ReferenceError","HTMLElement","WeElement","_classCallCheck$1","_possibleConstructorReturn$1","define","ctor","customElements","config","Ele","_WeElement","_temp","_this","_ret","_len","args","Array","this","apply","concat","compute","propTypes","defaultProps","isLightDom","storeHelpers","func","target","cloneElement","root","host","b","window","innerWidth","arg","classNames","classes","argType","inner","join","_Array$prototype$slic","slice","class","unshift","o","JSON","stringify","createRef","store","global","Math","Reflect","hasOwnProperty","BuiltInHTMLElement","construct","setPrototypeOf","Promise","resolve","then","bind","setTimeout","isObject","x","WeakMap","hasDefine","defineProperty","object","genId","checkInstance","methodName","prefix","rand","random","substring","entry","_id","globalThis","id","_HTMLElement","elementId","computed","isInstalled","connectedCallback","_this2","inject","provide","injection","injectKey","attrsToProps","beforeInstall","shadowRoot","install","afterInstall","attachShadow","mode","removeChild","adoptedStyleSheetsMap","has","styleSheets","map","default","set","beforeRender","adoptedStyleSheets","_customStyleContent","_customStyleElement","rootNode","installed","disconnectedCallback","uninstall","update","beforeUpdate","_willUpdate","rendered","render","updateProps","_this3","val","getAttribute","keys","types","matched","Number","substr","Omi","parse","console","warn","fire","data","CustomEvent","detail","updated","_contents","contents","importPattern","clearRules","sheet","cssRules","deleteRule","insertAllRules","from","to","rule","insertRule","isElementConnected","element","isConnected","contains","unique","filter","diff","arr1","arr2","getShadowRoot","closedShadowRootRegistry","isCSSStyleSheetInstance","proto$2","isPrototypeOf","nonConstructedProto","isNonConstructedStyleSheetInstance","addAdopterLocation","location","adopter","$adoptersByLocation","$locations","getAdopterByLocation","removeAdopterLocation","delete","_location","restyleAdopter","requestAnimationFrame","$basicStyleSheet","checkInvocationCorrectness","ConstructedStyleSheet","bootstrapper","body","getAssociatedLocation","locations","Location","attachAdoptedStyleSheetProperty","configurable","enumerable","sheets","traverseWebComponents","callback","iter","createNodeIterator","NodeFilter","SHOW_ELEMENT","foundNode","FILTER_ACCEPT","FILTER_REJECT","next","nextNode","isExistingAdopter","HTMLStyleElement","$uniqueSheets","some","getAdopterContainer","$element","Document","adopt","styleList","createDocumentFragment","observer","$observer","container","disconnect","insertBefore","observe","defaultObserverOptions","MutationObserver","mutations","mutation","hasShadyCss","addedNodes","Element","connect","removedNodes","ShadyCSS","nativeShadow","implementation","createHTMLDocument","cssStyleSheetMethods","NonConstructedStyleSheet","reject","_DOMException","self_1","ownerNode","rejectImports","method","basic","result","Symbol","hasInstance","childList","subtree","proto$1","readyState","locationType","every","oldUniqueSheets","uniqueSheets","proto","attach_1","init","documentLocation","Component","defineElement","tag","elements","getHost","rpx","extractClass","omi","unbind","version","module","exports"],"mappings":"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","file":"omi.min.js","sourcesContent":["/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * This shim allows elements written in, or compiled to, ES5 to work on native\n * implementations of Custom Elements v1. It sets new.target to the value of\n * this.constructor so that the native HTMLElement constructor can access the\n * current under-construction element's definition.\n */\n;(function() {\n if (\n // No Reflect, no classes, no need for shim because native custom elements\n // require ES2015 classes or Reflect.\n window.Reflect === undefined ||\n window.customElements === undefined ||\n // The webcomponentsjs custom elements polyfill doesn't require\n // ES2015-compatible construction (`super()` or `Reflect.construct`).\n window.customElements.hasOwnProperty('polyfillWrapFlushCallback')\n ) {\n return\n }\n const BuiltInHTMLElement = HTMLElement\n window.HTMLElement = function HTMLElement() {\n return Reflect.construct(BuiltInHTMLElement, [], this.constructor)\n }\n HTMLElement.prototype = BuiltInHTMLElement.prototype\n HTMLElement.prototype.constructor = HTMLElement\n Object.setPrototypeOf(HTMLElement, BuiltInHTMLElement)\n})()\n\nexport function cssToDom(css) {\n const node = document.createElement('style')\n node.textContent = css\n return node\n}\n\nexport function camelCase(str) {\n return str.replace(/-(\\w)/g, ($, $1) => {\n return $1.toUpperCase()\n })\n}\n\nexport function Fragment(props) {\n return props.children\n}\n\nexport function extend(obj, props) {\n for (let i in props) obj[i] = props[i]\n return obj\n}\n\n/** Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} [ref=null]\n * @param {any} [value]\n */\nexport function applyRef(ref, value) {\n if (ref != null) {\n if (typeof ref == 'function') ref(value)\n else ref.current = value\n }\n}\n\n/**\n * Call a function asynchronously, as soon as possible. Makes\n * use of HTML Promise to schedule the callback if available,\n * otherwise falling back to `setTimeout` (mainly for IE<11).\n * @type {(callback: function) => void}\n */\nexport const defer =\n typeof Promise == 'function'\n ? Promise.resolve().then.bind(Promise.resolve())\n : setTimeout\n\nexport function isArray(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]'\n}\n\nexport function pathToArr(path) {\n if (typeof path !== 'string' || !path) return []\n // return path.split(/\\.|\\[|\\]/).filter(name => !!name)\n return path\n .replace(/]/g, '')\n .replace(/\\[/g, '.')\n .split('.')\n}\n\nconst hyphenateRE = /\\B([A-Z])/g\nexport function hyphenate(str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n}\n\nexport function capitalize(name) {\n return name\n .replace(/\\-(\\w)/g, function(all, letter) {\n return letter.toUpperCase()\n })\n .replace(/^\\S/, s => s.toUpperCase())\n}\n\nexport function getValByPath(path, current) {\n const arr = pathToArr(path)\n arr.forEach(prop => {\n current = current[prop]\n })\n return current\n}\n\nexport function removeItem(item, arr) {\n if (!arr) return\n for (let i = 0, len = arr.length; i < len; i++) {\n if (arr[i] === item) {\n arr.splice(i, 1)\n break\n }\n }\n}\n\nexport function createStyleSheet(style) {\n const styleSheet = new CSSStyleSheet()\n styleSheet.replaceSync(style)\n return styleSheet\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\n // jsx 嵌套的元素自动忽略 attrs\n if(attributes) {\n attributes.ignoreAttrs = true\n } else {\n attributes = { ignoreAttrs: true }\n }\n for (i = arguments.length; i-- > 2; ) {\n stack.push(arguments[i])\n }\n if (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,\n key: attributes.key\n }\n\n // if a \"vnode hook\" is defined, pass every created VNode to it\n if (options.vnode !== undefined) options.vnode(p)\n\n return p\n}\n","import { extend } from '../util'\nimport options from '../options'\n/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node DOM Node to compare\n * @param {VNode} vnode Virtual DOM node to compare\n * @param {boolean} [hydrating=false] If true, ignores component constructors when comparing.\n * @private\n */\nexport function isSameNodeType(node, vnode, hydrating) {\n if (typeof vnode === 'string' || typeof vnode === 'number') {\n return node.splitText !== undefined\n }\n if (typeof vnode.nodeName === 'string') {\n return !node._componentConstructor && isNamedNode(node, vnode.nodeName)\n } else if (typeof vnode.nodeName === 'function') {\n return options.mapping[node.nodeName.toLowerCase()] === vnode.nodeName\n }\n return hydrating || node._componentConstructor === vnode.nodeName\n}\n\n/**\n * Check if an Element has a given nodeName, case-insensitively.\n *\n * @param {Element} node A DOM Element to inspect the name of.\n * @param {String} nodeName Unnormalized name to compare against.\n */\nexport function isNamedNode(node, nodeName) {\n return (\n node.normalizedNodeName === nodeName ||\n node.nodeName.toLowerCase() === nodeName.toLowerCase()\n )\n}\n\n/**\n * Reconstruct Component-style `props` from a VNode.\n * Ensures default/fallback values from `defaultProps`:\n * Own-properties of `defaultProps` not present in `vnode.attributes` are added.\n *\n * @param {VNode} vnode\n * @returns {Object} props\n */\nexport function getNodeProps(vnode) {\n let props = extend({}, vnode.attributes)\n props.children = vnode.children\n\n let defaultProps = vnode.nodeName.defaultProps\n if (defaultProps !== undefined) {\n for (let i in defaultProps) {\n if (props[i] === undefined) {\n props[i] = defaultProps[i]\n }\n }\n }\n\n return props\n}\n","import { pathToArr } from './util'\n\nexport const extension = {}\n\nexport function extend(name, handler) {\n extension['o-' + name] = handler\n}\n\nexport function set(origin, path, value) {\n const arr = pathToArr(path)\n let current = origin\n for (let i = 0, len = arr.length; i < len; i++) {\n if (i === len - 1) {\n current[arr[i]] = value\n } else {\n current = current[arr[i]]\n }\n }\n}\n\nexport function get(origin, path) {\n const arr = pathToArr(path)\n let current = origin\n for (let i = 0, len = arr.length; i < len; i++) {\n current = current[arr[i]]\n }\n\n return current\n}\n\nfunction eventProxy(e) {\n return this._listeners[e.type](e)\n}\n\nexport function bind(el, type, handler) {\n el._listeners = el._listeners || {}\n el._listeners[type] = handler\n el.addEventListener(type, eventProxy)\n}\n\nexport function unbind(el, type) {\n el.removeEventListener(type, eventProxy)\n}\n","import { IS_NON_DIMENSIONAL } from '../constants'\nimport { applyRef } from '../util'\nimport options from '../options'\nimport { extension } from '../extend'\n\n/**\n * Create an element with the given nodeName.\n * @param {string} nodeName The DOM node to create\n * @param {boolean} [isSvg=false] If `true`, creates an element within the SVG\n * namespace.\n * @returns {Element} The created DOM node\n */\nexport function createNode(nodeName, isSvg, options) {\n /** @type {Element} */\n let node = isSvg\n ? document.createElementNS('http://www.w3.org/2000/svg', nodeName)\n : document.createElement(nodeName, options)\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' || name === 'ignoreAttrs') {\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.html || 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\nlet isForeignObject = false\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 // 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 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 prevForeignObject = isForeignObject\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 isForeignObject = vnodeName === 'foreignObject'\n isSvgMode =\n vnodeName === 'svg'\n ? true\n : isForeignObject\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 // foreignObject 自身 isSvgMode 设置成 true,内部设置成 false\n out = createNode(vnodeName, isForeignObject || 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.unsafeHTML != null || 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 isForeignObject = prevForeignObject\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 isForeignObject || 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 isForeignObject || 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], isForeignObject || 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","/*!\n * weakmap-polyfill v2.0.4 - ECMAScript6 WeakMap polyfill\n * https://github.com/polygonplanet/weakmap-polyfill\n * Copyright (c) 2015-2021 polygonplanet \n * @license MIT\n */\n\n(function(self) {\n 'use strict';\n\n if (self.WeakMap) {\n return;\n }\n\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var hasDefine = Object.defineProperty && (function() {\n try {\n // Avoid IE8's broken Object.defineProperty\n return Object.defineProperty({}, 'x', { value: 1 }).x === 1;\n } catch (e) {}\n })();\n\n var defineProperty = function(object, name, value) {\n if (hasDefine) {\n Object.defineProperty(object, name, {\n configurable: true,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n };\n\n self.WeakMap = (function() {\n\n // ECMA-262 23.3 WeakMap Objects\n function WeakMap() {\n if (this === void 0) {\n throw new TypeError(\"Constructor WeakMap requires 'new'\");\n }\n\n defineProperty(this, '_id', genId('_WeakMap'));\n\n // ECMA-262 23.3.1.1 WeakMap([iterable])\n if (arguments.length > 0) {\n // Currently, WeakMap `iterable` argument is not supported\n throw new TypeError('WeakMap iterable is not supported');\n }\n }\n\n // ECMA-262 23.3.3.2 WeakMap.prototype.delete(key)\n defineProperty(WeakMap.prototype, 'delete', function(key) {\n checkInstance(this, 'delete');\n\n if (!isObject(key)) {\n return false;\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n delete key[this._id];\n return true;\n }\n\n return false;\n });\n\n // ECMA-262 23.3.3.3 WeakMap.prototype.get(key)\n defineProperty(WeakMap.prototype, 'get', function(key) {\n checkInstance(this, 'get');\n\n if (!isObject(key)) {\n return void 0;\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n return entry[1];\n }\n\n return void 0;\n });\n\n // ECMA-262 23.3.3.4 WeakMap.prototype.has(key)\n defineProperty(WeakMap.prototype, 'has', function(key) {\n checkInstance(this, 'has');\n\n if (!isObject(key)) {\n return false;\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n return true;\n }\n\n return false;\n });\n\n // ECMA-262 23.3.3.5 WeakMap.prototype.set(key, value)\n defineProperty(WeakMap.prototype, 'set', function(key, value) {\n checkInstance(this, 'set');\n\n if (!isObject(key)) {\n throw new TypeError('Invalid value used as weak map key');\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n entry[1] = value;\n return this;\n }\n\n defineProperty(key, this._id, [key, value]);\n return this;\n });\n\n function checkInstance(x, methodName) {\n if (!isObject(x) || !hasOwnProperty.call(x, '_id')) {\n throw new TypeError(\n methodName + ' method called on incompatible receiver ' +\n typeof x\n );\n }\n }\n\n function genId(prefix) {\n return prefix + '_' + rand() + '.' + rand();\n }\n\n function rand() {\n return Math.random().toString().substring(2);\n }\n\n defineProperty(WeakMap, '_polyfill', true);\n return WeakMap;\n })();\n\n function isObject(x) {\n return Object(x) === x;\n }\n\n})(\n typeof globalThis !== 'undefined' ? globalThis :\n typeof self !== 'undefined' ? self :\n typeof window !== 'undefined' ? window :\n typeof global !== 'undefined' ? global : this\n);\n","import {\n cssToDom,\n isArray,\n hyphenate,\n getValByPath,\n capitalize,\n createStyleSheet\n} from './util'\nimport { diff } from './vdom/diff'\nimport options from './options'\nimport 'weakmap-polyfill'\n\nlet id = 0\n\nconst adoptedStyleSheetsMap = new WeakMap()\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 (!adoptedStyleSheetsMap.has(this.constructor)) {\n const css = this.constructor.css\n if (css) {\n let styleSheets = []\n if (typeof css === 'string') {\n styleSheets = [createStyleSheet(css)]\n } else if (isArray(css)) {\n styleSheets = css.map(styleSheet => {\n if (typeof styleSheet === 'string') {\n return createStyleSheet(styleSheet)\n } else if (\n styleSheet.default &&\n typeof styleSheet.default === 'string'\n ) {\n return createStyleSheet(styleSheet.default)\n } else {\n return styleSheet\n }\n })\n } else if (css.default && typeof css.default === 'string') {\n styleSheets = [createStyleSheet(css.default)]\n } else {\n styleSheets = [css]\n }\n shadowRoot.adoptedStyleSheets = styleSheets\n adoptedStyleSheetsMap.set(this.constructor, styleSheets)\n }\n } else {\n shadowRoot.adoptedStyleSheets = adoptedStyleSheetsMap.get(\n this.constructor\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(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()\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 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.update()\n }\n\n updateSelf() {\n this.update(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() {\n if (this.props.ignoreAttrs) 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 types = isArray(attrs[key]) ? attrs[key] : [attrs[key]]\n const val = ele.getAttribute(hyphenate(key))\n if (val !== null) {\n for (let i = 0; i < types.length; i++) {\n const type = types[i]\n let matched = false\n switch (type) {\n case String:\n ele.props[key] = val\n matched = true\n break\n case Number:\n ele.props[key] = Number(val)\n matched = true\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 matched = true\n break\n case Array:\n case Object:\n if (val[0] === ':') {\n ele.props[key] = getValByPath(val.substr(1), Omi.$)\n } else {\n try {\n ele.props[key] = JSON.parse(val)\n } catch (e) {\n console.warn(\n `The ${key} object prop does not comply with the JSON specification, the incorrect string is [${val}].`\n )\n }\n }\n matched = true\n break\n }\n if (matched) break\n }\n } else {\n if (\n ele.constructor.defaultProps &&\n ele.constructor.defaultProps.hasOwnProperty(key)\n ) {\n ele.props[key] = ele.constructor.defaultProps[key]\n } else {\n ele.props[key] = null\n }\n }\n })\n }\n\n fire(name, data) {\n const handler = this.props[`on${capitalize(name)}`]\n if (handler) {\n handler(\n new CustomEvent(name, {\n detail: data\n })\n )\n } else {\n this.dispatchEvent(\n new CustomEvent(name, {\n detail: data\n })\n )\n }\n }\n\n beforeInstall() {}\n\n install() {}\n\n afterInstall() {}\n\n installed() {}\n\n uninstall() {}\n\n beforeUpdate() {}\n\n updated() {}\n\n beforeRender() {}\n\n rendered() {}\n\n receiveProps() {}\n}\n","import { diff } from './vdom/diff'\n\nexport function render(vnode, parent, store) {\n parent = typeof parent === 'string' ? document.querySelector(parent) : parent\n if (store) {\n parent.store = store\n }\n return diff(null, vnode, parent, false)\n}\n","import WeElement from './we-element'\nimport options from './options'\n\nconst storeHelpers = ['use', 'useSelf']\n\nexport function define(name, ctor, config) {\n if (customElements.get(name)) {\n return\n }\n if (options.mapping[name]) {\n return\n }\n if (ctor.is === 'WeElement') {\n customElements.define(name, ctor)\n options.mapping[name] = ctor\n } else {\n if (typeof config === 'string') {\n config = { css: config }\n } else {\n config = config || {}\n }\n\n class Ele extends WeElement {\n static css = config.css\n\n static propTypes = config.propTypes\n\n static defaultProps = config.defaultProps\n\n static isLightDom = config.isLightDom\n\n compute = config.compute\n\n render() {\n return ctor.call(this, this)\n }\n }\n\n for (let key in config) {\n if (typeof config[key] === 'function') {\n Ele.prototype[key] = function() {\n return config[key].apply(this, arguments)\n }\n }\n }\n\n storeHelpers.forEach(func => {\n if (config[func] && config[func] !== 'function') {\n Ele.prototype[func] = function() {\n return config[func]\n }\n }\n })\n\n customElements.define(name, Ele)\n options.mapping[name] = Ele\n }\n}\n","import { extend } from './util'\nimport { h } from './h'\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {VNode} vnode The virtual DOM element to clone\n * @param {Object} props Attributes/props to add when cloning\n * @param {VNode} rest Any additional arguments will be used as replacement children.\n */\nexport function cloneElement(vnode, props) {\n return h(\n vnode.nodeName,\n extend(extend({}, vnode.attributes), props),\n arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children\n )\n}\n","export function getHost(ele) {\n let root = ele.getRootNode()\n return root && root.host\n}\n","/**\n * classNames based on https://github.com/JedWatson/classnames\n * by Jed Watson\n * Licensed under the MIT License\n * https://github.com/JedWatson/classnames/blob/master/LICENSE\n * modified by dntzhang\n */\n\nvar hasOwn = {}.hasOwnProperty\n\nexport function classNames() {\n var classes = []\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i]\n if (!arg) continue\n\n var argType = typeof arg\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg)\n } else if (Array.isArray(arg) && arg.length) {\n var inner = classNames.apply(null, arg)\n if (inner) {\n classes.push(inner)\n }\n } else if (argType === 'object') {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key)\n }\n }\n }\n }\n\n return classes.join(' ')\n}\n\nexport function extractClass() {\n const [props, ...args] = Array.prototype.slice.call(arguments, 0)\n if (props.class) {\n args.unshift(props.class)\n delete props.class\n } else if (props.className) {\n args.unshift(props.className)\n delete props.className\n }\n if (args.length > 0) {\n return { class: classNames.apply(null, args) }\n }\n}\n","(function () {\n 'use strict';\n\n if (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","function getGlobal() {\n if (\n typeof global !== 'object' ||\n !global ||\n global.Math !== Math ||\n global.Array !== Array\n ) {\n return (\n self ||\n window ||\n global ||\n (function() {\n return this\n })()\n )\n }\n return global\n}\n\n/** Global options\n * @public\n * @namespace options {Object}\n */\nexport default {\n store: null,\n root: getGlobal(),\n mapping: {}\n}\n","export function o(obj) {\n return JSON.stringify(obj)\n}\n","import { h, h as createElement } from './h'\nimport options from './options'\nimport WeElement from './we-element'\nimport { render } from './render'\nimport { define } from './define'\nimport { tag } from './tag'\nimport { cloneElement } from './clone-element'\nimport { getHost } from './get-host'\nimport { rpx } from './rpx'\nimport { classNames, extractClass } from './class'\nimport { o } from './o'\nimport { extend, get, set, bind, unbind } from './extend'\nimport { Fragment } from './util'\nimport 'construct-style-sheets-polyfill'\n\nh.f = Fragment\n\nfunction createRef() {\n return {}\n}\n\nconst $ = {}\nconst Component = WeElement\nconst defineElement = define\nconst elements = options.mapping\n\nconst omi = {\n tag,\n WeElement,\n Component,\n render,\n h,\n createElement,\n options,\n define,\n cloneElement,\n getHost,\n rpx,\n defineElement,\n classNames,\n extractClass,\n createRef,\n o,\n elements,\n $,\n extend,\n get,\n set,\n bind,\n unbind\n}\n\noptions.root.Omi = omi\noptions.root.omi = omi\noptions.root.Omi.version = '6.25.20'\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"]} \ No newline at end of file +{"version":3,"sources":["../src/util.js","../src/h.js","../src/vdom/index.js","../src/extend.js","../src/dom/index.js","../src/vdom/diff.js","../node_modules/weakmap-polyfill/weakmap-polyfill.js","../src/we-element.js","../src/render.js","../src/define.js","../src/clone-element.js","../src/get-host.js","../src/class.js","../node_modules/construct-style-sheets-polyfill/dist/adoptedStyleSheets.js","../src/options.js","../src/constants.js","../src/o.js","../src/omi.js"],"names":["cssToDom","css","node","document","createElement","textContent","camelCase","str","replace","$","$1","toUpperCase","Fragment","props","children","extend","obj","i","applyRef","ref","value","current","isArray","Object","prototype","toString","call","pathToArr","path","split","hyphenate","hyphenateRE","toLowerCase","capitalize","name","all","letter","s","getValByPath","forEach","prop","createStyleSheet","style","styleSheet","CSSStyleSheet","replaceSync","h","nodeName","attributes","lastSimple","child","simple","ignoreAttrs","arguments","length","stack","push","pop","String","p","key","options","vnode","isSameNodeType","splitText","mapping","hydrating","_componentConstructor","isNamedNode","extend$1","handler","extension","origin","arr","get","e","type","eventProxy","el","_listeners","addEventListener","createNode","removeNode","setAccessor","component","old","isSvg","cssText","IS_NON_DIMENSIONAL","test","innerHTML","__html","bindEvent","pureRemoveAttribute","removeAttribute","ns","removeAttributeNS","pureSetAttribute","setAttribute","className","useCapture","event","nameLower","eventProxy$1","ret","diffLevel","isSvgMode","parent","ownerSVGElement","dom","updateSelf","innerDiffNode","ele","idiff","index","item","one","recollectNodeTree","parentNode","appendChild","out","prevSvgMode","nodeValue","createTextNode","replaceChild","vnodeName","isForeignObject","prevProps","vchildren","firstChild","fc","a","nextSibling","constructor","is","noSlot","unsafeHTML","dangerouslySetInnerHTML","diffAttributes","min","len","childrenLen","vlen","j","keyedLen","originalChildren","keyed","vchild","_child","_component","__key","trim","isHydrating","c","f","unmountOnly","ATTR_KEY","removeChildren","oldClone","assign","receiveProps","isWeElement","attrs","ccName","indexOf","_ccName","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","ReferenceError","HTMLElement","WeElement","_classCallCheck$1","_possibleConstructorReturn$1","define","ctor","customElements","config","Ele","_WeElement","_temp","_this","_ret","_len","args","Array","this","apply","concat","compute","propTypes","defaultProps","isLightDom","storeHelpers","func","target","cloneElement","root","host","b","window","innerWidth","arg","classNames","classes","argType","inner","join","_Array$prototype$slic","slice","class","unshift","o","JSON","stringify","createRef","store","global","Math","Reflect","hasOwnProperty","BuiltInHTMLElement","construct","setPrototypeOf","Promise","resolve","then","bind","setTimeout","DOM_EVENT_MAP","oncompositionend","oncompositionupdate","onanimationcancel","oncompositionstart","onfocusin","onfocusout","onscrollend","ontouchmove","isObject","x","WeakMap","hasDefine","defineProperty","object","genId","checkInstance","methodName","prefix","rand","random","substring","entry","_id","globalThis","id","_HTMLElement","elementId","computed","isInstalled","connectedCallback","_this2","inject","provide","injection","injectKey","attrsToProps","beforeInstall","shadowRoot","install","afterInstall","attachShadow","mode","removeChild","adoptedStyleSheetsMap","has","styleSheets","map","default","set","beforeRender","adoptedStyleSheets","_customStyleContent","_customStyleElement","rootNode","installed","disconnectedCallback","uninstall","update","beforeUpdate","_willUpdate","rendered","render","updateProps","_this3","val","getAttribute","keys","types","matched","Number","substr","Omi","parse","console","warn","fire","data","CustomEvent","detail","updated","_contents","contents","importPattern","clearRules","sheet","cssRules","deleteRule","insertAllRules","from","to","rule","insertRule","isElementConnected","element","isConnected","contains","unique","filter","diff","arr1","arr2","getShadowRoot","closedShadowRootRegistry","isCSSStyleSheetInstance","proto$2","isPrototypeOf","nonConstructedProto","isNonConstructedStyleSheetInstance","addAdopterLocation","location","adopter","$adoptersByLocation","$locations","getAdopterByLocation","removeAdopterLocation","delete","_location","restyleAdopter","requestAnimationFrame","$basicStyleSheet","checkInvocationCorrectness","ConstructedStyleSheet","bootstrapper","body","getAssociatedLocation","locations","Location","attachAdoptedStyleSheetProperty","configurable","enumerable","sheets","traverseWebComponents","callback","iter","createNodeIterator","NodeFilter","SHOW_ELEMENT","foundNode","FILTER_ACCEPT","FILTER_REJECT","next","nextNode","isExistingAdopter","HTMLStyleElement","$uniqueSheets","some","getAdopterContainer","$element","Document","adopt","styleList","createDocumentFragment","observer","$observer","container","disconnect","insertBefore","observe","defaultObserverOptions","MutationObserver","mutations","mutation","hasShadyCss","addedNodes","Element","connect","removedNodes","ShadyCSS","nativeShadow","implementation","createHTMLDocument","cssStyleSheetMethods","NonConstructedStyleSheet","reject","_DOMException","self_1","ownerNode","rejectImports","method","basic","result","Symbol","hasInstance","childList","subtree","proto$1","readyState","locationType","every","oldUniqueSheets","uniqueSheets","proto","attach_1","init","documentLocation","Component","defineElement","tag","elements","getHost","rpx","extractClass","omi","unbind","version","module","exports"],"mappings":"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","file":"omi.min.js","sourcesContent":["/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * This shim allows elements written in, or compiled to, ES5 to work on native\n * implementations of Custom Elements v1. It sets new.target to the value of\n * this.constructor so that the native HTMLElement constructor can access the\n * current under-construction element's definition.\n */\n;(function() {\n if (\n // No Reflect, no classes, no need for shim because native custom elements\n // require ES2015 classes or Reflect.\n window.Reflect === undefined ||\n window.customElements === undefined ||\n // The webcomponentsjs custom elements polyfill doesn't require\n // ES2015-compatible construction (`super()` or `Reflect.construct`).\n window.customElements.hasOwnProperty('polyfillWrapFlushCallback')\n ) {\n return\n }\n const BuiltInHTMLElement = HTMLElement\n window.HTMLElement = function HTMLElement() {\n return Reflect.construct(BuiltInHTMLElement, [], this.constructor)\n }\n HTMLElement.prototype = BuiltInHTMLElement.prototype\n HTMLElement.prototype.constructor = HTMLElement\n Object.setPrototypeOf(HTMLElement, BuiltInHTMLElement)\n})()\n\nexport function cssToDom(css) {\n const node = document.createElement('style')\n node.textContent = css\n return node\n}\n\nexport function camelCase(str) {\n return str.replace(/-(\\w)/g, ($, $1) => {\n return $1.toUpperCase()\n })\n}\n\nexport function Fragment(props) {\n return props.children\n}\n\nexport function extend(obj, props) {\n for (let i in props) obj[i] = props[i]\n return obj\n}\n\n/** Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} [ref=null]\n * @param {any} [value]\n */\nexport function applyRef(ref, value) {\n if (ref != null) {\n if (typeof ref == 'function') ref(value)\n else ref.current = value\n }\n}\n\n/**\n * Call a function asynchronously, as soon as possible. Makes\n * use of HTML Promise to schedule the callback if available,\n * otherwise falling back to `setTimeout` (mainly for IE<11).\n * @type {(callback: function) => void}\n */\nexport const defer =\n typeof Promise == 'function'\n ? Promise.resolve().then.bind(Promise.resolve())\n : setTimeout\n\nexport function isArray(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]'\n}\n\nexport function pathToArr(path) {\n if (typeof path !== 'string' || !path) return []\n // return path.split(/\\.|\\[|\\]/).filter(name => !!name)\n return path\n .replace(/]/g, '')\n .replace(/\\[/g, '.')\n .split('.')\n}\n\nconst hyphenateRE = /\\B([A-Z])/g\nexport function hyphenate(str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n}\n\nexport function capitalize(name) {\n return name\n .replace(/\\-(\\w)/g, function(all, letter) {\n return letter.toUpperCase()\n })\n .replace(/^\\S/, s => s.toUpperCase())\n}\n\nexport function getValByPath(path, current) {\n const arr = pathToArr(path)\n arr.forEach(prop => {\n current = current[prop]\n })\n return current\n}\n\nexport function removeItem(item, arr) {\n if (!arr) return\n for (let i = 0, len = arr.length; i < len; i++) {\n if (arr[i] === item) {\n arr.splice(i, 1)\n break\n }\n }\n}\n\nexport function createStyleSheet(style) {\n const styleSheet = new CSSStyleSheet()\n styleSheet.replaceSync(style)\n return styleSheet\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\n // jsx 嵌套的元素自动忽略 attrs\n if(attributes) {\n attributes.ignoreAttrs = true\n } else {\n attributes = { ignoreAttrs: true }\n }\n for (i = arguments.length; i-- > 2; ) {\n stack.push(arguments[i])\n }\n if (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,\n key: attributes.key\n }\n\n // if a \"vnode hook\" is defined, pass every created VNode to it\n if (options.vnode !== undefined) options.vnode(p)\n\n return p\n}\n","import { extend } from '../util'\nimport options from '../options'\n/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node DOM Node to compare\n * @param {VNode} vnode Virtual DOM node to compare\n * @param {boolean} [hydrating=false] If true, ignores component constructors when comparing.\n * @private\n */\nexport function isSameNodeType(node, vnode, hydrating) {\n if (typeof vnode === 'string' || typeof vnode === 'number') {\n return node.splitText !== undefined\n }\n if (typeof vnode.nodeName === 'string') {\n return !node._componentConstructor && isNamedNode(node, vnode.nodeName)\n } else if (typeof vnode.nodeName === 'function') {\n return options.mapping[node.nodeName.toLowerCase()] === vnode.nodeName\n }\n return hydrating || node._componentConstructor === vnode.nodeName\n}\n\n/**\n * Check if an Element has a given nodeName, case-insensitively.\n *\n * @param {Element} node A DOM Element to inspect the name of.\n * @param {String} nodeName Unnormalized name to compare against.\n */\nexport function isNamedNode(node, nodeName) {\n return (\n node.normalizedNodeName === nodeName ||\n node.nodeName.toLowerCase() === nodeName.toLowerCase()\n )\n}\n\n/**\n * Reconstruct Component-style `props` from a VNode.\n * Ensures default/fallback values from `defaultProps`:\n * Own-properties of `defaultProps` not present in `vnode.attributes` are added.\n *\n * @param {VNode} vnode\n * @returns {Object} props\n */\nexport function getNodeProps(vnode) {\n let props = extend({}, vnode.attributes)\n props.children = vnode.children\n\n let defaultProps = vnode.nodeName.defaultProps\n if (defaultProps !== undefined) {\n for (let i in defaultProps) {\n if (props[i] === undefined) {\n props[i] = defaultProps[i]\n }\n }\n }\n\n return props\n}\n","import { pathToArr } from './util'\n\nexport const extension = {}\n\nexport function extend(name, handler) {\n extension['o-' + name] = handler\n}\n\nexport function set(origin, path, value) {\n const arr = pathToArr(path)\n let current = origin\n for (let i = 0, len = arr.length; i < len; i++) {\n if (i === len - 1) {\n current[arr[i]] = value\n } else {\n current = current[arr[i]]\n }\n }\n}\n\nexport function get(origin, path) {\n const arr = pathToArr(path)\n let current = origin\n for (let i = 0, len = arr.length; i < len; i++) {\n current = current[arr[i]]\n }\n\n return current\n}\n\nfunction eventProxy(e) {\n return this._listeners[e.type](e)\n}\n\nexport function bind(el, type, handler) {\n el._listeners = el._listeners || {}\n el._listeners[type] = handler\n el.addEventListener(type, eventProxy)\n}\n\nexport function unbind(el, type) {\n el.removeEventListener(type, eventProxy)\n}\n","import { IS_NON_DIMENSIONAL, DOM_EVENT_MAP } 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, options) {\n /** @type {Element} */\n let node = isSvg\n ? document.createElementNS('http://www.w3.org/2000/svg', nodeName)\n : document.createElement(nodeName, options)\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' || name === 'ignoreAttrs') {\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.html || 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 = ((DOM_EVENT_MAP[nameLower] || 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\nlet isForeignObject = false\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 // 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 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 prevForeignObject = isForeignObject\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 isForeignObject = vnodeName === 'foreignObject'\n isSvgMode =\n vnodeName === 'svg'\n ? true\n : isForeignObject\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 // foreignObject 自身 isSvgMode 设置成 true,内部设置成 false\n out = createNode(vnodeName, isForeignObject || 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.unsafeHTML != null || 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 isForeignObject = prevForeignObject\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 isForeignObject || 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 isForeignObject || 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], isForeignObject || 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","/*!\n * weakmap-polyfill v2.0.4 - ECMAScript6 WeakMap polyfill\n * https://github.com/polygonplanet/weakmap-polyfill\n * Copyright (c) 2015-2021 polygonplanet \n * @license MIT\n */\n\n(function(self) {\n 'use strict';\n\n if (self.WeakMap) {\n return;\n }\n\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var hasDefine = Object.defineProperty && (function() {\n try {\n // Avoid IE8's broken Object.defineProperty\n return Object.defineProperty({}, 'x', { value: 1 }).x === 1;\n } catch (e) {}\n })();\n\n var defineProperty = function(object, name, value) {\n if (hasDefine) {\n Object.defineProperty(object, name, {\n configurable: true,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n };\n\n self.WeakMap = (function() {\n\n // ECMA-262 23.3 WeakMap Objects\n function WeakMap() {\n if (this === void 0) {\n throw new TypeError(\"Constructor WeakMap requires 'new'\");\n }\n\n defineProperty(this, '_id', genId('_WeakMap'));\n\n // ECMA-262 23.3.1.1 WeakMap([iterable])\n if (arguments.length > 0) {\n // Currently, WeakMap `iterable` argument is not supported\n throw new TypeError('WeakMap iterable is not supported');\n }\n }\n\n // ECMA-262 23.3.3.2 WeakMap.prototype.delete(key)\n defineProperty(WeakMap.prototype, 'delete', function(key) {\n checkInstance(this, 'delete');\n\n if (!isObject(key)) {\n return false;\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n delete key[this._id];\n return true;\n }\n\n return false;\n });\n\n // ECMA-262 23.3.3.3 WeakMap.prototype.get(key)\n defineProperty(WeakMap.prototype, 'get', function(key) {\n checkInstance(this, 'get');\n\n if (!isObject(key)) {\n return void 0;\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n return entry[1];\n }\n\n return void 0;\n });\n\n // ECMA-262 23.3.3.4 WeakMap.prototype.has(key)\n defineProperty(WeakMap.prototype, 'has', function(key) {\n checkInstance(this, 'has');\n\n if (!isObject(key)) {\n return false;\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n return true;\n }\n\n return false;\n });\n\n // ECMA-262 23.3.3.5 WeakMap.prototype.set(key, value)\n defineProperty(WeakMap.prototype, 'set', function(key, value) {\n checkInstance(this, 'set');\n\n if (!isObject(key)) {\n throw new TypeError('Invalid value used as weak map key');\n }\n\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n entry[1] = value;\n return this;\n }\n\n defineProperty(key, this._id, [key, value]);\n return this;\n });\n\n function checkInstance(x, methodName) {\n if (!isObject(x) || !hasOwnProperty.call(x, '_id')) {\n throw new TypeError(\n methodName + ' method called on incompatible receiver ' +\n typeof x\n );\n }\n }\n\n function genId(prefix) {\n return prefix + '_' + rand() + '.' + rand();\n }\n\n function rand() {\n return Math.random().toString().substring(2);\n }\n\n defineProperty(WeakMap, '_polyfill', true);\n return WeakMap;\n })();\n\n function isObject(x) {\n return Object(x) === x;\n }\n\n})(\n typeof globalThis !== 'undefined' ? globalThis :\n typeof self !== 'undefined' ? self :\n typeof window !== 'undefined' ? window :\n typeof global !== 'undefined' ? global : this\n);\n","import {\n cssToDom,\n isArray,\n hyphenate,\n getValByPath,\n capitalize,\n createStyleSheet\n} from './util'\nimport { diff } from './vdom/diff'\nimport options from './options'\nimport 'weakmap-polyfill'\n\nlet id = 0\n\nconst adoptedStyleSheetsMap = new WeakMap()\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 (!adoptedStyleSheetsMap.has(this.constructor)) {\n const css = this.constructor.css\n if (css) {\n let styleSheets = []\n if (typeof css === 'string') {\n styleSheets = [createStyleSheet(css)]\n } else if (isArray(css)) {\n styleSheets = css.map(styleSheet => {\n if (typeof styleSheet === 'string') {\n return createStyleSheet(styleSheet)\n } else if (\n styleSheet.default &&\n typeof styleSheet.default === 'string'\n ) {\n return createStyleSheet(styleSheet.default)\n } else {\n return styleSheet\n }\n })\n } else if (css.default && typeof css.default === 'string') {\n styleSheets = [createStyleSheet(css.default)]\n } else {\n styleSheets = [css]\n }\n shadowRoot.adoptedStyleSheets = styleSheets\n adoptedStyleSheetsMap.set(this.constructor, styleSheets)\n }\n } else {\n shadowRoot.adoptedStyleSheets = adoptedStyleSheetsMap.get(\n this.constructor\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(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()\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 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.update()\n }\n\n updateSelf() {\n this.update(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() {\n if (this.props.ignoreAttrs) 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 types = isArray(attrs[key]) ? attrs[key] : [attrs[key]]\n const val = ele.getAttribute(hyphenate(key))\n if (val !== null) {\n for (let i = 0; i < types.length; i++) {\n const type = types[i]\n let matched = false\n switch (type) {\n case String:\n ele.props[key] = val\n matched = true\n break\n case Number:\n ele.props[key] = Number(val)\n matched = true\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 matched = true\n break\n case Array:\n case Object:\n if (val[0] === ':') {\n ele.props[key] = getValByPath(val.substr(1), Omi.$)\n } else {\n try {\n ele.props[key] = JSON.parse(val)\n } catch (e) {\n console.warn(\n `The ${key} object prop does not comply with the JSON specification, the incorrect string is [${val}].`\n )\n }\n }\n matched = true\n break\n }\n if (matched) break\n }\n } else {\n if (\n ele.constructor.defaultProps &&\n ele.constructor.defaultProps.hasOwnProperty(key)\n ) {\n ele.props[key] = ele.constructor.defaultProps[key]\n } else {\n ele.props[key] = null\n }\n }\n })\n }\n\n fire(name, data) {\n const handler = this.props[`on${capitalize(name)}`]\n if (handler) {\n handler(\n new CustomEvent(name, {\n detail: data\n })\n )\n } else {\n this.dispatchEvent(\n new CustomEvent(name, {\n detail: data\n })\n )\n }\n }\n\n beforeInstall() {}\n\n install() {}\n\n afterInstall() {}\n\n installed() {}\n\n uninstall() {}\n\n beforeUpdate() {}\n\n updated() {}\n\n beforeRender() {}\n\n rendered() {}\n\n receiveProps() {}\n}\n","import { diff } from './vdom/diff'\n\nexport function render(vnode, parent, store) {\n parent = typeof parent === 'string' ? document.querySelector(parent) : parent\n if (store) {\n parent.store = store\n }\n return diff(null, vnode, parent, false)\n}\n","import WeElement from './we-element'\nimport options from './options'\n\nconst storeHelpers = ['use', 'useSelf']\n\nexport function define(name, ctor, config) {\n if (customElements.get(name)) {\n return\n }\n if (options.mapping[name]) {\n return\n }\n if (ctor.is === 'WeElement') {\n customElements.define(name, ctor)\n options.mapping[name] = ctor\n } else {\n if (typeof config === 'string') {\n config = { css: config }\n } else {\n config = config || {}\n }\n\n class Ele extends WeElement {\n static css = config.css\n\n static propTypes = config.propTypes\n\n static defaultProps = config.defaultProps\n\n static isLightDom = config.isLightDom\n\n compute = config.compute\n\n render() {\n return ctor.call(this, this)\n }\n }\n\n for (let key in config) {\n if (typeof config[key] === 'function') {\n Ele.prototype[key] = function() {\n return config[key].apply(this, arguments)\n }\n }\n }\n\n storeHelpers.forEach(func => {\n if (config[func] && config[func] !== 'function') {\n Ele.prototype[func] = function() {\n return config[func]\n }\n }\n })\n\n customElements.define(name, Ele)\n options.mapping[name] = Ele\n }\n}\n","import { extend } from './util'\nimport { h } from './h'\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {VNode} vnode The virtual DOM element to clone\n * @param {Object} props Attributes/props to add when cloning\n * @param {VNode} rest Any additional arguments will be used as replacement children.\n */\nexport function cloneElement(vnode, props) {\n return h(\n vnode.nodeName,\n extend(extend({}, vnode.attributes), props),\n arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children\n )\n}\n","export function getHost(ele) {\n let root = ele.getRootNode()\n return root && root.host\n}\n","/**\n * classNames based on https://github.com/JedWatson/classnames\n * by Jed Watson\n * Licensed under the MIT License\n * https://github.com/JedWatson/classnames/blob/master/LICENSE\n * modified by dntzhang\n */\n\nvar hasOwn = {}.hasOwnProperty\n\nexport function classNames() {\n var classes = []\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i]\n if (!arg) continue\n\n var argType = typeof arg\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg)\n } else if (Array.isArray(arg) && arg.length) {\n var inner = classNames.apply(null, arg)\n if (inner) {\n classes.push(inner)\n }\n } else if (argType === 'object') {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key)\n }\n }\n }\n }\n\n return classes.join(' ')\n}\n\nexport function extractClass() {\n const [props, ...args] = Array.prototype.slice.call(arguments, 0)\n if (props.class) {\n args.unshift(props.class)\n delete props.class\n } else if (props.className) {\n args.unshift(props.className)\n delete props.className\n }\n if (args.length > 0) {\n return { class: classNames.apply(null, args) }\n }\n}\n","(function () {\n 'use strict';\n\n if (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","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","// 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\nexport const DOM_EVENT_MAP = {\n onanimationcancel: 1,\n oncompositionend: 1,\n oncompositionstart: 1,\n oncompositionupdate: 1,\n onfocusin: 1,\n onfocusout: 1,\n onscrollend: 1,\n ontouchcancel : 1,\n ontouchend: 1,\n ontouchmove: 1,\n ontouchstart: 1\n}\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","export function o(obj) {\n return JSON.stringify(obj)\n}\n","import { h, h as createElement } from './h'\nimport options from './options'\nimport WeElement from './we-element'\nimport { render } from './render'\nimport { define } from './define'\nimport { tag } from './tag'\nimport { cloneElement } from './clone-element'\nimport { getHost } from './get-host'\nimport { rpx } from './rpx'\nimport { classNames, extractClass } from './class'\nimport { o } from './o'\nimport { extend, get, set, bind, unbind } from './extend'\nimport { Fragment } from './util'\nimport 'construct-style-sheets-polyfill'\n\nh.f = Fragment\n\nfunction createRef() {\n return {}\n}\n\nconst $ = {}\nconst Component = WeElement\nconst defineElement = define\nconst elements = options.mapping\n\nconst omi = {\n tag,\n WeElement,\n Component,\n render,\n h,\n createElement,\n options,\n define,\n cloneElement,\n getHost,\n rpx,\n defineElement,\n classNames,\n extractClass,\n createRef,\n o,\n elements,\n $,\n extend,\n get,\n set,\n bind,\n unbind\n}\n\noptions.root.Omi = omi\noptions.root.omi = omi\noptions.root.Omi.version = '6.25.21'\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"]} \ No newline at end of file diff --git a/packages/omi/package.json b/packages/omi/package.json index 49f36f9d6e..00856f7a5b 100644 --- a/packages/omi/package.json +++ b/packages/omi/package.json @@ -1,6 +1,6 @@ { "name": "omi", - "version": "6.25.20", + "version": "6.25.21", "description": "Front End Cross-Frameworks Framework.", "main": "dist/omi.js", "jsnext:main": "dist/omi.esm.js", diff --git a/packages/omi/src/constants.js b/packages/omi/src/constants.js index 7864719d09..a89e3654d1 100644 --- a/packages/omi/src/constants.js +++ b/packages/omi/src/constants.js @@ -7,5 +7,19 @@ export const ASYNC_RENDER = 3 export const ATTR_KEY = 'prevProps' +export const DOM_EVENT_MAP = { + onanimationcancel: 1, + oncompositionend: 1, + oncompositionstart: 1, + oncompositionupdate: 1, + onfocusin: 1, + onfocusout: 1, + onscrollend: 1, + ontouchcancel : 1, + ontouchend: 1, + ontouchmove: 1, + ontouchstart: 1 +} + // DOM properties that should NOT have "px" added when numeric export const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i diff --git a/packages/omi/src/dom/index.js b/packages/omi/src/dom/index.js index 24a25a3481..c51ea9a7e8 100644 --- a/packages/omi/src/dom/index.js +++ b/packages/omi/src/dom/index.js @@ -1,4 +1,4 @@ -import { IS_NON_DIMENSIONAL } from '../constants' +import { IS_NON_DIMENSIONAL, DOM_EVENT_MAP } from '../constants' import { applyRef } from '../util' import options from '../options' import { extension } from '../extend' @@ -138,7 +138,7 @@ function eventProxy(e) { function bindEvent(node, name, value, old) { let useCapture = name !== (name = name.replace(/Capture$/, '')) let nameLower = name.toLowerCase() - name = (nameLower in node ? nameLower : name).slice(2) + name = ((DOM_EVENT_MAP[nameLower] || nameLower in node) ? nameLower : name).slice(2) if (value) { if (!old) { node.addEventListener(name, eventProxy, useCapture) diff --git a/packages/omi/src/omi.js b/packages/omi/src/omi.js index 7ee44ce597..8d43584d5b 100644 --- a/packages/omi/src/omi.js +++ b/packages/omi/src/omi.js @@ -52,7 +52,7 @@ const omi = { options.root.Omi = omi options.root.omi = omi -options.root.Omi.version = '6.25.20' +options.root.Omi.version = '6.25.21' export default omi