diff --git a/packages/omi/dist/omi.d.ts b/packages/omi/dist/omi.d.ts index f718e7fa13..c89992ee8c 100644 --- a/packages/omi/dist/omi.d.ts +++ b/packages/omi/dist/omi.d.ts @@ -118,10 +118,10 @@ declare namespace Omi { inject?: string[]; injection?: { [key: string]: any }; - update(ignoreAttrs?: boolean, updateSelf?: boolean): void; + update(updateSelf?: boolean): void; forceUpdate(): void; updateProps(obj: any): void; - updateSelf(ignoreAttrs?: boolean): void; + updateSelf(): void; fire(name: string, data?: any): void; // Abstract methods don't infer argument types @@ -153,10 +153,10 @@ declare namespace Omi { inject?: string[]; injection?: { [key: string]: any }; - update(ignoreAttrs?: boolean, updateSelf?: boolean): void; + update(updateSelf?: boolean): void; forceUpdate(): void; updateProps(obj: any): void; - updateSelf(ignoreAttrs?: boolean): void; + updateSelf(): void; fire(name: string, data?: any): void; // Abstract methods don't infer argument types diff --git a/packages/omi/dist/omi.dev.js b/packages/omi/dist/omi.dev.js index 8a118c62fd..2d6b71ab4b 100644 --- a/packages/omi/dist/omi.dev.js +++ b/packages/omi/dist/omi.dev.js @@ -1,5 +1,5 @@ /** - * Omi v6.25.18 http://omijs.org + * Omi v6.25.19 http://omijs.org * Front End Cross-Frameworks Framework. * By dntzhang https://github.com/dntzhang * Github: https://github.com/Tencent/omi @@ -1029,7 +1029,7 @@ this.isInstalled = false; }; - WeElement.prototype.update = function update(ignoreAttrs, updateSelf) { + WeElement.prototype.update = function update(updateSelf) { this._willUpdate = true; this.beforeUpdate(); this.beforeRender(); @@ -1044,7 +1044,7 @@ this.shadowRoot.appendChild(this._customStyleElement); } } - this.attrsToProps(ignoreAttrs); + this.attrsToProps(); var rendered = this.render(this.props, this.store); this.rendered(); @@ -1054,10 +1054,6 @@ this.updated(); }; - WeElement.prototype.forceUpdate = function forceUpdate() { - this.update(true); - }; - WeElement.prototype.updateProps = function updateProps(obj) { var _this3 = this; @@ -1067,11 +1063,11 @@ _this3.prevProps[key] = obj[key]; } }); - this.forceUpdate(); + this.update(); }; - WeElement.prototype.updateSelf = function updateSelf(ignoreAttrs) { - this.update(ignoreAttrs, true); + WeElement.prototype.updateSelf = function updateSelf() { + this.update(true); }; WeElement.prototype.removeAttribute = function removeAttribute(key) { @@ -1098,8 +1094,8 @@ _HTMLElement.prototype.setAttribute.call(this, key, val); }; - WeElement.prototype.attrsToProps = function attrsToProps(ignoreAttrs) { - if (ignoreAttrs || this.store && this.store.ignoreAttrs || this.props.ignoreAttrs) return; + WeElement.prototype.attrsToProps = function attrsToProps() { + if (this.props.ignoreAttrs) return; var ele = this; ele.props['css'] = ele.getAttribute('css'); var attrs = this.constructor.propTypes; @@ -1735,7 +1731,7 @@ options.root.Omi = omi; options.root.omi = omi; - options.root.Omi.version = '6.25.18'; + options.root.Omi.version = '6.25.19'; 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 27f416e6bf..b19ca76bb1 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\n\n/** Global flag indicating if the diff is performing hydration */\nlet hydrating = false\n\n/** Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n * @param {Element} [dom=null] A DOM node to mutate into the shape of the `vnode`\n * @param {VNode} vnode A VNode (with descendants forming a tree) representing the desired DOM structure\n * @returns {Element} dom The created/mutated element\n * @private\n */\nexport function diff(dom, vnode, parent, component, updateSelf) {\n // first render return undefined\n if (!dom && !vnode) return\n // diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\n let ret\n if (!diffLevel++) {\n // when first starting the diff, check if we're diffing an SVG or within an SVG\n isSvgMode = parent != null && parent.ownerSVGElement !== undefined\n\n // hydration is indicated by the existing element to be diffed not having a prop cache\n hydrating = dom != null && !(ATTR_KEY in dom)\n }\n if (vnode && vnode.nodeName === Fragment) {\n vnode = vnode.children\n }\n if (isArray(vnode)) {\n if (parent) {\n // don't use css and props.css when using h.f\n // 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\n // empty values (null, undefined, booleans) render as empty Text nodes\n if (vnode == null || typeof vnode === 'boolean') vnode = ''\n\n // Fast case: Strings & Numbers create/update Text nodes.\n if (typeof vnode === 'string' || typeof vnode === 'number') {\n // update if it's already a Text node:\n if (\n dom &&\n dom.splitText !== undefined &&\n dom.parentNode &&\n (!dom._component || component)\n ) {\n /* istanbul ignore if */ /* Browser quirk that can't be covered: https://github.com/developit/preact/commit/fd4f21f5c45dfd75151bd27b4c217d8003aa5eb9 */\n if (dom.nodeValue != vnode) {\n dom.nodeValue = vnode\n }\n } else {\n // it wasn't a Text node: replace it with one and recycle the old Element\n out = document.createTextNode(vnode)\n if (dom) {\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom)\n recollectNodeTree(dom, true)\n }\n }\n\n out[ATTR_KEY] = true\n\n return out\n }\n\n // If the VNode represents a Component, perform a component diff:\n let vnodeName = vnode.nodeName\n if (typeof vnodeName === 'function') {\n for (let key in options.mapping) {\n if (options.mapping[key] === vnodeName) {\n vnodeName = key\n vnode.nodeName = key\n break\n }\n }\n }\n // Tracks entering and exiting SVG namespace when descending through the tree.\n isSvgMode =\n vnodeName === 'svg'\n ? true\n : vnodeName === 'foreignObject'\n ? false\n : isSvgMode\n\n // If there's no existing element or it's the wrong type, create a new one:\n vnodeName = String(vnodeName)\n if (!dom || !isNamedNode(dom, vnodeName)) {\n out = createNode(vnodeName, isSvgMode)\n\n if (dom) {\n // move children into the replacement node\n while (dom.firstChild) out.appendChild(dom.firstChild)\n\n // if the previous Element was mounted into the DOM, replace it inline\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom)\n\n // recycle the old element (skips non-Element node types)\n recollectNodeTree(dom, true)\n }\n }\n\n let fc = out.firstChild,\n props = out[ATTR_KEY],\n vchildren = vnode.children\n\n if (props == null) {\n props = out[ATTR_KEY] = {}\n for (let a = out.attributes, i = a.length; i--; )\n props[a[i].name] = a[i].value\n }\n\n // Optimization: fast-path for elements containing a single TextNode:\n if (\n !hydrating &&\n vchildren &&\n vchildren.length === 1 &&\n typeof vchildren[0] === 'string' &&\n fc != null &&\n fc.splitText !== undefined &&\n fc.nextSibling == null\n ) {\n if (fc.nodeValue != vchildren[0]) {\n fc.nodeValue = vchildren[0]\n }\n }\n // otherwise, if there are existing or new children, diff them:\n else if ((vchildren && vchildren.length) || fc != null) {\n if (!(out.constructor.is == 'WeElement' && out.constructor.noSlot)) {\n innerDiffNode(\n out,\n vchildren,\n hydrating || props.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\n return out\n}\n\n/** Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n * @param {Element} dom Element whose children should be compared & mutated\n * @param {Array} vchildren Array of VNodes to compare to `dom.childNodes`\n * @param {Boolean} isHydrating If `true`, consumes externally created elements similar to hydration\n */\nfunction innerDiffNode(dom, vchildren, isHydrating, component, updateSelf) {\n let originalChildren = dom.childNodes,\n children = [],\n keyed = {},\n keyedLen = 0,\n min = 0,\n len = originalChildren.length,\n childrenLen = 0,\n vlen = vchildren ? vchildren.length : 0,\n j,\n c,\n f,\n vchild,\n child\n\n // Build up a map of keyed children and an Array of unkeyed children:\n if (len !== 0) {\n for (let i = 0; i < len; i++) {\n let child = originalChildren[i],\n props = child[ATTR_KEY],\n key =\n vlen && props\n ? child._component\n ? child._component.__key\n : props.key\n : null\n if (key != null) {\n keyedLen++\n keyed[key] = child\n } else if (\n props ||\n (child.splitText !== undefined\n ? isHydrating\n ? child.nodeValue.trim()\n : true\n : isHydrating)\n ) {\n children[childrenLen++] = child\n }\n }\n }\n\n if (vlen !== 0) {\n for (let i = 0; i < vlen; i++) {\n vchild = vchildren[i]\n child = null\n\n if (vchild) {\n // attempt to find a node based on key matching\n let key = vchild.key\n if (key != null) {\n if (keyedLen && keyed[key] !== undefined) {\n child = keyed[key]\n keyed[key] = undefined\n keyedLen--\n }\n }\n // attempt to pluck a node of the same type from the existing children\n else if (!child && min < childrenLen) {\n for (j = min; j < childrenLen; j++) {\n if (\n children[j] !== undefined &&\n isSameNodeType((c = children[j]), vchild, isHydrating)\n ) {\n child = c\n children[j] = undefined\n if (j === childrenLen - 1) childrenLen--\n if (j === min) min++\n break\n }\n }\n }\n }\n\n // morph the matched/found/created DOM child to match vchild (deep)\n child = idiff(child, vchild, component, updateSelf)\n\n f = originalChildren[i]\n if (child && child !== dom && child !== f) {\n if (f == null) {\n dom.appendChild(child)\n } else if (child === f.nextSibling) {\n removeNode(f)\n } else {\n dom.insertBefore(child, f)\n }\n }\n }\n }\n\n // remove unused keyed children:\n if (keyedLen) {\n for (let i in keyed)\n if (keyed[i] !== undefined) recollectNodeTree(keyed[i], false)\n }\n\n // remove orphaned unkeyed children:\n while (min <= childrenLen) {\n if ((child = children[childrenLen--]) !== undefined)\n recollectNodeTree(child, false)\n }\n}\n\n/** Recursively recycle (or just unmount) a node and its descendants.\n * @param {Node} node DOM node to start unmount/removal from\n * @param {Boolean} [unmountOnly=false] If `true`, only triggers unmount lifecycle, skips removal\n */\nexport function recollectNodeTree(node, unmountOnly) {\n // If the node's VNode had a ref function, invoke it with null here.\n // (this is part of the React spec, and smart for unsetting references)\n if (node[ATTR_KEY] != null && node[ATTR_KEY].ref) {\n if (typeof node[ATTR_KEY].ref === 'function') {\n node[ATTR_KEY].ref(null)\n } else if (node[ATTR_KEY].ref.current) {\n node[ATTR_KEY].ref.current = null\n }\n }\n\n if (unmountOnly === false || node[ATTR_KEY] == null) {\n removeNode(node)\n }\n\n removeChildren(node)\n}\n\n/** Recollect/unmount all children.\n * - we use .lastChild here because it causes less reflow than .firstChild\n * - it's also cheaper than accessing the .childNodes Live NodeList\n */\nexport function removeChildren(node) {\n node = node.lastChild\n while (node) {\n let next = node.previousSibling\n recollectNodeTree(node, true)\n node = next\n }\n}\n\n/** Apply differences in attributes from a VNode to the given DOM Element.\n * @param {Element} dom Element with attributes to diff `attrs` against\n * @param {Object} attrs The desired end-state key-value attribute pairs\n * @param {Object} old Current/previous attributes (from previous VNode or element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old, component, updateSelf) {\n let name\n //let update = false\n let isWeElement = dom.update\n let oldClone\n if (dom.receiveProps) {\n oldClone = Object.assign({}, old)\n }\n // remove attributes no longer present on the vnode by setting them to undefined\n for (name in old) {\n if (!(attrs && attrs[name] != null) && old[name] != null) {\n setAccessor(\n dom,\n name,\n old[name],\n (old[name] = undefined),\n isSvgMode,\n component\n )\n if (isWeElement) {\n delete dom.props[name]\n //update = true\n }\n }\n }\n\n // add new & update changed attributes\n for (name in attrs) {\n if (isWeElement && typeof attrs[name] === 'object' && name !== 'ref') {\n if (name === 'style') {\n setAccessor(\n dom,\n name,\n old[name],\n (old[name] = attrs[name]),\n isSvgMode,\n component\n )\n }\n let ccName = camelCase(name)\n dom.props[ccName] = old[ccName] = attrs[name]\n //update = true\n } else if (\n name !== 'children' &&\n (!(name in old) ||\n attrs[name] !==\n (name === 'value' || name === 'checked' ? dom[name] : old[name]))\n ) {\n setAccessor(dom, name, old[name], attrs[name], isSvgMode, component)\n //fix lazy load props missing\n if (dom.nodeName.indexOf('-') !== -1) {\n dom.props = dom.props || {}\n let ccName = camelCase(name)\n dom.props[ccName] = old[ccName] = attrs[name]\n //update = true\n } else {\n old[name] = attrs[name]\n }\n }\n }\n\n if (isWeElement && !updateSelf && dom.parentNode) {\n //__hasChildren is not accuracy when it was empty at first, so add dom.children.length > 0 condition\n //if (update || dom.__hasChildren || dom.children.length > 0 || (dom.store && !dom.store.data)) {\n if (dom.receiveProps(dom.props, oldClone) !== false) {\n dom.update()\n }\n //}\n }\n}\n","/*!\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(ignoreAttrs, updateSelf) {\n this._willUpdate = true\n this.beforeUpdate()\n this.beforeRender()\n //fix null !== undefined\n if (this._customStyleContent != this.props.css) {\n this._customStyleContent = this.props.css\n if (this._customStyleElement) {\n this._customStyleElement.textContent = this._customStyleContent\n } else {\n // 当 prop css 开始没有值,后来有值\n this._customStyleElement = cssToDom(this.props.css)\n this.shadowRoot.appendChild(this._customStyleElement)\n }\n }\n this.attrsToProps(ignoreAttrs)\n\n const rendered = this.render(this.props, this.store)\n this.rendered()\n\n this.rootNode = diff(\n this.rootNode,\n rendered,\n this.constructor.isLightDom ? this : this.shadowRoot,\n this,\n updateSelf\n )\n this._willUpdate = false\n this.updated()\n }\n\n forceUpdate() {\n this.update(true)\n }\n\n updateProps(obj) {\n Object.keys(obj).forEach(key => {\n this.props[key] = obj[key]\n if (this.prevProps) {\n this.prevProps[key] = obj[key]\n }\n })\n this.forceUpdate()\n }\n\n updateSelf(ignoreAttrs) {\n this.update(ignoreAttrs, true)\n }\n\n removeAttribute(key) {\n super.removeAttribute(key)\n //Avoid executing removeAttribute methods before connectedCallback\n this.isInstalled && this.update()\n }\n\n setAttribute(key, val) {\n if (val && typeof val === 'object') {\n super.setAttribute(key, JSON.stringify(val))\n } else {\n super.setAttribute(key, val)\n }\n //Avoid executing setAttribute methods before connectedCallback\n this.isInstalled && this.update()\n }\n\n pureRemoveAttribute(key) {\n super.removeAttribute(key)\n }\n\n pureSetAttribute(key, val) {\n super.setAttribute(key, val)\n }\n\n attrsToProps(ignoreAttrs) {\n if (\n ignoreAttrs ||\n (this.store && this.store.ignoreAttrs) ||\n this.props.ignoreAttrs\n )\n return\n const ele = this\n ele.props['css'] = ele.getAttribute('css')\n const attrs = this.constructor.propTypes\n if (!attrs) return\n Object.keys(attrs).forEach(key => {\n const 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.18'\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","diff","dom","parent","updateSelf","ret","ownerSVGElement","innerDiffNode","item","index","ele","idiff","one","recollectNodeTree","appendChild","out","prevSvgMode","_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","forceUpdate","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\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\n\n/** Global flag indicating if the diff is performing hydration */\nlet hydrating = false\n\n/** Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n * @param {Element} [dom=null] A DOM node to mutate into the shape of the `vnode`\n * @param {VNode} vnode A VNode (with descendants forming a tree) representing the desired DOM structure\n * @returns {Element} dom The created/mutated element\n * @private\n */\nexport function diff(dom, vnode, parent, component, updateSelf) {\n // first render return undefined\n if (!dom && !vnode) return\n // diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\n let ret\n if (!diffLevel++) {\n // when first starting the diff, check if we're diffing an SVG or within an SVG\n isSvgMode = parent != null && parent.ownerSVGElement !== undefined\n\n // hydration is indicated by the existing element to be diffed not having a prop cache\n hydrating = dom != null && !(ATTR_KEY in dom)\n }\n if (vnode && vnode.nodeName === Fragment) {\n vnode = vnode.children\n }\n if (isArray(vnode)) {\n if (parent) {\n // don't use css and props.css when using h.f\n // 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\n // empty values (null, undefined, booleans) render as empty Text nodes\n if (vnode == null || typeof vnode === 'boolean') vnode = ''\n\n // Fast case: Strings & Numbers create/update Text nodes.\n if (typeof vnode === 'string' || typeof vnode === 'number') {\n // update if it's already a Text node:\n if (\n dom &&\n dom.splitText !== undefined &&\n dom.parentNode &&\n (!dom._component || component)\n ) {\n /* istanbul ignore if */ /* Browser quirk that can't be covered: https://github.com/developit/preact/commit/fd4f21f5c45dfd75151bd27b4c217d8003aa5eb9 */\n if (dom.nodeValue != vnode) {\n dom.nodeValue = vnode\n }\n } else {\n // it wasn't a Text node: replace it with one and recycle the old Element\n out = document.createTextNode(vnode)\n if (dom) {\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom)\n recollectNodeTree(dom, true)\n }\n }\n\n out[ATTR_KEY] = true\n\n return out\n }\n\n // If the VNode represents a Component, perform a component diff:\n let vnodeName = vnode.nodeName\n if (typeof vnodeName === 'function') {\n for (let key in options.mapping) {\n if (options.mapping[key] === vnodeName) {\n vnodeName = key\n vnode.nodeName = key\n break\n }\n }\n }\n // Tracks entering and exiting SVG namespace when descending through the tree.\n isSvgMode =\n vnodeName === 'svg'\n ? true\n : vnodeName === 'foreignObject'\n ? false\n : isSvgMode\n\n // If there's no existing element or it's the wrong type, create a new one:\n vnodeName = String(vnodeName)\n if (!dom || !isNamedNode(dom, vnodeName)) {\n out = createNode(vnodeName, isSvgMode)\n\n if (dom) {\n // move children into the replacement node\n while (dom.firstChild) out.appendChild(dom.firstChild)\n\n // if the previous Element was mounted into the DOM, replace it inline\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom)\n\n // recycle the old element (skips non-Element node types)\n recollectNodeTree(dom, true)\n }\n }\n\n let fc = out.firstChild,\n props = out[ATTR_KEY],\n vchildren = vnode.children\n\n if (props == null) {\n props = out[ATTR_KEY] = {}\n for (let a = out.attributes, i = a.length; i--; )\n props[a[i].name] = a[i].value\n }\n\n // Optimization: fast-path for elements containing a single TextNode:\n if (\n !hydrating &&\n vchildren &&\n vchildren.length === 1 &&\n typeof vchildren[0] === 'string' &&\n fc != null &&\n fc.splitText !== undefined &&\n fc.nextSibling == null\n ) {\n if (fc.nodeValue != vchildren[0]) {\n fc.nodeValue = vchildren[0]\n }\n }\n // otherwise, if there are existing or new children, diff them:\n else if ((vchildren && vchildren.length) || fc != null) {\n if (!(out.constructor.is == 'WeElement' && out.constructor.noSlot)) {\n innerDiffNode(\n out,\n vchildren,\n hydrating || props.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\n return out\n}\n\n/** Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n * @param {Element} dom Element whose children should be compared & mutated\n * @param {Array} vchildren Array of VNodes to compare to `dom.childNodes`\n * @param {Boolean} isHydrating If `true`, consumes externally created elements similar to hydration\n */\nfunction innerDiffNode(dom, vchildren, isHydrating, component, updateSelf) {\n let originalChildren = dom.childNodes,\n children = [],\n keyed = {},\n keyedLen = 0,\n min = 0,\n len = originalChildren.length,\n childrenLen = 0,\n vlen = vchildren ? vchildren.length : 0,\n j,\n c,\n f,\n vchild,\n child\n\n // Build up a map of keyed children and an Array of unkeyed children:\n if (len !== 0) {\n for (let i = 0; i < len; i++) {\n let child = originalChildren[i],\n props = child[ATTR_KEY],\n key =\n vlen && props\n ? child._component\n ? child._component.__key\n : props.key\n : null\n if (key != null) {\n keyedLen++\n keyed[key] = child\n } else if (\n props ||\n (child.splitText !== undefined\n ? isHydrating\n ? child.nodeValue.trim()\n : true\n : isHydrating)\n ) {\n children[childrenLen++] = child\n }\n }\n }\n\n if (vlen !== 0) {\n for (let i = 0; i < vlen; i++) {\n vchild = vchildren[i]\n child = null\n\n if (vchild) {\n // attempt to find a node based on key matching\n let key = vchild.key\n if (key != null) {\n if (keyedLen && keyed[key] !== undefined) {\n child = keyed[key]\n keyed[key] = undefined\n keyedLen--\n }\n }\n // attempt to pluck a node of the same type from the existing children\n else if (!child && min < childrenLen) {\n for (j = min; j < childrenLen; j++) {\n if (\n children[j] !== undefined &&\n isSameNodeType((c = children[j]), vchild, isHydrating)\n ) {\n child = c\n children[j] = undefined\n if (j === childrenLen - 1) childrenLen--\n if (j === min) min++\n break\n }\n }\n }\n }\n\n // morph the matched/found/created DOM child to match vchild (deep)\n child = idiff(child, vchild, component, updateSelf)\n\n f = originalChildren[i]\n if (child && child !== dom && child !== f) {\n if (f == null) {\n dom.appendChild(child)\n } else if (child === f.nextSibling) {\n removeNode(f)\n } else {\n dom.insertBefore(child, f)\n }\n }\n }\n }\n\n // remove unused keyed children:\n if (keyedLen) {\n for (let i in keyed)\n if (keyed[i] !== undefined) recollectNodeTree(keyed[i], false)\n }\n\n // remove orphaned unkeyed children:\n while (min <= childrenLen) {\n if ((child = children[childrenLen--]) !== undefined)\n recollectNodeTree(child, false)\n }\n}\n\n/** Recursively recycle (or just unmount) a node and its descendants.\n * @param {Node} node DOM node to start unmount/removal from\n * @param {Boolean} [unmountOnly=false] If `true`, only triggers unmount lifecycle, skips removal\n */\nexport function recollectNodeTree(node, unmountOnly) {\n // If the node's VNode had a ref function, invoke it with null here.\n // (this is part of the React spec, and smart for unsetting references)\n if (node[ATTR_KEY] != null && node[ATTR_KEY].ref) {\n if (typeof node[ATTR_KEY].ref === 'function') {\n node[ATTR_KEY].ref(null)\n } else if (node[ATTR_KEY].ref.current) {\n node[ATTR_KEY].ref.current = null\n }\n }\n\n if (unmountOnly === false || node[ATTR_KEY] == null) {\n removeNode(node)\n }\n\n removeChildren(node)\n}\n\n/** Recollect/unmount all children.\n * - we use .lastChild here because it causes less reflow than .firstChild\n * - it's also cheaper than accessing the .childNodes Live NodeList\n */\nexport function removeChildren(node) {\n node = node.lastChild\n while (node) {\n let next = node.previousSibling\n recollectNodeTree(node, true)\n node = next\n }\n}\n\n/** Apply differences in attributes from a VNode to the given DOM Element.\n * @param {Element} dom Element with attributes to diff `attrs` against\n * @param {Object} attrs The desired end-state key-value attribute pairs\n * @param {Object} old Current/previous attributes (from previous VNode or element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old, component, updateSelf) {\n let name\n //let update = false\n let isWeElement = dom.update\n let oldClone\n if (dom.receiveProps) {\n oldClone = Object.assign({}, old)\n }\n // remove attributes no longer present on the vnode by setting them to undefined\n for (name in old) {\n if (!(attrs && attrs[name] != null) && old[name] != null) {\n setAccessor(\n dom,\n name,\n old[name],\n (old[name] = undefined),\n isSvgMode,\n component\n )\n if (isWeElement) {\n delete dom.props[name]\n //update = true\n }\n }\n }\n\n // add new & update changed attributes\n for (name in attrs) {\n if (isWeElement && typeof attrs[name] === 'object' && name !== 'ref') {\n if (name === 'style') {\n setAccessor(\n dom,\n name,\n old[name],\n (old[name] = attrs[name]),\n isSvgMode,\n component\n )\n }\n let ccName = camelCase(name)\n dom.props[ccName] = old[ccName] = attrs[name]\n //update = true\n } else if (\n name !== 'children' &&\n (!(name in old) ||\n attrs[name] !==\n (name === 'value' || name === 'checked' ? dom[name] : old[name]))\n ) {\n setAccessor(dom, name, old[name], attrs[name], isSvgMode, component)\n //fix lazy load props missing\n if (dom.nodeName.indexOf('-') !== -1) {\n dom.props = dom.props || {}\n let ccName = camelCase(name)\n dom.props[ccName] = old[ccName] = attrs[name]\n //update = true\n } else {\n old[name] = attrs[name]\n }\n }\n }\n\n if (isWeElement && !updateSelf && dom.parentNode) {\n //__hasChildren is not accuracy when it was empty at first, so add dom.children.length > 0 condition\n //if (update || dom.__hasChildren || dom.children.length > 0 || (dom.store && !dom.store.data)) {\n if (dom.receiveProps(dom.props, oldClone) !== false) {\n dom.update()\n }\n //}\n }\n}\n","/*!\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.19'\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","diff","dom","parent","updateSelf","ret","ownerSVGElement","innerDiffNode","item","index","ele","idiff","one","recollectNodeTree","appendChild","out","prevSvgMode","_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":";;;;;;;;;;;EAAA,SAASA,SAAT,GAAqB;EACnB,MACE,OAAOC,MAAP,KAAkB,QAAlB,IACA,CAACA,MADD,IAEAA,OAAOC,IAAP,KAAgBA,IAFhB,IAGAD,OAAOE,KAAP,KAAiBA,KAJnB,EAKE;EACA,WACEC,QACAC,MADA,IAEAJ,MAFA,IAGC,YAAW;EACV,aAAO,IAAP;EACD,KAFD,EAJF;EAQD;EACD,SAAOA,MAAP;EACD;;EAED;;;;AAIA,gBAAe;EACbK,SAAO,IADM;EAEbC,QAAMP,WAFO;EAGbQ,WAAS;EAHI,CAAf;;ECvBA;;;;;;;;;EAgBC,CAAC,YAAW;EACX;EACE;EACA;EACAH,SAAOI,OAAP,KAAmBC,SAAnB,IACAL,OAAOM,cAAP,KAA0BD,SAD1B;EAEA;EACA;EACAL,SAAOM,cAAP,CAAsBC,cAAtB,CAAqC,2BAArC,CAPF,EAQE;EACA;EACD;EACD,MAAMC,qBAAqBC,WAA3B;EACAT,SAAOS,WAAP,GAAqB,SAASA,WAAT,GAAuB;EAC1C,WAAOL,QAAQM,SAAR,CAAkBF,kBAAlB,EAAsC,EAAtC,EAA0C,KAAKG,WAA/C,CAAP;EACD,GAFD;EAGAF,cAAYG,SAAZ,GAAwBJ,mBAAmBI,SAA3C;EACAH,cAAYG,SAAZ,CAAsBD,WAAtB,GAAoCF,WAApC;EACAI,SAAOC,cAAP,CAAsBL,WAAtB,EAAmCD,kBAAnC;EACD,CAnBA;;AAqBD,EAAO,SAASO,QAAT,CAAkBC,GAAlB,EAAuB;EAC5B,MAAMC,OAAOC,SAASC,aAAT,CAAuB,OAAvB,CAAb;EACAF,OAAKG,WAAL,GAAmBJ,GAAnB;EACA,SAAOC,IAAP;EACD;;AAED,EAAO,SAASI,SAAT,CAAmBC,GAAnB,EAAwB;EAC7B,SAAOA,IAAIC,OAAJ,CAAY,QAAZ,EAAsB,UAACC,CAAD,EAAIC,EAAJ,EAAW;EACtC,WAAOA,GAAGC,WAAH,EAAP;EACD,GAFM,CAAP;EAGD;;AAED,EAAO,SAASC,QAAT,CAAkBC,KAAlB,EAAyB;EAC9B,SAAOA,MAAMC,QAAb;EACD;;AAED,EAAO,SAASC,MAAT,CAAgBC,GAAhB,EAAqBH,KAArB,EAA4B;EACjC,OAAK,IAAII,CAAT,IAAcJ,KAAd;EAAqBG,QAAIC,CAAJ,IAASJ,MAAMI,CAAN,CAAT;EAArB,GACA,OAAOD,GAAP;EACD;;EAED;;;;AAIA,EAAO,SAASE,QAAT,CAAkBC,GAAlB,EAAuBC,KAAvB,EAA8B;EACnC,MAAID,OAAO,IAAX,EAAiB;EACf,QAAI,OAAOA,GAAP,IAAc,UAAlB,EAA8BA,IAAIC,KAAJ,EAA9B,KACKD,IAAIE,OAAJ,GAAcD,KAAd;EACN;EACF;;EAED;;;;;;AAMA,EAAO,IAAME,QACX,OAAOC,OAAP,IAAkB,UAAlB,GACIA,QAAQC,OAAR,GAAkBC,IAAlB,CAAuBC,IAAvB,CAA4BH,QAAQC,OAAR,EAA5B,CADJ,GAEIG,UAHC;;AAKP,EAAO,SAASC,OAAT,CAAiBZ,GAAjB,EAAsB;EAC3B,SAAOlB,OAAOD,SAAP,CAAiBgC,QAAjB,CAA0BC,IAA1B,CAA+Bd,GAA/B,MAAwC,gBAA/C;EACD;;AAED,EAAO,SAASe,SAAT,CAAmBC,IAAnB,EAAyB;EAC9B,MAAI,OAAOA,IAAP,KAAgB,QAAhB,IAA4B,CAACA,IAAjC,EAAuC,OAAO,EAAP;EACvC;EACA,SAAOA,KACJxB,OADI,CACI,IADJ,EACU,EADV,EAEJA,OAFI,CAEI,KAFJ,EAEW,GAFX,EAGJyB,KAHI,CAGE,GAHF,CAAP;EAID;;EAED,IAAMC,cAAc,YAApB;AACA,EAAO,SAASC,SAAT,CAAmB5B,GAAnB,EAAwB;EAC7B,SAAOA,IAAIC,OAAJ,CAAY0B,WAAZ,EAAyB,KAAzB,EAAgCE,WAAhC,EAAP;EACD;;AAED,EAAO,SAASC,UAAT,CAAoBC,IAApB,EAA0B;EAC/B,SAAOA,KACJ9B,OADI,CACI,SADJ,EACe,UAAS+B,GAAT,EAAcC,MAAd,EAAsB;EACxC,WAAOA,OAAO7B,WAAP,EAAP;EACD,GAHI,EAIJH,OAJI,CAII,KAJJ,EAIW;EAAA,WAAKiC,EAAE9B,WAAF,EAAL;EAAA,GAJX,CAAP;EAKD;;AAED,EAAO,SAAS+B,YAAT,CAAsBV,IAAtB,EAA4BX,OAA5B,EAAqC;EAC1C,MAAMsB,MAAMZ,UAAUC,IAAV,CAAZ;EACAW,MAAIC,OAAJ,CAAY,gBAAQ;EAClBvB,cAAUA,QAAQwB,IAAR,CAAV;EACD,GAFD;EAGA,SAAOxB,OAAP;EACD;;AAYD,EAAO,SAASyB,gBAAT,CAA0BC,KAA1B,EAAiC;EACtC,MAAMC,aAAa,IAAIC,aAAJ,EAAnB;EACAD,aAAWE,WAAX,CAAuBH,KAAvB;EACA,SAAOC,UAAP;EACD;;MC7HKG,QAAQ,EAAd;;AAEA,EAAO,SAASC,CAAT,CAAWC,QAAX,EAAqBC,UAArB,EAAiC;EACtC,MAAIxC,WAAW,EAAf;EAAA,MACEyC,mBADF;EAAA,MAEEC,cAFF;EAAA,MAGEC,eAHF;EAAA,MAIExC,UAJF;;EAMA;EACA,MAAGqC,UAAH,EAAe;EACbA,eAAWI,WAAX,GAAyB,IAAzB;EACD,GAFD,MAEO;EACLJ,iBAAa,EAAEI,aAAa,IAAf,EAAb;EACD;EACD,OAAKzC,IAAI0C,UAAUC,MAAnB,EAA2B3C,MAAM,CAAjC,GAAsC;EACpCkC,UAAMU,IAAN,CAAWF,UAAU1C,CAAV,CAAX;EACD;EACD,MAAIqC,WAAWxC,QAAX,IAAuB,IAA3B,EAAiC;EAC/B,QAAI,CAACqC,MAAMS,MAAX,EAAmBT,MAAMU,IAAN,CAAWP,WAAWxC,QAAtB;EACnB,WAAOwC,WAAWxC,QAAlB;EACD;EACD,SAAOqC,MAAMS,MAAb,EAAqB;EACnB,QAAI,CAACJ,QAAQL,MAAMW,GAAN,EAAT,KAAyBN,MAAMM,GAAN,KAAcxE,SAA3C,EAAsD;EACpD,WAAK2B,IAAIuC,MAAMI,MAAf,EAAuB3C,GAAvB;EAA8BkC,cAAMU,IAAN,CAAWL,MAAMvC,CAAN,CAAX;EAA9B;EACD,KAFD,MAEO;EACL,UAAI,OAAOuC,KAAP,KAAiB,SAArB,EAAgCA,QAAQ,IAAR;;EAEhC,UAAKC,SAAS,OAAOJ,QAAP,KAAoB,UAAlC,EAA+C;EAC7C,YAAIG,SAAS,IAAb,EAAmBA,QAAQ,EAAR,CAAnB,KACK,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+BA,QAAQO,OAAOP,KAAP,CAAR,CAA/B,KACA,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+BC,SAAS,KAAT;EACrC;;EAED,UAAIA,UAAUF,UAAd,EAA0B;EACxBzC,iBAASA,SAAS8C,MAAT,GAAkB,CAA3B,KAAiCJ,KAAjC;EACD,OAFD,MAEO,IAAI1C,SAAS8C,MAAT,KAAoB,CAAxB,EAA2B;EAChC9C,mBAAW,CAAC0C,KAAD,CAAX;EACD,OAFM,MAEA;EACL1C,iBAAS+C,IAAT,CAAcL,KAAd;EACD;;EAEDD,mBAAaE,MAAb;EACD;EACF;;EAED,MAAIJ,aAAazC,QAAjB,EAA2B;EACzB,WAAOE,QAAP;EACD;;EAED,MAAMkD,IAAI;EACRX,sBADQ;EAERvC,sBAFQ;EAGRwC,0BAHQ;EAIRW,SAAKX,WAAWW;;EAGlB;EAPU,GAAV,CAQA,IAAIC,QAAQC,KAAR,KAAkB7E,SAAtB,EAAiC4E,QAAQC,KAAR,CAAcH,CAAd;;EAEjC,SAAOA,CAAP;EACD;;EChED;;AAOA,EAAO,IAAMI,WAAW,WAAjB;;EAEP;AACA,EAAO,IAAMC,qBAAqB,wDAA3B;;;;;;;;;;ACAP,EAAO,SAASC,cAAT,CAAwBpE,IAAxB,EAA8BiE,KAA9B,EAAqCI,SAArC,EAAgD;EACrD,MAAI,OAAOJ,KAAP,KAAiB,QAAjB,IAA6B,OAAOA,KAAP,KAAiB,QAAlD,EAA4D;EAC1D,WAAOjE,KAAKsE,SAAL,KAAmBlF,SAA1B;EACD;EACD,MAAI,OAAO6E,MAAMd,QAAb,KAA0B,QAA9B,EAAwC;EACtC,WAAO,CAACnD,KAAKuE,qBAAN,IAA+BC,YAAYxE,IAAZ,EAAkBiE,MAAMd,QAAxB,CAAtC;EACD,GAFD,MAEO,IAAI,OAAOc,MAAMd,QAAb,KAA0B,UAA9B,EAA0C;EAC/C,WAAOa,QAAQ9E,OAAR,CAAgBc,KAAKmD,QAAL,CAAcjB,WAAd,EAAhB,MAAiD+B,MAAMd,QAA9D;EACD;EACD,SAAOkB,aAAarE,KAAKuE,qBAAL,KAA+BN,MAAMd,QAAzD;EACD;;EAED;;;;;;AAMA,EAAO,SAASqB,WAAT,CAAqBxE,IAArB,EAA2BmD,QAA3B,EAAqC;EAC1C,SACEnD,KAAKyE,kBAAL,KAA4BtB,QAA5B,IACAnD,KAAKmD,QAAL,CAAcjB,WAAd,OAAgCiB,SAASjB,WAAT,EAFlC;EAID;;EC/BM,IAAMwC,YAAY,EAAlB;;AAEP,EAAO,SAAS7D,QAAT,CAAgBuB,IAAhB,EAAsBuC,OAAtB,EAA+B;EACpCD,YAAU,OAAOtC,IAAjB,IAAyBuC,OAAzB;EACD;;AAED,EAAO,SAASC,GAAT,CAAaC,MAAb,EAAqB/C,IAArB,EAA2BZ,KAA3B,EAAkC;EACvC,MAAMuB,MAAMZ,UAAUC,IAAV,CAAZ;EACA,MAAIX,UAAU0D,MAAd;EACA,OAAK,IAAI9D,IAAI,CAAR,EAAW+D,MAAMrC,IAAIiB,MAA1B,EAAkC3C,IAAI+D,GAAtC,EAA2C/D,GAA3C,EAAgD;EAC9C,QAAIA,MAAM+D,MAAM,CAAhB,EAAmB;EACjB3D,cAAQsB,IAAI1B,CAAJ,CAAR,IAAkBG,KAAlB;EACD,KAFD,MAEO;EACLC,gBAAUA,QAAQsB,IAAI1B,CAAJ,CAAR,CAAV;EACD;EACF;EACF;;AAED,EAAO,SAASgE,GAAT,CAAaF,MAAb,EAAqB/C,IAArB,EAA2B;EAChC,MAAMW,MAAMZ,UAAUC,IAAV,CAAZ;EACA,MAAIX,UAAU0D,MAAd;EACA,OAAK,IAAI9D,IAAI,CAAR,EAAW+D,MAAMrC,IAAIiB,MAA1B,EAAkC3C,IAAI+D,GAAtC,EAA2C/D,GAA3C,EAAgD;EAC9CI,cAAUA,QAAQsB,IAAI1B,CAAJ,CAAR,CAAV;EACD;;EAED,SAAOI,OAAP;EACD;;EAED,SAAS6D,UAAT,CAAoBC,CAApB,EAAuB;EACrB,SAAO,KAAKC,UAAL,CAAgBD,EAAEE,IAAlB,EAAwBF,CAAxB,CAAP;EACD;;AAED,EAAO,SAASzD,IAAT,CAAc4D,EAAd,EAAkBD,IAAlB,EAAwBR,OAAxB,EAAiC;EACtCS,KAAGF,UAAH,GAAgBE,GAAGF,UAAH,IAAiB,EAAjC;EACAE,KAAGF,UAAH,CAAcC,IAAd,IAAsBR,OAAtB;EACAS,KAAGC,gBAAH,CAAoBF,IAApB,EAA0BH,UAA1B;EACD;;AAED,EAAO,SAASM,MAAT,CAAgBF,EAAhB,EAAoBD,IAApB,EAA0B;EAC/BC,KAAGG,mBAAH,CAAuBJ,IAAvB,EAA6BH,UAA7B;EACD;;;;;;;;;AC9BD,EAAO,SAASQ,UAAT,CAAoBrC,QAApB,EAA8BsC,KAA9B,EAAqCzB,UAArC,EAA8C;EACnD;EACA,MAAIhE,OAAOyF,QACPxF,SAASyF,eAAT,CAAyB,4BAAzB,EAAuDvC,QAAvD,CADO,GAEPlD,SAASC,aAAT,CAAuBiD,QAAvB,EAAiCa,UAAjC,CAFJ;EAGAhE,OAAKyE,kBAAL,GAA0BtB,QAA1B;EACA,SAAOnD,IAAP;EACD;;EAED;;;;AAIA,EAAO,SAAS2F,UAAT,CAAoB3F,IAApB,EAA0B;EAC/B,MAAI4F,aAAa5F,KAAK4F,UAAtB;EACA,MAAIA,UAAJ,EAAgBA,WAAWC,WAAX,CAAuB7F,IAAvB;EACjB;;EAED;;;;;;;;;;;;AAYA,EAAO,SAAS8F,WAAT,CAAqB9F,IAArB,EAA2BoC,IAA3B,EAAiC2D,GAAjC,EAAsC7E,KAAtC,EAA6CuE,KAA7C,EAAoDO,SAApD,EAA+D;EACpE,MAAI5D,SAAS,WAAb,EAA0BA,OAAO,OAAP;;EAE1B,MAAIA,KAAK,CAAL,KAAW,GAAX,IAAkBA,KAAK,CAAL,KAAW,GAAjC,EAAsC;EACpC,QAAIsC,UAAUtC,IAAV,CAAJ,EAAqB;EACnBsC,gBAAUtC,IAAV,EAAgBpC,IAAhB,EAAsBkB,KAAtB,EAA6B8E,SAA7B;EACD;EACF,GAJD,MAIO,IAAI5D,SAAS,KAAT,IAAkBA,SAAS,aAA/B,EAA8C;EACnD;EACD,GAFM,MAEA,IAAIA,SAAS,KAAb,EAAoB;EACzBpB,aAAS+E,GAAT,EAAc,IAAd;EACA/E,aAASE,KAAT,EAAgBlB,IAAhB;EACD,GAHM,MAGA,IAAIoC,SAAS,OAAT,IAAoB,CAACqD,KAAzB,EAAgC;EACrCzF,SAAKiG,SAAL,GAAiB/E,SAAS,EAA1B;EACD,GAFM,MAEA,IAAIkB,SAAS,OAAb,EAAsB;EAC3B,QAAI,CAAClB,KAAD,IAAU,OAAOA,KAAP,KAAiB,QAA3B,IAAuC,OAAO6E,GAAP,KAAe,QAA1D,EAAoE;EAClE/F,WAAK6C,KAAL,CAAWqD,OAAX,GAAqBhF,SAAS,EAA9B;EACD;EACD,QAAIA,SAAS,OAAOA,KAAP,KAAiB,QAA9B,EAAwC;EACtC,UAAI,OAAO6E,GAAP,KAAe,QAAnB,EAA6B;EAC3B,aAAK,IAAIhF,CAAT,IAAcgF,GAAd;EAAmB,cAAI,EAAEhF,KAAKG,KAAP,CAAJ,EAAmBlB,KAAK6C,KAAL,CAAW9B,CAAX,IAAgB,EAAhB;EAAtC;EACD;EACD,WAAK,IAAIA,EAAT,IAAcG,KAAd,EAAqB;EACnBlB,aAAK6C,KAAL,CAAW9B,EAAX,IACE,OAAOG,MAAMH,EAAN,CAAP,KAAoB,QAApB,IAAgCoD,mBAAmBgC,IAAnB,CAAwBpF,EAAxB,MAA+B,KAA/D,GACIG,MAAMH,EAAN,IAAW,IADf,GAEIG,MAAMH,EAAN,CAHN;EAID;EACF;EACF,GAfM,MAeA,IAAIqB,SAAS,YAAb,EAA2B;EAChC,QAAIlB,KAAJ,EAAWlB,KAAKoG,SAAL,GAAiBlF,MAAMmF,IAAN,IAAcnF,KAAd,IAAuB,EAAxC;EACZ,GAFM,MAEA,IAAIkB,SAAS,yBAAb,EAAwC;EAC7C,QAAIlB,KAAJ,EAAWlB,KAAKoG,SAAL,GAAiBlF,MAAMoF,MAAN,IAAgB,EAAjC;EACZ,GAFM,MAEA,IAAIlE,KAAK,CAAL,KAAW,GAAX,IAAkBA,KAAK,CAAL,KAAW,GAAjC,EAAsC;EAC3CmE,cAAUvG,IAAV,EAAgBoC,IAAhB,EAAsBlB,KAAtB,EAA6B6E,GAA7B;EACD,GAFM,MAEA,IAAI/F,KAAKmD,QAAL,KAAkB,OAAlB,IAA6Bf,SAAS,OAA1C,EAAmD;EACxDpC,SAAKoC,IAAL,IAAalB,SAAS,IAAT,GAAgB,EAAhB,GAAqBA,KAAlC;EACD,GAFM,MAEA,IACLkB,SAAS,MAAT,IACAA,SAAS,MADT,IAEAA,SAAS,KAFT,IAGA,CAACqD,KAHD,IAIArD,QAAQpC,IAJR,IAKAkB,UAAU,EANL,EAOL;EACA;EACA;EACA;EACA,QAAI;EACFlB,WAAKoC,IAAL,IAAalB,SAAS,IAAT,GAAgB,EAAhB,GAAqBA,KAAlC;EACD,KAFD,CAEE,OAAO+D,CAAP,EAAU;EACZ,QAAI,CAAC/D,SAAS,IAAT,IAAiBA,UAAU,KAA5B,KAAsCkB,QAAQ,YAAlD,EACEpC,KAAKwG,mBAAL,GACIxG,KAAKwG,mBAAL,CAAyBpE,IAAzB,CADJ,GAEIpC,KAAKyG,eAAL,CAAqBrE,IAArB,CAFJ;EAGH,GAlBM,MAkBA;EACL,QAAIsE,KAAKjB,SAASrD,UAAUA,OAAOA,KAAK9B,OAAL,CAAa,UAAb,EAAyB,EAAzB,CAAjB,CAAlB;EACA;EACA;EACA;EACA,QAAIY,SAAS,IAAT,IAAiBA,UAAU,KAA/B,EAAsC;EACpC,UAAIwF,EAAJ,EACE1G,KAAK2G,iBAAL,CACE,8BADF,EAEEvE,KAAKF,WAAL,EAFF,EADF,KAMElC,KAAKwG,mBAAL,GACIxG,KAAKwG,mBAAL,CAAyBpE,IAAzB,CADJ,GAEIpC,KAAKyG,eAAL,CAAqBrE,IAArB,CAFJ;EAGH,KAVD,MAUO,IAAI,OAAOlB,KAAP,KAAiB,UAArB,EAAiC;EACtC,UAAIwF,EAAJ,EAAQ;EACN1G,aAAK4G,cAAL,CACE,8BADF,EAEExE,KAAKF,WAAL,EAFF,EAGEhB,KAHF;EAKD,OAND,MAMO;EACLlB,aAAK6G,gBAAL,GACI7G,KAAK6G,gBAAL,CAAsBzE,IAAtB,EAA4BlB,KAA5B,CADJ,GAEIlB,KAAK8G,YAAL,CAAkB1E,IAAlB,EAAwBlB,KAAxB,CAFJ;EAGD;EACF;EACF;EACF;;EAED;;;;;EAKA,SAAS8D,YAAT,CAAoBC,CAApB,EAAuB;EACrB,SAAO,KAAKC,UAAL,CAAgBD,EAAEE,IAAlB,EAAyBnB,QAAQ+C,KAAR,IAAiB/C,QAAQ+C,KAAR,CAAc9B,CAAd,CAAlB,IAAuCA,CAA/D,CAAP;EACD;;EAED,SAASsB,SAAT,CAAmBvG,IAAnB,EAAyBoC,IAAzB,EAA+BlB,KAA/B,EAAsC6E,GAAtC,EAA2C;EACzC,MAAIiB,aAAa5E,UAAUA,OAAOA,KAAK9B,OAAL,CAAa,UAAb,EAAyB,EAAzB,CAAjB,CAAjB;EACA,MAAI2G,YAAY7E,KAAKF,WAAL,EAAhB;EACAE,SAAO,CAAC6E,aAAajH,IAAb,GAAoBiH,SAApB,GAAgC7E,IAAjC,EAAuC8E,KAAvC,CAA6C,CAA7C,CAAP;EACA,MAAIhG,KAAJ,EAAW;EACT,QAAI,CAAC6E,GAAL,EAAU;EACR/F,WAAKqF,gBAAL,CAAsBjD,IAAtB,EAA4B4C,YAA5B,EAAwCgC,UAAxC;EACD;EACF,GAJD,MAIO;EACLhH,SAAKuF,mBAAL,CAAyBnD,IAAzB,EAA+B4C,YAA/B,EAA2CgC,UAA3C;EACD;AACD,EAAC,CAAChH,KAAKkF,UAAL,KAAoBlF,KAAKkF,UAAL,GAAkB,EAAtC,CAAD,EAA4C9C,IAA5C,IAAoDlB,KAApD;EACF;;;AC3ID,EAAO,IAAIiG,YAAY,CAAhB;;EAEP;EACA,IAAIC,YAAY,KAAhB;;EAEA;EACA,IAAI/C,YAAY,KAAhB;;EAEA;;;;;;AAMA,EAAO,SAASgD,IAAT,CAAcC,GAAd,EAAmBrD,KAAnB,EAA0BsD,MAA1B,EAAkCvB,SAAlC,EAA6CwB,UAA7C,EAAyD;EAC9D;EACA,MAAI,CAACF,GAAD,IAAQ,CAACrD,KAAb,EAAoB;EACpB;EACA,MAAIwD,YAAJ;EACA,MAAI,CAACN,WAAL,EAAkB;EAChB;EACAC,gBAAYG,UAAU,IAAV,IAAkBA,OAAOG,eAAP,KAA2BtI,SAAzD;;EAEA;EACAiF,gBAAYiD,OAAO,IAAP,IAAe,EAAEpD,YAAYoD,GAAd,CAA3B;EACD;EACD,MAAIrD,SAASA,MAAMd,QAAN,KAAmBzC,QAAhC,EAA0C;EACxCuD,YAAQA,MAAMrD,QAAd;EACD;EACD,MAAIc,QAAQuC,KAAR,CAAJ,EAAoB;EAClB,QAAIsD,MAAJ,EAAY;EACV;EACA;EACAI,oBAAcJ,MAAd,EAAsBtD,KAAtB,EAA6BI,SAA7B,EAAwC2B,SAAxC,EAAmDwB,UAAnD;EACD,KAJD,MAIO;EACL;EACAC,YAAM,EAAN;EACAxD,YAAMvB,OAAN,CAAc,UAACkF,IAAD,EAAOC,KAAP,EAAiB;EAC7B,YAAIC,MAAMC,MAAMF,UAAU,CAAV,GAAcP,GAAd,GAAoB,IAA1B,EAAgCM,IAAhC,EAAsC5B,SAAtC,EAAiDwB,UAAjD,CAAV;EACA;EACA;EACAC,YAAI9D,IAAJ,CAASmE,GAAT;EACD,OALD;EAMD;EACF,GAfD,MAeO;EACL,QAAIpG,QAAQ4F,GAAR,CAAJ,EAAkB;EAChBA,UAAI5E,OAAJ,CAAY,UAACsF,GAAD,EAAMH,KAAN,EAAgB;EAC1B,YAAIA,UAAU,CAAd,EAAiB;EACfJ,gBAAMM,MAAMC,GAAN,EAAW/D,KAAX,EAAkB+B,SAAlB,EAA6BwB,UAA7B,CAAN;EACD,SAFD,MAEO;EACLS,4BAAkBD,GAAlB,EAAuB,KAAvB;EACD;EACF,OAND;EAOD,KARD,MAQO;EACLP,YAAMM,MAAMT,GAAN,EAAWrD,KAAX,EAAkB+B,SAAlB,EAA6BwB,UAA7B,CAAN;EACD;EACD;EACA,QAAID,UAAUE,IAAI7B,UAAJ,KAAmB2B,MAAjC,EAAyCA,OAAOW,WAAP,CAAmBT,GAAnB;EAC1C;;EAED;EACA,MAAI,IAAGN,SAAP,EAAkB;EAChB9C,gBAAY,KAAZ;EACA;EACD;;EAED,SAAOoD,GAAP;EACD;;EAED;EACA,SAASM,KAAT,CAAeT,GAAf,EAAoBrD,KAApB,EAA2B+B,SAA3B,EAAsCwB,UAAtC,EAAkD;EAChD,MAAIF,OAAOrD,KAAP,IAAgBqD,IAAI3G,KAAxB,EAA+B;EAC7B2G,QAAI3G,KAAJ,CAAUC,QAAV,GAAqBqD,MAAMrD,QAA3B;EACD;EACD,MAAIuH,MAAMb,GAAV;EAAA,MACEc,cAAchB,SADhB;;EAGA;EACA,MAAInD,SAAS,IAAT,IAAiB,OAAOA,KAAP,KAAiB,SAAtC,EAAiDA,QAAQ,EAAR;;EAEjD;EACA,MAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6B,OAAOA,KAAP,KAAiB,QAAlD,EAA4D;EAC1D;EACA,QACEqD,OACAA,IAAIhD,SAAJ,KAAkBlF,SADlB,IAEAkI,IAAI1B,UAFJ,KAGC,CAAC0B,IAAIe,UAAL,IAAmBrC,SAHpB,CADF,EAKE;EACA;EACA,UAAIsB,IAAIgB,SAAJ,IAAiBrE,KAArB,EAA4B;EAC1BqD,YAAIgB,SAAJ,GAAgBrE,KAAhB;EACD;EACF,KAVD,MAUO;EACL;EACAkE,YAAMlI,SAASsI,cAAT,CAAwBtE,KAAxB,CAAN;EACA,UAAIqD,GAAJ,EAAS;EACP,YAAIA,IAAI1B,UAAR,EAAoB0B,IAAI1B,UAAJ,CAAe4C,YAAf,CAA4BL,GAA5B,EAAiCb,GAAjC;EACpBW,0BAAkBX,GAAlB,EAAuB,IAAvB;EACD;EACF;;EAEDa,QAAIjE,QAAJ,IAAgB,IAAhB;;EAEA,WAAOiE,GAAP;EACD;;EAED;EACA,MAAIM,YAAYxE,MAAMd,QAAtB;EACA,MAAI,OAAOsF,SAAP,KAAqB,UAAzB,EAAqC;EACnC,SAAK,IAAI1E,GAAT,IAAgBC,QAAQ9E,OAAxB,EAAiC;EAC/B,UAAI8E,QAAQ9E,OAAR,CAAgB6E,GAAhB,MAAyB0E,SAA7B,EAAwC;EACtCA,oBAAY1E,GAAZ;EACAE,cAAMd,QAAN,GAAiBY,GAAjB;EACA;EACD;EACF;EACF;EACD;EACAqD,cACEqB,cAAc,KAAd,GACI,IADJ,GAEIA,cAAc,eAAd,GACA,KADA,GAEArB,SALN;;EAOA;EACAqB,cAAY5E,OAAO4E,SAAP,CAAZ;EACA,MAAI,CAACnB,GAAD,IAAQ,CAAC9C,YAAY8C,GAAZ,EAAiBmB,SAAjB,CAAb,EAA0C;EACxCN,UAAM3C,WAAWiD,SAAX,EAAsBrB,SAAtB,CAAN;;EAEA,QAAIE,GAAJ,EAAS;EACP;EACA,aAAOA,IAAIoB,UAAX;EAAuBP,YAAID,WAAJ,CAAgBZ,IAAIoB,UAApB;EAAvB,OAFO;EAKP,UAAIpB,IAAI1B,UAAR,EAAoB0B,IAAI1B,UAAJ,CAAe4C,YAAf,CAA4BL,GAA5B,EAAiCb,GAAjC;;EAEpB;EACAW,wBAAkBX,GAAlB,EAAuB,IAAvB;EACD;EACF;;EAED,MAAIqB,KAAKR,IAAIO,UAAb;EAAA,MACE/H,QAAQwH,IAAIjE,QAAJ,CADV;EAAA,MAEE0E,YAAY3E,MAAMrD,QAFpB;;EAIA,MAAID,SAAS,IAAb,EAAmB;EACjBA,YAAQwH,IAAIjE,QAAJ,IAAgB,EAAxB;EACA,SAAK,IAAI2E,IAAIV,IAAI/E,UAAZ,EAAwBrC,IAAI8H,EAAEnF,MAAnC,EAA2C3C,GAA3C;EACEJ,YAAMkI,EAAE9H,CAAF,EAAKqB,IAAX,IAAmByG,EAAE9H,CAAF,EAAKG,KAAxB;EADF;EAED;;EAED;EACA,MACE,CAACmD,SAAD,IACAuE,SADA,IAEAA,UAAUlF,MAAV,KAAqB,CAFrB,IAGA,OAAOkF,UAAU,CAAV,CAAP,KAAwB,QAHxB,IAIAD,MAAM,IAJN,IAKAA,GAAGrE,SAAH,KAAiBlF,SALjB,IAMAuJ,GAAGG,WAAH,IAAkB,IAPpB,EAQE;EACA,QAAIH,GAAGL,SAAH,IAAgBM,UAAU,CAAV,CAApB,EAAkC;EAChCD,SAAGL,SAAH,GAAeM,UAAU,CAAV,CAAf;EACD;EACF;EACD;EAbA,OAcK,IAAKA,aAAaA,UAAUlF,MAAxB,IAAmCiF,MAAM,IAA7C,EAAmD;EACtD,UAAI,EAAER,IAAIzI,WAAJ,CAAgBqJ,EAAhB,IAAsB,WAAtB,IAAqCZ,IAAIzI,WAAJ,CAAgBsJ,MAAvD,CAAJ,EAAoE;EAClErB,sBACEQ,GADF,EAEES,SAFF,EAGEvE,aAAa1D,MAAMsI,UAAN,IAAoB,IAAjC,IAAyCtI,MAAMuI,uBAAN,IAAiC,IAH5E,EAIElD,SAJF,EAKEwB,UALF;EAOD;EACF;;EAED;EACA2B,iBAAehB,GAAf,EAAoBlE,MAAMb,UAA1B,EAAsCzC,KAAtC,EAA6CqF,SAA7C,EAAwDwB,UAAxD;EACA,MAAIW,IAAIxH,KAAR,EAAe;EACbwH,QAAIxH,KAAJ,CAAUC,QAAV,GAAqBqD,MAAMrD,QAA3B;EACD;EACD;EACAwG,cAAYgB,WAAZ;;EAEA,SAAOD,GAAP;EACD;;EAED;;;;;EAKA,SAASR,aAAT,CAAuBL,GAAvB,EAA4BsB,SAA5B,EAAuCQ,WAAvC,EAAoDpD,SAApD,EAA+DwB,UAA/D,EAA2E;EACzE,MAAI6B,mBAAmB/B,IAAIgC,UAA3B;EAAA,MACE1I,WAAW,EADb;EAAA,MAEE2I,QAAQ,EAFV;EAAA,MAGEC,WAAW,CAHb;EAAA,MAIEC,MAAM,CAJR;EAAA,MAKE3E,MAAMuE,iBAAiB3F,MALzB;EAAA,MAMEgG,cAAc,CANhB;EAAA,MAOEC,OAAOf,YAAYA,UAAUlF,MAAtB,GAA+B,CAPxC;EAAA,MAQEkG,UARF;EAAA,MASEC,UATF;EAAA,MAUEC,UAVF;EAAA,MAWEC,eAXF;EAAA,MAYEzG,cAZF;;EAcA;EACA,MAAIwB,QAAQ,CAAZ,EAAe;EACb,SAAK,IAAI/D,IAAI,CAAb,EAAgBA,IAAI+D,GAApB,EAAyB/D,GAAzB,EAA8B;EAC5B,UAAIuC,SAAQ+F,iBAAiBtI,CAAjB,CAAZ;EAAA,UACEJ,QAAQ2C,OAAMY,QAAN,CADV;EAAA,UAEEH,MACE4F,QAAQhJ,KAAR,GACI2C,OAAM+E,UAAN,GACE/E,OAAM+E,UAAN,CAAiB2B,KADnB,GAEErJ,MAAMoD,GAHZ,GAII,IAPR;EAQA,UAAIA,OAAO,IAAX,EAAiB;EACfyF;EACAD,cAAMxF,GAAN,IAAaT,MAAb;EACD,OAHD,MAGO,IACL3C,UACC2C,OAAMgB,SAAN,KAAoBlF,SAApB,GACGgK,cACE9F,OAAMgF,SAAN,CAAgB2B,IAAhB,EADF,GAEE,IAHL,GAIGb,WALJ,CADK,EAOL;EACAxI,iBAAS8I,aAAT,IAA0BpG,MAA1B;EACD;EACF;EACF;;EAED,MAAIqG,SAAS,CAAb,EAAgB;EACd,SAAK,IAAI5I,KAAI,CAAb,EAAgBA,KAAI4I,IAApB,EAA0B5I,IAA1B,EAA+B;EAC7BgJ,eAASnB,UAAU7H,EAAV,CAAT;EACAuC,cAAQ,IAAR;;EAEA,UAAIyG,MAAJ,EAAY;EACV;EACA,YAAIhG,OAAMgG,OAAOhG,GAAjB;EACA,YAAIA,QAAO,IAAX,EAAiB;EACf,cAAIyF,YAAYD,MAAMxF,IAAN,MAAe3E,SAA/B,EAA0C;EACxCkE,oBAAQiG,MAAMxF,IAAN,CAAR;EACAwF,kBAAMxF,IAAN,IAAa3E,SAAb;EACAoK;EACD;EACF;EACD;EAPA,aAQK,IAAI,CAAClG,KAAD,IAAUmG,MAAMC,WAApB,EAAiC;EACpC,iBAAKE,IAAIH,GAAT,EAAcG,IAAIF,WAAlB,EAA+BE,GAA/B,EAAoC;EAClC,kBACEhJ,SAASgJ,CAAT,MAAgBxK,SAAhB,IACAgF,eAAgByF,IAAIjJ,SAASgJ,CAAT,CAApB,EAAkCG,MAAlC,EAA0CX,WAA1C,CAFF,EAGE;EACA9F,wBAAQuG,CAAR;EACAjJ,yBAASgJ,CAAT,IAAcxK,SAAd;EACA,oBAAIwK,MAAMF,cAAc,CAAxB,EAA2BA;EAC3B,oBAAIE,MAAMH,GAAV,EAAeA;EACf;EACD;EACF;EACF;EACF;;EAED;EACAnG,cAAQyE,MAAMzE,KAAN,EAAayG,MAAb,EAAqB/D,SAArB,EAAgCwB,UAAhC,CAAR;;EAEAsC,UAAIT,iBAAiBtI,EAAjB,CAAJ;EACA,UAAIuC,SAASA,UAAUgE,GAAnB,IAA0BhE,UAAUwG,CAAxC,EAA2C;EACzC,YAAIA,KAAK,IAAT,EAAe;EACbxC,cAAIY,WAAJ,CAAgB5E,KAAhB;EACD,SAFD,MAEO,IAAIA,UAAUwG,EAAEhB,WAAhB,EAA6B;EAClCnD,qBAAWmE,CAAX;EACD,SAFM,MAEA;EACLxC,cAAI4C,YAAJ,CAAiB5G,KAAjB,EAAwBwG,CAAxB;EACD;EACF;EACF;EACF;;EAED;EACA,MAAIN,QAAJ,EAAc;EACZ,SAAK,IAAIzI,GAAT,IAAcwI,KAAd;EACE,UAAIA,MAAMxI,GAAN,MAAa3B,SAAjB,EAA4B6I,kBAAkBsB,MAAMxI,GAAN,CAAlB,EAA4B,KAA5B;EAD9B;EAED;;EAED;EACA,SAAO0I,OAAOC,WAAd,EAA2B;EACzB,QAAI,CAACpG,QAAQ1C,SAAS8I,aAAT,CAAT,MAAsCtK,SAA1C,EACE6I,kBAAkB3E,KAAlB,EAAyB,KAAzB;EACH;EACF;;EAED;;;;AAIA,EAAO,SAAS2E,iBAAT,CAA2BjI,IAA3B,EAAiCmK,WAAjC,EAA8C;EACnD;EACA;EACA,MAAInK,KAAKkE,QAAL,KAAkB,IAAlB,IAA0BlE,KAAKkE,QAAL,EAAejD,GAA7C,EAAkD;EAChD,QAAI,OAAOjB,KAAKkE,QAAL,EAAejD,GAAtB,KAA8B,UAAlC,EAA8C;EAC5CjB,WAAKkE,QAAL,EAAejD,GAAf,CAAmB,IAAnB;EACD,KAFD,MAEO,IAAIjB,KAAKkE,QAAL,EAAejD,GAAf,CAAmBE,OAAvB,EAAgC;EACrCnB,WAAKkE,QAAL,EAAejD,GAAf,CAAmBE,OAAnB,GAA6B,IAA7B;EACD;EACF;;EAED,MAAIgJ,gBAAgB,KAAhB,IAAyBnK,KAAKkE,QAAL,KAAkB,IAA/C,EAAqD;EACnDyB,eAAW3F,IAAX;EACD;;EAEDoK,iBAAepK,IAAf;EACD;;EAED;;;;AAIA,EAAO,SAASoK,cAAT,CAAwBpK,IAAxB,EAA8B;EACnCA,SAAOA,KAAKqK,SAAZ;EACA,SAAOrK,IAAP,EAAa;EACX,QAAIsK,OAAOtK,KAAKuK,eAAhB;EACAtC,sBAAkBjI,IAAlB,EAAwB,IAAxB;EACAA,WAAOsK,IAAP;EACD;EACF;;EAED;;;;;EAKA,SAASnB,cAAT,CAAwB7B,GAAxB,EAA6BkD,KAA7B,EAAoCzE,GAApC,EAAyCC,SAAzC,EAAoDwB,UAApD,EAAgE;EAC9D,MAAIpF,aAAJ;EACA;EACA,MAAIqI,cAAcnD,IAAIoD,MAAtB;EACA,MAAIC,iBAAJ;EACA,MAAIrD,IAAIsD,YAAR,EAAsB;EACpBD,eAAW/K,OAAOiL,MAAP,CAAc,EAAd,EAAkB9E,GAAlB,CAAX;EACD;EACD;EACA,OAAK3D,IAAL,IAAa2D,GAAb,EAAkB;EAChB,QAAI,EAAEyE,SAASA,MAAMpI,IAAN,KAAe,IAA1B,KAAmC2D,IAAI3D,IAAJ,KAAa,IAApD,EAA0D;EACxD0D,kBACEwB,GADF,EAEElF,IAFF,EAGE2D,IAAI3D,IAAJ,CAHF,EAIG2D,IAAI3D,IAAJ,IAAYhD,SAJf,EAKEgI,SALF,EAMEpB,SANF;EAQA,UAAIyE,WAAJ,EAAiB;EACf,eAAOnD,IAAI3G,KAAJ,CAAUyB,IAAV,CAAP;EACA;EACD;EACF;EACF;;EAED;EACA,OAAKA,IAAL,IAAaoI,KAAb,EAAoB;EAClB,QAAIC,eAAe,OAAOD,MAAMpI,IAAN,CAAP,KAAuB,QAAtC,IAAkDA,SAAS,KAA/D,EAAsE;EACpE,UAAIA,SAAS,OAAb,EAAsB;EACpB0D,oBACEwB,GADF,EAEElF,IAFF,EAGE2D,IAAI3D,IAAJ,CAHF,EAIG2D,IAAI3D,IAAJ,IAAYoI,MAAMpI,IAAN,CAJf,EAKEgF,SALF,EAMEpB,SANF;EAQD;EACD,UAAI8E,SAAS1K,UAAUgC,IAAV,CAAb;EACAkF,UAAI3G,KAAJ,CAAUmK,MAAV,IAAoB/E,IAAI+E,MAAJ,IAAcN,MAAMpI,IAAN,CAAlC;EACA;EACD,KAdD,MAcO,IACLA,SAAS,UAAT,KACC,EAAEA,QAAQ2D,GAAV,KACCyE,MAAMpI,IAAN,OACGA,SAAS,OAAT,IAAoBA,SAAS,SAA7B,GAAyCkF,IAAIlF,IAAJ,CAAzC,GAAqD2D,IAAI3D,IAAJ,CADxD,CAFF,CADK,EAKL;EACA0D,kBAAYwB,GAAZ,EAAiBlF,IAAjB,EAAuB2D,IAAI3D,IAAJ,CAAvB,EAAkCoI,MAAMpI,IAAN,CAAlC,EAA+CgF,SAA/C,EAA0DpB,SAA1D;EACA;EACA,UAAIsB,IAAInE,QAAJ,CAAa4H,OAAb,CAAqB,GAArB,MAA8B,CAAC,CAAnC,EAAsC;EACpCzD,YAAI3G,KAAJ,GAAY2G,IAAI3G,KAAJ,IAAa,EAAzB;EACA,YAAImK,UAAS1K,UAAUgC,IAAV,CAAb;EACAkF,YAAI3G,KAAJ,CAAUmK,OAAV,IAAoB/E,IAAI+E,OAAJ,IAAcN,MAAMpI,IAAN,CAAlC;EACA;EACD,OALD,MAKO;EACL2D,YAAI3D,IAAJ,IAAYoI,MAAMpI,IAAN,CAAZ;EACD;EACF;EACF;;EAED,MAAIqI,eAAe,CAACjD,UAAhB,IAA8BF,IAAI1B,UAAtC,EAAkD;EAChD;EACA;EACA,QAAI0B,IAAIsD,YAAJ,CAAiBtD,IAAI3G,KAArB,EAA4BgK,QAA5B,MAA0C,KAA9C,EAAqD;EACnDrD,UAAIoD,MAAJ;EACD;EACD;EACD;EACF;;EClaD;EACA;EACA;EACA;EACA;EACA;;EAEA,CAAC,SAAS,IAAI,EAAE;AAChB;EAEA,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;EACpB,IAAI,OAAO;EACX,GAAG;;EAEH,EAAE,IAAI,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;EACvD,EAAE,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,IAAI,CAAC,WAAW;EACvD,IAAI,IAAI;EACR;EACA,MAAM,OAAO,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;EAClE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE;EAClB,GAAG,GAAG,CAAC;;EAEP,EAAE,IAAI,cAAc,GAAG,SAAS,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;EACrD,IAAI,IAAI,SAAS,EAAE;EACnB,MAAM,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE;EAC1C,QAAQ,YAAY,EAAE,IAAI;EAC1B,QAAQ,QAAQ,EAAE,IAAI;EACtB,QAAQ,KAAK,EAAE,KAAK;EACpB,OAAO,CAAC,CAAC;EACT,KAAK,MAAM;EACX,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;EAC3B,KAAK;EACL,GAAG,CAAC;;EAEJ,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,WAAW;;EAE7B;EACA,IAAI,SAAS,OAAO,GAAG;EACvB,MAAM,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE;EAC3B,QAAQ,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;EAClE,OAAO;;EAEP,MAAM,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;;EAErD;EACA,MAAM,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;EAChC;EACA,QAAQ,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;EACjE,OAAO;EACP,KAAK;;EAEL;EACA,IAAI,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,GAAG,EAAE;EAC9D,MAAM,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;;EAEpC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;EAC1B,QAAQ,OAAO,KAAK,CAAC;EACrB,OAAO;;EAEP,MAAM,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;EAChC,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;EACrC,QAAQ,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;EAC7B,QAAQ,OAAO,IAAI,CAAC;EACpB,OAAO;;EAEP,MAAM,OAAO,KAAK,CAAC;EACnB,KAAK,CAAC,CAAC;;EAEP;EACA,IAAI,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,EAAE;EAC3D,MAAM,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;;EAEjC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;EAC1B,QAAQ,OAAO,KAAK,CAAC,CAAC;EACtB,OAAO;;EAEP,MAAM,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;EAChC,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;EACrC,QAAQ,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;EACxB,OAAO;;EAEP,MAAM,OAAO,KAAK,CAAC,CAAC;EACpB,KAAK,CAAC,CAAC;;EAEP;EACA,IAAI,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,EAAE;EAC3D,MAAM,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;;EAEjC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;EAC1B,QAAQ,OAAO,KAAK,CAAC;EACrB,OAAO;;EAEP,MAAM,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;EAChC,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;EACrC,QAAQ,OAAO,IAAI,CAAC;EACpB,OAAO;;EAEP,MAAM,OAAO,KAAK,CAAC;EACnB,KAAK,CAAC,CAAC;;EAEP;EACA,IAAI,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,EAAE,KAAK,EAAE;EAClE,MAAM,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;;EAEjC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;EAC1B,QAAQ,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;EAClE,OAAO;;EAEP,MAAM,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;EAChC,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;EACrC,QAAQ,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;EACzB,QAAQ,OAAO,IAAI,CAAC;EACpB,OAAO;;EAEP,MAAM,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;EAClD,MAAM,OAAO,IAAI,CAAC;EAClB,KAAK,CAAC,CAAC;;EAEP,IAAI,SAAS,aAAa,CAAC,CAAC,EAAE,UAAU,EAAE;EAC1C,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;EAC1D,QAAQ,MAAM,IAAI,SAAS;EAC3B,UAAU,UAAU,GAAG,0CAA0C;EACjE,UAAU,OAAO,CAAC;EAClB,SAAS,CAAC;EACV,OAAO;EACP,KAAK;;EAEL,IAAI,SAAS,KAAK,CAAC,MAAM,EAAE;EAC3B,MAAM,OAAO,MAAM,GAAG,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;EAClD,KAAK;;EAEL,IAAI,SAAS,IAAI,GAAG;EACpB,MAAM,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;EACnD,KAAK;;EAEL,IAAI,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;EAC/C,IAAI,OAAO,OAAO,CAAC;EACnB,GAAG,GAAG,CAAC;;EAEP,EAAE,SAAS,QAAQ,CAAC,CAAC,EAAE;EACvB,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;EAC3B,GAAG;;EAEH,CAAC;EACD,EAAE,OAAO,UAAU,KAAK,WAAW,GAAG,UAAU;EAChD,EAAE,OAAO,IAAI,KAAK,WAAW,GAAG,IAAI;EACpC,EAAE,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM;EACxC,EAAE,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,GAAGM,SAAI;EAC/C,CAAC,CAAC;;;;;;;;ECxIF,IAAIC,KAAK,CAAT;;EAEA,IAAMC,wBAAwB,IAAIC,OAAJ,EAA9B;;MACqBC;;;EAGnB,uBAAc;EAAA;;EAEZ;EAFY,iDACZ,uBADY;;EAGZ,UAAKzK,KAAL,GAAaf,OAAOiL,MAAP,CAAc,EAAd,EAAkB,MAAKnL,WAAL,CAAiB2L,YAAnC,EAAiD,MAAK1K,KAAtD,CAAb;EACA,UAAK2K,SAAL,GAAiBL,IAAjB;EACA,UAAKM,QAAL,GAAgB,EAAhB;EACA,UAAKC,WAAL,GAAmB,KAAnB;EANY;EAOb;;wBAEDC,iDAAoB;EAAA;;EAClB,QAAI3H,IAAI,KAAK8B,UAAb;EACA,WAAO9B,KAAK,CAAC,KAAK9E,KAAlB,EAAyB;EACvB,WAAKA,KAAL,GAAa8E,EAAE9E,KAAf;EACA8E,UAAIA,EAAE8B,UAAF,IAAgB9B,EAAE4H,IAAtB;EACD;;EAED,QAAI,KAAKC,MAAT,EAAiB;EACf,WAAKC,SAAL,GAAiB,EAAjB;EACA9H,UAAI,KAAK8B,UAAT;EACA,UAAIiG,gBAAJ;EACA,aAAO/H,KAAK,CAAC+H,OAAb,EAAsB;EACpBA,kBAAU/H,EAAE+H,OAAZ;EACA/H,YAAIA,EAAE8B,UAAF,IAAgB9B,EAAE4H,IAAtB;EACD;EACD,UAAIG,OAAJ,EAAa;EACX,aAAKF,MAAL,CAAYjJ,OAAZ,CAAoB,qBAAa;EAC/B,iBAAKkJ,SAAL,CAAeE,SAAf,IAA4BD,QAAQC,SAAR,CAA5B;EACD,SAFD;EAGD,OAJD,MAIO;EACL,cAAM,qFAAN;EACD;EACF;;EAED,SAAKC,YAAL;;EAEA,SAAKC,aAAL;EACA,SAAKC,OAAL;EACA,SAAKC,YAAL;;EAEA,QAAIC,mBAAJ;EACA,QAAI,KAAKzM,WAAL,CAAiB0M,UAArB,EAAiC;EAC/BD,mBAAa,IAAb;EACD,KAFD,MAEO;EACL,UAAI,CAAC,KAAKA,UAAV,EAAsB;EACpBA,qBAAa,KAAKE,YAAL,CAAkB;EAC7BC,gBAAM;EADuB,SAAlB,CAAb;EAGD,OAJD,MAIO;EACLH,qBAAa,KAAKA,UAAlB;EACA,YAAIxD,WAAJ;EACA,eAAQA,KAAKwD,WAAWzD,UAAxB,EAAqC;EACnCyD,qBAAWtG,WAAX,CAAuB8C,EAAvB;EACD;EACF;EACF;;EAED,QAAI,CAACuC,sBAAsBqB,GAAtB,CAA0B,KAAK7M,WAA/B,CAAL,EAAkD;EAChD,UAAMK,MAAM,KAAKL,WAAL,CAAiBK,GAA7B;EACA,UAAIA,GAAJ,EAAS;EACP,YAAIyM,cAAc,EAAlB;EACA,YAAI,OAAOzM,GAAP,KAAe,QAAnB,EAA6B;EAC3ByM,wBAAc,CAAC5J,iBAAiB7C,GAAjB,CAAD,CAAd;EACD,SAFD,MAEO,IAAI2B,QAAQ3B,GAAR,CAAJ,EAAkB;EACvByM,wBAAczM,IAAI0M,GAAJ,CAAQ,sBAAc;EAClC,gBAAI,OAAO3J,UAAP,KAAsB,QAA1B,EAAoC;EAClC,qBAAOF,iBAAiBE,UAAjB,CAAP;EACD,aAFD,MAEO,IACLA,WAAW4J,OAAX,IACA,OAAO5J,WAAW4J,OAAlB,KAA8B,QAFzB,EAGL;EACA,qBAAO9J,iBAAiBE,WAAW4J,OAA5B,CAAP;EACD,aALM,MAKA;EACL,qBAAO5J,UAAP;EACD;EACF,WAXa,CAAd;EAYD,SAbM,MAaA,IAAI/C,IAAI2M,OAAJ,IAAe,OAAO3M,IAAI2M,OAAX,KAAuB,QAA1C,EAAoD;EACzDF,wBAAc,CAAC5J,iBAAiB7C,IAAI2M,OAArB,CAAD,CAAd;EACD,SAFM,MAEA;EACLF,wBAAc,CAACzM,GAAD,CAAd;EACD;EACDoM,mBAAWQ,kBAAX,GAAgCH,WAAhC;EACAtB,8BAAsBtG,GAAtB,CAA0B,KAAKlF,WAA/B,EAA4C8M,WAA5C;EACD;EACF,KA3BD,MA2BO;EACLL,iBAAWQ,kBAAX,GAAgCzB,sBAAsBnG,GAAtB,CAC9B,KAAKrF,WADyB,CAAhC;EAGD;;EAED,SAAKkN,YAAL;EACA5I,YAAQkI,YAAR,IAAwBlI,QAAQkI,YAAR,CAAqB,IAArB,CAAxB;;EAEA,QAAMW,WAAW,KAAKC,MAAL,CAAY,KAAKnM,KAAjB,EAAwB,KAAK3B,KAA7B,CAAjB;;EAEA,SAAK+N,QAAL,GAAgB1F,KAAK,IAAL,EAAWwF,QAAX,EAAqB,IAArB,EAA2B,IAA3B,CAAhB;EACA,SAAKA,QAAL;;EAEA,QAAI,KAAK9M,GAAT,EAAc;EACZoM,iBAAWjE,WAAX,CACEpI,SAAS,OAAO,KAAKC,GAAZ,KAAoB,UAApB,GAAiC,KAAKA,GAAL,EAAjC,GAA8C,KAAKA,GAA5D,CADF;EAGD;;EAED,QAAI,KAAKY,KAAL,CAAWZ,GAAf,EAAoB;EAClB,WAAKiN,mBAAL,GAA2BlN,SAAS,KAAKa,KAAL,CAAWZ,GAApB,CAA3B;EACA,WAAKkN,mBAAL,GAA2B,KAAKtM,KAAL,CAAWZ,GAAtC;EACAoM,iBAAWjE,WAAX,CAAuB,KAAK8E,mBAA5B;EACD;;EAED,QAAItL,QAAQ,KAAKqL,QAAb,CAAJ,EAA4B;EAC1B,WAAKA,QAAL,CAAcrK,OAAd,CAAsB,UAASkF,IAAT,EAAe;EACnCuE,mBAAWjE,WAAX,CAAuBN,IAAvB;EACD,OAFD;EAGD,KAJD,MAIO;EACL,WAAKmF,QAAL,IAAiBZ,WAAWjE,WAAX,CAAuB,KAAK6E,QAA5B,CAAjB;EACD;EACD,SAAKG,SAAL;EACA,SAAK1B,WAAL,GAAmB,IAAnB;EACD;;wBAED2B,uDAAuB;EACrB,SAAKC,SAAL;EACA,SAAK5B,WAAL,GAAmB,KAAnB;EACD;;wBAEDd,yBAAOlD,YAAY;EACjB,SAAK6F,WAAL,GAAmB,IAAnB;EACA,SAAKC,YAAL;EACA,SAAKV,YAAL;EACA;EACA,QAAI,KAAKK,mBAAL,IAA4B,KAAKtM,KAAL,CAAWZ,GAA3C,EAAgD;EAC9C,WAAKkN,mBAAL,GAA2B,KAAKtM,KAAL,CAAWZ,GAAtC;EACA,UAAI,KAAKiN,mBAAT,EAA8B;EAC5B,aAAKA,mBAAL,CAAyB7M,WAAzB,GAAuC,KAAK8M,mBAA5C;EACD,OAFD,MAEO;EACL;EACA,aAAKD,mBAAL,GAA2BlN,SAAS,KAAKa,KAAL,CAAWZ,GAApB,CAA3B;EACA,aAAKoM,UAAL,CAAgBjE,WAAhB,CAA4B,KAAK8E,mBAAjC;EACD;EACF;EACD,SAAKjB,YAAL;;EAEA,QAAMc,WAAW,KAAKC,MAAL,CAAY,KAAKnM,KAAjB,EAAwB,KAAK3B,KAA7B,CAAjB;EACA,SAAK6N,QAAL;;EAEA,SAAKE,QAAL,GAAgB1F,KACd,KAAK0F,QADS,EAEdF,QAFc,EAGd,KAAKnN,WAAL,CAAiB0M,UAAjB,GAA8B,IAA9B,GAAqC,KAAKD,UAH5B,EAId,IAJc,EAKd3E,UALc,CAAhB;EAOA,SAAK6F,WAAL,GAAmB,KAAnB;EACA,SAAKE,OAAL;EACD;;wBAEDC,mCAAY1M,KAAK;EAAA;;EACflB,WAAO6N,IAAP,CAAY3M,GAAZ,EAAiB4B,OAAjB,CAAyB,eAAO;EAC9B,aAAK/B,KAAL,CAAWoD,GAAX,IAAkBjD,IAAIiD,GAAJ,CAAlB;EACA,UAAI,OAAK2J,SAAT,EAAoB;EAClB,eAAKA,SAAL,CAAe3J,GAAf,IAAsBjD,IAAIiD,GAAJ,CAAtB;EACD;EACF,KALD;EAMA,SAAK2G,MAAL;EACD;;wBAEDlD,mCAAa;EACX,SAAKkD,MAAL,CAAY,IAAZ;EACD;;wBAEDjE,2CAAgB1C,KAAK;EACnB,2BAAM0C,eAAN,YAAsB1C,GAAtB;EACA;EACA,SAAKyH,WAAL,IAAoB,KAAKd,MAAL,EAApB;EACD;;wBAED5D,qCAAa/C,KAAK4J,KAAK;EACrB,QAAIA,OAAO,OAAOA,GAAP,KAAe,QAA1B,EAAoC;EAClC,6BAAM7G,YAAN,YAAmB/C,GAAnB,EAAwB6J,KAAKC,SAAL,CAAeF,GAAf,CAAxB;EACD,KAFD,MAEO;EACL,6BAAM7G,YAAN,YAAmB/C,GAAnB,EAAwB4J,GAAxB;EACD;EACD;EACA,SAAKnC,WAAL,IAAoB,KAAKd,MAAL,EAApB;EACD;;wBAEDlE,mDAAoBzC,KAAK;EACvB,2BAAM0C,eAAN,YAAsB1C,GAAtB;EACD;;wBAED8C,6CAAiB9C,KAAK4J,KAAK;EACzB,2BAAM7G,YAAN,YAAmB/C,GAAnB,EAAwB4J,GAAxB;EACD;;wBAED5B,uCAAe;EACb,QAAI,KAAKpL,KAAL,CAAW6C,WAAf,EAA4B;EAC5B,QAAMsE,MAAM,IAAZ;EACAA,QAAInH,KAAJ,CAAU,KAAV,IAAmBmH,IAAIgG,YAAJ,CAAiB,KAAjB,CAAnB;EACA,QAAMtD,QAAQ,KAAK9K,WAAL,CAAiBqO,SAA/B;EACA,QAAI,CAACvD,KAAL,EAAY;EACZ5K,WAAO6N,IAAP,CAAYjD,KAAZ,EAAmB9H,OAAnB,CAA2B,eAAO;EAChC,UAAMsL,QAAQtM,QAAQ8I,MAAMzG,GAAN,CAAR,IAAsByG,MAAMzG,GAAN,CAAtB,GAAmC,CAACyG,MAAMzG,GAAN,CAAD,CAAjD;EACA,UAAM4J,MAAM7F,IAAIgG,YAAJ,CAAiB7L,UAAU8B,GAAV,CAAjB,CAAZ;EACA,UAAI4J,QAAQ,IAAZ,EAAkB;EAChB,aAAK,IAAI5M,IAAI,CAAb,EAAgBA,IAAIiN,MAAMtK,MAA1B,EAAkC3C,GAAlC,EAAuC;EACrC,cAAMoE,OAAO6I,MAAMjN,CAAN,CAAb;EACA,cAAIkN,UAAU,KAAd;EACA,kBAAQ9I,IAAR;EACE,iBAAKtB,MAAL;EACEiE,kBAAInH,KAAJ,CAAUoD,GAAV,IAAiB4J,GAAjB;EACAM,wBAAU,IAAV;EACA;EACF,iBAAKC,MAAL;EACEpG,kBAAInH,KAAJ,CAAUoD,GAAV,IAAiBmK,OAAOP,GAAP,CAAjB;EACAM,wBAAU,IAAV;EACA;EACF,iBAAKE,OAAL;EACE,kBAAIR,QAAQ,OAAR,IAAmBA,QAAQ,GAA/B,EAAoC;EAClC7F,oBAAInH,KAAJ,CAAUoD,GAAV,IAAiB,KAAjB;EACD,eAFD,MAEO;EACL+D,oBAAInH,KAAJ,CAAUoD,GAAV,IAAiB,IAAjB;EACD;EACDkK,wBAAU,IAAV;EACA;EACF,iBAAKpP,KAAL;EACA,iBAAKe,MAAL;EACE,kBAAI+N,IAAI,CAAJ,MAAW,GAAf,EAAoB;EAClB7F,oBAAInH,KAAJ,CAAUoD,GAAV,IAAiBvB,aAAamL,IAAIS,MAAJ,CAAW,CAAX,CAAb,EAA4BC,IAAI9N,CAAhC,CAAjB;EACD,eAFD,MAEO;EACL,oBAAI;EACFuH,sBAAInH,KAAJ,CAAUoD,GAAV,IAAiB6J,KAAKU,KAAL,CAAWX,GAAX,CAAjB;EACD,iBAFD,CAEE,OAAO1I,CAAP,EAAU;EACVsJ,0BAAQC,IAAR,UACSzK,GADT,2FACkG4J,GADlG;EAGD;EACF;EACDM,wBAAU,IAAV;EACA;EA/BJ;EAiCA,cAAIA,OAAJ,EAAa;EACd;EACF,OAvCD,MAuCO;EACL,YACEnG,IAAIpI,WAAJ,CAAgB2L,YAAhB,IACAvD,IAAIpI,WAAJ,CAAgB2L,YAAhB,CAA6B/L,cAA7B,CAA4CyE,GAA5C,CAFF,EAGE;EACA+D,cAAInH,KAAJ,CAAUoD,GAAV,IAAiB+D,IAAIpI,WAAJ,CAAgB2L,YAAhB,CAA6BtH,GAA7B,CAAjB;EACD,SALD,MAKO;EACL+D,cAAInH,KAAJ,CAAUoD,GAAV,IAAiB,IAAjB;EACD;EACF;EACF,KApDD;EAqDD;;wBAED0K,qBAAKrM,MAAMsM,MAAM;EACf,QAAM/J,UAAU,KAAKhE,KAAL,QAAgBwB,WAAWC,IAAX,CAAhB,CAAhB;EACA,QAAIuC,OAAJ,EAAa;EACXA,cACE,IAAIgK,WAAJ,CAAgBvM,IAAhB,EAAsB;EACpBwM,gBAAQF;EADY,OAAtB,CADF;EAKD,KAND,MAMO;EACL,WAAKG,aAAL,CACE,IAAIF,WAAJ,CAAgBvM,IAAhB,EAAsB;EACpBwM,gBAAQF;EADY,OAAtB,CADF;EAKD;EACF;;wBAED1C,yCAAgB;;wBAEhBC,6BAAU;;wBAEVC,uCAAe;;wBAEfgB,iCAAY;;wBAEZE,iCAAY;;wBAEZE,uCAAe;;wBAEfC,6BAAU;;wBAEVX,uCAAe;;wBAEfC,+BAAW;;wBAEXjC,uCAAe;;;IArSsBpL;;EAAlB4L,UACZrC,KAAK;;ECdP,SAAS+D,MAAT,CAAgB7I,KAAhB,EAAuBsD,MAAvB,EAA+BvI,KAA/B,EAAsC;EAC3CuI,WAAS,OAAOA,MAAP,KAAkB,QAAlB,GAA6BtH,SAAS6O,aAAT,CAAuBvH,MAAvB,CAA7B,GAA8DA,MAAvE;EACA,MAAIvI,KAAJ,EAAW;EACTuI,WAAOvI,KAAP,GAAeA,KAAf;EACD;EACD,SAAOqI,KAAK,IAAL,EAAWpD,KAAX,EAAkBsD,MAAlB,EAA0B,KAA1B,CAAP;EACD;;;;;;;;ECLD,IAAMwH,eAAe,CAAC,KAAD,EAAQ,SAAR,CAArB;;AAEA,EAAO,SAASC,MAAT,CAAgB5M,IAAhB,EAAsB6M,IAAtB,EAA4BC,MAA5B,EAAoC;EACzC,MAAI7P,eAAe0F,GAAf,CAAmB3C,IAAnB,CAAJ,EAA8B;EAC5B;EACD;EACD,MAAI4B,QAAQ9E,OAAR,CAAgBkD,IAAhB,CAAJ,EAA2B;EACzB;EACD;EACD,MAAI6M,KAAKlG,EAAL,KAAY,WAAhB,EAA6B;EAC3B1J,mBAAe2P,MAAf,CAAsB5M,IAAtB,EAA4B6M,IAA5B;EACAjL,YAAQ9E,OAAR,CAAgBkD,IAAhB,IAAwB6M,IAAxB;EACD,GAHD,MAGO;EACL,QAAI,OAAOC,MAAP,KAAkB,QAAtB,EAAgC;EAC9BA,eAAS,EAAEnP,KAAKmP,MAAP,EAAT;EACD,KAFD,MAEO;EACLA,eAASA,UAAU,EAAnB;EACD;;EALI,QAOCC,GAPD;EAAA;;EAAA;EAAA;;EAAA;;EAAA;EAAA;EAAA;;EAAA,kJAgBHC,OAhBG,GAgBOF,OAAOE,OAhBd;EAAA;;EAAA,oBAkBHtC,MAlBG,qBAkBM;EACP,eAAOmC,KAAKrN,IAAL,CAAU,IAAV,EAAgB,IAAhB,CAAP;EACD,OApBE;;EAAA;EAAA,MAOawJ,SAPb;;EAOC+D,OAPD,CAQIpP,GARJ,GAQUmP,OAAOnP,GARjB;EAOCoP,OAPD,CAUIpB,SAVJ,GAUgBmB,OAAOnB,SAVvB;EAOCoB,OAPD,CAYI9D,YAZJ,GAYmB6D,OAAO7D,YAZ1B;EAOC8D,OAPD,CAcI/C,UAdJ,GAciB8C,OAAO9C,UAdxB;;EAAA,+BAuBIrI,GAvBJ;EAwBH,UAAI,OAAOmL,OAAOnL,GAAP,CAAP,KAAuB,UAA3B,EAAuC;EACrCoL,YAAIxP,SAAJ,CAAcoE,GAAd,IAAqB,YAAW;EAC9B,iBAAOmL,OAAOnL,GAAP,EAAYsL,KAAZ,CAAkB,IAAlB,EAAwB5L,SAAxB,CAAP;EACD,SAFD;EAGD;EA5BE;;EAuBL,SAAK,IAAIM,GAAT,IAAgBmL,MAAhB,EAAwB;EAAA,YAAfnL,GAAe;EAMvB;;EAEDgL,iBAAarM,OAAb,CAAqB,gBAAQ;EAC3B,UAAIwM,OAAOI,IAAP,KAAgBJ,OAAOI,IAAP,MAAiB,UAArC,EAAiD;EAC/CH,YAAIxP,SAAJ,CAAc2P,IAAd,IAAsB,YAAW;EAC/B,iBAAOJ,OAAOI,IAAP,CAAP;EACD,SAFD;EAGD;EACF,KAND;;EAQAjQ,mBAAe2P,MAAf,CAAsB5M,IAAtB,EAA4B+M,GAA5B;EACAnL,YAAQ9E,OAAR,CAAgBkD,IAAhB,IAAwB+M,GAAxB;EACD;EACF;;WCvDeI,GAAT,CAAanN,IAAb,EAAmB;EACxB,SAAO,UAASoN,MAAT,EAAiB;EACtBR,WAAO5M,IAAP,EAAaoN,MAAb;EACD,GAFD;EAGD;;;;;;;;ACGD,EAAO,SAASC,YAAT,CAAsBxL,KAAtB,EAA6BtD,KAA7B,EAAoC;EACzC,SAAOuC,EACLe,MAAMd,QADD,EAELtC,OAAOA,OAAO,EAAP,EAAWoD,MAAMb,UAAjB,CAAP,EAAqCzC,KAArC,CAFK,EAGL8C,UAAUC,MAAV,GAAmB,CAAnB,GAAuB,GAAGwD,KAAH,CAAStF,IAAT,CAAc6B,SAAd,EAAyB,CAAzB,CAAvB,GAAqDQ,MAAMrD,QAHtD,CAAP;EAKD;;WCfe8O,OAAT,CAAiB5H,GAAjB,EAAsB;EAC3B,MAAI7I,OAAO6I,IAAI6H,WAAJ,EAAX;EACA,SAAO1Q,QAAQA,KAAKyM,IAApB;EACD;;WCHekE,GAAT,CAAa7P,GAAb,EAAkB;EACvB,SAAOA,IAAIO,OAAJ,CAAY,0BAAZ,EAAwC,UAACuI,CAAD,EAAIgH,CAAJ,EAAU;EACvD,WAAQ9Q,OAAO+Q,UAAP,GAAoB5B,OAAO2B,CAAP,CAArB,GAAkC,GAAlC,GAAwC,IAA/C;EACD,GAFM,CAAP;EAGD;;ECJD;;;;;;;;EAQA,IAAIE,SAAS,GAAGzQ,cAAhB;;AAEA,EAAO,SAAS0Q,UAAT,GAAsB;EAC3B,MAAIC,UAAU,EAAd;;EAEA,OAAK,IAAIlP,IAAI,CAAb,EAAgBA,IAAI0C,UAAUC,MAA9B,EAAsC3C,GAAtC,EAA2C;EACzC,QAAImP,MAAMzM,UAAU1C,CAAV,CAAV;EACA,QAAI,CAACmP,GAAL,EAAU;;EAEV,QAAIC,UAAU,OAAOD,GAArB;;EAEA,QAAIC,YAAY,QAAZ,IAAwBA,YAAY,QAAxC,EAAkD;EAChDF,cAAQtM,IAAR,CAAauM,GAAb;EACD,KAFD,MAEO,IAAIrR,MAAM6C,OAAN,CAAcwO,GAAd,KAAsBA,IAAIxM,MAA9B,EAAsC;EAC3C,UAAI0M,QAAQJ,WAAWX,KAAX,CAAiB,IAAjB,EAAuBa,GAAvB,CAAZ;EACA,UAAIE,KAAJ,EAAW;EACTH,gBAAQtM,IAAR,CAAayM,KAAb;EACD;EACF,KALM,MAKA,IAAID,YAAY,QAAhB,EAA0B;EAC/B,WAAK,IAAIpM,GAAT,IAAgBmM,GAAhB,EAAqB;EACnB,YAAIH,OAAOnO,IAAP,CAAYsO,GAAZ,EAAiBnM,GAAjB,KAAyBmM,IAAInM,GAAJ,CAA7B,EAAuC;EACrCkM,kBAAQtM,IAAR,CAAaI,GAAb;EACD;EACF;EACF;EACF;;EAED,SAAOkM,QAAQI,IAAR,CAAa,GAAb,CAAP;EACD;;AAED,EAAO,SAASC,YAAT,GAAwB;EAAA,8BACJzR,MAAMc,SAAN,CAAgBuH,KAAhB,CAAsBtF,IAAtB,CAA2B6B,SAA3B,EAAsC,CAAtC,CADI;EAAA,MACtB9C,KADsB;EAAA,MACZ4P,IADY;;EAE7B,MAAI5P,MAAM6P,KAAV,EAAiB;EACfD,SAAKE,OAAL,CAAa9P,MAAM6P,KAAnB;EACA,WAAO7P,MAAM6P,KAAb;EACD,GAHD,MAGO,IAAI7P,MAAMsF,SAAV,EAAqB;EAC1BsK,SAAKE,OAAL,CAAa9P,MAAMsF,SAAnB;EACA,WAAOtF,MAAMsF,SAAb;EACD;EACD,MAAIsK,KAAK7M,MAAL,GAAc,CAAlB,EAAqB;EACnB,WAAO,EAAE8M,OAAOR,WAAWX,KAAX,CAAiB,IAAjB,EAAuBkB,IAAvB,CAAT,EAAP;EACD;EACF;;WClDeG,CAAT,CAAW5P,GAAX,EAAgB;EACrB,SAAO8M,KAAKC,SAAL,CAAe/M,GAAf,CAAP;EACD;;ECFD,CAAC,YAAY;AACb;EAEA,IAAI,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,oBAAoB,IAAI,QAAQ,EAAE,EAAE,OAAO,EAAE;;EAExF,IAAI,IAAI,WAAW,GAAG,UAAU,IAAI,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;EACrE,IAAI,IAAI,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;EAC1E,IAAI,IAAI,wBAAwB,GAAG,IAAI,OAAO,EAAE,CAAC;EACjD,IAAI,IAAI,aAAa,GAAG,OAAO,YAAY,KAAK,QAAQ,GAAG,KAAK,GAAG,YAAY,CAAC;;EAEhF,IAAI,IAAI,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;EAC/C,IAAI,IAAI,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC;EAC1C,IAAI,IAAI,aAAa,GAAG,iBAAiB,CAAC;EAC1C,IAAI,SAAS,aAAa,CAAC,QAAQ,EAAE;EACrC,QAAQ,IAAI,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;EAC5D,QAAQ,IAAI,SAAS,KAAK,QAAQ,EAAE;EACpC,YAAY,OAAO,CAAC,IAAI,CAAC,yHAAyH,CAAC,CAAC;EACpJ,SAAS;EACT,QAAQ,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;EAChC,KAAK;EACL,IAAI,SAAS,UAAU,CAAC,KAAK,EAAE;EAC/B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACxD,YAAY,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;EAChC,SAAS;EACT,KAAK;EACL,IAAI,SAAS,cAAc,CAAC,IAAI,EAAE,EAAE,EAAE;EACtC,QAAQ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE;EACvD,YAAY,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;EAC3C,SAAS,CAAC,CAAC;EACX,KAAK;EACL,IAAI,SAAS,kBAAkB,CAAC,OAAO,EAAE;EACzC,QAAQ,OAAO,aAAa,IAAI,OAAO;EACvC,cAAc,OAAO,CAAC,WAAW;EACjC,cAAc,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;EACzC,KAAK;EACL,IAAI,SAAS,MAAM,CAAC,GAAG,EAAE;EACzB,QAAQ,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;EAC5F,KAAK;EACL,IAAI,SAAS,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;EAC9B,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,EAAE,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;EACpF,KAAK;EACL,IAAI,SAAS,UAAU,CAAC,IAAI,EAAE;EAC9B,QAAQ,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;EAC1C,KAAK;EACL,IAAI,SAAS,aAAa,CAAC,OAAO,EAAE;EACpC,QAAQ,OAAO,OAAO,CAAC,UAAU,IAAI,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;EAC3E,KAAK;;EAEL,IAAI,IAAI,oBAAoB,GAAG;EAC/B,QAAQ,WAAW;EACnB,QAAQ,aAAa;EACrB,QAAQ,SAAS;EACjB,QAAQ,YAAY;EACpB,QAAQ,YAAY;EACpB,QAAQ,cAAc;EACtB,QAAQ,YAAY;EACpB,KAAK,CAAC;EACN,IAAI,IAAI,wBAAwB,GAAG,aAAa,CAAC;EACjD,IAAI,IAAI,mBAAmB,GAAG,wBAAwB,CAAC,SAAS,CAAC;EACjE,IAAI,mBAAmB,CAAC,OAAO,GAAG,YAAY;EAC9C,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,uDAAuD,CAAC,CAAC,CAAC;EAC1G,KAAK,CAAC;EACN,IAAI,mBAAmB,CAAC,WAAW,GAAG,YAAY;EAClD,QAAQ,MAAM,IAAI,aAAa,CAAC,+GAA+G,CAAC,CAAC;EACjJ,KAAK,CAAC;EACN,IAAI,SAAS,uBAAuB,CAAC,QAAQ,EAAE;EAC/C,QAAQ,OAAO,OAAO,QAAQ,KAAK,QAAQ;EAC3C,cAAc,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC;EAC7C,gBAAgB,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC;EAC3D,cAAc,KAAK,CAAC;EACpB,KAAK;EACL,IAAI,SAAS,kCAAkC,CAAC,QAAQ,EAAE;EAC1D,QAAQ,OAAO,OAAO,QAAQ,KAAK,QAAQ;EAC3C,cAAc,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC;EACzD,cAAc,KAAK,CAAC;EACpB,KAAK;EACL,IAAI,IAAI,gBAAgB,GAAG,IAAI,OAAO,EAAE,CAAC;EACzC,IAAI,IAAI,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;EACnC,IAAI,IAAI,mBAAmB,GAAG,IAAI,OAAO,EAAE,CAAC;EAC5C,IAAI,SAAS,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE;EACjD,QAAQ,IAAI,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;EACtD,QAAQ,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;EAC9D,QAAQ,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;EAC7C,QAAQ,OAAO,OAAO,CAAC;EACvB,KAAK;EACL,IAAI,SAAS,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE;EACnD,QAAQ,OAAO,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;EAC5D,KAAK;EACL,IAAI,SAAS,qBAAqB,CAAC,KAAK,EAAE,QAAQ,EAAE;EACpD,QAAQ,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;EACxD,QAAQ,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,SAAS,EAAE,EAAE,OAAO,SAAS,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;EACrH,KAAK;EACL,IAAI,SAAS,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE;EAC5C,QAAQ,qBAAqB,CAAC,YAAY;EAC1C,YAAY,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;EACtC,YAAY,cAAc,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;EACvE,SAAS,CAAC,CAAC;EACX,KAAK;EACL,IAAI,SAAS,0BAA0B,CAAC,IAAI,EAAE;EAC9C,QAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;EACzC,YAAY,MAAM,IAAI,SAAS,CAAC,oBAAoB,CAAC,CAAC;EACtD,SAAS;EACT,KAAK;EACL,IAAI,SAAS,qBAAqB,GAAG;EACrC,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC;EACxB,QAAQ,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;EACpD,QAAQ,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;EAC7C,QAAQ,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;EAChD,QAAQ,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;EACjC,QAAQ,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,OAAO,EAAE,CAAC,CAAC;EACrD,KAAK;EACL,IAAI,IAAI,OAAO,GAAG,qBAAqB,CAAC,SAAS,CAAC;EAClD,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,OAAO,CAAC,QAAQ,EAAE;EACjD,QAAQ,IAAI;EACZ,YAAY,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;EACvC,YAAY,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;EACzC,SAAS;EACT,QAAQ,OAAO,CAAC,EAAE;EAClB,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;EACrC,SAAS;EACT,KAAK,CAAC;EACN,IAAI,OAAO,CAAC,WAAW,GAAG,SAAS,WAAW,CAAC,QAAQ,EAAE;EACzD,QAAQ,0BAA0B,CAAC,IAAI,CAAC,CAAC;EACzC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;EAC1C,YAAY,IAAI,MAAM,GAAG,IAAI,CAAC;EAC9B,YAAY,IAAI,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;EAC/D,YAAY,KAAK,CAAC,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;EACxD,YAAY,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;EACtD,YAAY,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,QAAQ,EAAE;EAC/D,gBAAgB,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE;EAC5C,oBAAoB,cAAc,CAAC,MAAM,EAAE,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;EACnF,iBAAiB;EACjB,aAAa,CAAC,CAAC;EACf,SAAS;EACT,KAAK,CAAC;EACN,IAAI,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE;EACxC,QAAQ,YAAY,EAAE,IAAI;EAC1B,QAAQ,UAAU,EAAE,IAAI;EACxB,QAAQ,GAAG,EAAE,SAAS,QAAQ,GAAG;EACjC,YAAY,0BAA0B,CAAC,IAAI,CAAC,CAAC;EAC7C,YAAY,OAAO,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;EACvD,SAAS;EACT,KAAK,CAAC,CAAC;EACP,IAAI,oBAAoB,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE;EACnD,QAAQ,OAAO,CAAC,MAAM,CAAC,GAAG,YAAY;EACtC,YAAY,IAAI,IAAI,GAAG,IAAI,CAAC;EAC5B,YAAY,0BAA0B,CAAC,IAAI,CAAC,CAAC;EAC7C,YAAY,IAAI,IAAI,GAAG,SAAS,CAAC;EACjC,YAAY,IAAI,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;EACnD,YAAY,IAAI,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;EACjD,YAAY,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;EAC1D,YAAY,SAAS,CAAC,OAAO,CAAC,UAAU,QAAQ,EAAE;EAClD,gBAAgB,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE;EAC5C,oBAAoB,IAAI,KAAK,GAAG,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC;EAC3E,oBAAoB,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;EACrD,iBAAiB;EACjB,aAAa,CAAC,CAAC;EACf,YAAY,OAAO,MAAM,CAAC;EAC1B,SAAS,CAAC;EACV,KAAK,CAAC,CAAC;EACP,IAAI,cAAc,CAAC,qBAAqB,EAAE,MAAM,CAAC,WAAW,EAAE;EAC9D,QAAQ,YAAY,EAAE,IAAI;EAC1B,QAAQ,KAAK,EAAE,uBAAuB;EACtC,KAAK,CAAC,CAAC;;EAEP,IAAI,IAAI,sBAAsB,GAAG;EACjC,QAAQ,SAAS,EAAE,IAAI;EACvB,QAAQ,OAAO,EAAE,IAAI;EACrB,KAAK,CAAC;EACN,IAAI,IAAI,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;EAClC,IAAI,SAAS,qBAAqB,CAAC,OAAO,EAAE;EAC5C,QAAQ,IAAI,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;EAC9C,QAAQ,IAAI,CAAC,QAAQ,EAAE;EACvB,YAAY,QAAQ,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;EAC7C,YAAY,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;EAC7C,SAAS;EACT,QAAQ,OAAO,QAAQ,CAAC;EACxB,KAAK;EACL,IAAI,SAAS,+BAA+B,CAAC,WAAW,EAAE;EAC1D,QAAQ,cAAc,CAAC,WAAW,CAAC,SAAS,EAAE,oBAAoB,EAAE;EACpE,YAAY,YAAY,EAAE,IAAI;EAC9B,YAAY,UAAU,EAAE,IAAI;EAC5B,YAAY,GAAG,EAAE,YAAY;EAC7B,gBAAgB,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;EAC1D,aAAa;EACb,YAAY,GAAG,EAAE,UAAU,MAAM,EAAE;EACnC,gBAAgB,qBAAqB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;EAC3D,aAAa;EACb,SAAS,CAAC,CAAC;EACX,KAAK;EACL,IAAI,SAAS,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE;EACnD,QAAQ,IAAI,IAAI,GAAG,QAAQ,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,YAAY,EAAE,UAAU,SAAS,EAAE;EACnG,YAAY,OAAO,aAAa,CAAC,SAAS,CAAC;EAC3C,kBAAkB,UAAU,CAAC,aAAa;EAC1C,kBAAkB,UAAU,CAAC,aAAa,CAAC;EAC3C,SAAS;EACT,QAAQ,IAAI,EAAE,KAAK,CAAC,CAAC;EACrB,QAAQ,KAAK,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI;EAC3D,YAAY,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;EAC1C,SAAS;EACT,KAAK;EACL,IAAI,IAAI,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;EACjC,IAAI,IAAI,aAAa,GAAG,IAAI,OAAO,EAAE,CAAC;EACtC,IAAI,IAAI,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;EAClC,IAAI,SAAS,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE;EAC9C,QAAQ,QAAQ,OAAO,YAAY,gBAAgB;EACnD,YAAY,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE,OAAO,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE;EAC1G,KAAK;EACL,IAAI,SAAS,mBAAmB,CAAC,IAAI,EAAE;EACvC,QAAQ,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;EACzC,QAAQ,OAAO,OAAO,YAAY,QAAQ,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;EACpE,KAAK;EACL,IAAI,SAAS,KAAK,CAAC,IAAI,EAAE;EACzB,QAAQ,IAAI,SAAS,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;EAC1D,QAAQ,IAAI,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;EAC7C,QAAQ,IAAI,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;EAC3C,QAAQ,IAAI,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;EAClD,QAAQ,QAAQ,CAAC,UAAU,EAAE,CAAC;EAC9B,QAAQ,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;EACxC,YAAY,SAAS,CAAC,WAAW,CAAC,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;EACxG,SAAS,CAAC,CAAC;EACX,QAAQ,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;EAChD,QAAQ,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;EAC5D,QAAQ,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;EACxC,YAAY,cAAc,CAAC,KAAK,EAAE,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;EACrE,SAAS,CAAC,CAAC;EACX,KAAK;EACL,IAAI,SAAS,QAAQ,CAAC,OAAO,EAAE;EAC/B,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC;EACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;EACzB,QAAQ,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;EACpC,QAAQ,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;EACpC,QAAQ,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,gBAAgB,CAAC,UAAU,SAAS,EAAE,QAAQ,EAAE;EAChF,YAAY,IAAI,CAAC,QAAQ,EAAE;EAC3B,gBAAgB,QAAQ,CAAC,UAAU,EAAE,CAAC;EACtC,gBAAgB,OAAO;EACvB,aAAa;EACb,YAAY,SAAS,CAAC,OAAO,CAAC,UAAU,QAAQ,EAAE;EAClD,gBAAgB,IAAI,CAAC,WAAW,EAAE;EAClC,oBAAoB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,IAAI,EAAE;EACtE,wBAAwB,IAAI,EAAE,IAAI,YAAY,OAAO,CAAC,EAAE;EACxD,4BAA4B,OAAO;EACnC,yBAAyB;EACzB,wBAAwB,qBAAqB,CAAC,IAAI,EAAE,UAAU,IAAI,EAAE;EACpE,4BAA4B,qBAAqB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;EAClE,yBAAyB,CAAC,CAAC;EAC3B,qBAAqB,CAAC,CAAC;EACvB,iBAAiB;EACjB,gBAAgB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,IAAI,EAAE;EACpE,oBAAoB,IAAI,EAAE,IAAI,YAAY,OAAO,CAAC,EAAE;EACpD,wBAAwB,OAAO;EAC/B,qBAAqB;EACrB,oBAAoB,IAAI,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;EACvD,wBAAwB,KAAK,CAAC,IAAI,CAAC,CAAC;EACpC,qBAAqB;EACrB,oBAAoB,IAAI,CAAC,WAAW,EAAE;EACtC,wBAAwB,qBAAqB,CAAC,IAAI,EAAE,UAAU,IAAI,EAAE;EACpE,4BAA4B,qBAAqB,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;EACrE,yBAAyB,CAAC,CAAC;EAC3B,qBAAqB;EACrB,iBAAiB,CAAC,CAAC;EACnB,aAAa,CAAC,CAAC;EACf,SAAS,CAAC,CAAC,CAAC;EACZ,KAAK;EACL,IAAI,IAAI,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC;EACrC,IAAI,OAAO,CAAC,WAAW,GAAG,SAAS,WAAW,GAAG;EACjD,QAAQ,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;EACzC,QAAQ,OAAO,OAAO,YAAY,QAAQ;EAC1C,cAAc,OAAO,CAAC,UAAU,KAAK,SAAS;EAC9C,cAAc,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;EAC/C,KAAK,CAAC;EACN,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,OAAO,GAAG;EACzC,QAAQ,IAAI,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;EAClD,QAAQ,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;EACvE,QAAQ,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;EAChD,YAAY,KAAK,CAAC,IAAI,CAAC,CAAC;EACxB,SAAS;EACT,QAAQ,qBAAqB,CAAC,SAAS,EAAE,UAAU,IAAI,EAAE;EACzD,YAAY,qBAAqB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;EAClD,SAAS,CAAC,CAAC;EACX,KAAK,CAAC;EACN,IAAI,OAAO,CAAC,UAAU,GAAG,SAAS,UAAU,GAAG;EAC/C,QAAQ,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;EACzC,KAAK,CAAC;EACN,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE;EAC7C,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC;EACxB,QAAQ,IAAI,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;EACvF,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;EACpC,YAAY,MAAM,IAAI,SAAS,CAAC,qDAAqD,GAAG,YAAY,GAAG,oCAAoC,CAAC,CAAC;EAC7I,SAAS;EACT,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE;EACpD,YAAY,MAAM,IAAI,SAAS,CAAC,qDAAqD,GAAG,YAAY,GAAG,8CAA8C,CAAC,CAAC;EACvJ,SAAS;EACT,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,EAAE;EAC7D,YAAY,MAAM,IAAI,SAAS,CAAC,qDAAqD,GAAG,YAAY,GAAG,2CAA2C,CAAC,CAAC;EACpJ,SAAS;EACT,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;EAC7B,QAAQ,IAAI,eAAe,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;EACtD,QAAQ,IAAI,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;EAC1C,QAAQ,IAAI,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;EAChE,QAAQ,aAAa,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;EAC/C,YAAY,UAAU,CAAC,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;EAC1D,YAAY,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;EAC/C,SAAS,CAAC,CAAC;EACX,QAAQ,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;EAC9C,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;EAC3D,YAAY,KAAK,CAAC,IAAI,CAAC,CAAC;EACxB,SAAS;EACT,KAAK,CAAC;;EAEN,IAAI,MAAM,CAAC,aAAa,GAAG,qBAAqB,CAAC;EACjD,IAAI,+BAA+B,CAAC,QAAQ,CAAC,CAAC;EAC9C,IAAI,IAAI,YAAY,IAAI,MAAM,EAAE;EAChC,QAAQ,+BAA+B,CAAC,UAAU,CAAC,CAAC;EACpD,QAAQ,IAAI,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC;EACtC,QAAQ,IAAI,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC;EAC1C,QAAQ,KAAK,CAAC,YAAY,GAAG,SAAS,YAAY,CAAC,IAAI,EAAE;EACzD,YAAY,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;EACjD,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;EACxC,gBAAgB,wBAAwB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;EACzD,aAAa;EACb,YAAY,OAAO,IAAI,CAAC;EACxB,SAAS,CAAC;EACV,KAAK;EACL,IAAI,IAAI,gBAAgB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;EAC3D,IAAI,IAAI,gBAAgB,CAAC,WAAW,EAAE,EAAE;EACxC,QAAQ,gBAAgB,CAAC,OAAO,EAAE,CAAC;EACnC,KAAK;EACL,SAAS;EACT,QAAQ,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;EACvG,KAAK;;EAEL,CAAC,EAAE,EAAE;;EC7TLoC,EAAE4G,CAAF,GAAMpJ,QAAN;;EAEA,SAASiQ,SAAT,GAAqB;EACnB,SAAO,EAAP;EACD;;EAED,IAAMpQ,IAAI,EAAV;EACA,IAAMqQ,YAAYxF,SAAlB;EACA,IAAMyF,gBAAgB7B,MAAtB;EACA,IAAM8B,WAAW9M,QAAQ9E,OAAzB;;EAEA,IAAM6R,MAAM;EACVxB,UADU;EAEVnE,sBAFU;EAGVwF,sBAHU;EAIV9D,gBAJU;EAKV5J,MALU;EAMVhD,kBANU;EAOV8D,kBAPU;EAQVgL,gBARU;EASVS,4BATU;EAUVC,kBAVU;EAWVE,UAXU;EAYViB,8BAZU;EAaVb,wBAbU;EAcVM,4BAdU;EAeVK,sBAfU;EAgBVD,MAhBU;EAiBVI,oBAjBU;EAkBVvQ,MAlBU;EAmBVM,kBAnBU;EAoBVkE,UApBU;EAqBVH,UArBU;EAsBVpD,YAtBU;EAuBV8D;EAvBU,CAAZ;;EA0BAtB,QAAQ/E,IAAR,CAAaoP,GAAb,GAAmB0C,GAAnB;EACA/M,QAAQ/E,IAAR,CAAa8R,GAAb,GAAmBA,GAAnB;EACA/M,QAAQ/E,IAAR,CAAaoP,GAAb,CAAiB2C,OAAjB,GAA2B,SAA3B;;ECpDI,IAAI,OAAOC,MAAP,IAAe,WAAnB,EAAgCA,OAAOC,OAAP,GAAiB7C,GAAjB,CAAhC,KACKvP,KAAKuP,GAAL,GAAWA,GAAX;;"} \ No newline at end of file diff --git a/packages/omi/dist/omi.esm.js b/packages/omi/dist/omi.esm.js index a49d4439cb..e2f5ffcb83 100644 --- a/packages/omi/dist/omi.esm.js +++ b/packages/omi/dist/omi.esm.js @@ -1,5 +1,5 @@ /** - * Omi v6.25.18 http://omijs.org + * Omi v6.25.19 http://omijs.org * Front End Cross-Frameworks Framework. * By dntzhang https://github.com/dntzhang * Github: https://github.com/Tencent/omi @@ -1026,7 +1026,7 @@ var WeElement = function (_HTMLElement) { this.isInstalled = false; }; - WeElement.prototype.update = function update(ignoreAttrs, updateSelf) { + WeElement.prototype.update = function update(updateSelf) { this._willUpdate = true; this.beforeUpdate(); this.beforeRender(); @@ -1041,7 +1041,7 @@ var WeElement = function (_HTMLElement) { this.shadowRoot.appendChild(this._customStyleElement); } } - this.attrsToProps(ignoreAttrs); + this.attrsToProps(); var rendered = this.render(this.props, this.store); this.rendered(); @@ -1051,10 +1051,6 @@ var WeElement = function (_HTMLElement) { this.updated(); }; - WeElement.prototype.forceUpdate = function forceUpdate() { - this.update(true); - }; - WeElement.prototype.updateProps = function updateProps(obj) { var _this3 = this; @@ -1064,11 +1060,11 @@ var WeElement = function (_HTMLElement) { _this3.prevProps[key] = obj[key]; } }); - this.forceUpdate(); + this.update(); }; - WeElement.prototype.updateSelf = function updateSelf(ignoreAttrs) { - this.update(ignoreAttrs, true); + WeElement.prototype.updateSelf = function updateSelf() { + this.update(true); }; WeElement.prototype.removeAttribute = function removeAttribute(key) { @@ -1095,8 +1091,8 @@ var WeElement = function (_HTMLElement) { _HTMLElement.prototype.setAttribute.call(this, key, val); }; - WeElement.prototype.attrsToProps = function attrsToProps(ignoreAttrs) { - if (ignoreAttrs || this.store && this.store.ignoreAttrs || this.props.ignoreAttrs) return; + WeElement.prototype.attrsToProps = function attrsToProps() { + if (this.props.ignoreAttrs) return; var ele = this; ele.props['css'] = ele.getAttribute('css'); var attrs = this.constructor.propTypes; @@ -1732,7 +1728,7 @@ var omi = { options.root.Omi = omi; options.root.omi = omi; -options.root.Omi.version = '6.25.18'; +options.root.Omi.version = '6.25.19'; 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 f12b610217..7d96f5db6c 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\n\n/** Global flag indicating if the diff is performing hydration */\nlet hydrating = false\n\n/** Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n * @param {Element} [dom=null] A DOM node to mutate into the shape of the `vnode`\n * @param {VNode} vnode A VNode (with descendants forming a tree) representing the desired DOM structure\n * @returns {Element} dom The created/mutated element\n * @private\n */\nexport function diff(dom, vnode, parent, component, updateSelf) {\n // first render return undefined\n if (!dom && !vnode) return\n // diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\n let ret\n if (!diffLevel++) {\n // when first starting the diff, check if we're diffing an SVG or within an SVG\n isSvgMode = parent != null && parent.ownerSVGElement !== undefined\n\n // hydration is indicated by the existing element to be diffed not having a prop cache\n hydrating = dom != null && !(ATTR_KEY in dom)\n }\n if (vnode && vnode.nodeName === Fragment) {\n vnode = vnode.children\n }\n if (isArray(vnode)) {\n if (parent) {\n // don't use css and props.css when using h.f\n // 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\n // empty values (null, undefined, booleans) render as empty Text nodes\n if (vnode == null || typeof vnode === 'boolean') vnode = ''\n\n // Fast case: Strings & Numbers create/update Text nodes.\n if (typeof vnode === 'string' || typeof vnode === 'number') {\n // update if it's already a Text node:\n if (\n dom &&\n dom.splitText !== undefined &&\n dom.parentNode &&\n (!dom._component || component)\n ) {\n /* istanbul ignore if */ /* Browser quirk that can't be covered: https://github.com/developit/preact/commit/fd4f21f5c45dfd75151bd27b4c217d8003aa5eb9 */\n if (dom.nodeValue != vnode) {\n dom.nodeValue = vnode\n }\n } else {\n // it wasn't a Text node: replace it with one and recycle the old Element\n out = document.createTextNode(vnode)\n if (dom) {\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom)\n recollectNodeTree(dom, true)\n }\n }\n\n out[ATTR_KEY] = true\n\n return out\n }\n\n // If the VNode represents a Component, perform a component diff:\n let vnodeName = vnode.nodeName\n if (typeof vnodeName === 'function') {\n for (let key in options.mapping) {\n if (options.mapping[key] === vnodeName) {\n vnodeName = key\n vnode.nodeName = key\n break\n }\n }\n }\n // Tracks entering and exiting SVG namespace when descending through the tree.\n isSvgMode =\n vnodeName === 'svg'\n ? true\n : vnodeName === 'foreignObject'\n ? false\n : isSvgMode\n\n // If there's no existing element or it's the wrong type, create a new one:\n vnodeName = String(vnodeName)\n if (!dom || !isNamedNode(dom, vnodeName)) {\n out = createNode(vnodeName, isSvgMode)\n\n if (dom) {\n // move children into the replacement node\n while (dom.firstChild) out.appendChild(dom.firstChild)\n\n // if the previous Element was mounted into the DOM, replace it inline\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom)\n\n // recycle the old element (skips non-Element node types)\n recollectNodeTree(dom, true)\n }\n }\n\n let fc = out.firstChild,\n props = out[ATTR_KEY],\n vchildren = vnode.children\n\n if (props == null) {\n props = out[ATTR_KEY] = {}\n for (let a = out.attributes, i = a.length; i--; )\n props[a[i].name] = a[i].value\n }\n\n // Optimization: fast-path for elements containing a single TextNode:\n if (\n !hydrating &&\n vchildren &&\n vchildren.length === 1 &&\n typeof vchildren[0] === 'string' &&\n fc != null &&\n fc.splitText !== undefined &&\n fc.nextSibling == null\n ) {\n if (fc.nodeValue != vchildren[0]) {\n fc.nodeValue = vchildren[0]\n }\n }\n // otherwise, if there are existing or new children, diff them:\n else if ((vchildren && vchildren.length) || fc != null) {\n if (!(out.constructor.is == 'WeElement' && out.constructor.noSlot)) {\n innerDiffNode(\n out,\n vchildren,\n hydrating || props.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\n return out\n}\n\n/** Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n * @param {Element} dom Element whose children should be compared & mutated\n * @param {Array} vchildren Array of VNodes to compare to `dom.childNodes`\n * @param {Boolean} isHydrating If `true`, consumes externally created elements similar to hydration\n */\nfunction innerDiffNode(dom, vchildren, isHydrating, component, updateSelf) {\n let originalChildren = dom.childNodes,\n children = [],\n keyed = {},\n keyedLen = 0,\n min = 0,\n len = originalChildren.length,\n childrenLen = 0,\n vlen = vchildren ? vchildren.length : 0,\n j,\n c,\n f,\n vchild,\n child\n\n // Build up a map of keyed children and an Array of unkeyed children:\n if (len !== 0) {\n for (let i = 0; i < len; i++) {\n let child = originalChildren[i],\n props = child[ATTR_KEY],\n key =\n vlen && props\n ? child._component\n ? child._component.__key\n : props.key\n : null\n if (key != null) {\n keyedLen++\n keyed[key] = child\n } else if (\n props ||\n (child.splitText !== undefined\n ? isHydrating\n ? child.nodeValue.trim()\n : true\n : isHydrating)\n ) {\n children[childrenLen++] = child\n }\n }\n }\n\n if (vlen !== 0) {\n for (let i = 0; i < vlen; i++) {\n vchild = vchildren[i]\n child = null\n\n if (vchild) {\n // attempt to find a node based on key matching\n let key = vchild.key\n if (key != null) {\n if (keyedLen && keyed[key] !== undefined) {\n child = keyed[key]\n keyed[key] = undefined\n keyedLen--\n }\n }\n // attempt to pluck a node of the same type from the existing children\n else if (!child && min < childrenLen) {\n for (j = min; j < childrenLen; j++) {\n if (\n children[j] !== undefined &&\n isSameNodeType((c = children[j]), vchild, isHydrating)\n ) {\n child = c\n children[j] = undefined\n if (j === childrenLen - 1) childrenLen--\n if (j === min) min++\n break\n }\n }\n }\n }\n\n // morph the matched/found/created DOM child to match vchild (deep)\n child = idiff(child, vchild, component, updateSelf)\n\n f = originalChildren[i]\n if (child && child !== dom && child !== f) {\n if (f == null) {\n dom.appendChild(child)\n } else if (child === f.nextSibling) {\n removeNode(f)\n } else {\n dom.insertBefore(child, f)\n }\n }\n }\n }\n\n // remove unused keyed children:\n if (keyedLen) {\n for (let i in keyed)\n if (keyed[i] !== undefined) recollectNodeTree(keyed[i], false)\n }\n\n // remove orphaned unkeyed children:\n while (min <= childrenLen) {\n if ((child = children[childrenLen--]) !== undefined)\n recollectNodeTree(child, false)\n }\n}\n\n/** Recursively recycle (or just unmount) a node and its descendants.\n * @param {Node} node DOM node to start unmount/removal from\n * @param {Boolean} [unmountOnly=false] If `true`, only triggers unmount lifecycle, skips removal\n */\nexport function recollectNodeTree(node, unmountOnly) {\n // If the node's VNode had a ref function, invoke it with null here.\n // (this is part of the React spec, and smart for unsetting references)\n if (node[ATTR_KEY] != null && node[ATTR_KEY].ref) {\n if (typeof node[ATTR_KEY].ref === 'function') {\n node[ATTR_KEY].ref(null)\n } else if (node[ATTR_KEY].ref.current) {\n node[ATTR_KEY].ref.current = null\n }\n }\n\n if (unmountOnly === false || node[ATTR_KEY] == null) {\n removeNode(node)\n }\n\n removeChildren(node)\n}\n\n/** Recollect/unmount all children.\n * - we use .lastChild here because it causes less reflow than .firstChild\n * - it's also cheaper than accessing the .childNodes Live NodeList\n */\nexport function removeChildren(node) {\n node = node.lastChild\n while (node) {\n let next = node.previousSibling\n recollectNodeTree(node, true)\n node = next\n }\n}\n\n/** Apply differences in attributes from a VNode to the given DOM Element.\n * @param {Element} dom Element with attributes to diff `attrs` against\n * @param {Object} attrs The desired end-state key-value attribute pairs\n * @param {Object} old Current/previous attributes (from previous VNode or element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old, component, updateSelf) {\n let name\n //let update = false\n let isWeElement = dom.update\n let oldClone\n if (dom.receiveProps) {\n oldClone = Object.assign({}, old)\n }\n // remove attributes no longer present on the vnode by setting them to undefined\n for (name in old) {\n if (!(attrs && attrs[name] != null) && old[name] != null) {\n setAccessor(\n dom,\n name,\n old[name],\n (old[name] = undefined),\n isSvgMode,\n component\n )\n if (isWeElement) {\n delete dom.props[name]\n //update = true\n }\n }\n }\n\n // add new & update changed attributes\n for (name in attrs) {\n if (isWeElement && typeof attrs[name] === 'object' && name !== 'ref') {\n if (name === 'style') {\n setAccessor(\n dom,\n name,\n old[name],\n (old[name] = attrs[name]),\n isSvgMode,\n component\n )\n }\n let ccName = camelCase(name)\n dom.props[ccName] = old[ccName] = attrs[name]\n //update = true\n } else if (\n name !== 'children' &&\n (!(name in old) ||\n attrs[name] !==\n (name === 'value' || name === 'checked' ? dom[name] : old[name]))\n ) {\n setAccessor(dom, name, old[name], attrs[name], isSvgMode, component)\n //fix lazy load props missing\n if (dom.nodeName.indexOf('-') !== -1) {\n dom.props = dom.props || {}\n let ccName = camelCase(name)\n dom.props[ccName] = old[ccName] = attrs[name]\n //update = true\n } else {\n old[name] = attrs[name]\n }\n }\n }\n\n if (isWeElement && !updateSelf && dom.parentNode) {\n //__hasChildren is not accuracy when it was empty at first, so add dom.children.length > 0 condition\n //if (update || dom.__hasChildren || dom.children.length > 0 || (dom.store && !dom.store.data)) {\n if (dom.receiveProps(dom.props, oldClone) !== false) {\n dom.update()\n }\n //}\n }\n}\n","/*!\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(ignoreAttrs, updateSelf) {\n this._willUpdate = true\n this.beforeUpdate()\n this.beforeRender()\n //fix null !== undefined\n if (this._customStyleContent != this.props.css) {\n this._customStyleContent = this.props.css\n if (this._customStyleElement) {\n this._customStyleElement.textContent = this._customStyleContent\n } else {\n // 当 prop css 开始没有值,后来有值\n this._customStyleElement = cssToDom(this.props.css)\n this.shadowRoot.appendChild(this._customStyleElement)\n }\n }\n this.attrsToProps(ignoreAttrs)\n\n const rendered = this.render(this.props, this.store)\n this.rendered()\n\n this.rootNode = diff(\n this.rootNode,\n rendered,\n this.constructor.isLightDom ? this : this.shadowRoot,\n this,\n updateSelf\n )\n this._willUpdate = false\n this.updated()\n }\n\n forceUpdate() {\n this.update(true)\n }\n\n updateProps(obj) {\n Object.keys(obj).forEach(key => {\n this.props[key] = obj[key]\n if (this.prevProps) {\n this.prevProps[key] = obj[key]\n }\n })\n this.forceUpdate()\n }\n\n updateSelf(ignoreAttrs) {\n this.update(ignoreAttrs, true)\n }\n\n removeAttribute(key) {\n super.removeAttribute(key)\n //Avoid executing removeAttribute methods before connectedCallback\n this.isInstalled && this.update()\n }\n\n setAttribute(key, val) {\n if (val && typeof val === 'object') {\n super.setAttribute(key, JSON.stringify(val))\n } else {\n super.setAttribute(key, val)\n }\n //Avoid executing setAttribute methods before connectedCallback\n this.isInstalled && this.update()\n }\n\n pureRemoveAttribute(key) {\n super.removeAttribute(key)\n }\n\n pureSetAttribute(key, val) {\n super.setAttribute(key, val)\n }\n\n attrsToProps(ignoreAttrs) {\n if (\n ignoreAttrs ||\n (this.store && this.store.ignoreAttrs) ||\n this.props.ignoreAttrs\n )\n return\n const ele = this\n ele.props['css'] = ele.getAttribute('css')\n const attrs = this.constructor.propTypes\n if (!attrs) return\n Object.keys(attrs).forEach(key => {\n const 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.18'\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","diff","dom","parent","updateSelf","ret","ownerSVGElement","item","index","ele","idiff","one","appendChild","out","prevSvgMode","_component","nodeValue","createTextNode","replaceChild","vnodeName","firstChild","fc","vchildren","a","nextSibling","is","noSlot","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","forceUpdate","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\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\n\n/** Global flag indicating if the diff is performing hydration */\nlet hydrating = false\n\n/** Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n * @param {Element} [dom=null] A DOM node to mutate into the shape of the `vnode`\n * @param {VNode} vnode A VNode (with descendants forming a tree) representing the desired DOM structure\n * @returns {Element} dom The created/mutated element\n * @private\n */\nexport function diff(dom, vnode, parent, component, updateSelf) {\n // first render return undefined\n if (!dom && !vnode) return\n // diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\n let ret\n if (!diffLevel++) {\n // when first starting the diff, check if we're diffing an SVG or within an SVG\n isSvgMode = parent != null && parent.ownerSVGElement !== undefined\n\n // hydration is indicated by the existing element to be diffed not having a prop cache\n hydrating = dom != null && !(ATTR_KEY in dom)\n }\n if (vnode && vnode.nodeName === Fragment) {\n vnode = vnode.children\n }\n if (isArray(vnode)) {\n if (parent) {\n // don't use css and props.css when using h.f\n // 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\n // empty values (null, undefined, booleans) render as empty Text nodes\n if (vnode == null || typeof vnode === 'boolean') vnode = ''\n\n // Fast case: Strings & Numbers create/update Text nodes.\n if (typeof vnode === 'string' || typeof vnode === 'number') {\n // update if it's already a Text node:\n if (\n dom &&\n dom.splitText !== undefined &&\n dom.parentNode &&\n (!dom._component || component)\n ) {\n /* istanbul ignore if */ /* Browser quirk that can't be covered: https://github.com/developit/preact/commit/fd4f21f5c45dfd75151bd27b4c217d8003aa5eb9 */\n if (dom.nodeValue != vnode) {\n dom.nodeValue = vnode\n }\n } else {\n // it wasn't a Text node: replace it with one and recycle the old Element\n out = document.createTextNode(vnode)\n if (dom) {\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom)\n recollectNodeTree(dom, true)\n }\n }\n\n out[ATTR_KEY] = true\n\n return out\n }\n\n // If the VNode represents a Component, perform a component diff:\n let vnodeName = vnode.nodeName\n if (typeof vnodeName === 'function') {\n for (let key in options.mapping) {\n if (options.mapping[key] === vnodeName) {\n vnodeName = key\n vnode.nodeName = key\n break\n }\n }\n }\n // Tracks entering and exiting SVG namespace when descending through the tree.\n isSvgMode =\n vnodeName === 'svg'\n ? true\n : vnodeName === 'foreignObject'\n ? false\n : isSvgMode\n\n // If there's no existing element or it's the wrong type, create a new one:\n vnodeName = String(vnodeName)\n if (!dom || !isNamedNode(dom, vnodeName)) {\n out = createNode(vnodeName, isSvgMode)\n\n if (dom) {\n // move children into the replacement node\n while (dom.firstChild) out.appendChild(dom.firstChild)\n\n // if the previous Element was mounted into the DOM, replace it inline\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom)\n\n // recycle the old element (skips non-Element node types)\n recollectNodeTree(dom, true)\n }\n }\n\n let fc = out.firstChild,\n props = out[ATTR_KEY],\n vchildren = vnode.children\n\n if (props == null) {\n props = out[ATTR_KEY] = {}\n for (let a = out.attributes, i = a.length; i--; )\n props[a[i].name] = a[i].value\n }\n\n // Optimization: fast-path for elements containing a single TextNode:\n if (\n !hydrating &&\n vchildren &&\n vchildren.length === 1 &&\n typeof vchildren[0] === 'string' &&\n fc != null &&\n fc.splitText !== undefined &&\n fc.nextSibling == null\n ) {\n if (fc.nodeValue != vchildren[0]) {\n fc.nodeValue = vchildren[0]\n }\n }\n // otherwise, if there are existing or new children, diff them:\n else if ((vchildren && vchildren.length) || fc != null) {\n if (!(out.constructor.is == 'WeElement' && out.constructor.noSlot)) {\n innerDiffNode(\n out,\n vchildren,\n hydrating || props.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\n return out\n}\n\n/** Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n * @param {Element} dom Element whose children should be compared & mutated\n * @param {Array} vchildren Array of VNodes to compare to `dom.childNodes`\n * @param {Boolean} isHydrating If `true`, consumes externally created elements similar to hydration\n */\nfunction innerDiffNode(dom, vchildren, isHydrating, component, updateSelf) {\n let originalChildren = dom.childNodes,\n children = [],\n keyed = {},\n keyedLen = 0,\n min = 0,\n len = originalChildren.length,\n childrenLen = 0,\n vlen = vchildren ? vchildren.length : 0,\n j,\n c,\n f,\n vchild,\n child\n\n // Build up a map of keyed children and an Array of unkeyed children:\n if (len !== 0) {\n for (let i = 0; i < len; i++) {\n let child = originalChildren[i],\n props = child[ATTR_KEY],\n key =\n vlen && props\n ? child._component\n ? child._component.__key\n : props.key\n : null\n if (key != null) {\n keyedLen++\n keyed[key] = child\n } else if (\n props ||\n (child.splitText !== undefined\n ? isHydrating\n ? child.nodeValue.trim()\n : true\n : isHydrating)\n ) {\n children[childrenLen++] = child\n }\n }\n }\n\n if (vlen !== 0) {\n for (let i = 0; i < vlen; i++) {\n vchild = vchildren[i]\n child = null\n\n if (vchild) {\n // attempt to find a node based on key matching\n let key = vchild.key\n if (key != null) {\n if (keyedLen && keyed[key] !== undefined) {\n child = keyed[key]\n keyed[key] = undefined\n keyedLen--\n }\n }\n // attempt to pluck a node of the same type from the existing children\n else if (!child && min < childrenLen) {\n for (j = min; j < childrenLen; j++) {\n if (\n children[j] !== undefined &&\n isSameNodeType((c = children[j]), vchild, isHydrating)\n ) {\n child = c\n children[j] = undefined\n if (j === childrenLen - 1) childrenLen--\n if (j === min) min++\n break\n }\n }\n }\n }\n\n // morph the matched/found/created DOM child to match vchild (deep)\n child = idiff(child, vchild, component, updateSelf)\n\n f = originalChildren[i]\n if (child && child !== dom && child !== f) {\n if (f == null) {\n dom.appendChild(child)\n } else if (child === f.nextSibling) {\n removeNode(f)\n } else {\n dom.insertBefore(child, f)\n }\n }\n }\n }\n\n // remove unused keyed children:\n if (keyedLen) {\n for (let i in keyed)\n if (keyed[i] !== undefined) recollectNodeTree(keyed[i], false)\n }\n\n // remove orphaned unkeyed children:\n while (min <= childrenLen) {\n if ((child = children[childrenLen--]) !== undefined)\n recollectNodeTree(child, false)\n }\n}\n\n/** Recursively recycle (or just unmount) a node and its descendants.\n * @param {Node} node DOM node to start unmount/removal from\n * @param {Boolean} [unmountOnly=false] If `true`, only triggers unmount lifecycle, skips removal\n */\nexport function recollectNodeTree(node, unmountOnly) {\n // If the node's VNode had a ref function, invoke it with null here.\n // (this is part of the React spec, and smart for unsetting references)\n if (node[ATTR_KEY] != null && node[ATTR_KEY].ref) {\n if (typeof node[ATTR_KEY].ref === 'function') {\n node[ATTR_KEY].ref(null)\n } else if (node[ATTR_KEY].ref.current) {\n node[ATTR_KEY].ref.current = null\n }\n }\n\n if (unmountOnly === false || node[ATTR_KEY] == null) {\n removeNode(node)\n }\n\n removeChildren(node)\n}\n\n/** Recollect/unmount all children.\n * - we use .lastChild here because it causes less reflow than .firstChild\n * - it's also cheaper than accessing the .childNodes Live NodeList\n */\nexport function removeChildren(node) {\n node = node.lastChild\n while (node) {\n let next = node.previousSibling\n recollectNodeTree(node, true)\n node = next\n }\n}\n\n/** Apply differences in attributes from a VNode to the given DOM Element.\n * @param {Element} dom Element with attributes to diff `attrs` against\n * @param {Object} attrs The desired end-state key-value attribute pairs\n * @param {Object} old Current/previous attributes (from previous VNode or element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old, component, updateSelf) {\n let name\n //let update = false\n let isWeElement = dom.update\n let oldClone\n if (dom.receiveProps) {\n oldClone = Object.assign({}, old)\n }\n // remove attributes no longer present on the vnode by setting them to undefined\n for (name in old) {\n if (!(attrs && attrs[name] != null) && old[name] != null) {\n setAccessor(\n dom,\n name,\n old[name],\n (old[name] = undefined),\n isSvgMode,\n component\n )\n if (isWeElement) {\n delete dom.props[name]\n //update = true\n }\n }\n }\n\n // add new & update changed attributes\n for (name in attrs) {\n if (isWeElement && typeof attrs[name] === 'object' && name !== 'ref') {\n if (name === 'style') {\n setAccessor(\n dom,\n name,\n old[name],\n (old[name] = attrs[name]),\n isSvgMode,\n component\n )\n }\n let ccName = camelCase(name)\n dom.props[ccName] = old[ccName] = attrs[name]\n //update = true\n } else if (\n name !== 'children' &&\n (!(name in old) ||\n attrs[name] !==\n (name === 'value' || name === 'checked' ? dom[name] : old[name]))\n ) {\n setAccessor(dom, name, old[name], attrs[name], isSvgMode, component)\n //fix lazy load props missing\n if (dom.nodeName.indexOf('-') !== -1) {\n dom.props = dom.props || {}\n let ccName = camelCase(name)\n dom.props[ccName] = old[ccName] = attrs[name]\n //update = true\n } else {\n old[name] = attrs[name]\n }\n }\n }\n\n if (isWeElement && !updateSelf && dom.parentNode) {\n //__hasChildren is not accuracy when it was empty at first, so add dom.children.length > 0 condition\n //if (update || dom.__hasChildren || dom.children.length > 0 || (dom.store && !dom.store.data)) {\n if (dom.receiveProps(dom.props, oldClone) !== false) {\n dom.update()\n }\n //}\n }\n}\n","/*!\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.19'\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","diff","dom","parent","updateSelf","ret","ownerSVGElement","item","index","ele","idiff","one","appendChild","out","prevSvgMode","_component","nodeValue","createTextNode","replaceChild","vnodeName","firstChild","fc","vchildren","a","nextSibling","is","noSlot","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 bab3b53f8b..d876948334 100644 --- a/packages/omi/dist/omi.js +++ b/packages/omi/dist/omi.js @@ -603,7 +603,7 @@ this.uninstall(); this.isInstalled = !1; }; - WeElement.prototype.update = function(ignoreAttrs, updateSelf) { + WeElement.prototype.update = function(updateSelf) { this.J = !0; this.beforeUpdate(); this.beforeRender(); @@ -614,26 +614,23 @@ this.shadowRoot.appendChild(this.N); } } - this.attrsToProps(ignoreAttrs); + this.attrsToProps(); var rendered = this.render(this.props, this.store); this.rendered(); this.rootNode = diff(this.rootNode, rendered, this.constructor.isLightDom ? this : this.shadowRoot, this, updateSelf); this.J = !1; this.updated(); }; - WeElement.prototype.forceUpdate = function() { - this.update(!0); - }; WeElement.prototype.updateProps = function(obj) { var _this3 = this; Object.keys(obj).forEach(function(key) { _this3.props[key] = obj[key]; if (_this3.prevProps) _this3.prevProps[key] = obj[key]; }); - this.forceUpdate(); + this.update(); }; - WeElement.prototype.updateSelf = function(ignoreAttrs) { - this.update(ignoreAttrs, !0); + WeElement.prototype.updateSelf = function() { + this.update(!0); }; WeElement.prototype.removeAttribute = function(key) { _HTMLElement.prototype.removeAttribute.call(this, key); @@ -649,8 +646,8 @@ WeElement.prototype.pureSetAttribute = function(key, val) { _HTMLElement.prototype.setAttribute.call(this, key, val); }; - WeElement.prototype.attrsToProps = function(ignoreAttrs) { - if (!(ignoreAttrs || this.store && this.store.ignoreAttrs || this.props.ignoreAttrs)) { + WeElement.prototype.attrsToProps = function() { + if (!this.props.ignoreAttrs) { var ele = this; ele.props.css = ele.getAttribute('css'); var attrs = this.constructor.propTypes; @@ -1016,7 +1013,7 @@ }; options.root.Omi = omi; options.root.omi = omi; - options.root.Omi.version = '6.25.18'; + options.root.Omi.version = '6.25.19'; 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 2c9c93a147..294639f3ce 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","nodeValue","createTextNode","replaceChild","vnodeName","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","forceUpdate","updated","_this3","updateProps","prevProps","val","getAttribute","keys","types","matched","Boolean","substr","Omi","parse","console","warn","fire","data","CustomEvent","detail","_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\n\n/** Global flag indicating if the diff is performing hydration */\nlet hydrating = false\n\n/** Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n * @param {Element} [dom=null] A DOM node to mutate into the shape of the `vnode`\n * @param {VNode} vnode A VNode (with descendants forming a tree) representing the desired DOM structure\n * @returns {Element} dom The created/mutated element\n * @private\n */\nexport function diff(dom, vnode, parent, component, updateSelf) {\n // first render return undefined\n if (!dom && !vnode) return\n // diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\n let ret\n if (!diffLevel++) {\n // when first starting the diff, check if we're diffing an SVG or within an SVG\n isSvgMode = parent != null && parent.ownerSVGElement !== undefined\n\n // hydration is indicated by the existing element to be diffed not having a prop cache\n hydrating = dom != null && !(ATTR_KEY in dom)\n }\n if (vnode && vnode.nodeName === Fragment) {\n vnode = vnode.children\n }\n if (isArray(vnode)) {\n if (parent) {\n // don't use css and props.css when using h.f\n // 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\n // empty values (null, undefined, booleans) render as empty Text nodes\n if (vnode == null || typeof vnode === 'boolean') vnode = ''\n\n // Fast case: Strings & Numbers create/update Text nodes.\n if (typeof vnode === 'string' || typeof vnode === 'number') {\n // update if it's already a Text node:\n if (\n dom &&\n dom.splitText !== undefined &&\n dom.parentNode &&\n (!dom._component || component)\n ) {\n /* istanbul ignore if */ /* Browser quirk that can't be covered: https://github.com/developit/preact/commit/fd4f21f5c45dfd75151bd27b4c217d8003aa5eb9 */\n if (dom.nodeValue != vnode) {\n dom.nodeValue = vnode\n }\n } else {\n // it wasn't a Text node: replace it with one and recycle the old Element\n out = document.createTextNode(vnode)\n if (dom) {\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom)\n recollectNodeTree(dom, true)\n }\n }\n\n out[ATTR_KEY] = true\n\n return out\n }\n\n // If the VNode represents a Component, perform a component diff:\n let vnodeName = vnode.nodeName\n if (typeof vnodeName === 'function') {\n for (let key in options.mapping) {\n if (options.mapping[key] === vnodeName) {\n vnodeName = key\n vnode.nodeName = key\n break\n }\n }\n }\n // Tracks entering and exiting SVG namespace when descending through the tree.\n isSvgMode =\n vnodeName === 'svg'\n ? true\n : vnodeName === 'foreignObject'\n ? false\n : isSvgMode\n\n // If there's no existing element or it's the wrong type, create a new one:\n vnodeName = String(vnodeName)\n if (!dom || !isNamedNode(dom, vnodeName)) {\n out = createNode(vnodeName, isSvgMode)\n\n if (dom) {\n // move children into the replacement node\n while (dom.firstChild) out.appendChild(dom.firstChild)\n\n // if the previous Element was mounted into the DOM, replace it inline\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom)\n\n // recycle the old element (skips non-Element node types)\n recollectNodeTree(dom, true)\n }\n }\n\n let fc = out.firstChild,\n props = out[ATTR_KEY],\n vchildren = vnode.children\n\n if (props == null) {\n props = out[ATTR_KEY] = {}\n for (let a = out.attributes, i = a.length; i--; )\n props[a[i].name] = a[i].value\n }\n\n // Optimization: fast-path for elements containing a single TextNode:\n if (\n !hydrating &&\n vchildren &&\n vchildren.length === 1 &&\n typeof vchildren[0] === 'string' &&\n fc != null &&\n fc.splitText !== undefined &&\n fc.nextSibling == null\n ) {\n if (fc.nodeValue != vchildren[0]) {\n fc.nodeValue = vchildren[0]\n }\n }\n // otherwise, if there are existing or new children, diff them:\n else if ((vchildren && vchildren.length) || fc != null) {\n if (!(out.constructor.is == 'WeElement' && out.constructor.noSlot)) {\n innerDiffNode(\n out,\n vchildren,\n hydrating || props.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\n return out\n}\n\n/** Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n * @param {Element} dom Element whose children should be compared & mutated\n * @param {Array} vchildren Array of VNodes to compare to `dom.childNodes`\n * @param {Boolean} isHydrating If `true`, consumes externally created elements similar to hydration\n */\nfunction innerDiffNode(dom, vchildren, isHydrating, component, updateSelf) {\n let originalChildren = dom.childNodes,\n children = [],\n keyed = {},\n keyedLen = 0,\n min = 0,\n len = originalChildren.length,\n childrenLen = 0,\n vlen = vchildren ? vchildren.length : 0,\n j,\n c,\n f,\n vchild,\n child\n\n // Build up a map of keyed children and an Array of unkeyed children:\n if (len !== 0) {\n for (let i = 0; i < len; i++) {\n let child = originalChildren[i],\n props = child[ATTR_KEY],\n key =\n vlen && props\n ? child._component\n ? child._component.__key\n : props.key\n : null\n if (key != null) {\n keyedLen++\n keyed[key] = child\n } else if (\n props ||\n (child.splitText !== undefined\n ? isHydrating\n ? child.nodeValue.trim()\n : true\n : isHydrating)\n ) {\n children[childrenLen++] = child\n }\n }\n }\n\n if (vlen !== 0) {\n for (let i = 0; i < vlen; i++) {\n vchild = vchildren[i]\n child = null\n\n if (vchild) {\n // attempt to find a node based on key matching\n let key = vchild.key\n if (key != null) {\n if (keyedLen && keyed[key] !== undefined) {\n child = keyed[key]\n keyed[key] = undefined\n keyedLen--\n }\n }\n // attempt to pluck a node of the same type from the existing children\n else if (!child && min < childrenLen) {\n for (j = min; j < childrenLen; j++) {\n if (\n children[j] !== undefined &&\n isSameNodeType((c = children[j]), vchild, isHydrating)\n ) {\n child = c\n children[j] = undefined\n if (j === childrenLen - 1) childrenLen--\n if (j === min) min++\n break\n }\n }\n }\n }\n\n // morph the matched/found/created DOM child to match vchild (deep)\n child = idiff(child, vchild, component, updateSelf)\n\n f = originalChildren[i]\n if (child && child !== dom && child !== f) {\n if (f == null) {\n dom.appendChild(child)\n } else if (child === f.nextSibling) {\n removeNode(f)\n } else {\n dom.insertBefore(child, f)\n }\n }\n }\n }\n\n // remove unused keyed children:\n if (keyedLen) {\n for (let i in keyed)\n if (keyed[i] !== undefined) recollectNodeTree(keyed[i], false)\n }\n\n // remove orphaned unkeyed children:\n while (min <= childrenLen) {\n if ((child = children[childrenLen--]) !== undefined)\n recollectNodeTree(child, false)\n }\n}\n\n/** Recursively recycle (or just unmount) a node and its descendants.\n * @param {Node} node DOM node to start unmount/removal from\n * @param {Boolean} [unmountOnly=false] If `true`, only triggers unmount lifecycle, skips removal\n */\nexport function recollectNodeTree(node, unmountOnly) {\n // If the node's VNode had a ref function, invoke it with null here.\n // (this is part of the React spec, and smart for unsetting references)\n if (node[ATTR_KEY] != null && node[ATTR_KEY].ref) {\n if (typeof node[ATTR_KEY].ref === 'function') {\n node[ATTR_KEY].ref(null)\n } else if (node[ATTR_KEY].ref.current) {\n node[ATTR_KEY].ref.current = null\n }\n }\n\n if (unmountOnly === false || node[ATTR_KEY] == null) {\n removeNode(node)\n }\n\n removeChildren(node)\n}\n\n/** Recollect/unmount all children.\n * - we use .lastChild here because it causes less reflow than .firstChild\n * - it's also cheaper than accessing the .childNodes Live NodeList\n */\nexport function removeChildren(node) {\n node = node.lastChild\n while (node) {\n let next = node.previousSibling\n recollectNodeTree(node, true)\n node = next\n }\n}\n\n/** Apply differences in attributes from a VNode to the given DOM Element.\n * @param {Element} dom Element with attributes to diff `attrs` against\n * @param {Object} attrs The desired end-state key-value attribute pairs\n * @param {Object} old Current/previous attributes (from previous VNode or element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old, component, updateSelf) {\n let name\n //let update = false\n let isWeElement = dom.update\n let oldClone\n if (dom.receiveProps) {\n oldClone = Object.assign({}, old)\n }\n // remove attributes no longer present on the vnode by setting them to undefined\n for (name in old) {\n if (!(attrs && attrs[name] != null) && old[name] != null) {\n setAccessor(\n dom,\n name,\n old[name],\n (old[name] = undefined),\n isSvgMode,\n component\n )\n if (isWeElement) {\n delete dom.props[name]\n //update = true\n }\n }\n }\n\n // add new & update changed attributes\n for (name in attrs) {\n if (isWeElement && typeof attrs[name] === 'object' && name !== 'ref') {\n if (name === 'style') {\n setAccessor(\n dom,\n name,\n old[name],\n (old[name] = attrs[name]),\n isSvgMode,\n component\n )\n }\n let ccName = camelCase(name)\n dom.props[ccName] = old[ccName] = attrs[name]\n //update = true\n } else if (\n name !== 'children' &&\n (!(name in old) ||\n attrs[name] !==\n (name === 'value' || name === 'checked' ? dom[name] : old[name]))\n ) {\n setAccessor(dom, name, old[name], attrs[name], isSvgMode, component)\n //fix lazy load props missing\n if (dom.nodeName.indexOf('-') !== -1) {\n dom.props = dom.props || {}\n let ccName = camelCase(name)\n dom.props[ccName] = old[ccName] = attrs[name]\n //update = true\n } else {\n old[name] = attrs[name]\n }\n }\n }\n\n if (isWeElement && !updateSelf && dom.parentNode) {\n //__hasChildren is not accuracy when it was empty at first, so add dom.children.length > 0 condition\n //if (update || dom.__hasChildren || dom.children.length > 0 || (dom.store && !dom.store.data)) {\n if (dom.receiveProps(dom.props, oldClone) !== false) {\n dom.update()\n }\n //}\n }\n}\n","/*!\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(ignoreAttrs, updateSelf) {\n this._willUpdate = true\n this.beforeUpdate()\n this.beforeRender()\n //fix null !== undefined\n if (this._customStyleContent != this.props.css) {\n this._customStyleContent = this.props.css\n if (this._customStyleElement) {\n this._customStyleElement.textContent = this._customStyleContent\n } else {\n // 当 prop css 开始没有值,后来有值\n this._customStyleElement = cssToDom(this.props.css)\n this.shadowRoot.appendChild(this._customStyleElement)\n }\n }\n this.attrsToProps(ignoreAttrs)\n\n const rendered = this.render(this.props, this.store)\n this.rendered()\n\n this.rootNode = diff(\n this.rootNode,\n rendered,\n this.constructor.isLightDom ? this : this.shadowRoot,\n this,\n updateSelf\n )\n this._willUpdate = false\n this.updated()\n }\n\n forceUpdate() {\n this.update(true)\n }\n\n updateProps(obj) {\n Object.keys(obj).forEach(key => {\n this.props[key] = obj[key]\n if (this.prevProps) {\n this.prevProps[key] = obj[key]\n }\n })\n this.forceUpdate()\n }\n\n updateSelf(ignoreAttrs) {\n this.update(ignoreAttrs, true)\n }\n\n removeAttribute(key) {\n super.removeAttribute(key)\n //Avoid executing removeAttribute methods before connectedCallback\n this.isInstalled && this.update()\n }\n\n setAttribute(key, val) {\n if (val && typeof val === 'object') {\n super.setAttribute(key, JSON.stringify(val))\n } else {\n super.setAttribute(key, val)\n }\n //Avoid executing setAttribute methods before connectedCallback\n this.isInstalled && this.update()\n }\n\n pureRemoveAttribute(key) {\n super.removeAttribute(key)\n }\n\n pureSetAttribute(key, val) {\n super.setAttribute(key, val)\n }\n\n attrsToProps(ignoreAttrs) {\n if (\n ignoreAttrs ||\n (this.store && this.store.ignoreAttrs) ||\n this.props.ignoreAttrs\n )\n return\n const ele = this\n ele.props['css'] = ele.getAttribute('css')\n const attrs = this.constructor.propTypes\n if (!attrs) return\n Object.keys(attrs).forEach(key => {\n const 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.18'\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/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","nodeValue","createTextNode","replaceChild","vnodeName","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\n\n/** Global flag indicating if the diff is performing hydration */\nlet hydrating = false\n\n/** Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n * @param {Element} [dom=null] A DOM node to mutate into the shape of the `vnode`\n * @param {VNode} vnode A VNode (with descendants forming a tree) representing the desired DOM structure\n * @returns {Element} dom The created/mutated element\n * @private\n */\nexport function diff(dom, vnode, parent, component, updateSelf) {\n // first render return undefined\n if (!dom && !vnode) return\n // diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\n let ret\n if (!diffLevel++) {\n // when first starting the diff, check if we're diffing an SVG or within an SVG\n isSvgMode = parent != null && parent.ownerSVGElement !== undefined\n\n // hydration is indicated by the existing element to be diffed not having a prop cache\n hydrating = dom != null && !(ATTR_KEY in dom)\n }\n if (vnode && vnode.nodeName === Fragment) {\n vnode = vnode.children\n }\n if (isArray(vnode)) {\n if (parent) {\n // don't use css and props.css when using h.f\n // 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\n // empty values (null, undefined, booleans) render as empty Text nodes\n if (vnode == null || typeof vnode === 'boolean') vnode = ''\n\n // Fast case: Strings & Numbers create/update Text nodes.\n if (typeof vnode === 'string' || typeof vnode === 'number') {\n // update if it's already a Text node:\n if (\n dom &&\n dom.splitText !== undefined &&\n dom.parentNode &&\n (!dom._component || component)\n ) {\n /* istanbul ignore if */ /* Browser quirk that can't be covered: https://github.com/developit/preact/commit/fd4f21f5c45dfd75151bd27b4c217d8003aa5eb9 */\n if (dom.nodeValue != vnode) {\n dom.nodeValue = vnode\n }\n } else {\n // it wasn't a Text node: replace it with one and recycle the old Element\n out = document.createTextNode(vnode)\n if (dom) {\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom)\n recollectNodeTree(dom, true)\n }\n }\n\n out[ATTR_KEY] = true\n\n return out\n }\n\n // If the VNode represents a Component, perform a component diff:\n let vnodeName = vnode.nodeName\n if (typeof vnodeName === 'function') {\n for (let key in options.mapping) {\n if (options.mapping[key] === vnodeName) {\n vnodeName = key\n vnode.nodeName = key\n break\n }\n }\n }\n // Tracks entering and exiting SVG namespace when descending through the tree.\n isSvgMode =\n vnodeName === 'svg'\n ? true\n : vnodeName === 'foreignObject'\n ? false\n : isSvgMode\n\n // If there's no existing element or it's the wrong type, create a new one:\n vnodeName = String(vnodeName)\n if (!dom || !isNamedNode(dom, vnodeName)) {\n out = createNode(vnodeName, isSvgMode)\n\n if (dom) {\n // move children into the replacement node\n while (dom.firstChild) out.appendChild(dom.firstChild)\n\n // if the previous Element was mounted into the DOM, replace it inline\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom)\n\n // recycle the old element (skips non-Element node types)\n recollectNodeTree(dom, true)\n }\n }\n\n let fc = out.firstChild,\n props = out[ATTR_KEY],\n vchildren = vnode.children\n\n if (props == null) {\n props = out[ATTR_KEY] = {}\n for (let a = out.attributes, i = a.length; i--; )\n props[a[i].name] = a[i].value\n }\n\n // Optimization: fast-path for elements containing a single TextNode:\n if (\n !hydrating &&\n vchildren &&\n vchildren.length === 1 &&\n typeof vchildren[0] === 'string' &&\n fc != null &&\n fc.splitText !== undefined &&\n fc.nextSibling == null\n ) {\n if (fc.nodeValue != vchildren[0]) {\n fc.nodeValue = vchildren[0]\n }\n }\n // otherwise, if there are existing or new children, diff them:\n else if ((vchildren && vchildren.length) || fc != null) {\n if (!(out.constructor.is == 'WeElement' && out.constructor.noSlot)) {\n innerDiffNode(\n out,\n vchildren,\n hydrating || props.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\n return out\n}\n\n/** Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n * @param {Element} dom Element whose children should be compared & mutated\n * @param {Array} vchildren Array of VNodes to compare to `dom.childNodes`\n * @param {Boolean} isHydrating If `true`, consumes externally created elements similar to hydration\n */\nfunction innerDiffNode(dom, vchildren, isHydrating, component, updateSelf) {\n let originalChildren = dom.childNodes,\n children = [],\n keyed = {},\n keyedLen = 0,\n min = 0,\n len = originalChildren.length,\n childrenLen = 0,\n vlen = vchildren ? vchildren.length : 0,\n j,\n c,\n f,\n vchild,\n child\n\n // Build up a map of keyed children and an Array of unkeyed children:\n if (len !== 0) {\n for (let i = 0; i < len; i++) {\n let child = originalChildren[i],\n props = child[ATTR_KEY],\n key =\n vlen && props\n ? child._component\n ? child._component.__key\n : props.key\n : null\n if (key != null) {\n keyedLen++\n keyed[key] = child\n } else if (\n props ||\n (child.splitText !== undefined\n ? isHydrating\n ? child.nodeValue.trim()\n : true\n : isHydrating)\n ) {\n children[childrenLen++] = child\n }\n }\n }\n\n if (vlen !== 0) {\n for (let i = 0; i < vlen; i++) {\n vchild = vchildren[i]\n child = null\n\n if (vchild) {\n // attempt to find a node based on key matching\n let key = vchild.key\n if (key != null) {\n if (keyedLen && keyed[key] !== undefined) {\n child = keyed[key]\n keyed[key] = undefined\n keyedLen--\n }\n }\n // attempt to pluck a node of the same type from the existing children\n else if (!child && min < childrenLen) {\n for (j = min; j < childrenLen; j++) {\n if (\n children[j] !== undefined &&\n isSameNodeType((c = children[j]), vchild, isHydrating)\n ) {\n child = c\n children[j] = undefined\n if (j === childrenLen - 1) childrenLen--\n if (j === min) min++\n break\n }\n }\n }\n }\n\n // morph the matched/found/created DOM child to match vchild (deep)\n child = idiff(child, vchild, component, updateSelf)\n\n f = originalChildren[i]\n if (child && child !== dom && child !== f) {\n if (f == null) {\n dom.appendChild(child)\n } else if (child === f.nextSibling) {\n removeNode(f)\n } else {\n dom.insertBefore(child, f)\n }\n }\n }\n }\n\n // remove unused keyed children:\n if (keyedLen) {\n for (let i in keyed)\n if (keyed[i] !== undefined) recollectNodeTree(keyed[i], false)\n }\n\n // remove orphaned unkeyed children:\n while (min <= childrenLen) {\n if ((child = children[childrenLen--]) !== undefined)\n recollectNodeTree(child, false)\n }\n}\n\n/** Recursively recycle (or just unmount) a node and its descendants.\n * @param {Node} node DOM node to start unmount/removal from\n * @param {Boolean} [unmountOnly=false] If `true`, only triggers unmount lifecycle, skips removal\n */\nexport function recollectNodeTree(node, unmountOnly) {\n // If the node's VNode had a ref function, invoke it with null here.\n // (this is part of the React spec, and smart for unsetting references)\n if (node[ATTR_KEY] != null && node[ATTR_KEY].ref) {\n if (typeof node[ATTR_KEY].ref === 'function') {\n node[ATTR_KEY].ref(null)\n } else if (node[ATTR_KEY].ref.current) {\n node[ATTR_KEY].ref.current = null\n }\n }\n\n if (unmountOnly === false || node[ATTR_KEY] == null) {\n removeNode(node)\n }\n\n removeChildren(node)\n}\n\n/** Recollect/unmount all children.\n * - we use .lastChild here because it causes less reflow than .firstChild\n * - it's also cheaper than accessing the .childNodes Live NodeList\n */\nexport function removeChildren(node) {\n node = node.lastChild\n while (node) {\n let next = node.previousSibling\n recollectNodeTree(node, true)\n node = next\n }\n}\n\n/** Apply differences in attributes from a VNode to the given DOM Element.\n * @param {Element} dom Element with attributes to diff `attrs` against\n * @param {Object} attrs The desired end-state key-value attribute pairs\n * @param {Object} old Current/previous attributes (from previous VNode or element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old, component, updateSelf) {\n let name\n //let update = false\n let isWeElement = dom.update\n let oldClone\n if (dom.receiveProps) {\n oldClone = Object.assign({}, old)\n }\n // remove attributes no longer present on the vnode by setting them to undefined\n for (name in old) {\n if (!(attrs && attrs[name] != null) && old[name] != null) {\n setAccessor(\n dom,\n name,\n old[name],\n (old[name] = undefined),\n isSvgMode,\n component\n )\n if (isWeElement) {\n delete dom.props[name]\n //update = true\n }\n }\n }\n\n // add new & update changed attributes\n for (name in attrs) {\n if (isWeElement && typeof attrs[name] === 'object' && name !== 'ref') {\n if (name === 'style') {\n setAccessor(\n dom,\n name,\n old[name],\n (old[name] = attrs[name]),\n isSvgMode,\n component\n )\n }\n let ccName = camelCase(name)\n dom.props[ccName] = old[ccName] = attrs[name]\n //update = true\n } else if (\n name !== 'children' &&\n (!(name in old) ||\n attrs[name] !==\n (name === 'value' || name === 'checked' ? dom[name] : old[name]))\n ) {\n setAccessor(dom, name, old[name], attrs[name], isSvgMode, component)\n //fix lazy load props missing\n if (dom.nodeName.indexOf('-') !== -1) {\n dom.props = dom.props || {}\n let ccName = camelCase(name)\n dom.props[ccName] = old[ccName] = attrs[name]\n //update = true\n } else {\n old[name] = attrs[name]\n }\n }\n }\n\n if (isWeElement && !updateSelf && dom.parentNode) {\n //__hasChildren is not accuracy when it was empty at first, so add dom.children.length > 0 condition\n //if (update || dom.__hasChildren || dom.children.length > 0 || (dom.store && !dom.store.data)) {\n if (dom.receiveProps(dom.props, oldClone) !== false) {\n dom.update()\n }\n //}\n }\n}\n","/*!\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.19'\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 92465911c4..2d2d86dae9 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 U(e){var t=e.getRootNode();return t&&t.host}function J(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;!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 te=0,ne=new WeakMap,oe=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=te++,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(ne.has(this.constructor))r.adoptedStyleSheets=ne.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,ne.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,n){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(t);var o=this.render(this.props,this.store);this.rendered(),this.rootNode=O(this.rootNode,o,this.constructor.isLightDom?this:this.shadowRoot,this,n),this.J=!1,this.updated()},n.prototype.forceUpdate=function(){this.update(!0)},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.forceUpdate()},n.prototype.updateSelf=function(e){this.update(e,!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(e){if(!(e||this.store&&this.store.ignoreAttrs||this.props.ignoreAttrs)){var t=this;t.props.css=t.getAttribute("css");var n=this.constructor.propTypes;n&&Object.keys(n).forEach(function(e){var o=i(n[e])?n[e]:[n[e]],r=t.getAttribute(c(e));if(null!==r)for(var s=0;s0&&S(this),g(e,function(e){v(e).connect()})},J.disconnect=function(){U.get(this).disconnect()},J.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 se={},ce=oe,ae=H,le=z.mapping,ue={tag:D,WeElement:oe,Component:ce,render:R,h:p,createElement:p,options:z,define:H,cloneElement:F,getHost:U,rpx:J,defineElement:ae,classNames:V,extractClass:$,createRef:q,o:B,elements:le,$:se,extend:d,get:v,set:y,bind:g,unbind:b};z.root.Omi=ue,z.root.omi=ue,z.root.Omi.version="6.25.18","undefined"!=typeof module?module.exports=ue:self.Omi=ue}(); +!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;!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 te=0,ne=new WeakMap,oe=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=te++,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(ne.has(this.constructor))r.adoptedStyleSheets=ne.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,ne.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 se={},ce=oe,ae=H,le=z.mapping,ue={tag:D,WeElement:oe,Component:ce,render:R,h:p,createElement:p,options:z,define:H,cloneElement:F,getHost:J,rpx:U,defineElement:ae,classNames:V,extractClass:$,createRef:q,o:B,elements:le,$:se,extend:d,get:v,set:y,bind:g,unbind:b};z.root.Omi=ue,z.root.omi=ue,z.root.Omi.version="6.25.19","undefined"!=typeof module?module.exports=ue:self.Omi=ue}(); //# 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 69a94fa263..3640b38353 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","nodeValue","createTextNode","replaceChild","vnodeName","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","forceUpdate","updated","_this3","updateProps","val","getAttribute","keys","types","matched","Number","substr","Omi","parse","console","warn","fire","data","CustomEvent","detail","_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\n\n/** Global flag indicating if the diff is performing hydration */\nlet hydrating = false\n\n/** Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n * @param {Element} [dom=null] A DOM node to mutate into the shape of the `vnode`\n * @param {VNode} vnode A VNode (with descendants forming a tree) representing the desired DOM structure\n * @returns {Element} dom The created/mutated element\n * @private\n */\nexport function diff(dom, vnode, parent, component, updateSelf) {\n // first render return undefined\n if (!dom && !vnode) return\n // diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\n let ret\n if (!diffLevel++) {\n // when first starting the diff, check if we're diffing an SVG or within an SVG\n isSvgMode = parent != null && parent.ownerSVGElement !== undefined\n\n // hydration is indicated by the existing element to be diffed not having a prop cache\n hydrating = dom != null && !(ATTR_KEY in dom)\n }\n if (vnode && vnode.nodeName === Fragment) {\n vnode = vnode.children\n }\n if (isArray(vnode)) {\n if (parent) {\n // don't use css and props.css when using h.f\n // 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\n // empty values (null, undefined, booleans) render as empty Text nodes\n if (vnode == null || typeof vnode === 'boolean') vnode = ''\n\n // Fast case: Strings & Numbers create/update Text nodes.\n if (typeof vnode === 'string' || typeof vnode === 'number') {\n // update if it's already a Text node:\n if (\n dom &&\n dom.splitText !== undefined &&\n dom.parentNode &&\n (!dom._component || component)\n ) {\n /* istanbul ignore if */ /* Browser quirk that can't be covered: https://github.com/developit/preact/commit/fd4f21f5c45dfd75151bd27b4c217d8003aa5eb9 */\n if (dom.nodeValue != vnode) {\n dom.nodeValue = vnode\n }\n } else {\n // it wasn't a Text node: replace it with one and recycle the old Element\n out = document.createTextNode(vnode)\n if (dom) {\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom)\n recollectNodeTree(dom, true)\n }\n }\n\n out[ATTR_KEY] = true\n\n return out\n }\n\n // If the VNode represents a Component, perform a component diff:\n let vnodeName = vnode.nodeName\n if (typeof vnodeName === 'function') {\n for (let key in options.mapping) {\n if (options.mapping[key] === vnodeName) {\n vnodeName = key\n vnode.nodeName = key\n break\n }\n }\n }\n // Tracks entering and exiting SVG namespace when descending through the tree.\n isSvgMode =\n vnodeName === 'svg'\n ? true\n : vnodeName === 'foreignObject'\n ? false\n : isSvgMode\n\n // If there's no existing element or it's the wrong type, create a new one:\n vnodeName = String(vnodeName)\n if (!dom || !isNamedNode(dom, vnodeName)) {\n out = createNode(vnodeName, isSvgMode)\n\n if (dom) {\n // move children into the replacement node\n while (dom.firstChild) out.appendChild(dom.firstChild)\n\n // if the previous Element was mounted into the DOM, replace it inline\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom)\n\n // recycle the old element (skips non-Element node types)\n recollectNodeTree(dom, true)\n }\n }\n\n let fc = out.firstChild,\n props = out[ATTR_KEY],\n vchildren = vnode.children\n\n if (props == null) {\n props = out[ATTR_KEY] = {}\n for (let a = out.attributes, i = a.length; i--; )\n props[a[i].name] = a[i].value\n }\n\n // Optimization: fast-path for elements containing a single TextNode:\n if (\n !hydrating &&\n vchildren &&\n vchildren.length === 1 &&\n typeof vchildren[0] === 'string' &&\n fc != null &&\n fc.splitText !== undefined &&\n fc.nextSibling == null\n ) {\n if (fc.nodeValue != vchildren[0]) {\n fc.nodeValue = vchildren[0]\n }\n }\n // otherwise, if there are existing or new children, diff them:\n else if ((vchildren && vchildren.length) || fc != null) {\n if (!(out.constructor.is == 'WeElement' && out.constructor.noSlot)) {\n innerDiffNode(\n out,\n vchildren,\n hydrating || props.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\n return out\n}\n\n/** Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n * @param {Element} dom Element whose children should be compared & mutated\n * @param {Array} vchildren Array of VNodes to compare to `dom.childNodes`\n * @param {Boolean} isHydrating If `true`, consumes externally created elements similar to hydration\n */\nfunction innerDiffNode(dom, vchildren, isHydrating, component, updateSelf) {\n let originalChildren = dom.childNodes,\n children = [],\n keyed = {},\n keyedLen = 0,\n min = 0,\n len = originalChildren.length,\n childrenLen = 0,\n vlen = vchildren ? vchildren.length : 0,\n j,\n c,\n f,\n vchild,\n child\n\n // Build up a map of keyed children and an Array of unkeyed children:\n if (len !== 0) {\n for (let i = 0; i < len; i++) {\n let child = originalChildren[i],\n props = child[ATTR_KEY],\n key =\n vlen && props\n ? child._component\n ? child._component.__key\n : props.key\n : null\n if (key != null) {\n keyedLen++\n keyed[key] = child\n } else if (\n props ||\n (child.splitText !== undefined\n ? isHydrating\n ? child.nodeValue.trim()\n : true\n : isHydrating)\n ) {\n children[childrenLen++] = child\n }\n }\n }\n\n if (vlen !== 0) {\n for (let i = 0; i < vlen; i++) {\n vchild = vchildren[i]\n child = null\n\n if (vchild) {\n // attempt to find a node based on key matching\n let key = vchild.key\n if (key != null) {\n if (keyedLen && keyed[key] !== undefined) {\n child = keyed[key]\n keyed[key] = undefined\n keyedLen--\n }\n }\n // attempt to pluck a node of the same type from the existing children\n else if (!child && min < childrenLen) {\n for (j = min; j < childrenLen; j++) {\n if (\n children[j] !== undefined &&\n isSameNodeType((c = children[j]), vchild, isHydrating)\n ) {\n child = c\n children[j] = undefined\n if (j === childrenLen - 1) childrenLen--\n if (j === min) min++\n break\n }\n }\n }\n }\n\n // morph the matched/found/created DOM child to match vchild (deep)\n child = idiff(child, vchild, component, updateSelf)\n\n f = originalChildren[i]\n if (child && child !== dom && child !== f) {\n if (f == null) {\n dom.appendChild(child)\n } else if (child === f.nextSibling) {\n removeNode(f)\n } else {\n dom.insertBefore(child, f)\n }\n }\n }\n }\n\n // remove unused keyed children:\n if (keyedLen) {\n for (let i in keyed)\n if (keyed[i] !== undefined) recollectNodeTree(keyed[i], false)\n }\n\n // remove orphaned unkeyed children:\n while (min <= childrenLen) {\n if ((child = children[childrenLen--]) !== undefined)\n recollectNodeTree(child, false)\n }\n}\n\n/** Recursively recycle (or just unmount) a node and its descendants.\n * @param {Node} node DOM node to start unmount/removal from\n * @param {Boolean} [unmountOnly=false] If `true`, only triggers unmount lifecycle, skips removal\n */\nexport function recollectNodeTree(node, unmountOnly) {\n // If the node's VNode had a ref function, invoke it with null here.\n // (this is part of the React spec, and smart for unsetting references)\n if (node[ATTR_KEY] != null && node[ATTR_KEY].ref) {\n if (typeof node[ATTR_KEY].ref === 'function') {\n node[ATTR_KEY].ref(null)\n } else if (node[ATTR_KEY].ref.current) {\n node[ATTR_KEY].ref.current = null\n }\n }\n\n if (unmountOnly === false || node[ATTR_KEY] == null) {\n removeNode(node)\n }\n\n removeChildren(node)\n}\n\n/** Recollect/unmount all children.\n * - we use .lastChild here because it causes less reflow than .firstChild\n * - it's also cheaper than accessing the .childNodes Live NodeList\n */\nexport function removeChildren(node) {\n node = node.lastChild\n while (node) {\n let next = node.previousSibling\n recollectNodeTree(node, true)\n node = next\n }\n}\n\n/** Apply differences in attributes from a VNode to the given DOM Element.\n * @param {Element} dom Element with attributes to diff `attrs` against\n * @param {Object} attrs The desired end-state key-value attribute pairs\n * @param {Object} old Current/previous attributes (from previous VNode or element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old, component, updateSelf) {\n let name\n //let update = false\n let isWeElement = dom.update\n let oldClone\n if (dom.receiveProps) {\n oldClone = Object.assign({}, old)\n }\n // remove attributes no longer present on the vnode by setting them to undefined\n for (name in old) {\n if (!(attrs && attrs[name] != null) && old[name] != null) {\n setAccessor(\n dom,\n name,\n old[name],\n (old[name] = undefined),\n isSvgMode,\n component\n )\n if (isWeElement) {\n delete dom.props[name]\n //update = true\n }\n }\n }\n\n // add new & update changed attributes\n for (name in attrs) {\n if (isWeElement && typeof attrs[name] === 'object' && name !== 'ref') {\n if (name === 'style') {\n setAccessor(\n dom,\n name,\n old[name],\n (old[name] = attrs[name]),\n isSvgMode,\n component\n )\n }\n let ccName = camelCase(name)\n dom.props[ccName] = old[ccName] = attrs[name]\n //update = true\n } else if (\n name !== 'children' &&\n (!(name in old) ||\n attrs[name] !==\n (name === 'value' || name === 'checked' ? dom[name] : old[name]))\n ) {\n setAccessor(dom, name, old[name], attrs[name], isSvgMode, component)\n //fix lazy load props missing\n if (dom.nodeName.indexOf('-') !== -1) {\n dom.props = dom.props || {}\n let ccName = camelCase(name)\n dom.props[ccName] = old[ccName] = attrs[name]\n //update = true\n } else {\n old[name] = attrs[name]\n }\n }\n }\n\n if (isWeElement && !updateSelf && dom.parentNode) {\n //__hasChildren is not accuracy when it was empty at first, so add dom.children.length > 0 condition\n //if (update || dom.__hasChildren || dom.children.length > 0 || (dom.store && !dom.store.data)) {\n if (dom.receiveProps(dom.props, oldClone) !== false) {\n dom.update()\n }\n //}\n }\n}\n","/*!\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(ignoreAttrs, updateSelf) {\n this._willUpdate = true\n this.beforeUpdate()\n this.beforeRender()\n //fix null !== undefined\n if (this._customStyleContent != this.props.css) {\n this._customStyleContent = this.props.css\n if (this._customStyleElement) {\n this._customStyleElement.textContent = this._customStyleContent\n } else {\n // 当 prop css 开始没有值,后来有值\n this._customStyleElement = cssToDom(this.props.css)\n this.shadowRoot.appendChild(this._customStyleElement)\n }\n }\n this.attrsToProps(ignoreAttrs)\n\n const rendered = this.render(this.props, this.store)\n this.rendered()\n\n this.rootNode = diff(\n this.rootNode,\n rendered,\n this.constructor.isLightDom ? this : this.shadowRoot,\n this,\n updateSelf\n )\n this._willUpdate = false\n this.updated()\n }\n\n forceUpdate() {\n this.update(true)\n }\n\n updateProps(obj) {\n Object.keys(obj).forEach(key => {\n this.props[key] = obj[key]\n if (this.prevProps) {\n this.prevProps[key] = obj[key]\n }\n })\n this.forceUpdate()\n }\n\n updateSelf(ignoreAttrs) {\n this.update(ignoreAttrs, true)\n }\n\n removeAttribute(key) {\n super.removeAttribute(key)\n //Avoid executing removeAttribute methods before connectedCallback\n this.isInstalled && this.update()\n }\n\n setAttribute(key, val) {\n if (val && typeof val === 'object') {\n super.setAttribute(key, JSON.stringify(val))\n } else {\n super.setAttribute(key, val)\n }\n //Avoid executing setAttribute methods before connectedCallback\n this.isInstalled && this.update()\n }\n\n pureRemoveAttribute(key) {\n super.removeAttribute(key)\n }\n\n pureSetAttribute(key, val) {\n super.setAttribute(key, val)\n }\n\n attrsToProps(ignoreAttrs) {\n if (\n ignoreAttrs ||\n (this.store && this.store.ignoreAttrs) ||\n this.props.ignoreAttrs\n )\n return\n const ele = this\n ele.props['css'] = ele.getAttribute('css')\n const attrs = this.constructor.propTypes\n if (!attrs) return\n Object.keys(attrs).forEach(key => {\n const 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.18'\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/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","nodeValue","createTextNode","replaceChild","vnodeName","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\n\n/** Global flag indicating if the diff is performing hydration */\nlet hydrating = false\n\n/** Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n * @param {Element} [dom=null] A DOM node to mutate into the shape of the `vnode`\n * @param {VNode} vnode A VNode (with descendants forming a tree) representing the desired DOM structure\n * @returns {Element} dom The created/mutated element\n * @private\n */\nexport function diff(dom, vnode, parent, component, updateSelf) {\n // first render return undefined\n if (!dom && !vnode) return\n // diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\n let ret\n if (!diffLevel++) {\n // when first starting the diff, check if we're diffing an SVG or within an SVG\n isSvgMode = parent != null && parent.ownerSVGElement !== undefined\n\n // hydration is indicated by the existing element to be diffed not having a prop cache\n hydrating = dom != null && !(ATTR_KEY in dom)\n }\n if (vnode && vnode.nodeName === Fragment) {\n vnode = vnode.children\n }\n if (isArray(vnode)) {\n if (parent) {\n // don't use css and props.css when using h.f\n // 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\n // empty values (null, undefined, booleans) render as empty Text nodes\n if (vnode == null || typeof vnode === 'boolean') vnode = ''\n\n // Fast case: Strings & Numbers create/update Text nodes.\n if (typeof vnode === 'string' || typeof vnode === 'number') {\n // update if it's already a Text node:\n if (\n dom &&\n dom.splitText !== undefined &&\n dom.parentNode &&\n (!dom._component || component)\n ) {\n /* istanbul ignore if */ /* Browser quirk that can't be covered: https://github.com/developit/preact/commit/fd4f21f5c45dfd75151bd27b4c217d8003aa5eb9 */\n if (dom.nodeValue != vnode) {\n dom.nodeValue = vnode\n }\n } else {\n // it wasn't a Text node: replace it with one and recycle the old Element\n out = document.createTextNode(vnode)\n if (dom) {\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom)\n recollectNodeTree(dom, true)\n }\n }\n\n out[ATTR_KEY] = true\n\n return out\n }\n\n // If the VNode represents a Component, perform a component diff:\n let vnodeName = vnode.nodeName\n if (typeof vnodeName === 'function') {\n for (let key in options.mapping) {\n if (options.mapping[key] === vnodeName) {\n vnodeName = key\n vnode.nodeName = key\n break\n }\n }\n }\n // Tracks entering and exiting SVG namespace when descending through the tree.\n isSvgMode =\n vnodeName === 'svg'\n ? true\n : vnodeName === 'foreignObject'\n ? false\n : isSvgMode\n\n // If there's no existing element or it's the wrong type, create a new one:\n vnodeName = String(vnodeName)\n if (!dom || !isNamedNode(dom, vnodeName)) {\n out = createNode(vnodeName, isSvgMode)\n\n if (dom) {\n // move children into the replacement node\n while (dom.firstChild) out.appendChild(dom.firstChild)\n\n // if the previous Element was mounted into the DOM, replace it inline\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom)\n\n // recycle the old element (skips non-Element node types)\n recollectNodeTree(dom, true)\n }\n }\n\n let fc = out.firstChild,\n props = out[ATTR_KEY],\n vchildren = vnode.children\n\n if (props == null) {\n props = out[ATTR_KEY] = {}\n for (let a = out.attributes, i = a.length; i--; )\n props[a[i].name] = a[i].value\n }\n\n // Optimization: fast-path for elements containing a single TextNode:\n if (\n !hydrating &&\n vchildren &&\n vchildren.length === 1 &&\n typeof vchildren[0] === 'string' &&\n fc != null &&\n fc.splitText !== undefined &&\n fc.nextSibling == null\n ) {\n if (fc.nodeValue != vchildren[0]) {\n fc.nodeValue = vchildren[0]\n }\n }\n // otherwise, if there are existing or new children, diff them:\n else if ((vchildren && vchildren.length) || fc != null) {\n if (!(out.constructor.is == 'WeElement' && out.constructor.noSlot)) {\n innerDiffNode(\n out,\n vchildren,\n hydrating || props.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\n return out\n}\n\n/** Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n * @param {Element} dom Element whose children should be compared & mutated\n * @param {Array} vchildren Array of VNodes to compare to `dom.childNodes`\n * @param {Boolean} isHydrating If `true`, consumes externally created elements similar to hydration\n */\nfunction innerDiffNode(dom, vchildren, isHydrating, component, updateSelf) {\n let originalChildren = dom.childNodes,\n children = [],\n keyed = {},\n keyedLen = 0,\n min = 0,\n len = originalChildren.length,\n childrenLen = 0,\n vlen = vchildren ? vchildren.length : 0,\n j,\n c,\n f,\n vchild,\n child\n\n // Build up a map of keyed children and an Array of unkeyed children:\n if (len !== 0) {\n for (let i = 0; i < len; i++) {\n let child = originalChildren[i],\n props = child[ATTR_KEY],\n key =\n vlen && props\n ? child._component\n ? child._component.__key\n : props.key\n : null\n if (key != null) {\n keyedLen++\n keyed[key] = child\n } else if (\n props ||\n (child.splitText !== undefined\n ? isHydrating\n ? child.nodeValue.trim()\n : true\n : isHydrating)\n ) {\n children[childrenLen++] = child\n }\n }\n }\n\n if (vlen !== 0) {\n for (let i = 0; i < vlen; i++) {\n vchild = vchildren[i]\n child = null\n\n if (vchild) {\n // attempt to find a node based on key matching\n let key = vchild.key\n if (key != null) {\n if (keyedLen && keyed[key] !== undefined) {\n child = keyed[key]\n keyed[key] = undefined\n keyedLen--\n }\n }\n // attempt to pluck a node of the same type from the existing children\n else if (!child && min < childrenLen) {\n for (j = min; j < childrenLen; j++) {\n if (\n children[j] !== undefined &&\n isSameNodeType((c = children[j]), vchild, isHydrating)\n ) {\n child = c\n children[j] = undefined\n if (j === childrenLen - 1) childrenLen--\n if (j === min) min++\n break\n }\n }\n }\n }\n\n // morph the matched/found/created DOM child to match vchild (deep)\n child = idiff(child, vchild, component, updateSelf)\n\n f = originalChildren[i]\n if (child && child !== dom && child !== f) {\n if (f == null) {\n dom.appendChild(child)\n } else if (child === f.nextSibling) {\n removeNode(f)\n } else {\n dom.insertBefore(child, f)\n }\n }\n }\n }\n\n // remove unused keyed children:\n if (keyedLen) {\n for (let i in keyed)\n if (keyed[i] !== undefined) recollectNodeTree(keyed[i], false)\n }\n\n // remove orphaned unkeyed children:\n while (min <= childrenLen) {\n if ((child = children[childrenLen--]) !== undefined)\n recollectNodeTree(child, false)\n }\n}\n\n/** Recursively recycle (or just unmount) a node and its descendants.\n * @param {Node} node DOM node to start unmount/removal from\n * @param {Boolean} [unmountOnly=false] If `true`, only triggers unmount lifecycle, skips removal\n */\nexport function recollectNodeTree(node, unmountOnly) {\n // If the node's VNode had a ref function, invoke it with null here.\n // (this is part of the React spec, and smart for unsetting references)\n if (node[ATTR_KEY] != null && node[ATTR_KEY].ref) {\n if (typeof node[ATTR_KEY].ref === 'function') {\n node[ATTR_KEY].ref(null)\n } else if (node[ATTR_KEY].ref.current) {\n node[ATTR_KEY].ref.current = null\n }\n }\n\n if (unmountOnly === false || node[ATTR_KEY] == null) {\n removeNode(node)\n }\n\n removeChildren(node)\n}\n\n/** Recollect/unmount all children.\n * - we use .lastChild here because it causes less reflow than .firstChild\n * - it's also cheaper than accessing the .childNodes Live NodeList\n */\nexport function removeChildren(node) {\n node = node.lastChild\n while (node) {\n let next = node.previousSibling\n recollectNodeTree(node, true)\n node = next\n }\n}\n\n/** Apply differences in attributes from a VNode to the given DOM Element.\n * @param {Element} dom Element with attributes to diff `attrs` against\n * @param {Object} attrs The desired end-state key-value attribute pairs\n * @param {Object} old Current/previous attributes (from previous VNode or element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old, component, updateSelf) {\n let name\n //let update = false\n let isWeElement = dom.update\n let oldClone\n if (dom.receiveProps) {\n oldClone = Object.assign({}, old)\n }\n // remove attributes no longer present on the vnode by setting them to undefined\n for (name in old) {\n if (!(attrs && attrs[name] != null) && old[name] != null) {\n setAccessor(\n dom,\n name,\n old[name],\n (old[name] = undefined),\n isSvgMode,\n component\n )\n if (isWeElement) {\n delete dom.props[name]\n //update = true\n }\n }\n }\n\n // add new & update changed attributes\n for (name in attrs) {\n if (isWeElement && typeof attrs[name] === 'object' && name !== 'ref') {\n if (name === 'style') {\n setAccessor(\n dom,\n name,\n old[name],\n (old[name] = attrs[name]),\n isSvgMode,\n component\n )\n }\n let ccName = camelCase(name)\n dom.props[ccName] = old[ccName] = attrs[name]\n //update = true\n } else if (\n name !== 'children' &&\n (!(name in old) ||\n attrs[name] !==\n (name === 'value' || name === 'checked' ? dom[name] : old[name]))\n ) {\n setAccessor(dom, name, old[name], attrs[name], isSvgMode, component)\n //fix lazy load props missing\n if (dom.nodeName.indexOf('-') !== -1) {\n dom.props = dom.props || {}\n let ccName = camelCase(name)\n dom.props[ccName] = old[ccName] = attrs[name]\n //update = true\n } else {\n old[name] = attrs[name]\n }\n }\n }\n\n if (isWeElement && !updateSelf && dom.parentNode) {\n //__hasChildren is not accuracy when it was empty at first, so add dom.children.length > 0 condition\n //if (update || dom.__hasChildren || dom.children.length > 0 || (dom.store && !dom.store.data)) {\n if (dom.receiveProps(dom.props, oldClone) !== false) {\n dom.update()\n }\n //}\n }\n}\n","/*!\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.19'\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 ec0bb40195..aecc38dde8 100644 --- a/packages/omi/package.json +++ b/packages/omi/package.json @@ -1,6 +1,6 @@ { "name": "omi", - "version": "6.25.18", + "version": "6.25.19", "description": "Front End Cross-Frameworks Framework.", "main": "dist/omi.js", "jsnext:main": "dist/omi.esm.js", diff --git a/packages/omi/src/omi.d.ts b/packages/omi/src/omi.d.ts index f718e7fa13..c89992ee8c 100644 --- a/packages/omi/src/omi.d.ts +++ b/packages/omi/src/omi.d.ts @@ -118,10 +118,10 @@ declare namespace Omi { inject?: string[]; injection?: { [key: string]: any }; - update(ignoreAttrs?: boolean, updateSelf?: boolean): void; + update(updateSelf?: boolean): void; forceUpdate(): void; updateProps(obj: any): void; - updateSelf(ignoreAttrs?: boolean): void; + updateSelf(): void; fire(name: string, data?: any): void; // Abstract methods don't infer argument types @@ -153,10 +153,10 @@ declare namespace Omi { inject?: string[]; injection?: { [key: string]: any }; - update(ignoreAttrs?: boolean, updateSelf?: boolean): void; + update(updateSelf?: boolean): void; forceUpdate(): void; updateProps(obj: any): void; - updateSelf(ignoreAttrs?: boolean): void; + updateSelf(): void; fire(name: string, data?: any): void; // Abstract methods don't infer argument types diff --git a/packages/omi/src/omi.js b/packages/omi/src/omi.js index f29a1f492b..d235480d6e 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.18' +options.root.Omi.version = '6.25.19' export default omi diff --git a/packages/omi/src/we-element.js b/packages/omi/src/we-element.js index aba07d0051..e8af69e981 100644 --- a/packages/omi/src/we-element.js +++ b/packages/omi/src/we-element.js @@ -141,7 +141,7 @@ export default class WeElement extends HTMLElement { this.isInstalled = false } - update(ignoreAttrs, updateSelf) { + update(updateSelf) { this._willUpdate = true this.beforeUpdate() this.beforeRender() @@ -156,7 +156,7 @@ export default class WeElement extends HTMLElement { this.shadowRoot.appendChild(this._customStyleElement) } } - this.attrsToProps(ignoreAttrs) + this.attrsToProps() const rendered = this.render(this.props, this.store) this.rendered() @@ -172,10 +172,6 @@ export default class WeElement extends HTMLElement { this.updated() } - forceUpdate() { - this.update(true) - } - updateProps(obj) { Object.keys(obj).forEach(key => { this.props[key] = obj[key] @@ -183,11 +179,11 @@ export default class WeElement extends HTMLElement { this.prevProps[key] = obj[key] } }) - this.forceUpdate() + this.update() } - updateSelf(ignoreAttrs) { - this.update(ignoreAttrs, true) + updateSelf() { + this.update(true) } removeAttribute(key) { @@ -214,13 +210,8 @@ export default class WeElement extends HTMLElement { super.setAttribute(key, val) } - attrsToProps(ignoreAttrs) { - if ( - ignoreAttrs || - (this.store && this.store.ignoreAttrs) || - this.props.ignoreAttrs - ) - return + attrsToProps() { + if (this.props.ignoreAttrs) return const ele = this ele.props['css'] = ele.getAttribute('css') const attrs = this.constructor.propTypes diff --git a/site/docs/asset-manifest.json b/site/docs/asset-manifest.json index fa7dedfc53..e8078e18a7 100644 --- a/site/docs/asset-manifest.json +++ b/site/docs/asset-manifest.json @@ -1,14 +1,14 @@ { "cn.css": "static/css/cn.4dd07f49.css", "cn.css.map": "static/css/cn.4dd07f49.css.map", - "cn.js": "static/js/cn.9f57ab6e.js", - "cn.js.map": "static/js/cn.9f57ab6e.js.map", + "cn.js": "static/js/cn.651bb1e7.js", + "cn.js.map": "static/js/cn.651bb1e7.js.map", "index.css": "static/css/index.4dd07f49.css", "index.css.map": "static/css/index.4dd07f49.css.map", - "index.js": "static/js/index.39b7da12.js", - "index.js.map": "static/js/index.39b7da12.js.map", - "static/js/0.efa385da.chunk.js": "static/js/0.efa385da.chunk.js", - "static/js/0.efa385da.chunk.js.map": "static/js/0.efa385da.chunk.js.map", + "index.js": "static/js/index.eff19fd7.js", + "index.js.map": "static/js/index.eff19fd7.js.map", + "static/js/0.9f88e82f.chunk.js": "static/js/0.9f88e82f.chunk.js", + "static/js/0.9f88e82f.chunk.js.map": "static/js/0.9f88e82f.chunk.js.map", "static/js/1.820f4ee6.chunk.js": "static/js/1.820f4ee6.chunk.js", "static/js/1.820f4ee6.chunk.js.map": "static/js/1.820f4ee6.chunk.js.map", "static/js/10.8e4de214.chunk.js": "static/js/10.8e4de214.chunk.js", @@ -35,8 +35,8 @@ "static/js/2.1e24d7c5.chunk.js.map": "static/js/2.1e24d7c5.chunk.js.map", "static/js/20.b4d9f9a5.chunk.js": "static/js/20.b4d9f9a5.chunk.js", "static/js/20.b4d9f9a5.chunk.js.map": "static/js/20.b4d9f9a5.chunk.js.map", - "static/js/21.19154067.chunk.js": "static/js/21.19154067.chunk.js", - "static/js/21.19154067.chunk.js.map": "static/js/21.19154067.chunk.js.map", + "static/js/21.e36975b6.chunk.js": "static/js/21.e36975b6.chunk.js", + "static/js/21.e36975b6.chunk.js.map": "static/js/21.e36975b6.chunk.js.map", "static/js/22.5d6510e9.chunk.js": "static/js/22.5d6510e9.chunk.js", "static/js/22.5d6510e9.chunk.js.map": "static/js/22.5d6510e9.chunk.js.map", "static/js/23.3388824e.chunk.js": "static/js/23.3388824e.chunk.js", diff --git a/site/docs/cn.html b/site/docs/cn.html index 3cf5637e64..c7c3dac3da 100644 --- a/site/docs/cn.html +++ b/site/docs/cn.html @@ -1 +1 @@ -OMI - Front End Cross-Frameworks Framework
\ No newline at end of file +OMI - Front End Cross-Frameworks Framework
\ No newline at end of file diff --git a/site/docs/index.html b/site/docs/index.html index 4dfc8f83ae..bd0fc3e5f9 100644 --- a/site/docs/index.html +++ b/site/docs/index.html @@ -1 +1 @@ -OMI - Front End Cross-Frameworks Framework
\ No newline at end of file +OMI - Front End Cross-Frameworks Framework
\ No newline at end of file diff --git a/site/docs/service-worker.js b/site/docs/service-worker.js index dfcaf86b7b..f6fc2e3a2b 100644 --- a/site/docs/service-worker.js +++ b/site/docs/service-worker.js @@ -1 +1 @@ -"use strict";var precacheConfig=[["./cn.html","a175b1859e17a29b6c6870b853f859a3"],["./index.html","901abb17cf24889fb0c3ffc7a5b15702"],["./static/css/cn.4dd07f49.css","476d16186dc05ff3faa0a5d4dc9ac72c"],["./static/css/index.4dd07f49.css","9ad340cc60e8fed0f9856b562708144e"],["./static/js/0.efa385da.chunk.js","1b804b962750e69fabfc48d171aef479"],["./static/js/1.820f4ee6.chunk.js","070a4e8203c5acba15f082d589618d1e"],["./static/js/10.8e4de214.chunk.js","9acff8ce5d13c7eba16e7e9d77b5bf77"],["./static/js/11.df4eed1c.chunk.js","cfb6a146e8004d4edd49e4c32a9c00ab"],["./static/js/12.a7266116.chunk.js","f32e038a4483357e5a4f34a26db59a66"],["./static/js/13.b6ef3caa.chunk.js","d1759ab787fc27e3771e8131554f688e"],["./static/js/14.aab16c83.chunk.js","9b639393f8701c2919ee5cb8bb641ce0"],["./static/js/15.2f8ac6ea.chunk.js","64fea2651b1470a95f60c312b92a6a09"],["./static/js/16.1af26874.chunk.js","cfc3a6c8b2223bff48424ff9cfa0b410"],["./static/js/17.40e1c749.chunk.js","9c4feddb6836a2aa330841d1a20b1d00"],["./static/js/18.837f5ff0.chunk.js","1cbbdd611c8b7e6505225c430a686b18"],["./static/js/19.6527f67e.chunk.js","2a43288241cccc03f68b5da8c5cd31ae"],["./static/js/2.1e24d7c5.chunk.js","c101794dcbeb3a27c47764cf4bbfd30b"],["./static/js/20.b4d9f9a5.chunk.js","9b603baaae90de09079d6ac409ca49b1"],["./static/js/21.19154067.chunk.js","b493c78875986900049126620b975e2d"],["./static/js/22.5d6510e9.chunk.js","b389ce31f79e2b0122d840a258206f90"],["./static/js/23.3388824e.chunk.js","f6ee92c6156ffdac60135952ebdc0a3a"],["./static/js/24.4e689f00.chunk.js","92dfdd49380ab961516d5f53cb3db976"],["./static/js/25.af7ead35.chunk.js","760ad4957ac855f70728860f3510019c"],["./static/js/26.cca69bdf.chunk.js","8e84741fa52ab4511abed39a0b847215"],["./static/js/27.23c231ee.chunk.js","4b8bdbce8d2525c3346ef10b22a22ac1"],["./static/js/28.ce3ae121.chunk.js","6f5f1b16fe78fabd48bc1f7dd06591f9"],["./static/js/29.9351a4c8.chunk.js","d47964c4b4d60008b1ff724ee1f7c0cd"],["./static/js/3.46f6b4b4.chunk.js","795c615f0662f97404c91eb3c027740f"],["./static/js/30.0102262b.chunk.js","3004c1dddddea11384cefdb5eb7f06d3"],["./static/js/31.54a91a5f.chunk.js","72fd2336bca6e495a37512793e302ccd"],["./static/js/32.3fcd0c77.chunk.js","5257dc259e31b1a3a371b9aa8f6d9a82"],["./static/js/33.d92fcf22.chunk.js","6035516aea8edbcd6252ea2f59b32cf5"],["./static/js/34.59c3f9c8.chunk.js","4a950a524d0e82fb968ca0e3d035791e"],["./static/js/35.5d2d960a.chunk.js","d8a082d1af8f52c7d33704bb0b97f4fb"],["./static/js/36.e4085047.chunk.js","c214d257983b15658c69dcd9f05aaa87"],["./static/js/37.e0fd7131.chunk.js","60341bcbd378d6ca7b35a9bb57aef3c9"],["./static/js/38.a6a7bfcc.chunk.js","740f19fbc4c178d8bbee6ce676cb10b0"],["./static/js/4.bfbf1055.chunk.js","3e6ccffb1e69dea350362301f55167ad"],["./static/js/5.0b016674.chunk.js","ee564f015db3c499bbd37473bbccfee4"],["./static/js/6.bb995a3b.chunk.js","22dc4c31f5f7acbcbf8321151b844db4"],["./static/js/7.f97c6ec5.chunk.js","742c4b3272dc3b87f1efaa29152372f6"],["./static/js/8.fc220e14.chunk.js","74cfe5bc1cddbee6e56a99af05a21320"],["./static/js/9.18c3905c.chunk.js","35e5e4e641b24ee71a061a6ccf41cb28"],["./static/js/cn.9f57ab6e.js","7426d03ef947976d3867cab022408c8c"],["./static/js/index.39b7da12.js","faa3b1e63ddd678baec681ac4b6e694b"],["./static/media/omi-logo2019.923166c3.svg","923166c362dce831a15c447b19a622f9"]],cacheName="sw-precache-v3-sw-precache-webpack-plugin-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,c){var a=new URL(e);return"/"===a.pathname.slice(-1)&&(a.pathname+=c),a.toString()},cleanResponse=function(c){return c.redirected?("body"in c?Promise.resolve(c.body):c.blob()).then(function(e){return new Response(e,{headers:c.headers,status:c.status,statusText:c.statusText})}):Promise.resolve(c)},createCacheKey=function(e,c,a,t){var s=new URL(e);return t&&s.pathname.match(t)||(s.search+=(s.search?"&":"")+encodeURIComponent(c)+"="+encodeURIComponent(a)),s.toString()},isPathWhitelisted=function(e,c){if(0===e.length)return!0;var a=new URL(c).pathname;return e.some(function(e){return a.match(e)})},stripIgnoredUrlParameters=function(e,a){var c=new URL(e);return c.hash="",c.search=c.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(c){return a.every(function(e){return!e.test(c[0])})}).map(function(e){return e.join("=")}).join("&"),c.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var c=e[0],a=e[1],t=new URL(c,self.location),s=createCacheKey(t,hashParamName,a,/\.\w{8}\./);return[t.toString(),s]}));function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(t){return setOfCachedUrls(t).then(function(a){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(c){if(!a.has(c)){var e=new Request(c,{credentials:"same-origin"});return fetch(e).then(function(e){if(!e.ok)throw new Error("Request for "+c+" returned a response with status "+e.status);return cleanResponse(e).then(function(e){return t.put(c,e)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var a=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(c){return c.keys().then(function(e){return Promise.all(e.map(function(e){if(!a.has(e.url))return c.delete(e)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(c){if("GET"===c.request.method){var e,a=stripIgnoredUrlParameters(c.request.url,ignoreUrlParametersMatching),t="index.html";(e=urlsToCacheKeys.has(a))||(a=addDirectoryIndex(a,t),e=urlsToCacheKeys.has(a));var s="./index.html";!e&&"navigate"===c.request.mode&&isPathWhitelisted(["^(?!\\/__).*"],c.request.url)&&(a=new URL(s,self.location).toString(),e=urlsToCacheKeys.has(a)),e&&c.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(a)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(e){return console.warn('Couldn\'t serve response for "%s" from cache: %O',c.request.url,e),fetch(c.request)}))}}); \ No newline at end of file +"use strict";var precacheConfig=[["./cn.html","f0c73437b0f3d2e04f1fc091e39432cf"],["./index.html","03f88ac6986030e6080fb5c7a4c374c4"],["./static/css/cn.4dd07f49.css","476d16186dc05ff3faa0a5d4dc9ac72c"],["./static/css/index.4dd07f49.css","9ad340cc60e8fed0f9856b562708144e"],["./static/js/0.9f88e82f.chunk.js","e7586af73c073e014560f99f1571a3d6"],["./static/js/1.820f4ee6.chunk.js","070a4e8203c5acba15f082d589618d1e"],["./static/js/10.8e4de214.chunk.js","9acff8ce5d13c7eba16e7e9d77b5bf77"],["./static/js/11.df4eed1c.chunk.js","cfb6a146e8004d4edd49e4c32a9c00ab"],["./static/js/12.a7266116.chunk.js","f32e038a4483357e5a4f34a26db59a66"],["./static/js/13.b6ef3caa.chunk.js","d1759ab787fc27e3771e8131554f688e"],["./static/js/14.aab16c83.chunk.js","9b639393f8701c2919ee5cb8bb641ce0"],["./static/js/15.2f8ac6ea.chunk.js","64fea2651b1470a95f60c312b92a6a09"],["./static/js/16.1af26874.chunk.js","cfc3a6c8b2223bff48424ff9cfa0b410"],["./static/js/17.40e1c749.chunk.js","9c4feddb6836a2aa330841d1a20b1d00"],["./static/js/18.837f5ff0.chunk.js","1cbbdd611c8b7e6505225c430a686b18"],["./static/js/19.6527f67e.chunk.js","2a43288241cccc03f68b5da8c5cd31ae"],["./static/js/2.1e24d7c5.chunk.js","c101794dcbeb3a27c47764cf4bbfd30b"],["./static/js/20.b4d9f9a5.chunk.js","9b603baaae90de09079d6ac409ca49b1"],["./static/js/21.e36975b6.chunk.js","6916237300224dbe42ba6935e8f13c0f"],["./static/js/22.5d6510e9.chunk.js","b389ce31f79e2b0122d840a258206f90"],["./static/js/23.3388824e.chunk.js","f6ee92c6156ffdac60135952ebdc0a3a"],["./static/js/24.4e689f00.chunk.js","92dfdd49380ab961516d5f53cb3db976"],["./static/js/25.af7ead35.chunk.js","760ad4957ac855f70728860f3510019c"],["./static/js/26.cca69bdf.chunk.js","8e84741fa52ab4511abed39a0b847215"],["./static/js/27.23c231ee.chunk.js","4b8bdbce8d2525c3346ef10b22a22ac1"],["./static/js/28.ce3ae121.chunk.js","6f5f1b16fe78fabd48bc1f7dd06591f9"],["./static/js/29.9351a4c8.chunk.js","d47964c4b4d60008b1ff724ee1f7c0cd"],["./static/js/3.46f6b4b4.chunk.js","795c615f0662f97404c91eb3c027740f"],["./static/js/30.0102262b.chunk.js","3004c1dddddea11384cefdb5eb7f06d3"],["./static/js/31.54a91a5f.chunk.js","72fd2336bca6e495a37512793e302ccd"],["./static/js/32.3fcd0c77.chunk.js","5257dc259e31b1a3a371b9aa8f6d9a82"],["./static/js/33.d92fcf22.chunk.js","6035516aea8edbcd6252ea2f59b32cf5"],["./static/js/34.59c3f9c8.chunk.js","4a950a524d0e82fb968ca0e3d035791e"],["./static/js/35.5d2d960a.chunk.js","d8a082d1af8f52c7d33704bb0b97f4fb"],["./static/js/36.e4085047.chunk.js","c214d257983b15658c69dcd9f05aaa87"],["./static/js/37.e0fd7131.chunk.js","60341bcbd378d6ca7b35a9bb57aef3c9"],["./static/js/38.a6a7bfcc.chunk.js","740f19fbc4c178d8bbee6ce676cb10b0"],["./static/js/4.bfbf1055.chunk.js","3e6ccffb1e69dea350362301f55167ad"],["./static/js/5.0b016674.chunk.js","ee564f015db3c499bbd37473bbccfee4"],["./static/js/6.bb995a3b.chunk.js","22dc4c31f5f7acbcbf8321151b844db4"],["./static/js/7.f97c6ec5.chunk.js","742c4b3272dc3b87f1efaa29152372f6"],["./static/js/8.fc220e14.chunk.js","74cfe5bc1cddbee6e56a99af05a21320"],["./static/js/9.18c3905c.chunk.js","35e5e4e641b24ee71a061a6ccf41cb28"],["./static/js/cn.651bb1e7.js","7abc539996c8b9e3a764f42856f3b29c"],["./static/js/index.eff19fd7.js","2db8ebe4089b96a2cbb75f2158327361"],["./static/media/omi-logo2019.923166c3.svg","923166c362dce831a15c447b19a622f9"]],cacheName="sw-precache-v3-sw-precache-webpack-plugin-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,c){var a=new URL(e);return"/"===a.pathname.slice(-1)&&(a.pathname+=c),a.toString()},cleanResponse=function(c){return c.redirected?("body"in c?Promise.resolve(c.body):c.blob()).then(function(e){return new Response(e,{headers:c.headers,status:c.status,statusText:c.statusText})}):Promise.resolve(c)},createCacheKey=function(e,c,a,t){var s=new URL(e);return t&&s.pathname.match(t)||(s.search+=(s.search?"&":"")+encodeURIComponent(c)+"="+encodeURIComponent(a)),s.toString()},isPathWhitelisted=function(e,c){if(0===e.length)return!0;var a=new URL(c).pathname;return e.some(function(e){return a.match(e)})},stripIgnoredUrlParameters=function(e,a){var c=new URL(e);return c.hash="",c.search=c.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(c){return a.every(function(e){return!e.test(c[0])})}).map(function(e){return e.join("=")}).join("&"),c.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var c=e[0],a=e[1],t=new URL(c,self.location),s=createCacheKey(t,hashParamName,a,/\.\w{8}\./);return[t.toString(),s]}));function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(t){return setOfCachedUrls(t).then(function(a){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(c){if(!a.has(c)){var e=new Request(c,{credentials:"same-origin"});return fetch(e).then(function(e){if(!e.ok)throw new Error("Request for "+c+" returned a response with status "+e.status);return cleanResponse(e).then(function(e){return t.put(c,e)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var a=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(c){return c.keys().then(function(e){return Promise.all(e.map(function(e){if(!a.has(e.url))return c.delete(e)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(c){if("GET"===c.request.method){var e,a=stripIgnoredUrlParameters(c.request.url,ignoreUrlParametersMatching),t="index.html";(e=urlsToCacheKeys.has(a))||(a=addDirectoryIndex(a,t),e=urlsToCacheKeys.has(a));var s="./index.html";!e&&"navigate"===c.request.mode&&isPathWhitelisted(["^(?!\\/__).*"],c.request.url)&&(a=new URL(s,self.location).toString(),e=urlsToCacheKeys.has(a)),e&&c.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(a)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(e){return console.warn('Couldn\'t serve response for "%s" from cache: %O',c.request.url,e),fetch(c.request)}))}}); \ No newline at end of file diff --git a/site/docs/static/js/0.9f88e82f.chunk.js b/site/docs/static/js/0.9f88e82f.chunk.js new file mode 100644 index 0000000000..d260cbe399 --- /dev/null +++ b/site/docs/static/js/0.9f88e82f.chunk.js @@ -0,0 +1,2 @@ +webpackJsonp([0],{76:function(n,s){n.exports="\n## Update\n\n`update` \u65b9\u6cd5\u662f\u5185\u7f6e\u7684\u91cd\u8981\u6838\u5fc3\u65b9\u6cd5\uff0c\u7528\u4e8e\u66f4\u65b0\u7ec4\u4ef6\u81ea\u8eab\u3002\u6bd4\u5982:\n\n```js\nthis.update()\n```\n\n\n\u4e3e\u4e2a\u573a\u666f\uff0c\u6bd4\u5982\u70b9\u51fb\u5f39\u51fa\u5c42\u7684 mask \u5173\u95ed\u5f39\u51fa\uff0c\u5728 react \u4e2d\u9700\u8981\u4f20\u9012\u7ed9\u7236\u7ec4\u4ef6\uff0c\u8ba9\u7236\u7ec4\u4ef6\u66f4\u65b0\uff0c\u800c Omi \u63a8\u5d07\u81ea\u66f4\u65b0\uff0c\u8fd9\u6837 diff \u7684\u533a\u57df\u66f4\u5c0f\u3002\n\n```js\nonMaskClick = ()=> {\n //\u4fee\u6539 props\n this.props.show = false\n //\u9632\u6b62\u7236\u7ec4\u4ef6\u66f4\u65b0 diff \u4e0d\u51fa\u7ed3\u679c\n this.prevProps.show = false\n //\u66f4\u65b0\n this.update()\n //\u89e6\u53d1\u4e8b\u4ef6\uff0c\u53ef\u4ee5\u901a\u8fc7\u8fd9\u4e2a\u66f4\u6539\u5916\u90e8\u7684\u72b6\u6001\u53d8\u91cf\u6765\u4fdd\u6301\u4e00\u81f4\u6027\uff0c\u4f46\u662f\u5916\u9762\u7684\u7ec4\u4ef6\u4e0d\u7528\u518d\u66f4\u65b0\n this.fire('close')\n}\n```\n\n\u4e5f\u53ef\u4ee5\u4f7f\u7528 updateProps \u8fbe\u5230\u540c\u6837\u7684\u6548\u679c:\n\n```js\nonMaskClick = ()=> {\n //\u4fee\u6539 props \u5e76\u5f3a\u5236\u66f4\u65b0\n this.updateProps({\n show: false\n })\n //\u89e6\u53d1\u4e8b\u4ef6\uff0c\u53ef\u4ee5\u901a\u8fc7\u8fd9\u4e2a\u66f4\u6539\u5916\u90e8\u7684\u72b6\u6001\u53d8\u91cf\u6765\u4fdd\u6301\u4e00\u81f4\u6027\uff0c\u4f46\u662f\u5916\u9762\u7684\u7ec4\u4ef6\u4e0d\u7528\u518d\u66f4\u65b0\n this.fire('close')\n}\n```\n\n### UpdateSelf\n\n![](https://github.com/Tencent/omi/raw/master/assets/update.png)\n\n`updateSelf` \u65b9\u6cd5\u4e0d\u4f1a\u66f4\u65b0\u5b50\u7ec4\u4ef6\u3002\n"}}); +//# sourceMappingURL=0.9f88e82f.chunk.js.map \ No newline at end of file diff --git a/site/docs/static/js/0.9f88e82f.chunk.js.map b/site/docs/static/js/0.9f88e82f.chunk.js.map new file mode 100644 index 0000000000..8af12e2ab1 --- /dev/null +++ b/site/docs/static/js/0.9f88e82f.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../static/js/0.9f88e82f.chunk.js","docs/zh-cn/update.md"],"names":["webpackJsonp","76","module","exports"],"mappings":"AAAAA,cAAc,IAERC,GACA,SAAUC,EAAQC,GCHxBD,EAAOC,QAAU","file":"static/js/0.9f88e82f.chunk.js","sourcesContent":["webpackJsonp([0],{\n\n/***/ 76:\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n## Update\\n\\n`update` 方法是内置的重要核心方法,用于更新组件自身。比如:\\n\\n```js\\nthis.update()\\n```\\n\\n\\n举个场景,比如点击弹出层的 mask 关闭弹出,在 react 中需要传递给父组件,让父组件更新,而 Omi 推崇自更新,这样 diff 的区域更小。\\n\\n```js\\nonMaskClick = ()=> {\\n //修改 props\\n this.props.show = false\\n //防止父组件更新 diff 不出结果\\n this.prevProps.show = false\\n //更新\\n this.update()\\n //触发事件,可以通过这个更改外部的状态变量来保持一致性,但是外面的组件不用再更新\\n this.fire('close')\\n}\\n```\\n\\n也可以使用 updateProps 达到同样的效果:\\n\\n```js\\nonMaskClick = ()=> {\\n //修改 props 并强制更新\\n this.updateProps({\\n show: false\\n })\\n //触发事件,可以通过这个更改外部的状态变量来保持一致性,但是外面的组件不用再更新\\n this.fire('close')\\n}\\n```\\n\\n### UpdateSelf\\n\\n![](https://github.com/Tencent/omi/raw/master/assets/update.png)\\n\\n`updateSelf` 方法不会更新子组件。\\n\"\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// static/js/0.9f88e82f.chunk.js","module.exports = \"\\n## Update\\n\\n`update` 方法是内置的重要核心方法,用于更新组件自身。比如:\\n\\n```js\\nthis.update()\\n```\\n\\n\\n举个场景,比如点击弹出层的 mask 关闭弹出,在 react 中需要传递给父组件,让父组件更新,而 Omi 推崇自更新,这样 diff 的区域更小。\\n\\n```js\\nonMaskClick = ()=> {\\n //修改 props\\n this.props.show = false\\n //防止父组件更新 diff 不出结果\\n this.prevProps.show = false\\n //更新\\n this.update()\\n //触发事件,可以通过这个更改外部的状态变量来保持一致性,但是外面的组件不用再更新\\n this.fire('close')\\n}\\n```\\n\\n也可以使用 updateProps 达到同样的效果:\\n\\n```js\\nonMaskClick = ()=> {\\n //修改 props 并强制更新\\n this.updateProps({\\n show: false\\n })\\n //触发事件,可以通过这个更改外部的状态变量来保持一致性,但是外面的组件不用再更新\\n this.fire('close')\\n}\\n```\\n\\n### UpdateSelf\\n\\n![](https://github.com/Tencent/omi/raw/master/assets/update.png)\\n\\n`updateSelf` 方法不会更新子组件。\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs/zh-cn/update.md\n// module id = 76\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/site/docs/static/js/0.efa385da.chunk.js b/site/docs/static/js/0.efa385da.chunk.js deleted file mode 100644 index a65ae897c8..0000000000 --- a/site/docs/static/js/0.efa385da.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -webpackJsonp([0],{76:function(n,s){n.exports="\n## Update\n\n`update` \u65b9\u6cd5\u662f\u5185\u7f6e\u7684\u91cd\u8981\u6838\u5fc3\u65b9\u6cd5\uff0c\u7528\u4e8e\u66f4\u65b0\u7ec4\u4ef6\u81ea\u8eab\u3002\u6bd4\u5982:\n\n```js\nthis.update()\n```\n\n\u4e5f\u53ef\u4ee5\u4f7f\u7528 forceUpdate \u5728 html \u6a21\u5f0f\u4e0b\u5ffd\u7565 attributes:\n\n```js\nthis.forceUpdate()\n```\n\n\u4e3e\u4e2a\u573a\u666f\uff0c\u6bd4\u5982\u70b9\u51fb\u5f39\u51fa\u5c42\u7684 mask \u5173\u95ed\u5f39\u51fa\uff0c\u5728 react \u4e2d\u9700\u8981\u4f20\u9012\u7ed9\u7236\u7ec4\u4ef6\uff0c\u8ba9\u7236\u7ec4\u4ef6\u66f4\u65b0\uff0c\u800c Omi \u63a8\u5d07\u81ea\u66f4\u65b0\uff0c\u8fd9\u6837 diff \u7684\u533a\u57df\u66f4\u5c0f\u3002\n\n```js\nonMaskClick = ()=> {\n //\u4fee\u6539 props\n this.props.show = false\n //\u9632\u6b62\u7236\u7ec4\u4ef6\u66f4\u65b0 diff \u4e0d\u51fa\u7ed3\u679c\n this.prevProps.show = false\n //\u66f4\u65b0\uff0c\u5e76\u4e14\u5728 html \u6a21\u5f0f\u4e0b\u5ffd\u7565 attributes\n this.forceUpdate()\n //\u89e6\u53d1\u4e8b\u4ef6\uff0c\u53ef\u4ee5\u901a\u8fc7\u8fd9\u4e2a\u66f4\u6539\u5916\u90e8\u7684\u72b6\u6001\u53d8\u91cf\u6765\u4fdd\u6301\u4e00\u81f4\u6027\uff0c\u4f46\u662f\u5916\u9762\u7684\u7ec4\u4ef6\u4e0d\u7528\u518d\u66f4\u65b0\n this.fire('close')\n}\n```\n\n\u4e5f\u53ef\u4ee5\u4f7f\u7528 updateProps \u8fbe\u5230\u540c\u6837\u7684\u6548\u679c:\n\n```js\nonMaskClick = ()=> {\n //\u4fee\u6539 props \u5e76\u5f3a\u5236\u66f4\u65b0\n this.updateProps({\n show: false\n })\n //\u89e6\u53d1\u4e8b\u4ef6\uff0c\u53ef\u4ee5\u901a\u8fc7\u8fd9\u4e2a\u66f4\u6539\u5916\u90e8\u7684\u72b6\u6001\u53d8\u91cf\u6765\u4fdd\u6301\u4e00\u81f4\u6027\uff0c\u4f46\u662f\u5916\u9762\u7684\u7ec4\u4ef6\u4e0d\u7528\u518d\u66f4\u65b0\n this.fire('close')\n}\n```\n\n### UpdateSelf\n\n![](https://github.com/Tencent/omi/raw/master/assets/update.png)\n\n`updateSelf` \u65b9\u6cd5\u4e0d\u4f1a\u66f4\u65b0\u5b50\u7ec4\u4ef6\u3002\n"}}); -//# sourceMappingURL=0.efa385da.chunk.js.map \ No newline at end of file diff --git a/site/docs/static/js/0.efa385da.chunk.js.map b/site/docs/static/js/0.efa385da.chunk.js.map deleted file mode 100644 index e95874fe19..0000000000 --- a/site/docs/static/js/0.efa385da.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../static/js/0.efa385da.chunk.js","docs/zh-cn/update.md"],"names":["webpackJsonp","76","module","exports"],"mappings":"AAAAA,cAAc,IAERC,GACA,SAAUC,EAAQC,GCHxBD,EAAOC,QAAU","file":"static/js/0.efa385da.chunk.js","sourcesContent":["webpackJsonp([0],{\n\n/***/ 76:\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n## Update\\n\\n`update` 方法是内置的重要核心方法,用于更新组件自身。比如:\\n\\n```js\\nthis.update()\\n```\\n\\n也可以使用 forceUpdate 在 html 模式下忽略 attributes:\\n\\n```js\\nthis.forceUpdate()\\n```\\n\\n举个场景,比如点击弹出层的 mask 关闭弹出,在 react 中需要传递给父组件,让父组件更新,而 Omi 推崇自更新,这样 diff 的区域更小。\\n\\n```js\\nonMaskClick = ()=> {\\n //修改 props\\n this.props.show = false\\n //防止父组件更新 diff 不出结果\\n this.prevProps.show = false\\n //更新,并且在 html 模式下忽略 attributes\\n this.forceUpdate()\\n //触发事件,可以通过这个更改外部的状态变量来保持一致性,但是外面的组件不用再更新\\n this.fire('close')\\n}\\n```\\n\\n也可以使用 updateProps 达到同样的效果:\\n\\n```js\\nonMaskClick = ()=> {\\n //修改 props 并强制更新\\n this.updateProps({\\n show: false\\n })\\n //触发事件,可以通过这个更改外部的状态变量来保持一致性,但是外面的组件不用再更新\\n this.fire('close')\\n}\\n```\\n\\n### UpdateSelf\\n\\n![](https://github.com/Tencent/omi/raw/master/assets/update.png)\\n\\n`updateSelf` 方法不会更新子组件。\\n\"\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// static/js/0.efa385da.chunk.js","module.exports = \"\\n## Update\\n\\n`update` 方法是内置的重要核心方法,用于更新组件自身。比如:\\n\\n```js\\nthis.update()\\n```\\n\\n也可以使用 forceUpdate 在 html 模式下忽略 attributes:\\n\\n```js\\nthis.forceUpdate()\\n```\\n\\n举个场景,比如点击弹出层的 mask 关闭弹出,在 react 中需要传递给父组件,让父组件更新,而 Omi 推崇自更新,这样 diff 的区域更小。\\n\\n```js\\nonMaskClick = ()=> {\\n //修改 props\\n this.props.show = false\\n //防止父组件更新 diff 不出结果\\n this.prevProps.show = false\\n //更新,并且在 html 模式下忽略 attributes\\n this.forceUpdate()\\n //触发事件,可以通过这个更改外部的状态变量来保持一致性,但是外面的组件不用再更新\\n this.fire('close')\\n}\\n```\\n\\n也可以使用 updateProps 达到同样的效果:\\n\\n```js\\nonMaskClick = ()=> {\\n //修改 props 并强制更新\\n this.updateProps({\\n show: false\\n })\\n //触发事件,可以通过这个更改外部的状态变量来保持一致性,但是外面的组件不用再更新\\n this.fire('close')\\n}\\n```\\n\\n### UpdateSelf\\n\\n![](https://github.com/Tencent/omi/raw/master/assets/update.png)\\n\\n`updateSelf` 方法不会更新子组件。\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs/zh-cn/update.md\n// module id = 76\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/site/docs/static/js/21.19154067.chunk.js b/site/docs/static/js/21.19154067.chunk.js deleted file mode 100644 index d4d050b9cc..0000000000 --- a/site/docs/static/js/21.19154067.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -webpackJsonp([21],{55:function(e,n){e.exports="\n## Update\n\n`update` method is an important built-in core method for updating components themselves. For example:\n\n```js\nthis.update()\n```\n\nYou can also pass use `forceUpdate` to ignore attributes in html mode and updates:\n\n```js\nthis.forceUpdate()\n```\n\nFor example, click on the mask of the pop-up layer to close the pop-up, pass it to the parent component in the react, let the parent component update, while Omi advocates self-update, so that the diff area is smaller.\n\n```js\nonMaskClick = ()=> {\n //change props\n this.props.show = false\n //prevent parent component from updating diff without results\n this.prevProps.show = false\n //update self and ignore attributes in html mode\n this.forceUpdate()\n //trigger events, which can be used to change external state variables to maintain consistency, but external components need not be updated\n this.fire('close')\n}\n```\n\nCode above is the same as:\n\n```js\nonMaskClick = ()=> {\n this.updateProps({\n show: false\n })\n this.fire('close')\n}\n```\n\n\n### UpdateSelf\n\n![](https://github.com/Tencent/omi/raw/master/assets/update.png)\n\n`updateSelf` method does not update child components.\n"}}); -//# sourceMappingURL=21.19154067.chunk.js.map \ No newline at end of file diff --git a/site/docs/static/js/21.19154067.chunk.js.map b/site/docs/static/js/21.19154067.chunk.js.map deleted file mode 100644 index 737ab0ce6d..0000000000 --- a/site/docs/static/js/21.19154067.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../static/js/21.19154067.chunk.js","docs/en/update.md"],"names":["webpackJsonp","55","module","exports"],"mappings":"AAAAA,cAAc,KAERC,GACA,SAAUC,EAAQC,GCHxBD,EAAOC,QAAU","file":"static/js/21.19154067.chunk.js","sourcesContent":["webpackJsonp([21],{\n\n/***/ 55:\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n## Update\\n\\n`update` method is an important built-in core method for updating components themselves. For example:\\n\\n```js\\nthis.update()\\n```\\n\\nYou can also pass use `forceUpdate` to ignore attributes in html mode and updates:\\n\\n```js\\nthis.forceUpdate()\\n```\\n\\nFor example, click on the mask of the pop-up layer to close the pop-up, pass it to the parent component in the react, let the parent component update, while Omi advocates self-update, so that the diff area is smaller.\\n\\n```js\\nonMaskClick = ()=> {\\n //change props\\n this.props.show = false\\n //prevent parent component from updating diff without results\\n this.prevProps.show = false\\n //update self and ignore attributes in html mode\\n this.forceUpdate()\\n //trigger events, which can be used to change external state variables to maintain consistency, but external components need not be updated\\n this.fire('close')\\n}\\n```\\n\\nCode above is the same as:\\n\\n```js\\nonMaskClick = ()=> {\\n this.updateProps({\\n show: false\\n })\\n this.fire('close')\\n}\\n```\\n\\n\\n### UpdateSelf\\n\\n![](https://github.com/Tencent/omi/raw/master/assets/update.png)\\n\\n`updateSelf` method does not update child components.\\n\"\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// static/js/21.19154067.chunk.js","module.exports = \"\\n## Update\\n\\n`update` method is an important built-in core method for updating components themselves. For example:\\n\\n```js\\nthis.update()\\n```\\n\\nYou can also pass use `forceUpdate` to ignore attributes in html mode and updates:\\n\\n```js\\nthis.forceUpdate()\\n```\\n\\nFor example, click on the mask of the pop-up layer to close the pop-up, pass it to the parent component in the react, let the parent component update, while Omi advocates self-update, so that the diff area is smaller.\\n\\n```js\\nonMaskClick = ()=> {\\n //change props\\n this.props.show = false\\n //prevent parent component from updating diff without results\\n this.prevProps.show = false\\n //update self and ignore attributes in html mode\\n this.forceUpdate()\\n //trigger events, which can be used to change external state variables to maintain consistency, but external components need not be updated\\n this.fire('close')\\n}\\n```\\n\\nCode above is the same as:\\n\\n```js\\nonMaskClick = ()=> {\\n this.updateProps({\\n show: false\\n })\\n this.fire('close')\\n}\\n```\\n\\n\\n### UpdateSelf\\n\\n![](https://github.com/Tencent/omi/raw/master/assets/update.png)\\n\\n`updateSelf` method does not update child components.\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs/en/update.md\n// module id = 55\n// module chunks = 21"],"sourceRoot":""} \ No newline at end of file diff --git a/site/docs/static/js/21.e36975b6.chunk.js b/site/docs/static/js/21.e36975b6.chunk.js new file mode 100644 index 0000000000..108629dd97 --- /dev/null +++ b/site/docs/static/js/21.e36975b6.chunk.js @@ -0,0 +1,2 @@ +webpackJsonp([21],{55:function(e,n){e.exports="\n## Update\n\n`update` method is an important built-in core method for updating components themselves. For example:\n\n```js\nthis.update()\n```\n\nFor example, click on the mask of the pop-up layer to close the pop-up, pass it to the parent component in the react, let the parent component update, while Omi advocates self-update, so that the diff area is smaller.\n\n```js\nonMaskClick = ()=> {\n //change props\n this.props.show = false\n //prevent parent component from updating diff without results\n this.prevProps.show = false\n //update \n this.update()\n //trigger events, which can be used to change external state variables to maintain consistency, but external components need not be updated\n this.fire('close')\n}\n```\n\nCode above is the same as:\n\n```js\nonMaskClick = ()=> {\n this.updateProps({\n show: false\n })\n this.fire('close')\n}\n```\n\n\n### UpdateSelf\n\n![](https://github.com/Tencent/omi/raw/master/assets/update.png)\n\n`updateSelf` method does not update child components.\n"}}); +//# sourceMappingURL=21.e36975b6.chunk.js.map \ No newline at end of file diff --git a/site/docs/static/js/21.e36975b6.chunk.js.map b/site/docs/static/js/21.e36975b6.chunk.js.map new file mode 100644 index 0000000000..5479f5fe3a --- /dev/null +++ b/site/docs/static/js/21.e36975b6.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../static/js/21.e36975b6.chunk.js","docs/en/update.md"],"names":["webpackJsonp","55","module","exports"],"mappings":"AAAAA,cAAc,KAERC,GACA,SAAUC,EAAQC,GCHxBD,EAAOC,QAAU","file":"static/js/21.e36975b6.chunk.js","sourcesContent":["webpackJsonp([21],{\n\n/***/ 55:\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n## Update\\n\\n`update` method is an important built-in core method for updating components themselves. For example:\\n\\n```js\\nthis.update()\\n```\\n\\nFor example, click on the mask of the pop-up layer to close the pop-up, pass it to the parent component in the react, let the parent component update, while Omi advocates self-update, so that the diff area is smaller.\\n\\n```js\\nonMaskClick = ()=> {\\n //change props\\n this.props.show = false\\n //prevent parent component from updating diff without results\\n this.prevProps.show = false\\n //update \\n this.update()\\n //trigger events, which can be used to change external state variables to maintain consistency, but external components need not be updated\\n this.fire('close')\\n}\\n```\\n\\nCode above is the same as:\\n\\n```js\\nonMaskClick = ()=> {\\n this.updateProps({\\n show: false\\n })\\n this.fire('close')\\n}\\n```\\n\\n\\n### UpdateSelf\\n\\n![](https://github.com/Tencent/omi/raw/master/assets/update.png)\\n\\n`updateSelf` method does not update child components.\\n\"\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// static/js/21.e36975b6.chunk.js","module.exports = \"\\n## Update\\n\\n`update` method is an important built-in core method for updating components themselves. For example:\\n\\n```js\\nthis.update()\\n```\\n\\nFor example, click on the mask of the pop-up layer to close the pop-up, pass it to the parent component in the react, let the parent component update, while Omi advocates self-update, so that the diff area is smaller.\\n\\n```js\\nonMaskClick = ()=> {\\n //change props\\n this.props.show = false\\n //prevent parent component from updating diff without results\\n this.prevProps.show = false\\n //update \\n this.update()\\n //trigger events, which can be used to change external state variables to maintain consistency, but external components need not be updated\\n this.fire('close')\\n}\\n```\\n\\nCode above is the same as:\\n\\n```js\\nonMaskClick = ()=> {\\n this.updateProps({\\n show: false\\n })\\n this.fire('close')\\n}\\n```\\n\\n\\n### UpdateSelf\\n\\n![](https://github.com/Tencent/omi/raw/master/assets/update.png)\\n\\n`updateSelf` method does not update child components.\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs/en/update.md\n// module id = 55\n// module chunks = 21"],"sourceRoot":""} \ No newline at end of file diff --git a/site/docs/static/js/cn.9f57ab6e.js b/site/docs/static/js/cn.651bb1e7.js similarity index 99% rename from site/docs/static/js/cn.9f57ab6e.js rename to site/docs/static/js/cn.651bb1e7.js index 2d4a106294..44b72c6a92 100644 --- a/site/docs/static/js/cn.9f57ab6e.js +++ b/site/docs/static/js/cn.651bb1e7.js @@ -1,2 +1,2 @@ -!function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n=window.webpackJsonp;window.webpackJsonp=function(t,r,i){for(var a,s,u=0,c=[];u2;)Me.push(arguments[a]);for(t&&null!=t.children&&(Me.length||Me.push(t.children),delete t.children);Me.length;)if((o=Me.pop())&&void 0!==o.pop)for(a=o.length;a--;)Me.push(o[a]);else"boolean"===typeof o&&(o=null),(i="function"!==typeof e)&&(null==o?o="":"number"===typeof o?o=String(o):"string"!==typeof o&&(i=!1)),i&&r?s[s.length-1]+=o:0===s.length?s=[o]:s.push(o),r=i;var u=new n;return u.nodeName=e,u.children=s,u.attributes=null==t?void 0:t,u.key=null==t?void 0:t.key,void 0!==Ne.vnode&&Ne.vnode(u),u}function o(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function i(e,t){for(var n,r,i=o(e),a=1;a2?[].slice.call(arguments,2):e.children)}function m(e){1==He.push(e)&&(Ne.debounceRendering||De)(y)}function y(){for(var e;e=He.pop();)W(e)}function b(e,t,n){if("string"===typeof t||"number"===typeof t)return void 0!==e.splitText;if("string"===typeof t.nodeName){var r=Ve[t.nodeName];return r?n||e._componentConstructor===r:!e._componentConstructor&&v(e,t.nodeName)}return n||e._componentConstructor===t.nodeName}function v(e,t){return e.normalizedNodeName===t||e.nodeName.toLowerCase()===t.toLowerCase()}function g(e){var t=a({},e.attributes);t.children=e.children;var n=e.nodeName.defaultProps;if(void 0!==n)for(var r in n)void 0===t[r]&&(t[r]=n[r]);return t}function _(e,t){var n=t?Ne.doc.createElementNS("http://www.w3.org/2000/svg",e):Ne.doc.createElement(e);return n.normalizedNodeName=e,n}function w(e){for(var t=e.replace(/\/\*(.|\s)*?\*\//g," ").replace(/\s+/g," "),n={},r=t.match(/ ?(.*?) ?{([^}]*)}/)||[o,i,t],o=r[0],i=r[1],a=r[2],s=a.split(";").map(function(e){return e.split(":").map(function(e){return e&&e.trim()})}),u=s,u=Array.isArray(u),u=0,u=u||u[Symbol.iterator]();;){var c;if(u){if(u>=u.length)break;c=u[u++]}else{if(u=u.next(),u.done)break;c=u.value}var l=c,f=l[0],p=l[1];n[function(e){return e.replace(/\W+\w/g,function(e){return e.slice(-1).toUpperCase()})}(f)]=p}return n}function A(e){var t=e.parentNode;t&&t.removeChild(e)}function x(e,t,n,r,o){if("className"===t&&(t="class"),"key"===t);else if("ref"===t)s(n,null),s(r,e);else if("class"!==t||o)if("style"===t)if(Ne.isWeb){if(r&&"string"!==typeof r&&"string"!==typeof n||(e.style.cssText=r||""),r&&"object"===("undefined"===typeof r?"undefined":Pe(r))){if("string"!==typeof n)for(var i in n)i in r||(e.style[i]="");for(var i in r)e.style[i]="number"===typeof r[i]&&!1===Fe.test(i)?r[i]+"px":r[i]}}else{var a=n,u=r;"string"===typeof n&&(a=w(n)),"string"==typeof r&&(u=w(r));var c={},l=!1;if(a){for(var f in a)"object"!=("undefined"===typeof u?"undefined":Pe(u))||f in u||(c[f]="",l=!0);for(var p in u)u[p]!==a[p]&&(c[p]=u[p],l=!0);l&&e.setStyles(c)}else e.setStyles(u)}else if("dangerouslySetInnerHTML"===t)r&&(e.innerHTML=r.__html||"");else if("o"==t[0]&&"n"==t[1]){var d=t!==(t=t.replace(/Capture$/,"")),h=t.toLowerCase();t=(h in e?h:t).slice(2),r?n||(e.addEventListener(t,E,d),"tap"==t&&(e.addEventListener("touchstart",S,d),e.addEventListener("touchend",j,d))):(e.removeEventListener(t,E,d),"tap"==t&&(e.removeEventListener("touchstart",S,d),e.removeEventListener("touchend",j,d))),(e._listeners||(e._listeners={}))[t]=r}else if("list"!==t&&"tagName"!==t&&"form"!==t&&"type"!==t&&"size"!==t&&"download"!==t&&"href"!==t&&!o&&t in e)O(e,t,null==r?"":r);else{var m=o&&t!==(t=t.replace(/^xlink:?/,""));null==r||!1===r?m?e.removeAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase()):e.removeAttribute(t):"function"!==typeof r&&(m?e.setAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase(),r):e.setAttribute(t,r))}else e.className=r||""}function O(e,t,n){try{e[t]=n}catch(e){}}function E(e){return this._listeners[e.type](Ne.event&&Ne.event(e)||e)}function S(e){this.___touchX=e.touches[0].pageX,this.___touchY=e.touches[0].pageY,this.___scrollTop=document.body.scrollTop}function j(e){Math.abs(e.changedTouches[0].pageX-this.___touchX)<30&&Math.abs(e.changedTouches[0].pageY-this.___touchY)<30&&Math.abs(document.body.scrollTop-this.___scrollTop)<30&&this.dispatchEvent(new CustomEvent("tap",{detail:e}))}function k(e){for(var t=0,n=Ne.styleCache.length;t-1;)if(t===e[n])return!0;return!1}function se(e,t){return"#"===t?e:t.split("-")[1]}function ue(e,t,n,r,o){if(t="string"===typeof t?document.querySelector(t):t,n)if(n.data)ce(n);else{Ne.isMultiStore=!0;for(var i in n)n[i].data&&ce(n[i],i)}if(r)for(;t.firstChild;)t.removeChild(t.firstChild);return o&&(o="string"===typeof o?document.querySelector(o):o),I(o,e,n,!1,t,!1)}function ce(e,t){e.instances=[],e.updateSelfInstances=[],fe(e,t),q(e.data,function(t,n,r,o){var i={};i[me(o+"-"+t)]=!0,e.update(i)})}function le(e,t,n){return ce(n),t="string"===typeof t?document.querySelector(t):t,I(t,e,n)}function fe(e,t){e.update=function(n){Object.keys(n).length>0&&(this.instances.forEach(function(r){pe(r,t),t?r._updatePath&&r._updatePath[t]&&de(n,r._updatePath[t])&&(r.use&&c(e.data,("function"===typeof r.use?r.use():r.use)[t],r.using,t),r.update()):r._updatePath&&de(n,r._updatePath)&&(r.use&&(r.using=c(e.data,"function"===typeof r.use?r.use():r.use)),r.update())}),this.updateSelfInstances.forEach(function(r){pe(r,t),t?r._updateSelfPath&&r._updateSelfPath[t]&&de(n,r._updateSelfPath[t])&&(r.useSelf&&c(e.data,("function"===typeof r.useSelf?r.useSelf():r.useSelf)[t],r.usingSelf,t),r.updateSelf()):r._updateSelfPath&&de(n,r._updateSelfPath)&&(r.usingSelf=c(e.data,"function"===typeof r.useSelf?r.useSelf():r.useSelf),r.updateSelf())}),this.onChange&&this.onChange(n))}}function pe(e,t){if(e.compute)for(var n in e.compute)e.computed[n]=e.compute[n].call(t?e.store:e.store.data)}function de(e,t){for(var n in e){if(t[n])return!0;for(var r in t)if(he(n,r))return!0}return!1}function he(e,t){if(0===e.indexOf(t)){var n=e.substr(t.length,1);if("["===n||"."===n)return!0}return!1}function me(e){var t="";return e.replace("#-","").split("-").forEach(function(e,n){n?isNaN(Number(e))?t+="."+e:t+="["+e+"]":t+=e}),t}function ye(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function be(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==("undefined"===typeof t?"undefined":Pe(t))&&"function"!==typeof t?e:t}function ve(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+("undefined"===typeof t?"undefined":Pe(t)));e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function ge(e,t,n){if("WeElement"===t.is)Ne.mapping[e]=t;else{n="string"===typeof n?{css:n}:n||{};var r=function(e){function r(){var t,o,i;ye(this,r);for(var a=arguments.length,s=Array(a),u=0;u0)return{class:Ae.apply(null,n)}}function Oe(e){var t=e.base;if(t)for(;t.parentNode;){if(t.parentNode._component)return t.parentNode._component;t=t.parentNode}}function Ee(e){var t="";for(var n in e){var r=e[n];null!=r&&(t&&(t+=" "),t+=ut[n]||(ut[n]=n.replace(/([A-Z])/g,"-$1").toLowerCase()),t+=": ",t+=r,"number"===typeof r&&!1===IS_NON_DIMENSIONAL.test(n)&&(t+="px"),t+=";")}return t||void 0}function Se(e,t,n,r){n=n||{},t=Object.assign({scopedCSS:!0},t);var o={},i=je(e,t,n,r,o);return{css:Object.values(o),html:i}}function je(e,t,n,r,o){if(null==e||"boolean"===typeof e)return"";var i=e.nodeName,a=e.attributes,s=!1,u=t.pretty,c=u&&"string"===typeof u?u:"\t";if("object"!==("undefined"===typeof e?"undefined":Pe(e))&&!i)return rt(e);var l=it[i];if(l){s=!0;var f,p=Te(e),d=new l(p,n);if(d._disable=d.__x=!0,d.props=p,d.store=n,d.install&&d.install(),d.beforeRender&&d.beforeRender(),f=d.render(d.props,d.store),t.scopedCSS){if(d.constructor.css||d.css){var h=d.constructor.css?d.constructor.css:"function"===typeof d.css?d.css():d.css,m="_s"+k(d.constructor);o[m]={id:m,css:T(h,m)},N(f,m)}d.scopedCSSAttr=e.css,R(f,d.scopedCSSAttr)}return je(f,t,n,!1,o)}var y,b="";if(a){var v=Object.keys(a);t&&!0===t.sortAttributes&&v.sort();for(var g=0;g]/)&&(t&&t.allAttributes||"key"!==_&&"ref"!==_))){if("className"===_){if(a.class)continue;_="class"}else r&&_.match(/^xlink:?./)&&(_=_.toLowerCase().replace(/^xlink:?/,"xlink:"));"style"===_&&w&&"object"===("undefined"===typeof w?"undefined":Pe(w))&&(w=Ee(w));var A=t.attributeHook&&t.attributeHook(_,w,n,t,s);if(A||""===A)b+=A;else if("dangerouslySetInnerHTML"===_)y=w&&w.__html;else if((w||0===w||""===w)&&"function"!==typeof w){if((!0===w||""===w)&&(w=_,!t||!t.xml)){b+=" "+_;continue}b+=" "+_+'="'+rt(w)+'"'}}}}if(u){var x=b.replace(/^\n\s*/," ");x===b||~x.indexOf("\n")?u&&~b.indexOf("\n")&&(b+="\n"):b=x}if(b="<"+i+b+">",String(i).match(/[\s\n\\/='"\0<>]/))throw b;var O=String(i).match(at);O&&(b=b.replace(/>$/," />"));var E=[];if(y)u&&st(y)&&(y="\n"+c+ot(y,c)),b+=y;else if(e.children){for(var S=u&&~b.indexOf("\n"),g=0;g";return O||(u&&~b.indexOf("\n")&&(b+="\n"),b+=""),b}function ke(e,t){for(var n in t)e[n]=t[n];return e}function Te(e){var t=ke({},e.attributes);t.children=e.children;var n=e.nodeName.defaultProps;if(void 0!==n)for(var r in n)void 0===t[r]&&(t[r]=n[r]);return t}function Ce(){return{}}Object.defineProperty(t,"__esModule",{value:!0});var Pe="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ne={scopedStyle:!0,mapping:{},isWeb:!0,staticStyleMapping:{},doc:"object"===("undefined"===typeof document?"undefined":Pe(document))?document:null,root:function(){return"object"===("undefined"===typeof e?"undefined":Pe(e))&&e&&e.Math===Math&&e.Array===Array?e:"undefined"!==typeof self?self:"undefined"!==typeof window?window:"undefined"!==typeof e?e:function(){return this}()}(),styleCache:[],isMultiStore:!1},Me=[],Be=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Ue=Object.prototype.propertyIsEnumerable;if("undefined"!==typeof Element&&!Element.prototype.addEventListener){var Ie=function(e){e||(e=window.event);for(var t=0,n=0,r=ze[e.type];n8&&(Le=!0)}var De=Le?Promise.resolve().then.bind(Promise.resolve()):setTimeout,Fe=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,He=[],Ve=Ne.mapping,Ge=0,Qe=[],We=0,Xe=!1,Je=!1,Ze={},qe=0,Ye=function(){function e(t,n){Z(this,e),this.props=i({},this.constructor.defaultProps,t),this.elementId=qe++,this._preCss=null,this.store=n,this.computed={}}return e.prototype.update=function(e,t,n){this._willUpdate||(this._willUpdate=!0,n&&(this._renderCallbacks=this._renderCallbacks||[]).push(n),W(this,2),Ne.componentChange&&Ne.componentChange(this,this.base),this._willUpdate=!1)},e.prototype.updateSelf=function(){this._willUpdateSelf||(this._willUpdateSelf=!0,W(this,2,null,null,!0),this._willUpdateSelf=!1)},e.prototype.fire=function(e,t){var n=this;Object.keys(this.props).every(function(r){return"on"+e.toLowerCase()!==r.toLowerCase()||(n.props[r]({detail:t}),!1)})},e.prototype.render=function(){},e}();Ye.is="WeElement";var Ke=["concat","copyWithin","fill","pop","push","reverse","shift","sort","splice","unshift","size"].join(","),et=["concat","copyWithin","entries","every","fill","filter","find","findIndex","forEach","includes","indexOf","join","keys","lastIndexOf","map","pop","push","reduce","reduceRight","reverse","shift","slice","some","sort","splice","toLocaleString","toString","unshift","values","size"];q.add=function(e,t){K(e,t,e.$_o_.$_p_,e.$_o_.$_r_)},q.set=function(e,t,n){void 0===e[t]&&K(e,t,e.$_o_.$_p_,e.$_o_.$_r_),e[t]=n},Array.prototype.size=function(e){this.length=e};var tt=["use","useSelf"],nt={}.hasOwnProperty,rt=function(e){return String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""")},ot=function(e,t){return String(e).replace(/(\n+)/g,"$1"+(t||"\t"))},it=Ne.mapping,at=/^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/,st=function(e,t,n){return String(e).length>(t||40)||!n&&-1!==String(e).indexOf("\n")||-1!==String(e).indexOf("<")},ut={};r.f=d;var ct=Ye,lt=ge;Ne.root.Omi={h:r,createElement:r,cloneElement:h,createRef:Ce,Component:Ye,render:ue,rerender:y,options:Ne,WeElement:ct,define:ge,rpx:_e,defineElement:lt,classNames:Ae,extractClass:xe,getHost:Oe,renderToString:Se,tag:we,merge:le,obaa:q},Ne.root.omi=Ne.root.Omi,Ne.root.Omi.version="omio-2.8.3";var ft={h:r,createElement:r,cloneElement:h,createRef:Ce,Component:Ye,render:ue,rerender:y,options:Ne,WeElement:ct,define:ge,rpx:_e,defineElement:lt,classNames:Ae,extractClass:xe,getHost:Oe,renderToString:Se,tag:we,merge:le,obaa:q};t.default=ft,t.h=r,t.createElement=r,t.cloneElement=h,t.createRef=Ce,t.Component=Ye,t.render=ue,t.rerender=y,t.options=Ne,t.WeElement=ct,t.define=ge,t.rpx=_e,t.defineElement=lt,t.classNames=Ae,t.extractClass=xe,t.getHost=Oe,t.renderToString=Se,t.tag=we,t.merge=le,t.obaa=q}).call(t,n(2))},function(e,t,n){"use strict";function r(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"===typeof btoa){var i=o(r);return[n].concat(r.sources.map(function(e){return"/*# sourceURL="+r.sourceRoot+e+" */"})).concat([i]).join("\n")}return[n].join("\n")}function o(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+" */"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=r(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n}).join("")},t.i=function(e,n){"string"===typeof e&&(e=[[null,e,""]]);for(var r={},o=0;oc){for(var t=0,n=a.length-u;t-1?t:e}function d(e,t){t=t||{};var n=t.body;if(e instanceof d){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new o(e.headers)),this.method=e.method,this.mode=e.mode,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new o(t.headers)),this.method=p(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function h(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(o))}}),t}function m(e){var t=new o;return e.split(/\r?\n/).forEach(function(e){var n=e.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();t.append(r,o)}}),t}function y(e,t){t||(t={}),this.type="default",this.status="status"in t?t.status:200,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new o(t.headers),this.url=t.url||"",this._initBody(e)}if(!e.fetch){var b={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(b.arrayBuffer)var v=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],g=function(e){return e&&DataView.prototype.isPrototypeOf(e)},_=ArrayBuffer.isView||function(e){return e&&v.indexOf(Object.prototype.toString.call(e))>-1};o.prototype.append=function(e,r){e=t(e),r=n(r);var o=this.map[e];this.map[e]=o?o+","+r:r},o.prototype.delete=function(e){delete this.map[t(e)]},o.prototype.get=function(e){return e=t(e),this.has(e)?this.map[e]:null},o.prototype.has=function(e){return this.map.hasOwnProperty(t(e))},o.prototype.set=function(e,r){this.map[t(e)]=n(r)},o.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},o.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),r(e)},o.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),r(e)},o.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),r(e)},b.iterable&&(o.prototype[Symbol.iterator]=o.prototype.entries);var w=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];d.prototype.clone=function(){return new d(this,{body:this._bodyInit})},f.call(d.prototype),f.call(y.prototype),y.prototype.clone=function(){return new y(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new o(this.headers),url:this.url})},y.error=function(){var e=new y(null,{status:0,statusText:""});return e.type="error",e};var A=[301,302,303,307,308];y.redirect=function(e,t){if(-1===A.indexOf(t))throw new RangeError("Invalid status code");return new y(null,{status:t,headers:{location:e}})},e.Headers=o,e.Request=d,e.Response=y,e.fetch=function(e,t){return new Promise(function(n,r){var o=new d(e,t),i=new XMLHttpRequest;i.onload=function(){var e={status:i.status,statusText:i.statusText,headers:m(i.getAllResponseHeaders()||"")};e.url="responseURL"in i?i.responseURL:e.headers.get("X-Request-URL");var t="response"in i?i.response:i.responseText;n(new y(t,e))},i.onerror=function(){r(new TypeError("Network request failed"))},i.ontimeout=function(){r(new TypeError("Network request failed"))},i.open(o.method,o.url,!0),"include"===o.credentials&&(i.withCredentials=!0),"responseType"in i&&b.blob&&(i.responseType="blob"),o.headers.forEach(function(e,t){i.setRequestHeader(t,e)}),i.send("undefined"===typeof o._bodyInit?null:o._bodyInit)})},e.fetch.polyfill=!0}}("undefined"!==typeof self?self:void 0)},function(e,t,n){"use strict";function r(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}var o=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,s,u=r(e),c=1;c0)return!1;return!0}},{key:"render",value:function(){if(this.demo)return Omi.h("div",null,this.show&&Omi.h("iframe",{style:"height:"+(window.innerHeight-59)+"px",src:this.demo}),!this.show&&Omi.h("div",{class:"switch code",onClick:this.onShow},Omi.h("img",{src:n(32)})),this.show&&Omi.h("div",{class:"switch close",onClick:this.onClose},Omi.h("img",{src:n(33)})))}}]),t}(s.WeElement))},function(e,t,n){var r=n(31);r&&r.__esModule&&(r=r.default),e.exports="string"===typeof r?r:r.toString()},function(e,t,n){t=e.exports=n(1)(void 0),t.push([e.i,"iframe{\n width: 750px;\n height: 100%;\n top: 60px;\n right: 0;\n position: fixed;\n border: none;\n z-index: 9999;\n border-left: 2px solid #24292E;\n}\n\n.switch{\n width: 40px;\n height: 40px;\n background-color: #AA0000;\n border-radius: 50%;\n position: fixed;\n right: 50px;\n bottom: 50px;\n cursor: pointer;\n text-align: center;\n z-index: 10000;\n}\n\n.switch img{\n width: 30px;\n height: 30px;\n margin-top:5px;\n}\n\n.switch.close img{\n margin-top:10px;\n width: 20px;\n height: 20px;\n}\n\n\n@media only screen and (max-width: 800px) {\n iframe{\n width: 100%;\n }\n}\n",""])},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfiDBQMEgYVXhFiAAABVklEQVRIx+3UsU4UURSA4TNARoiJcR9BCwwJNNpRU0hjpS+hDTTyGkAD1UJnRzCbYKRAKzt9AaMxJoR+Ewho8dEMm5nZOzObbfVUM+ec/79n7uTeiP8xUfjiq6Xp8Ufg6fSCN7iQpasztebcttVaz3pEnGQirNqWt62VG2CoV8rNu8TLCD1DDBoVBc5BeVzr+OthhMwBjQq59wVe+Sy7+FQ8Z/bBB/MT4hG+4+3oLa0Y4f0x/AlYLmUyezVFMx5hE79ruaqiDY9wir2xbFnhqAW/7xovEpUZfXCUwEqxFvfiJs5ae+SO0/sfYR8fE8zdvzi524UGhV/Y6MCbp7ACFjvxiuKd2VFuCz/GNu8wgacVPmNnQrxQlA6TB/7geWX4tsNUUgz1IrzClYVStes4F4riQtHHoFbtulAq457j9UTNScEz8Li7c64hfxXf4jr7OfUE/1TcAoyIn6j/RilHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTEyLTIwVDExOjE4OjA2KzAxOjAwT3khJwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMi0yMFQxMToxODowNiswMTowMD4kmZsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC"},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAQAAACROWYpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiDBQMERzDEbvbAAAArElEQVQ4y6XVOw6DMBBFUSf7SmGy2ZCNBerIJN2lAQn/34ArZHFsi3mDHW9mvDMOPDOjYwKCjeMJwGd/MPBI8OALBJ4S3d8e0okuz6jOi1TjVdrnTdrmXVrnEi1zmebcRGNupgf+YzHTjS8A/Ov0Lqxzs+97PLbUMukHG2wd59LimHheHJmX6yrxeiS6vJ2mJu8Hscq1DBe5Hv+M2zon4pd++teum5Hp5EX3WgGu+8eCI/n/bQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0xMi0yMFQxMToxNzoyOCswMTowMKxoBooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMTItMjBUMTE6MTc6MjgrMDE6MDDdNb42AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg=="},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t,n){for(var r=n.menus[t],o=0,i=r.length;o-1)&&(m=w,a=a.slice(0,_))}a&&(r.push(a),a="",f=!1);var A="+"===g||"*"===g,x="?"===g||"*"===g,O=b||v,E=m||c;r.push({name:y||o++,prefix:m,delimiter:E,optional:x,repeat:A,pattern:O?u(O):"[^"+s(E===c?E:E+c)+"]+?"})}}return(a||i0&&(n[t[r].replace(":","")]=e)}),n}function b(e,t){T[e]={callback:t,reg:_(e)}}function v(e){e=e.replace(/#.*$/,"");var t,n=e.split(/[?&]/).slice(1),r={};for(t=0;t2;)Me.push(arguments[a]);for(t&&null!=t.children&&(Me.length||Me.push(t.children),delete t.children);Me.length;)if((o=Me.pop())&&void 0!==o.pop)for(a=o.length;a--;)Me.push(o[a]);else"boolean"===typeof o&&(o=null),(i="function"!==typeof e)&&(null==o?o="":"number"===typeof o?o=String(o):"string"!==typeof o&&(i=!1)),i&&r?s[s.length-1]+=o:0===s.length?s=[o]:s.push(o),r=i;var u=new n;return u.nodeName=e,u.children=s,u.attributes=null==t?void 0:t,u.key=null==t?void 0:t.key,void 0!==Ne.vnode&&Ne.vnode(u),u}function o(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function i(e,t){for(var n,r,i=o(e),a=1;a2?[].slice.call(arguments,2):e.children)}function m(e){1==He.push(e)&&(Ne.debounceRendering||De)(y)}function y(){for(var e;e=He.pop();)W(e)}function b(e,t,n){if("string"===typeof t||"number"===typeof t)return void 0!==e.splitText;if("string"===typeof t.nodeName){var r=Ve[t.nodeName];return r?n||e._componentConstructor===r:!e._componentConstructor&&v(e,t.nodeName)}return n||e._componentConstructor===t.nodeName}function v(e,t){return e.normalizedNodeName===t||e.nodeName.toLowerCase()===t.toLowerCase()}function g(e){var t=a({},e.attributes);t.children=e.children;var n=e.nodeName.defaultProps;if(void 0!==n)for(var r in n)void 0===t[r]&&(t[r]=n[r]);return t}function _(e,t){var n=t?Ne.doc.createElementNS("http://www.w3.org/2000/svg",e):Ne.doc.createElement(e);return n.normalizedNodeName=e,n}function w(e){for(var t=e.replace(/\/\*(.|\s)*?\*\//g," ").replace(/\s+/g," "),n={},r=t.match(/ ?(.*?) ?{([^}]*)}/)||[o,i,t],o=r[0],i=r[1],a=r[2],s=a.split(";").map(function(e){return e.split(":").map(function(e){return e&&e.trim()})}),u=s,u=Array.isArray(u),u=0,u=u||u[Symbol.iterator]();;){var c;if(u){if(u>=u.length)break;c=u[u++]}else{if(u=u.next(),u.done)break;c=u.value}var l=c,f=l[0],p=l[1];n[function(e){return e.replace(/\W+\w/g,function(e){return e.slice(-1).toUpperCase()})}(f)]=p}return n}function A(e){var t=e.parentNode;t&&t.removeChild(e)}function x(e,t,n,r,o){if("className"===t&&(t="class"),"key"===t);else if("ref"===t)s(n,null),s(r,e);else if("class"!==t||o)if("style"===t)if(Ne.isWeb){if(r&&"string"!==typeof r&&"string"!==typeof n||(e.style.cssText=r||""),r&&"object"===("undefined"===typeof r?"undefined":Pe(r))){if("string"!==typeof n)for(var i in n)i in r||(e.style[i]="");for(var i in r)e.style[i]="number"===typeof r[i]&&!1===Fe.test(i)?r[i]+"px":r[i]}}else{var a=n,u=r;"string"===typeof n&&(a=w(n)),"string"==typeof r&&(u=w(r));var c={},l=!1;if(a){for(var f in a)"object"!=("undefined"===typeof u?"undefined":Pe(u))||f in u||(c[f]="",l=!0);for(var p in u)u[p]!==a[p]&&(c[p]=u[p],l=!0);l&&e.setStyles(c)}else e.setStyles(u)}else if("dangerouslySetInnerHTML"===t)r&&(e.innerHTML=r.__html||"");else if("o"==t[0]&&"n"==t[1]){var d=t!==(t=t.replace(/Capture$/,"")),h=t.toLowerCase();t=(h in e?h:t).slice(2),r?n||(e.addEventListener(t,E,d),"tap"==t&&(e.addEventListener("touchstart",S,d),e.addEventListener("touchend",j,d))):(e.removeEventListener(t,E,d),"tap"==t&&(e.removeEventListener("touchstart",S,d),e.removeEventListener("touchend",j,d))),(e._listeners||(e._listeners={}))[t]=r}else if("list"!==t&&"tagName"!==t&&"form"!==t&&"type"!==t&&"size"!==t&&"download"!==t&&"href"!==t&&!o&&t in e)O(e,t,null==r?"":r);else{var m=o&&t!==(t=t.replace(/^xlink:?/,""));null==r||!1===r?m?e.removeAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase()):e.removeAttribute(t):"function"!==typeof r&&(m?e.setAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase(),r):e.setAttribute(t,r))}else e.className=r||""}function O(e,t,n){try{e[t]=n}catch(e){}}function E(e){return this._listeners[e.type](Ne.event&&Ne.event(e)||e)}function S(e){this.___touchX=e.touches[0].pageX,this.___touchY=e.touches[0].pageY,this.___scrollTop=document.body.scrollTop}function j(e){Math.abs(e.changedTouches[0].pageX-this.___touchX)<30&&Math.abs(e.changedTouches[0].pageY-this.___touchY)<30&&Math.abs(document.body.scrollTop-this.___scrollTop)<30&&this.dispatchEvent(new CustomEvent("tap",{detail:e}))}function k(e){for(var t=0,n=Ne.styleCache.length;t-1;)if(t===e[n])return!0;return!1}function se(e,t){return"#"===t?e:t.split("-")[1]}function ue(e,t,n,r,o){if(t="string"===typeof t?document.querySelector(t):t,n)if(n.data)ce(n);else{Ne.isMultiStore=!0;for(var i in n)n[i].data&&ce(n[i],i)}if(r)for(;t.firstChild;)t.removeChild(t.firstChild);return o&&(o="string"===typeof o?document.querySelector(o):o),I(o,e,n,!1,t,!1)}function ce(e,t){e.instances=[],e.updateSelfInstances=[],fe(e,t),q(e.data,function(t,n,r,o){var i={};i[me(o+"-"+t)]=!0,e.update(i)})}function le(e,t,n){return ce(n),t="string"===typeof t?document.querySelector(t):t,I(t,e,n)}function fe(e,t){e.update=function(n){Object.keys(n).length>0&&(this.instances.forEach(function(r){pe(r,t),t?r._updatePath&&r._updatePath[t]&&de(n,r._updatePath[t])&&(r.use&&c(e.data,("function"===typeof r.use?r.use():r.use)[t],r.using,t),r.update()):r._updatePath&&de(n,r._updatePath)&&(r.use&&(r.using=c(e.data,"function"===typeof r.use?r.use():r.use)),r.update())}),this.updateSelfInstances.forEach(function(r){pe(r,t),t?r._updateSelfPath&&r._updateSelfPath[t]&&de(n,r._updateSelfPath[t])&&(r.useSelf&&c(e.data,("function"===typeof r.useSelf?r.useSelf():r.useSelf)[t],r.usingSelf,t),r.updateSelf()):r._updateSelfPath&&de(n,r._updateSelfPath)&&(r.usingSelf=c(e.data,"function"===typeof r.useSelf?r.useSelf():r.useSelf),r.updateSelf())}),this.onChange&&this.onChange(n))}}function pe(e,t){if(e.compute)for(var n in e.compute)e.computed[n]=e.compute[n].call(t?e.store:e.store.data)}function de(e,t){for(var n in e){if(t[n])return!0;for(var r in t)if(he(n,r))return!0}return!1}function he(e,t){if(0===e.indexOf(t)){var n=e.substr(t.length,1);if("["===n||"."===n)return!0}return!1}function me(e){var t="";return e.replace("#-","").split("-").forEach(function(e,n){n?isNaN(Number(e))?t+="."+e:t+="["+e+"]":t+=e}),t}function ye(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function be(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==("undefined"===typeof t?"undefined":Pe(t))&&"function"!==typeof t?e:t}function ve(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+("undefined"===typeof t?"undefined":Pe(t)));e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function ge(e,t,n){if("WeElement"===t.is)Ne.mapping[e]=t;else{n="string"===typeof n?{css:n}:n||{};var r=function(e){function r(){var t,o,i;ye(this,r);for(var a=arguments.length,s=Array(a),u=0;u0)return{class:Ae.apply(null,n)}}function Oe(e){var t=e.base;if(t)for(;t.parentNode;){if(t.parentNode._component)return t.parentNode._component;t=t.parentNode}}function Ee(e){var t="";for(var n in e){var r=e[n];null!=r&&(t&&(t+=" "),t+=ut[n]||(ut[n]=n.replace(/([A-Z])/g,"-$1").toLowerCase()),t+=": ",t+=r,"number"===typeof r&&!1===IS_NON_DIMENSIONAL.test(n)&&(t+="px"),t+=";")}return t||void 0}function Se(e,t,n,r){n=n||{},t=Object.assign({scopedCSS:!0},t);var o={},i=je(e,t,n,r,o);return{css:Object.values(o),html:i}}function je(e,t,n,r,o){if(null==e||"boolean"===typeof e)return"";var i=e.nodeName,a=e.attributes,s=!1,u=t.pretty,c=u&&"string"===typeof u?u:"\t";if("object"!==("undefined"===typeof e?"undefined":Pe(e))&&!i)return rt(e);var l=it[i];if(l){s=!0;var f,p=Te(e),d=new l(p,n);if(d._disable=d.__x=!0,d.props=p,d.store=n,d.install&&d.install(),d.beforeRender&&d.beforeRender(),f=d.render(d.props,d.store),t.scopedCSS){if(d.constructor.css||d.css){var h=d.constructor.css?d.constructor.css:"function"===typeof d.css?d.css():d.css,m="_s"+k(d.constructor);o[m]={id:m,css:T(h,m)},N(f,m)}d.scopedCSSAttr=e.css,R(f,d.scopedCSSAttr)}return je(f,t,n,!1,o)}var y,b="";if(a){var v=Object.keys(a);t&&!0===t.sortAttributes&&v.sort();for(var g=0;g]/)&&(t&&t.allAttributes||"key"!==_&&"ref"!==_))){if("className"===_){if(a.class)continue;_="class"}else r&&_.match(/^xlink:?./)&&(_=_.toLowerCase().replace(/^xlink:?/,"xlink:"));"style"===_&&w&&"object"===("undefined"===typeof w?"undefined":Pe(w))&&(w=Ee(w));var A=t.attributeHook&&t.attributeHook(_,w,n,t,s);if(A||""===A)b+=A;else if("dangerouslySetInnerHTML"===_)y=w&&w.__html;else if((w||0===w||""===w)&&"function"!==typeof w){if((!0===w||""===w)&&(w=_,!t||!t.xml)){b+=" "+_;continue}b+=" "+_+'="'+rt(w)+'"'}}}}if(u){var x=b.replace(/^\n\s*/," ");x===b||~x.indexOf("\n")?u&&~b.indexOf("\n")&&(b+="\n"):b=x}if(b="<"+i+b+">",String(i).match(/[\s\n\\/='"\0<>]/))throw b;var O=String(i).match(at);O&&(b=b.replace(/>$/," />"));var E=[];if(y)u&&st(y)&&(y="\n"+c+ot(y,c)),b+=y;else if(e.children){for(var S=u&&~b.indexOf("\n"),g=0;g";return O||(u&&~b.indexOf("\n")&&(b+="\n"),b+=""),b}function ke(e,t){for(var n in t)e[n]=t[n];return e}function Te(e){var t=ke({},e.attributes);t.children=e.children;var n=e.nodeName.defaultProps;if(void 0!==n)for(var r in n)void 0===t[r]&&(t[r]=n[r]);return t}function Ce(){return{}}Object.defineProperty(t,"__esModule",{value:!0});var Pe="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ne={scopedStyle:!0,mapping:{},isWeb:!0,staticStyleMapping:{},doc:"object"===("undefined"===typeof document?"undefined":Pe(document))?document:null,root:function(){return"object"===("undefined"===typeof e?"undefined":Pe(e))&&e&&e.Math===Math&&e.Array===Array?e:"undefined"!==typeof self?self:"undefined"!==typeof window?window:"undefined"!==typeof e?e:function(){return this}()}(),styleCache:[],isMultiStore:!1},Me=[],Be=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Ue=Object.prototype.propertyIsEnumerable;if("undefined"!==typeof Element&&!Element.prototype.addEventListener){var Ie=function(e){e||(e=window.event);for(var t=0,n=0,r=ze[e.type];n8&&(Le=!0)}var De=Le?Promise.resolve().then.bind(Promise.resolve()):setTimeout,Fe=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,He=[],Ve=Ne.mapping,Ge=0,Qe=[],We=0,Xe=!1,Je=!1,Ze={},qe=0,Ye=function(){function e(t,n){Z(this,e),this.props=i({},this.constructor.defaultProps,t),this.elementId=qe++,this._preCss=null,this.store=n,this.computed={}}return e.prototype.update=function(e,t,n){this._willUpdate||(this._willUpdate=!0,n&&(this._renderCallbacks=this._renderCallbacks||[]).push(n),W(this,2),Ne.componentChange&&Ne.componentChange(this,this.base),this._willUpdate=!1)},e.prototype.updateSelf=function(){this._willUpdateSelf||(this._willUpdateSelf=!0,W(this,2,null,null,!0),this._willUpdateSelf=!1)},e.prototype.fire=function(e,t){var n=this;Object.keys(this.props).every(function(r){return"on"+e.toLowerCase()!==r.toLowerCase()||(n.props[r]({detail:t}),!1)})},e.prototype.render=function(){},e}();Ye.is="WeElement";var Ke=["concat","copyWithin","fill","pop","push","reverse","shift","sort","splice","unshift","size"].join(","),et=["concat","copyWithin","entries","every","fill","filter","find","findIndex","forEach","includes","indexOf","join","keys","lastIndexOf","map","pop","push","reduce","reduceRight","reverse","shift","slice","some","sort","splice","toLocaleString","toString","unshift","values","size"];q.add=function(e,t){K(e,t,e.$_o_.$_p_,e.$_o_.$_r_)},q.set=function(e,t,n){void 0===e[t]&&K(e,t,e.$_o_.$_p_,e.$_o_.$_r_),e[t]=n},Array.prototype.size=function(e){this.length=e};var tt=["use","useSelf"],nt={}.hasOwnProperty,rt=function(e){return String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""")},ot=function(e,t){return String(e).replace(/(\n+)/g,"$1"+(t||"\t"))},it=Ne.mapping,at=/^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/,st=function(e,t,n){return String(e).length>(t||40)||!n&&-1!==String(e).indexOf("\n")||-1!==String(e).indexOf("<")},ut={};r.f=d;var ct=Ye,lt=ge;Ne.root.Omi={h:r,createElement:r,cloneElement:h,createRef:Ce,Component:Ye,render:ue,rerender:y,options:Ne,WeElement:ct,define:ge,rpx:_e,defineElement:lt,classNames:Ae,extractClass:xe,getHost:Oe,renderToString:Se,tag:we,merge:le,obaa:q},Ne.root.omi=Ne.root.Omi,Ne.root.Omi.version="omio-2.8.3";var ft={h:r,createElement:r,cloneElement:h,createRef:Ce,Component:Ye,render:ue,rerender:y,options:Ne,WeElement:ct,define:ge,rpx:_e,defineElement:lt,classNames:Ae,extractClass:xe,getHost:Oe,renderToString:Se,tag:we,merge:le,obaa:q};t.default=ft,t.h=r,t.createElement=r,t.cloneElement=h,t.createRef=Ce,t.Component=Ye,t.render=ue,t.rerender=y,t.options=Ne,t.WeElement=ct,t.define=ge,t.rpx=_e,t.defineElement=lt,t.classNames=Ae,t.extractClass=xe,t.getHost=Oe,t.renderToString=Se,t.tag=we,t.merge=le,t.obaa=q}).call(t,n(2))},function(e,t,n){"use strict";function r(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"===typeof btoa){var i=o(r);return[n].concat(r.sources.map(function(e){return"/*# sourceURL="+r.sourceRoot+e+" */"})).concat([i]).join("\n")}return[n].join("\n")}function o(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+" */"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=r(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n}).join("")},t.i=function(e,n){"string"===typeof e&&(e=[[null,e,""]]);for(var r={},o=0;oc){for(var t=0,n=a.length-u;t-1?t:e}function d(e,t){t=t||{};var n=t.body;if(e instanceof d){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new o(e.headers)),this.method=e.method,this.mode=e.mode,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new o(t.headers)),this.method=p(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function h(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(o))}}),t}function m(e){var t=new o;return e.split(/\r?\n/).forEach(function(e){var n=e.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();t.append(r,o)}}),t}function y(e,t){t||(t={}),this.type="default",this.status="status"in t?t.status:200,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new o(t.headers),this.url=t.url||"",this._initBody(e)}if(!e.fetch){var b={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(b.arrayBuffer)var v=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],g=function(e){return e&&DataView.prototype.isPrototypeOf(e)},_=ArrayBuffer.isView||function(e){return e&&v.indexOf(Object.prototype.toString.call(e))>-1};o.prototype.append=function(e,r){e=t(e),r=n(r);var o=this.map[e];this.map[e]=o?o+","+r:r},o.prototype.delete=function(e){delete this.map[t(e)]},o.prototype.get=function(e){return e=t(e),this.has(e)?this.map[e]:null},o.prototype.has=function(e){return this.map.hasOwnProperty(t(e))},o.prototype.set=function(e,r){this.map[t(e)]=n(r)},o.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},o.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),r(e)},o.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),r(e)},o.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),r(e)},b.iterable&&(o.prototype[Symbol.iterator]=o.prototype.entries);var w=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];d.prototype.clone=function(){return new d(this,{body:this._bodyInit})},f.call(d.prototype),f.call(y.prototype),y.prototype.clone=function(){return new y(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new o(this.headers),url:this.url})},y.error=function(){var e=new y(null,{status:0,statusText:""});return e.type="error",e};var A=[301,302,303,307,308];y.redirect=function(e,t){if(-1===A.indexOf(t))throw new RangeError("Invalid status code");return new y(null,{status:t,headers:{location:e}})},e.Headers=o,e.Request=d,e.Response=y,e.fetch=function(e,t){return new Promise(function(n,r){var o=new d(e,t),i=new XMLHttpRequest;i.onload=function(){var e={status:i.status,statusText:i.statusText,headers:m(i.getAllResponseHeaders()||"")};e.url="responseURL"in i?i.responseURL:e.headers.get("X-Request-URL");var t="response"in i?i.response:i.responseText;n(new y(t,e))},i.onerror=function(){r(new TypeError("Network request failed"))},i.ontimeout=function(){r(new TypeError("Network request failed"))},i.open(o.method,o.url,!0),"include"===o.credentials&&(i.withCredentials=!0),"responseType"in i&&b.blob&&(i.responseType="blob"),o.headers.forEach(function(e,t){i.setRequestHeader(t,e)}),i.send("undefined"===typeof o._bodyInit?null:o._bodyInit)})},e.fetch.polyfill=!0}}("undefined"!==typeof self?self:void 0)},function(e,t,n){"use strict";function r(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}var o=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,s,u=r(e),c=1;c0)return!1;return!0}},{key:"render",value:function(){if(this.demo)return Omi.h("div",null,this.show&&Omi.h("iframe",{style:"height:"+(window.innerHeight-59)+"px",src:this.demo}),!this.show&&Omi.h("div",{class:"switch code",onClick:this.onShow},Omi.h("img",{src:n(32)})),this.show&&Omi.h("div",{class:"switch close",onClick:this.onClose},Omi.h("img",{src:n(33)})))}}]),t}(s.WeElement))},function(e,t,n){var r=n(31);r&&r.__esModule&&(r=r.default),e.exports="string"===typeof r?r:r.toString()},function(e,t,n){t=e.exports=n(1)(void 0),t.push([e.i,"iframe{\n width: 750px;\n height: 100%;\n top: 60px;\n right: 0;\n position: fixed;\n border: none;\n z-index: 9999;\n border-left: 2px solid #24292E;\n}\n\n.switch{\n width: 40px;\n height: 40px;\n background-color: #AA0000;\n border-radius: 50%;\n position: fixed;\n right: 50px;\n bottom: 50px;\n cursor: pointer;\n text-align: center;\n z-index: 10000;\n}\n\n.switch img{\n width: 30px;\n height: 30px;\n margin-top:5px;\n}\n\n.switch.close img{\n margin-top:10px;\n width: 20px;\n height: 20px;\n}\n\n\n@media only screen and (max-width: 800px) {\n iframe{\n width: 100%;\n }\n}\n",""])},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfiDBQMEgYVXhFiAAABVklEQVRIx+3UsU4UURSA4TNARoiJcR9BCwwJNNpRU0hjpS+hDTTyGkAD1UJnRzCbYKRAKzt9AaMxJoR+Ewho8dEMm5nZOzObbfVUM+ec/79n7uTeiP8xUfjiq6Xp8Ufg6fSCN7iQpasztebcttVaz3pEnGQirNqWt62VG2CoV8rNu8TLCD1DDBoVBc5BeVzr+OthhMwBjQq59wVe+Sy7+FQ8Z/bBB/MT4hG+4+3oLa0Y4f0x/AlYLmUyezVFMx5hE79ruaqiDY9wir2xbFnhqAW/7xovEpUZfXCUwEqxFvfiJs5ae+SO0/sfYR8fE8zdvzi524UGhV/Y6MCbp7ACFjvxiuKd2VFuCz/GNu8wgacVPmNnQrxQlA6TB/7geWX4tsNUUgz1IrzClYVStes4F4riQtHHoFbtulAq457j9UTNScEz8Li7c64hfxXf4jr7OfUE/1TcAoyIn6j/RilHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTEyLTIwVDExOjE4OjA2KzAxOjAwT3khJwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMi0yMFQxMToxODowNiswMTowMD4kmZsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC"},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAQAAACROWYpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiDBQMERzDEbvbAAAArElEQVQ4y6XVOw6DMBBFUSf7SmGy2ZCNBerIJN2lAQn/34ArZHFsi3mDHW9mvDMOPDOjYwKCjeMJwGd/MPBI8OALBJ4S3d8e0okuz6jOi1TjVdrnTdrmXVrnEi1zmebcRGNupgf+YzHTjS8A/Ov0Lqxzs+97PLbUMukHG2wd59LimHheHJmX6yrxeiS6vJ2mJu8Hscq1DBe5Hv+M2zon4pd++teum5Hp5EX3WgGu+8eCI/n/bQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0xMi0yMFQxMToxNzoyOCswMTowMKxoBooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMTItMjBUMTE6MTc6MjgrMDE6MDDdNb42AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg=="},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t,n){for(var r=n.menus[t],o=0,i=r.length;o-1)&&(m=w,a=a.slice(0,_))}a&&(r.push(a),a="",f=!1);var A="+"===g||"*"===g,x="?"===g||"*"===g,O=b||v,E=m||c;r.push({name:y||o++,prefix:m,delimiter:E,optional:x,repeat:A,pattern:O?u(O):"[^"+s(E===c?E:E+c)+"]+?"})}}return(a||i0&&(n[t[r].replace(":","")]=e)}),n}function b(e,t){T[e]={callback:t,reg:_(e)}}function v(e){e=e.replace(/#.*$/,"");var t,n=e.split(/[?&]/).slice(1),r={};for(t=0;tHello!`\n *\n * can be constructed using this function as:\n *\n * `h('div', { id: 'foo', name : 'bar' }, 'Hello!');`\n *\n * @param {string} nodeName\tAn element name. Ex: `div`, `a`, `span`, etc.\n * @param {Object} attributes\tAny attributes/props to set on the created element.\n * @param rest\t\t\tAdditional arguments are taken to be children to append. Can be infinitely nested Arrays.\n *\n * @public\n */function h(nodeName,attributes){var children=[],lastSimple,child,simple,i;for(i=arguments.length;i-->2;){stack.push(arguments[i]);}if(attributes&&attributes.children!=null){if(!stack.length)stack.push(attributes.children);delete attributes.children;}while(stack.length){if((child=stack.pop())&&child.pop!==undefined){for(i=child.length;i--;){stack.push(child[i]);}}else{if(typeof child==='boolean')child=null;if(simple=typeof nodeName!=='function'){if(child==null)child='';else if(typeof child==='number')child=String(child);else if(typeof child!=='string')simple=false;}if(simple&&lastSimple){children[children.length-1]+=child;}else if(children.length===0){children=[child];}else{children.push(child);}lastSimple=simple;}}var p=new VNode();p.nodeName=nodeName;p.children=children;p.attributes=attributes==null?undefined:attributes;p.key=attributes==null?undefined:attributes.key;// if a \"vnode hook\" is defined, pass every created VNode to it\nif(options.vnode!==undefined)options.vnode(p);return p;}/* eslint-disable no-unused-vars */var getOwnPropertySymbols=Object.getOwnPropertySymbols;var hasOwnProperty=Object.prototype.hasOwnProperty;var propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(val){if(val===null||val===undefined){throw new TypeError('Object.assign cannot be called with null or undefined');}return Object(val);}function assign(target,source){var from;var to=toObject(target);var symbols;for(var s=1;s8){usePromise=true;}}}var defer=usePromise?Promise.resolve().then.bind(Promise.resolve()):setTimeout;function isArray(obj){return Object.prototype.toString.call(obj)==='[object Array]';}function getUse(data,paths,out,name){var obj=[];paths.forEach(function(path,index){var isPath=typeof path==='string';if(isPath){obj[index]=getTargetByPath(data,path);}else{var key=Object.keys(path)[0];var value=path[key];if(typeof value==='string'){obj[index]=getTargetByPath(data,value);}else{var tempPath=value[0];if(typeof tempPath==='string'){var tempVal=getTargetByPath(data,tempPath);obj[index]=value[1]?value[1](tempVal):tempVal;}else{var args=[];tempPath.forEach(function(path){args.push(getTargetByPath(data,path));});obj[index]=value[1].apply(null,args);}}obj[key]=obj[index];}});out&&(out[name]=obj);return obj;}function getTargetByPath(origin,path){var arr=path.replace(/]/g,'').replace(/\\[/g,'.').split('.');var current=origin;for(var i=0,len=arr.length;i2?[].slice.call(arguments,2):vnode.children);}// DOM properties that should NOT have \"px\" added when numeric\nvar IS_NON_DIMENSIONAL$1=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;/** Managed queue of dirty components to be re-rendered */var items=[];function enqueueRender(component){if(items.push(component)==1){(options.debounceRendering||defer)(rerender);}}/** Rerender all enqueued dirty components */function rerender(){var p;while(p=items.pop()){renderComponent(p);}}var mapping=options.mapping;/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node\t\t\tDOM Node to compare\n * @param {VNode} vnode\t\t\tVirtual DOM node to compare\n * @param {boolean} [hydrating=false]\tIf true, ignores component constructors when comparing.\n * @private\n */function isSameNodeType(node,vnode,hydrating){if(typeof vnode==='string'||typeof vnode==='number'){return node.splitText!==undefined;}if(typeof vnode.nodeName==='string'){var ctor=mapping[vnode.nodeName];if(ctor){return hydrating||node._componentConstructor===ctor;}return!node._componentConstructor&&isNamedNode(node,vnode.nodeName);}return hydrating||node._componentConstructor===vnode.nodeName;}/**\n * Check if an Element has a given nodeName, case-insensitively.\n *\n * @param {Element} node\tA DOM Element to inspect the name of.\n * @param {String} nodeName\tUnnormalized name to compare against.\n */function isNamedNode(node,nodeName){return node.normalizedNodeName===nodeName||node.nodeName.toLowerCase()===nodeName.toLowerCase();}/**\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 */function getNodeProps(vnode){var props=extend({},vnode.attributes);props.children=vnode.children;var defaultProps=vnode.nodeName.defaultProps;if(defaultProps!==undefined){for(var i in defaultProps){if(props[i]===undefined){props[i]=defaultProps[i];}}}return props;}/** Create an element with the given nodeName.\n *\t@param {String} nodeName\n *\t@param {Boolean} [isSvg=false]\tIf `true`, creates an element within the SVG namespace.\n *\t@returns {Element} node\n */function createNode(nodeName,isSvg){var node=isSvg?options.doc.createElementNS('http://www.w3.org/2000/svg',nodeName):options.doc.createElement(nodeName);node.normalizedNodeName=nodeName;return node;}function parseCSSText(cssText){var cssTxt=cssText.replace(/\\/\\*(.|\\s)*?\\*\\//g,' ').replace(/\\s+/g,' ');var style={},_ref=cssTxt.match(/ ?(.*?) ?{([^}]*)}/)||[a,b,cssTxt],a=_ref[0],b=_ref[1],rule=_ref[2];var cssToJs=function cssToJs(s){return s.replace(/\\W+\\w/g,function(match){return match.slice(-1).toUpperCase();});};var properties=rule.split(';').map(function(o){return o.split(':').map(function(x){return x&&x.trim();});});for(var i=properties,i=Array.isArray(i),i=0,i=i?i:i[Symbol.iterator]();;){var _ref3;if(i){if(i>=i.length)break;_ref3=i[i++];}else{i=i.next();if(i.done)break;_ref3=i.value;}var _ref2=_ref3;var property=_ref2[0];var value=_ref2[1];style[cssToJs(property)]=value;}return style;}/** Remove a child node from its parent if attached.\n *\t@param {Element} node\t\tThe node to remove\n */function removeNode(node){var parentNode=node.parentNode;if(parentNode)parentNode.removeChild(node);}/** Set a named attribute on the given Node, with special behavior for some names and event handlers.\n *\tIf `value` is `null`, the attribute/handler will be removed.\n *\t@param {Element} node\tAn element to mutate\n *\t@param {string} name\tThe name/key to set, such as an event or attribute name\n *\t@param {any} old\tThe last value that was set for this name/node pair\n *\t@param {any} value\tAn attribute value, such as a function to be used as an event handler\n *\t@param {Boolean} isSvg\tAre we currently diffing inside an svg?\n *\t@private\n */function setAccessor(node,name,old,value,isSvg){if(name==='className')name='class';if(name==='key'){// ignore\n}else if(name==='ref'){applyRef(old,null);applyRef(value,node);}else if(name==='class'&&!isSvg){node.className=value||'';}else if(name==='style'){if(options.isWeb){if(!value||typeof value==='string'||typeof old==='string'){node.style.cssText=value||'';}if(value&&(typeof value==='undefined'?'undefined':_typeof(value))==='object'){if(typeof old!=='string'){for(var i in old){if(!(i in value))node.style[i]='';}}for(var i in value){node.style[i]=typeof value[i]==='number'&&IS_NON_DIMENSIONAL$1.test(i)===false?value[i]+'px':value[i];}}}else{var oldJson=old,currentJson=value;if(typeof old==='string'){oldJson=parseCSSText(old);}if(typeof value=='string'){currentJson=parseCSSText(value);}var result={},changed=false;if(oldJson){for(var key in oldJson){if((typeof currentJson==='undefined'?'undefined':_typeof(currentJson))=='object'&&!(key in currentJson)){result[key]='';changed=true;}}for(var ckey in currentJson){if(currentJson[ckey]!==oldJson[ckey]){result[ckey]=currentJson[ckey];changed=true;}}if(changed){node.setStyles(result);}}else{node.setStyles(currentJson);}}}else if(name==='dangerouslySetInnerHTML'){if(value)node.innerHTML=value.__html||'';}else if(name[0]=='o'&&name[1]=='n'){var useCapture=name!==(name=name.replace(/Capture$/,''));var nameLower=name.toLowerCase();name=(nameLower in node?nameLower:name).slice(2);if(value){if(!old){node.addEventListener(name,eventProxy,useCapture);if(name=='tap'){node.addEventListener('touchstart',touchStart,useCapture);node.addEventListener('touchend',touchEnd,useCapture);}}}else{node.removeEventListener(name,eventProxy,useCapture);if(name=='tap'){node.removeEventListener('touchstart',touchStart,useCapture);node.removeEventListener('touchend',touchEnd,useCapture);}}(node._listeners||(node._listeners={}))[name]=value;}else if(name!=='list'&&name!=='tagName'&&// HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n// setAttribute\nname!=='form'&&name!=='type'&&name!=='size'&&name!=='download'&&name!=='href'&&!isSvg&&name in node){setProperty(node,name,value==null?'':value);}else{var ns=isSvg&&name!==(name=name.replace(/^xlink:?/,''));if(value==null||value===false){if(ns)node.removeAttributeNS('http://www.w3.org/1999/xlink',name.toLowerCase());else node.removeAttribute(name);}else if(typeof value!=='function'){if(ns)node.setAttributeNS('http://www.w3.org/1999/xlink',name.toLowerCase(),value);else node.setAttribute(name,value);}}}/** Attempt to set a DOM property to the given value.\n *\tIE & FF throw for certain property-value combinations.\n */function setProperty(node,name,value){try{node[name]=value;}catch(e){}}/** Proxy an event to hooked event handlers\n *\t@private\n */function eventProxy(e){return this._listeners[e.type](options.event&&options.event(e)||e);}function touchStart(e){this.___touchX=e.touches[0].pageX;this.___touchY=e.touches[0].pageY;this.___scrollTop=document.body.scrollTop;}function touchEnd(e){if(Math.abs(e.changedTouches[0].pageX-this.___touchX)<30&&Math.abs(e.changedTouches[0].pageY-this.___touchY)<30&&Math.abs(document.body.scrollTop-this.___scrollTop)<30){this.dispatchEvent(new CustomEvent('tap',{detail:e}));}}var styleId=0;function getCtorName(ctor){for(var i=0,len=options.styleCache.length;i-1;){if(item===arr[i])return true;}return false;}function getRootName(prop,path){if(path==='#'){return prop;}return path.split('-')[1];}obaa.add=function(obj,prop){watch(obj,prop,obj.$_o_.$_p_,obj.$_o_.$_r_);};obaa.set=function(obj,prop,value){if(obj[prop]===undefined){watch(obj,prop,obj.$_o_.$_p_,obj.$_o_.$_r_);}obj[prop]=value;};Array.prototype.size=function(length){this.length=length;};/** Render JSX into a `parent` Element.\n *\t@param {VNode} vnode\t\tA (JSX) VNode to render\n *\t@param {Element} parent\t\tDOM element to render into\n *\t@param {object} [store]\n *\t@public\n */function render(vnode,parent,store,empty,merge){parent=typeof parent==='string'?document.querySelector(parent):parent;if(store){if(store.data){obsStore(store);}else{options.isMultiStore=true;for(var key in store){if(store[key].data){obsStore(store[key],key);}}}}if(empty){while(parent.firstChild){parent.removeChild(parent.firstChild);}}if(merge){merge=typeof merge==='string'?document.querySelector(merge):merge;}return diff(merge,vnode,store,false,parent,false);}function obsStore(store,storeName){store.instances=[];store.updateSelfInstances=[];extendStoreUpate(store,storeName);obaa(store.data,function(prop,val,old,path){var patchs={};var key=fixPath(path+'-'+prop);patchs[key]=true;store.update(patchs);});}function merge(vnode,merge,store){obsStore(store);merge=typeof merge==='string'?document.querySelector(merge):merge;return diff(merge,vnode,store);}function extendStoreUpate(store,key){store.update=function(patch){if(Object.keys(patch).length>0){this.instances.forEach(function(instance){compute(instance,key);if(key){if(instance._updatePath&&instance._updatePath[key]&&needUpdate(patch,instance._updatePath[key])){if(instance.use){getUse(store.data,(typeof instance.use==='function'?instance.use():instance.use)[key],instance.using,key);}instance.update();}}else{if(instance._updatePath&&needUpdate(patch,instance._updatePath)){if(instance.use){instance.using=getUse(store.data,typeof instance.use==='function'?instance.use():instance.use);}instance.update();}}});this.updateSelfInstances.forEach(function(instance){compute(instance,key);if(key){if(instance._updateSelfPath&&instance._updateSelfPath[key]&&needUpdate(patch,instance._updateSelfPath[key])){if(instance.useSelf){getUse(store.data,(typeof instance.useSelf==='function'?instance.useSelf():instance.useSelf)[key],instance.usingSelf,key);}instance.updateSelf();}}else{if(instance._updateSelfPath&&needUpdate(patch,instance._updateSelfPath)){instance.usingSelf=getUse(store.data,typeof instance.useSelf==='function'?instance.useSelf():instance.useSelf);instance.updateSelf();}}});this.onChange&&this.onChange(patch);}};}function compute(instance,isMultiStore){if(instance.compute){for(var ck in instance.compute){instance.computed[ck]=instance.compute[ck].call(isMultiStore?instance.store:instance.store.data);}}}function needUpdate(diffResult,updatePath){for(var keyA in diffResult){if(updatePath[keyA]){return true;}for(var keyB in updatePath){if(includePath(keyA,keyB)){return true;}}}return false;}function includePath(pathA,pathB){if(pathA.indexOf(pathB)===0){var next=pathA.substr(pathB.length,1);if(next==='['||next==='.'){return true;}}return false;}function fixPath(path){var mpPath='';var arr=path.replace('#-','').split('-');arr.forEach(function(item,index){if(index){if(isNaN(Number(item))){mpPath+='.'+item;}else{mpPath+='['+item+']';}}else{mpPath+=item;}});return mpPath;}function _classCallCheck$1(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");}return call&&((typeof call==='undefined'?'undefined':_typeof(call))===\"object\"||typeof call===\"function\")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+(typeof superClass==='undefined'?'undefined':_typeof(superClass)));}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}var storeHelpers=['use','useSelf'];function define(name,ctor,config){if(ctor.is==='WeElement'){options.mapping[name]=ctor;}else{if(typeof config==='string'){config={css:config};}else{config=config||{};}var Comp=function(_Component){_inherits(Comp,_Component);function Comp(){var _temp,_this,_ret;_classCallCheck$1(this,Comp);for(var _len=arguments.length,args=Array(_len),key=0;key<_len;key++){args[key]=arguments[key];}return _ret=(_temp=(_this=_possibleConstructorReturn(this,_Component.call.apply(_Component,[this].concat(args))),_this),_this.compute=config.compute,_temp),_possibleConstructorReturn(_this,_ret);}Comp.prototype.render=function render(){return ctor.call(this,this);};return Comp;}(Component);Comp.css=config.css;Comp.propTypes=config.propTypes;Comp.defaultProps=config.defaultProps;var _loop=function _loop(key){if(typeof config[key]==='function'){Comp.prototype[key]=function(){return config[key].apply(this,arguments);};}};for(var key in config){_loop(key);}storeHelpers.forEach(function(func){if(config[func]&&config[func]!=='function'){Comp.prototype[func]=function(){return config[func];};}});options.mapping[name]=Comp;}}function rpx(str){return str.replace(/([1-9]\\d*|0)(\\.\\d*)*rpx/g,function(a,b){return window.innerWidth*Number(b)/750+'px';});}function tag(name){return function(target){define(name,target);};}/**\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 */var hasOwn={}.hasOwnProperty;function classNames(){var classes=[];for(var i=0;i0){return{'class':classNames.apply(null,args)};}}function getHost(component){var base=component.base;if(base){while(base.parentNode){if(base.parentNode._component){return base.parentNode._component;}else{base=base.parentNode;}}}}/**\n * preact-render-to-string based on preact-render-to-string\n * by Jason Miller\n * Licensed under the MIT License\n * https://github.com/developit/preact-render-to-string\n *\n * modified by dntzhang\n */var encodeEntities=function encodeEntities(s){return String(s).replace(/&/g,'&').replace(//g,'>').replace(/\"/g,'"');};var indent=function indent(s,char){return String(s).replace(/(\\n+)/g,'$1'+(char||'\\t'));};var mapping$1=options.mapping;var VOID_ELEMENTS=/^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/;var isLargeString=function isLargeString(s,length,ignoreLines){return String(s).length>(length||40)||!ignoreLines&&String(s).indexOf('\\n')!==-1||String(s).indexOf('<')!==-1;};var JS_TO_CSS={};// Convert an Object style to a CSSText string\nfunction styleObjToCss(s){var str='';for(var prop in s){var val=s[prop];if(val!=null){if(str)str+=' ';// str += jsToCss(prop);\nstr+=JS_TO_CSS[prop]||(JS_TO_CSS[prop]=prop.replace(/([A-Z])/g,'-$1').toLowerCase());str+=': ';str+=val;if(typeof val==='number'&&IS_NON_DIMENSIONAL.test(prop)===false){str+='px';}str+=';';}}return str||undefined;}function renderToString(vnode,opts,store,isSvgMode){store=store||{};opts=Object.assign({scopedCSS:true},opts);var css={};var html=_renderToString(vnode,opts,store,isSvgMode,css);return{css:Object.values(css),html:html};}/** The default export is an alias of `render()`. */function _renderToString(vnode,opts,store,isSvgMode,css){if(vnode==null||typeof vnode==='boolean'){return'';}var nodeName=vnode.nodeName,attributes=vnode.attributes,isComponent=false;var pretty=true&&opts.pretty,indentChar=pretty&&typeof pretty==='string'?pretty:'\\t';// #text nodes\nif((typeof vnode==='undefined'?'undefined':_typeof(vnode))!=='object'&&!nodeName){return encodeEntities(vnode);}// components\nvar ctor=mapping$1[nodeName];if(ctor){isComponent=true;var props=getNodeProps$1(vnode),rendered;// class-based components\nvar c=new ctor(props,store);// turn off stateful re-rendering:\nc._disable=c.__x=true;c.props=props;c.store=store;if(c.install)c.install();if(c.beforeRender)c.beforeRender();rendered=c.render(c.props,c.store);if(opts.scopedCSS){if(c.constructor.css||c.css){var cssStr=c.constructor.css?c.constructor.css:typeof c.css==='function'?c.css():c.css;var cssAttr='_s'+getCtorName(c.constructor);css[cssAttr]={id:cssAttr,css:scoper(cssStr,cssAttr)};addScopedAttrStatic(rendered,cssAttr);}c.scopedCSSAttr=vnode.css;scopeHost(rendered,c.scopedCSSAttr);}return _renderToString(rendered,opts,store,false,css);}// render JSX to HTML\nvar s='',html;if(attributes){var attrs=Object.keys(attributes);// allow sorting lexicographically for more determinism (useful for tests, such as via preact-jsx-chai)\nif(opts&&opts.sortAttributes===true)attrs.sort();for(var i=0;i]/))continue;if(!(opts&&opts.allAttributes)&&(name==='key'||name==='ref'))continue;if(name==='className'){if(attributes['class'])continue;name='class';}else if(isSvgMode&&name.match(/^xlink:?./)){name=name.toLowerCase().replace(/^xlink:?/,'xlink:');}if(name==='style'&&v&&(typeof v==='undefined'?'undefined':_typeof(v))==='object'){v=styleObjToCss(v);}var hooked=opts.attributeHook&&opts.attributeHook(name,v,store,opts,isComponent);if(hooked||hooked===''){s+=hooked;continue;}if(name==='dangerouslySetInnerHTML'){html=v&&v.__html;}else if((v||v===0||v==='')&&typeof v!=='function'){if(v===true||v===''){v=name;// in non-xml mode, allow boolean attributes\nif(!opts||!opts.xml){s+=' '+name;continue;}}s+=' '+name+'=\"'+encodeEntities(v)+'\"';}}}// account for >1 multiline attribute\nif(pretty){var sub=s.replace(/^\\n\\s*/,' ');if(sub!==s&&!~sub.indexOf('\\n'))s=sub;else if(pretty&&~s.indexOf('\\n'))s+='\\n';}s='<'+nodeName+s+'>';if(String(nodeName).match(/[\\s\\n\\\\/='\"\\0<>]/))throw s;var isVoid=String(nodeName).match(VOID_ELEMENTS);if(isVoid)s=s.replace(/>$/,' />');var pieces=[];if(html){// if multiline, indent.\nif(pretty&&isLargeString(html)){html='\\n'+indentChar+indent(html,indentChar);}s+=html;}else if(vnode.children){var hasLarge=pretty&&~s.indexOf('\\n');for(var i=0;i';}if(!isVoid){if(pretty&&~s.indexOf('\\n'))s+='\\n';s+='';}return s;}function assign$1(obj,props){for(var i in props){obj[i]=props[i];}return obj;}function getNodeProps$1(vnode){var props=assign$1({},vnode.attributes);props.children=vnode.children;var defaultProps=vnode.nodeName.defaultProps;if(defaultProps!==undefined){for(var i in defaultProps){if(props[i]===undefined){props[i]=defaultProps[i];}}}return props;}h.f=Fragment;var WeElement=Component;var defineElement=define;function createRef(){return{};}options.root.Omi={h:h,createElement:h,cloneElement:cloneElement,createRef:createRef,Component:Component,render:render,rerender:rerender,options:options,WeElement:WeElement,define:define,rpx:rpx,defineElement:defineElement,classNames:classNames,extractClass:extractClass,getHost:getHost,renderToString:renderToString,tag:tag,merge:merge,obaa:obaa};options.root.omi=options.root.Omi;options.root.Omi.version='omio-2.8.3';var omi={h:h,createElement:h,cloneElement:cloneElement,createRef:createRef,Component:Component,render:render,rerender:rerender,options:options,WeElement:WeElement,define:define,rpx:rpx,defineElement:defineElement,classNames:classNames,extractClass:extractClass,getHost:getHost,renderToString:renderToString,tag:tag,merge:merge,obaa:obaa};exports.default=omi;exports.h=h;exports.createElement=h;exports.cloneElement=cloneElement;exports.createRef=createRef;exports.Component=Component;exports.render=render;exports.rerender=rerender;exports.options=options;exports.WeElement=WeElement;exports.define=define;exports.rpx=rpx;exports.defineElement=defineElement;exports.classNames=classNames;exports.extractClass=extractClass;exports.getHost=getHost;exports.renderToString=renderToString;exports.tag=tag;exports.merge=merge;exports.obaa=obaa;//# sourceMappingURL=omi.esm.js.map\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/// css base code, injected by the css-loader\nmodule.exports=function(useSourceMap){var list=[];// return the list of modules as css string\nlist.toString=function toString(){return this.map(function(item){var content=cssWithMappingToString(item,useSourceMap);if(item[2]){return\"@media \"+item[2]+\"{\"+content+\"}\";}else{return content;}}).join(\"\");};// import a list of modules into the list\nlist.i=function(modules,mediaQuery){if(typeof modules===\"string\")modules=[[null,modules,\"\"]];var alreadyImportedModules={};for(var i=0;icapacity){// Manually shift all values starting at the index back to the\n// beginning of the queue.\nfor(var scan=0,newLength=queue.length-index;scan-1;};}function normalizeName(name){if(typeof name!=='string'){name=String(name);}if(/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)){throw new TypeError('Invalid character in header field name');}return name.toLowerCase();}function normalizeValue(value){if(typeof value!=='string'){value=String(value);}return value;}// Build a destructive iterator for the value list\nfunction iteratorFor(items){var iterator={next:function next(){var value=items.shift();return{done:value===undefined,value:value};}};if(support.iterable){iterator[Symbol.iterator]=function(){return iterator;};}return iterator;}function Headers(headers){this.map={};if(headers instanceof Headers){headers.forEach(function(value,name){this.append(name,value);},this);}else if(Array.isArray(headers)){headers.forEach(function(header){this.append(header[0],header[1]);},this);}else if(headers){Object.getOwnPropertyNames(headers).forEach(function(name){this.append(name,headers[name]);},this);}}Headers.prototype.append=function(name,value){name=normalizeName(name);value=normalizeValue(value);var oldValue=this.map[name];this.map[name]=oldValue?oldValue+','+value:value;};Headers.prototype['delete']=function(name){delete this.map[normalizeName(name)];};Headers.prototype.get=function(name){name=normalizeName(name);return this.has(name)?this.map[name]:null;};Headers.prototype.has=function(name){return this.map.hasOwnProperty(normalizeName(name));};Headers.prototype.set=function(name,value){this.map[normalizeName(name)]=normalizeValue(value);};Headers.prototype.forEach=function(callback,thisArg){for(var name in this.map){if(this.map.hasOwnProperty(name)){callback.call(thisArg,this.map[name],name,this);}}};Headers.prototype.keys=function(){var items=[];this.forEach(function(value,name){items.push(name);});return iteratorFor(items);};Headers.prototype.values=function(){var items=[];this.forEach(function(value){items.push(value);});return iteratorFor(items);};Headers.prototype.entries=function(){var items=[];this.forEach(function(value,name){items.push([name,value]);});return iteratorFor(items);};if(support.iterable){Headers.prototype[Symbol.iterator]=Headers.prototype.entries;}function consumed(body){if(body.bodyUsed){return Promise.reject(new TypeError('Already read'));}body.bodyUsed=true;}function fileReaderReady(reader){return new Promise(function(resolve,reject){reader.onload=function(){resolve(reader.result);};reader.onerror=function(){reject(reader.error);};});}function readBlobAsArrayBuffer(blob){var reader=new FileReader();var promise=fileReaderReady(reader);reader.readAsArrayBuffer(blob);return promise;}function readBlobAsText(blob){var reader=new FileReader();var promise=fileReaderReady(reader);reader.readAsText(blob);return promise;}function readArrayBufferAsText(buf){var view=new Uint8Array(buf);var chars=new Array(view.length);for(var i=0;i-1?upcased:method;}function Request(input,options){options=options||{};var body=options.body;if(input instanceof Request){if(input.bodyUsed){throw new TypeError('Already read');}this.url=input.url;this.credentials=input.credentials;if(!options.headers){this.headers=new Headers(input.headers);}this.method=input.method;this.mode=input.mode;if(!body&&input._bodyInit!=null){body=input._bodyInit;input.bodyUsed=true;}}else{this.url=String(input);}this.credentials=options.credentials||this.credentials||'omit';if(options.headers||!this.headers){this.headers=new Headers(options.headers);}this.method=normalizeMethod(options.method||this.method||'GET');this.mode=options.mode||this.mode||null;this.referrer=null;if((this.method==='GET'||this.method==='HEAD')&&body){throw new TypeError('Body not allowed for GET or HEAD requests');}this._initBody(body);}Request.prototype.clone=function(){return new Request(this,{body:this._bodyInit});};function decode(body){var form=new FormData();body.trim().split('&').forEach(function(bytes){if(bytes){var split=bytes.split('=');var name=split.shift().replace(/\\+/g,' ');var value=split.join('=').replace(/\\+/g,' ');form.append(decodeURIComponent(name),decodeURIComponent(value));}});return form;}function parseHeaders(rawHeaders){var headers=new Headers();rawHeaders.split(/\\r?\\n/).forEach(function(line){var parts=line.split(':');var key=parts.shift().trim();if(key){var value=parts.join(':').trim();headers.append(key,value);}});return headers;}Body.call(Request.prototype);function Response(bodyInit,options){if(!options){options={};}this.type='default';this.status='status'in options?options.status:200;this.ok=this.status>=200&&this.status<300;this.statusText='statusText'in options?options.statusText:'OK';this.headers=new Headers(options.headers);this.url=options.url||'';this._initBody(bodyInit);}Body.call(Response.prototype);Response.prototype.clone=function(){return new Response(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new Headers(this.headers),url:this.url});};Response.error=function(){var response=new Response(null,{status:0,statusText:''});response.type='error';return response;};var redirectStatuses=[301,302,303,307,308];Response.redirect=function(url,status){if(redirectStatuses.indexOf(status)===-1){throw new RangeError('Invalid status code');}return new Response(null,{status:status,headers:{location:url}});};self.Headers=Headers;self.Request=Request;self.Response=Response;self.fetch=function(input,init){return new Promise(function(resolve,reject){var request=new Request(input,init);var xhr=new XMLHttpRequest();xhr.onload=function(){var options={status:xhr.status,statusText:xhr.statusText,headers:parseHeaders(xhr.getAllResponseHeaders()||'')};options.url='responseURL'in xhr?xhr.responseURL:options.headers.get('X-Request-URL');var body='response'in xhr?xhr.response:xhr.responseText;resolve(new Response(body,options));};xhr.onerror=function(){reject(new TypeError('Network request failed'));};xhr.ontimeout=function(){reject(new TypeError('Network request failed'));};xhr.open(request.method,request.url,true);if(request.credentials==='include'){xhr.withCredentials=true;}if('responseType'in xhr&&support.blob){xhr.responseType='blob';}request.headers.forEach(function(value,name){xhr.setRequestHeader(name,value);});xhr.send(typeof request._bodyInit==='undefined'?null:request._bodyInit);});};self.fetch.polyfill=true;})(typeof self!=='undefined'?self:undefined);\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*//* eslint-disable no-unused-vars */var getOwnPropertySymbols=Object.getOwnPropertySymbols;var hasOwnProperty=Object.prototype.hasOwnProperty;var propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(val){if(val===null||val===undefined){throw new TypeError('Object.assign cannot be called with null or undefined');}return Object(val);}function shouldUseNative(){try{if(!Object.assign){return false;}// Detect buggy property enumeration order in older V8 versions.\n// https://bugs.chromium.org/p/v8/issues/detail?id=4118\nvar test1=new String('abc');// eslint-disable-line no-new-wrappers\ntest1[5]='de';if(Object.getOwnPropertyNames(test1)[0]==='5'){return false;}// https://bugs.chromium.org/p/v8/issues/detail?id=3056\nvar test2={};for(var i=0;i<10;i++){test2['_'+String.fromCharCode(i)]=i;}var order2=Object.getOwnPropertyNames(test2).map(function(n){return test2[n];});if(order2.join('')!=='0123456789'){return false;}// https://bugs.chromium.org/p/v8/issues/detail?id=3056\nvar test3={};'abcdefghijklmnopqrst'.split('').forEach(function(letter){test3[letter]=letter;});if(Object.keys(Object.assign({},test3)).join('')!=='abcdefghijklmnopqrst'){return false;}return true;}catch(err){// We don't expect any of the above to throw, but better to be safe.\nreturn false;}}module.exports=shouldUseNative()?Object.assign:function(target,source){var from;var to=toObject(target);var symbols;for(var s=1;s {\n// let newP = document.createElement('div')\n// newP.className = '_code-ctn'\n// let pre = code.parentNode\n// let ctn = pre.parentNode\n// if (pre.nodeName === 'PRE') {\n// ctn.insertBefore(newP, pre)\n// let hl = document.createElement('div')\n// hl.className = '_hl'\n// newP.appendChild(hl)\n// newP.appendChild(pre)\n// let nums = codeHlNumArr[index]\n// let max = Math.max.apply(null, nums)\n// let inner = ''\n// for (let i = 0; i <= max; i++) {\n// if (nums.indexOf(i) == -1) {\n// inner += '
'\n// } else {\n// inner += '
'\n// }\n// }\n// hl.innerHTML = inner\n// }\n// })\n//fix line-highlight\nwindow.dispatchEvent(new Event('resize'));}},{key:'_arrToNumber',value:function _arrToNumber(numArr){var arr=[];numArr.forEach(function(item){if(item.indexOf('-')!==-1){var tempArr=item.split('-');var begin=Number(tempArr[0]);var end=Number(tempArr[1]);for(var i=begin;i0)return false;}return true;}},{key:'render',value:function render(){if(!this.demo)return;return Omi.h('div',null,this.show&&Omi.h('iframe',{style:'height:'+(window.innerHeight-59)+'px',src:this.demo}),!this.show&&Omi.h('div',{'class':'switch code',onClick:this.onShow},Omi.h('img',{src:__webpack_require__(32)})),this.show&&Omi.h('div',{'class':'switch close',onClick:this.onClose},Omi.h('img',{src:__webpack_require__(33)})));}}]);return _class2;}(_omi.WeElement));\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n var result = __webpack_require__(31);\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(1)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \"iframe{\\n width: 750px;\\n height: 100%;\\n top: 60px;\\n right: 0;\\n position: fixed;\\n border: none;\\n z-index: 9999;\\n border-left: 2px solid #24292E;\\n}\\n\\n.switch{\\n width: 40px;\\n height: 40px;\\n background-color: #AA0000;\\n border-radius: 50%;\\n position: fixed;\\n right: 50px;\\n bottom: 50px;\\n cursor: pointer;\\n text-align: center;\\n z-index: 10000;\\n}\\n\\n.switch img{\\n width: 30px;\\n height: 30px;\\n margin-top:5px;\\n}\\n\\n.switch.close img{\\n margin-top:10px;\\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n@media only screen and (max-width: 800px) {\\n iframe{\\n width: 100%;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfiDBQMEgYVXhFiAAABVklEQVRIx+3UsU4UURSA4TNARoiJcR9BCwwJNNpRU0hjpS+hDTTyGkAD1UJnRzCbYKRAKzt9AaMxJoR+Ewho8dEMm5nZOzObbfVUM+ec/79n7uTeiP8xUfjiq6Xp8Ufg6fSCN7iQpasztebcttVaz3pEnGQirNqWt62VG2CoV8rNu8TLCD1DDBoVBc5BeVzr+OthhMwBjQq59wVe+Sy7+FQ8Z/bBB/MT4hG+4+3oLa0Y4f0x/AlYLmUyezVFMx5hE79ruaqiDY9wir2xbFnhqAW/7xovEpUZfXCUwEqxFvfiJs5ae+SO0/sfYR8fE8zdvzi524UGhV/Y6MCbp7ACFjvxiuKd2VFuCz/GNu8wgacVPmNnQrxQlA6TB/7geWX4tsNUUgz1IrzClYVStes4F4riQtHHoFbtulAq457j9UTNScEz8Li7c64hfxXf4jr7OfUE/1TcAoyIn6j/RilHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTEyLTIwVDExOjE4OjA2KzAxOjAwT3khJwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMi0yMFQxMToxODowNiswMTowMD4kmZsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC\"\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAQAAACROWYpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiDBQMERzDEbvbAAAArElEQVQ4y6XVOw6DMBBFUSf7SmGy2ZCNBerIJN2lAQn/34ArZHFsi3mDHW9mvDMOPDOjYwKCjeMJwGd/MPBI8OALBJ4S3d8e0okuz6jOi1TjVdrnTdrmXVrnEi1zmebcRGNupgf+YzHTjS8A/Ov0Lqxzs+97PLbUMukHG2wd59LimHheHJmX6yrxeiS6vJ2mJu8Hscq1DBe5Hv+M2zon4pd++teum5Hp5EX3WgGu+8eCI/n/bQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0xMi0yMFQxMToxNzoyOCswMTowMKxoBooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMTItMjBUMTE6MTc6MjgrMDE6MDDdNb42AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==\"\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function defineProperties(target,props){for(var i=0;i [\"test\", \"\\d+\", undefined, \"?\"]\n// \"(\\\\d+)\" => [undefined, undefined, \"\\d+\", undefined]\n'(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'].join('|'),'g');/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */function parse(str,options){var tokens=[];var key=0;var index=0;var path='';var defaultDelimiter=options&&options.delimiter||DEFAULT_DELIMITER;var whitelist=options&&options.whitelist||undefined;var pathEscaped=false;var res;while((res=PATH_REGEXP.exec(str))!==null){var m=res[0];var escaped=res[1];var offset=res.index;path+=str.slice(index,offset);index=offset+m.length;// Ignore already escaped sequences.\nif(escaped){path+=escaped[1];pathEscaped=true;continue;}var prev='';var name=res[2];var capture=res[3];var group=res[4];var modifier=res[5];if(!pathEscaped&&path.length){var k=path.length-1;var c=path[k];var matches=whitelist?whitelist.indexOf(c)>-1:true;if(matches){prev=c;path=path.slice(0,k);}}// Push the current path onto the tokens.\nif(path){tokens.push(path);path='';pathEscaped=false;}var repeat=modifier==='+'||modifier==='*';var optional=modifier==='?'||modifier==='*';var pattern=capture||group;var delimiter=prev||defaultDelimiter;tokens.push({name:name||key++,prefix:prev,delimiter:delimiter,optional:optional,repeat:repeat,pattern:pattern?escapeGroup(pattern):'[^'+escapeString(delimiter===defaultDelimiter?delimiter:delimiter+defaultDelimiter)+']+?'});}// Push any remaining characters.\nif(path||index0){params[pathArr[index].replace(':','')]=item;}});return params;}function route(path,callback){mapping[path]={callback:callback,reg:_pathToRegexp_3_2_0_pathToRegexp(path)};}var router={route:route,hashChange:hashChange};function getGlobal(){if((typeof global==='undefined'?'undefined':_typeof(global))!=='object'||!global||global.Math!==Math||global.Array!==Array){return self||window||global||function(){return this;}();}return global;}function getUrlParams(url){url=url.replace(/#.*$/,'');var queryArray=url.split(/[?&]/).slice(1);var i,args={};for(i=0;iHello!`\n *\n * can be constructed using this function as:\n *\n * `h('div', { id: 'foo', name : 'bar' }, 'Hello!');`\n *\n * @param {string} nodeName\tAn element name. Ex: `div`, `a`, `span`, etc.\n * @param {Object} attributes\tAny attributes/props to set on the created element.\n * @param rest\t\t\tAdditional arguments are taken to be children to append. Can be infinitely nested Arrays.\n *\n * @public\n */\nfunction h(nodeName, attributes) {\n var children = [],\n lastSimple,\n child,\n simple,\n i;\n for (i = arguments.length; i-- > 2;) {\n stack.push(arguments[i]);\n }\n if (attributes && attributes.children != null) {\n if (!stack.length) stack.push(attributes.children);\n delete attributes.children;\n }\n while (stack.length) {\n if ((child = stack.pop()) && child.pop !== undefined) {\n for (i = child.length; i--;) {\n stack.push(child[i]);\n }\n } else {\n if (typeof child === 'boolean') child = null;\n\n if (simple = typeof nodeName !== 'function') {\n if (child == null) child = '';else if (typeof child === 'number') child = String(child);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 var p = new VNode();\n p.nodeName = nodeName;\n p.children = children;\n p.attributes = attributes == null ? undefined : attributes;\n p.key = attributes == null ? undefined : attributes.key;\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\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n\n return Object(val);\n}\n\nfunction assign(target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n\n return to;\n}\n\nif (typeof Element !== 'undefined' && !Element.prototype.addEventListener) {\n var runListeners = function runListeners(oEvent) {\n if (!oEvent) {\n oEvent = window.event;\n }\n for (var iLstId = 0, iElId = 0, oEvtListeners = oListeners[oEvent.type]; iElId < oEvtListeners.aEls.length; iElId++) {\n if (oEvtListeners.aEls[iElId] === this) {\n for (iLstId; iLstId < oEvtListeners.aEvts[iElId].length; iLstId++) {\n oEvtListeners.aEvts[iElId][iLstId].call(this, oEvent);\n }\n break;\n }\n }\n };\n\n var oListeners = {};\n\n Element.prototype.addEventListener = function (sEventType, fListener /*, useCapture (will be ignored!) */) {\n if (oListeners.hasOwnProperty(sEventType)) {\n var oEvtListeners = oListeners[sEventType];\n for (var nElIdx = -1, iElId = 0; iElId < oEvtListeners.aEls.length; iElId++) {\n if (oEvtListeners.aEls[iElId] === this) {\n nElIdx = iElId;break;\n }\n }\n if (nElIdx === -1) {\n oEvtListeners.aEls.push(this);\n oEvtListeners.aEvts.push([fListener]);\n this[\"on\" + sEventType] = runListeners;\n } else {\n var aElListeners = oEvtListeners.aEvts[nElIdx];\n if (this[\"on\" + sEventType] !== runListeners) {\n aElListeners.splice(0);\n this[\"on\" + sEventType] = runListeners;\n }\n for (var iLstId = 0; iLstId < aElListeners.length; iLstId++) {\n if (aElListeners[iLstId] === fListener) {\n return;\n }\n }\n aElListeners.push(fListener);\n }\n } else {\n oListeners[sEventType] = { aEls: [this], aEvts: [[fListener]] };\n this[\"on\" + sEventType] = runListeners;\n }\n };\n Element.prototype.removeEventListener = function (sEventType, fListener /*, useCapture (will be ignored!) */) {\n if (!oListeners.hasOwnProperty(sEventType)) {\n return;\n }\n var oEvtListeners = oListeners[sEventType];\n for (var nElIdx = -1, iElId = 0; iElId < oEvtListeners.aEls.length; iElId++) {\n if (oEvtListeners.aEls[iElId] === this) {\n nElIdx = iElId;break;\n }\n }\n if (nElIdx === -1) {\n return;\n }\n for (var iLstId = 0, aElListeners = oEvtListeners.aEvts[nElIdx]; iLstId < aElListeners.length; iLstId++) {\n if (aElListeners[iLstId] === fListener) {\n aElListeners.splice(iLstId, 1);\n }\n }\n };\n}\n\nif (typeof Object.create !== 'function') {\n Object.create = function (proto, propertiesObject) {\n if (typeof proto !== 'object' && typeof proto !== 'function') {\n throw new TypeError('Object prototype may only be an Object: ' + proto);\n } else if (proto === null) {\n throw new Error(\"This browser's implementation of Object.create is a shim and doesn't support 'null' as the first argument.\");\n }\n\n // if (typeof propertiesObject != 'undefined') {\n // throw new Error(\"This browser's implementation of Object.create is a shim and doesn't support a second argument.\");\n // }\n\n function F() {}\n F.prototype = proto;\n\n return new F();\n };\n}\n\nif (!String.prototype.trim) {\n String.prototype.trim = function () {\n return this.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n };\n}\n\n/**\n * Copy all properties from `props` onto `obj`.\n * @param {Object} obj\t\tObject onto which properties should be copied.\n * @param {Object} props\tObject from which to copy properties.\n * @returns obj\n * @private\n */\nfunction extend(obj, props) {\n for (var i in props) {\n 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 */\nfunction applyRef(ref, value) {\n if (ref) {\n if (typeof ref == 'function') ref(value);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 *\n * @param {Function} callback\n */\n\nvar usePromise = typeof Promise == 'function';\n\n// for native\nif (typeof document !== 'object' && typeof global !== 'undefined' && global.__config__) {\n if (global.__config__.platform === 'android') {\n usePromise = true;\n } else {\n var systemVersion = global.__config__.systemVersion && global.__config__.systemVersion.split('.')[0] || 0;\n if (systemVersion > 8) {\n usePromise = true;\n }\n }\n}\n\nvar defer = usePromise ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n\nfunction isArray(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n}\n\nfunction getUse(data, paths, out, name) {\n var obj = [];\n paths.forEach(function (path, index) {\n var isPath = typeof path === 'string';\n if (isPath) {\n obj[index] = getTargetByPath(data, path);\n } else {\n var key = Object.keys(path)[0];\n var value = path[key];\n if (typeof value === 'string') {\n obj[index] = getTargetByPath(data, value);\n } else {\n var tempPath = value[0];\n if (typeof tempPath === 'string') {\n var tempVal = getTargetByPath(data, tempPath);\n obj[index] = value[1] ? value[1](tempVal) : tempVal;\n } else {\n var args = [];\n tempPath.forEach(function (path) {\n args.push(getTargetByPath(data, path));\n });\n obj[index] = value[1].apply(null, args);\n }\n }\n obj[key] = obj[index];\n }\n });\n out && (out[name] = obj);\n return obj;\n}\n\nfunction getTargetByPath(origin, path) {\n var arr = path.replace(/]/g, '').replace(/\\[/g, '.').split('.');\n var current = origin;\n for (var i = 0, len = arr.length; i < len; i++) {\n current = current[arr[i]];\n }\n return current;\n}\n\nfunction getPath(obj, out, name) {\n\n var result = {};\n obj.forEach(function (item) {\n if (typeof item === 'string') {\n result[item] = true;\n } else {\n var tempPath = item[Object.keys(item)[0]];\n if (typeof tempPath === 'string') {\n result[tempPath] = true;\n } else {\n if (typeof tempPath[0] === 'string') {\n result[tempPath[0]] = true;\n } else {\n tempPath[0].forEach(function (path) {\n return result[path] = true;\n });\n }\n }\n }\n });\n out && (out[name] = result);\n return result;\n}\n\nfunction removeItem(item, arr) {\n for (var i = 0, len = arr.length; i < len; i++) {\n if (arr[i] === item) {\n arr.splice(i, 1);\n break;\n }\n }\n}\n\nfunction Fragment(props) {\n return props.children;\n}\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {VNode} vnode\t\tThe virtual DOM element to clone\n * @param {Object} props\tAttributes/props to add when cloning\n * @param {VNode} rest\t\tAny additional arguments will be used as replacement children.\n */\nfunction cloneElement(vnode, props) {\n return h(vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children);\n}\n\n// DOM properties that should NOT have \"px\" added when numeric\nvar IS_NON_DIMENSIONAL$1 = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\n/** Managed queue of dirty components to be re-rendered */\n\nvar items = [];\n\nfunction enqueueRender(component) {\n if (items.push(component) == 1) {\n(options.debounceRendering || defer)(rerender);\n }\n}\n\n/** Rerender all enqueued dirty components */\nfunction rerender() {\n var p;\n while (p = items.pop()) {\n renderComponent(p);\n }\n}\n\nvar mapping = options.mapping;\n/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node\t\t\tDOM Node to compare\n * @param {VNode} vnode\t\t\tVirtual DOM node to compare\n * @param {boolean} [hydrating=false]\tIf true, ignores component constructors when comparing.\n * @private\n */\nfunction 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 var ctor = mapping[vnode.nodeName];\n if (ctor) {\n return hydrating || node._componentConstructor === ctor;\n }\n return !node._componentConstructor && isNamedNode(node, 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\tA DOM Element to inspect the name of.\n * @param {String} nodeName\tUnnormalized name to compare against.\n */\nfunction isNamedNode(node, nodeName) {\n return node.normalizedNodeName === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();\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 */\nfunction getNodeProps(vnode) {\n var props = extend({}, vnode.attributes);\n props.children = vnode.children;\n\n var defaultProps = vnode.nodeName.defaultProps;\n if (defaultProps !== undefined) {\n for (var i in defaultProps) {\n if (props[i] === undefined) {\n props[i] = defaultProps[i];\n }\n }\n }\n\n return props;\n}\n\n/** Create an element with the given nodeName.\n *\t@param {String} nodeName\n *\t@param {Boolean} [isSvg=false]\tIf `true`, creates an element within the SVG namespace.\n *\t@returns {Element} node\n */\nfunction createNode(nodeName, isSvg) {\n\tvar node = isSvg ? options.doc.createElementNS('http://www.w3.org/2000/svg', nodeName) : options.doc.createElement(nodeName);\n\tnode.normalizedNodeName = nodeName;\n\treturn node;\n}\n\nfunction parseCSSText(cssText) {\n\tvar cssTxt = cssText.replace(/\\/\\*(.|\\s)*?\\*\\//g, ' ').replace(/\\s+/g, ' ');\n\tvar style = {},\n\t _ref = cssTxt.match(/ ?(.*?) ?{([^}]*)}/) || [a, b, cssTxt],\n\t a = _ref[0],\n\t b = _ref[1],\n\t rule = _ref[2];\n\n\tvar cssToJs = function cssToJs(s) {\n\t\treturn s.replace(/\\W+\\w/g, function (match) {\n\t\t\treturn match.slice(-1).toUpperCase();\n\t\t});\n\t};\n\tvar properties = rule.split(';').map(function (o) {\n\t\treturn o.split(':').map(function (x) {\n\t\t\treturn x && x.trim();\n\t\t});\n\t});\n\tfor (var i = properties, i = Array.isArray(i), i = 0, i = i ? i : i[Symbol.iterator]();;) {\n\t\tvar _ref3;\n\n\t\tif (i) {\n\t\t\tif (i >= i.length) break;\n\t\t\t_ref3 = i[i++];\n\t\t} else {\n\t\t\ti = i.next();\n\t\t\tif (i.done) break;\n\t\t\t_ref3 = i.value;\n\t\t}\n\n\t\tvar _ref2 = _ref3;\n\t\tvar property = _ref2[0];\n\t\tvar value = _ref2[1];\n\t\tstyle[cssToJs(property)] = value;\n\t}return style;\n}\n\n/** Remove a child node from its parent if attached.\n *\t@param {Element} node\t\tThe node to remove\n */\nfunction removeNode(node) {\n\tvar parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\n/** Set a named attribute on the given Node, with special behavior for some names and event handlers.\n *\tIf `value` is `null`, the attribute/handler will be removed.\n *\t@param {Element} node\tAn element to mutate\n *\t@param {string} name\tThe name/key to set, such as an event or attribute name\n *\t@param {any} old\tThe last value that was set for this name/node pair\n *\t@param {any} value\tAn attribute value, such as a function to be used as an event handler\n *\t@param {Boolean} isSvg\tAre we currently diffing inside an svg?\n *\t@private\n */\nfunction setAccessor(node, name, old, value, isSvg) {\n\tif (name === 'className') name = 'class';\n\n\tif (name === 'key') {\n\t\t// ignore\n\t} else if (name === 'ref') {\n\t\tapplyRef(old, null);\n\t\tapplyRef(value, node);\n\t} else if (name === 'class' && !isSvg) {\n\t\tnode.className = value || '';\n\t} else if (name === 'style') {\n\t\tif (options.isWeb) {\n\t\t\tif (!value || typeof value === 'string' || typeof old === 'string') {\n\t\t\t\tnode.style.cssText = value || '';\n\t\t\t}\n\t\t\tif (value && typeof value === 'object') {\n\t\t\t\tif (typeof old !== 'string') {\n\t\t\t\t\tfor (var i in old) {\n\t\t\t\t\t\tif (!(i in value)) node.style[i] = '';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (var i in value) {\n\t\t\t\t\tnode.style[i] = typeof value[i] === 'number' && IS_NON_DIMENSIONAL$1.test(i) === false ? value[i] + 'px' : value[i];\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tvar oldJson = old,\n\t\t\t currentJson = value;\n\t\t\tif (typeof old === 'string') {\n\t\t\t\toldJson = parseCSSText(old);\n\t\t\t}\n\t\t\tif (typeof value == 'string') {\n\t\t\t\tcurrentJson = parseCSSText(value);\n\t\t\t}\n\n\t\t\tvar result = {},\n\t\t\t changed = false;\n\n\t\t\tif (oldJson) {\n\t\t\t\tfor (var key in oldJson) {\n\t\t\t\t\tif (typeof currentJson == 'object' && !(key in currentJson)) {\n\t\t\t\t\t\tresult[key] = '';\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor (var ckey in currentJson) {\n\t\t\t\t\tif (currentJson[ckey] !== oldJson[ckey]) {\n\t\t\t\t\t\tresult[ckey] = currentJson[ckey];\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (changed) {\n\t\t\t\t\tnode.setStyles(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tnode.setStyles(currentJson);\n\t\t\t}\n\t\t}\n\t} else if (name === 'dangerouslySetInnerHTML') {\n\t\tif (value) node.innerHTML = value.__html || '';\n\t} else if (name[0] == 'o' && name[1] == 'n') {\n\t\tvar useCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tvar nameLower = name.toLowerCase();\n\t\tname = (nameLower in node ? nameLower : name).slice(2);\n\t\tif (value) {\n\t\t\tif (!old) {\n\t\t\t\tnode.addEventListener(name, eventProxy, useCapture);\n\t\t\t\tif (name == 'tap') {\n\t\t\t\t\tnode.addEventListener('touchstart', touchStart, useCapture);\n\t\t\t\t\tnode.addEventListener('touchend', touchEnd, useCapture);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tnode.removeEventListener(name, eventProxy, useCapture);\n\t\t\tif (name == 'tap') {\n\t\t\t\tnode.removeEventListener('touchstart', touchStart, useCapture);\n\t\t\t\tnode.removeEventListener('touchend', touchEnd, useCapture);\n\t\t\t}\n\t\t}\n(node._listeners || (node._listeners = {}))[name] = value;\n\t} else if (name !== 'list' && name !== 'tagName' &&\n\t// HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n\t// setAttribute\n\tname !== 'form' && name !== 'type' && name !== 'size' && name !== 'download' && name !== 'href' && !isSvg && name in node) {\n\t\tsetProperty(node, name, value == null ? '' : value);\n\t} else {\n\t\tvar ns = isSvg && name !== (name = name.replace(/^xlink:?/, ''));\n\t\tif (value == null || value === false) {\n\t\t\tif (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());else node.removeAttribute(name);\n\t\t} else if (typeof value !== 'function') {\n\t\t\tif (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);else node.setAttribute(name, value);\n\t\t}\n\t}\n}\n\n/** Attempt to set a DOM property to the given value.\n *\tIE & FF throw for certain property-value combinations.\n */\nfunction setProperty(node, name, value) {\n\ttry {\n\t\tnode[name] = value;\n\t} catch (e) {}\n}\n\n/** Proxy an event to hooked event handlers\n *\t@private\n */\nfunction eventProxy(e) {\n\treturn this._listeners[e.type](options.event && options.event(e) || e);\n}\n\nfunction touchStart(e) {\n\tthis.___touchX = e.touches[0].pageX;\n\tthis.___touchY = e.touches[0].pageY;\n\tthis.___scrollTop = document.body.scrollTop;\n}\n\nfunction touchEnd(e) {\n\tif (Math.abs(e.changedTouches[0].pageX - this.___touchX) < 30 && Math.abs(e.changedTouches[0].pageY - this.___touchY) < 30 && Math.abs(document.body.scrollTop - this.___scrollTop) < 30) {\n\t\tthis.dispatchEvent(new CustomEvent('tap', { detail: e }));\n\t}\n}\n\nvar styleId = 0;\n\nfunction getCtorName(ctor) {\n for (var i = 0, len = options.styleCache.length; i < len; i++) {\n var item = options.styleCache[i];\n\n if (item.ctor === ctor) {\n return item.attrName;\n }\n }\n\n var attrName = 's' + styleId;\n options.styleCache.push({ ctor: ctor, attrName: attrName });\n styleId++;\n\n return attrName;\n}\n\n// many thanks to https://github.com/thomaspark/scoper/\nfunction scoper(css, prefix) {\n prefix = '[' + prefix.toLowerCase() + ']';\n // https://www.w3.org/TR/css-syntax-3/#lexical\n css = css.replace(/\\/\\*[^*]*\\*+([^/][^*]*\\*+)*\\//g, '');\n // eslint-disable-next-line\n var re = new RegExp('([^\\r\\n,{}:]+)(:[^\\r\\n,{}]+)?(,(?=[^{}]*{)|\\s*{)', 'g');\n /**\n * Example:\n *\n * .classname::pesudo { color:red }\n *\n * g1 is normal selector `.classname`\n * g2 is pesudo class or pesudo element\n * g3 is the suffix\n */\n css = css.replace(re, function (g0, g1, g2, g3) {\n if (typeof g2 === 'undefined') {\n g2 = '';\n }\n\n /* eslint-ignore-next-line */\n if (g1.match(/^\\s*(@media|\\d+%?|@-webkit-keyframes|@keyframes|to|from|@font-face)/)) {\n return g1 + g2 + g3;\n }\n\n var appendClass = g1.replace(/(\\s*)$/, '') + prefix + g2;\n //let prependClass = prefix + ' ' + g1.trim() + g2;\n\n return appendClass + g3;\n //return appendClass + ',' + prependClass + g3;\n });\n\n return css;\n}\n\nfunction addStyle(cssText, id) {\n id = id.toLowerCase();\n var ele = document.getElementById(id);\n var head = document.getElementsByTagName('head')[0];\n if (ele && ele.parentNode === head) {\n head.removeChild(ele);\n }\n\n var someThingStyles = document.createElement('style');\n head.appendChild(someThingStyles);\n someThingStyles.setAttribute('type', 'text/css');\n someThingStyles.setAttribute('id', id);\n if (window.ActiveXObject) {\n someThingStyles.styleSheet.cssText = cssText;\n } else {\n someThingStyles.textContent = cssText;\n }\n}\n\nfunction addStyleWithoutId(cssText) {\n var head = document.getElementsByTagName('head')[0];\n var someThingStyles = document.createElement('style');\n head.appendChild(someThingStyles);\n someThingStyles.setAttribute('type', 'text/css');\n\n if (window.ActiveXObject) {\n someThingStyles.styleSheet.cssText = cssText;\n } else {\n someThingStyles.textContent = cssText;\n }\n}\n\nfunction addScopedAttrStatic(vdom, attr) {\n if (options.scopedStyle) {\n scopeVdom(attr, vdom);\n }\n}\n\nfunction addStyleToHead(style, attr) {\n if (options.scopedStyle) {\n if (!options.staticStyleMapping[attr]) {\n addStyle(scoper(style, attr), attr);\n options.staticStyleMapping[attr] = true;\n }\n } else if (!options.staticStyleMapping[attr]) {\n addStyleWithoutId(style);\n options.staticStyleMapping[attr] = true;\n }\n}\n\nfunction scopeVdom(attr, vdom) {\n if (typeof vdom === 'object') {\n vdom.attributes = vdom.attributes || {};\n vdom.attributes[attr] = '';\n vdom.css = vdom.css || {};\n vdom.css[attr] = '';\n vdom.children.forEach(function (child) {\n return scopeVdom(attr, child);\n });\n }\n}\n\nfunction scopeHost(vdom, css) {\n if (typeof vdom === 'object' && css) {\n vdom.attributes = vdom.attributes || {};\n for (var key in css) {\n vdom.attributes[key] = '';\n }\n }\n}\n\n/** Queue of components that have been mounted and are awaiting componentDidMount */\nvar mounts = [];\n\n/** Diff recursion count, used to track the end of the diff cycle. */\nvar diffLevel = 0;\n\n/** Global flag indicating if the diff is currently within an SVG */\nvar isSvgMode = false;\n\n/** Global flag indicating if the diff is performing hydration */\nvar hydrating = false;\n\n/** Invoke queued componentDidMount lifecycle methods */\nfunction flushMounts() {\n var c;\n while (c = mounts.pop()) {\n if (options.afterMount) options.afterMount(c);\n if (c.installed) c.installed();\n if (c.constructor.css || c.css) {\n addStyleToHead(c.constructor.css ? c.constructor.css : typeof c.css === 'function' ? c.css() : c.css, '_s' + getCtorName(c.constructor));\n }\n }\n}\n\n/** Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n *\t@param {Element} [dom=null]\t\tA DOM node to mutate into the shape of the `vnode`\n *\t@param {VNode} vnode\t\t\tA VNode (with descendants forming a tree) representing the desired DOM structure\n *\t@returns {Element} dom\t\t\tThe created/mutated element\n *\t@private\n */\nfunction diff(dom, vnode, store, mountAll, parent, componentRoot, updateSelf) {\n // diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\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 && !('__omiattr_' in dom);\n }\n var ret;\n\n if (isArray(vnode)) {\n vnode = {\n nodeName: 'span',\n children: vnode\n };\n } else if (vnode && vnode.nodeName === Fragment) {\n vnode.nodeName = 'span';\n }\n\n ret = idiff(dom, vnode, store, mountAll, componentRoot, updateSelf);\n // append the element if its a new parent\n if (parent && ret.parentNode !== parent) parent.appendChild(ret);\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 if (!componentRoot) flushMounts();\n }\n\n return ret;\n}\n\n/** Internals of `diff()`, separated to allow bypassing diffLevel / mount flushing. */\nfunction idiff(dom, vnode, store, mountAll, componentRoot, updateSelf) {\n var out = dom,\n prevSvgMode = isSvgMode;\n\n // empty values (null, undefined, booleans) render as empty Text nodes\n if (vnode == null || typeof vnode === 'boolean') vnode = '';\n\n // If the VNode represents a Component, perform a component diff:\n var vnodeName = vnode.nodeName;\n if (options.mapping[vnodeName]) {\n vnode.nodeName = options.mapping[vnodeName];\n return buildComponentFromVNode(dom, vnode, store, mountAll, updateSelf);\n }\n if (typeof vnodeName == 'function') {\n return buildComponentFromVNode(dom, vnode, store, mountAll, updateSelf);\n }\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 (dom && dom.splitText !== undefined && dom.parentNode && (!dom._component || componentRoot)) {\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 //ie8 error\n try {\n out['__omiattr_'] = true;\n } catch (e) {}\n\n return out;\n }\n\n // Tracks entering and exiting SVG namespace when descending through the tree.\n isSvgMode = vnodeName === 'svg' ? true : vnodeName === 'foreignObject' ? false : isSvgMode;\n\n // If there's no existing element or it's the wrong type, create a new one:\n vnodeName = String(vnodeName);\n if (!dom || !isNamedNode(dom, vnodeName)) {\n out = createNode(vnodeName, isSvgMode);\n\n if (dom) {\n // move children into the replacement node\n while (dom.firstChild) {\n out.appendChild(dom.firstChild);\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 var fc = out.firstChild,\n props = out['__omiattr_'],\n vchildren = vnode.children;\n\n if (props == null) {\n props = out['__omiattr_'] = {};\n for (var a = out.attributes, i = a.length; i--;) {\n props[a[i].name] = a[i].value;\n }\n }\n\n // Optimization: fast-path for elements containing a single TextNode:\n if (!hydrating && vchildren && vchildren.length === 1 && typeof vchildren[0] === 'string' && fc != null && fc.splitText !== undefined && fc.nextSibling == null) {\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 innerDiffNode(out, vchildren, store, mountAll, hydrating || props.dangerouslySetInnerHTML != null, updateSelf);\n }\n\n // Apply attributes/props from VNode to the DOM Element:\n diffAttributes(out, vnode.attributes, props);\n\n // restore previous SVG mode: (in case we're exiting an SVG namespace)\n isSvgMode = prevSvgMode;\n\n return out;\n}\n\n/** Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n *\t@param {Element} dom\t\t\tElement whose children should be compared & mutated\n *\t@param {Array} vchildren\t\tArray of VNodes to compare to `dom.childNodes`\n *\t@param {Object} store\t\t\tImplicitly descendant context object (from most recent `getChildContext()`)\n *\t@param {Boolean} mountAll\n *\t@param {Boolean} isHydrating\tIf `true`, consumes externally created elements similar to hydration\n */\nfunction innerDiffNode(dom, vchildren, store, mountAll, isHydrating, updateSelf) {\n var 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 (var i = 0; i < len; i++) {\n var _child = originalChildren[i],\n props = _child['__omiattr_'],\n key = vlen && props ? _child._component ? _child._component.__key : props.key : null;\n if (key != null) {\n keyedLen++;\n keyed[key] = _child;\n } else if (props || (_child.splitText !== undefined ? isHydrating ? _child.nodeValue.trim() : true : isHydrating)) {\n children[childrenLen++] = _child;\n }\n }\n }\n\n if (vlen !== 0) {\n for (var i = 0; i < vlen; i++) {\n vchild = vchildren[i];\n child = null;\n\n // attempt to find a node based on key matching\n var 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 (children[j] !== undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {\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 // morph the matched/found/created DOM child to match vchild (deep)\n child = idiff(child, vchild, store, mountAll, null, 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 (var i in keyed) {\n if (keyed[i] !== undefined) recollectNodeTree(keyed[i], false);\n }\n }\n\n // remove orphaned unkeyed children:\n while (min <= childrenLen) {\n if ((child = children[childrenLen--]) !== undefined) recollectNodeTree(child, false);\n }\n}\n\n/** Recursively recycle (or just unmount) a node and its descendants.\n *\t@param {Node} node\t\t\t\t\t\tDOM node to start unmount/removal from\n *\t@param {Boolean} [unmountOnly=false]\tIf `true`, only triggers unmount lifecycle, skips removal\n */\nfunction recollectNodeTree(node, unmountOnly) {\n var component = node._component;\n if (component) {\n // if node is owned by a Component, unmount that component (ends up recursing back here)\n unmountComponent(component);\n } else {\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['__omiattr_'] != null) applyRef(node['__omiattr_'].ref, null);\n\n if (unmountOnly === false || node['__omiattr_'] == null) {\n removeNode(node);\n }\n\n removeChildren(node);\n }\n}\n\n/** Recollect/unmount all children.\n *\t- we use .lastChild here because it causes less reflow than .firstChild\n *\t- it's also cheaper than accessing the .childNodes Live NodeList\n */\nfunction removeChildren(node) {\n node = node.lastChild;\n while (node) {\n var 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 *\t@param {Element} dom\t\tElement with attributes to diff `attrs` against\n *\t@param {Object} attrs\t\tThe desired end-state key-value attribute pairs\n *\t@param {Object} old\t\t\tCurrent/previous attributes (from previous VNode or element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old) {\n var name;\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(dom, name, old[name], old[name] = undefined, isSvgMode);\n }\n }\n\n // add new & update changed attributes\n for (name in attrs) {\n if (name !== 'children' && name !== 'innerHTML' && (!(name in old) || attrs[name] !== (name === 'value' || name === 'checked' ? dom[name] : old[name]))) {\n setAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n }\n }\n}\n\n/** Retains a pool of Components for re-use, keyed on component name.\n *\tNote: since component names are not unique or even necessarily available, these are primarily a form of sharding.\n *\t@private\n */\nvar components = {};\n\n/** Reclaim a component for later re-use by the recycler. */\nfunction collectComponent(component) {\n var name = component.constructor.name;(components[name] || (components[name] = [])).push(component);\n}\n\n/** Create a component. Normalizes differences between PFC's and classful Components. */\nfunction createComponent(Ctor, props, store, vnode) {\n var list = components[Ctor.name],\n inst;\n\n if (Ctor.prototype && Ctor.prototype.render) {\n inst = new Ctor(props, store);\n Component.call(inst, props, store);\n } else {\n inst = new Component(props, store);\n inst.constructor = Ctor;\n inst.render = doRender;\n }\n vnode && (inst.scopedCssAttr = vnode.css);\n\n if (inst.store) {\n if (inst.use) {\n var use = typeof inst.use === 'function' ? inst.use() : inst.use;\n\n if (options.isMultiStore) {\n var _updatePath = {};\n var using = {};\n for (var storeName in use) {\n _updatePath[storeName] = {};\n using[storeName] = {};\n getPath(use[storeName], _updatePath, storeName);\n getUse(inst.store[storeName].data, use[storeName], using, storeName);\n inst.store[storeName].instances.push(inst);\n }\n inst.using = using;\n inst._updatePath = _updatePath;\n } else {\n inst._updatePath = getPath(use);\n inst.using = getUse(inst.store.data, use);\n inst.store.instances.push(inst);\n }\n }\n\n if (inst.useSelf) {\n var _use = typeof inst.useSelf === 'function' ? inst.useSelf() : inst.useSelf;\n\n if (options.isMultiStore) {\n var _updatePath2 = {};\n var _using = {};\n for (var _storeName in _use) {\n getPath(_use[_storeName], _updatePath2, _storeName);\n getUse(inst.store[_storeName].data, _use[_storeName], _using, _storeName);\n inst.store[_storeName].updateSelfInstances.push(inst);\n }\n inst.usingSelf = _using;\n inst._updateSelfPath = _updatePath2;\n } else {\n inst._updateSelfPath = getPath(_use);\n inst.usingSelf = getUse(inst.store.data, _use);\n inst.store.updateSelfInstances.push(inst);\n }\n }\n\n if (inst.compute) {\n for (var key in inst.compute) {\n inst.computed[key] = inst.compute[key].call(options.isMultiStore ? inst.store : inst.store.data);\n }\n }\n }\n\n if (list) {\n for (var i = list.length; i--;) {\n if (list[i].constructor === Ctor) {\n inst.nextBase = list[i].nextBase;\n list.splice(i, 1);\n break;\n }\n }\n }\n return inst;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, store) {\n return this.constructor(props, store);\n}\n\n/** Set a component's `props` (generally derived from JSX attributes).\n *\t@param {Object} props\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.renderSync=false]\tIf `true` and {@link options.syncComponentUpdates} is `true`, triggers synchronous rendering.\n *\t@param {boolean} [opts.render=true]\t\t\tIf `false`, no render will be triggered.\n */\nfunction setComponentProps(component, props, opts, store, mountAll) {\n if (component._disable) return;\n component._disable = true;\n\n if (component.__ref = props.ref) delete props.ref;\n if (component.__key = props.key) delete props.key;\n\n if (!component.base || mountAll) {\n if (component.beforeInstall) component.beforeInstall();\n if (component.install) component.install();\n }\n\n if (!component.prevProps) component.prevProps = component.props;\n component.props = props;\n\n component._disable = false;\n\n if (opts !== 0) {\n if (opts === 1 || options.syncComponentUpdates !== false || !component.base) {\n renderComponent(component, 1, mountAll);\n } else {\n enqueueRender(component);\n }\n }\n\n applyRef(component.__ref, component);\n}\n\n/** Render a Component, triggering necessary lifecycle events and taking High-Order Components into account.\n *\t@param {Component} component\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.build=false]\t\tIf `true`, component will build and store a DOM node if not already associated with one.\n *\t@private\n */\nfunction renderComponent(component, opts, mountAll, isChild, updateSelf) {\n if (component._disable) return;\n\n var props = component.props,\n store = component.store,\n previousProps = component.prevProps || props,\n isUpdate = component.base,\n nextBase = component.nextBase,\n initialBase = isUpdate || nextBase,\n initialChildComponent = component._component,\n skip = false,\n rendered,\n inst,\n cbase;\n\n // if updating\n if (isUpdate) {\n component.props = previousProps;\n\n var receiveResult = true;\n if (component.receiveProps) {\n receiveResult = component.receiveProps(props, previousProps);\n }\n if (receiveResult !== false) {\n skip = false;\n if (component.beforeUpdate) {\n component.beforeUpdate(props, store);\n }\n } else {\n skip = true;\n }\n component.props = props;\n }\n\n component.prevProps = component.nextBase = null;\n\n if (!skip) {\n component.beforeRender && component.beforeRender();\n rendered = component.render(props, store);\n\n //don't rerender\n if (component.constructor.css || component.css) {\n addScopedAttrStatic(rendered, '_s' + getCtorName(component.constructor));\n }\n\n scopeHost(rendered, component.scopedCssAttr);\n\n var childComponent = rendered && rendered.nodeName,\n toUnmount,\n base,\n ctor = options.mapping[childComponent];\n\n if (ctor) {\n // set up high order component link\n\n var childProps = getNodeProps(rendered);\n inst = initialChildComponent;\n\n if (inst && inst.constructor === ctor && childProps.key == inst.__key) {\n setComponentProps(inst, childProps, 1, store, false);\n } else {\n toUnmount = inst;\n\n component._component = inst = createComponent(ctor, childProps, store);\n inst.nextBase = inst.nextBase || nextBase;\n inst._parentComponent = component;\n setComponentProps(inst, childProps, 0, store, false);\n renderComponent(inst, 1, mountAll, true);\n }\n\n base = inst.base;\n } else {\n cbase = initialBase;\n\n // destroy high order component link\n toUnmount = initialChildComponent;\n if (toUnmount) {\n cbase = component._component = null;\n }\n\n if (initialBase || opts === 1) {\n if (cbase) cbase._component = null;\n base = diff(cbase, rendered, store, mountAll || !isUpdate, initialBase && initialBase.parentNode, true, updateSelf);\n }\n }\n\n if (initialBase && base !== initialBase && inst !== initialChildComponent) {\n var baseParent = initialBase.parentNode;\n if (baseParent && base !== baseParent) {\n baseParent.replaceChild(base, initialBase);\n\n if (!toUnmount) {\n initialBase._component = null;\n recollectNodeTree(initialBase, false);\n }\n }\n }\n\n if (toUnmount) {\n unmountComponent(toUnmount);\n }\n\n component.base = base;\n if (base && !isChild) {\n var componentRef = component,\n t = component;\n while (t = t._parentComponent) {\n(componentRef = t).base = base;\n }\n base._component = componentRef;\n base._componentConstructor = componentRef.constructor;\n }\n }\n\n if (!isUpdate || mountAll) {\n mounts.unshift(component);\n } else if (!skip) {\n // Ensure that pending componentDidMount() hooks of child components\n // are called before the componentDidUpdate() hook in the parent.\n // Note: disabled as it causes duplicate hooks, see https://github.com/developit/preact/issues/750\n // flushMounts();\n\n if (component.afterUpdate) {\n //deprecated\n component.afterUpdate(previousProps, store);\n }\n if (component.updated) {\n component.updated(previousProps, store);\n }\n if (options.afterUpdate) options.afterUpdate(component);\n }\n\n if (component._renderCallbacks != null) {\n while (component._renderCallbacks.length) {\n component._renderCallbacks.pop().call(component);\n }\n }\n\n if (!diffLevel && !isChild) flushMounts();\n}\n\n/** Apply the Component referenced by a VNode to the DOM.\n *\t@param {Element} dom\tThe DOM node to mutate\n *\t@param {VNode} vnode\tA Component-referencing VNode\n *\t@returns {Element} dom\tThe created/mutated element\n *\t@private\n */\nfunction buildComponentFromVNode(dom, vnode, store, mountAll, updateSelf) {\n var c = dom && dom._component,\n originalComponent = c,\n oldDom = dom,\n isDirectOwner = c && dom._componentConstructor === vnode.nodeName,\n isOwner = isDirectOwner,\n props = getNodeProps(vnode);\n while (c && !isOwner && (c = c._parentComponent)) {\n isOwner = c.constructor === vnode.nodeName;\n }\n\n if (c && isOwner && (!mountAll || c._component)) {\n if (!updateSelf) {\n setComponentProps(c, props, 3, store, mountAll);\n }\n dom = c.base;\n } else {\n if (originalComponent && !isDirectOwner) {\n unmountComponent(originalComponent);\n dom = oldDom = null;\n }\n\n c = createComponent(vnode.nodeName, props, store, vnode);\n if (dom && !c.nextBase) {\n c.nextBase = dom;\n // passing dom/oldDom as nextBase will recycle it if unused, so bypass recycling on L229:\n oldDom = null;\n }\n setComponentProps(c, props, 1, store, mountAll);\n dom = c.base;\n\n if (oldDom && dom !== oldDom) {\n oldDom._component = null;\n recollectNodeTree(oldDom, false);\n }\n }\n\n return dom;\n}\n\n/** Remove a component from the DOM and recycle it.\n *\t@param {Component} component\tThe Component instance to unmount\n *\t@private\n */\nfunction unmountComponent(component) {\n if (options.beforeUnmount) options.beforeUnmount(component);\n\n var base = component.base;\n\n component._disable = true;\n\n if (component.uninstall) component.uninstall();\n\n if (component.store) {\n if (options.isMultiStore) {\n for (var key in component.store) {\n var current = component.store[key];\n current.instances && removeItem(component, current.instances);\n current.updateSelfInstances && removeItem(component, current.updateSelfInstances);\n }\n } else {\n component.store.instances && removeItem(component, component.store.instances);\n component.store.updateSelfInstances && removeItem(component, component.store.updateSelfInstances);\n }\n }\n\n component.base = null;\n\n // recursively tear down & recollect high-order component children:\n var inner = component._component;\n if (inner) {\n unmountComponent(inner);\n } else if (base) {\n if (base['__omiattr_'] != null) applyRef(base['__omiattr_'].ref, null);\n\n component.nextBase = base;\n\n removeNode(base);\n collectComponent(component);\n\n removeChildren(base);\n }\n\n applyRef(component.__ref, null);\n}\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar id = 0;\n\nvar Component = function () {\n function Component(props, store) {\n _classCallCheck(this, Component);\n\n this.props = assign({}, this.constructor.defaultProps, props);\n this.elementId = id++;\n\n this._preCss = null;\n\n this.store = store;\n this.computed = {};\n }\n\n Component.prototype.update = function update(ignoreAttrs, updateSelf, callback) {\n if (this._willUpdate) return;\n this._willUpdate = true;\n if (callback) (this._renderCallbacks = this._renderCallbacks || []).push(callback);\n renderComponent(this, 2);\n if (options.componentChange) options.componentChange(this, this.base);\n this._willUpdate = false;\n };\n\n Component.prototype.updateSelf = function updateSelf() {\n if (this._willUpdateSelf) return;\n this._willUpdateSelf = true;\n renderComponent(this, 2, null, null, true);\n this._willUpdateSelf = false;\n };\n\n Component.prototype.fire = function fire(type, data) {\n var _this = this;\n\n Object.keys(this.props).every(function (key) {\n if ('on' + type.toLowerCase() === key.toLowerCase()) {\n _this.props[key]({ detail: data });\n return false;\n }\n return true;\n });\n };\n\n Component.prototype.render = function render() {};\n\n return Component;\n}();\n\nComponent.is = 'WeElement';\n\n/*\n * obaa 2.1.0\n * By dntzhang\n * Github: https://github.com/Tencent/omi/tree/master/packages/obaa\n * MIT Licensed.\n */\n\n// $_r_: root\n// $_c_: prop change callback\n// $_p_: path\n\nfunction obaa(target, arr, callback) {\n\n\tvar eventPropArr = [];\n\tif (isArray$1(target)) {\n\t\tif (target.length === 0) {\n\t\t\ttarget.$_o_ = {\n\t\t\t\t$_r_: target,\n\t\t\t\t$_p_: '#'\n\t\t\t};\n\t\t}\n\t\tmock(target, target);\n\t}\n\tif (target && typeof target === 'object' && Object.keys(target).length === 0) {\n\t\ttrack(target);\n\t\ttarget.$_o_.$_r_ = target;\n\t}\n\tfor (var prop in target) {\n\t\tif (target.hasOwnProperty(prop)) {\n\t\t\tif (callback) {\n\t\t\t\tif (isArray$1(arr) && isInArray(arr, prop)) {\n\t\t\t\t\teventPropArr.push(prop);\n\t\t\t\t\twatch(target, prop, null, target);\n\t\t\t\t} else if (isString(arr) && prop == arr) {\n\t\t\t\t\teventPropArr.push(prop);\n\t\t\t\t\twatch(target, prop, null, target);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\teventPropArr.push(prop);\n\t\t\t\twatch(target, prop, null, target);\n\t\t\t}\n\t\t}\n\t}\n\tif (!target.$_c_) {\n\t\ttarget.$_c_ = [];\n\t}\n\tvar propChanged = callback ? callback : arr;\n\ttarget.$_c_.push({\n\t\tall: !callback,\n\t\tpropChanged: propChanged,\n\t\teventPropArr: eventPropArr\n\t});\n}\n\nvar triggerStr = ['concat', 'copyWithin', 'fill', 'pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift', 'size'].join(',');\n\nvar methods = ['concat', 'copyWithin', 'entries', 'every', 'fill', 'filter', 'find', 'findIndex', 'forEach', 'includes', 'indexOf', 'join', 'keys', 'lastIndexOf', 'map', 'pop', 'push', 'reduce', 'reduceRight', 'reverse', 'shift', 'slice', 'some', 'sort', 'splice', 'toLocaleString', 'toString', 'unshift', 'values', 'size'];\n\nfunction mock(target, root) {\n\tmethods.forEach(function (item) {\n\t\ttarget[item] = function () {\n\t\t\tvar old = Array.prototype.slice.call(this, 0);\n\t\t\tvar result = Array.prototype[item].apply(this, Array.prototype.slice.call(arguments));\n\t\t\tif (new RegExp('\\\\b' + item + '\\\\b').test(triggerStr)) {\n\t\t\t\tfor (var cprop in this) {\n\t\t\t\t\tif (this.hasOwnProperty(cprop) && !isFunction(this[cprop])) {\n\t\t\t\t\t\twatch(this, cprop, this.$_o_.$_p_, root);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t//todo\n\t\t\t\tonPropertyChanged('Array-' + item, this, old, this, this.$_o_.$_p_, root);\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\t\ttarget['pure' + item.substring(0, 1).toUpperCase() + item.substring(1)] = function () {\n\t\t\treturn Array.prototype[item].apply(this, Array.prototype.slice.call(arguments));\n\t\t};\n\t});\n}\n\nfunction watch(target, prop, path, root) {\n\tif (prop === '$_o_') return;\n\tif (isFunction(target[prop])) return;\n\tif (!target.$_o_) target.$_o_ = {\n\t\t$_r_: root\n\t};\n\tif (path !== undefined && path !== null) {\n\t\ttarget.$_o_.$_p_ = path;\n\t} else {\n\t\ttarget.$_o_.$_p_ = '#';\n\t}\n\n\tvar currentValue = target.$_o_[prop] = target[prop];\n\tObject.defineProperty(target, prop, {\n\t\tget: function get() {\n\t\t\treturn this.$_o_[prop];\n\t\t},\n\t\tset: function set(value) {\n\t\t\tvar old = this.$_o_[prop];\n\t\t\tthis.$_o_[prop] = value;\n\t\t\tonPropertyChanged(prop, value, old, this, target.$_o_.$_p_, root);\n\t\t},\n\t\tconfigurable: true,\n\t\tenumerable: true\n\t});\n\tif (typeof currentValue == 'object') {\n\t\tif (isArray$1(currentValue)) {\n\t\t\tmock(currentValue, root);\n\t\t\tif (currentValue.length === 0) {\n\t\t\t\ttrack(currentValue, prop, path);\n\t\t\t}\n\t\t}\n\t\tif (currentValue && Object.keys(currentValue).length === 0) {\n\t\t\ttrack(currentValue, prop, path);\n\t\t}\n\t\tfor (var cprop in currentValue) {\n\t\t\tif (currentValue.hasOwnProperty(cprop)) {\n\t\t\t\twatch(currentValue, cprop, target.$_o_.$_p_ + '-' + prop, root);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction track(obj, prop, path) {\n\tif (obj.$_o_) {\n\t\treturn;\n\t}\n\tobj.$_o_ = {};\n\tif (path !== undefined && path !== null) {\n\t\tobj.$_o_.$_p_ = path + '-' + prop;\n\t} else {\n\t\tif (prop !== undefined && prop !== null) {\n\t\t\tobj.$_o_.$_p_ = '#' + '-' + prop;\n\t\t} else {\n\t\t\tobj.$_o_.$_p_ = '#';\n\t\t}\n\t}\n}\n\nfunction onPropertyChanged(prop, value, oldValue, target, path, root) {\n\tif (value !== oldValue && !(nan(value) && nan(oldValue)) && root.$_c_) {\n\t\tvar rootName = getRootName(prop, path);\n\t\tfor (var i = 0, len = root.$_c_.length; i < len; i++) {\n\t\t\tvar handler = root.$_c_[i];\n\t\t\tif (handler.all || isInArray(handler.eventPropArr, rootName) || rootName.indexOf('Array-') === 0) {\n\t\t\t\thandler.propChanged.call(target, prop, value, oldValue, path);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (prop.indexOf('Array-') !== 0 && typeof value === 'object') {\n\t\twatch(target, prop, target.$_o_.$_p_, root);\n\t}\n}\n\nfunction isFunction(obj) {\n\treturn Object.prototype.toString.call(obj) == '[object Function]';\n}\n\nfunction nan(value) {\n\treturn typeof value === \"number\" && isNaN(value);\n}\n\nfunction isArray$1(obj) {\n\treturn Object.prototype.toString.call(obj) === '[object Array]';\n}\n\nfunction isString(obj) {\n\treturn typeof obj === 'string';\n}\n\nfunction isInArray(arr, item) {\n\tfor (var i = arr.length; --i > -1;) {\n\t\tif (item === arr[i]) return true;\n\t}\n\treturn false;\n}\n\nfunction getRootName(prop, path) {\n\tif (path === '#') {\n\t\treturn prop;\n\t}\n\treturn path.split('-')[1];\n}\n\nobaa.add = function (obj, prop) {\n\twatch(obj, prop, obj.$_o_.$_p_, obj.$_o_.$_r_);\n};\n\nobaa.set = function (obj, prop, value) {\n\tif (obj[prop] === undefined) {\n\t\twatch(obj, prop, obj.$_o_.$_p_, obj.$_o_.$_r_);\n\t}\n\tobj[prop] = value;\n};\n\nArray.prototype.size = function (length) {\n\tthis.length = length;\n};\n\n/** Render JSX into a `parent` Element.\n *\t@param {VNode} vnode\t\tA (JSX) VNode to render\n *\t@param {Element} parent\t\tDOM element to render into\n *\t@param {object} [store]\n *\t@public\n */\nfunction render(vnode, parent, store, empty, merge) {\n parent = typeof parent === 'string' ? document.querySelector(parent) : parent;\n\n if (store) {\n if (store.data) {\n obsStore(store);\n } else {\n options.isMultiStore = true;\n for (var key in store) {\n if (store[key].data) {\n obsStore(store[key], key);\n }\n }\n }\n }\n\n if (empty) {\n while (parent.firstChild) {\n parent.removeChild(parent.firstChild);\n }\n }\n\n if (merge) {\n merge = typeof merge === 'string' ? document.querySelector(merge) : merge;\n }\n\n return diff(merge, vnode, store, false, parent, false);\n}\n\nfunction obsStore(store, storeName) {\n\n store.instances = [];\n store.updateSelfInstances = [];\n extendStoreUpate(store, storeName);\n\n obaa(store.data, function (prop, val, old, path) {\n var patchs = {};\n var key = fixPath(path + '-' + prop);\n patchs[key] = true;\n store.update(patchs);\n });\n}\n\nfunction merge(vnode, merge, store) {\n obsStore(store);\n\n merge = typeof merge === 'string' ? document.querySelector(merge) : merge;\n\n return diff(merge, vnode, store);\n}\n\nfunction extendStoreUpate(store, key) {\n store.update = function (patch) {\n if (Object.keys(patch).length > 0) {\n this.instances.forEach(function (instance) {\n compute(instance, key);\n if (key) {\n if (instance._updatePath && instance._updatePath[key] && needUpdate(patch, instance._updatePath[key])) {\n if (instance.use) {\n getUse(store.data, (typeof instance.use === 'function' ? instance.use() : instance.use)[key], instance.using, key);\n }\n\n instance.update();\n }\n } else {\n if (instance._updatePath && needUpdate(patch, instance._updatePath)) {\n if (instance.use) {\n instance.using = getUse(store.data, typeof instance.use === 'function' ? instance.use() : instance.use);\n }\n instance.update();\n }\n }\n });\n\n this.updateSelfInstances.forEach(function (instance) {\n compute(instance, key);\n if (key) {\n if (instance._updateSelfPath && instance._updateSelfPath[key] && needUpdate(patch, instance._updateSelfPath[key])) {\n if (instance.useSelf) {\n getUse(store.data, (typeof instance.useSelf === 'function' ? instance.useSelf() : instance.useSelf)[key], instance.usingSelf, key);\n }\n\n instance.updateSelf();\n }\n } else {\n if (instance._updateSelfPath && needUpdate(patch, instance._updateSelfPath)) {\n instance.usingSelf = getUse(store.data, typeof instance.useSelf === 'function' ? instance.useSelf() : instance.useSelf);\n instance.updateSelf();\n }\n }\n });\n\n this.onChange && this.onChange(patch);\n }\n };\n}\n\nfunction compute(instance, isMultiStore) {\n if (instance.compute) {\n for (var ck in instance.compute) {\n instance.computed[ck] = instance.compute[ck].call(isMultiStore ? instance.store : instance.store.data);\n }\n }\n}\n\nfunction needUpdate(diffResult, updatePath) {\n for (var keyA in diffResult) {\n if (updatePath[keyA]) {\n return true;\n }\n for (var keyB in updatePath) {\n if (includePath(keyA, keyB)) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction includePath(pathA, pathB) {\n if (pathA.indexOf(pathB) === 0) {\n var next = pathA.substr(pathB.length, 1);\n if (next === '[' || next === '.') {\n return true;\n }\n }\n return false;\n}\n\nfunction fixPath(path) {\n var mpPath = '';\n var arr = path.replace('#-', '').split('-');\n arr.forEach(function (item, index) {\n if (index) {\n if (isNaN(Number(item))) {\n mpPath += '.' + item;\n } else {\n mpPath += '[' + item + ']';\n }\n } else {\n mpPath += item;\n }\n });\n return mpPath;\n}\n\nfunction _classCallCheck$1(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar storeHelpers = ['use', 'useSelf'];\n\nfunction define(name, ctor, config) {\n\tif (ctor.is === 'WeElement') {\n\t\toptions.mapping[name] = ctor;\n\t} else {\n\n\t\tif (typeof config === 'string') {\n\t\t\tconfig = { css: config };\n\t\t} else {\n\t\t\tconfig = config || {};\n\t\t}\n\n\t\tvar Comp = function (_Component) {\n\t\t\t_inherits(Comp, _Component);\n\n\t\t\tfunction Comp() {\n\t\t\t\tvar _temp, _this, _ret;\n\n\t\t\t\t_classCallCheck$1(this, Comp);\n\n\t\t\t\tfor (var _len = arguments.length, args = Array(_len), key = 0; key < _len; key++) {\n\t\t\t\t\targs[key] = arguments[key];\n\t\t\t\t}\n\n\t\t\t\treturn _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.compute = config.compute, _temp), _possibleConstructorReturn(_this, _ret);\n\t\t\t}\n\n\t\t\tComp.prototype.render = function render() {\n\t\t\t\treturn ctor.call(this, this);\n\t\t\t};\n\n\t\t\treturn Comp;\n\t\t}(Component);\n\n\t\tComp.css = config.css;\n\t\tComp.propTypes = config.propTypes;\n\t\tComp.defaultProps = config.defaultProps;\n\n\t\tvar _loop = function _loop(key) {\n\t\t\tif (typeof config[key] === 'function') {\n\t\t\t\tComp.prototype[key] = function () {\n\t\t\t\t\treturn config[key].apply(this, arguments);\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\n\t\tfor (var key in config) {\n\t\t\t_loop(key);\n\t\t}\n\n\t\tstoreHelpers.forEach(function (func) {\n\t\t\tif (config[func] && config[func] !== 'function') {\n\t\t\t\tComp.prototype[func] = function () {\n\t\t\t\t\treturn config[func];\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\n\t\toptions.mapping[name] = Comp;\n\t}\n}\n\nfunction rpx(str) {\n return str.replace(/([1-9]\\d*|0)(\\.\\d*)*rpx/g, function (a, b) {\n return window.innerWidth * Number(b) / 750 + 'px';\n });\n}\n\nfunction tag(name) {\n return function (target) {\n define(name, target);\n };\n}\n\n/**\n * classNames based on https://github.com/JedWatson/classnames\n * by Jed Watson\n * Licensed under the MIT License\n * https://github.com/JedWatson/classnames/blob/master/LICENSE\n * modified by dntzhang\n */\n\nvar hasOwn = {}.hasOwnProperty;\n\nfunction 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\nfunction extractClass() {\n var _Array$prototype$slic = Array.prototype.slice.call(arguments, 0),\n props = _Array$prototype$slic[0],\n args = _Array$prototype$slic.slice(1);\n\n if (props) {\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 }\n if (args.length > 0) {\n return { 'class': classNames.apply(null, args) };\n }\n}\n\nfunction getHost(component) {\n var base = component.base;\n if (base) {\n while (base.parentNode) {\n if (base.parentNode._component) {\n return base.parentNode._component;\n } else {\n base = base.parentNode;\n }\n }\n }\n}\n\n/**\n * preact-render-to-string based on preact-render-to-string\n * by Jason Miller\n * Licensed under the MIT License\n * https://github.com/developit/preact-render-to-string\n *\n * modified by dntzhang\n */\n\nvar encodeEntities = function encodeEntities(s) {\n return String(s).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"');\n};\n\nvar indent = function indent(s, char) {\n return String(s).replace(/(\\n+)/g, '$1' + (char || '\\t'));\n};\n\nvar mapping$1 = options.mapping;\n\nvar VOID_ELEMENTS = /^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/;\n\nvar isLargeString = function isLargeString(s, length, ignoreLines) {\n return String(s).length > (length || 40) || !ignoreLines && String(s).indexOf('\\n') !== -1 || String(s).indexOf('<') !== -1;\n};\n\nvar JS_TO_CSS = {};\n\n// Convert an Object style to a CSSText string\nfunction styleObjToCss(s) {\n var str = '';\n for (var prop in s) {\n var val = s[prop];\n if (val != null) {\n if (str) str += ' ';\n // str += jsToCss(prop);\n str += JS_TO_CSS[prop] || (JS_TO_CSS[prop] = prop.replace(/([A-Z])/g, '-$1').toLowerCase());\n str += ': ';\n str += val;\n if (typeof val === 'number' && IS_NON_DIMENSIONAL.test(prop) === false) {\n str += 'px';\n }\n str += ';';\n }\n }\n return str || undefined;\n}\n\nfunction renderToString(vnode, opts, store, isSvgMode) {\n store = store || {};\n opts = Object.assign({\n scopedCSS: true\n }, opts);\n var css = {};\n var html = _renderToString(vnode, opts, store, isSvgMode, css);\n return {\n css: Object.values(css),\n html: html\n };\n}\n\n/** The default export is an alias of `render()`. */\nfunction _renderToString(vnode, opts, store, isSvgMode, css) {\n if (vnode == null || typeof vnode === 'boolean') {\n return '';\n }\n\n var nodeName = vnode.nodeName,\n attributes = vnode.attributes,\n isComponent = false;\n\n var pretty = true && opts.pretty,\n indentChar = pretty && typeof pretty === 'string' ? pretty : '\\t';\n\n // #text nodes\n if (typeof vnode !== 'object' && !nodeName) {\n return encodeEntities(vnode);\n }\n\n // components\n var ctor = mapping$1[nodeName];\n if (ctor) {\n isComponent = true;\n\n var props = getNodeProps$1(vnode),\n rendered;\n // class-based components\n var c = new ctor(props, store);\n // turn off stateful re-rendering:\n c._disable = c.__x = true;\n c.props = props;\n c.store = store;\n if (c.install) c.install();\n if (c.beforeRender) c.beforeRender();\n rendered = c.render(c.props, c.store);\n\n if (opts.scopedCSS) {\n\n if (c.constructor.css || c.css) {\n\n var cssStr = c.constructor.css ? c.constructor.css : typeof c.css === 'function' ? c.css() : c.css;\n var cssAttr = '_s' + getCtorName(c.constructor);\n css[cssAttr] = {\n id: cssAttr,\n css: scoper(cssStr, cssAttr)\n };\n addScopedAttrStatic(rendered, cssAttr);\n }\n\n c.scopedCSSAttr = vnode.css;\n scopeHost(rendered, c.scopedCSSAttr);\n }\n\n return _renderToString(rendered, opts, store, false, css);\n }\n\n // render JSX to HTML\n var s = '',\n html;\n\n if (attributes) {\n var attrs = Object.keys(attributes);\n\n // allow sorting lexicographically for more determinism (useful for tests, such as via preact-jsx-chai)\n if (opts && opts.sortAttributes === true) attrs.sort();\n\n for (var i = 0; i < attrs.length; i++) {\n var name = attrs[i],\n v = attributes[name];\n if (name === 'children') continue;\n\n if (name.match(/[\\s\\n\\\\/='\"\\0<>]/)) continue;\n\n if (!(opts && opts.allAttributes) && (name === 'key' || name === 'ref')) continue;\n\n if (name === 'className') {\n if (attributes['class']) continue;\n name = 'class';\n } else if (isSvgMode && name.match(/^xlink:?./)) {\n name = name.toLowerCase().replace(/^xlink:?/, 'xlink:');\n }\n\n if (name === 'style' && v && typeof v === 'object') {\n v = styleObjToCss(v);\n }\n\n var hooked = opts.attributeHook && opts.attributeHook(name, v, store, opts, isComponent);\n if (hooked || hooked === '') {\n s += hooked;\n continue;\n }\n\n if (name === 'dangerouslySetInnerHTML') {\n html = v && v.__html;\n } else if ((v || v === 0 || v === '') && typeof v !== 'function') {\n if (v === true || v === '') {\n v = name;\n // in non-xml mode, allow boolean attributes\n if (!opts || !opts.xml) {\n s += ' ' + name;\n continue;\n }\n }\n s += ' ' + name + '=\"' + encodeEntities(v) + '\"';\n }\n }\n }\n\n // account for >1 multiline attribute\n if (pretty) {\n var sub = s.replace(/^\\n\\s*/, ' ');\n if (sub !== s && !~sub.indexOf('\\n')) s = sub;else if (pretty && ~s.indexOf('\\n')) s += '\\n';\n }\n\n s = '<' + nodeName + s + '>';\n if (String(nodeName).match(/[\\s\\n\\\\/='\"\\0<>]/)) throw s;\n\n var isVoid = String(nodeName).match(VOID_ELEMENTS);\n if (isVoid) s = s.replace(/>$/, ' />');\n\n var pieces = [];\n if (html) {\n // if multiline, indent.\n if (pretty && isLargeString(html)) {\n html = '\\n' + indentChar + indent(html, indentChar);\n }\n s += html;\n } else if (vnode.children) {\n var hasLarge = pretty && ~s.indexOf('\\n');\n for (var i = 0; i < vnode.children.length; i++) {\n var child = vnode.children[i];\n if (child != null && child !== false) {\n var childSvgMode = nodeName === 'svg' ? true : nodeName === 'foreignObject' ? false : isSvgMode,\n ret = _renderToString(child, opts, store, childSvgMode, css);\n if (pretty && !hasLarge && isLargeString(ret)) hasLarge = true;\n if (ret) pieces.push(ret);\n }\n }\n if (pretty && hasLarge) {\n for (var i = pieces.length; i--;) {\n pieces[i] = '\\n' + indentChar + indent(pieces[i], indentChar);\n }\n }\n }\n\n if (pieces.length) {\n s += pieces.join('');\n } else if (opts && opts.xml) {\n return s.substring(0, s.length - 1) + ' />';\n }\n\n if (!isVoid) {\n if (pretty && ~s.indexOf('\\n')) s += '\\n';\n s += '';\n }\n\n return s;\n}\n\nfunction assign$1(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }return obj;\n}\n\nfunction getNodeProps$1(vnode) {\n var props = assign$1({}, vnode.attributes);\n props.children = vnode.children;\n\n var defaultProps = vnode.nodeName.defaultProps;\n if (defaultProps !== undefined) {\n for (var i in defaultProps) {\n if (props[i] === undefined) {\n props[i] = defaultProps[i];\n }\n }\n }\n\n return props;\n}\n\nh.f = Fragment;\n\nvar WeElement = Component;\nvar defineElement = define;\nfunction createRef() {\n\treturn {};\n}\n\noptions.root.Omi = {\n\th: h,\n\tcreateElement: h,\n\tcloneElement: cloneElement,\n\tcreateRef: createRef,\n\tComponent: Component,\n\trender: render,\n\trerender: rerender,\n\toptions: options,\n\tWeElement: WeElement,\n\tdefine: define,\n\trpx: rpx,\n\tdefineElement: defineElement,\n\tclassNames: classNames,\n\textractClass: extractClass,\n\tgetHost: getHost,\n\trenderToString: renderToString,\n\ttag: tag,\n\tmerge: merge,\n\tobaa: obaa\n};\noptions.root.omi = options.root.Omi;\noptions.root.Omi.version = 'omio-2.8.3';\n\nvar omi = {\n\th: h,\n\tcreateElement: h,\n\tcloneElement: cloneElement,\n\tcreateRef: createRef,\n\tComponent: Component,\n\trender: render,\n\trerender: rerender,\n\toptions: options,\n\tWeElement: WeElement,\n\tdefine: define,\n\trpx: rpx,\n\tdefineElement: defineElement,\n\tclassNames: classNames,\n\textractClass: extractClass,\n\tgetHost: getHost,\n\trenderToString: renderToString,\n\ttag: tag,\n\tmerge: merge,\n\tobaa: obaa\n};\n\nexport default omi;\nexport { h, h as createElement, cloneElement, createRef, Component, render, rerender, options, WeElement, define, rpx, defineElement, classNames, extractClass, getHost, renderToString, tag, merge, obaa };\n//# sourceMappingURL=omi.esm.js.map\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/omio/dist/omi.esm.js","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/css-loader/lib/css-base.js","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\n} catch(e) {\n\t// This works if the window reference is available\n\tif(typeof window === \"object\")\n\t\tg = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n\n// WEBPACK FOOTER //\n// (webpack)/buildin/global.js","'use strict';\n\nvar asap = require('asap/raw');\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n try {\n return obj.then;\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nfunction tryCallOne(fn, a) {\n try {\n return fn(a);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\nfunction tryCallTwo(fn, a, b) {\n try {\n fn(a, b);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('Promise constructor\\'s argument is not a function');\n }\n this._75 = 0;\n this._83 = 0;\n this._18 = null;\n this._38 = null;\n if (fn === noop) return;\n doResolve(fn, this);\n}\nPromise._47 = null;\nPromise._71 = null;\nPromise._44 = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n if (this.constructor !== Promise) {\n return safeThen(this, onFulfilled, onRejected);\n }\n var res = new Promise(noop);\n handle(this, new Handler(onFulfilled, onRejected, res));\n return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n return new self.constructor(function (resolve, reject) {\n var res = new Promise(noop);\n res.then(resolve, reject);\n handle(self, new Handler(onFulfilled, onRejected, res));\n });\n}\nfunction handle(self, deferred) {\n while (self._83 === 3) {\n self = self._18;\n }\n if (Promise._47) {\n Promise._47(self);\n }\n if (self._83 === 0) {\n if (self._75 === 0) {\n self._75 = 1;\n self._38 = deferred;\n return;\n }\n if (self._75 === 1) {\n self._75 = 2;\n self._38 = [self._38, deferred];\n return;\n }\n self._38.push(deferred);\n return;\n }\n handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n asap(function() {\n var cb = self._83 === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n if (self._83 === 1) {\n resolve(deferred.promise, self._18);\n } else {\n reject(deferred.promise, self._18);\n }\n return;\n }\n var ret = tryCallOne(cb, self._18);\n if (ret === IS_ERROR) {\n reject(deferred.promise, LAST_ERROR);\n } else {\n resolve(deferred.promise, ret);\n }\n });\n}\nfunction resolve(self, newValue) {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self) {\n return reject(\n self,\n new TypeError('A promise cannot be resolved with itself.')\n );\n }\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = getThen(newValue);\n if (then === IS_ERROR) {\n return reject(self, LAST_ERROR);\n }\n if (\n then === self.then &&\n newValue instanceof Promise\n ) {\n self._83 = 3;\n self._18 = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(then.bind(newValue), self);\n return;\n }\n }\n self._83 = 1;\n self._18 = newValue;\n finale(self);\n}\n\nfunction reject(self, newValue) {\n self._83 = 2;\n self._18 = newValue;\n if (Promise._71) {\n Promise._71(self, newValue);\n }\n finale(self);\n}\nfunction finale(self) {\n if (self._75 === 1) {\n handle(self, self._38);\n self._38 = null;\n }\n if (self._75 === 2) {\n for (var i = 0; i < self._38.length; i++) {\n handle(self, self._38[i]);\n }\n self._38 = null;\n }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n var done = false;\n var res = tryCallTwo(fn, function (value) {\n if (done) return;\n done = true;\n resolve(promise, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(promise, reason);\n });\n if (!done && res === IS_ERROR) {\n done = true;\n reject(promise, LAST_ERROR);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/promise/lib/core.js","'use strict';\n\nif (typeof Promise === 'undefined') {\n // Rejection tracking prevents a common issue where React gets into an\n // inconsistent state due to an error, but it gets swallowed by a Promise,\n // and the user has no idea what causes React's erratic future behavior.\n require('promise/lib/rejection-tracking').enable();\n window.Promise = require('promise/lib/es6-extensions.js');\n}\n\n// fetch() polyfill for making API calls.\nrequire('whatwg-fetch');\n\n// Object.assign() is commonly used with React.\n// It will use the native implementation if it's present and isn't buggy.\nObject.assign = require('object-assign');\n\n// In tests, polyfill requestAnimationFrame since jsdom doesn't provide it yet.\n// We don't polyfill it in the browser--this is user's responsibility.\nif (process.env.NODE_ENV === 'test') {\n require('raf').polyfill(global);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./config/polyfills.js","'use strict';\n\nvar Promise = require('./core');\n\nvar DEFAULT_WHITELIST = [\n ReferenceError,\n TypeError,\n RangeError\n];\n\nvar enabled = false;\nexports.disable = disable;\nfunction disable() {\n enabled = false;\n Promise._47 = null;\n Promise._71 = null;\n}\n\nexports.enable = enable;\nfunction enable(options) {\n options = options || {};\n if (enabled) disable();\n enabled = true;\n var id = 0;\n var displayId = 0;\n var rejections = {};\n Promise._47 = function (promise) {\n if (\n promise._83 === 2 && // IS REJECTED\n rejections[promise._56]\n ) {\n if (rejections[promise._56].logged) {\n onHandled(promise._56);\n } else {\n clearTimeout(rejections[promise._56].timeout);\n }\n delete rejections[promise._56];\n }\n };\n Promise._71 = function (promise, err) {\n if (promise._75 === 0) { // not yet handled\n promise._56 = id++;\n rejections[promise._56] = {\n displayId: null,\n error: err,\n timeout: setTimeout(\n onUnhandled.bind(null, promise._56),\n // For reference errors and type errors, this almost always\n // means the programmer made a mistake, so log them after just\n // 100ms\n // otherwise, wait 2 seconds to see if they get handled\n matchWhitelist(err, DEFAULT_WHITELIST)\n ? 100\n : 2000\n ),\n logged: false\n };\n }\n };\n function onUnhandled(id) {\n if (\n options.allRejections ||\n matchWhitelist(\n rejections[id].error,\n options.whitelist || DEFAULT_WHITELIST\n )\n ) {\n rejections[id].displayId = displayId++;\n if (options.onUnhandled) {\n rejections[id].logged = true;\n options.onUnhandled(\n rejections[id].displayId,\n rejections[id].error\n );\n } else {\n rejections[id].logged = true;\n logError(\n rejections[id].displayId,\n rejections[id].error\n );\n }\n }\n }\n function onHandled(id) {\n if (rejections[id].logged) {\n if (options.onHandled) {\n options.onHandled(rejections[id].displayId, rejections[id].error);\n } else if (!rejections[id].onUnhandled) {\n console.warn(\n 'Promise Rejection Handled (id: ' + rejections[id].displayId + '):'\n );\n console.warn(\n ' This means you can ignore any previous messages of the form \"Possible Unhandled Promise Rejection\" with id ' +\n rejections[id].displayId + '.'\n );\n }\n }\n }\n}\n\nfunction logError(id, error) {\n console.warn('Possible Unhandled Promise Rejection (id: ' + id + '):');\n var errStr = (error && (error.stack || error)) + '';\n errStr.split('\\n').forEach(function (line) {\n console.warn(' ' + line);\n });\n}\n\nfunction matchWhitelist(error, list) {\n return list.some(function (cls) {\n return error instanceof cls;\n });\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/promise/lib/rejection-tracking.js","\"use strict\";\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n if (!queue.length) {\n requestFlush();\n flushing = true;\n }\n // Equivalent to push, but avoids a function call.\n queue[queue.length] = task;\n}\n\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\nvar requestFlush;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n while (index < queue.length) {\n var currentIndex = index;\n // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n index = index + 1;\n queue[currentIndex].call();\n // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (index > capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n queue.length -= index;\n index = 0;\n }\n }\n queue.length = 0;\n index = 0;\n flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n requestFlush = makeRequestCallFromMutationObserver(flush);\n\n// MessageChannels are desirable because they give direct access to the HTML\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\n} else {\n requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n var toggle = 1;\n var observer = new BrowserMutationObserver(callback);\n var node = document.createTextNode(\"\");\n observer.observe(node, {characterData: true});\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\nfunction makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n var timeoutHandle = setTimeout(handleTimer, 0);\n // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n var intervalHandle = setInterval(handleTimer, 50);\n\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n}\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/asap/browser-raw.js","'use strict';\n\n//This file contains the ES6 extensions to the core Promises/A+ API\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\n\n/* Static Functions */\n\nvar TRUE = valuePromise(true);\nvar FALSE = valuePromise(false);\nvar NULL = valuePromise(null);\nvar UNDEFINED = valuePromise(undefined);\nvar ZERO = valuePromise(0);\nvar EMPTYSTRING = valuePromise('');\n\nfunction valuePromise(value) {\n var p = new Promise(Promise._44);\n p._83 = 1;\n p._18 = value;\n return p;\n}\nPromise.resolve = function (value) {\n if (value instanceof Promise) return value;\n\n if (value === null) return NULL;\n if (value === undefined) return UNDEFINED;\n if (value === true) return TRUE;\n if (value === false) return FALSE;\n if (value === 0) return ZERO;\n if (value === '') return EMPTYSTRING;\n\n if (typeof value === 'object' || typeof value === 'function') {\n try {\n var then = value.then;\n if (typeof then === 'function') {\n return new Promise(then.bind(value));\n }\n } catch (ex) {\n return new Promise(function (resolve, reject) {\n reject(ex);\n });\n }\n }\n return valuePromise(value);\n};\n\nPromise.all = function (arr) {\n var args = Array.prototype.slice.call(arr);\n\n return new Promise(function (resolve, reject) {\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n if (val instanceof Promise && val.then === Promise.prototype.then) {\n while (val._83 === 3) {\n val = val._18;\n }\n if (val._83 === 1) return res(i, val._18);\n if (val._83 === 2) reject(val._18);\n val.then(function (val) {\n res(i, val);\n }, reject);\n return;\n } else {\n var then = val.then;\n if (typeof then === 'function') {\n var p = new Promise(then.bind(val));\n p.then(function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n values.forEach(function(value){\n Promise.resolve(value).then(resolve, reject);\n });\n });\n};\n\n/* Prototype Methods */\n\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/promise/lib/es6-extensions.js","(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue+','+value : value\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n rawHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = 'status' in options ? options.status : 200\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/whatwg-fetch/fetch.js","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/object-assign/index.js","import { define, WeElement } from 'omi'\n\nimport './my-head'\nimport './my-content'\nimport './my-sidebar'\nimport './my-demo'\n\ndefine('my-frame', class extends WeElement {\n\n installed(){\n this.store.init()\n }\n\n render() {\n return (\n
\n \n
\n \n
\n \n \n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-frame.js","import { define, WeElement } from 'omi'\nimport logo from './omi-logo2019.svg'\n\ndefine('my-head', class extends WeElement {\n static css = require('./_index.css')\n\n use = [\n 'position'\n ]\n\n toggleMenus = evt => {\n this.store.toogleSidebar()\n evt.stopPropagation()\n }\n\n hideSidebar = evt => {\n this.store.hideSidebar()\n }\n\n render() {\n return (\n
\n
\n \"\"\n
\n\n \n \n \n \n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-head/index.js","module.exports = __webpack_public_path__ + \"static/media/omi-logo2019.923166c3.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-head/omi-logo2019.svg\n// module id = 13\n// module chunks = 39 40","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAqklEQVRoQ+2WQQ6AMAgE4f+Pxg+oSTNbDXR7Z5UZQpvR/GTz/w838LdBG7ABSMAjBAHichvACGHAXANVVRCOtDwzb2E/GnADUv4R5xkQA9wWN3cLbUMmDrYBMdDluLkGfJEtD8N7wXkXWfsREk/Atri5W2gbMnGwDYiBLsfNNdB+jbqB5Wn2U0KM7KO4uVvoI4D4MzaAEcIAG4AAcbkNYIQwwAYgQFze3sAFU6MwMZGH3LoAAAAASUVORK5CYII=\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-head/menu.png\n// module id = 14\n// module chunks = 39 40","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-head/_index.css\n// module id = 15\n// module chunks = 39 40","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".head{\\n position:fixed;\\n height:60px;\\n line-height: 60px;\\n border-bottom: 1px solid #eee;\\n width:100%;\\n background-color:#24292e;\\n z-index:100;\\n top: 0;\\n}\\n\\nul,li{\\n display: inline-block;\\n}\\n\\n.logo_box{\\n width:100px;\\n display: inline-block;\\n text-align:center;\\n line-height: 60px;\\n}\\n\\n.menu a,.logo_box a{\\n display: inline-block;\\n height:60px;\\n color: white;\\n}\\n\\n.menu{\\n position: absolute;\\n right:20px;\\n}\\n\\n.menu li{\\n margin-left:15px;\\n}\\n\\n.logo_box a{\\n font-size: 34px;\\n font-weight: bold;\\n color: #00bff3;\\n padding: 0px 15px;\\n line-height: 60px;\\n cursor: pointer;\\n}\\n\\n.menu a:hover{\\n color: white;\\n}\\n\\n.m_menu{\\n position:fixed;\\n display:none;\\n cursor: pointer;\\n}\\n\\n.menu li{\\n display:inline-block;\\n}\\n\\n.logo{\\n width: 40px;\\n height: 40px;\\n margin-left: 10px;\\n margin-top: 10px;\\n cursor: pointer;\\n}\\n\\n@media only screen and (max-width: 800px) {\\n\\n .logo_box{\\n display:inline-block;\\n }\\n\\n .logo{\\n display: none;\\n }\\n\\n .head{\\n text-align:center;\\n }\\n\\n .m_menu{\\n top:0;\\n left:0;\\n display:block;\\n width:50px;\\n height:50px;\\n padding-top: 6px;\\n }\\n\\n .m_menu img{\\n width:30px;\\n }\\n\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-head/_index.css\n// module id = 16\n// module chunks = 39 40","import { define, WeElement } from 'omi'\nimport '../my-footer'\n\ndefine('my-content', class extends WeElement {\n static css = require('./_index.css')\n\n use = [\n 'html'\n ]\n\n install() {\n this.store.myContent = this\n }\n\n installed() {\n this.initCodeStyle()\n }\n\n afterUpdate() {\n this.initCodeStyle()\n }\n\n touchEnd = () => {\n this.store.hideSidebar()\n }\n\n initCodeStyle() {\n let codes = document.querySelectorAll('code')\n\n let codesArr = Array.prototype.slice.call(codes);\n let codeHlNumArr = []\n codesArr.forEach(code => {\n let arr = code.className.match(/{([\\S\\s]*)}/)\n let pre = code.parentNode\n //bug!\n arr && pre.setAttribute('data-line', arr[1])\n if (code.className) {\n pre.className = code.className\n\n const temp = code.className.match(/language-\\w*/g)[0]\n if (temp) {\n code.innerHTML = Prism.highlight(code.innerText, Prism.languages[temp.split('-')[1]], temp.split('-')[1])\n }\n } else {\n let pre = code.parentNode\n code.className = 'language-markup'\n pre.className = 'language-markup'\n code.innerHTML = Prism.highlight(code.innerText, Prism.languages.markup, 'markup')\n }\n // let hllNums = null\n // if (arr) {\n // let numArr = arr[0].replace(/[{|}]/g, '').split(',')\n // hllNums = this._arrToNumber(numArr)\n // }\n //codeHlNumArr.push(hllNums)\n })\n\n // codesArr.forEach((code, index) => {\n // let newP = document.createElement('div')\n // newP.className = '_code-ctn'\n // let pre = code.parentNode\n // let ctn = pre.parentNode\n // if (pre.nodeName === 'PRE') {\n // ctn.insertBefore(newP, pre)\n\n // let hl = document.createElement('div')\n // hl.className = '_hl'\n // newP.appendChild(hl)\n // newP.appendChild(pre)\n // let nums = codeHlNumArr[index]\n\n // let max = Math.max.apply(null, nums)\n\n // let inner = ''\n // for (let i = 0; i <= max; i++) {\n // if (nums.indexOf(i) == -1) {\n // inner += '
'\n // } else {\n // inner += '
'\n // }\n // }\n // hl.innerHTML = inner\n // }\n // })\n //fix line-highlight\n window.dispatchEvent(new Event('resize'));\n }\n\n _arrToNumber(numArr) {\n let arr = []\n numArr.forEach(item => {\n if (item.indexOf('-') !== -1) {\n const tempArr = item.split('-')\n const begin = Number(tempArr[0])\n const end = Number(tempArr[1])\n for (let i = begin; i < end + 1; i++) {\n arr.push(i)\n }\n } else {\n arr.push(Number(item))\n }\n })\n return arr\n }\n\n render() {\n return (\n
\n \n \n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-content/index.js","import { define, WeElement } from 'omi'\n\ndefine('my-footer', class extends WeElement {\n static css = require('./_index.css')\n\n use = [\n 'position',\n 'menu'\n ]\n\n render() {\n const [\n position,\n menus\n ] = this.using\n const pre = this.store.getPre()\n const next = this.store.getNext()\n\n return (\n
\n {pre &&← {pre.name}}\n {next &&}\n
\n )\n }\n\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-footer/index.js","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-footer/_index.css\n// module id = 19\n// module chunks = 39 40","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".ft{\\n position: relative;\\n margin-top: 20px\\n}\\n\\n.pre{\\n position: absolute;\\n left:15px;\\n}\\n\\n.next{\\n position: absolute;\\n right: 15px;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-footer/_index.css\n// module id = 20\n// module chunks = 39 40","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-content/_index.css\n// module id = 21\n// module chunks = 39 40","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".content{\\n position: relative;\\n padding: 70px 30px;\\n max-width: 900px;\\n margin: 0 auto;\\n\\n}\\n\\n@media screen and (max-width: 1500px){\\n .content {\\n margin-left: 290px;\\n }\\n}\\n\\nh3{\\n color:#444444;\\n}\\n\\npre{\\n border: 1px solid #eee;\\n width: 100%;\\n}\\nli{\\n text-indent: 20px;\\n list-style:disc inside ;\\n}\\n\\n@media only screen and (max-width: 800px) {\\n .content{\\n margin-left: 0;\\n border-left: none;\\n padding: 70px 10px 70px 10px;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-content/_index.css\n// module id = 22\n// module chunks = 39 40","import { define, WeElement } from 'omi'\nimport '../my-list'\n\ndefine('my-sidebar', class extends WeElement {\n static css = require('./_index.css')\n\n use = [\n 'menus',\n 'sideBarShow',\n 'lan'\n ]\n\n render() {\n const [menus, sideBarShow, lan] = this.using\n\n return (\n
\n {menus[lan].map((menu, index) => (\n \n ))}\n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-sidebar/index.js","import { define, WeElement } from 'omi'\n\ndefine('my-list', class extends WeElement {\n static css = require('./_index.css')\n\n use = [\n 'position'\n ]\n\n render(props) {\n const [position] = this.using\n\n return (\n
    \n
  • {props.menu.title}
  • \n {props.menu.list &&\n props.menu.list.map((item, subIndex) => {\n const cls = position[0] === props.index && position[1] === subIndex ? { class: 'current' } : null\n return
  • \n \n {item.name}\n \n
  • \n })}\n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-list/index.js","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-list/_index.css\n// module id = 25\n// module chunks = 39 40","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"li.title{\\n font-size: 14px;\\n font-weight: bold;\\n margin-bottom:10px;\\n margin-top:10px;\\n text-indent: 23px;\\n}\\nli{\\n margin-bottom:1px;\\n text-indent: 33px;\\n}\\nli a{\\n display:block;\\n font-size:14px;\\n height:30px;\\n line-height:30px;\\n color: black;\\n background-color:#eee;\\n}\\nli a.current,li a.current:hover{\\n background-color:#24292e;\\n color: white;\\n cursor: default;\\n}\\nli a:hover{\\n background-color:#f0f8ff;\\n}\\n\\n\\nul,li{\\n list-style:none;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-list/_index.css\n// module id = 26\n// module chunks = 39 40","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-sidebar/_index.css\n// module id = 27\n// module chunks = 39 40","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"@media only screen and (max-width: 800px) {\\n .list{\\n transform: translateX(-100%);\\n background-color:white;\\n left:0 !important;\\n -moz-transition: all .6s ease;\\n -o-transition: all .6s ease;\\n -webkit-transition: all .6s ease;\\n transition: all .6s ease;\\n width: 70% !important;\\n z-index: 100000;\\n border-right: none !important;\\n }\\n\\n .list.show {\\n -moz-transform: translateX(0%) translateZ(0);\\n -ms-transform: translateX(0%) translateZ(0);\\n -o-transform: translateX(0%) translateZ(0);\\n -webkit-transform: translateX(0%) translateZ(0);\\n transform: translateX(0%) translateZ(0);\\n }\\n}\\n\\n.list{\\n width: 261px;\\n text-indent: 20px;\\n border-right: 1px solid #eee;\\n overflow-x: hidden;\\n overflow-y: auto;\\n position:fixed;\\n top:60px;\\n background-color: white;\\n height: 100%;\\n border-right: 1px solid #ccc;\\n padding-bottom: 100px;\\n}\\n.version{\\n height:20px;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-sidebar/_index.css\n// module id = 28\n// module chunks = 39 40","import { define, WeElement } from 'omi'\nimport css from './_index.css'\n\ndefine('my-demo', class extends WeElement {\n install() {\n this.store.myDemo = this\n if(this.checkPc())\n this.show = true\n else\n this.show = false\n this.demo = this.store.demo\n }\n\n css() {\n return css\n }\n\n checkPc() {\n let userAgentInfo = navigator.userAgent\n let mp = [\"Android\", \"iPhone\", \"SymbianOS\", \"Windows Phone\", \"iPad\", \"iPod\"]\n for (let i = 0; i < mp.length; i++)\n if (userAgentInfo.indexOf(mp[i]) > 0)\n return false\n return true\n }\n\n onShow = () => {\n this.show = true\n this.update()\n }\n\n onClose = () => {\n this.show = false\n this.update()\n }\n \n render() {\n if(!this.demo) return\n return (\n
\n { this.show && }\n\n {!this.show &&
\n \n
}\n\n {this.show &&
\n \n
}\n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-demo/index.js","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-demo/_index.css\n// module id = 30\n// module chunks = 39 40","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"iframe{\\n width: 750px;\\n height: 100%;\\n top: 60px;\\n right: 0;\\n position: fixed;\\n border: none;\\n z-index: 9999;\\n border-left: 2px solid #24292E;\\n}\\n\\n.switch{\\n width: 40px;\\n height: 40px;\\n background-color: #AA0000;\\n border-radius: 50%;\\n position: fixed;\\n right: 50px;\\n bottom: 50px;\\n cursor: pointer;\\n text-align: center;\\n z-index: 10000;\\n}\\n\\n.switch img{\\n width: 30px;\\n height: 30px;\\n margin-top:5px;\\n}\\n\\n.switch.close img{\\n margin-top:10px;\\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n@media only screen and (max-width: 800px) {\\n iframe{\\n width: 100%;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-demo/_index.css\n// module id = 31\n// module chunks = 39 40","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfiDBQMEgYVXhFiAAABVklEQVRIx+3UsU4UURSA4TNARoiJcR9BCwwJNNpRU0hjpS+hDTTyGkAD1UJnRzCbYKRAKzt9AaMxJoR+Ewho8dEMm5nZOzObbfVUM+ec/79n7uTeiP8xUfjiq6Xp8Ufg6fSCN7iQpasztebcttVaz3pEnGQirNqWt62VG2CoV8rNu8TLCD1DDBoVBc5BeVzr+OthhMwBjQq59wVe+Sy7+FQ8Z/bBB/MT4hG+4+3oLa0Y4f0x/AlYLmUyezVFMx5hE79ruaqiDY9wir2xbFnhqAW/7xovEpUZfXCUwEqxFvfiJs5ae+SO0/sfYR8fE8zdvzi524UGhV/Y6MCbp7ACFjvxiuKd2VFuCz/GNu8wgacVPmNnQrxQlA6TB/7geWX4tsNUUgz1IrzClYVStes4F4riQtHHoFbtulAq457j9UTNScEz8Li7c64hfxXf4jr7OfUE/1TcAoyIn6j/RilHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTEyLTIwVDExOjE4OjA2KzAxOjAwT3khJwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMi0yMFQxMToxODowNiswMTowMD4kmZsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-demo/code.png\n// module id = 32\n// module chunks = 39 40","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAQAAACROWYpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiDBQMERzDEbvbAAAArElEQVQ4y6XVOw6DMBBFUSf7SmGy2ZCNBerIJN2lAQn/34ArZHFsi3mDHW9mvDMOPDOjYwKCjeMJwGd/MPBI8OALBJ4S3d8e0okuz6jOi1TjVdrnTdrmXVrnEi1zmebcRGNupgf+YzHTjS8A/Ov0Lqxzs+97PLbUMukHG2wd59LimHheHJmX6yrxeiS6vJ2mJu8Hscq1DBe5Hv+M2zon4pd++teum5Hp5EX3WgGu+8eCI/n/bQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0xMi0yMFQxMToxNzoyOCswMTowMKxoBooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMTItMjBUMTE6MTc6MjgrMDE6MDDdNb42AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-demo/close.png\n// module id = 33\n// module chunks = 39 40","import config from '../docs/config.js'\nimport 'omi-router'\n\nclass Store {\n constructor(data) {\n this.data = {\n position: [-1, -1],\n menus: config.menus,\n lan: data.lan,\n html: '',\n sideBarShow: false\n }\n let id = 0\n this.map = {}\n this.positionMap = {}\n config.menus[this.data.lan].forEach((menu, index) => {\n menu.list.forEach((item, subIndex) => {\n item.id = id++\n item.position = [index, subIndex]\n this.map[item.id] = item\n item.index = index\n item.subIndex = subIndex\n this.positionMap[index + '-' + subIndex] = item\n })\n })\n this.preIndex = 0\n this.preSubIndex = 0\n }\n\n getNext() {\n const item = this.positionMap[this.data.position.join('-')]\n if (item) {\n return this.map[item.id + 1]\n }\n }\n\n getPre() {\n const item = this.positionMap[this.data.position.join('-')]\n if (item) {\n return this.map[item.id - 1]\n }\n }\n\n init() {\n this.remarkable = new Remarkable({ html: true })\n if (location.hash === \"\") {\n this.data.position = [0, 0]\n this.getMarkDown(this.data.menus[this.data.lan][0].list[0].md, this.data.lan, m => {\n this.data.html = this.remarkable.render(m)\n })\n }\n this.initRouter()\n }\n\n toogleSidebar() {\n this.data.sideBarShow = !this.data.sideBarShow\n }\n\n hideSidebar() {\n this.data.sideBarShow = false\n }\n\n initRouter() {\n const menus = this.data.menus[this.data.lan]\n menus.forEach(item => {\n item.list.forEach(subItem => {\n route('/' + subItem.md, evt => {\n menus[this.preIndex].list[this.preSubIndex].selected = false\n const indexs = getIndexs(subItem.md, this.data.lan, config)\n this.preIndex = indexs[0]\n this.preSubIndex = indexs[1]\n this.data.position = [indexs[0], indexs[1]]\n this.data.sideBarShow = false\n\n this.getMarkDown(subItem.md, this.data.lan, m => {\n this.data.html = this.remarkable.render(m)\n document.body.scrollTop = 0\n document.documentElement.scrollTop = 0\n })\n })\n })\n })\n }\n\n getMarkDown(name, lan, callback) {\n import('../docs/' + lan + '/' + name + '.md').then(m => {\n callback(m)\n })\n }\n}\n\nfunction getIndexs(name, lan, config) {\n const menus = config.menus[lan]\n for (let i = 0, len = menus.length; i < len; i++) {\n for (let j = 0, sLen = menus[i].list.length; j < sLen; j++) {\n if (name === menus[i].list[j].md) {\n return [i, j]\n }\n }\n }\n}\n\n\nexport default Store\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/index.js","const config = {\n menus: {\n 'zh-cn': [\n {\n title: 'OMI',\n list: [\n { name: '简介', md: 'introduction' },\n { name: '安装', md: 'installation' }\n ]\n },\n {\n title: '基础概念',\n list: [\n { name: 'H / H.F / JSX', md: 'jsx' },\n { name: '属性 Props', md: 'props' },\n { name: '事件 Event', md: 'event' },\n { name: '插槽 Slot', md: 'slot' },\n { name: '生命周期', md: 'lifecycle' },\n { name: '更新 Update', md: 'update' },\n { name: 'Provide / Inject', md: 'provide-inject' },\n { name: '引用 Ref', md: 'ref' },\n { name: '类名 Class', md: 'class' },\n { name: '扩展 Extend', md: 'extend' },\n // { name: '存储 Store', md: 'store' },\n { name: '样式 CSS', md: 'css' }\n ]\n },\n {\n title: '其他',\n list: [\n { name: 'Kbone 多端开发', md: 'kbone' },\n { name: '路由', md: 'router' },\n // { name: '服务端渲染', md: 'ssr' },\n { name: '生态与例子', md: 'other' },\n // { name: 'Mps', md: 'mps' }\n ]\n }\n ],\n en: [\n {\n title: 'OMI',\n list: [\n { name: 'Introduction', md: 'introduction' },\n { name: 'Installation', md: 'installation' }\n ]\n },\n {\n title: 'Base',\n list: [\n { name: 'H / H.F / JSX', md: 'jsx' },\n { name: 'Props', md: 'props' },\n { name: 'Event', md: 'event' },\n { name: 'Slot', md: 'slot' },\n { name: 'Lifecycle', md: 'lifecycle' },\n { name: 'Update', md: 'update' },\n { name: 'Provide / Inject', md: 'provide-inject' },\n { name: 'Ref', md: 'ref' },\n { name: 'Class', md: 'class' },\n { name: 'Extend', md: 'extend' },\n // { name: 'Store', md: 'store' },\n { name: 'CSS', md: 'css' }\n ]\n },\n {\n title: 'Other',\n list: [\n { name: 'Router', md: 'router' },\n // { name: 'Server-Side Rendering', md: 'ssr' },\n { name: 'Ecosystem and Examples', md: 'other' }\n ]\n }\n ]\n }\n}\n\nexport default config\n\n\n\n// WEBPACK FOOTER //\n// ./src/docs/config.js","/**\n * omi-router v3.0.2 http://omijs.org\n * Front End Cross-Frameworks Framework.\n * By dntzhang https://github.com/dntzhang\n * Github: https://github.com/Tencent/omi\n * MIT Licensed.\n */\n\n/**\n * Expose `pathToRegexp`.\n */\nvar _pathToRegexp_3_2_0_pathToRegexp = pathToRegexp;\nvar match_1 = match;\nvar regexpToFunction_1 = regexpToFunction;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * Default configs.\n */\nvar DEFAULT_DELIMITER = '/';\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \":test(\\\\d+)?\" => [\"test\", \"\\d+\", undefined, \"?\"]\n // \"(\\\\d+)\" => [undefined, undefined, \"\\d+\", undefined]\n '(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = (options && options.delimiter) || DEFAULT_DELIMITER;\n var whitelist = (options && options.whitelist) || undefined;\n var pathEscaped = false;\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) !== null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n pathEscaped = true;\n continue\n }\n\n var prev = '';\n var name = res[2];\n var capture = res[3];\n var group = res[4];\n var modifier = res[5];\n\n if (!pathEscaped && path.length) {\n var k = path.length - 1;\n var c = path[k];\n var matches = whitelist ? whitelist.indexOf(c) > -1 : true;\n\n if (matches) {\n prev = c;\n path = path.slice(0, k);\n }\n }\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n pathEscaped = false;\n }\n\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var pattern = capture || group;\n var delimiter = prev || defaultDelimiter;\n\n tokens.push({\n name: name || key++,\n prefix: prev,\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n pattern: pattern\n ? escapeGroup(pattern)\n : '[^' + escapeString(delimiter === defaultDelimiter ? delimiter : (delimiter + defaultDelimiter)) + ']+?'\n });\n }\n\n // Push any remaining characters.\n if (path || index < str.length) {\n tokens.push(path + str.substr(index));\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nfunction match (str, options) {\n var keys = [];\n var re = pathToRegexp(str, keys, options);\n return regexpToFunction(re, keys)\n}\n\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nfunction regexpToFunction (re, keys) {\n return function (pathname, options) {\n var m = re.exec(pathname);\n if (!m) return false\n\n var path = m[0];\n var index = m.index;\n var params = {};\n var decode = (options && options.decode) || decodeURIComponent;\n\n for (var i = 1; i < m.length; i++) {\n if (m[i] === undefined) continue\n\n var key = keys[i - 1];\n\n if (key.repeat) {\n params[key.name] = m[i].split(key.delimiter).map(function (value) {\n return decode(value, key)\n });\n } else {\n params[key.name] = decode(m[i], key);\n }\n }\n\n return { path: path, index: index, params: params }\n }\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (data, options) {\n var path = '';\n var encode = (options && options.encode) || encodeURIComponent;\n var validate = options ? options.validate !== false : true;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n continue\n }\n\n var value = data ? data[token.name] : undefined;\n var segment;\n\n if (Array.isArray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but got array')\n }\n\n if (value.length === 0) {\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j], token);\n\n if (validate && !matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\"')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n segment = encode(String(value), token);\n\n if (validate && !matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but got \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n continue\n }\n\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to be ' + (token.repeat ? 'an array' : 'a string'))\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$/()])/g, '\\\\$1')\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {Array=} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n if (!keys) return path\n\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n pattern: null\n });\n }\n }\n\n return path\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n return new RegExp('(?:' + parts.join('|') + ')', flags(options))\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n options = options || {};\n\n var strict = options.strict;\n var start = options.start !== false;\n var end = options.end !== false;\n var delimiter = options.delimiter || DEFAULT_DELIMITER;\n var endsWith = [].concat(options.endsWith || []).map(escapeString).concat('$').join('|');\n var route = start ? '^' : '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var capture = token.repeat\n ? '(?:' + token.pattern + ')(?:' + escapeString(token.delimiter) + '(?:' + token.pattern + '))*'\n : token.pattern;\n\n if (keys) keys.push(token);\n\n if (token.optional) {\n if (!token.prefix) {\n route += '(' + capture + ')?';\n } else {\n route += '(?:' + escapeString(token.prefix) + '(' + capture + '))?';\n }\n } else {\n route += escapeString(token.prefix) + '(' + capture + ')';\n }\n }\n }\n\n if (end) {\n if (!strict) route += '(?:' + escapeString(delimiter) + ')?';\n\n route += endsWith === '$' ? '$' : '(?=' + endsWith + ')';\n } else {\n var endToken = tokens[tokens.length - 1];\n var isEndDelimited = typeof endToken === 'string'\n ? endToken[endToken.length - 1] === delimiter\n : endToken === undefined;\n\n if (!strict) route += '(?:' + escapeString(delimiter) + '(?=' + endsWith + '))?';\n if (!isEndDelimited) route += '(?=' + escapeString(delimiter) + '|' + endsWith + ')';\n }\n\n return new RegExp(route, flags(options))\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (path instanceof RegExp) {\n return regexpToRegexp(path, keys)\n }\n\n if (Array.isArray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), keys, options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), keys, options)\n}\n_pathToRegexp_3_2_0_pathToRegexp.match = match_1;\n_pathToRegexp_3_2_0_pathToRegexp.regexpToFunction = regexpToFunction_1;\n_pathToRegexp_3_2_0_pathToRegexp.parse = parse_1;\n_pathToRegexp_3_2_0_pathToRegexp.compile = compile_1;\n_pathToRegexp_3_2_0_pathToRegexp.tokensToFunction = tokensToFunction_1;\n_pathToRegexp_3_2_0_pathToRegexp.tokensToRegExp = tokensToRegExp_1;\n\n/*!\n * omi-router v3.0.1 by dntzhang\n * Router for Omi.\n * Github: https://github.com/Tencent/omi\n * MIT Licensed.\n */\nvar mapping = {};\nvar root = getGlobal();\nroot.route = route;\nroot.route.params = null;\nroot.historyLength = 0;\nroot.route.to = function (path, data) {\n root.route._routeByTo = true;\n root.route.data = data;\n if (path[0] === '#') {\n location.hash = path;\n }\n else {\n location.hash = '#' + path;\n }\n};\nwindow.addEventListener('hashchange', hashChange);\nfunction hashChange(evt) {\n var byNative = false;\n //need to fix a line by omi-link\n if (window.history.length === root.historyLength && !root.route._routeByTo) {\n //keep alive mode\n byNative = true;\n }\n root.route._routeByTo = false;\n root.historyLength = window.history.length;\n var prevent = false;\n if (root.route.before) {\n prevent = root.route.before(evt) === false;\n }\n if (prevent)\n return;\n var path = window.location.hash.replace('#', '');\n if (path === '')\n path = '/';\n var notFound = true;\n Object.keys(mapping).every(function (key) {\n var toArr = path.split('?')[0].match(mapping[key].reg);\n if (toArr) {\n var pathArr = key.match(mapping[key].reg);\n root.route.params = getParams(toArr, pathArr);\n root.route.query = getUrlParams(path);\n mapping[key].callback({\n params: root.route.params,\n query: getUrlParams(path),\n data: root.route.data,\n byNative: byNative\n });\n root.route.data = null;\n notFound = false;\n return false;\n }\n return true;\n });\n if (notFound) {\n mapping['*'] && mapping['*'].callback({ byNative: byNative });\n }\n if (root.route.after) {\n root.route.after(evt);\n }\n}\ndocument.addEventListener('DOMContentLoaded', hashChange);\nfunction getParams(toArr, pathArr) {\n var params = {};\n toArr.forEach(function (item, index) {\n if (index > 0) {\n params[pathArr[index].replace(':', '')] = item;\n }\n });\n return params;\n}\nfunction route(path, callback) {\n mapping[path] = {\n callback: callback,\n reg: _pathToRegexp_3_2_0_pathToRegexp(path)\n };\n}\nvar router = { route: route, hashChange: hashChange };\nfunction getGlobal() {\n if (typeof global !== 'object' ||\n !global ||\n global.Math !== Math ||\n global.Array !== Array) {\n return (self ||\n window ||\n global ||\n (function () {\n return this;\n })());\n }\n return global;\n}\nfunction getUrlParams(url) {\n url = url.replace(/#.*$/, '');\n var queryArray = url.split(/[?&]/).slice(1);\n var i, args = {};\n for (i = 0; i < queryArray.length; i++) {\n var match = queryArray[i].match(/([^=]+)=([^=]+)/);\n if (match !== null) {\n args[match[1]] = decodeURIComponent(match[2]);\n }\n }\n return args;\n}\n\nexport { router as default, hashChange, route };\n//# sourceMappingURL=index.esm.js.map\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/omi-router/src/index.esm.js","var map = {\n\t\"./en/class.md\": [\n\t\t38,\n\t\t38\n\t],\n\t\"./en/css.md\": [\n\t\t39,\n\t\t37\n\t],\n\t\"./en/event.md\": [\n\t\t40,\n\t\t36\n\t],\n\t\"./en/extend.md\": [\n\t\t41,\n\t\t35\n\t],\n\t\"./en/installation.md\": [\n\t\t42,\n\t\t34\n\t],\n\t\"./en/introduction.md\": [\n\t\t43,\n\t\t33\n\t],\n\t\"./en/jsx.md\": [\n\t\t44,\n\t\t32\n\t],\n\t\"./en/lifecycle.md\": [\n\t\t45,\n\t\t31\n\t],\n\t\"./en/omim.md\": [\n\t\t46,\n\t\t30\n\t],\n\t\"./en/other.md\": [\n\t\t47,\n\t\t29\n\t],\n\t\"./en/props.md\": [\n\t\t48,\n\t\t28\n\t],\n\t\"./en/provide-inject.md\": [\n\t\t49,\n\t\t27\n\t],\n\t\"./en/ref.md\": [\n\t\t50,\n\t\t26\n\t],\n\t\"./en/router.md\": [\n\t\t51,\n\t\t25\n\t],\n\t\"./en/slot.md\": [\n\t\t52,\n\t\t24\n\t],\n\t\"./en/ssr.md\": [\n\t\t53,\n\t\t23\n\t],\n\t\"./en/store.md\": [\n\t\t54,\n\t\t22\n\t],\n\t\"./en/update.md\": [\n\t\t55,\n\t\t21\n\t],\n\t\"./zh-cn/class.md\": [\n\t\t56,\n\t\t20\n\t],\n\t\"./zh-cn/css.md\": [\n\t\t57,\n\t\t19\n\t],\n\t\"./zh-cn/event.md\": [\n\t\t58,\n\t\t18\n\t],\n\t\"./zh-cn/extend.md\": [\n\t\t59,\n\t\t17\n\t],\n\t\"./zh-cn/installation.md\": [\n\t\t60,\n\t\t16\n\t],\n\t\"./zh-cn/introduction.md\": [\n\t\t61,\n\t\t15\n\t],\n\t\"./zh-cn/jsx.md\": [\n\t\t62,\n\t\t14\n\t],\n\t\"./zh-cn/kbone.md\": [\n\t\t63,\n\t\t13\n\t],\n\t\"./zh-cn/lifecycle.md\": [\n\t\t64,\n\t\t12\n\t],\n\t\"./zh-cn/mps.md\": [\n\t\t65,\n\t\t11\n\t],\n\t\"./zh-cn/omim.md\": [\n\t\t66,\n\t\t10\n\t],\n\t\"./zh-cn/omip.md\": [\n\t\t67,\n\t\t9\n\t],\n\t\"./zh-cn/other.md\": [\n\t\t68,\n\t\t8\n\t],\n\t\"./zh-cn/props.md\": [\n\t\t69,\n\t\t7\n\t],\n\t\"./zh-cn/provide-inject.md\": [\n\t\t70,\n\t\t6\n\t],\n\t\"./zh-cn/ref.md\": [\n\t\t71,\n\t\t5\n\t],\n\t\"./zh-cn/router.md\": [\n\t\t72,\n\t\t4\n\t],\n\t\"./zh-cn/slot.md\": [\n\t\t73,\n\t\t3\n\t],\n\t\"./zh-cn/ssr.md\": [\n\t\t74,\n\t\t2\n\t],\n\t\"./zh-cn/store.md\": [\n\t\t75,\n\t\t1\n\t],\n\t\"./zh-cn/update.md\": [\n\t\t76,\n\t\t0\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids)\n\t\treturn Promise.reject(new Error(\"Cannot find module '\" + req + \"'.\"));\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(ids[0]);\n\t});\n};\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 37;\nmodule.exports = webpackAsyncContext;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs lazy ^\\.\\/.*\\.md$\n// module id = 37\n// module chunks = 39 40","import { render } from 'omi'\nimport './assets/index.css'\nimport './elements/my-frame.js'\nimport Store from './store'\n\nrender(, '#root', new Store({ lan: 'zh-cn' }))\n\n\n\n// WEBPACK FOOTER //\n// ./src/cn.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../static/js/cn.651bb1e7.js","../webpack/bootstrap 31ae5987bb5f33b83373","../node_modules/omio/dist/omi.esm.js","../node_modules/css-loader/lib/css-base.js","../node_modules/webpack/buildin/global.js","../node_modules/promise/lib/core.js","../config/polyfills.js","../node_modules/promise/lib/rejection-tracking.js","../node_modules/asap/browser-raw.js","../node_modules/promise/lib/es6-extensions.js","../node_modules/whatwg-fetch/fetch.js","../node_modules/object-assign/index.js","elements/my-frame.js","elements/my-head/index.js","elements/my-head/omi-logo2019.svg","elements/my-head/menu.png","webpack:///./src/elements/my-head/_index.css?911a","elements/my-head/_index.css","elements/my-content/index.js","elements/my-footer/index.js","webpack:///./src/elements/my-footer/_index.css?4020","elements/my-footer/_index.css","webpack:///./src/elements/my-content/_index.css?ea33","elements/my-content/_index.css","elements/my-sidebar/index.js","elements/my-list/index.js","webpack:///./src/elements/my-list/_index.css?7382","elements/my-list/_index.css","webpack:///./src/elements/my-sidebar/_index.css?a491","elements/my-sidebar/_index.css","elements/my-demo/index.js","webpack:///./src/elements/my-demo/_index.css?fba4","elements/my-demo/_index.css","elements/my-demo/code.png","elements/my-demo/close.png","store/index.js","docs/config.js","../node_modules/omi-router/src/index.esm.js","docs lazy /^/.//.*/.md$","cn.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","parentJsonpFunction","window","chunkIds","moreModules","executeModules","chunkId","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","shift","40","e","onScriptComplete","script","onerror","onload","clearTimeout","timeout","chunk","Error","undefined","installedChunkData","Promise","resolve","promise","reject","head","document","getElementsByTagName","createElement","type","charset","async","nc","setAttribute","src","p","setTimeout","appendChild","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","oe","err","console","error","s","global","VNode","h","nodeName","attributes","lastSimple","child","simple","children","arguments","stack","pop","String","key","options","vnode","toObject","val","TypeError","assign","target","source","from","symbols","to","getOwnPropertySymbols","propIsEnumerable","extend","obj","props","applyRef","ref","value","current","isArray","toString","getUse","data","paths","out","forEach","path","index","getTargetByPath","keys","tempPath","tempVal","args","apply","origin","arr","replace","split","len","getPath","result","item","removeItem","splice","Fragment","cloneElement","slice","enqueueRender","component","items","debounceRendering","defer","rerender","renderComponent","isSameNodeType","node","hydrating","splitText","ctor","mapping","_componentConstructor","isNamedNode","normalizedNodeName","toLowerCase","getNodeProps","defaultProps","createNode","isSvg","doc","createElementNS","parseCSSText","cssText","cssTxt","style","_ref","match","a","b","rule","properties","map","x","trim","Array","Symbol","iterator","_ref3","next","done","_ref2","toUpperCase","removeNode","parentNode","removeChild","setAccessor","old","isWeb","IS_NON_DIMENSIONAL$1","test","oldJson","currentJson","changed","ckey","setStyles","innerHTML","__html","useCapture","nameLower","addEventListener","eventProxy","touchStart","touchEnd","removeEventListener","_listeners","setProperty","ns","removeAttributeNS","removeAttribute","setAttributeNS","className","this","event","___touchX","touches","pageX","___touchY","pageY","___scrollTop","body","scrollTop","Math","abs","changedTouches","dispatchEvent","CustomEvent","detail","getCtorName","styleCache","attrName","styleId","scoper","css","prefix","re","RegExp","g0","g1","g2","g3","addStyle","id","ele","getElementById","someThingStyles","ActiveXObject","styleSheet","textContent","addStyleWithoutId","addScopedAttrStatic","vdom","attr","scopedStyle","scopeVdom","addStyleToHead","staticStyleMapping","scopeHost","flushMounts","mounts","afterMount","installed","constructor","diff","dom","store","mountAll","parent","componentRoot","updateSelf","diffLevel","isSvgMode","ownerSVGElement","ret","idiff","prevSvgMode","vnodeName","buildComponentFromVNode","_component","nodeValue","createTextNode","replaceChild","recollectNodeTree","firstChild","fc","vchildren","nextSibling","innerDiffNode","dangerouslySetInnerHTML","diffAttributes","isHydrating","j","f","vchild","originalChildren","childNodes","keyed","keyedLen","min","childrenLen","vlen","_child","__key","insertBefore","unmountOnly","unmountComponent","removeChildren","lastChild","previousSibling","attrs","collectComponent","components","createComponent","Ctor","inst","list","render","Component","doRender","scopedCssAttr","use","isMultiStore","_updatePath","using","storeName","instances","useSelf","_use","_updatePath2","_using","_storeName","updateSelfInstances","usingSelf","_updateSelfPath","compute","computed","nextBase","setComponentProps","opts","_disable","__ref","base","beforeInstall","install","prevProps","syncComponentUpdates","isChild","rendered","cbase","previousProps","isUpdate","initialBase","initialChildComponent","skip","receiveResult","receiveProps","beforeUpdate","beforeRender","toUnmount","childComponent","childProps","_parentComponent","baseParent","componentRef","t","unshift","afterUpdate","updated","_renderCallbacks","originalComponent","oldDom","isDirectOwner","isOwner","beforeUnmount","uninstall","inner","_classCallCheck","instance","Constructor","obaa","callback","eventPropArr","isArray$1","$_o_","$_r_","$_p_","mock","track","prop","isInArray","watch","isString","$_c_","propChanged","all","root","methods","triggerStr","cprop","isFunction","onPropertyChanged","substring","currentValue","set","oldValue","nan","rootName","getRootName","handler","indexOf","isNaN","empty","merge","querySelector","obsStore","extendStoreUpate","patchs","fixPath","update","patch","needUpdate","onChange","ck","diffResult","updatePath","keyA","keyB","includePath","pathA","pathB","substr","mpPath","Number","_classCallCheck$1","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","writable","setPrototypeOf","__proto__","define","config","is","Comp","_Component","_temp","_this","_ret","_len","concat","propTypes","storeHelpers","func","rpx","str","innerWidth","tag","classNames","classes","arg","argType","hasOwn","join","extractClass","_Array$prototype$slic","getHost","styleObjToCss","JS_TO_CSS","IS_NON_DIMENSIONAL","renderToString","scopedCSS","html","_renderToString","values","isComponent","pretty","indentChar","encodeEntities","mapping$1","getNodeProps$1","__x","cssStr","cssAttr","scopedCSSAttr","sortAttributes","sort","v","allAttributes","hooked","attributeHook","xml","sub","isVoid","VOID_ELEMENTS","pieces","isLargeString","indent","hasLarge","childSvgMode","assign$1","createRef","_typeof","propertyIsEnumerable","Element","runListeners","oEvent","iLstId","iElId","oEvtListeners","oListeners","aEls","aEvts","sEventType","fListener","nElIdx","aElListeners","proto","propertiesObject","F","usePromise","__config__","platform","systemVersion","then","bind","elementId","_preCss","ignoreAttrs","_willUpdate","componentChange","_willUpdateSelf","fire","every","add","size","char","ignoreLines","WeElement","defineElement","Omi","omi","version","cssWithMappingToString","useSourceMap","content","cssMapping","btoa","sourceMapping","toComment","sources","sourceRoot","sourceMap","unescape","encodeURIComponent","JSON","stringify","mediaQuery","alreadyImportedModules","g","Function","eval","noop","getThen","ex","LAST_ERROR","IS_ERROR","tryCallOne","fn","tryCallTwo","_75","_83","_18","_38","doResolve","safeThen","onFulfilled","onRejected","res","handle","Handler","deferred","_47","handleResolved","asap","cb","newValue","finale","_71","reason","require","_44","enable","disable","enabled","onUnhandled","allRejections","matchWhitelist","rejections","whitelist","DEFAULT_WHITELIST","displayId","logged","logError","onHandled","warn","_56","line","some","cls","RangeError","rawAsap","task","queue","requestFlush","flushing","flush","currentIndex","capacity","scan","newLength","makeRequestCallFromTimer","handleTimer","timeoutHandle","clearInterval","intervalHandle","setInterval","scope","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","toggle","observer","observe","characterData","valuePromise","TRUE","FALSE","NULL","UNDEFINED","ZERO","EMPTYSTRING","remaining","race","normalizeName","normalizeValue","iteratorFor","support","iterable","Headers","headers","append","header","getOwnPropertyNames","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","blob","FileReader","readAsArrayBuffer","readBlobAsText","readAsText","readArrayBufferAsText","buf","view","Uint8Array","chars","fromCharCode","bufferClone","byteLength","buffer","Body","_initBody","_bodyInit","_bodyText","Blob","isPrototypeOf","_bodyBlob","formData","FormData","_bodyFormData","searchParams","URLSearchParams","arrayBuffer","isDataView","_bodyArrayBuffer","ArrayBuffer","isArrayBufferView","rejected","text","decode","json","parse","normalizeMethod","method","upcased","Request","input","url","credentials","mode","referrer","form","bytes","decodeURIComponent","parseHeaders","rawHeaders","parts","Response","bodyInit","status","ok","statusText","fetch","viewClasses","DataView","isView","has","thisArg","entries","clone","response","redirectStatuses","redirect","location","init","request","xhr","XMLHttpRequest","getAllResponseHeaders","responseURL","responseText","ontimeout","open","withCredentials","responseType","setRequestHeader","send","polyfill","test1","test2","test3","letter","_createClass","defineProperties","descriptor","protoProps","staticProps","class","_class","_temp2","toggleMenus","evt","toogleSidebar","stopPropagation","hideSidebar","onClick","alt","href","logo","lan","hash","default","myContent","initCodeStyle","codes","querySelectorAll","codesArr","code","pre","temp","Prism","highlight","innerText","languages","markup","Event","numArr","tempArr","begin","end","ontouchend","_slicedToArray","sliceIterator","_arr","_n","_d","_e","_s","_i","getPre","getNext","md","subIndex","menus","sideBarShow","menu","_extends","position","title","onShow","show","onClose","myDemo","checkPc","demo","userAgentInfo","navigator","userAgent","mp","innerHeight","getIndexs","sLen","Store","positionMap","preIndex","preSubIndex","remarkable","Remarkable","getMarkDown","initRouter","subItem","route","selected","indexs","documentElement","en","tokens","defaultDelimiter","delimiter","DEFAULT_DELIMITER","pathEscaped","PATH_REGEXP","exec","escaped","offset","prev","capture","group","modifier","k","repeat","optional","pattern","escapeGroup","escapeString","compile","tokensToFunction","regexpToFunction","pathToRegexp","pathname","params","matches","flags","encode","validate","token","segment","sensitive","regexpToRegexp","groups","arrayToRegexp","stringToRegexp","tokensToRegExp","strict","start","endsWith","endToken","isEndDelimited","hashChange","byNative","history","historyLength","_routeByTo","prevent","before","notFound","toArr","reg","pathArr","getParams","query","getUrlParams","after","_pathToRegexp_3_2_0_pathToRegexp","queryArray","match_1","regexpToFunction_1","parse_1","compile_1","tokensToFunction_1","tokensToRegExp_1","router","webpackAsyncContext","req","ids"],"mappings":"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H,iBACC,GACA,IAED,eACC,GACA,IAED,iBACC,GACA,IAED,kBACC,GACA,IAED,wBACC,GACA,IAED,wBACC,GACA,IAED,eACC,GACA,IAED,qBACC,GACA,IAED,gBACC,GACA,IAED,iBACC,GACA,IAED,iBACC,GACA,IAED,0BACC,GACA,IAED,eACC,GACA,IAED,kBACC,GACA,IAED,gBACC,GACA,IAED,eACC,GACA,IAED,iBACC,GACA,IAED,kBACC,GACA,IAED,oBACC,GACA,IAED,kBACC,GACA,IAED,oBACC,GACA,IAED,qBACC,GACA,IAED,2BACC,GACA,IAED,2BACC,GACA,IAED,kBACC,GACA,IAED,oBACC,GACA,IAED,wBACC,GACA,IAED,kBACC,GACA,IAED,mBACC,GACA,IAED,mBACC,GACA,GAED,oBACC,GACA,GAED,oBACC,GACA,GAED,6BACC,GACA,GAED,kBACC,GACA,GAED,qBACC,GACA,GAED,mBACC,GACA,GAED,kBACC,GACA,GAED,oBACC,GACA,GAED,qBACC,GACA,GAWFstB,GAAoBzwB,KAAO,WAC1B,MAAOhG,QAAOgG,KAAKmD,IAEpBstB,EAAoBhpB,GAAK,GACzBvO,EAAOD,QAAUw3B,GtC2lCT,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAEF,SAAUv3B,EAAQD,EAASH,GAEjCA,EAAoB,GACpBI,EAAOD,QAAUH,EAAoB,KAK/B,SAAUI,EAAQD,EAASH,GAEjC,YuCvzCA,WACA,OACA,KACA,a,wDAEA,IAAAqT,QAAO,uBAAc,QAAS,GAAIsf,YAAQrD,IAAK","file":"static/js/cn.651bb1e7.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId]) {\n/******/ \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n/******/ \t\t\t}\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n/******/ \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n/******/ \t\twhile(resolves.length) {\n/******/ \t\t\tresolves.shift()();\n/******/ \t\t}\n/******/\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// objects to store loaded and loading chunks\n/******/ \tvar installedChunks = {\n/******/ \t\t40: 0\n/******/ \t};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId) {\n/******/ \t\tvar installedChunkData = installedChunks[chunkId];\n/******/ \t\tif(installedChunkData === 0) {\n/******/ \t\t\treturn new Promise(function(resolve) { resolve(); });\n/******/ \t\t}\n/******/\n/******/ \t\t// a Promise means \"currently loading\".\n/******/ \t\tif(installedChunkData) {\n/******/ \t\t\treturn installedChunkData[2];\n/******/ \t\t}\n/******/\n/******/ \t\t// setup Promise in chunk cache\n/******/ \t\tvar promise = new Promise(function(resolve, reject) {\n/******/ \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n/******/ \t\t});\n/******/ \t\tinstalledChunkData[2] = promise;\n/******/\n/******/ \t\t// start chunk loading\n/******/ \t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\tvar script = document.createElement('script');\n/******/ \t\tscript.type = 'text/javascript';\n/******/ \t\tscript.charset = 'utf-8';\n/******/ \t\tscript.async = true;\n/******/ \t\tscript.timeout = 120000;\n/******/\n/******/ \t\tif (__webpack_require__.nc) {\n/******/ \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n/******/ \t\t}\n/******/ \t\tscript.src = __webpack_require__.p + \"static/js/\" + ({}[chunkId]||chunkId) + \".\" + {\"0\":\"9f88e82f\",\"1\":\"820f4ee6\",\"2\":\"1e24d7c5\",\"3\":\"46f6b4b4\",\"4\":\"bfbf1055\",\"5\":\"0b016674\",\"6\":\"bb995a3b\",\"7\":\"f97c6ec5\",\"8\":\"fc220e14\",\"9\":\"18c3905c\",\"10\":\"8e4de214\",\"11\":\"df4eed1c\",\"12\":\"a7266116\",\"13\":\"b6ef3caa\",\"14\":\"aab16c83\",\"15\":\"2f8ac6ea\",\"16\":\"1af26874\",\"17\":\"40e1c749\",\"18\":\"837f5ff0\",\"19\":\"6527f67e\",\"20\":\"b4d9f9a5\",\"21\":\"e36975b6\",\"22\":\"5d6510e9\",\"23\":\"3388824e\",\"24\":\"4e689f00\",\"25\":\"af7ead35\",\"26\":\"cca69bdf\",\"27\":\"23c231ee\",\"28\":\"ce3ae121\",\"29\":\"9351a4c8\",\"30\":\"0102262b\",\"31\":\"54a91a5f\",\"32\":\"3fcd0c77\",\"33\":\"d92fcf22\",\"34\":\"59c3f9c8\",\"35\":\"5d2d960a\",\"36\":\"e4085047\",\"37\":\"e0fd7131\",\"38\":\"a6a7bfcc\"}[chunkId] + \".chunk.js\";\n/******/ \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n/******/ \t\tscript.onerror = script.onload = onScriptComplete;\n/******/ \t\tfunction onScriptComplete() {\n/******/ \t\t\t// avoid mem leaks in IE.\n/******/ \t\t\tscript.onerror = script.onload = null;\n/******/ \t\t\tclearTimeout(timeout);\n/******/ \t\t\tvar chunk = installedChunks[chunkId];\n/******/ \t\t\tif(chunk !== 0) {\n/******/ \t\t\t\tif(chunk) {\n/******/ \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n/******/ \t\t\t\t}\n/******/ \t\t\t\tinstalledChunks[chunkId] = undefined;\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t\thead.appendChild(script);\n/******/\n/******/ \t\treturn promise;\n/******/ \t};\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"./\";\n/******/\n/******/ \t// on error function for async loading\n/******/ \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 77);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(obj){return typeof obj;}:function(obj){return obj&&typeof Symbol===\"function\"&&obj.constructor===Symbol&&obj!==Symbol.prototype?\"symbol\":typeof obj;};/**\n * omi v2.8.3 https://tencent.github.io/omi/\n * Omi === Preact + Scoped CSS + Store System + Native Support in 3kb javascript.\n * By dntzhang https://github.com/dntzhang\n * Github: https://github.com/Tencent/omi\n * MIT Licensed.\n *//** Virtual DOM Node */function VNode(){}function getGlobal(){if((typeof global==='undefined'?'undefined':_typeof(global))!=='object'||!global||global.Math!==Math||global.Array!==Array){if(typeof self!=='undefined'){return self;}else if(typeof window!=='undefined'){return window;}else if(typeof global!=='undefined'){return global;}return function(){return this;}();}return global;}/** Global options\n *\t@public\n *\t@namespace options {Object}\n */var options={scopedStyle:true,mapping:{},isWeb:true,staticStyleMapping:{},doc:(typeof document==='undefined'?'undefined':_typeof(document))==='object'?document:null,root:getGlobal(),//styleCache :[{ctor:ctor,ctorName:ctorName,style:style}]\nstyleCache:[],isMultiStore:false//componentChange(component, element) { },\n/** If `true`, `prop` changes trigger synchronous component updates.\n *\t@name syncComponentUpdates\n *\t@type Boolean\n *\t@default true\n *///syncComponentUpdates: true,\n/** Processes all created VNodes.\n *\t@param {VNode} vnode\tA newly-created VNode to normalize/process\n *///vnode(vnode) { }\n/** Hook invoked after a component is mounted. *///afterMount(component) { },\n/** Hook invoked after the DOM is updated with a component's latest render. *///afterUpdate(component) { }\n/** Hook invoked immediately before a component is unmounted. */// beforeUnmount(component) { }\n};var stack=[];/**\n * JSX/hyperscript reviver.\n * @see http://jasonformat.com/wtf-is-jsx\n * Benchmarks: https://esbench.com/bench/57ee8f8e330ab09900a1a1a0\n *\n * Note: this is exported as both `h()` and `createElement()` for compatibility reasons.\n *\n * Creates a VNode (virtual DOM element). A tree of VNodes can be used as a lightweight representation\n * of the structure of a DOM tree. This structure can be realized by recursively comparing it against\n * the current _actual_ DOM structure, and applying only the differences.\n *\n * `h()`/`createElement()` accepts an element name, a list of attributes/props,\n * and optionally children to append to the element.\n *\n * @example The following DOM tree\n *\n * `
Hello!
`\n *\n * can be constructed using this function as:\n *\n * `h('div', { id: 'foo', name : 'bar' }, 'Hello!');`\n *\n * @param {string} nodeName\tAn element name. Ex: `div`, `a`, `span`, etc.\n * @param {Object} attributes\tAny attributes/props to set on the created element.\n * @param rest\t\t\tAdditional arguments are taken to be children to append. Can be infinitely nested Arrays.\n *\n * @public\n */function h(nodeName,attributes){var children=[],lastSimple,child,simple,i;for(i=arguments.length;i-->2;){stack.push(arguments[i]);}if(attributes&&attributes.children!=null){if(!stack.length)stack.push(attributes.children);delete attributes.children;}while(stack.length){if((child=stack.pop())&&child.pop!==undefined){for(i=child.length;i--;){stack.push(child[i]);}}else{if(typeof child==='boolean')child=null;if(simple=typeof nodeName!=='function'){if(child==null)child='';else if(typeof child==='number')child=String(child);else if(typeof child!=='string')simple=false;}if(simple&&lastSimple){children[children.length-1]+=child;}else if(children.length===0){children=[child];}else{children.push(child);}lastSimple=simple;}}var p=new VNode();p.nodeName=nodeName;p.children=children;p.attributes=attributes==null?undefined:attributes;p.key=attributes==null?undefined:attributes.key;// if a \"vnode hook\" is defined, pass every created VNode to it\nif(options.vnode!==undefined)options.vnode(p);return p;}/* eslint-disable no-unused-vars */var getOwnPropertySymbols=Object.getOwnPropertySymbols;var hasOwnProperty=Object.prototype.hasOwnProperty;var propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(val){if(val===null||val===undefined){throw new TypeError('Object.assign cannot be called with null or undefined');}return Object(val);}function assign(target,source){var from;var to=toObject(target);var symbols;for(var s=1;s8){usePromise=true;}}}var defer=usePromise?Promise.resolve().then.bind(Promise.resolve()):setTimeout;function isArray(obj){return Object.prototype.toString.call(obj)==='[object Array]';}function getUse(data,paths,out,name){var obj=[];paths.forEach(function(path,index){var isPath=typeof path==='string';if(isPath){obj[index]=getTargetByPath(data,path);}else{var key=Object.keys(path)[0];var value=path[key];if(typeof value==='string'){obj[index]=getTargetByPath(data,value);}else{var tempPath=value[0];if(typeof tempPath==='string'){var tempVal=getTargetByPath(data,tempPath);obj[index]=value[1]?value[1](tempVal):tempVal;}else{var args=[];tempPath.forEach(function(path){args.push(getTargetByPath(data,path));});obj[index]=value[1].apply(null,args);}}obj[key]=obj[index];}});out&&(out[name]=obj);return obj;}function getTargetByPath(origin,path){var arr=path.replace(/]/g,'').replace(/\\[/g,'.').split('.');var current=origin;for(var i=0,len=arr.length;i2?[].slice.call(arguments,2):vnode.children);}// DOM properties that should NOT have \"px\" added when numeric\nvar IS_NON_DIMENSIONAL$1=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;/** Managed queue of dirty components to be re-rendered */var items=[];function enqueueRender(component){if(items.push(component)==1){(options.debounceRendering||defer)(rerender);}}/** Rerender all enqueued dirty components */function rerender(){var p;while(p=items.pop()){renderComponent(p);}}var mapping=options.mapping;/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node\t\t\tDOM Node to compare\n * @param {VNode} vnode\t\t\tVirtual DOM node to compare\n * @param {boolean} [hydrating=false]\tIf true, ignores component constructors when comparing.\n * @private\n */function isSameNodeType(node,vnode,hydrating){if(typeof vnode==='string'||typeof vnode==='number'){return node.splitText!==undefined;}if(typeof vnode.nodeName==='string'){var ctor=mapping[vnode.nodeName];if(ctor){return hydrating||node._componentConstructor===ctor;}return!node._componentConstructor&&isNamedNode(node,vnode.nodeName);}return hydrating||node._componentConstructor===vnode.nodeName;}/**\n * Check if an Element has a given nodeName, case-insensitively.\n *\n * @param {Element} node\tA DOM Element to inspect the name of.\n * @param {String} nodeName\tUnnormalized name to compare against.\n */function isNamedNode(node,nodeName){return node.normalizedNodeName===nodeName||node.nodeName.toLowerCase()===nodeName.toLowerCase();}/**\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 */function getNodeProps(vnode){var props=extend({},vnode.attributes);props.children=vnode.children;var defaultProps=vnode.nodeName.defaultProps;if(defaultProps!==undefined){for(var i in defaultProps){if(props[i]===undefined){props[i]=defaultProps[i];}}}return props;}/** Create an element with the given nodeName.\n *\t@param {String} nodeName\n *\t@param {Boolean} [isSvg=false]\tIf `true`, creates an element within the SVG namespace.\n *\t@returns {Element} node\n */function createNode(nodeName,isSvg){var node=isSvg?options.doc.createElementNS('http://www.w3.org/2000/svg',nodeName):options.doc.createElement(nodeName);node.normalizedNodeName=nodeName;return node;}function parseCSSText(cssText){var cssTxt=cssText.replace(/\\/\\*(.|\\s)*?\\*\\//g,' ').replace(/\\s+/g,' ');var style={},_ref=cssTxt.match(/ ?(.*?) ?{([^}]*)}/)||[a,b,cssTxt],a=_ref[0],b=_ref[1],rule=_ref[2];var cssToJs=function cssToJs(s){return s.replace(/\\W+\\w/g,function(match){return match.slice(-1).toUpperCase();});};var properties=rule.split(';').map(function(o){return o.split(':').map(function(x){return x&&x.trim();});});for(var i=properties,i=Array.isArray(i),i=0,i=i?i:i[Symbol.iterator]();;){var _ref3;if(i){if(i>=i.length)break;_ref3=i[i++];}else{i=i.next();if(i.done)break;_ref3=i.value;}var _ref2=_ref3;var property=_ref2[0];var value=_ref2[1];style[cssToJs(property)]=value;}return style;}/** Remove a child node from its parent if attached.\n *\t@param {Element} node\t\tThe node to remove\n */function removeNode(node){var parentNode=node.parentNode;if(parentNode)parentNode.removeChild(node);}/** Set a named attribute on the given Node, with special behavior for some names and event handlers.\n *\tIf `value` is `null`, the attribute/handler will be removed.\n *\t@param {Element} node\tAn element to mutate\n *\t@param {string} name\tThe name/key to set, such as an event or attribute name\n *\t@param {any} old\tThe last value that was set for this name/node pair\n *\t@param {any} value\tAn attribute value, such as a function to be used as an event handler\n *\t@param {Boolean} isSvg\tAre we currently diffing inside an svg?\n *\t@private\n */function setAccessor(node,name,old,value,isSvg){if(name==='className')name='class';if(name==='key'){// ignore\n}else if(name==='ref'){applyRef(old,null);applyRef(value,node);}else if(name==='class'&&!isSvg){node.className=value||'';}else if(name==='style'){if(options.isWeb){if(!value||typeof value==='string'||typeof old==='string'){node.style.cssText=value||'';}if(value&&(typeof value==='undefined'?'undefined':_typeof(value))==='object'){if(typeof old!=='string'){for(var i in old){if(!(i in value))node.style[i]='';}}for(var i in value){node.style[i]=typeof value[i]==='number'&&IS_NON_DIMENSIONAL$1.test(i)===false?value[i]+'px':value[i];}}}else{var oldJson=old,currentJson=value;if(typeof old==='string'){oldJson=parseCSSText(old);}if(typeof value=='string'){currentJson=parseCSSText(value);}var result={},changed=false;if(oldJson){for(var key in oldJson){if((typeof currentJson==='undefined'?'undefined':_typeof(currentJson))=='object'&&!(key in currentJson)){result[key]='';changed=true;}}for(var ckey in currentJson){if(currentJson[ckey]!==oldJson[ckey]){result[ckey]=currentJson[ckey];changed=true;}}if(changed){node.setStyles(result);}}else{node.setStyles(currentJson);}}}else if(name==='dangerouslySetInnerHTML'){if(value)node.innerHTML=value.__html||'';}else if(name[0]=='o'&&name[1]=='n'){var useCapture=name!==(name=name.replace(/Capture$/,''));var nameLower=name.toLowerCase();name=(nameLower in node?nameLower:name).slice(2);if(value){if(!old){node.addEventListener(name,eventProxy,useCapture);if(name=='tap'){node.addEventListener('touchstart',touchStart,useCapture);node.addEventListener('touchend',touchEnd,useCapture);}}}else{node.removeEventListener(name,eventProxy,useCapture);if(name=='tap'){node.removeEventListener('touchstart',touchStart,useCapture);node.removeEventListener('touchend',touchEnd,useCapture);}}(node._listeners||(node._listeners={}))[name]=value;}else if(name!=='list'&&name!=='tagName'&&// HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n// setAttribute\nname!=='form'&&name!=='type'&&name!=='size'&&name!=='download'&&name!=='href'&&!isSvg&&name in node){setProperty(node,name,value==null?'':value);}else{var ns=isSvg&&name!==(name=name.replace(/^xlink:?/,''));if(value==null||value===false){if(ns)node.removeAttributeNS('http://www.w3.org/1999/xlink',name.toLowerCase());else node.removeAttribute(name);}else if(typeof value!=='function'){if(ns)node.setAttributeNS('http://www.w3.org/1999/xlink',name.toLowerCase(),value);else node.setAttribute(name,value);}}}/** Attempt to set a DOM property to the given value.\n *\tIE & FF throw for certain property-value combinations.\n */function setProperty(node,name,value){try{node[name]=value;}catch(e){}}/** Proxy an event to hooked event handlers\n *\t@private\n */function eventProxy(e){return this._listeners[e.type](options.event&&options.event(e)||e);}function touchStart(e){this.___touchX=e.touches[0].pageX;this.___touchY=e.touches[0].pageY;this.___scrollTop=document.body.scrollTop;}function touchEnd(e){if(Math.abs(e.changedTouches[0].pageX-this.___touchX)<30&&Math.abs(e.changedTouches[0].pageY-this.___touchY)<30&&Math.abs(document.body.scrollTop-this.___scrollTop)<30){this.dispatchEvent(new CustomEvent('tap',{detail:e}));}}var styleId=0;function getCtorName(ctor){for(var i=0,len=options.styleCache.length;i-1;){if(item===arr[i])return true;}return false;}function getRootName(prop,path){if(path==='#'){return prop;}return path.split('-')[1];}obaa.add=function(obj,prop){watch(obj,prop,obj.$_o_.$_p_,obj.$_o_.$_r_);};obaa.set=function(obj,prop,value){if(obj[prop]===undefined){watch(obj,prop,obj.$_o_.$_p_,obj.$_o_.$_r_);}obj[prop]=value;};Array.prototype.size=function(length){this.length=length;};/** Render JSX into a `parent` Element.\n *\t@param {VNode} vnode\t\tA (JSX) VNode to render\n *\t@param {Element} parent\t\tDOM element to render into\n *\t@param {object} [store]\n *\t@public\n */function render(vnode,parent,store,empty,merge){parent=typeof parent==='string'?document.querySelector(parent):parent;if(store){if(store.data){obsStore(store);}else{options.isMultiStore=true;for(var key in store){if(store[key].data){obsStore(store[key],key);}}}}if(empty){while(parent.firstChild){parent.removeChild(parent.firstChild);}}if(merge){merge=typeof merge==='string'?document.querySelector(merge):merge;}return diff(merge,vnode,store,false,parent,false);}function obsStore(store,storeName){store.instances=[];store.updateSelfInstances=[];extendStoreUpate(store,storeName);obaa(store.data,function(prop,val,old,path){var patchs={};var key=fixPath(path+'-'+prop);patchs[key]=true;store.update(patchs);});}function merge(vnode,merge,store){obsStore(store);merge=typeof merge==='string'?document.querySelector(merge):merge;return diff(merge,vnode,store);}function extendStoreUpate(store,key){store.update=function(patch){if(Object.keys(patch).length>0){this.instances.forEach(function(instance){compute(instance,key);if(key){if(instance._updatePath&&instance._updatePath[key]&&needUpdate(patch,instance._updatePath[key])){if(instance.use){getUse(store.data,(typeof instance.use==='function'?instance.use():instance.use)[key],instance.using,key);}instance.update();}}else{if(instance._updatePath&&needUpdate(patch,instance._updatePath)){if(instance.use){instance.using=getUse(store.data,typeof instance.use==='function'?instance.use():instance.use);}instance.update();}}});this.updateSelfInstances.forEach(function(instance){compute(instance,key);if(key){if(instance._updateSelfPath&&instance._updateSelfPath[key]&&needUpdate(patch,instance._updateSelfPath[key])){if(instance.useSelf){getUse(store.data,(typeof instance.useSelf==='function'?instance.useSelf():instance.useSelf)[key],instance.usingSelf,key);}instance.updateSelf();}}else{if(instance._updateSelfPath&&needUpdate(patch,instance._updateSelfPath)){instance.usingSelf=getUse(store.data,typeof instance.useSelf==='function'?instance.useSelf():instance.useSelf);instance.updateSelf();}}});this.onChange&&this.onChange(patch);}};}function compute(instance,isMultiStore){if(instance.compute){for(var ck in instance.compute){instance.computed[ck]=instance.compute[ck].call(isMultiStore?instance.store:instance.store.data);}}}function needUpdate(diffResult,updatePath){for(var keyA in diffResult){if(updatePath[keyA]){return true;}for(var keyB in updatePath){if(includePath(keyA,keyB)){return true;}}}return false;}function includePath(pathA,pathB){if(pathA.indexOf(pathB)===0){var next=pathA.substr(pathB.length,1);if(next==='['||next==='.'){return true;}}return false;}function fixPath(path){var mpPath='';var arr=path.replace('#-','').split('-');arr.forEach(function(item,index){if(index){if(isNaN(Number(item))){mpPath+='.'+item;}else{mpPath+='['+item+']';}}else{mpPath+=item;}});return mpPath;}function _classCallCheck$1(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");}return call&&((typeof call==='undefined'?'undefined':_typeof(call))===\"object\"||typeof call===\"function\")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+(typeof superClass==='undefined'?'undefined':_typeof(superClass)));}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}var storeHelpers=['use','useSelf'];function define(name,ctor,config){if(ctor.is==='WeElement'){options.mapping[name]=ctor;}else{if(typeof config==='string'){config={css:config};}else{config=config||{};}var Comp=function(_Component){_inherits(Comp,_Component);function Comp(){var _temp,_this,_ret;_classCallCheck$1(this,Comp);for(var _len=arguments.length,args=Array(_len),key=0;key<_len;key++){args[key]=arguments[key];}return _ret=(_temp=(_this=_possibleConstructorReturn(this,_Component.call.apply(_Component,[this].concat(args))),_this),_this.compute=config.compute,_temp),_possibleConstructorReturn(_this,_ret);}Comp.prototype.render=function render(){return ctor.call(this,this);};return Comp;}(Component);Comp.css=config.css;Comp.propTypes=config.propTypes;Comp.defaultProps=config.defaultProps;var _loop=function _loop(key){if(typeof config[key]==='function'){Comp.prototype[key]=function(){return config[key].apply(this,arguments);};}};for(var key in config){_loop(key);}storeHelpers.forEach(function(func){if(config[func]&&config[func]!=='function'){Comp.prototype[func]=function(){return config[func];};}});options.mapping[name]=Comp;}}function rpx(str){return str.replace(/([1-9]\\d*|0)(\\.\\d*)*rpx/g,function(a,b){return window.innerWidth*Number(b)/750+'px';});}function tag(name){return function(target){define(name,target);};}/**\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 */var hasOwn={}.hasOwnProperty;function classNames(){var classes=[];for(var i=0;i0){return{'class':classNames.apply(null,args)};}}function getHost(component){var base=component.base;if(base){while(base.parentNode){if(base.parentNode._component){return base.parentNode._component;}else{base=base.parentNode;}}}}/**\n * preact-render-to-string based on preact-render-to-string\n * by Jason Miller\n * Licensed under the MIT License\n * https://github.com/developit/preact-render-to-string\n *\n * modified by dntzhang\n */var encodeEntities=function encodeEntities(s){return String(s).replace(/&/g,'&').replace(//g,'>').replace(/\"/g,'"');};var indent=function indent(s,char){return String(s).replace(/(\\n+)/g,'$1'+(char||'\\t'));};var mapping$1=options.mapping;var VOID_ELEMENTS=/^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/;var isLargeString=function isLargeString(s,length,ignoreLines){return String(s).length>(length||40)||!ignoreLines&&String(s).indexOf('\\n')!==-1||String(s).indexOf('<')!==-1;};var JS_TO_CSS={};// Convert an Object style to a CSSText string\nfunction styleObjToCss(s){var str='';for(var prop in s){var val=s[prop];if(val!=null){if(str)str+=' ';// str += jsToCss(prop);\nstr+=JS_TO_CSS[prop]||(JS_TO_CSS[prop]=prop.replace(/([A-Z])/g,'-$1').toLowerCase());str+=': ';str+=val;if(typeof val==='number'&&IS_NON_DIMENSIONAL.test(prop)===false){str+='px';}str+=';';}}return str||undefined;}function renderToString(vnode,opts,store,isSvgMode){store=store||{};opts=Object.assign({scopedCSS:true},opts);var css={};var html=_renderToString(vnode,opts,store,isSvgMode,css);return{css:Object.values(css),html:html};}/** The default export is an alias of `render()`. */function _renderToString(vnode,opts,store,isSvgMode,css){if(vnode==null||typeof vnode==='boolean'){return'';}var nodeName=vnode.nodeName,attributes=vnode.attributes,isComponent=false;var pretty=true&&opts.pretty,indentChar=pretty&&typeof pretty==='string'?pretty:'\\t';// #text nodes\nif((typeof vnode==='undefined'?'undefined':_typeof(vnode))!=='object'&&!nodeName){return encodeEntities(vnode);}// components\nvar ctor=mapping$1[nodeName];if(ctor){isComponent=true;var props=getNodeProps$1(vnode),rendered;// class-based components\nvar c=new ctor(props,store);// turn off stateful re-rendering:\nc._disable=c.__x=true;c.props=props;c.store=store;if(c.install)c.install();if(c.beforeRender)c.beforeRender();rendered=c.render(c.props,c.store);if(opts.scopedCSS){if(c.constructor.css||c.css){var cssStr=c.constructor.css?c.constructor.css:typeof c.css==='function'?c.css():c.css;var cssAttr='_s'+getCtorName(c.constructor);css[cssAttr]={id:cssAttr,css:scoper(cssStr,cssAttr)};addScopedAttrStatic(rendered,cssAttr);}c.scopedCSSAttr=vnode.css;scopeHost(rendered,c.scopedCSSAttr);}return _renderToString(rendered,opts,store,false,css);}// render JSX to HTML\nvar s='',html;if(attributes){var attrs=Object.keys(attributes);// allow sorting lexicographically for more determinism (useful for tests, such as via preact-jsx-chai)\nif(opts&&opts.sortAttributes===true)attrs.sort();for(var i=0;i]/))continue;if(!(opts&&opts.allAttributes)&&(name==='key'||name==='ref'))continue;if(name==='className'){if(attributes['class'])continue;name='class';}else if(isSvgMode&&name.match(/^xlink:?./)){name=name.toLowerCase().replace(/^xlink:?/,'xlink:');}if(name==='style'&&v&&(typeof v==='undefined'?'undefined':_typeof(v))==='object'){v=styleObjToCss(v);}var hooked=opts.attributeHook&&opts.attributeHook(name,v,store,opts,isComponent);if(hooked||hooked===''){s+=hooked;continue;}if(name==='dangerouslySetInnerHTML'){html=v&&v.__html;}else if((v||v===0||v==='')&&typeof v!=='function'){if(v===true||v===''){v=name;// in non-xml mode, allow boolean attributes\nif(!opts||!opts.xml){s+=' '+name;continue;}}s+=' '+name+'=\"'+encodeEntities(v)+'\"';}}}// account for >1 multiline attribute\nif(pretty){var sub=s.replace(/^\\n\\s*/,' ');if(sub!==s&&!~sub.indexOf('\\n'))s=sub;else if(pretty&&~s.indexOf('\\n'))s+='\\n';}s='<'+nodeName+s+'>';if(String(nodeName).match(/[\\s\\n\\\\/='\"\\0<>]/))throw s;var isVoid=String(nodeName).match(VOID_ELEMENTS);if(isVoid)s=s.replace(/>$/,' />');var pieces=[];if(html){// if multiline, indent.\nif(pretty&&isLargeString(html)){html='\\n'+indentChar+indent(html,indentChar);}s+=html;}else if(vnode.children){var hasLarge=pretty&&~s.indexOf('\\n');for(var i=0;i';}if(!isVoid){if(pretty&&~s.indexOf('\\n'))s+='\\n';s+='';}return s;}function assign$1(obj,props){for(var i in props){obj[i]=props[i];}return obj;}function getNodeProps$1(vnode){var props=assign$1({},vnode.attributes);props.children=vnode.children;var defaultProps=vnode.nodeName.defaultProps;if(defaultProps!==undefined){for(var i in defaultProps){if(props[i]===undefined){props[i]=defaultProps[i];}}}return props;}h.f=Fragment;var WeElement=Component;var defineElement=define;function createRef(){return{};}options.root.Omi={h:h,createElement:h,cloneElement:cloneElement,createRef:createRef,Component:Component,render:render,rerender:rerender,options:options,WeElement:WeElement,define:define,rpx:rpx,defineElement:defineElement,classNames:classNames,extractClass:extractClass,getHost:getHost,renderToString:renderToString,tag:tag,merge:merge,obaa:obaa};options.root.omi=options.root.Omi;options.root.Omi.version='omio-2.8.3';var omi={h:h,createElement:h,cloneElement:cloneElement,createRef:createRef,Component:Component,render:render,rerender:rerender,options:options,WeElement:WeElement,define:define,rpx:rpx,defineElement:defineElement,classNames:classNames,extractClass:extractClass,getHost:getHost,renderToString:renderToString,tag:tag,merge:merge,obaa:obaa};exports.default=omi;exports.h=h;exports.createElement=h;exports.cloneElement=cloneElement;exports.createRef=createRef;exports.Component=Component;exports.render=render;exports.rerender=rerender;exports.options=options;exports.WeElement=WeElement;exports.define=define;exports.rpx=rpx;exports.defineElement=defineElement;exports.classNames=classNames;exports.extractClass=extractClass;exports.getHost=getHost;exports.renderToString=renderToString;exports.tag=tag;exports.merge=merge;exports.obaa=obaa;//# sourceMappingURL=omi.esm.js.map\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/// css base code, injected by the css-loader\nmodule.exports=function(useSourceMap){var list=[];// return the list of modules as css string\nlist.toString=function toString(){return this.map(function(item){var content=cssWithMappingToString(item,useSourceMap);if(item[2]){return\"@media \"+item[2]+\"{\"+content+\"}\";}else{return content;}}).join(\"\");};// import a list of modules into the list\nlist.i=function(modules,mediaQuery){if(typeof modules===\"string\")modules=[[null,modules,\"\"]];var alreadyImportedModules={};for(var i=0;icapacity){// Manually shift all values starting at the index back to the\n// beginning of the queue.\nfor(var scan=0,newLength=queue.length-index;scan-1;};}function normalizeName(name){if(typeof name!=='string'){name=String(name);}if(/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)){throw new TypeError('Invalid character in header field name');}return name.toLowerCase();}function normalizeValue(value){if(typeof value!=='string'){value=String(value);}return value;}// Build a destructive iterator for the value list\nfunction iteratorFor(items){var iterator={next:function next(){var value=items.shift();return{done:value===undefined,value:value};}};if(support.iterable){iterator[Symbol.iterator]=function(){return iterator;};}return iterator;}function Headers(headers){this.map={};if(headers instanceof Headers){headers.forEach(function(value,name){this.append(name,value);},this);}else if(Array.isArray(headers)){headers.forEach(function(header){this.append(header[0],header[1]);},this);}else if(headers){Object.getOwnPropertyNames(headers).forEach(function(name){this.append(name,headers[name]);},this);}}Headers.prototype.append=function(name,value){name=normalizeName(name);value=normalizeValue(value);var oldValue=this.map[name];this.map[name]=oldValue?oldValue+','+value:value;};Headers.prototype['delete']=function(name){delete this.map[normalizeName(name)];};Headers.prototype.get=function(name){name=normalizeName(name);return this.has(name)?this.map[name]:null;};Headers.prototype.has=function(name){return this.map.hasOwnProperty(normalizeName(name));};Headers.prototype.set=function(name,value){this.map[normalizeName(name)]=normalizeValue(value);};Headers.prototype.forEach=function(callback,thisArg){for(var name in this.map){if(this.map.hasOwnProperty(name)){callback.call(thisArg,this.map[name],name,this);}}};Headers.prototype.keys=function(){var items=[];this.forEach(function(value,name){items.push(name);});return iteratorFor(items);};Headers.prototype.values=function(){var items=[];this.forEach(function(value){items.push(value);});return iteratorFor(items);};Headers.prototype.entries=function(){var items=[];this.forEach(function(value,name){items.push([name,value]);});return iteratorFor(items);};if(support.iterable){Headers.prototype[Symbol.iterator]=Headers.prototype.entries;}function consumed(body){if(body.bodyUsed){return Promise.reject(new TypeError('Already read'));}body.bodyUsed=true;}function fileReaderReady(reader){return new Promise(function(resolve,reject){reader.onload=function(){resolve(reader.result);};reader.onerror=function(){reject(reader.error);};});}function readBlobAsArrayBuffer(blob){var reader=new FileReader();var promise=fileReaderReady(reader);reader.readAsArrayBuffer(blob);return promise;}function readBlobAsText(blob){var reader=new FileReader();var promise=fileReaderReady(reader);reader.readAsText(blob);return promise;}function readArrayBufferAsText(buf){var view=new Uint8Array(buf);var chars=new Array(view.length);for(var i=0;i-1?upcased:method;}function Request(input,options){options=options||{};var body=options.body;if(input instanceof Request){if(input.bodyUsed){throw new TypeError('Already read');}this.url=input.url;this.credentials=input.credentials;if(!options.headers){this.headers=new Headers(input.headers);}this.method=input.method;this.mode=input.mode;if(!body&&input._bodyInit!=null){body=input._bodyInit;input.bodyUsed=true;}}else{this.url=String(input);}this.credentials=options.credentials||this.credentials||'omit';if(options.headers||!this.headers){this.headers=new Headers(options.headers);}this.method=normalizeMethod(options.method||this.method||'GET');this.mode=options.mode||this.mode||null;this.referrer=null;if((this.method==='GET'||this.method==='HEAD')&&body){throw new TypeError('Body not allowed for GET or HEAD requests');}this._initBody(body);}Request.prototype.clone=function(){return new Request(this,{body:this._bodyInit});};function decode(body){var form=new FormData();body.trim().split('&').forEach(function(bytes){if(bytes){var split=bytes.split('=');var name=split.shift().replace(/\\+/g,' ');var value=split.join('=').replace(/\\+/g,' ');form.append(decodeURIComponent(name),decodeURIComponent(value));}});return form;}function parseHeaders(rawHeaders){var headers=new Headers();rawHeaders.split(/\\r?\\n/).forEach(function(line){var parts=line.split(':');var key=parts.shift().trim();if(key){var value=parts.join(':').trim();headers.append(key,value);}});return headers;}Body.call(Request.prototype);function Response(bodyInit,options){if(!options){options={};}this.type='default';this.status='status'in options?options.status:200;this.ok=this.status>=200&&this.status<300;this.statusText='statusText'in options?options.statusText:'OK';this.headers=new Headers(options.headers);this.url=options.url||'';this._initBody(bodyInit);}Body.call(Response.prototype);Response.prototype.clone=function(){return new Response(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new Headers(this.headers),url:this.url});};Response.error=function(){var response=new Response(null,{status:0,statusText:''});response.type='error';return response;};var redirectStatuses=[301,302,303,307,308];Response.redirect=function(url,status){if(redirectStatuses.indexOf(status)===-1){throw new RangeError('Invalid status code');}return new Response(null,{status:status,headers:{location:url}});};self.Headers=Headers;self.Request=Request;self.Response=Response;self.fetch=function(input,init){return new Promise(function(resolve,reject){var request=new Request(input,init);var xhr=new XMLHttpRequest();xhr.onload=function(){var options={status:xhr.status,statusText:xhr.statusText,headers:parseHeaders(xhr.getAllResponseHeaders()||'')};options.url='responseURL'in xhr?xhr.responseURL:options.headers.get('X-Request-URL');var body='response'in xhr?xhr.response:xhr.responseText;resolve(new Response(body,options));};xhr.onerror=function(){reject(new TypeError('Network request failed'));};xhr.ontimeout=function(){reject(new TypeError('Network request failed'));};xhr.open(request.method,request.url,true);if(request.credentials==='include'){xhr.withCredentials=true;}if('responseType'in xhr&&support.blob){xhr.responseType='blob';}request.headers.forEach(function(value,name){xhr.setRequestHeader(name,value);});xhr.send(typeof request._bodyInit==='undefined'?null:request._bodyInit);});};self.fetch.polyfill=true;})(typeof self!=='undefined'?self:undefined);\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*//* eslint-disable no-unused-vars */var getOwnPropertySymbols=Object.getOwnPropertySymbols;var hasOwnProperty=Object.prototype.hasOwnProperty;var propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(val){if(val===null||val===undefined){throw new TypeError('Object.assign cannot be called with null or undefined');}return Object(val);}function shouldUseNative(){try{if(!Object.assign){return false;}// Detect buggy property enumeration order in older V8 versions.\n// https://bugs.chromium.org/p/v8/issues/detail?id=4118\nvar test1=new String('abc');// eslint-disable-line no-new-wrappers\ntest1[5]='de';if(Object.getOwnPropertyNames(test1)[0]==='5'){return false;}// https://bugs.chromium.org/p/v8/issues/detail?id=3056\nvar test2={};for(var i=0;i<10;i++){test2['_'+String.fromCharCode(i)]=i;}var order2=Object.getOwnPropertyNames(test2).map(function(n){return test2[n];});if(order2.join('')!=='0123456789'){return false;}// https://bugs.chromium.org/p/v8/issues/detail?id=3056\nvar test3={};'abcdefghijklmnopqrst'.split('').forEach(function(letter){test3[letter]=letter;});if(Object.keys(Object.assign({},test3)).join('')!=='abcdefghijklmnopqrst'){return false;}return true;}catch(err){// We don't expect any of the above to throw, but better to be safe.\nreturn false;}}module.exports=shouldUseNative()?Object.assign:function(target,source){var from;var to=toObject(target);var symbols;for(var s=1;s {\n// let newP = document.createElement('div')\n// newP.className = '_code-ctn'\n// let pre = code.parentNode\n// let ctn = pre.parentNode\n// if (pre.nodeName === 'PRE') {\n// ctn.insertBefore(newP, pre)\n// let hl = document.createElement('div')\n// hl.className = '_hl'\n// newP.appendChild(hl)\n// newP.appendChild(pre)\n// let nums = codeHlNumArr[index]\n// let max = Math.max.apply(null, nums)\n// let inner = ''\n// for (let i = 0; i <= max; i++) {\n// if (nums.indexOf(i) == -1) {\n// inner += '
'\n// } else {\n// inner += '
'\n// }\n// }\n// hl.innerHTML = inner\n// }\n// })\n//fix line-highlight\nwindow.dispatchEvent(new Event('resize'));}},{key:'_arrToNumber',value:function _arrToNumber(numArr){var arr=[];numArr.forEach(function(item){if(item.indexOf('-')!==-1){var tempArr=item.split('-');var begin=Number(tempArr[0]);var end=Number(tempArr[1]);for(var i=begin;i0)return false;}return true;}},{key:'render',value:function render(){if(!this.demo)return;return Omi.h('div',null,this.show&&Omi.h('iframe',{style:'height:'+(window.innerHeight-59)+'px',src:this.demo}),!this.show&&Omi.h('div',{'class':'switch code',onClick:this.onShow},Omi.h('img',{src:__webpack_require__(32)})),this.show&&Omi.h('div',{'class':'switch close',onClick:this.onClose},Omi.h('img',{src:__webpack_require__(33)})));}}]);return _class2;}(_omi.WeElement));\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n var result = __webpack_require__(31);\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(1)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \"iframe{\\n width: 750px;\\n height: 100%;\\n top: 60px;\\n right: 0;\\n position: fixed;\\n border: none;\\n z-index: 9999;\\n border-left: 2px solid #24292E;\\n}\\n\\n.switch{\\n width: 40px;\\n height: 40px;\\n background-color: #AA0000;\\n border-radius: 50%;\\n position: fixed;\\n right: 50px;\\n bottom: 50px;\\n cursor: pointer;\\n text-align: center;\\n z-index: 10000;\\n}\\n\\n.switch img{\\n width: 30px;\\n height: 30px;\\n margin-top:5px;\\n}\\n\\n.switch.close img{\\n margin-top:10px;\\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n@media only screen and (max-width: 800px) {\\n iframe{\\n width: 100%;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfiDBQMEgYVXhFiAAABVklEQVRIx+3UsU4UURSA4TNARoiJcR9BCwwJNNpRU0hjpS+hDTTyGkAD1UJnRzCbYKRAKzt9AaMxJoR+Ewho8dEMm5nZOzObbfVUM+ec/79n7uTeiP8xUfjiq6Xp8Ufg6fSCN7iQpasztebcttVaz3pEnGQirNqWt62VG2CoV8rNu8TLCD1DDBoVBc5BeVzr+OthhMwBjQq59wVe+Sy7+FQ8Z/bBB/MT4hG+4+3oLa0Y4f0x/AlYLmUyezVFMx5hE79ruaqiDY9wir2xbFnhqAW/7xovEpUZfXCUwEqxFvfiJs5ae+SO0/sfYR8fE8zdvzi524UGhV/Y6MCbp7ACFjvxiuKd2VFuCz/GNu8wgacVPmNnQrxQlA6TB/7geWX4tsNUUgz1IrzClYVStes4F4riQtHHoFbtulAq457j9UTNScEz8Li7c64hfxXf4jr7OfUE/1TcAoyIn6j/RilHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTEyLTIwVDExOjE4OjA2KzAxOjAwT3khJwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMi0yMFQxMToxODowNiswMTowMD4kmZsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC\"\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAQAAACROWYpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiDBQMERzDEbvbAAAArElEQVQ4y6XVOw6DMBBFUSf7SmGy2ZCNBerIJN2lAQn/34ArZHFsi3mDHW9mvDMOPDOjYwKCjeMJwGd/MPBI8OALBJ4S3d8e0okuz6jOi1TjVdrnTdrmXVrnEi1zmebcRGNupgf+YzHTjS8A/Ov0Lqxzs+97PLbUMukHG2wd59LimHheHJmX6yrxeiS6vJ2mJu8Hscq1DBe5Hv+M2zon4pd++teum5Hp5EX3WgGu+8eCI/n/bQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0xMi0yMFQxMToxNzoyOCswMTowMKxoBooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMTItMjBUMTE6MTc6MjgrMDE6MDDdNb42AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==\"\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function defineProperties(target,props){for(var i=0;i [\"test\", \"\\d+\", undefined, \"?\"]\n// \"(\\\\d+)\" => [undefined, undefined, \"\\d+\", undefined]\n'(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'].join('|'),'g');/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */function parse(str,options){var tokens=[];var key=0;var index=0;var path='';var defaultDelimiter=options&&options.delimiter||DEFAULT_DELIMITER;var whitelist=options&&options.whitelist||undefined;var pathEscaped=false;var res;while((res=PATH_REGEXP.exec(str))!==null){var m=res[0];var escaped=res[1];var offset=res.index;path+=str.slice(index,offset);index=offset+m.length;// Ignore already escaped sequences.\nif(escaped){path+=escaped[1];pathEscaped=true;continue;}var prev='';var name=res[2];var capture=res[3];var group=res[4];var modifier=res[5];if(!pathEscaped&&path.length){var k=path.length-1;var c=path[k];var matches=whitelist?whitelist.indexOf(c)>-1:true;if(matches){prev=c;path=path.slice(0,k);}}// Push the current path onto the tokens.\nif(path){tokens.push(path);path='';pathEscaped=false;}var repeat=modifier==='+'||modifier==='*';var optional=modifier==='?'||modifier==='*';var pattern=capture||group;var delimiter=prev||defaultDelimiter;tokens.push({name:name||key++,prefix:prev,delimiter:delimiter,optional:optional,repeat:repeat,pattern:pattern?escapeGroup(pattern):'[^'+escapeString(delimiter===defaultDelimiter?delimiter:delimiter+defaultDelimiter)+']+?'});}// Push any remaining characters.\nif(path||index0){params[pathArr[index].replace(':','')]=item;}});return params;}function route(path,callback){mapping[path]={callback:callback,reg:_pathToRegexp_3_2_0_pathToRegexp(path)};}var router={route:route,hashChange:hashChange};function getGlobal(){if((typeof global==='undefined'?'undefined':_typeof(global))!=='object'||!global||global.Math!==Math||global.Array!==Array){return self||window||global||function(){return this;}();}return global;}function getUrlParams(url){url=url.replace(/#.*$/,'');var queryArray=url.split(/[?&]/).slice(1);var i,args={};for(i=0;iHello!`\n *\n * can be constructed using this function as:\n *\n * `h('div', { id: 'foo', name : 'bar' }, 'Hello!');`\n *\n * @param {string} nodeName\tAn element name. Ex: `div`, `a`, `span`, etc.\n * @param {Object} attributes\tAny attributes/props to set on the created element.\n * @param rest\t\t\tAdditional arguments are taken to be children to append. Can be infinitely nested Arrays.\n *\n * @public\n */\nfunction h(nodeName, attributes) {\n var children = [],\n lastSimple,\n child,\n simple,\n i;\n for (i = arguments.length; i-- > 2;) {\n stack.push(arguments[i]);\n }\n if (attributes && attributes.children != null) {\n if (!stack.length) stack.push(attributes.children);\n delete attributes.children;\n }\n while (stack.length) {\n if ((child = stack.pop()) && child.pop !== undefined) {\n for (i = child.length; i--;) {\n stack.push(child[i]);\n }\n } else {\n if (typeof child === 'boolean') child = null;\n\n if (simple = typeof nodeName !== 'function') {\n if (child == null) child = '';else if (typeof child === 'number') child = String(child);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 var p = new VNode();\n p.nodeName = nodeName;\n p.children = children;\n p.attributes = attributes == null ? undefined : attributes;\n p.key = attributes == null ? undefined : attributes.key;\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\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n\n return Object(val);\n}\n\nfunction assign(target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n\n return to;\n}\n\nif (typeof Element !== 'undefined' && !Element.prototype.addEventListener) {\n var runListeners = function runListeners(oEvent) {\n if (!oEvent) {\n oEvent = window.event;\n }\n for (var iLstId = 0, iElId = 0, oEvtListeners = oListeners[oEvent.type]; iElId < oEvtListeners.aEls.length; iElId++) {\n if (oEvtListeners.aEls[iElId] === this) {\n for (iLstId; iLstId < oEvtListeners.aEvts[iElId].length; iLstId++) {\n oEvtListeners.aEvts[iElId][iLstId].call(this, oEvent);\n }\n break;\n }\n }\n };\n\n var oListeners = {};\n\n Element.prototype.addEventListener = function (sEventType, fListener /*, useCapture (will be ignored!) */) {\n if (oListeners.hasOwnProperty(sEventType)) {\n var oEvtListeners = oListeners[sEventType];\n for (var nElIdx = -1, iElId = 0; iElId < oEvtListeners.aEls.length; iElId++) {\n if (oEvtListeners.aEls[iElId] === this) {\n nElIdx = iElId;break;\n }\n }\n if (nElIdx === -1) {\n oEvtListeners.aEls.push(this);\n oEvtListeners.aEvts.push([fListener]);\n this[\"on\" + sEventType] = runListeners;\n } else {\n var aElListeners = oEvtListeners.aEvts[nElIdx];\n if (this[\"on\" + sEventType] !== runListeners) {\n aElListeners.splice(0);\n this[\"on\" + sEventType] = runListeners;\n }\n for (var iLstId = 0; iLstId < aElListeners.length; iLstId++) {\n if (aElListeners[iLstId] === fListener) {\n return;\n }\n }\n aElListeners.push(fListener);\n }\n } else {\n oListeners[sEventType] = { aEls: [this], aEvts: [[fListener]] };\n this[\"on\" + sEventType] = runListeners;\n }\n };\n Element.prototype.removeEventListener = function (sEventType, fListener /*, useCapture (will be ignored!) */) {\n if (!oListeners.hasOwnProperty(sEventType)) {\n return;\n }\n var oEvtListeners = oListeners[sEventType];\n for (var nElIdx = -1, iElId = 0; iElId < oEvtListeners.aEls.length; iElId++) {\n if (oEvtListeners.aEls[iElId] === this) {\n nElIdx = iElId;break;\n }\n }\n if (nElIdx === -1) {\n return;\n }\n for (var iLstId = 0, aElListeners = oEvtListeners.aEvts[nElIdx]; iLstId < aElListeners.length; iLstId++) {\n if (aElListeners[iLstId] === fListener) {\n aElListeners.splice(iLstId, 1);\n }\n }\n };\n}\n\nif (typeof Object.create !== 'function') {\n Object.create = function (proto, propertiesObject) {\n if (typeof proto !== 'object' && typeof proto !== 'function') {\n throw new TypeError('Object prototype may only be an Object: ' + proto);\n } else if (proto === null) {\n throw new Error(\"This browser's implementation of Object.create is a shim and doesn't support 'null' as the first argument.\");\n }\n\n // if (typeof propertiesObject != 'undefined') {\n // throw new Error(\"This browser's implementation of Object.create is a shim and doesn't support a second argument.\");\n // }\n\n function F() {}\n F.prototype = proto;\n\n return new F();\n };\n}\n\nif (!String.prototype.trim) {\n String.prototype.trim = function () {\n return this.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n };\n}\n\n/**\n * Copy all properties from `props` onto `obj`.\n * @param {Object} obj\t\tObject onto which properties should be copied.\n * @param {Object} props\tObject from which to copy properties.\n * @returns obj\n * @private\n */\nfunction extend(obj, props) {\n for (var i in props) {\n 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 */\nfunction applyRef(ref, value) {\n if (ref) {\n if (typeof ref == 'function') ref(value);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 *\n * @param {Function} callback\n */\n\nvar usePromise = typeof Promise == 'function';\n\n// for native\nif (typeof document !== 'object' && typeof global !== 'undefined' && global.__config__) {\n if (global.__config__.platform === 'android') {\n usePromise = true;\n } else {\n var systemVersion = global.__config__.systemVersion && global.__config__.systemVersion.split('.')[0] || 0;\n if (systemVersion > 8) {\n usePromise = true;\n }\n }\n}\n\nvar defer = usePromise ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n\nfunction isArray(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n}\n\nfunction getUse(data, paths, out, name) {\n var obj = [];\n paths.forEach(function (path, index) {\n var isPath = typeof path === 'string';\n if (isPath) {\n obj[index] = getTargetByPath(data, path);\n } else {\n var key = Object.keys(path)[0];\n var value = path[key];\n if (typeof value === 'string') {\n obj[index] = getTargetByPath(data, value);\n } else {\n var tempPath = value[0];\n if (typeof tempPath === 'string') {\n var tempVal = getTargetByPath(data, tempPath);\n obj[index] = value[1] ? value[1](tempVal) : tempVal;\n } else {\n var args = [];\n tempPath.forEach(function (path) {\n args.push(getTargetByPath(data, path));\n });\n obj[index] = value[1].apply(null, args);\n }\n }\n obj[key] = obj[index];\n }\n });\n out && (out[name] = obj);\n return obj;\n}\n\nfunction getTargetByPath(origin, path) {\n var arr = path.replace(/]/g, '').replace(/\\[/g, '.').split('.');\n var current = origin;\n for (var i = 0, len = arr.length; i < len; i++) {\n current = current[arr[i]];\n }\n return current;\n}\n\nfunction getPath(obj, out, name) {\n\n var result = {};\n obj.forEach(function (item) {\n if (typeof item === 'string') {\n result[item] = true;\n } else {\n var tempPath = item[Object.keys(item)[0]];\n if (typeof tempPath === 'string') {\n result[tempPath] = true;\n } else {\n if (typeof tempPath[0] === 'string') {\n result[tempPath[0]] = true;\n } else {\n tempPath[0].forEach(function (path) {\n return result[path] = true;\n });\n }\n }\n }\n });\n out && (out[name] = result);\n return result;\n}\n\nfunction removeItem(item, arr) {\n for (var i = 0, len = arr.length; i < len; i++) {\n if (arr[i] === item) {\n arr.splice(i, 1);\n break;\n }\n }\n}\n\nfunction Fragment(props) {\n return props.children;\n}\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {VNode} vnode\t\tThe virtual DOM element to clone\n * @param {Object} props\tAttributes/props to add when cloning\n * @param {VNode} rest\t\tAny additional arguments will be used as replacement children.\n */\nfunction cloneElement(vnode, props) {\n return h(vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children);\n}\n\n// DOM properties that should NOT have \"px\" added when numeric\nvar IS_NON_DIMENSIONAL$1 = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\n/** Managed queue of dirty components to be re-rendered */\n\nvar items = [];\n\nfunction enqueueRender(component) {\n if (items.push(component) == 1) {\n(options.debounceRendering || defer)(rerender);\n }\n}\n\n/** Rerender all enqueued dirty components */\nfunction rerender() {\n var p;\n while (p = items.pop()) {\n renderComponent(p);\n }\n}\n\nvar mapping = options.mapping;\n/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node\t\t\tDOM Node to compare\n * @param {VNode} vnode\t\t\tVirtual DOM node to compare\n * @param {boolean} [hydrating=false]\tIf true, ignores component constructors when comparing.\n * @private\n */\nfunction 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 var ctor = mapping[vnode.nodeName];\n if (ctor) {\n return hydrating || node._componentConstructor === ctor;\n }\n return !node._componentConstructor && isNamedNode(node, 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\tA DOM Element to inspect the name of.\n * @param {String} nodeName\tUnnormalized name to compare against.\n */\nfunction isNamedNode(node, nodeName) {\n return node.normalizedNodeName === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();\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 */\nfunction getNodeProps(vnode) {\n var props = extend({}, vnode.attributes);\n props.children = vnode.children;\n\n var defaultProps = vnode.nodeName.defaultProps;\n if (defaultProps !== undefined) {\n for (var i in defaultProps) {\n if (props[i] === undefined) {\n props[i] = defaultProps[i];\n }\n }\n }\n\n return props;\n}\n\n/** Create an element with the given nodeName.\n *\t@param {String} nodeName\n *\t@param {Boolean} [isSvg=false]\tIf `true`, creates an element within the SVG namespace.\n *\t@returns {Element} node\n */\nfunction createNode(nodeName, isSvg) {\n\tvar node = isSvg ? options.doc.createElementNS('http://www.w3.org/2000/svg', nodeName) : options.doc.createElement(nodeName);\n\tnode.normalizedNodeName = nodeName;\n\treturn node;\n}\n\nfunction parseCSSText(cssText) {\n\tvar cssTxt = cssText.replace(/\\/\\*(.|\\s)*?\\*\\//g, ' ').replace(/\\s+/g, ' ');\n\tvar style = {},\n\t _ref = cssTxt.match(/ ?(.*?) ?{([^}]*)}/) || [a, b, cssTxt],\n\t a = _ref[0],\n\t b = _ref[1],\n\t rule = _ref[2];\n\n\tvar cssToJs = function cssToJs(s) {\n\t\treturn s.replace(/\\W+\\w/g, function (match) {\n\t\t\treturn match.slice(-1).toUpperCase();\n\t\t});\n\t};\n\tvar properties = rule.split(';').map(function (o) {\n\t\treturn o.split(':').map(function (x) {\n\t\t\treturn x && x.trim();\n\t\t});\n\t});\n\tfor (var i = properties, i = Array.isArray(i), i = 0, i = i ? i : i[Symbol.iterator]();;) {\n\t\tvar _ref3;\n\n\t\tif (i) {\n\t\t\tif (i >= i.length) break;\n\t\t\t_ref3 = i[i++];\n\t\t} else {\n\t\t\ti = i.next();\n\t\t\tif (i.done) break;\n\t\t\t_ref3 = i.value;\n\t\t}\n\n\t\tvar _ref2 = _ref3;\n\t\tvar property = _ref2[0];\n\t\tvar value = _ref2[1];\n\t\tstyle[cssToJs(property)] = value;\n\t}return style;\n}\n\n/** Remove a child node from its parent if attached.\n *\t@param {Element} node\t\tThe node to remove\n */\nfunction removeNode(node) {\n\tvar parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\n/** Set a named attribute on the given Node, with special behavior for some names and event handlers.\n *\tIf `value` is `null`, the attribute/handler will be removed.\n *\t@param {Element} node\tAn element to mutate\n *\t@param {string} name\tThe name/key to set, such as an event or attribute name\n *\t@param {any} old\tThe last value that was set for this name/node pair\n *\t@param {any} value\tAn attribute value, such as a function to be used as an event handler\n *\t@param {Boolean} isSvg\tAre we currently diffing inside an svg?\n *\t@private\n */\nfunction setAccessor(node, name, old, value, isSvg) {\n\tif (name === 'className') name = 'class';\n\n\tif (name === 'key') {\n\t\t// ignore\n\t} else if (name === 'ref') {\n\t\tapplyRef(old, null);\n\t\tapplyRef(value, node);\n\t} else if (name === 'class' && !isSvg) {\n\t\tnode.className = value || '';\n\t} else if (name === 'style') {\n\t\tif (options.isWeb) {\n\t\t\tif (!value || typeof value === 'string' || typeof old === 'string') {\n\t\t\t\tnode.style.cssText = value || '';\n\t\t\t}\n\t\t\tif (value && typeof value === 'object') {\n\t\t\t\tif (typeof old !== 'string') {\n\t\t\t\t\tfor (var i in old) {\n\t\t\t\t\t\tif (!(i in value)) node.style[i] = '';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (var i in value) {\n\t\t\t\t\tnode.style[i] = typeof value[i] === 'number' && IS_NON_DIMENSIONAL$1.test(i) === false ? value[i] + 'px' : value[i];\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tvar oldJson = old,\n\t\t\t currentJson = value;\n\t\t\tif (typeof old === 'string') {\n\t\t\t\toldJson = parseCSSText(old);\n\t\t\t}\n\t\t\tif (typeof value == 'string') {\n\t\t\t\tcurrentJson = parseCSSText(value);\n\t\t\t}\n\n\t\t\tvar result = {},\n\t\t\t changed = false;\n\n\t\t\tif (oldJson) {\n\t\t\t\tfor (var key in oldJson) {\n\t\t\t\t\tif (typeof currentJson == 'object' && !(key in currentJson)) {\n\t\t\t\t\t\tresult[key] = '';\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor (var ckey in currentJson) {\n\t\t\t\t\tif (currentJson[ckey] !== oldJson[ckey]) {\n\t\t\t\t\t\tresult[ckey] = currentJson[ckey];\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (changed) {\n\t\t\t\t\tnode.setStyles(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tnode.setStyles(currentJson);\n\t\t\t}\n\t\t}\n\t} else if (name === 'dangerouslySetInnerHTML') {\n\t\tif (value) node.innerHTML = value.__html || '';\n\t} else if (name[0] == 'o' && name[1] == 'n') {\n\t\tvar useCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tvar nameLower = name.toLowerCase();\n\t\tname = (nameLower in node ? nameLower : name).slice(2);\n\t\tif (value) {\n\t\t\tif (!old) {\n\t\t\t\tnode.addEventListener(name, eventProxy, useCapture);\n\t\t\t\tif (name == 'tap') {\n\t\t\t\t\tnode.addEventListener('touchstart', touchStart, useCapture);\n\t\t\t\t\tnode.addEventListener('touchend', touchEnd, useCapture);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tnode.removeEventListener(name, eventProxy, useCapture);\n\t\t\tif (name == 'tap') {\n\t\t\t\tnode.removeEventListener('touchstart', touchStart, useCapture);\n\t\t\t\tnode.removeEventListener('touchend', touchEnd, useCapture);\n\t\t\t}\n\t\t}\n(node._listeners || (node._listeners = {}))[name] = value;\n\t} else if (name !== 'list' && name !== 'tagName' &&\n\t// HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n\t// setAttribute\n\tname !== 'form' && name !== 'type' && name !== 'size' && name !== 'download' && name !== 'href' && !isSvg && name in node) {\n\t\tsetProperty(node, name, value == null ? '' : value);\n\t} else {\n\t\tvar ns = isSvg && name !== (name = name.replace(/^xlink:?/, ''));\n\t\tif (value == null || value === false) {\n\t\t\tif (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());else node.removeAttribute(name);\n\t\t} else if (typeof value !== 'function') {\n\t\t\tif (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);else node.setAttribute(name, value);\n\t\t}\n\t}\n}\n\n/** Attempt to set a DOM property to the given value.\n *\tIE & FF throw for certain property-value combinations.\n */\nfunction setProperty(node, name, value) {\n\ttry {\n\t\tnode[name] = value;\n\t} catch (e) {}\n}\n\n/** Proxy an event to hooked event handlers\n *\t@private\n */\nfunction eventProxy(e) {\n\treturn this._listeners[e.type](options.event && options.event(e) || e);\n}\n\nfunction touchStart(e) {\n\tthis.___touchX = e.touches[0].pageX;\n\tthis.___touchY = e.touches[0].pageY;\n\tthis.___scrollTop = document.body.scrollTop;\n}\n\nfunction touchEnd(e) {\n\tif (Math.abs(e.changedTouches[0].pageX - this.___touchX) < 30 && Math.abs(e.changedTouches[0].pageY - this.___touchY) < 30 && Math.abs(document.body.scrollTop - this.___scrollTop) < 30) {\n\t\tthis.dispatchEvent(new CustomEvent('tap', { detail: e }));\n\t}\n}\n\nvar styleId = 0;\n\nfunction getCtorName(ctor) {\n for (var i = 0, len = options.styleCache.length; i < len; i++) {\n var item = options.styleCache[i];\n\n if (item.ctor === ctor) {\n return item.attrName;\n }\n }\n\n var attrName = 's' + styleId;\n options.styleCache.push({ ctor: ctor, attrName: attrName });\n styleId++;\n\n return attrName;\n}\n\n// many thanks to https://github.com/thomaspark/scoper/\nfunction scoper(css, prefix) {\n prefix = '[' + prefix.toLowerCase() + ']';\n // https://www.w3.org/TR/css-syntax-3/#lexical\n css = css.replace(/\\/\\*[^*]*\\*+([^/][^*]*\\*+)*\\//g, '');\n // eslint-disable-next-line\n var re = new RegExp('([^\\r\\n,{}:]+)(:[^\\r\\n,{}]+)?(,(?=[^{}]*{)|\\s*{)', 'g');\n /**\n * Example:\n *\n * .classname::pesudo { color:red }\n *\n * g1 is normal selector `.classname`\n * g2 is pesudo class or pesudo element\n * g3 is the suffix\n */\n css = css.replace(re, function (g0, g1, g2, g3) {\n if (typeof g2 === 'undefined') {\n g2 = '';\n }\n\n /* eslint-ignore-next-line */\n if (g1.match(/^\\s*(@media|\\d+%?|@-webkit-keyframes|@keyframes|to|from|@font-face)/)) {\n return g1 + g2 + g3;\n }\n\n var appendClass = g1.replace(/(\\s*)$/, '') + prefix + g2;\n //let prependClass = prefix + ' ' + g1.trim() + g2;\n\n return appendClass + g3;\n //return appendClass + ',' + prependClass + g3;\n });\n\n return css;\n}\n\nfunction addStyle(cssText, id) {\n id = id.toLowerCase();\n var ele = document.getElementById(id);\n var head = document.getElementsByTagName('head')[0];\n if (ele && ele.parentNode === head) {\n head.removeChild(ele);\n }\n\n var someThingStyles = document.createElement('style');\n head.appendChild(someThingStyles);\n someThingStyles.setAttribute('type', 'text/css');\n someThingStyles.setAttribute('id', id);\n if (window.ActiveXObject) {\n someThingStyles.styleSheet.cssText = cssText;\n } else {\n someThingStyles.textContent = cssText;\n }\n}\n\nfunction addStyleWithoutId(cssText) {\n var head = document.getElementsByTagName('head')[0];\n var someThingStyles = document.createElement('style');\n head.appendChild(someThingStyles);\n someThingStyles.setAttribute('type', 'text/css');\n\n if (window.ActiveXObject) {\n someThingStyles.styleSheet.cssText = cssText;\n } else {\n someThingStyles.textContent = cssText;\n }\n}\n\nfunction addScopedAttrStatic(vdom, attr) {\n if (options.scopedStyle) {\n scopeVdom(attr, vdom);\n }\n}\n\nfunction addStyleToHead(style, attr) {\n if (options.scopedStyle) {\n if (!options.staticStyleMapping[attr]) {\n addStyle(scoper(style, attr), attr);\n options.staticStyleMapping[attr] = true;\n }\n } else if (!options.staticStyleMapping[attr]) {\n addStyleWithoutId(style);\n options.staticStyleMapping[attr] = true;\n }\n}\n\nfunction scopeVdom(attr, vdom) {\n if (typeof vdom === 'object') {\n vdom.attributes = vdom.attributes || {};\n vdom.attributes[attr] = '';\n vdom.css = vdom.css || {};\n vdom.css[attr] = '';\n vdom.children.forEach(function (child) {\n return scopeVdom(attr, child);\n });\n }\n}\n\nfunction scopeHost(vdom, css) {\n if (typeof vdom === 'object' && css) {\n vdom.attributes = vdom.attributes || {};\n for (var key in css) {\n vdom.attributes[key] = '';\n }\n }\n}\n\n/** Queue of components that have been mounted and are awaiting componentDidMount */\nvar mounts = [];\n\n/** Diff recursion count, used to track the end of the diff cycle. */\nvar diffLevel = 0;\n\n/** Global flag indicating if the diff is currently within an SVG */\nvar isSvgMode = false;\n\n/** Global flag indicating if the diff is performing hydration */\nvar hydrating = false;\n\n/** Invoke queued componentDidMount lifecycle methods */\nfunction flushMounts() {\n var c;\n while (c = mounts.pop()) {\n if (options.afterMount) options.afterMount(c);\n if (c.installed) c.installed();\n if (c.constructor.css || c.css) {\n addStyleToHead(c.constructor.css ? c.constructor.css : typeof c.css === 'function' ? c.css() : c.css, '_s' + getCtorName(c.constructor));\n }\n }\n}\n\n/** Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n *\t@param {Element} [dom=null]\t\tA DOM node to mutate into the shape of the `vnode`\n *\t@param {VNode} vnode\t\t\tA VNode (with descendants forming a tree) representing the desired DOM structure\n *\t@returns {Element} dom\t\t\tThe created/mutated element\n *\t@private\n */\nfunction diff(dom, vnode, store, mountAll, parent, componentRoot, updateSelf) {\n // diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\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 && !('__omiattr_' in dom);\n }\n var ret;\n\n if (isArray(vnode)) {\n vnode = {\n nodeName: 'span',\n children: vnode\n };\n } else if (vnode && vnode.nodeName === Fragment) {\n vnode.nodeName = 'span';\n }\n\n ret = idiff(dom, vnode, store, mountAll, componentRoot, updateSelf);\n // append the element if its a new parent\n if (parent && ret.parentNode !== parent) parent.appendChild(ret);\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 if (!componentRoot) flushMounts();\n }\n\n return ret;\n}\n\n/** Internals of `diff()`, separated to allow bypassing diffLevel / mount flushing. */\nfunction idiff(dom, vnode, store, mountAll, componentRoot, updateSelf) {\n var out = dom,\n prevSvgMode = isSvgMode;\n\n // empty values (null, undefined, booleans) render as empty Text nodes\n if (vnode == null || typeof vnode === 'boolean') vnode = '';\n\n // If the VNode represents a Component, perform a component diff:\n var vnodeName = vnode.nodeName;\n if (options.mapping[vnodeName]) {\n vnode.nodeName = options.mapping[vnodeName];\n return buildComponentFromVNode(dom, vnode, store, mountAll, updateSelf);\n }\n if (typeof vnodeName == 'function') {\n return buildComponentFromVNode(dom, vnode, store, mountAll, updateSelf);\n }\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 (dom && dom.splitText !== undefined && dom.parentNode && (!dom._component || componentRoot)) {\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 //ie8 error\n try {\n out['__omiattr_'] = true;\n } catch (e) {}\n\n return out;\n }\n\n // Tracks entering and exiting SVG namespace when descending through the tree.\n isSvgMode = vnodeName === 'svg' ? true : vnodeName === 'foreignObject' ? false : isSvgMode;\n\n // If there's no existing element or it's the wrong type, create a new one:\n vnodeName = String(vnodeName);\n if (!dom || !isNamedNode(dom, vnodeName)) {\n out = createNode(vnodeName, isSvgMode);\n\n if (dom) {\n // move children into the replacement node\n while (dom.firstChild) {\n out.appendChild(dom.firstChild);\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 var fc = out.firstChild,\n props = out['__omiattr_'],\n vchildren = vnode.children;\n\n if (props == null) {\n props = out['__omiattr_'] = {};\n for (var a = out.attributes, i = a.length; i--;) {\n props[a[i].name] = a[i].value;\n }\n }\n\n // Optimization: fast-path for elements containing a single TextNode:\n if (!hydrating && vchildren && vchildren.length === 1 && typeof vchildren[0] === 'string' && fc != null && fc.splitText !== undefined && fc.nextSibling == null) {\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 innerDiffNode(out, vchildren, store, mountAll, hydrating || props.dangerouslySetInnerHTML != null, updateSelf);\n }\n\n // Apply attributes/props from VNode to the DOM Element:\n diffAttributes(out, vnode.attributes, props);\n\n // restore previous SVG mode: (in case we're exiting an SVG namespace)\n isSvgMode = prevSvgMode;\n\n return out;\n}\n\n/** Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n *\t@param {Element} dom\t\t\tElement whose children should be compared & mutated\n *\t@param {Array} vchildren\t\tArray of VNodes to compare to `dom.childNodes`\n *\t@param {Object} store\t\t\tImplicitly descendant context object (from most recent `getChildContext()`)\n *\t@param {Boolean} mountAll\n *\t@param {Boolean} isHydrating\tIf `true`, consumes externally created elements similar to hydration\n */\nfunction innerDiffNode(dom, vchildren, store, mountAll, isHydrating, updateSelf) {\n var 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 (var i = 0; i < len; i++) {\n var _child = originalChildren[i],\n props = _child['__omiattr_'],\n key = vlen && props ? _child._component ? _child._component.__key : props.key : null;\n if (key != null) {\n keyedLen++;\n keyed[key] = _child;\n } else if (props || (_child.splitText !== undefined ? isHydrating ? _child.nodeValue.trim() : true : isHydrating)) {\n children[childrenLen++] = _child;\n }\n }\n }\n\n if (vlen !== 0) {\n for (var i = 0; i < vlen; i++) {\n vchild = vchildren[i];\n child = null;\n\n // attempt to find a node based on key matching\n var 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 (children[j] !== undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {\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 // morph the matched/found/created DOM child to match vchild (deep)\n child = idiff(child, vchild, store, mountAll, null, 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 (var i in keyed) {\n if (keyed[i] !== undefined) recollectNodeTree(keyed[i], false);\n }\n }\n\n // remove orphaned unkeyed children:\n while (min <= childrenLen) {\n if ((child = children[childrenLen--]) !== undefined) recollectNodeTree(child, false);\n }\n}\n\n/** Recursively recycle (or just unmount) a node and its descendants.\n *\t@param {Node} node\t\t\t\t\t\tDOM node to start unmount/removal from\n *\t@param {Boolean} [unmountOnly=false]\tIf `true`, only triggers unmount lifecycle, skips removal\n */\nfunction recollectNodeTree(node, unmountOnly) {\n var component = node._component;\n if (component) {\n // if node is owned by a Component, unmount that component (ends up recursing back here)\n unmountComponent(component);\n } else {\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['__omiattr_'] != null) applyRef(node['__omiattr_'].ref, null);\n\n if (unmountOnly === false || node['__omiattr_'] == null) {\n removeNode(node);\n }\n\n removeChildren(node);\n }\n}\n\n/** Recollect/unmount all children.\n *\t- we use .lastChild here because it causes less reflow than .firstChild\n *\t- it's also cheaper than accessing the .childNodes Live NodeList\n */\nfunction removeChildren(node) {\n node = node.lastChild;\n while (node) {\n var 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 *\t@param {Element} dom\t\tElement with attributes to diff `attrs` against\n *\t@param {Object} attrs\t\tThe desired end-state key-value attribute pairs\n *\t@param {Object} old\t\t\tCurrent/previous attributes (from previous VNode or element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old) {\n var name;\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(dom, name, old[name], old[name] = undefined, isSvgMode);\n }\n }\n\n // add new & update changed attributes\n for (name in attrs) {\n if (name !== 'children' && name !== 'innerHTML' && (!(name in old) || attrs[name] !== (name === 'value' || name === 'checked' ? dom[name] : old[name]))) {\n setAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n }\n }\n}\n\n/** Retains a pool of Components for re-use, keyed on component name.\n *\tNote: since component names are not unique or even necessarily available, these are primarily a form of sharding.\n *\t@private\n */\nvar components = {};\n\n/** Reclaim a component for later re-use by the recycler. */\nfunction collectComponent(component) {\n var name = component.constructor.name;(components[name] || (components[name] = [])).push(component);\n}\n\n/** Create a component. Normalizes differences between PFC's and classful Components. */\nfunction createComponent(Ctor, props, store, vnode) {\n var list = components[Ctor.name],\n inst;\n\n if (Ctor.prototype && Ctor.prototype.render) {\n inst = new Ctor(props, store);\n Component.call(inst, props, store);\n } else {\n inst = new Component(props, store);\n inst.constructor = Ctor;\n inst.render = doRender;\n }\n vnode && (inst.scopedCssAttr = vnode.css);\n\n if (inst.store) {\n if (inst.use) {\n var use = typeof inst.use === 'function' ? inst.use() : inst.use;\n\n if (options.isMultiStore) {\n var _updatePath = {};\n var using = {};\n for (var storeName in use) {\n _updatePath[storeName] = {};\n using[storeName] = {};\n getPath(use[storeName], _updatePath, storeName);\n getUse(inst.store[storeName].data, use[storeName], using, storeName);\n inst.store[storeName].instances.push(inst);\n }\n inst.using = using;\n inst._updatePath = _updatePath;\n } else {\n inst._updatePath = getPath(use);\n inst.using = getUse(inst.store.data, use);\n inst.store.instances.push(inst);\n }\n }\n\n if (inst.useSelf) {\n var _use = typeof inst.useSelf === 'function' ? inst.useSelf() : inst.useSelf;\n\n if (options.isMultiStore) {\n var _updatePath2 = {};\n var _using = {};\n for (var _storeName in _use) {\n getPath(_use[_storeName], _updatePath2, _storeName);\n getUse(inst.store[_storeName].data, _use[_storeName], _using, _storeName);\n inst.store[_storeName].updateSelfInstances.push(inst);\n }\n inst.usingSelf = _using;\n inst._updateSelfPath = _updatePath2;\n } else {\n inst._updateSelfPath = getPath(_use);\n inst.usingSelf = getUse(inst.store.data, _use);\n inst.store.updateSelfInstances.push(inst);\n }\n }\n\n if (inst.compute) {\n for (var key in inst.compute) {\n inst.computed[key] = inst.compute[key].call(options.isMultiStore ? inst.store : inst.store.data);\n }\n }\n }\n\n if (list) {\n for (var i = list.length; i--;) {\n if (list[i].constructor === Ctor) {\n inst.nextBase = list[i].nextBase;\n list.splice(i, 1);\n break;\n }\n }\n }\n return inst;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, store) {\n return this.constructor(props, store);\n}\n\n/** Set a component's `props` (generally derived from JSX attributes).\n *\t@param {Object} props\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.renderSync=false]\tIf `true` and {@link options.syncComponentUpdates} is `true`, triggers synchronous rendering.\n *\t@param {boolean} [opts.render=true]\t\t\tIf `false`, no render will be triggered.\n */\nfunction setComponentProps(component, props, opts, store, mountAll) {\n if (component._disable) return;\n component._disable = true;\n\n if (component.__ref = props.ref) delete props.ref;\n if (component.__key = props.key) delete props.key;\n\n if (!component.base || mountAll) {\n if (component.beforeInstall) component.beforeInstall();\n if (component.install) component.install();\n }\n\n if (!component.prevProps) component.prevProps = component.props;\n component.props = props;\n\n component._disable = false;\n\n if (opts !== 0) {\n if (opts === 1 || options.syncComponentUpdates !== false || !component.base) {\n renderComponent(component, 1, mountAll);\n } else {\n enqueueRender(component);\n }\n }\n\n applyRef(component.__ref, component);\n}\n\n/** Render a Component, triggering necessary lifecycle events and taking High-Order Components into account.\n *\t@param {Component} component\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.build=false]\t\tIf `true`, component will build and store a DOM node if not already associated with one.\n *\t@private\n */\nfunction renderComponent(component, opts, mountAll, isChild, updateSelf) {\n if (component._disable) return;\n\n var props = component.props,\n store = component.store,\n previousProps = component.prevProps || props,\n isUpdate = component.base,\n nextBase = component.nextBase,\n initialBase = isUpdate || nextBase,\n initialChildComponent = component._component,\n skip = false,\n rendered,\n inst,\n cbase;\n\n // if updating\n if (isUpdate) {\n component.props = previousProps;\n\n var receiveResult = true;\n if (component.receiveProps) {\n receiveResult = component.receiveProps(props, previousProps);\n }\n if (receiveResult !== false) {\n skip = false;\n if (component.beforeUpdate) {\n component.beforeUpdate(props, store);\n }\n } else {\n skip = true;\n }\n component.props = props;\n }\n\n component.prevProps = component.nextBase = null;\n\n if (!skip) {\n component.beforeRender && component.beforeRender();\n rendered = component.render(props, store);\n\n //don't rerender\n if (component.constructor.css || component.css) {\n addScopedAttrStatic(rendered, '_s' + getCtorName(component.constructor));\n }\n\n scopeHost(rendered, component.scopedCssAttr);\n\n var childComponent = rendered && rendered.nodeName,\n toUnmount,\n base,\n ctor = options.mapping[childComponent];\n\n if (ctor) {\n // set up high order component link\n\n var childProps = getNodeProps(rendered);\n inst = initialChildComponent;\n\n if (inst && inst.constructor === ctor && childProps.key == inst.__key) {\n setComponentProps(inst, childProps, 1, store, false);\n } else {\n toUnmount = inst;\n\n component._component = inst = createComponent(ctor, childProps, store);\n inst.nextBase = inst.nextBase || nextBase;\n inst._parentComponent = component;\n setComponentProps(inst, childProps, 0, store, false);\n renderComponent(inst, 1, mountAll, true);\n }\n\n base = inst.base;\n } else {\n cbase = initialBase;\n\n // destroy high order component link\n toUnmount = initialChildComponent;\n if (toUnmount) {\n cbase = component._component = null;\n }\n\n if (initialBase || opts === 1) {\n if (cbase) cbase._component = null;\n base = diff(cbase, rendered, store, mountAll || !isUpdate, initialBase && initialBase.parentNode, true, updateSelf);\n }\n }\n\n if (initialBase && base !== initialBase && inst !== initialChildComponent) {\n var baseParent = initialBase.parentNode;\n if (baseParent && base !== baseParent) {\n baseParent.replaceChild(base, initialBase);\n\n if (!toUnmount) {\n initialBase._component = null;\n recollectNodeTree(initialBase, false);\n }\n }\n }\n\n if (toUnmount) {\n unmountComponent(toUnmount);\n }\n\n component.base = base;\n if (base && !isChild) {\n var componentRef = component,\n t = component;\n while (t = t._parentComponent) {\n(componentRef = t).base = base;\n }\n base._component = componentRef;\n base._componentConstructor = componentRef.constructor;\n }\n }\n\n if (!isUpdate || mountAll) {\n mounts.unshift(component);\n } else if (!skip) {\n // Ensure that pending componentDidMount() hooks of child components\n // are called before the componentDidUpdate() hook in the parent.\n // Note: disabled as it causes duplicate hooks, see https://github.com/developit/preact/issues/750\n // flushMounts();\n\n if (component.afterUpdate) {\n //deprecated\n component.afterUpdate(previousProps, store);\n }\n if (component.updated) {\n component.updated(previousProps, store);\n }\n if (options.afterUpdate) options.afterUpdate(component);\n }\n\n if (component._renderCallbacks != null) {\n while (component._renderCallbacks.length) {\n component._renderCallbacks.pop().call(component);\n }\n }\n\n if (!diffLevel && !isChild) flushMounts();\n}\n\n/** Apply the Component referenced by a VNode to the DOM.\n *\t@param {Element} dom\tThe DOM node to mutate\n *\t@param {VNode} vnode\tA Component-referencing VNode\n *\t@returns {Element} dom\tThe created/mutated element\n *\t@private\n */\nfunction buildComponentFromVNode(dom, vnode, store, mountAll, updateSelf) {\n var c = dom && dom._component,\n originalComponent = c,\n oldDom = dom,\n isDirectOwner = c && dom._componentConstructor === vnode.nodeName,\n isOwner = isDirectOwner,\n props = getNodeProps(vnode);\n while (c && !isOwner && (c = c._parentComponent)) {\n isOwner = c.constructor === vnode.nodeName;\n }\n\n if (c && isOwner && (!mountAll || c._component)) {\n if (!updateSelf) {\n setComponentProps(c, props, 3, store, mountAll);\n }\n dom = c.base;\n } else {\n if (originalComponent && !isDirectOwner) {\n unmountComponent(originalComponent);\n dom = oldDom = null;\n }\n\n c = createComponent(vnode.nodeName, props, store, vnode);\n if (dom && !c.nextBase) {\n c.nextBase = dom;\n // passing dom/oldDom as nextBase will recycle it if unused, so bypass recycling on L229:\n oldDom = null;\n }\n setComponentProps(c, props, 1, store, mountAll);\n dom = c.base;\n\n if (oldDom && dom !== oldDom) {\n oldDom._component = null;\n recollectNodeTree(oldDom, false);\n }\n }\n\n return dom;\n}\n\n/** Remove a component from the DOM and recycle it.\n *\t@param {Component} component\tThe Component instance to unmount\n *\t@private\n */\nfunction unmountComponent(component) {\n if (options.beforeUnmount) options.beforeUnmount(component);\n\n var base = component.base;\n\n component._disable = true;\n\n if (component.uninstall) component.uninstall();\n\n if (component.store) {\n if (options.isMultiStore) {\n for (var key in component.store) {\n var current = component.store[key];\n current.instances && removeItem(component, current.instances);\n current.updateSelfInstances && removeItem(component, current.updateSelfInstances);\n }\n } else {\n component.store.instances && removeItem(component, component.store.instances);\n component.store.updateSelfInstances && removeItem(component, component.store.updateSelfInstances);\n }\n }\n\n component.base = null;\n\n // recursively tear down & recollect high-order component children:\n var inner = component._component;\n if (inner) {\n unmountComponent(inner);\n } else if (base) {\n if (base['__omiattr_'] != null) applyRef(base['__omiattr_'].ref, null);\n\n component.nextBase = base;\n\n removeNode(base);\n collectComponent(component);\n\n removeChildren(base);\n }\n\n applyRef(component.__ref, null);\n}\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar id = 0;\n\nvar Component = function () {\n function Component(props, store) {\n _classCallCheck(this, Component);\n\n this.props = assign({}, this.constructor.defaultProps, props);\n this.elementId = id++;\n\n this._preCss = null;\n\n this.store = store;\n this.computed = {};\n }\n\n Component.prototype.update = function update(ignoreAttrs, updateSelf, callback) {\n if (this._willUpdate) return;\n this._willUpdate = true;\n if (callback) (this._renderCallbacks = this._renderCallbacks || []).push(callback);\n renderComponent(this, 2);\n if (options.componentChange) options.componentChange(this, this.base);\n this._willUpdate = false;\n };\n\n Component.prototype.updateSelf = function updateSelf() {\n if (this._willUpdateSelf) return;\n this._willUpdateSelf = true;\n renderComponent(this, 2, null, null, true);\n this._willUpdateSelf = false;\n };\n\n Component.prototype.fire = function fire(type, data) {\n var _this = this;\n\n Object.keys(this.props).every(function (key) {\n if ('on' + type.toLowerCase() === key.toLowerCase()) {\n _this.props[key]({ detail: data });\n return false;\n }\n return true;\n });\n };\n\n Component.prototype.render = function render() {};\n\n return Component;\n}();\n\nComponent.is = 'WeElement';\n\n/*\n * obaa 2.1.0\n * By dntzhang\n * Github: https://github.com/Tencent/omi/tree/master/packages/obaa\n * MIT Licensed.\n */\n\n// $_r_: root\n// $_c_: prop change callback\n// $_p_: path\n\nfunction obaa(target, arr, callback) {\n\n\tvar eventPropArr = [];\n\tif (isArray$1(target)) {\n\t\tif (target.length === 0) {\n\t\t\ttarget.$_o_ = {\n\t\t\t\t$_r_: target,\n\t\t\t\t$_p_: '#'\n\t\t\t};\n\t\t}\n\t\tmock(target, target);\n\t}\n\tif (target && typeof target === 'object' && Object.keys(target).length === 0) {\n\t\ttrack(target);\n\t\ttarget.$_o_.$_r_ = target;\n\t}\n\tfor (var prop in target) {\n\t\tif (target.hasOwnProperty(prop)) {\n\t\t\tif (callback) {\n\t\t\t\tif (isArray$1(arr) && isInArray(arr, prop)) {\n\t\t\t\t\teventPropArr.push(prop);\n\t\t\t\t\twatch(target, prop, null, target);\n\t\t\t\t} else if (isString(arr) && prop == arr) {\n\t\t\t\t\teventPropArr.push(prop);\n\t\t\t\t\twatch(target, prop, null, target);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\teventPropArr.push(prop);\n\t\t\t\twatch(target, prop, null, target);\n\t\t\t}\n\t\t}\n\t}\n\tif (!target.$_c_) {\n\t\ttarget.$_c_ = [];\n\t}\n\tvar propChanged = callback ? callback : arr;\n\ttarget.$_c_.push({\n\t\tall: !callback,\n\t\tpropChanged: propChanged,\n\t\teventPropArr: eventPropArr\n\t});\n}\n\nvar triggerStr = ['concat', 'copyWithin', 'fill', 'pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift', 'size'].join(',');\n\nvar methods = ['concat', 'copyWithin', 'entries', 'every', 'fill', 'filter', 'find', 'findIndex', 'forEach', 'includes', 'indexOf', 'join', 'keys', 'lastIndexOf', 'map', 'pop', 'push', 'reduce', 'reduceRight', 'reverse', 'shift', 'slice', 'some', 'sort', 'splice', 'toLocaleString', 'toString', 'unshift', 'values', 'size'];\n\nfunction mock(target, root) {\n\tmethods.forEach(function (item) {\n\t\ttarget[item] = function () {\n\t\t\tvar old = Array.prototype.slice.call(this, 0);\n\t\t\tvar result = Array.prototype[item].apply(this, Array.prototype.slice.call(arguments));\n\t\t\tif (new RegExp('\\\\b' + item + '\\\\b').test(triggerStr)) {\n\t\t\t\tfor (var cprop in this) {\n\t\t\t\t\tif (this.hasOwnProperty(cprop) && !isFunction(this[cprop])) {\n\t\t\t\t\t\twatch(this, cprop, this.$_o_.$_p_, root);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t//todo\n\t\t\t\tonPropertyChanged('Array-' + item, this, old, this, this.$_o_.$_p_, root);\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\t\ttarget['pure' + item.substring(0, 1).toUpperCase() + item.substring(1)] = function () {\n\t\t\treturn Array.prototype[item].apply(this, Array.prototype.slice.call(arguments));\n\t\t};\n\t});\n}\n\nfunction watch(target, prop, path, root) {\n\tif (prop === '$_o_') return;\n\tif (isFunction(target[prop])) return;\n\tif (!target.$_o_) target.$_o_ = {\n\t\t$_r_: root\n\t};\n\tif (path !== undefined && path !== null) {\n\t\ttarget.$_o_.$_p_ = path;\n\t} else {\n\t\ttarget.$_o_.$_p_ = '#';\n\t}\n\n\tvar currentValue = target.$_o_[prop] = target[prop];\n\tObject.defineProperty(target, prop, {\n\t\tget: function get() {\n\t\t\treturn this.$_o_[prop];\n\t\t},\n\t\tset: function set(value) {\n\t\t\tvar old = this.$_o_[prop];\n\t\t\tthis.$_o_[prop] = value;\n\t\t\tonPropertyChanged(prop, value, old, this, target.$_o_.$_p_, root);\n\t\t},\n\t\tconfigurable: true,\n\t\tenumerable: true\n\t});\n\tif (typeof currentValue == 'object') {\n\t\tif (isArray$1(currentValue)) {\n\t\t\tmock(currentValue, root);\n\t\t\tif (currentValue.length === 0) {\n\t\t\t\ttrack(currentValue, prop, path);\n\t\t\t}\n\t\t}\n\t\tif (currentValue && Object.keys(currentValue).length === 0) {\n\t\t\ttrack(currentValue, prop, path);\n\t\t}\n\t\tfor (var cprop in currentValue) {\n\t\t\tif (currentValue.hasOwnProperty(cprop)) {\n\t\t\t\twatch(currentValue, cprop, target.$_o_.$_p_ + '-' + prop, root);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction track(obj, prop, path) {\n\tif (obj.$_o_) {\n\t\treturn;\n\t}\n\tobj.$_o_ = {};\n\tif (path !== undefined && path !== null) {\n\t\tobj.$_o_.$_p_ = path + '-' + prop;\n\t} else {\n\t\tif (prop !== undefined && prop !== null) {\n\t\t\tobj.$_o_.$_p_ = '#' + '-' + prop;\n\t\t} else {\n\t\t\tobj.$_o_.$_p_ = '#';\n\t\t}\n\t}\n}\n\nfunction onPropertyChanged(prop, value, oldValue, target, path, root) {\n\tif (value !== oldValue && !(nan(value) && nan(oldValue)) && root.$_c_) {\n\t\tvar rootName = getRootName(prop, path);\n\t\tfor (var i = 0, len = root.$_c_.length; i < len; i++) {\n\t\t\tvar handler = root.$_c_[i];\n\t\t\tif (handler.all || isInArray(handler.eventPropArr, rootName) || rootName.indexOf('Array-') === 0) {\n\t\t\t\thandler.propChanged.call(target, prop, value, oldValue, path);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (prop.indexOf('Array-') !== 0 && typeof value === 'object') {\n\t\twatch(target, prop, target.$_o_.$_p_, root);\n\t}\n}\n\nfunction isFunction(obj) {\n\treturn Object.prototype.toString.call(obj) == '[object Function]';\n}\n\nfunction nan(value) {\n\treturn typeof value === \"number\" && isNaN(value);\n}\n\nfunction isArray$1(obj) {\n\treturn Object.prototype.toString.call(obj) === '[object Array]';\n}\n\nfunction isString(obj) {\n\treturn typeof obj === 'string';\n}\n\nfunction isInArray(arr, item) {\n\tfor (var i = arr.length; --i > -1;) {\n\t\tif (item === arr[i]) return true;\n\t}\n\treturn false;\n}\n\nfunction getRootName(prop, path) {\n\tif (path === '#') {\n\t\treturn prop;\n\t}\n\treturn path.split('-')[1];\n}\n\nobaa.add = function (obj, prop) {\n\twatch(obj, prop, obj.$_o_.$_p_, obj.$_o_.$_r_);\n};\n\nobaa.set = function (obj, prop, value) {\n\tif (obj[prop] === undefined) {\n\t\twatch(obj, prop, obj.$_o_.$_p_, obj.$_o_.$_r_);\n\t}\n\tobj[prop] = value;\n};\n\nArray.prototype.size = function (length) {\n\tthis.length = length;\n};\n\n/** Render JSX into a `parent` Element.\n *\t@param {VNode} vnode\t\tA (JSX) VNode to render\n *\t@param {Element} parent\t\tDOM element to render into\n *\t@param {object} [store]\n *\t@public\n */\nfunction render(vnode, parent, store, empty, merge) {\n parent = typeof parent === 'string' ? document.querySelector(parent) : parent;\n\n if (store) {\n if (store.data) {\n obsStore(store);\n } else {\n options.isMultiStore = true;\n for (var key in store) {\n if (store[key].data) {\n obsStore(store[key], key);\n }\n }\n }\n }\n\n if (empty) {\n while (parent.firstChild) {\n parent.removeChild(parent.firstChild);\n }\n }\n\n if (merge) {\n merge = typeof merge === 'string' ? document.querySelector(merge) : merge;\n }\n\n return diff(merge, vnode, store, false, parent, false);\n}\n\nfunction obsStore(store, storeName) {\n\n store.instances = [];\n store.updateSelfInstances = [];\n extendStoreUpate(store, storeName);\n\n obaa(store.data, function (prop, val, old, path) {\n var patchs = {};\n var key = fixPath(path + '-' + prop);\n patchs[key] = true;\n store.update(patchs);\n });\n}\n\nfunction merge(vnode, merge, store) {\n obsStore(store);\n\n merge = typeof merge === 'string' ? document.querySelector(merge) : merge;\n\n return diff(merge, vnode, store);\n}\n\nfunction extendStoreUpate(store, key) {\n store.update = function (patch) {\n if (Object.keys(patch).length > 0) {\n this.instances.forEach(function (instance) {\n compute(instance, key);\n if (key) {\n if (instance._updatePath && instance._updatePath[key] && needUpdate(patch, instance._updatePath[key])) {\n if (instance.use) {\n getUse(store.data, (typeof instance.use === 'function' ? instance.use() : instance.use)[key], instance.using, key);\n }\n\n instance.update();\n }\n } else {\n if (instance._updatePath && needUpdate(patch, instance._updatePath)) {\n if (instance.use) {\n instance.using = getUse(store.data, typeof instance.use === 'function' ? instance.use() : instance.use);\n }\n instance.update();\n }\n }\n });\n\n this.updateSelfInstances.forEach(function (instance) {\n compute(instance, key);\n if (key) {\n if (instance._updateSelfPath && instance._updateSelfPath[key] && needUpdate(patch, instance._updateSelfPath[key])) {\n if (instance.useSelf) {\n getUse(store.data, (typeof instance.useSelf === 'function' ? instance.useSelf() : instance.useSelf)[key], instance.usingSelf, key);\n }\n\n instance.updateSelf();\n }\n } else {\n if (instance._updateSelfPath && needUpdate(patch, instance._updateSelfPath)) {\n instance.usingSelf = getUse(store.data, typeof instance.useSelf === 'function' ? instance.useSelf() : instance.useSelf);\n instance.updateSelf();\n }\n }\n });\n\n this.onChange && this.onChange(patch);\n }\n };\n}\n\nfunction compute(instance, isMultiStore) {\n if (instance.compute) {\n for (var ck in instance.compute) {\n instance.computed[ck] = instance.compute[ck].call(isMultiStore ? instance.store : instance.store.data);\n }\n }\n}\n\nfunction needUpdate(diffResult, updatePath) {\n for (var keyA in diffResult) {\n if (updatePath[keyA]) {\n return true;\n }\n for (var keyB in updatePath) {\n if (includePath(keyA, keyB)) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction includePath(pathA, pathB) {\n if (pathA.indexOf(pathB) === 0) {\n var next = pathA.substr(pathB.length, 1);\n if (next === '[' || next === '.') {\n return true;\n }\n }\n return false;\n}\n\nfunction fixPath(path) {\n var mpPath = '';\n var arr = path.replace('#-', '').split('-');\n arr.forEach(function (item, index) {\n if (index) {\n if (isNaN(Number(item))) {\n mpPath += '.' + item;\n } else {\n mpPath += '[' + item + ']';\n }\n } else {\n mpPath += item;\n }\n });\n return mpPath;\n}\n\nfunction _classCallCheck$1(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar storeHelpers = ['use', 'useSelf'];\n\nfunction define(name, ctor, config) {\n\tif (ctor.is === 'WeElement') {\n\t\toptions.mapping[name] = ctor;\n\t} else {\n\n\t\tif (typeof config === 'string') {\n\t\t\tconfig = { css: config };\n\t\t} else {\n\t\t\tconfig = config || {};\n\t\t}\n\n\t\tvar Comp = function (_Component) {\n\t\t\t_inherits(Comp, _Component);\n\n\t\t\tfunction Comp() {\n\t\t\t\tvar _temp, _this, _ret;\n\n\t\t\t\t_classCallCheck$1(this, Comp);\n\n\t\t\t\tfor (var _len = arguments.length, args = Array(_len), key = 0; key < _len; key++) {\n\t\t\t\t\targs[key] = arguments[key];\n\t\t\t\t}\n\n\t\t\t\treturn _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.compute = config.compute, _temp), _possibleConstructorReturn(_this, _ret);\n\t\t\t}\n\n\t\t\tComp.prototype.render = function render() {\n\t\t\t\treturn ctor.call(this, this);\n\t\t\t};\n\n\t\t\treturn Comp;\n\t\t}(Component);\n\n\t\tComp.css = config.css;\n\t\tComp.propTypes = config.propTypes;\n\t\tComp.defaultProps = config.defaultProps;\n\n\t\tvar _loop = function _loop(key) {\n\t\t\tif (typeof config[key] === 'function') {\n\t\t\t\tComp.prototype[key] = function () {\n\t\t\t\t\treturn config[key].apply(this, arguments);\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\n\t\tfor (var key in config) {\n\t\t\t_loop(key);\n\t\t}\n\n\t\tstoreHelpers.forEach(function (func) {\n\t\t\tif (config[func] && config[func] !== 'function') {\n\t\t\t\tComp.prototype[func] = function () {\n\t\t\t\t\treturn config[func];\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\n\t\toptions.mapping[name] = Comp;\n\t}\n}\n\nfunction rpx(str) {\n return str.replace(/([1-9]\\d*|0)(\\.\\d*)*rpx/g, function (a, b) {\n return window.innerWidth * Number(b) / 750 + 'px';\n });\n}\n\nfunction tag(name) {\n return function (target) {\n define(name, target);\n };\n}\n\n/**\n * classNames based on https://github.com/JedWatson/classnames\n * by Jed Watson\n * Licensed under the MIT License\n * https://github.com/JedWatson/classnames/blob/master/LICENSE\n * modified by dntzhang\n */\n\nvar hasOwn = {}.hasOwnProperty;\n\nfunction 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\nfunction extractClass() {\n var _Array$prototype$slic = Array.prototype.slice.call(arguments, 0),\n props = _Array$prototype$slic[0],\n args = _Array$prototype$slic.slice(1);\n\n if (props) {\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 }\n if (args.length > 0) {\n return { 'class': classNames.apply(null, args) };\n }\n}\n\nfunction getHost(component) {\n var base = component.base;\n if (base) {\n while (base.parentNode) {\n if (base.parentNode._component) {\n return base.parentNode._component;\n } else {\n base = base.parentNode;\n }\n }\n }\n}\n\n/**\n * preact-render-to-string based on preact-render-to-string\n * by Jason Miller\n * Licensed under the MIT License\n * https://github.com/developit/preact-render-to-string\n *\n * modified by dntzhang\n */\n\nvar encodeEntities = function encodeEntities(s) {\n return String(s).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"');\n};\n\nvar indent = function indent(s, char) {\n return String(s).replace(/(\\n+)/g, '$1' + (char || '\\t'));\n};\n\nvar mapping$1 = options.mapping;\n\nvar VOID_ELEMENTS = /^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/;\n\nvar isLargeString = function isLargeString(s, length, ignoreLines) {\n return String(s).length > (length || 40) || !ignoreLines && String(s).indexOf('\\n') !== -1 || String(s).indexOf('<') !== -1;\n};\n\nvar JS_TO_CSS = {};\n\n// Convert an Object style to a CSSText string\nfunction styleObjToCss(s) {\n var str = '';\n for (var prop in s) {\n var val = s[prop];\n if (val != null) {\n if (str) str += ' ';\n // str += jsToCss(prop);\n str += JS_TO_CSS[prop] || (JS_TO_CSS[prop] = prop.replace(/([A-Z])/g, '-$1').toLowerCase());\n str += ': ';\n str += val;\n if (typeof val === 'number' && IS_NON_DIMENSIONAL.test(prop) === false) {\n str += 'px';\n }\n str += ';';\n }\n }\n return str || undefined;\n}\n\nfunction renderToString(vnode, opts, store, isSvgMode) {\n store = store || {};\n opts = Object.assign({\n scopedCSS: true\n }, opts);\n var css = {};\n var html = _renderToString(vnode, opts, store, isSvgMode, css);\n return {\n css: Object.values(css),\n html: html\n };\n}\n\n/** The default export is an alias of `render()`. */\nfunction _renderToString(vnode, opts, store, isSvgMode, css) {\n if (vnode == null || typeof vnode === 'boolean') {\n return '';\n }\n\n var nodeName = vnode.nodeName,\n attributes = vnode.attributes,\n isComponent = false;\n\n var pretty = true && opts.pretty,\n indentChar = pretty && typeof pretty === 'string' ? pretty : '\\t';\n\n // #text nodes\n if (typeof vnode !== 'object' && !nodeName) {\n return encodeEntities(vnode);\n }\n\n // components\n var ctor = mapping$1[nodeName];\n if (ctor) {\n isComponent = true;\n\n var props = getNodeProps$1(vnode),\n rendered;\n // class-based components\n var c = new ctor(props, store);\n // turn off stateful re-rendering:\n c._disable = c.__x = true;\n c.props = props;\n c.store = store;\n if (c.install) c.install();\n if (c.beforeRender) c.beforeRender();\n rendered = c.render(c.props, c.store);\n\n if (opts.scopedCSS) {\n\n if (c.constructor.css || c.css) {\n\n var cssStr = c.constructor.css ? c.constructor.css : typeof c.css === 'function' ? c.css() : c.css;\n var cssAttr = '_s' + getCtorName(c.constructor);\n css[cssAttr] = {\n id: cssAttr,\n css: scoper(cssStr, cssAttr)\n };\n addScopedAttrStatic(rendered, cssAttr);\n }\n\n c.scopedCSSAttr = vnode.css;\n scopeHost(rendered, c.scopedCSSAttr);\n }\n\n return _renderToString(rendered, opts, store, false, css);\n }\n\n // render JSX to HTML\n var s = '',\n html;\n\n if (attributes) {\n var attrs = Object.keys(attributes);\n\n // allow sorting lexicographically for more determinism (useful for tests, such as via preact-jsx-chai)\n if (opts && opts.sortAttributes === true) attrs.sort();\n\n for (var i = 0; i < attrs.length; i++) {\n var name = attrs[i],\n v = attributes[name];\n if (name === 'children') continue;\n\n if (name.match(/[\\s\\n\\\\/='\"\\0<>]/)) continue;\n\n if (!(opts && opts.allAttributes) && (name === 'key' || name === 'ref')) continue;\n\n if (name === 'className') {\n if (attributes['class']) continue;\n name = 'class';\n } else if (isSvgMode && name.match(/^xlink:?./)) {\n name = name.toLowerCase().replace(/^xlink:?/, 'xlink:');\n }\n\n if (name === 'style' && v && typeof v === 'object') {\n v = styleObjToCss(v);\n }\n\n var hooked = opts.attributeHook && opts.attributeHook(name, v, store, opts, isComponent);\n if (hooked || hooked === '') {\n s += hooked;\n continue;\n }\n\n if (name === 'dangerouslySetInnerHTML') {\n html = v && v.__html;\n } else if ((v || v === 0 || v === '') && typeof v !== 'function') {\n if (v === true || v === '') {\n v = name;\n // in non-xml mode, allow boolean attributes\n if (!opts || !opts.xml) {\n s += ' ' + name;\n continue;\n }\n }\n s += ' ' + name + '=\"' + encodeEntities(v) + '\"';\n }\n }\n }\n\n // account for >1 multiline attribute\n if (pretty) {\n var sub = s.replace(/^\\n\\s*/, ' ');\n if (sub !== s && !~sub.indexOf('\\n')) s = sub;else if (pretty && ~s.indexOf('\\n')) s += '\\n';\n }\n\n s = '<' + nodeName + s + '>';\n if (String(nodeName).match(/[\\s\\n\\\\/='\"\\0<>]/)) throw s;\n\n var isVoid = String(nodeName).match(VOID_ELEMENTS);\n if (isVoid) s = s.replace(/>$/, ' />');\n\n var pieces = [];\n if (html) {\n // if multiline, indent.\n if (pretty && isLargeString(html)) {\n html = '\\n' + indentChar + indent(html, indentChar);\n }\n s += html;\n } else if (vnode.children) {\n var hasLarge = pretty && ~s.indexOf('\\n');\n for (var i = 0; i < vnode.children.length; i++) {\n var child = vnode.children[i];\n if (child != null && child !== false) {\n var childSvgMode = nodeName === 'svg' ? true : nodeName === 'foreignObject' ? false : isSvgMode,\n ret = _renderToString(child, opts, store, childSvgMode, css);\n if (pretty && !hasLarge && isLargeString(ret)) hasLarge = true;\n if (ret) pieces.push(ret);\n }\n }\n if (pretty && hasLarge) {\n for (var i = pieces.length; i--;) {\n pieces[i] = '\\n' + indentChar + indent(pieces[i], indentChar);\n }\n }\n }\n\n if (pieces.length) {\n s += pieces.join('');\n } else if (opts && opts.xml) {\n return s.substring(0, s.length - 1) + ' />';\n }\n\n if (!isVoid) {\n if (pretty && ~s.indexOf('\\n')) s += '\\n';\n s += '';\n }\n\n return s;\n}\n\nfunction assign$1(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }return obj;\n}\n\nfunction getNodeProps$1(vnode) {\n var props = assign$1({}, vnode.attributes);\n props.children = vnode.children;\n\n var defaultProps = vnode.nodeName.defaultProps;\n if (defaultProps !== undefined) {\n for (var i in defaultProps) {\n if (props[i] === undefined) {\n props[i] = defaultProps[i];\n }\n }\n }\n\n return props;\n}\n\nh.f = Fragment;\n\nvar WeElement = Component;\nvar defineElement = define;\nfunction createRef() {\n\treturn {};\n}\n\noptions.root.Omi = {\n\th: h,\n\tcreateElement: h,\n\tcloneElement: cloneElement,\n\tcreateRef: createRef,\n\tComponent: Component,\n\trender: render,\n\trerender: rerender,\n\toptions: options,\n\tWeElement: WeElement,\n\tdefine: define,\n\trpx: rpx,\n\tdefineElement: defineElement,\n\tclassNames: classNames,\n\textractClass: extractClass,\n\tgetHost: getHost,\n\trenderToString: renderToString,\n\ttag: tag,\n\tmerge: merge,\n\tobaa: obaa\n};\noptions.root.omi = options.root.Omi;\noptions.root.Omi.version = 'omio-2.8.3';\n\nvar omi = {\n\th: h,\n\tcreateElement: h,\n\tcloneElement: cloneElement,\n\tcreateRef: createRef,\n\tComponent: Component,\n\trender: render,\n\trerender: rerender,\n\toptions: options,\n\tWeElement: WeElement,\n\tdefine: define,\n\trpx: rpx,\n\tdefineElement: defineElement,\n\tclassNames: classNames,\n\textractClass: extractClass,\n\tgetHost: getHost,\n\trenderToString: renderToString,\n\ttag: tag,\n\tmerge: merge,\n\tobaa: obaa\n};\n\nexport default omi;\nexport { h, h as createElement, cloneElement, createRef, Component, render, rerender, options, WeElement, define, rpx, defineElement, classNames, extractClass, getHost, renderToString, tag, merge, obaa };\n//# sourceMappingURL=omi.esm.js.map\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/omio/dist/omi.esm.js","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/css-loader/lib/css-base.js","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\n} catch(e) {\n\t// This works if the window reference is available\n\tif(typeof window === \"object\")\n\t\tg = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n\n// WEBPACK FOOTER //\n// (webpack)/buildin/global.js","'use strict';\n\nvar asap = require('asap/raw');\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n try {\n return obj.then;\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nfunction tryCallOne(fn, a) {\n try {\n return fn(a);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\nfunction tryCallTwo(fn, a, b) {\n try {\n fn(a, b);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('Promise constructor\\'s argument is not a function');\n }\n this._75 = 0;\n this._83 = 0;\n this._18 = null;\n this._38 = null;\n if (fn === noop) return;\n doResolve(fn, this);\n}\nPromise._47 = null;\nPromise._71 = null;\nPromise._44 = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n if (this.constructor !== Promise) {\n return safeThen(this, onFulfilled, onRejected);\n }\n var res = new Promise(noop);\n handle(this, new Handler(onFulfilled, onRejected, res));\n return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n return new self.constructor(function (resolve, reject) {\n var res = new Promise(noop);\n res.then(resolve, reject);\n handle(self, new Handler(onFulfilled, onRejected, res));\n });\n}\nfunction handle(self, deferred) {\n while (self._83 === 3) {\n self = self._18;\n }\n if (Promise._47) {\n Promise._47(self);\n }\n if (self._83 === 0) {\n if (self._75 === 0) {\n self._75 = 1;\n self._38 = deferred;\n return;\n }\n if (self._75 === 1) {\n self._75 = 2;\n self._38 = [self._38, deferred];\n return;\n }\n self._38.push(deferred);\n return;\n }\n handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n asap(function() {\n var cb = self._83 === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n if (self._83 === 1) {\n resolve(deferred.promise, self._18);\n } else {\n reject(deferred.promise, self._18);\n }\n return;\n }\n var ret = tryCallOne(cb, self._18);\n if (ret === IS_ERROR) {\n reject(deferred.promise, LAST_ERROR);\n } else {\n resolve(deferred.promise, ret);\n }\n });\n}\nfunction resolve(self, newValue) {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self) {\n return reject(\n self,\n new TypeError('A promise cannot be resolved with itself.')\n );\n }\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = getThen(newValue);\n if (then === IS_ERROR) {\n return reject(self, LAST_ERROR);\n }\n if (\n then === self.then &&\n newValue instanceof Promise\n ) {\n self._83 = 3;\n self._18 = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(then.bind(newValue), self);\n return;\n }\n }\n self._83 = 1;\n self._18 = newValue;\n finale(self);\n}\n\nfunction reject(self, newValue) {\n self._83 = 2;\n self._18 = newValue;\n if (Promise._71) {\n Promise._71(self, newValue);\n }\n finale(self);\n}\nfunction finale(self) {\n if (self._75 === 1) {\n handle(self, self._38);\n self._38 = null;\n }\n if (self._75 === 2) {\n for (var i = 0; i < self._38.length; i++) {\n handle(self, self._38[i]);\n }\n self._38 = null;\n }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n var done = false;\n var res = tryCallTwo(fn, function (value) {\n if (done) return;\n done = true;\n resolve(promise, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(promise, reason);\n });\n if (!done && res === IS_ERROR) {\n done = true;\n reject(promise, LAST_ERROR);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/promise/lib/core.js","'use strict';\n\nif (typeof Promise === 'undefined') {\n // Rejection tracking prevents a common issue where React gets into an\n // inconsistent state due to an error, but it gets swallowed by a Promise,\n // and the user has no idea what causes React's erratic future behavior.\n require('promise/lib/rejection-tracking').enable();\n window.Promise = require('promise/lib/es6-extensions.js');\n}\n\n// fetch() polyfill for making API calls.\nrequire('whatwg-fetch');\n\n// Object.assign() is commonly used with React.\n// It will use the native implementation if it's present and isn't buggy.\nObject.assign = require('object-assign');\n\n// In tests, polyfill requestAnimationFrame since jsdom doesn't provide it yet.\n// We don't polyfill it in the browser--this is user's responsibility.\nif (process.env.NODE_ENV === 'test') {\n require('raf').polyfill(global);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./config/polyfills.js","'use strict';\n\nvar Promise = require('./core');\n\nvar DEFAULT_WHITELIST = [\n ReferenceError,\n TypeError,\n RangeError\n];\n\nvar enabled = false;\nexports.disable = disable;\nfunction disable() {\n enabled = false;\n Promise._47 = null;\n Promise._71 = null;\n}\n\nexports.enable = enable;\nfunction enable(options) {\n options = options || {};\n if (enabled) disable();\n enabled = true;\n var id = 0;\n var displayId = 0;\n var rejections = {};\n Promise._47 = function (promise) {\n if (\n promise._83 === 2 && // IS REJECTED\n rejections[promise._56]\n ) {\n if (rejections[promise._56].logged) {\n onHandled(promise._56);\n } else {\n clearTimeout(rejections[promise._56].timeout);\n }\n delete rejections[promise._56];\n }\n };\n Promise._71 = function (promise, err) {\n if (promise._75 === 0) { // not yet handled\n promise._56 = id++;\n rejections[promise._56] = {\n displayId: null,\n error: err,\n timeout: setTimeout(\n onUnhandled.bind(null, promise._56),\n // For reference errors and type errors, this almost always\n // means the programmer made a mistake, so log them after just\n // 100ms\n // otherwise, wait 2 seconds to see if they get handled\n matchWhitelist(err, DEFAULT_WHITELIST)\n ? 100\n : 2000\n ),\n logged: false\n };\n }\n };\n function onUnhandled(id) {\n if (\n options.allRejections ||\n matchWhitelist(\n rejections[id].error,\n options.whitelist || DEFAULT_WHITELIST\n )\n ) {\n rejections[id].displayId = displayId++;\n if (options.onUnhandled) {\n rejections[id].logged = true;\n options.onUnhandled(\n rejections[id].displayId,\n rejections[id].error\n );\n } else {\n rejections[id].logged = true;\n logError(\n rejections[id].displayId,\n rejections[id].error\n );\n }\n }\n }\n function onHandled(id) {\n if (rejections[id].logged) {\n if (options.onHandled) {\n options.onHandled(rejections[id].displayId, rejections[id].error);\n } else if (!rejections[id].onUnhandled) {\n console.warn(\n 'Promise Rejection Handled (id: ' + rejections[id].displayId + '):'\n );\n console.warn(\n ' This means you can ignore any previous messages of the form \"Possible Unhandled Promise Rejection\" with id ' +\n rejections[id].displayId + '.'\n );\n }\n }\n }\n}\n\nfunction logError(id, error) {\n console.warn('Possible Unhandled Promise Rejection (id: ' + id + '):');\n var errStr = (error && (error.stack || error)) + '';\n errStr.split('\\n').forEach(function (line) {\n console.warn(' ' + line);\n });\n}\n\nfunction matchWhitelist(error, list) {\n return list.some(function (cls) {\n return error instanceof cls;\n });\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/promise/lib/rejection-tracking.js","\"use strict\";\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n if (!queue.length) {\n requestFlush();\n flushing = true;\n }\n // Equivalent to push, but avoids a function call.\n queue[queue.length] = task;\n}\n\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\nvar requestFlush;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n while (index < queue.length) {\n var currentIndex = index;\n // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n index = index + 1;\n queue[currentIndex].call();\n // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (index > capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n queue.length -= index;\n index = 0;\n }\n }\n queue.length = 0;\n index = 0;\n flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n requestFlush = makeRequestCallFromMutationObserver(flush);\n\n// MessageChannels are desirable because they give direct access to the HTML\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\n} else {\n requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n var toggle = 1;\n var observer = new BrowserMutationObserver(callback);\n var node = document.createTextNode(\"\");\n observer.observe(node, {characterData: true});\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\nfunction makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n var timeoutHandle = setTimeout(handleTimer, 0);\n // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n var intervalHandle = setInterval(handleTimer, 50);\n\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n}\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/asap/browser-raw.js","'use strict';\n\n//This file contains the ES6 extensions to the core Promises/A+ API\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\n\n/* Static Functions */\n\nvar TRUE = valuePromise(true);\nvar FALSE = valuePromise(false);\nvar NULL = valuePromise(null);\nvar UNDEFINED = valuePromise(undefined);\nvar ZERO = valuePromise(0);\nvar EMPTYSTRING = valuePromise('');\n\nfunction valuePromise(value) {\n var p = new Promise(Promise._44);\n p._83 = 1;\n p._18 = value;\n return p;\n}\nPromise.resolve = function (value) {\n if (value instanceof Promise) return value;\n\n if (value === null) return NULL;\n if (value === undefined) return UNDEFINED;\n if (value === true) return TRUE;\n if (value === false) return FALSE;\n if (value === 0) return ZERO;\n if (value === '') return EMPTYSTRING;\n\n if (typeof value === 'object' || typeof value === 'function') {\n try {\n var then = value.then;\n if (typeof then === 'function') {\n return new Promise(then.bind(value));\n }\n } catch (ex) {\n return new Promise(function (resolve, reject) {\n reject(ex);\n });\n }\n }\n return valuePromise(value);\n};\n\nPromise.all = function (arr) {\n var args = Array.prototype.slice.call(arr);\n\n return new Promise(function (resolve, reject) {\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n if (val instanceof Promise && val.then === Promise.prototype.then) {\n while (val._83 === 3) {\n val = val._18;\n }\n if (val._83 === 1) return res(i, val._18);\n if (val._83 === 2) reject(val._18);\n val.then(function (val) {\n res(i, val);\n }, reject);\n return;\n } else {\n var then = val.then;\n if (typeof then === 'function') {\n var p = new Promise(then.bind(val));\n p.then(function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n values.forEach(function(value){\n Promise.resolve(value).then(resolve, reject);\n });\n });\n};\n\n/* Prototype Methods */\n\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/promise/lib/es6-extensions.js","(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue+','+value : value\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n rawHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = 'status' in options ? options.status : 200\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/whatwg-fetch/fetch.js","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/object-assign/index.js","import { define, WeElement } from 'omi'\n\nimport './my-head'\nimport './my-content'\nimport './my-sidebar'\nimport './my-demo'\n\ndefine('my-frame', class extends WeElement {\n\n installed(){\n this.store.init()\n }\n\n render() {\n return (\n
\n \n
\n \n
\n \n \n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-frame.js","import { define, WeElement } from 'omi'\nimport logo from './omi-logo2019.svg'\n\ndefine('my-head', class extends WeElement {\n static css = require('./_index.css')\n\n use = [\n 'position'\n ]\n\n toggleMenus = evt => {\n this.store.toogleSidebar()\n evt.stopPropagation()\n }\n\n hideSidebar = evt => {\n this.store.hideSidebar()\n }\n\n render() {\n return (\n
\n
\n \"\"\n
\n\n \n \n \n \n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-head/index.js","module.exports = __webpack_public_path__ + \"static/media/omi-logo2019.923166c3.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-head/omi-logo2019.svg\n// module id = 13\n// module chunks = 39 40","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAqklEQVRoQ+2WQQ6AMAgE4f+Pxg+oSTNbDXR7Z5UZQpvR/GTz/w838LdBG7ABSMAjBAHichvACGHAXANVVRCOtDwzb2E/GnADUv4R5xkQA9wWN3cLbUMmDrYBMdDluLkGfJEtD8N7wXkXWfsREk/Atri5W2gbMnGwDYiBLsfNNdB+jbqB5Wn2U0KM7KO4uVvoI4D4MzaAEcIAG4AAcbkNYIQwwAYgQFze3sAFU6MwMZGH3LoAAAAASUVORK5CYII=\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-head/menu.png\n// module id = 14\n// module chunks = 39 40","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-head/_index.css\n// module id = 15\n// module chunks = 39 40","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".head{\\n position:fixed;\\n height:60px;\\n line-height: 60px;\\n border-bottom: 1px solid #eee;\\n width:100%;\\n background-color:#24292e;\\n z-index:100;\\n top: 0;\\n}\\n\\nul,li{\\n display: inline-block;\\n}\\n\\n.logo_box{\\n width:100px;\\n display: inline-block;\\n text-align:center;\\n line-height: 60px;\\n}\\n\\n.menu a,.logo_box a{\\n display: inline-block;\\n height:60px;\\n color: white;\\n}\\n\\n.menu{\\n position: absolute;\\n right:20px;\\n}\\n\\n.menu li{\\n margin-left:15px;\\n}\\n\\n.logo_box a{\\n font-size: 34px;\\n font-weight: bold;\\n color: #00bff3;\\n padding: 0px 15px;\\n line-height: 60px;\\n cursor: pointer;\\n}\\n\\n.menu a:hover{\\n color: white;\\n}\\n\\n.m_menu{\\n position:fixed;\\n display:none;\\n cursor: pointer;\\n}\\n\\n.menu li{\\n display:inline-block;\\n}\\n\\n.logo{\\n width: 40px;\\n height: 40px;\\n margin-left: 10px;\\n margin-top: 10px;\\n cursor: pointer;\\n}\\n\\n@media only screen and (max-width: 800px) {\\n\\n .logo_box{\\n display:inline-block;\\n }\\n\\n .logo{\\n display: none;\\n }\\n\\n .head{\\n text-align:center;\\n }\\n\\n .m_menu{\\n top:0;\\n left:0;\\n display:block;\\n width:50px;\\n height:50px;\\n padding-top: 6px;\\n }\\n\\n .m_menu img{\\n width:30px;\\n }\\n\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-head/_index.css\n// module id = 16\n// module chunks = 39 40","import { define, WeElement } from 'omi'\nimport '../my-footer'\n\ndefine('my-content', class extends WeElement {\n static css = require('./_index.css')\n\n use = [\n 'html'\n ]\n\n install() {\n this.store.myContent = this\n }\n\n installed() {\n this.initCodeStyle()\n }\n\n afterUpdate() {\n this.initCodeStyle()\n }\n\n touchEnd = () => {\n this.store.hideSidebar()\n }\n\n initCodeStyle() {\n let codes = document.querySelectorAll('code')\n\n let codesArr = Array.prototype.slice.call(codes);\n let codeHlNumArr = []\n codesArr.forEach(code => {\n let arr = code.className.match(/{([\\S\\s]*)}/)\n let pre = code.parentNode\n //bug!\n arr && pre.setAttribute('data-line', arr[1])\n if (code.className) {\n pre.className = code.className\n\n const temp = code.className.match(/language-\\w*/g)[0]\n if (temp) {\n code.innerHTML = Prism.highlight(code.innerText, Prism.languages[temp.split('-')[1]], temp.split('-')[1])\n }\n } else {\n let pre = code.parentNode\n code.className = 'language-markup'\n pre.className = 'language-markup'\n code.innerHTML = Prism.highlight(code.innerText, Prism.languages.markup, 'markup')\n }\n // let hllNums = null\n // if (arr) {\n // let numArr = arr[0].replace(/[{|}]/g, '').split(',')\n // hllNums = this._arrToNumber(numArr)\n // }\n //codeHlNumArr.push(hllNums)\n })\n\n // codesArr.forEach((code, index) => {\n // let newP = document.createElement('div')\n // newP.className = '_code-ctn'\n // let pre = code.parentNode\n // let ctn = pre.parentNode\n // if (pre.nodeName === 'PRE') {\n // ctn.insertBefore(newP, pre)\n\n // let hl = document.createElement('div')\n // hl.className = '_hl'\n // newP.appendChild(hl)\n // newP.appendChild(pre)\n // let nums = codeHlNumArr[index]\n\n // let max = Math.max.apply(null, nums)\n\n // let inner = ''\n // for (let i = 0; i <= max; i++) {\n // if (nums.indexOf(i) == -1) {\n // inner += '
'\n // } else {\n // inner += '
'\n // }\n // }\n // hl.innerHTML = inner\n // }\n // })\n //fix line-highlight\n window.dispatchEvent(new Event('resize'));\n }\n\n _arrToNumber(numArr) {\n let arr = []\n numArr.forEach(item => {\n if (item.indexOf('-') !== -1) {\n const tempArr = item.split('-')\n const begin = Number(tempArr[0])\n const end = Number(tempArr[1])\n for (let i = begin; i < end + 1; i++) {\n arr.push(i)\n }\n } else {\n arr.push(Number(item))\n }\n })\n return arr\n }\n\n render() {\n return (\n
\n \n \n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-content/index.js","import { define, WeElement } from 'omi'\n\ndefine('my-footer', class extends WeElement {\n static css = require('./_index.css')\n\n use = [\n 'position',\n 'menu'\n ]\n\n render() {\n const [\n position,\n menus\n ] = this.using\n const pre = this.store.getPre()\n const next = this.store.getNext()\n\n return (\n
\n {pre &&← {pre.name}}\n {next &&}\n
\n )\n }\n\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-footer/index.js","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-footer/_index.css\n// module id = 19\n// module chunks = 39 40","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".ft{\\n position: relative;\\n margin-top: 20px\\n}\\n\\n.pre{\\n position: absolute;\\n left:15px;\\n}\\n\\n.next{\\n position: absolute;\\n right: 15px;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-footer/_index.css\n// module id = 20\n// module chunks = 39 40","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-content/_index.css\n// module id = 21\n// module chunks = 39 40","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".content{\\n position: relative;\\n padding: 70px 30px;\\n max-width: 900px;\\n margin: 0 auto;\\n\\n}\\n\\n@media screen and (max-width: 1500px){\\n .content {\\n margin-left: 290px;\\n }\\n}\\n\\nh3{\\n color:#444444;\\n}\\n\\npre{\\n border: 1px solid #eee;\\n width: 100%;\\n}\\nli{\\n text-indent: 20px;\\n list-style:disc inside ;\\n}\\n\\n@media only screen and (max-width: 800px) {\\n .content{\\n margin-left: 0;\\n border-left: none;\\n padding: 70px 10px 70px 10px;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-content/_index.css\n// module id = 22\n// module chunks = 39 40","import { define, WeElement } from 'omi'\nimport '../my-list'\n\ndefine('my-sidebar', class extends WeElement {\n static css = require('./_index.css')\n\n use = [\n 'menus',\n 'sideBarShow',\n 'lan'\n ]\n\n render() {\n const [menus, sideBarShow, lan] = this.using\n\n return (\n
\n {menus[lan].map((menu, index) => (\n \n ))}\n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-sidebar/index.js","import { define, WeElement } from 'omi'\n\ndefine('my-list', class extends WeElement {\n static css = require('./_index.css')\n\n use = [\n 'position'\n ]\n\n render(props) {\n const [position] = this.using\n\n return (\n
    \n
  • {props.menu.title}
  • \n {props.menu.list &&\n props.menu.list.map((item, subIndex) => {\n const cls = position[0] === props.index && position[1] === subIndex ? { class: 'current' } : null\n return
  • \n \n {item.name}\n \n
  • \n })}\n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-list/index.js","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-list/_index.css\n// module id = 25\n// module chunks = 39 40","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"li.title{\\n font-size: 14px;\\n font-weight: bold;\\n margin-bottom:10px;\\n margin-top:10px;\\n text-indent: 23px;\\n}\\nli{\\n margin-bottom:1px;\\n text-indent: 33px;\\n}\\nli a{\\n display:block;\\n font-size:14px;\\n height:30px;\\n line-height:30px;\\n color: black;\\n background-color:#eee;\\n}\\nli a.current,li a.current:hover{\\n background-color:#24292e;\\n color: white;\\n cursor: default;\\n}\\nli a:hover{\\n background-color:#f0f8ff;\\n}\\n\\n\\nul,li{\\n list-style:none;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-list/_index.css\n// module id = 26\n// module chunks = 39 40","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-sidebar/_index.css\n// module id = 27\n// module chunks = 39 40","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"@media only screen and (max-width: 800px) {\\n .list{\\n transform: translateX(-100%);\\n background-color:white;\\n left:0 !important;\\n -moz-transition: all .6s ease;\\n -o-transition: all .6s ease;\\n -webkit-transition: all .6s ease;\\n transition: all .6s ease;\\n width: 70% !important;\\n z-index: 100000;\\n border-right: none !important;\\n }\\n\\n .list.show {\\n -moz-transform: translateX(0%) translateZ(0);\\n -ms-transform: translateX(0%) translateZ(0);\\n -o-transform: translateX(0%) translateZ(0);\\n -webkit-transform: translateX(0%) translateZ(0);\\n transform: translateX(0%) translateZ(0);\\n }\\n}\\n\\n.list{\\n width: 261px;\\n text-indent: 20px;\\n border-right: 1px solid #eee;\\n overflow-x: hidden;\\n overflow-y: auto;\\n position:fixed;\\n top:60px;\\n background-color: white;\\n height: 100%;\\n border-right: 1px solid #ccc;\\n padding-bottom: 100px;\\n}\\n.version{\\n height:20px;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-sidebar/_index.css\n// module id = 28\n// module chunks = 39 40","import { define, WeElement } from 'omi'\nimport css from './_index.css'\n\ndefine('my-demo', class extends WeElement {\n install() {\n this.store.myDemo = this\n if(this.checkPc())\n this.show = true\n else\n this.show = false\n this.demo = this.store.demo\n }\n\n css() {\n return css\n }\n\n checkPc() {\n let userAgentInfo = navigator.userAgent\n let mp = [\"Android\", \"iPhone\", \"SymbianOS\", \"Windows Phone\", \"iPad\", \"iPod\"]\n for (let i = 0; i < mp.length; i++)\n if (userAgentInfo.indexOf(mp[i]) > 0)\n return false\n return true\n }\n\n onShow = () => {\n this.show = true\n this.update()\n }\n\n onClose = () => {\n this.show = false\n this.update()\n }\n \n render() {\n if(!this.demo) return\n return (\n
\n { this.show && }\n\n {!this.show &&
\n \n
}\n\n {this.show &&
\n \n
}\n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-demo/index.js","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-demo/_index.css\n// module id = 30\n// module chunks = 39 40","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"iframe{\\n width: 750px;\\n height: 100%;\\n top: 60px;\\n right: 0;\\n position: fixed;\\n border: none;\\n z-index: 9999;\\n border-left: 2px solid #24292E;\\n}\\n\\n.switch{\\n width: 40px;\\n height: 40px;\\n background-color: #AA0000;\\n border-radius: 50%;\\n position: fixed;\\n right: 50px;\\n bottom: 50px;\\n cursor: pointer;\\n text-align: center;\\n z-index: 10000;\\n}\\n\\n.switch img{\\n width: 30px;\\n height: 30px;\\n margin-top:5px;\\n}\\n\\n.switch.close img{\\n margin-top:10px;\\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n@media only screen and (max-width: 800px) {\\n iframe{\\n width: 100%;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-demo/_index.css\n// module id = 31\n// module chunks = 39 40","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfiDBQMEgYVXhFiAAABVklEQVRIx+3UsU4UURSA4TNARoiJcR9BCwwJNNpRU0hjpS+hDTTyGkAD1UJnRzCbYKRAKzt9AaMxJoR+Ewho8dEMm5nZOzObbfVUM+ec/79n7uTeiP8xUfjiq6Xp8Ufg6fSCN7iQpasztebcttVaz3pEnGQirNqWt62VG2CoV8rNu8TLCD1DDBoVBc5BeVzr+OthhMwBjQq59wVe+Sy7+FQ8Z/bBB/MT4hG+4+3oLa0Y4f0x/AlYLmUyezVFMx5hE79ruaqiDY9wir2xbFnhqAW/7xovEpUZfXCUwEqxFvfiJs5ae+SO0/sfYR8fE8zdvzi524UGhV/Y6MCbp7ACFjvxiuKd2VFuCz/GNu8wgacVPmNnQrxQlA6TB/7geWX4tsNUUgz1IrzClYVStes4F4riQtHHoFbtulAq457j9UTNScEz8Li7c64hfxXf4jr7OfUE/1TcAoyIn6j/RilHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTEyLTIwVDExOjE4OjA2KzAxOjAwT3khJwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMi0yMFQxMToxODowNiswMTowMD4kmZsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-demo/code.png\n// module id = 32\n// module chunks = 39 40","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAQAAACROWYpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiDBQMERzDEbvbAAAArElEQVQ4y6XVOw6DMBBFUSf7SmGy2ZCNBerIJN2lAQn/34ArZHFsi3mDHW9mvDMOPDOjYwKCjeMJwGd/MPBI8OALBJ4S3d8e0okuz6jOi1TjVdrnTdrmXVrnEi1zmebcRGNupgf+YzHTjS8A/Ov0Lqxzs+97PLbUMukHG2wd59LimHheHJmX6yrxeiS6vJ2mJu8Hscq1DBe5Hv+M2zon4pd++teum5Hp5EX3WgGu+8eCI/n/bQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0xMi0yMFQxMToxNzoyOCswMTowMKxoBooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMTItMjBUMTE6MTc6MjgrMDE6MDDdNb42AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-demo/close.png\n// module id = 33\n// module chunks = 39 40","import config from '../docs/config.js'\nimport 'omi-router'\n\nclass Store {\n constructor(data) {\n this.data = {\n position: [-1, -1],\n menus: config.menus,\n lan: data.lan,\n html: '',\n sideBarShow: false\n }\n let id = 0\n this.map = {}\n this.positionMap = {}\n config.menus[this.data.lan].forEach((menu, index) => {\n menu.list.forEach((item, subIndex) => {\n item.id = id++\n item.position = [index, subIndex]\n this.map[item.id] = item\n item.index = index\n item.subIndex = subIndex\n this.positionMap[index + '-' + subIndex] = item\n })\n })\n this.preIndex = 0\n this.preSubIndex = 0\n }\n\n getNext() {\n const item = this.positionMap[this.data.position.join('-')]\n if (item) {\n return this.map[item.id + 1]\n }\n }\n\n getPre() {\n const item = this.positionMap[this.data.position.join('-')]\n if (item) {\n return this.map[item.id - 1]\n }\n }\n\n init() {\n this.remarkable = new Remarkable({ html: true })\n if (location.hash === \"\") {\n this.data.position = [0, 0]\n this.getMarkDown(this.data.menus[this.data.lan][0].list[0].md, this.data.lan, m => {\n this.data.html = this.remarkable.render(m)\n })\n }\n this.initRouter()\n }\n\n toogleSidebar() {\n this.data.sideBarShow = !this.data.sideBarShow\n }\n\n hideSidebar() {\n this.data.sideBarShow = false\n }\n\n initRouter() {\n const menus = this.data.menus[this.data.lan]\n menus.forEach(item => {\n item.list.forEach(subItem => {\n route('/' + subItem.md, evt => {\n menus[this.preIndex].list[this.preSubIndex].selected = false\n const indexs = getIndexs(subItem.md, this.data.lan, config)\n this.preIndex = indexs[0]\n this.preSubIndex = indexs[1]\n this.data.position = [indexs[0], indexs[1]]\n this.data.sideBarShow = false\n\n this.getMarkDown(subItem.md, this.data.lan, m => {\n this.data.html = this.remarkable.render(m)\n document.body.scrollTop = 0\n document.documentElement.scrollTop = 0\n })\n })\n })\n })\n }\n\n getMarkDown(name, lan, callback) {\n import('../docs/' + lan + '/' + name + '.md').then(m => {\n callback(m)\n })\n }\n}\n\nfunction getIndexs(name, lan, config) {\n const menus = config.menus[lan]\n for (let i = 0, len = menus.length; i < len; i++) {\n for (let j = 0, sLen = menus[i].list.length; j < sLen; j++) {\n if (name === menus[i].list[j].md) {\n return [i, j]\n }\n }\n }\n}\n\n\nexport default Store\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/index.js","const config = {\n menus: {\n 'zh-cn': [\n {\n title: 'OMI',\n list: [\n { name: '简介', md: 'introduction' },\n { name: '安装', md: 'installation' }\n ]\n },\n {\n title: '基础概念',\n list: [\n { name: 'H / H.F / JSX', md: 'jsx' },\n { name: '属性 Props', md: 'props' },\n { name: '事件 Event', md: 'event' },\n { name: '插槽 Slot', md: 'slot' },\n { name: '生命周期', md: 'lifecycle' },\n { name: '更新 Update', md: 'update' },\n { name: 'Provide / Inject', md: 'provide-inject' },\n { name: '引用 Ref', md: 'ref' },\n { name: '类名 Class', md: 'class' },\n { name: '扩展 Extend', md: 'extend' },\n // { name: '存储 Store', md: 'store' },\n { name: '样式 CSS', md: 'css' }\n ]\n },\n {\n title: '其他',\n list: [\n { name: 'Kbone 多端开发', md: 'kbone' },\n { name: '路由', md: 'router' },\n // { name: '服务端渲染', md: 'ssr' },\n { name: '生态与例子', md: 'other' },\n // { name: 'Mps', md: 'mps' }\n ]\n }\n ],\n en: [\n {\n title: 'OMI',\n list: [\n { name: 'Introduction', md: 'introduction' },\n { name: 'Installation', md: 'installation' }\n ]\n },\n {\n title: 'Base',\n list: [\n { name: 'H / H.F / JSX', md: 'jsx' },\n { name: 'Props', md: 'props' },\n { name: 'Event', md: 'event' },\n { name: 'Slot', md: 'slot' },\n { name: 'Lifecycle', md: 'lifecycle' },\n { name: 'Update', md: 'update' },\n { name: 'Provide / Inject', md: 'provide-inject' },\n { name: 'Ref', md: 'ref' },\n { name: 'Class', md: 'class' },\n { name: 'Extend', md: 'extend' },\n // { name: 'Store', md: 'store' },\n { name: 'CSS', md: 'css' }\n ]\n },\n {\n title: 'Other',\n list: [\n { name: 'Router', md: 'router' },\n // { name: 'Server-Side Rendering', md: 'ssr' },\n { name: 'Ecosystem and Examples', md: 'other' }\n ]\n }\n ]\n }\n}\n\nexport default config\n\n\n\n// WEBPACK FOOTER //\n// ./src/docs/config.js","/**\n * omi-router v3.0.2 http://omijs.org\n * Front End Cross-Frameworks Framework.\n * By dntzhang https://github.com/dntzhang\n * Github: https://github.com/Tencent/omi\n * MIT Licensed.\n */\n\n/**\n * Expose `pathToRegexp`.\n */\nvar _pathToRegexp_3_2_0_pathToRegexp = pathToRegexp;\nvar match_1 = match;\nvar regexpToFunction_1 = regexpToFunction;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * Default configs.\n */\nvar DEFAULT_DELIMITER = '/';\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \":test(\\\\d+)?\" => [\"test\", \"\\d+\", undefined, \"?\"]\n // \"(\\\\d+)\" => [undefined, undefined, \"\\d+\", undefined]\n '(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = (options && options.delimiter) || DEFAULT_DELIMITER;\n var whitelist = (options && options.whitelist) || undefined;\n var pathEscaped = false;\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) !== null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n pathEscaped = true;\n continue\n }\n\n var prev = '';\n var name = res[2];\n var capture = res[3];\n var group = res[4];\n var modifier = res[5];\n\n if (!pathEscaped && path.length) {\n var k = path.length - 1;\n var c = path[k];\n var matches = whitelist ? whitelist.indexOf(c) > -1 : true;\n\n if (matches) {\n prev = c;\n path = path.slice(0, k);\n }\n }\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n pathEscaped = false;\n }\n\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var pattern = capture || group;\n var delimiter = prev || defaultDelimiter;\n\n tokens.push({\n name: name || key++,\n prefix: prev,\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n pattern: pattern\n ? escapeGroup(pattern)\n : '[^' + escapeString(delimiter === defaultDelimiter ? delimiter : (delimiter + defaultDelimiter)) + ']+?'\n });\n }\n\n // Push any remaining characters.\n if (path || index < str.length) {\n tokens.push(path + str.substr(index));\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nfunction match (str, options) {\n var keys = [];\n var re = pathToRegexp(str, keys, options);\n return regexpToFunction(re, keys)\n}\n\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nfunction regexpToFunction (re, keys) {\n return function (pathname, options) {\n var m = re.exec(pathname);\n if (!m) return false\n\n var path = m[0];\n var index = m.index;\n var params = {};\n var decode = (options && options.decode) || decodeURIComponent;\n\n for (var i = 1; i < m.length; i++) {\n if (m[i] === undefined) continue\n\n var key = keys[i - 1];\n\n if (key.repeat) {\n params[key.name] = m[i].split(key.delimiter).map(function (value) {\n return decode(value, key)\n });\n } else {\n params[key.name] = decode(m[i], key);\n }\n }\n\n return { path: path, index: index, params: params }\n }\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (data, options) {\n var path = '';\n var encode = (options && options.encode) || encodeURIComponent;\n var validate = options ? options.validate !== false : true;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n continue\n }\n\n var value = data ? data[token.name] : undefined;\n var segment;\n\n if (Array.isArray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but got array')\n }\n\n if (value.length === 0) {\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j], token);\n\n if (validate && !matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\"')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n segment = encode(String(value), token);\n\n if (validate && !matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but got \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n continue\n }\n\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to be ' + (token.repeat ? 'an array' : 'a string'))\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$/()])/g, '\\\\$1')\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {Array=} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n if (!keys) return path\n\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n pattern: null\n });\n }\n }\n\n return path\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n return new RegExp('(?:' + parts.join('|') + ')', flags(options))\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n options = options || {};\n\n var strict = options.strict;\n var start = options.start !== false;\n var end = options.end !== false;\n var delimiter = options.delimiter || DEFAULT_DELIMITER;\n var endsWith = [].concat(options.endsWith || []).map(escapeString).concat('$').join('|');\n var route = start ? '^' : '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var capture = token.repeat\n ? '(?:' + token.pattern + ')(?:' + escapeString(token.delimiter) + '(?:' + token.pattern + '))*'\n : token.pattern;\n\n if (keys) keys.push(token);\n\n if (token.optional) {\n if (!token.prefix) {\n route += '(' + capture + ')?';\n } else {\n route += '(?:' + escapeString(token.prefix) + '(' + capture + '))?';\n }\n } else {\n route += escapeString(token.prefix) + '(' + capture + ')';\n }\n }\n }\n\n if (end) {\n if (!strict) route += '(?:' + escapeString(delimiter) + ')?';\n\n route += endsWith === '$' ? '$' : '(?=' + endsWith + ')';\n } else {\n var endToken = tokens[tokens.length - 1];\n var isEndDelimited = typeof endToken === 'string'\n ? endToken[endToken.length - 1] === delimiter\n : endToken === undefined;\n\n if (!strict) route += '(?:' + escapeString(delimiter) + '(?=' + endsWith + '))?';\n if (!isEndDelimited) route += '(?=' + escapeString(delimiter) + '|' + endsWith + ')';\n }\n\n return new RegExp(route, flags(options))\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (path instanceof RegExp) {\n return regexpToRegexp(path, keys)\n }\n\n if (Array.isArray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), keys, options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), keys, options)\n}\n_pathToRegexp_3_2_0_pathToRegexp.match = match_1;\n_pathToRegexp_3_2_0_pathToRegexp.regexpToFunction = regexpToFunction_1;\n_pathToRegexp_3_2_0_pathToRegexp.parse = parse_1;\n_pathToRegexp_3_2_0_pathToRegexp.compile = compile_1;\n_pathToRegexp_3_2_0_pathToRegexp.tokensToFunction = tokensToFunction_1;\n_pathToRegexp_3_2_0_pathToRegexp.tokensToRegExp = tokensToRegExp_1;\n\n/*!\n * omi-router v3.0.1 by dntzhang\n * Router for Omi.\n * Github: https://github.com/Tencent/omi\n * MIT Licensed.\n */\nvar mapping = {};\nvar root = getGlobal();\nroot.route = route;\nroot.route.params = null;\nroot.historyLength = 0;\nroot.route.to = function (path, data) {\n root.route._routeByTo = true;\n root.route.data = data;\n if (path[0] === '#') {\n location.hash = path;\n }\n else {\n location.hash = '#' + path;\n }\n};\nwindow.addEventListener('hashchange', hashChange);\nfunction hashChange(evt) {\n var byNative = false;\n //need to fix a line by omi-link\n if (window.history.length === root.historyLength && !root.route._routeByTo) {\n //keep alive mode\n byNative = true;\n }\n root.route._routeByTo = false;\n root.historyLength = window.history.length;\n var prevent = false;\n if (root.route.before) {\n prevent = root.route.before(evt) === false;\n }\n if (prevent)\n return;\n var path = window.location.hash.replace('#', '');\n if (path === '')\n path = '/';\n var notFound = true;\n Object.keys(mapping).every(function (key) {\n var toArr = path.split('?')[0].match(mapping[key].reg);\n if (toArr) {\n var pathArr = key.match(mapping[key].reg);\n root.route.params = getParams(toArr, pathArr);\n root.route.query = getUrlParams(path);\n mapping[key].callback({\n params: root.route.params,\n query: getUrlParams(path),\n data: root.route.data,\n byNative: byNative\n });\n root.route.data = null;\n notFound = false;\n return false;\n }\n return true;\n });\n if (notFound) {\n mapping['*'] && mapping['*'].callback({ byNative: byNative });\n }\n if (root.route.after) {\n root.route.after(evt);\n }\n}\ndocument.addEventListener('DOMContentLoaded', hashChange);\nfunction getParams(toArr, pathArr) {\n var params = {};\n toArr.forEach(function (item, index) {\n if (index > 0) {\n params[pathArr[index].replace(':', '')] = item;\n }\n });\n return params;\n}\nfunction route(path, callback) {\n mapping[path] = {\n callback: callback,\n reg: _pathToRegexp_3_2_0_pathToRegexp(path)\n };\n}\nvar router = { route: route, hashChange: hashChange };\nfunction getGlobal() {\n if (typeof global !== 'object' ||\n !global ||\n global.Math !== Math ||\n global.Array !== Array) {\n return (self ||\n window ||\n global ||\n (function () {\n return this;\n })());\n }\n return global;\n}\nfunction getUrlParams(url) {\n url = url.replace(/#.*$/, '');\n var queryArray = url.split(/[?&]/).slice(1);\n var i, args = {};\n for (i = 0; i < queryArray.length; i++) {\n var match = queryArray[i].match(/([^=]+)=([^=]+)/);\n if (match !== null) {\n args[match[1]] = decodeURIComponent(match[2]);\n }\n }\n return args;\n}\n\nexport { router as default, hashChange, route };\n//# sourceMappingURL=index.esm.js.map\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/omi-router/src/index.esm.js","var map = {\n\t\"./en/class.md\": [\n\t\t38,\n\t\t38\n\t],\n\t\"./en/css.md\": [\n\t\t39,\n\t\t37\n\t],\n\t\"./en/event.md\": [\n\t\t40,\n\t\t36\n\t],\n\t\"./en/extend.md\": [\n\t\t41,\n\t\t35\n\t],\n\t\"./en/installation.md\": [\n\t\t42,\n\t\t34\n\t],\n\t\"./en/introduction.md\": [\n\t\t43,\n\t\t33\n\t],\n\t\"./en/jsx.md\": [\n\t\t44,\n\t\t32\n\t],\n\t\"./en/lifecycle.md\": [\n\t\t45,\n\t\t31\n\t],\n\t\"./en/omim.md\": [\n\t\t46,\n\t\t30\n\t],\n\t\"./en/other.md\": [\n\t\t47,\n\t\t29\n\t],\n\t\"./en/props.md\": [\n\t\t48,\n\t\t28\n\t],\n\t\"./en/provide-inject.md\": [\n\t\t49,\n\t\t27\n\t],\n\t\"./en/ref.md\": [\n\t\t50,\n\t\t26\n\t],\n\t\"./en/router.md\": [\n\t\t51,\n\t\t25\n\t],\n\t\"./en/slot.md\": [\n\t\t52,\n\t\t24\n\t],\n\t\"./en/ssr.md\": [\n\t\t53,\n\t\t23\n\t],\n\t\"./en/store.md\": [\n\t\t54,\n\t\t22\n\t],\n\t\"./en/update.md\": [\n\t\t55,\n\t\t21\n\t],\n\t\"./zh-cn/class.md\": [\n\t\t56,\n\t\t20\n\t],\n\t\"./zh-cn/css.md\": [\n\t\t57,\n\t\t19\n\t],\n\t\"./zh-cn/event.md\": [\n\t\t58,\n\t\t18\n\t],\n\t\"./zh-cn/extend.md\": [\n\t\t59,\n\t\t17\n\t],\n\t\"./zh-cn/installation.md\": [\n\t\t60,\n\t\t16\n\t],\n\t\"./zh-cn/introduction.md\": [\n\t\t61,\n\t\t15\n\t],\n\t\"./zh-cn/jsx.md\": [\n\t\t62,\n\t\t14\n\t],\n\t\"./zh-cn/kbone.md\": [\n\t\t63,\n\t\t13\n\t],\n\t\"./zh-cn/lifecycle.md\": [\n\t\t64,\n\t\t12\n\t],\n\t\"./zh-cn/mps.md\": [\n\t\t65,\n\t\t11\n\t],\n\t\"./zh-cn/omim.md\": [\n\t\t66,\n\t\t10\n\t],\n\t\"./zh-cn/omip.md\": [\n\t\t67,\n\t\t9\n\t],\n\t\"./zh-cn/other.md\": [\n\t\t68,\n\t\t8\n\t],\n\t\"./zh-cn/props.md\": [\n\t\t69,\n\t\t7\n\t],\n\t\"./zh-cn/provide-inject.md\": [\n\t\t70,\n\t\t6\n\t],\n\t\"./zh-cn/ref.md\": [\n\t\t71,\n\t\t5\n\t],\n\t\"./zh-cn/router.md\": [\n\t\t72,\n\t\t4\n\t],\n\t\"./zh-cn/slot.md\": [\n\t\t73,\n\t\t3\n\t],\n\t\"./zh-cn/ssr.md\": [\n\t\t74,\n\t\t2\n\t],\n\t\"./zh-cn/store.md\": [\n\t\t75,\n\t\t1\n\t],\n\t\"./zh-cn/update.md\": [\n\t\t76,\n\t\t0\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids)\n\t\treturn Promise.reject(new Error(\"Cannot find module '\" + req + \"'.\"));\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(ids[0]);\n\t});\n};\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 37;\nmodule.exports = webpackAsyncContext;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs lazy ^\\.\\/.*\\.md$\n// module id = 37\n// module chunks = 39 40","import { render } from 'omi'\nimport './assets/index.css'\nimport './elements/my-frame.js'\nimport Store from './store'\n\nrender(, '#root', new Store({ lan: 'zh-cn' }))\n\n\n\n// WEBPACK FOOTER //\n// ./src/cn.js"],"sourceRoot":""} \ No newline at end of file diff --git a/site/docs/static/js/index.39b7da12.js b/site/docs/static/js/index.eff19fd7.js similarity index 99% rename from site/docs/static/js/index.39b7da12.js rename to site/docs/static/js/index.eff19fd7.js index 34e4f47899..05e5b193a6 100644 --- a/site/docs/static/js/index.39b7da12.js +++ b/site/docs/static/js/index.eff19fd7.js @@ -1,2 +1,2 @@ -!function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n=window.webpackJsonp;window.webpackJsonp=function(t,r,i){for(var a,s,u=0,c=[];u2;)Me.push(arguments[a]);for(t&&null!=t.children&&(Me.length||Me.push(t.children),delete t.children);Me.length;)if((o=Me.pop())&&void 0!==o.pop)for(a=o.length;a--;)Me.push(o[a]);else"boolean"===typeof o&&(o=null),(i="function"!==typeof e)&&(null==o?o="":"number"===typeof o?o=String(o):"string"!==typeof o&&(i=!1)),i&&r?s[s.length-1]+=o:0===s.length?s=[o]:s.push(o),r=i;var u=new n;return u.nodeName=e,u.children=s,u.attributes=null==t?void 0:t,u.key=null==t?void 0:t.key,void 0!==Ne.vnode&&Ne.vnode(u),u}function o(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function i(e,t){for(var n,r,i=o(e),a=1;a2?[].slice.call(arguments,2):e.children)}function m(e){1==He.push(e)&&(Ne.debounceRendering||De)(y)}function y(){for(var e;e=He.pop();)W(e)}function b(e,t,n){if("string"===typeof t||"number"===typeof t)return void 0!==e.splitText;if("string"===typeof t.nodeName){var r=Ve[t.nodeName];return r?n||e._componentConstructor===r:!e._componentConstructor&&v(e,t.nodeName)}return n||e._componentConstructor===t.nodeName}function v(e,t){return e.normalizedNodeName===t||e.nodeName.toLowerCase()===t.toLowerCase()}function g(e){var t=a({},e.attributes);t.children=e.children;var n=e.nodeName.defaultProps;if(void 0!==n)for(var r in n)void 0===t[r]&&(t[r]=n[r]);return t}function _(e,t){var n=t?Ne.doc.createElementNS("http://www.w3.org/2000/svg",e):Ne.doc.createElement(e);return n.normalizedNodeName=e,n}function w(e){for(var t=e.replace(/\/\*(.|\s)*?\*\//g," ").replace(/\s+/g," "),n={},r=t.match(/ ?(.*?) ?{([^}]*)}/)||[o,i,t],o=r[0],i=r[1],a=r[2],s=a.split(";").map(function(e){return e.split(":").map(function(e){return e&&e.trim()})}),u=s,u=Array.isArray(u),u=0,u=u||u[Symbol.iterator]();;){var c;if(u){if(u>=u.length)break;c=u[u++]}else{if(u=u.next(),u.done)break;c=u.value}var l=c,f=l[0],p=l[1];n[function(e){return e.replace(/\W+\w/g,function(e){return e.slice(-1).toUpperCase()})}(f)]=p}return n}function A(e){var t=e.parentNode;t&&t.removeChild(e)}function x(e,t,n,r,o){if("className"===t&&(t="class"),"key"===t);else if("ref"===t)s(n,null),s(r,e);else if("class"!==t||o)if("style"===t)if(Ne.isWeb){if(r&&"string"!==typeof r&&"string"!==typeof n||(e.style.cssText=r||""),r&&"object"===("undefined"===typeof r?"undefined":Pe(r))){if("string"!==typeof n)for(var i in n)i in r||(e.style[i]="");for(var i in r)e.style[i]="number"===typeof r[i]&&!1===Fe.test(i)?r[i]+"px":r[i]}}else{var a=n,u=r;"string"===typeof n&&(a=w(n)),"string"==typeof r&&(u=w(r));var c={},l=!1;if(a){for(var f in a)"object"!=("undefined"===typeof u?"undefined":Pe(u))||f in u||(c[f]="",l=!0);for(var p in u)u[p]!==a[p]&&(c[p]=u[p],l=!0);l&&e.setStyles(c)}else e.setStyles(u)}else if("dangerouslySetInnerHTML"===t)r&&(e.innerHTML=r.__html||"");else if("o"==t[0]&&"n"==t[1]){var d=t!==(t=t.replace(/Capture$/,"")),h=t.toLowerCase();t=(h in e?h:t).slice(2),r?n||(e.addEventListener(t,E,d),"tap"==t&&(e.addEventListener("touchstart",S,d),e.addEventListener("touchend",j,d))):(e.removeEventListener(t,E,d),"tap"==t&&(e.removeEventListener("touchstart",S,d),e.removeEventListener("touchend",j,d))),(e._listeners||(e._listeners={}))[t]=r}else if("list"!==t&&"tagName"!==t&&"form"!==t&&"type"!==t&&"size"!==t&&"download"!==t&&"href"!==t&&!o&&t in e)O(e,t,null==r?"":r);else{var m=o&&t!==(t=t.replace(/^xlink:?/,""));null==r||!1===r?m?e.removeAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase()):e.removeAttribute(t):"function"!==typeof r&&(m?e.setAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase(),r):e.setAttribute(t,r))}else e.className=r||""}function O(e,t,n){try{e[t]=n}catch(e){}}function E(e){return this._listeners[e.type](Ne.event&&Ne.event(e)||e)}function S(e){this.___touchX=e.touches[0].pageX,this.___touchY=e.touches[0].pageY,this.___scrollTop=document.body.scrollTop}function j(e){Math.abs(e.changedTouches[0].pageX-this.___touchX)<30&&Math.abs(e.changedTouches[0].pageY-this.___touchY)<30&&Math.abs(document.body.scrollTop-this.___scrollTop)<30&&this.dispatchEvent(new CustomEvent("tap",{detail:e}))}function k(e){for(var t=0,n=Ne.styleCache.length;t-1;)if(t===e[n])return!0;return!1}function se(e,t){return"#"===t?e:t.split("-")[1]}function ue(e,t,n,r,o){if(t="string"===typeof t?document.querySelector(t):t,n)if(n.data)ce(n);else{Ne.isMultiStore=!0;for(var i in n)n[i].data&&ce(n[i],i)}if(r)for(;t.firstChild;)t.removeChild(t.firstChild);return o&&(o="string"===typeof o?document.querySelector(o):o),I(o,e,n,!1,t,!1)}function ce(e,t){e.instances=[],e.updateSelfInstances=[],fe(e,t),q(e.data,function(t,n,r,o){var i={};i[me(o+"-"+t)]=!0,e.update(i)})}function le(e,t,n){return ce(n),t="string"===typeof t?document.querySelector(t):t,I(t,e,n)}function fe(e,t){e.update=function(n){Object.keys(n).length>0&&(this.instances.forEach(function(r){pe(r,t),t?r._updatePath&&r._updatePath[t]&&de(n,r._updatePath[t])&&(r.use&&c(e.data,("function"===typeof r.use?r.use():r.use)[t],r.using,t),r.update()):r._updatePath&&de(n,r._updatePath)&&(r.use&&(r.using=c(e.data,"function"===typeof r.use?r.use():r.use)),r.update())}),this.updateSelfInstances.forEach(function(r){pe(r,t),t?r._updateSelfPath&&r._updateSelfPath[t]&&de(n,r._updateSelfPath[t])&&(r.useSelf&&c(e.data,("function"===typeof r.useSelf?r.useSelf():r.useSelf)[t],r.usingSelf,t),r.updateSelf()):r._updateSelfPath&&de(n,r._updateSelfPath)&&(r.usingSelf=c(e.data,"function"===typeof r.useSelf?r.useSelf():r.useSelf),r.updateSelf())}),this.onChange&&this.onChange(n))}}function pe(e,t){if(e.compute)for(var n in e.compute)e.computed[n]=e.compute[n].call(t?e.store:e.store.data)}function de(e,t){for(var n in e){if(t[n])return!0;for(var r in t)if(he(n,r))return!0}return!1}function he(e,t){if(0===e.indexOf(t)){var n=e.substr(t.length,1);if("["===n||"."===n)return!0}return!1}function me(e){var t="";return e.replace("#-","").split("-").forEach(function(e,n){n?isNaN(Number(e))?t+="."+e:t+="["+e+"]":t+=e}),t}function ye(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function be(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==("undefined"===typeof t?"undefined":Pe(t))&&"function"!==typeof t?e:t}function ve(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+("undefined"===typeof t?"undefined":Pe(t)));e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function ge(e,t,n){if("WeElement"===t.is)Ne.mapping[e]=t;else{n="string"===typeof n?{css:n}:n||{};var r=function(e){function r(){var t,o,i;ye(this,r);for(var a=arguments.length,s=Array(a),u=0;u0)return{class:Ae.apply(null,n)}}function Oe(e){var t=e.base;if(t)for(;t.parentNode;){if(t.parentNode._component)return t.parentNode._component;t=t.parentNode}}function Ee(e){var t="";for(var n in e){var r=e[n];null!=r&&(t&&(t+=" "),t+=ut[n]||(ut[n]=n.replace(/([A-Z])/g,"-$1").toLowerCase()),t+=": ",t+=r,"number"===typeof r&&!1===IS_NON_DIMENSIONAL.test(n)&&(t+="px"),t+=";")}return t||void 0}function Se(e,t,n,r){n=n||{},t=Object.assign({scopedCSS:!0},t);var o={},i=je(e,t,n,r,o);return{css:Object.values(o),html:i}}function je(e,t,n,r,o){if(null==e||"boolean"===typeof e)return"";var i=e.nodeName,a=e.attributes,s=!1,u=t.pretty,c=u&&"string"===typeof u?u:"\t";if("object"!==("undefined"===typeof e?"undefined":Pe(e))&&!i)return rt(e);var l=it[i];if(l){s=!0;var f,p=Te(e),d=new l(p,n);if(d._disable=d.__x=!0,d.props=p,d.store=n,d.install&&d.install(),d.beforeRender&&d.beforeRender(),f=d.render(d.props,d.store),t.scopedCSS){if(d.constructor.css||d.css){var h=d.constructor.css?d.constructor.css:"function"===typeof d.css?d.css():d.css,m="_s"+k(d.constructor);o[m]={id:m,css:T(h,m)},N(f,m)}d.scopedCSSAttr=e.css,R(f,d.scopedCSSAttr)}return je(f,t,n,!1,o)}var y,b="";if(a){var v=Object.keys(a);t&&!0===t.sortAttributes&&v.sort();for(var g=0;g]/)&&(t&&t.allAttributes||"key"!==_&&"ref"!==_))){if("className"===_){if(a.class)continue;_="class"}else r&&_.match(/^xlink:?./)&&(_=_.toLowerCase().replace(/^xlink:?/,"xlink:"));"style"===_&&w&&"object"===("undefined"===typeof w?"undefined":Pe(w))&&(w=Ee(w));var A=t.attributeHook&&t.attributeHook(_,w,n,t,s);if(A||""===A)b+=A;else if("dangerouslySetInnerHTML"===_)y=w&&w.__html;else if((w||0===w||""===w)&&"function"!==typeof w){if((!0===w||""===w)&&(w=_,!t||!t.xml)){b+=" "+_;continue}b+=" "+_+'="'+rt(w)+'"'}}}}if(u){var x=b.replace(/^\n\s*/," ");x===b||~x.indexOf("\n")?u&&~b.indexOf("\n")&&(b+="\n"):b=x}if(b="<"+i+b+">",String(i).match(/[\s\n\\/='"\0<>]/))throw b;var O=String(i).match(at);O&&(b=b.replace(/>$/," />"));var E=[];if(y)u&&st(y)&&(y="\n"+c+ot(y,c)),b+=y;else if(e.children){for(var S=u&&~b.indexOf("\n"),g=0;g";return O||(u&&~b.indexOf("\n")&&(b+="\n"),b+=""),b}function ke(e,t){for(var n in t)e[n]=t[n];return e}function Te(e){var t=ke({},e.attributes);t.children=e.children;var n=e.nodeName.defaultProps;if(void 0!==n)for(var r in n)void 0===t[r]&&(t[r]=n[r]);return t}function Ce(){return{}}Object.defineProperty(t,"__esModule",{value:!0});var Pe="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ne={scopedStyle:!0,mapping:{},isWeb:!0,staticStyleMapping:{},doc:"object"===("undefined"===typeof document?"undefined":Pe(document))?document:null,root:function(){return"object"===("undefined"===typeof e?"undefined":Pe(e))&&e&&e.Math===Math&&e.Array===Array?e:"undefined"!==typeof self?self:"undefined"!==typeof window?window:"undefined"!==typeof e?e:function(){return this}()}(),styleCache:[],isMultiStore:!1},Me=[],Be=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Ue=Object.prototype.propertyIsEnumerable;if("undefined"!==typeof Element&&!Element.prototype.addEventListener){var Ie=function(e){e||(e=window.event);for(var t=0,n=0,r=Le[e.type];n8&&(ze=!0)}var De=ze?Promise.resolve().then.bind(Promise.resolve()):setTimeout,Fe=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,He=[],Ve=Ne.mapping,Ge=0,Qe=[],We=0,Xe=!1,Je=!1,Ze={},qe=0,Ye=function(){function e(t,n){Z(this,e),this.props=i({},this.constructor.defaultProps,t),this.elementId=qe++,this._preCss=null,this.store=n,this.computed={}}return e.prototype.update=function(e,t,n){this._willUpdate||(this._willUpdate=!0,n&&(this._renderCallbacks=this._renderCallbacks||[]).push(n),W(this,2),Ne.componentChange&&Ne.componentChange(this,this.base),this._willUpdate=!1)},e.prototype.updateSelf=function(){this._willUpdateSelf||(this._willUpdateSelf=!0,W(this,2,null,null,!0),this._willUpdateSelf=!1)},e.prototype.fire=function(e,t){var n=this;Object.keys(this.props).every(function(r){return"on"+e.toLowerCase()!==r.toLowerCase()||(n.props[r]({detail:t}),!1)})},e.prototype.render=function(){},e}();Ye.is="WeElement";var Ke=["concat","copyWithin","fill","pop","push","reverse","shift","sort","splice","unshift","size"].join(","),et=["concat","copyWithin","entries","every","fill","filter","find","findIndex","forEach","includes","indexOf","join","keys","lastIndexOf","map","pop","push","reduce","reduceRight","reverse","shift","slice","some","sort","splice","toLocaleString","toString","unshift","values","size"];q.add=function(e,t){K(e,t,e.$_o_.$_p_,e.$_o_.$_r_)},q.set=function(e,t,n){void 0===e[t]&&K(e,t,e.$_o_.$_p_,e.$_o_.$_r_),e[t]=n},Array.prototype.size=function(e){this.length=e};var tt=["use","useSelf"],nt={}.hasOwnProperty,rt=function(e){return String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""")},ot=function(e,t){return String(e).replace(/(\n+)/g,"$1"+(t||"\t"))},it=Ne.mapping,at=/^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/,st=function(e,t,n){return String(e).length>(t||40)||!n&&-1!==String(e).indexOf("\n")||-1!==String(e).indexOf("<")},ut={};r.f=d;var ct=Ye,lt=ge;Ne.root.Omi={h:r,createElement:r,cloneElement:h,createRef:Ce,Component:Ye,render:ue,rerender:y,options:Ne,WeElement:ct,define:ge,rpx:_e,defineElement:lt,classNames:Ae,extractClass:xe,getHost:Oe,renderToString:Se,tag:we,merge:le,obaa:q},Ne.root.omi=Ne.root.Omi,Ne.root.Omi.version="omio-2.8.3";var ft={h:r,createElement:r,cloneElement:h,createRef:Ce,Component:Ye,render:ue,rerender:y,options:Ne,WeElement:ct,define:ge,rpx:_e,defineElement:lt,classNames:Ae,extractClass:xe,getHost:Oe,renderToString:Se,tag:we,merge:le,obaa:q};t.default=ft,t.h=r,t.createElement=r,t.cloneElement=h,t.createRef=Ce,t.Component=Ye,t.render=ue,t.rerender=y,t.options=Ne,t.WeElement=ct,t.define=ge,t.rpx=_e,t.defineElement=lt,t.classNames=Ae,t.extractClass=xe,t.getHost=Oe,t.renderToString=Se,t.tag=we,t.merge=le,t.obaa=q}).call(t,n(2))},function(e,t,n){"use strict";function r(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"===typeof btoa){var i=o(r);return[n].concat(r.sources.map(function(e){return"/*# sourceURL="+r.sourceRoot+e+" */"})).concat([i]).join("\n")}return[n].join("\n")}function o(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+" */"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=r(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n}).join("")},t.i=function(e,n){"string"===typeof e&&(e=[[null,e,""]]);for(var r={},o=0;oc){for(var t=0,n=a.length-u;t-1?t:e}function d(e,t){t=t||{};var n=t.body;if(e instanceof d){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new o(e.headers)),this.method=e.method,this.mode=e.mode,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new o(t.headers)),this.method=p(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function h(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(o))}}),t}function m(e){var t=new o;return e.split(/\r?\n/).forEach(function(e){var n=e.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();t.append(r,o)}}),t}function y(e,t){t||(t={}),this.type="default",this.status="status"in t?t.status:200,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new o(t.headers),this.url=t.url||"",this._initBody(e)}if(!e.fetch){var b={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(b.arrayBuffer)var v=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],g=function(e){return e&&DataView.prototype.isPrototypeOf(e)},_=ArrayBuffer.isView||function(e){return e&&v.indexOf(Object.prototype.toString.call(e))>-1};o.prototype.append=function(e,r){e=t(e),r=n(r);var o=this.map[e];this.map[e]=o?o+","+r:r},o.prototype.delete=function(e){delete this.map[t(e)]},o.prototype.get=function(e){return e=t(e),this.has(e)?this.map[e]:null},o.prototype.has=function(e){return this.map.hasOwnProperty(t(e))},o.prototype.set=function(e,r){this.map[t(e)]=n(r)},o.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},o.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),r(e)},o.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),r(e)},o.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),r(e)},b.iterable&&(o.prototype[Symbol.iterator]=o.prototype.entries);var w=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];d.prototype.clone=function(){return new d(this,{body:this._bodyInit})},f.call(d.prototype),f.call(y.prototype),y.prototype.clone=function(){return new y(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new o(this.headers),url:this.url})},y.error=function(){var e=new y(null,{status:0,statusText:""});return e.type="error",e};var A=[301,302,303,307,308];y.redirect=function(e,t){if(-1===A.indexOf(t))throw new RangeError("Invalid status code");return new y(null,{status:t,headers:{location:e}})},e.Headers=o,e.Request=d,e.Response=y,e.fetch=function(e,t){return new Promise(function(n,r){var o=new d(e,t),i=new XMLHttpRequest;i.onload=function(){var e={status:i.status,statusText:i.statusText,headers:m(i.getAllResponseHeaders()||"")};e.url="responseURL"in i?i.responseURL:e.headers.get("X-Request-URL");var t="response"in i?i.response:i.responseText;n(new y(t,e))},i.onerror=function(){r(new TypeError("Network request failed"))},i.ontimeout=function(){r(new TypeError("Network request failed"))},i.open(o.method,o.url,!0),"include"===o.credentials&&(i.withCredentials=!0),"responseType"in i&&b.blob&&(i.responseType="blob"),o.headers.forEach(function(e,t){i.setRequestHeader(t,e)}),i.send("undefined"===typeof o._bodyInit?null:o._bodyInit)})},e.fetch.polyfill=!0}}("undefined"!==typeof self?self:void 0)},function(e,t,n){"use strict";function r(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}var o=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,s,u=r(e),c=1;c0)return!1;return!0}},{key:"render",value:function(){if(this.demo)return Omi.h("div",null,this.show&&Omi.h("iframe",{style:"height:"+(window.innerHeight-59)+"px",src:this.demo}),!this.show&&Omi.h("div",{class:"switch code",onClick:this.onShow},Omi.h("img",{src:n(32)})),this.show&&Omi.h("div",{class:"switch close",onClick:this.onClose},Omi.h("img",{src:n(33)})))}}]),t}(s.WeElement))},function(e,t,n){var r=n(31);r&&r.__esModule&&(r=r.default),e.exports="string"===typeof r?r:r.toString()},function(e,t,n){t=e.exports=n(1)(void 0),t.push([e.i,"iframe{\n width: 750px;\n height: 100%;\n top: 60px;\n right: 0;\n position: fixed;\n border: none;\n z-index: 9999;\n border-left: 2px solid #24292E;\n}\n\n.switch{\n width: 40px;\n height: 40px;\n background-color: #AA0000;\n border-radius: 50%;\n position: fixed;\n right: 50px;\n bottom: 50px;\n cursor: pointer;\n text-align: center;\n z-index: 10000;\n}\n\n.switch img{\n width: 30px;\n height: 30px;\n margin-top:5px;\n}\n\n.switch.close img{\n margin-top:10px;\n width: 20px;\n height: 20px;\n}\n\n\n@media only screen and (max-width: 800px) {\n iframe{\n width: 100%;\n }\n}\n",""])},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfiDBQMEgYVXhFiAAABVklEQVRIx+3UsU4UURSA4TNARoiJcR9BCwwJNNpRU0hjpS+hDTTyGkAD1UJnRzCbYKRAKzt9AaMxJoR+Ewho8dEMm5nZOzObbfVUM+ec/79n7uTeiP8xUfjiq6Xp8Ufg6fSCN7iQpasztebcttVaz3pEnGQirNqWt62VG2CoV8rNu8TLCD1DDBoVBc5BeVzr+OthhMwBjQq59wVe+Sy7+FQ8Z/bBB/MT4hG+4+3oLa0Y4f0x/AlYLmUyezVFMx5hE79ruaqiDY9wir2xbFnhqAW/7xovEpUZfXCUwEqxFvfiJs5ae+SO0/sfYR8fE8zdvzi524UGhV/Y6MCbp7ACFjvxiuKd2VFuCz/GNu8wgacVPmNnQrxQlA6TB/7geWX4tsNUUgz1IrzClYVStes4F4riQtHHoFbtulAq457j9UTNScEz8Li7c64hfxXf4jr7OfUE/1TcAoyIn6j/RilHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTEyLTIwVDExOjE4OjA2KzAxOjAwT3khJwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMi0yMFQxMToxODowNiswMTowMD4kmZsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC"},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAQAAACROWYpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiDBQMERzDEbvbAAAArElEQVQ4y6XVOw6DMBBFUSf7SmGy2ZCNBerIJN2lAQn/34ArZHFsi3mDHW9mvDMOPDOjYwKCjeMJwGd/MPBI8OALBJ4S3d8e0okuz6jOi1TjVdrnTdrmXVrnEi1zmebcRGNupgf+YzHTjS8A/Ov0Lqxzs+97PLbUMukHG2wd59LimHheHJmX6yrxeiS6vJ2mJu8Hscq1DBe5Hv+M2zon4pd++teum5Hp5EX3WgGu+8eCI/n/bQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0xMi0yMFQxMToxNzoyOCswMTowMKxoBooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMTItMjBUMTE6MTc6MjgrMDE6MDDdNb42AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg=="},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t,n){for(var r=n.menus[t],o=0,i=r.length;o-1)&&(m=w,a=a.slice(0,_))}a&&(r.push(a),a="",f=!1);var A="+"===g||"*"===g,x="?"===g||"*"===g,O=b||v,E=m||c;r.push({name:y||o++,prefix:m,delimiter:E,optional:x,repeat:A,pattern:O?u(O):"[^"+s(E===c?E:E+c)+"]+?"})}}return(a||i0&&(n[t[r].replace(":","")]=e)}),n}function b(e,t){T[e]={callback:t,reg:_(e)}}function v(e){e=e.replace(/#.*$/,"");var t,n=e.split(/[?&]/).slice(1),r={};for(t=0;t2;)Me.push(arguments[a]);for(t&&null!=t.children&&(Me.length||Me.push(t.children),delete t.children);Me.length;)if((o=Me.pop())&&void 0!==o.pop)for(a=o.length;a--;)Me.push(o[a]);else"boolean"===typeof o&&(o=null),(i="function"!==typeof e)&&(null==o?o="":"number"===typeof o?o=String(o):"string"!==typeof o&&(i=!1)),i&&r?s[s.length-1]+=o:0===s.length?s=[o]:s.push(o),r=i;var u=new n;return u.nodeName=e,u.children=s,u.attributes=null==t?void 0:t,u.key=null==t?void 0:t.key,void 0!==Ne.vnode&&Ne.vnode(u),u}function o(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function i(e,t){for(var n,r,i=o(e),a=1;a2?[].slice.call(arguments,2):e.children)}function m(e){1==He.push(e)&&(Ne.debounceRendering||De)(y)}function y(){for(var e;e=He.pop();)W(e)}function b(e,t,n){if("string"===typeof t||"number"===typeof t)return void 0!==e.splitText;if("string"===typeof t.nodeName){var r=Ve[t.nodeName];return r?n||e._componentConstructor===r:!e._componentConstructor&&v(e,t.nodeName)}return n||e._componentConstructor===t.nodeName}function v(e,t){return e.normalizedNodeName===t||e.nodeName.toLowerCase()===t.toLowerCase()}function g(e){var t=a({},e.attributes);t.children=e.children;var n=e.nodeName.defaultProps;if(void 0!==n)for(var r in n)void 0===t[r]&&(t[r]=n[r]);return t}function _(e,t){var n=t?Ne.doc.createElementNS("http://www.w3.org/2000/svg",e):Ne.doc.createElement(e);return n.normalizedNodeName=e,n}function w(e){for(var t=e.replace(/\/\*(.|\s)*?\*\//g," ").replace(/\s+/g," "),n={},r=t.match(/ ?(.*?) ?{([^}]*)}/)||[o,i,t],o=r[0],i=r[1],a=r[2],s=a.split(";").map(function(e){return e.split(":").map(function(e){return e&&e.trim()})}),u=s,u=Array.isArray(u),u=0,u=u||u[Symbol.iterator]();;){var c;if(u){if(u>=u.length)break;c=u[u++]}else{if(u=u.next(),u.done)break;c=u.value}var l=c,f=l[0],p=l[1];n[function(e){return e.replace(/\W+\w/g,function(e){return e.slice(-1).toUpperCase()})}(f)]=p}return n}function A(e){var t=e.parentNode;t&&t.removeChild(e)}function x(e,t,n,r,o){if("className"===t&&(t="class"),"key"===t);else if("ref"===t)s(n,null),s(r,e);else if("class"!==t||o)if("style"===t)if(Ne.isWeb){if(r&&"string"!==typeof r&&"string"!==typeof n||(e.style.cssText=r||""),r&&"object"===("undefined"===typeof r?"undefined":Pe(r))){if("string"!==typeof n)for(var i in n)i in r||(e.style[i]="");for(var i in r)e.style[i]="number"===typeof r[i]&&!1===Fe.test(i)?r[i]+"px":r[i]}}else{var a=n,u=r;"string"===typeof n&&(a=w(n)),"string"==typeof r&&(u=w(r));var c={},l=!1;if(a){for(var f in a)"object"!=("undefined"===typeof u?"undefined":Pe(u))||f in u||(c[f]="",l=!0);for(var p in u)u[p]!==a[p]&&(c[p]=u[p],l=!0);l&&e.setStyles(c)}else e.setStyles(u)}else if("dangerouslySetInnerHTML"===t)r&&(e.innerHTML=r.__html||"");else if("o"==t[0]&&"n"==t[1]){var d=t!==(t=t.replace(/Capture$/,"")),h=t.toLowerCase();t=(h in e?h:t).slice(2),r?n||(e.addEventListener(t,E,d),"tap"==t&&(e.addEventListener("touchstart",S,d),e.addEventListener("touchend",j,d))):(e.removeEventListener(t,E,d),"tap"==t&&(e.removeEventListener("touchstart",S,d),e.removeEventListener("touchend",j,d))),(e._listeners||(e._listeners={}))[t]=r}else if("list"!==t&&"tagName"!==t&&"form"!==t&&"type"!==t&&"size"!==t&&"download"!==t&&"href"!==t&&!o&&t in e)O(e,t,null==r?"":r);else{var m=o&&t!==(t=t.replace(/^xlink:?/,""));null==r||!1===r?m?e.removeAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase()):e.removeAttribute(t):"function"!==typeof r&&(m?e.setAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase(),r):e.setAttribute(t,r))}else e.className=r||""}function O(e,t,n){try{e[t]=n}catch(e){}}function E(e){return this._listeners[e.type](Ne.event&&Ne.event(e)||e)}function S(e){this.___touchX=e.touches[0].pageX,this.___touchY=e.touches[0].pageY,this.___scrollTop=document.body.scrollTop}function j(e){Math.abs(e.changedTouches[0].pageX-this.___touchX)<30&&Math.abs(e.changedTouches[0].pageY-this.___touchY)<30&&Math.abs(document.body.scrollTop-this.___scrollTop)<30&&this.dispatchEvent(new CustomEvent("tap",{detail:e}))}function k(e){for(var t=0,n=Ne.styleCache.length;t-1;)if(t===e[n])return!0;return!1}function se(e,t){return"#"===t?e:t.split("-")[1]}function ue(e,t,n,r,o){if(t="string"===typeof t?document.querySelector(t):t,n)if(n.data)ce(n);else{Ne.isMultiStore=!0;for(var i in n)n[i].data&&ce(n[i],i)}if(r)for(;t.firstChild;)t.removeChild(t.firstChild);return o&&(o="string"===typeof o?document.querySelector(o):o),I(o,e,n,!1,t,!1)}function ce(e,t){e.instances=[],e.updateSelfInstances=[],fe(e,t),q(e.data,function(t,n,r,o){var i={};i[me(o+"-"+t)]=!0,e.update(i)})}function le(e,t,n){return ce(n),t="string"===typeof t?document.querySelector(t):t,I(t,e,n)}function fe(e,t){e.update=function(n){Object.keys(n).length>0&&(this.instances.forEach(function(r){pe(r,t),t?r._updatePath&&r._updatePath[t]&&de(n,r._updatePath[t])&&(r.use&&c(e.data,("function"===typeof r.use?r.use():r.use)[t],r.using,t),r.update()):r._updatePath&&de(n,r._updatePath)&&(r.use&&(r.using=c(e.data,"function"===typeof r.use?r.use():r.use)),r.update())}),this.updateSelfInstances.forEach(function(r){pe(r,t),t?r._updateSelfPath&&r._updateSelfPath[t]&&de(n,r._updateSelfPath[t])&&(r.useSelf&&c(e.data,("function"===typeof r.useSelf?r.useSelf():r.useSelf)[t],r.usingSelf,t),r.updateSelf()):r._updateSelfPath&&de(n,r._updateSelfPath)&&(r.usingSelf=c(e.data,"function"===typeof r.useSelf?r.useSelf():r.useSelf),r.updateSelf())}),this.onChange&&this.onChange(n))}}function pe(e,t){if(e.compute)for(var n in e.compute)e.computed[n]=e.compute[n].call(t?e.store:e.store.data)}function de(e,t){for(var n in e){if(t[n])return!0;for(var r in t)if(he(n,r))return!0}return!1}function he(e,t){if(0===e.indexOf(t)){var n=e.substr(t.length,1);if("["===n||"."===n)return!0}return!1}function me(e){var t="";return e.replace("#-","").split("-").forEach(function(e,n){n?isNaN(Number(e))?t+="."+e:t+="["+e+"]":t+=e}),t}function ye(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function be(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==("undefined"===typeof t?"undefined":Pe(t))&&"function"!==typeof t?e:t}function ve(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+("undefined"===typeof t?"undefined":Pe(t)));e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function ge(e,t,n){if("WeElement"===t.is)Ne.mapping[e]=t;else{n="string"===typeof n?{css:n}:n||{};var r=function(e){function r(){var t,o,i;ye(this,r);for(var a=arguments.length,s=Array(a),u=0;u0)return{class:Ae.apply(null,n)}}function Oe(e){var t=e.base;if(t)for(;t.parentNode;){if(t.parentNode._component)return t.parentNode._component;t=t.parentNode}}function Ee(e){var t="";for(var n in e){var r=e[n];null!=r&&(t&&(t+=" "),t+=ut[n]||(ut[n]=n.replace(/([A-Z])/g,"-$1").toLowerCase()),t+=": ",t+=r,"number"===typeof r&&!1===IS_NON_DIMENSIONAL.test(n)&&(t+="px"),t+=";")}return t||void 0}function Se(e,t,n,r){n=n||{},t=Object.assign({scopedCSS:!0},t);var o={},i=je(e,t,n,r,o);return{css:Object.values(o),html:i}}function je(e,t,n,r,o){if(null==e||"boolean"===typeof e)return"";var i=e.nodeName,a=e.attributes,s=!1,u=t.pretty,c=u&&"string"===typeof u?u:"\t";if("object"!==("undefined"===typeof e?"undefined":Pe(e))&&!i)return rt(e);var l=it[i];if(l){s=!0;var f,p=Te(e),d=new l(p,n);if(d._disable=d.__x=!0,d.props=p,d.store=n,d.install&&d.install(),d.beforeRender&&d.beforeRender(),f=d.render(d.props,d.store),t.scopedCSS){if(d.constructor.css||d.css){var h=d.constructor.css?d.constructor.css:"function"===typeof d.css?d.css():d.css,m="_s"+k(d.constructor);o[m]={id:m,css:T(h,m)},N(f,m)}d.scopedCSSAttr=e.css,R(f,d.scopedCSSAttr)}return je(f,t,n,!1,o)}var y,b="";if(a){var v=Object.keys(a);t&&!0===t.sortAttributes&&v.sort();for(var g=0;g]/)&&(t&&t.allAttributes||"key"!==_&&"ref"!==_))){if("className"===_){if(a.class)continue;_="class"}else r&&_.match(/^xlink:?./)&&(_=_.toLowerCase().replace(/^xlink:?/,"xlink:"));"style"===_&&w&&"object"===("undefined"===typeof w?"undefined":Pe(w))&&(w=Ee(w));var A=t.attributeHook&&t.attributeHook(_,w,n,t,s);if(A||""===A)b+=A;else if("dangerouslySetInnerHTML"===_)y=w&&w.__html;else if((w||0===w||""===w)&&"function"!==typeof w){if((!0===w||""===w)&&(w=_,!t||!t.xml)){b+=" "+_;continue}b+=" "+_+'="'+rt(w)+'"'}}}}if(u){var x=b.replace(/^\n\s*/," ");x===b||~x.indexOf("\n")?u&&~b.indexOf("\n")&&(b+="\n"):b=x}if(b="<"+i+b+">",String(i).match(/[\s\n\\/='"\0<>]/))throw b;var O=String(i).match(at);O&&(b=b.replace(/>$/," />"));var E=[];if(y)u&&st(y)&&(y="\n"+c+ot(y,c)),b+=y;else if(e.children){for(var S=u&&~b.indexOf("\n"),g=0;g";return O||(u&&~b.indexOf("\n")&&(b+="\n"),b+=""),b}function ke(e,t){for(var n in t)e[n]=t[n];return e}function Te(e){var t=ke({},e.attributes);t.children=e.children;var n=e.nodeName.defaultProps;if(void 0!==n)for(var r in n)void 0===t[r]&&(t[r]=n[r]);return t}function Ce(){return{}}Object.defineProperty(t,"__esModule",{value:!0});var Pe="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ne={scopedStyle:!0,mapping:{},isWeb:!0,staticStyleMapping:{},doc:"object"===("undefined"===typeof document?"undefined":Pe(document))?document:null,root:function(){return"object"===("undefined"===typeof e?"undefined":Pe(e))&&e&&e.Math===Math&&e.Array===Array?e:"undefined"!==typeof self?self:"undefined"!==typeof window?window:"undefined"!==typeof e?e:function(){return this}()}(),styleCache:[],isMultiStore:!1},Me=[],Be=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Ue=Object.prototype.propertyIsEnumerable;if("undefined"!==typeof Element&&!Element.prototype.addEventListener){var Ie=function(e){e||(e=window.event);for(var t=0,n=0,r=Le[e.type];n8&&(ze=!0)}var De=ze?Promise.resolve().then.bind(Promise.resolve()):setTimeout,Fe=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,He=[],Ve=Ne.mapping,Ge=0,Qe=[],We=0,Xe=!1,Je=!1,Ze={},qe=0,Ye=function(){function e(t,n){Z(this,e),this.props=i({},this.constructor.defaultProps,t),this.elementId=qe++,this._preCss=null,this.store=n,this.computed={}}return e.prototype.update=function(e,t,n){this._willUpdate||(this._willUpdate=!0,n&&(this._renderCallbacks=this._renderCallbacks||[]).push(n),W(this,2),Ne.componentChange&&Ne.componentChange(this,this.base),this._willUpdate=!1)},e.prototype.updateSelf=function(){this._willUpdateSelf||(this._willUpdateSelf=!0,W(this,2,null,null,!0),this._willUpdateSelf=!1)},e.prototype.fire=function(e,t){var n=this;Object.keys(this.props).every(function(r){return"on"+e.toLowerCase()!==r.toLowerCase()||(n.props[r]({detail:t}),!1)})},e.prototype.render=function(){},e}();Ye.is="WeElement";var Ke=["concat","copyWithin","fill","pop","push","reverse","shift","sort","splice","unshift","size"].join(","),et=["concat","copyWithin","entries","every","fill","filter","find","findIndex","forEach","includes","indexOf","join","keys","lastIndexOf","map","pop","push","reduce","reduceRight","reverse","shift","slice","some","sort","splice","toLocaleString","toString","unshift","values","size"];q.add=function(e,t){K(e,t,e.$_o_.$_p_,e.$_o_.$_r_)},q.set=function(e,t,n){void 0===e[t]&&K(e,t,e.$_o_.$_p_,e.$_o_.$_r_),e[t]=n},Array.prototype.size=function(e){this.length=e};var tt=["use","useSelf"],nt={}.hasOwnProperty,rt=function(e){return String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""")},ot=function(e,t){return String(e).replace(/(\n+)/g,"$1"+(t||"\t"))},it=Ne.mapping,at=/^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/,st=function(e,t,n){return String(e).length>(t||40)||!n&&-1!==String(e).indexOf("\n")||-1!==String(e).indexOf("<")},ut={};r.f=d;var ct=Ye,lt=ge;Ne.root.Omi={h:r,createElement:r,cloneElement:h,createRef:Ce,Component:Ye,render:ue,rerender:y,options:Ne,WeElement:ct,define:ge,rpx:_e,defineElement:lt,classNames:Ae,extractClass:xe,getHost:Oe,renderToString:Se,tag:we,merge:le,obaa:q},Ne.root.omi=Ne.root.Omi,Ne.root.Omi.version="omio-2.8.3";var ft={h:r,createElement:r,cloneElement:h,createRef:Ce,Component:Ye,render:ue,rerender:y,options:Ne,WeElement:ct,define:ge,rpx:_e,defineElement:lt,classNames:Ae,extractClass:xe,getHost:Oe,renderToString:Se,tag:we,merge:le,obaa:q};t.default=ft,t.h=r,t.createElement=r,t.cloneElement=h,t.createRef=Ce,t.Component=Ye,t.render=ue,t.rerender=y,t.options=Ne,t.WeElement=ct,t.define=ge,t.rpx=_e,t.defineElement=lt,t.classNames=Ae,t.extractClass=xe,t.getHost=Oe,t.renderToString=Se,t.tag=we,t.merge=le,t.obaa=q}).call(t,n(2))},function(e,t,n){"use strict";function r(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"===typeof btoa){var i=o(r);return[n].concat(r.sources.map(function(e){return"/*# sourceURL="+r.sourceRoot+e+" */"})).concat([i]).join("\n")}return[n].join("\n")}function o(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+" */"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=r(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n}).join("")},t.i=function(e,n){"string"===typeof e&&(e=[[null,e,""]]);for(var r={},o=0;oc){for(var t=0,n=a.length-u;t-1?t:e}function d(e,t){t=t||{};var n=t.body;if(e instanceof d){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new o(e.headers)),this.method=e.method,this.mode=e.mode,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new o(t.headers)),this.method=p(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function h(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(o))}}),t}function m(e){var t=new o;return e.split(/\r?\n/).forEach(function(e){var n=e.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();t.append(r,o)}}),t}function y(e,t){t||(t={}),this.type="default",this.status="status"in t?t.status:200,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new o(t.headers),this.url=t.url||"",this._initBody(e)}if(!e.fetch){var b={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(b.arrayBuffer)var v=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],g=function(e){return e&&DataView.prototype.isPrototypeOf(e)},_=ArrayBuffer.isView||function(e){return e&&v.indexOf(Object.prototype.toString.call(e))>-1};o.prototype.append=function(e,r){e=t(e),r=n(r);var o=this.map[e];this.map[e]=o?o+","+r:r},o.prototype.delete=function(e){delete this.map[t(e)]},o.prototype.get=function(e){return e=t(e),this.has(e)?this.map[e]:null},o.prototype.has=function(e){return this.map.hasOwnProperty(t(e))},o.prototype.set=function(e,r){this.map[t(e)]=n(r)},o.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},o.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),r(e)},o.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),r(e)},o.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),r(e)},b.iterable&&(o.prototype[Symbol.iterator]=o.prototype.entries);var w=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];d.prototype.clone=function(){return new d(this,{body:this._bodyInit})},f.call(d.prototype),f.call(y.prototype),y.prototype.clone=function(){return new y(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new o(this.headers),url:this.url})},y.error=function(){var e=new y(null,{status:0,statusText:""});return e.type="error",e};var A=[301,302,303,307,308];y.redirect=function(e,t){if(-1===A.indexOf(t))throw new RangeError("Invalid status code");return new y(null,{status:t,headers:{location:e}})},e.Headers=o,e.Request=d,e.Response=y,e.fetch=function(e,t){return new Promise(function(n,r){var o=new d(e,t),i=new XMLHttpRequest;i.onload=function(){var e={status:i.status,statusText:i.statusText,headers:m(i.getAllResponseHeaders()||"")};e.url="responseURL"in i?i.responseURL:e.headers.get("X-Request-URL");var t="response"in i?i.response:i.responseText;n(new y(t,e))},i.onerror=function(){r(new TypeError("Network request failed"))},i.ontimeout=function(){r(new TypeError("Network request failed"))},i.open(o.method,o.url,!0),"include"===o.credentials&&(i.withCredentials=!0),"responseType"in i&&b.blob&&(i.responseType="blob"),o.headers.forEach(function(e,t){i.setRequestHeader(t,e)}),i.send("undefined"===typeof o._bodyInit?null:o._bodyInit)})},e.fetch.polyfill=!0}}("undefined"!==typeof self?self:void 0)},function(e,t,n){"use strict";function r(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}var o=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,s,u=r(e),c=1;c0)return!1;return!0}},{key:"render",value:function(){if(this.demo)return Omi.h("div",null,this.show&&Omi.h("iframe",{style:"height:"+(window.innerHeight-59)+"px",src:this.demo}),!this.show&&Omi.h("div",{class:"switch code",onClick:this.onShow},Omi.h("img",{src:n(32)})),this.show&&Omi.h("div",{class:"switch close",onClick:this.onClose},Omi.h("img",{src:n(33)})))}}]),t}(s.WeElement))},function(e,t,n){var r=n(31);r&&r.__esModule&&(r=r.default),e.exports="string"===typeof r?r:r.toString()},function(e,t,n){t=e.exports=n(1)(void 0),t.push([e.i,"iframe{\n width: 750px;\n height: 100%;\n top: 60px;\n right: 0;\n position: fixed;\n border: none;\n z-index: 9999;\n border-left: 2px solid #24292E;\n}\n\n.switch{\n width: 40px;\n height: 40px;\n background-color: #AA0000;\n border-radius: 50%;\n position: fixed;\n right: 50px;\n bottom: 50px;\n cursor: pointer;\n text-align: center;\n z-index: 10000;\n}\n\n.switch img{\n width: 30px;\n height: 30px;\n margin-top:5px;\n}\n\n.switch.close img{\n margin-top:10px;\n width: 20px;\n height: 20px;\n}\n\n\n@media only screen and (max-width: 800px) {\n iframe{\n width: 100%;\n }\n}\n",""])},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfiDBQMEgYVXhFiAAABVklEQVRIx+3UsU4UURSA4TNARoiJcR9BCwwJNNpRU0hjpS+hDTTyGkAD1UJnRzCbYKRAKzt9AaMxJoR+Ewho8dEMm5nZOzObbfVUM+ec/79n7uTeiP8xUfjiq6Xp8Ufg6fSCN7iQpasztebcttVaz3pEnGQirNqWt62VG2CoV8rNu8TLCD1DDBoVBc5BeVzr+OthhMwBjQq59wVe+Sy7+FQ8Z/bBB/MT4hG+4+3oLa0Y4f0x/AlYLmUyezVFMx5hE79ruaqiDY9wir2xbFnhqAW/7xovEpUZfXCUwEqxFvfiJs5ae+SO0/sfYR8fE8zdvzi524UGhV/Y6MCbp7ACFjvxiuKd2VFuCz/GNu8wgacVPmNnQrxQlA6TB/7geWX4tsNUUgz1IrzClYVStes4F4riQtHHoFbtulAq457j9UTNScEz8Li7c64hfxXf4jr7OfUE/1TcAoyIn6j/RilHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTEyLTIwVDExOjE4OjA2KzAxOjAwT3khJwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMi0yMFQxMToxODowNiswMTowMD4kmZsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC"},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAQAAACROWYpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiDBQMERzDEbvbAAAArElEQVQ4y6XVOw6DMBBFUSf7SmGy2ZCNBerIJN2lAQn/34ArZHFsi3mDHW9mvDMOPDOjYwKCjeMJwGd/MPBI8OALBJ4S3d8e0okuz6jOi1TjVdrnTdrmXVrnEi1zmebcRGNupgf+YzHTjS8A/Ov0Lqxzs+97PLbUMukHG2wd59LimHheHJmX6yrxeiS6vJ2mJu8Hscq1DBe5Hv+M2zon4pd++teum5Hp5EX3WgGu+8eCI/n/bQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0xMi0yMFQxMToxNzoyOCswMTowMKxoBooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMTItMjBUMTE6MTc6MjgrMDE6MDDdNb42AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg=="},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t,n){for(var r=n.menus[t],o=0,i=r.length;o-1)&&(m=w,a=a.slice(0,_))}a&&(r.push(a),a="",f=!1);var A="+"===g||"*"===g,x="?"===g||"*"===g,O=b||v,E=m||c;r.push({name:y||o++,prefix:m,delimiter:E,optional:x,repeat:A,pattern:O?u(O):"[^"+s(E===c?E:E+c)+"]+?"})}}return(a||i0&&(n[t[r].replace(":","")]=e)}),n}function b(e,t){T[e]={callback:t,reg:_(e)}}function v(e){e=e.replace(/#.*$/,"");var t,n=e.split(/[?&]/).slice(1),r={};for(t=0;tHello!`\n *\n * can be constructed using this function as:\n *\n * `h('div', { id: 'foo', name : 'bar' }, 'Hello!');`\n *\n * @param {string} nodeName\tAn element name. Ex: `div`, `a`, `span`, etc.\n * @param {Object} attributes\tAny attributes/props to set on the created element.\n * @param rest\t\t\tAdditional arguments are taken to be children to append. Can be infinitely nested Arrays.\n *\n * @public\n */function h(nodeName,attributes){var children=[],lastSimple,child,simple,i;for(i=arguments.length;i-->2;){stack.push(arguments[i]);}if(attributes&&attributes.children!=null){if(!stack.length)stack.push(attributes.children);delete attributes.children;}while(stack.length){if((child=stack.pop())&&child.pop!==undefined){for(i=child.length;i--;){stack.push(child[i]);}}else{if(typeof child==='boolean')child=null;if(simple=typeof nodeName!=='function'){if(child==null)child='';else if(typeof child==='number')child=String(child);else if(typeof child!=='string')simple=false;}if(simple&&lastSimple){children[children.length-1]+=child;}else if(children.length===0){children=[child];}else{children.push(child);}lastSimple=simple;}}var p=new VNode();p.nodeName=nodeName;p.children=children;p.attributes=attributes==null?undefined:attributes;p.key=attributes==null?undefined:attributes.key;// if a \"vnode hook\" is defined, pass every created VNode to it\nif(options.vnode!==undefined)options.vnode(p);return p;}/* eslint-disable no-unused-vars */var getOwnPropertySymbols=Object.getOwnPropertySymbols;var hasOwnProperty=Object.prototype.hasOwnProperty;var propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(val){if(val===null||val===undefined){throw new TypeError('Object.assign cannot be called with null or undefined');}return Object(val);}function assign(target,source){var from;var to=toObject(target);var symbols;for(var s=1;s8){usePromise=true;}}}var defer=usePromise?Promise.resolve().then.bind(Promise.resolve()):setTimeout;function isArray(obj){return Object.prototype.toString.call(obj)==='[object Array]';}function getUse(data,paths,out,name){var obj=[];paths.forEach(function(path,index){var isPath=typeof path==='string';if(isPath){obj[index]=getTargetByPath(data,path);}else{var key=Object.keys(path)[0];var value=path[key];if(typeof value==='string'){obj[index]=getTargetByPath(data,value);}else{var tempPath=value[0];if(typeof tempPath==='string'){var tempVal=getTargetByPath(data,tempPath);obj[index]=value[1]?value[1](tempVal):tempVal;}else{var args=[];tempPath.forEach(function(path){args.push(getTargetByPath(data,path));});obj[index]=value[1].apply(null,args);}}obj[key]=obj[index];}});out&&(out[name]=obj);return obj;}function getTargetByPath(origin,path){var arr=path.replace(/]/g,'').replace(/\\[/g,'.').split('.');var current=origin;for(var i=0,len=arr.length;i2?[].slice.call(arguments,2):vnode.children);}// DOM properties that should NOT have \"px\" added when numeric\nvar IS_NON_DIMENSIONAL$1=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;/** Managed queue of dirty components to be re-rendered */var items=[];function enqueueRender(component){if(items.push(component)==1){(options.debounceRendering||defer)(rerender);}}/** Rerender all enqueued dirty components */function rerender(){var p;while(p=items.pop()){renderComponent(p);}}var mapping=options.mapping;/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node\t\t\tDOM Node to compare\n * @param {VNode} vnode\t\t\tVirtual DOM node to compare\n * @param {boolean} [hydrating=false]\tIf true, ignores component constructors when comparing.\n * @private\n */function isSameNodeType(node,vnode,hydrating){if(typeof vnode==='string'||typeof vnode==='number'){return node.splitText!==undefined;}if(typeof vnode.nodeName==='string'){var ctor=mapping[vnode.nodeName];if(ctor){return hydrating||node._componentConstructor===ctor;}return!node._componentConstructor&&isNamedNode(node,vnode.nodeName);}return hydrating||node._componentConstructor===vnode.nodeName;}/**\n * Check if an Element has a given nodeName, case-insensitively.\n *\n * @param {Element} node\tA DOM Element to inspect the name of.\n * @param {String} nodeName\tUnnormalized name to compare against.\n */function isNamedNode(node,nodeName){return node.normalizedNodeName===nodeName||node.nodeName.toLowerCase()===nodeName.toLowerCase();}/**\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 */function getNodeProps(vnode){var props=extend({},vnode.attributes);props.children=vnode.children;var defaultProps=vnode.nodeName.defaultProps;if(defaultProps!==undefined){for(var i in defaultProps){if(props[i]===undefined){props[i]=defaultProps[i];}}}return props;}/** Create an element with the given nodeName.\n *\t@param {String} nodeName\n *\t@param {Boolean} [isSvg=false]\tIf `true`, creates an element within the SVG namespace.\n *\t@returns {Element} node\n */function createNode(nodeName,isSvg){var node=isSvg?options.doc.createElementNS('http://www.w3.org/2000/svg',nodeName):options.doc.createElement(nodeName);node.normalizedNodeName=nodeName;return node;}function parseCSSText(cssText){var cssTxt=cssText.replace(/\\/\\*(.|\\s)*?\\*\\//g,' ').replace(/\\s+/g,' ');var style={},_ref=cssTxt.match(/ ?(.*?) ?{([^}]*)}/)||[a,b,cssTxt],a=_ref[0],b=_ref[1],rule=_ref[2];var cssToJs=function cssToJs(s){return s.replace(/\\W+\\w/g,function(match){return match.slice(-1).toUpperCase();});};var properties=rule.split(';').map(function(o){return o.split(':').map(function(x){return x&&x.trim();});});for(var i=properties,i=Array.isArray(i),i=0,i=i?i:i[Symbol.iterator]();;){var _ref3;if(i){if(i>=i.length)break;_ref3=i[i++];}else{i=i.next();if(i.done)break;_ref3=i.value;}var _ref2=_ref3;var property=_ref2[0];var value=_ref2[1];style[cssToJs(property)]=value;}return style;}/** Remove a child node from its parent if attached.\n *\t@param {Element} node\t\tThe node to remove\n */function removeNode(node){var parentNode=node.parentNode;if(parentNode)parentNode.removeChild(node);}/** Set a named attribute on the given Node, with special behavior for some names and event handlers.\n *\tIf `value` is `null`, the attribute/handler will be removed.\n *\t@param {Element} node\tAn element to mutate\n *\t@param {string} name\tThe name/key to set, such as an event or attribute name\n *\t@param {any} old\tThe last value that was set for this name/node pair\n *\t@param {any} value\tAn attribute value, such as a function to be used as an event handler\n *\t@param {Boolean} isSvg\tAre we currently diffing inside an svg?\n *\t@private\n */function setAccessor(node,name,old,value,isSvg){if(name==='className')name='class';if(name==='key'){// ignore\n}else if(name==='ref'){applyRef(old,null);applyRef(value,node);}else if(name==='class'&&!isSvg){node.className=value||'';}else if(name==='style'){if(options.isWeb){if(!value||typeof value==='string'||typeof old==='string'){node.style.cssText=value||'';}if(value&&(typeof value==='undefined'?'undefined':_typeof(value))==='object'){if(typeof old!=='string'){for(var i in old){if(!(i in value))node.style[i]='';}}for(var i in value){node.style[i]=typeof value[i]==='number'&&IS_NON_DIMENSIONAL$1.test(i)===false?value[i]+'px':value[i];}}}else{var oldJson=old,currentJson=value;if(typeof old==='string'){oldJson=parseCSSText(old);}if(typeof value=='string'){currentJson=parseCSSText(value);}var result={},changed=false;if(oldJson){for(var key in oldJson){if((typeof currentJson==='undefined'?'undefined':_typeof(currentJson))=='object'&&!(key in currentJson)){result[key]='';changed=true;}}for(var ckey in currentJson){if(currentJson[ckey]!==oldJson[ckey]){result[ckey]=currentJson[ckey];changed=true;}}if(changed){node.setStyles(result);}}else{node.setStyles(currentJson);}}}else if(name==='dangerouslySetInnerHTML'){if(value)node.innerHTML=value.__html||'';}else if(name[0]=='o'&&name[1]=='n'){var useCapture=name!==(name=name.replace(/Capture$/,''));var nameLower=name.toLowerCase();name=(nameLower in node?nameLower:name).slice(2);if(value){if(!old){node.addEventListener(name,eventProxy,useCapture);if(name=='tap'){node.addEventListener('touchstart',touchStart,useCapture);node.addEventListener('touchend',touchEnd,useCapture);}}}else{node.removeEventListener(name,eventProxy,useCapture);if(name=='tap'){node.removeEventListener('touchstart',touchStart,useCapture);node.removeEventListener('touchend',touchEnd,useCapture);}}(node._listeners||(node._listeners={}))[name]=value;}else if(name!=='list'&&name!=='tagName'&&// HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n// setAttribute\nname!=='form'&&name!=='type'&&name!=='size'&&name!=='download'&&name!=='href'&&!isSvg&&name in node){setProperty(node,name,value==null?'':value);}else{var ns=isSvg&&name!==(name=name.replace(/^xlink:?/,''));if(value==null||value===false){if(ns)node.removeAttributeNS('http://www.w3.org/1999/xlink',name.toLowerCase());else node.removeAttribute(name);}else if(typeof value!=='function'){if(ns)node.setAttributeNS('http://www.w3.org/1999/xlink',name.toLowerCase(),value);else node.setAttribute(name,value);}}}/** Attempt to set a DOM property to the given value.\n *\tIE & FF throw for certain property-value combinations.\n */function setProperty(node,name,value){try{node[name]=value;}catch(e){}}/** Proxy an event to hooked event handlers\n *\t@private\n */function eventProxy(e){return this._listeners[e.type](options.event&&options.event(e)||e);}function touchStart(e){this.___touchX=e.touches[0].pageX;this.___touchY=e.touches[0].pageY;this.___scrollTop=document.body.scrollTop;}function touchEnd(e){if(Math.abs(e.changedTouches[0].pageX-this.___touchX)<30&&Math.abs(e.changedTouches[0].pageY-this.___touchY)<30&&Math.abs(document.body.scrollTop-this.___scrollTop)<30){this.dispatchEvent(new CustomEvent('tap',{detail:e}));}}var styleId=0;function getCtorName(ctor){for(var i=0,len=options.styleCache.length;i-1;){if(item===arr[i])return true;}return false;}function getRootName(prop,path){if(path==='#'){return prop;}return path.split('-')[1];}obaa.add=function(obj,prop){watch(obj,prop,obj.$_o_.$_p_,obj.$_o_.$_r_);};obaa.set=function(obj,prop,value){if(obj[prop]===undefined){watch(obj,prop,obj.$_o_.$_p_,obj.$_o_.$_r_);}obj[prop]=value;};Array.prototype.size=function(length){this.length=length;};/** Render JSX into a `parent` Element.\n *\t@param {VNode} vnode\t\tA (JSX) VNode to render\n *\t@param {Element} parent\t\tDOM element to render into\n *\t@param {object} [store]\n *\t@public\n */function render(vnode,parent,store,empty,merge){parent=typeof parent==='string'?document.querySelector(parent):parent;if(store){if(store.data){obsStore(store);}else{options.isMultiStore=true;for(var key in store){if(store[key].data){obsStore(store[key],key);}}}}if(empty){while(parent.firstChild){parent.removeChild(parent.firstChild);}}if(merge){merge=typeof merge==='string'?document.querySelector(merge):merge;}return diff(merge,vnode,store,false,parent,false);}function obsStore(store,storeName){store.instances=[];store.updateSelfInstances=[];extendStoreUpate(store,storeName);obaa(store.data,function(prop,val,old,path){var patchs={};var key=fixPath(path+'-'+prop);patchs[key]=true;store.update(patchs);});}function merge(vnode,merge,store){obsStore(store);merge=typeof merge==='string'?document.querySelector(merge):merge;return diff(merge,vnode,store);}function extendStoreUpate(store,key){store.update=function(patch){if(Object.keys(patch).length>0){this.instances.forEach(function(instance){compute(instance,key);if(key){if(instance._updatePath&&instance._updatePath[key]&&needUpdate(patch,instance._updatePath[key])){if(instance.use){getUse(store.data,(typeof instance.use==='function'?instance.use():instance.use)[key],instance.using,key);}instance.update();}}else{if(instance._updatePath&&needUpdate(patch,instance._updatePath)){if(instance.use){instance.using=getUse(store.data,typeof instance.use==='function'?instance.use():instance.use);}instance.update();}}});this.updateSelfInstances.forEach(function(instance){compute(instance,key);if(key){if(instance._updateSelfPath&&instance._updateSelfPath[key]&&needUpdate(patch,instance._updateSelfPath[key])){if(instance.useSelf){getUse(store.data,(typeof instance.useSelf==='function'?instance.useSelf():instance.useSelf)[key],instance.usingSelf,key);}instance.updateSelf();}}else{if(instance._updateSelfPath&&needUpdate(patch,instance._updateSelfPath)){instance.usingSelf=getUse(store.data,typeof instance.useSelf==='function'?instance.useSelf():instance.useSelf);instance.updateSelf();}}});this.onChange&&this.onChange(patch);}};}function compute(instance,isMultiStore){if(instance.compute){for(var ck in instance.compute){instance.computed[ck]=instance.compute[ck].call(isMultiStore?instance.store:instance.store.data);}}}function needUpdate(diffResult,updatePath){for(var keyA in diffResult){if(updatePath[keyA]){return true;}for(var keyB in updatePath){if(includePath(keyA,keyB)){return true;}}}return false;}function includePath(pathA,pathB){if(pathA.indexOf(pathB)===0){var next=pathA.substr(pathB.length,1);if(next==='['||next==='.'){return true;}}return false;}function fixPath(path){var mpPath='';var arr=path.replace('#-','').split('-');arr.forEach(function(item,index){if(index){if(isNaN(Number(item))){mpPath+='.'+item;}else{mpPath+='['+item+']';}}else{mpPath+=item;}});return mpPath;}function _classCallCheck$1(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");}return call&&((typeof call==='undefined'?'undefined':_typeof(call))===\"object\"||typeof call===\"function\")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+(typeof superClass==='undefined'?'undefined':_typeof(superClass)));}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}var storeHelpers=['use','useSelf'];function define(name,ctor,config){if(ctor.is==='WeElement'){options.mapping[name]=ctor;}else{if(typeof config==='string'){config={css:config};}else{config=config||{};}var Comp=function(_Component){_inherits(Comp,_Component);function Comp(){var _temp,_this,_ret;_classCallCheck$1(this,Comp);for(var _len=arguments.length,args=Array(_len),key=0;key<_len;key++){args[key]=arguments[key];}return _ret=(_temp=(_this=_possibleConstructorReturn(this,_Component.call.apply(_Component,[this].concat(args))),_this),_this.compute=config.compute,_temp),_possibleConstructorReturn(_this,_ret);}Comp.prototype.render=function render(){return ctor.call(this,this);};return Comp;}(Component);Comp.css=config.css;Comp.propTypes=config.propTypes;Comp.defaultProps=config.defaultProps;var _loop=function _loop(key){if(typeof config[key]==='function'){Comp.prototype[key]=function(){return config[key].apply(this,arguments);};}};for(var key in config){_loop(key);}storeHelpers.forEach(function(func){if(config[func]&&config[func]!=='function'){Comp.prototype[func]=function(){return config[func];};}});options.mapping[name]=Comp;}}function rpx(str){return str.replace(/([1-9]\\d*|0)(\\.\\d*)*rpx/g,function(a,b){return window.innerWidth*Number(b)/750+'px';});}function tag(name){return function(target){define(name,target);};}/**\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 */var hasOwn={}.hasOwnProperty;function classNames(){var classes=[];for(var i=0;i0){return{'class':classNames.apply(null,args)};}}function getHost(component){var base=component.base;if(base){while(base.parentNode){if(base.parentNode._component){return base.parentNode._component;}else{base=base.parentNode;}}}}/**\n * preact-render-to-string based on preact-render-to-string\n * by Jason Miller\n * Licensed under the MIT License\n * https://github.com/developit/preact-render-to-string\n *\n * modified by dntzhang\n */var encodeEntities=function encodeEntities(s){return String(s).replace(/&/g,'&').replace(//g,'>').replace(/\"/g,'"');};var indent=function indent(s,char){return String(s).replace(/(\\n+)/g,'$1'+(char||'\\t'));};var mapping$1=options.mapping;var VOID_ELEMENTS=/^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/;var isLargeString=function isLargeString(s,length,ignoreLines){return String(s).length>(length||40)||!ignoreLines&&String(s).indexOf('\\n')!==-1||String(s).indexOf('<')!==-1;};var JS_TO_CSS={};// Convert an Object style to a CSSText string\nfunction styleObjToCss(s){var str='';for(var prop in s){var val=s[prop];if(val!=null){if(str)str+=' ';// str += jsToCss(prop);\nstr+=JS_TO_CSS[prop]||(JS_TO_CSS[prop]=prop.replace(/([A-Z])/g,'-$1').toLowerCase());str+=': ';str+=val;if(typeof val==='number'&&IS_NON_DIMENSIONAL.test(prop)===false){str+='px';}str+=';';}}return str||undefined;}function renderToString(vnode,opts,store,isSvgMode){store=store||{};opts=Object.assign({scopedCSS:true},opts);var css={};var html=_renderToString(vnode,opts,store,isSvgMode,css);return{css:Object.values(css),html:html};}/** The default export is an alias of `render()`. */function _renderToString(vnode,opts,store,isSvgMode,css){if(vnode==null||typeof vnode==='boolean'){return'';}var nodeName=vnode.nodeName,attributes=vnode.attributes,isComponent=false;var pretty=true&&opts.pretty,indentChar=pretty&&typeof pretty==='string'?pretty:'\\t';// #text nodes\nif((typeof vnode==='undefined'?'undefined':_typeof(vnode))!=='object'&&!nodeName){return encodeEntities(vnode);}// components\nvar ctor=mapping$1[nodeName];if(ctor){isComponent=true;var props=getNodeProps$1(vnode),rendered;// class-based components\nvar c=new ctor(props,store);// turn off stateful re-rendering:\nc._disable=c.__x=true;c.props=props;c.store=store;if(c.install)c.install();if(c.beforeRender)c.beforeRender();rendered=c.render(c.props,c.store);if(opts.scopedCSS){if(c.constructor.css||c.css){var cssStr=c.constructor.css?c.constructor.css:typeof c.css==='function'?c.css():c.css;var cssAttr='_s'+getCtorName(c.constructor);css[cssAttr]={id:cssAttr,css:scoper(cssStr,cssAttr)};addScopedAttrStatic(rendered,cssAttr);}c.scopedCSSAttr=vnode.css;scopeHost(rendered,c.scopedCSSAttr);}return _renderToString(rendered,opts,store,false,css);}// render JSX to HTML\nvar s='',html;if(attributes){var attrs=Object.keys(attributes);// allow sorting lexicographically for more determinism (useful for tests, such as via preact-jsx-chai)\nif(opts&&opts.sortAttributes===true)attrs.sort();for(var i=0;i]/))continue;if(!(opts&&opts.allAttributes)&&(name==='key'||name==='ref'))continue;if(name==='className'){if(attributes['class'])continue;name='class';}else if(isSvgMode&&name.match(/^xlink:?./)){name=name.toLowerCase().replace(/^xlink:?/,'xlink:');}if(name==='style'&&v&&(typeof v==='undefined'?'undefined':_typeof(v))==='object'){v=styleObjToCss(v);}var hooked=opts.attributeHook&&opts.attributeHook(name,v,store,opts,isComponent);if(hooked||hooked===''){s+=hooked;continue;}if(name==='dangerouslySetInnerHTML'){html=v&&v.__html;}else if((v||v===0||v==='')&&typeof v!=='function'){if(v===true||v===''){v=name;// in non-xml mode, allow boolean attributes\nif(!opts||!opts.xml){s+=' '+name;continue;}}s+=' '+name+'=\"'+encodeEntities(v)+'\"';}}}// account for >1 multiline attribute\nif(pretty){var sub=s.replace(/^\\n\\s*/,' ');if(sub!==s&&!~sub.indexOf('\\n'))s=sub;else if(pretty&&~s.indexOf('\\n'))s+='\\n';}s='<'+nodeName+s+'>';if(String(nodeName).match(/[\\s\\n\\\\/='\"\\0<>]/))throw s;var isVoid=String(nodeName).match(VOID_ELEMENTS);if(isVoid)s=s.replace(/>$/,' />');var pieces=[];if(html){// if multiline, indent.\nif(pretty&&isLargeString(html)){html='\\n'+indentChar+indent(html,indentChar);}s+=html;}else if(vnode.children){var hasLarge=pretty&&~s.indexOf('\\n');for(var i=0;i';}if(!isVoid){if(pretty&&~s.indexOf('\\n'))s+='\\n';s+='';}return s;}function assign$1(obj,props){for(var i in props){obj[i]=props[i];}return obj;}function getNodeProps$1(vnode){var props=assign$1({},vnode.attributes);props.children=vnode.children;var defaultProps=vnode.nodeName.defaultProps;if(defaultProps!==undefined){for(var i in defaultProps){if(props[i]===undefined){props[i]=defaultProps[i];}}}return props;}h.f=Fragment;var WeElement=Component;var defineElement=define;function createRef(){return{};}options.root.Omi={h:h,createElement:h,cloneElement:cloneElement,createRef:createRef,Component:Component,render:render,rerender:rerender,options:options,WeElement:WeElement,define:define,rpx:rpx,defineElement:defineElement,classNames:classNames,extractClass:extractClass,getHost:getHost,renderToString:renderToString,tag:tag,merge:merge,obaa:obaa};options.root.omi=options.root.Omi;options.root.Omi.version='omio-2.8.3';var omi={h:h,createElement:h,cloneElement:cloneElement,createRef:createRef,Component:Component,render:render,rerender:rerender,options:options,WeElement:WeElement,define:define,rpx:rpx,defineElement:defineElement,classNames:classNames,extractClass:extractClass,getHost:getHost,renderToString:renderToString,tag:tag,merge:merge,obaa:obaa};exports.default=omi;exports.h=h;exports.createElement=h;exports.cloneElement=cloneElement;exports.createRef=createRef;exports.Component=Component;exports.render=render;exports.rerender=rerender;exports.options=options;exports.WeElement=WeElement;exports.define=define;exports.rpx=rpx;exports.defineElement=defineElement;exports.classNames=classNames;exports.extractClass=extractClass;exports.getHost=getHost;exports.renderToString=renderToString;exports.tag=tag;exports.merge=merge;exports.obaa=obaa;//# sourceMappingURL=omi.esm.js.map\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/// css base code, injected by the css-loader\nmodule.exports=function(useSourceMap){var list=[];// return the list of modules as css string\nlist.toString=function toString(){return this.map(function(item){var content=cssWithMappingToString(item,useSourceMap);if(item[2]){return\"@media \"+item[2]+\"{\"+content+\"}\";}else{return content;}}).join(\"\");};// import a list of modules into the list\nlist.i=function(modules,mediaQuery){if(typeof modules===\"string\")modules=[[null,modules,\"\"]];var alreadyImportedModules={};for(var i=0;icapacity){// Manually shift all values starting at the index back to the\n// beginning of the queue.\nfor(var scan=0,newLength=queue.length-index;scan-1;};}function normalizeName(name){if(typeof name!=='string'){name=String(name);}if(/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)){throw new TypeError('Invalid character in header field name');}return name.toLowerCase();}function normalizeValue(value){if(typeof value!=='string'){value=String(value);}return value;}// Build a destructive iterator for the value list\nfunction iteratorFor(items){var iterator={next:function next(){var value=items.shift();return{done:value===undefined,value:value};}};if(support.iterable){iterator[Symbol.iterator]=function(){return iterator;};}return iterator;}function Headers(headers){this.map={};if(headers instanceof Headers){headers.forEach(function(value,name){this.append(name,value);},this);}else if(Array.isArray(headers)){headers.forEach(function(header){this.append(header[0],header[1]);},this);}else if(headers){Object.getOwnPropertyNames(headers).forEach(function(name){this.append(name,headers[name]);},this);}}Headers.prototype.append=function(name,value){name=normalizeName(name);value=normalizeValue(value);var oldValue=this.map[name];this.map[name]=oldValue?oldValue+','+value:value;};Headers.prototype['delete']=function(name){delete this.map[normalizeName(name)];};Headers.prototype.get=function(name){name=normalizeName(name);return this.has(name)?this.map[name]:null;};Headers.prototype.has=function(name){return this.map.hasOwnProperty(normalizeName(name));};Headers.prototype.set=function(name,value){this.map[normalizeName(name)]=normalizeValue(value);};Headers.prototype.forEach=function(callback,thisArg){for(var name in this.map){if(this.map.hasOwnProperty(name)){callback.call(thisArg,this.map[name],name,this);}}};Headers.prototype.keys=function(){var items=[];this.forEach(function(value,name){items.push(name);});return iteratorFor(items);};Headers.prototype.values=function(){var items=[];this.forEach(function(value){items.push(value);});return iteratorFor(items);};Headers.prototype.entries=function(){var items=[];this.forEach(function(value,name){items.push([name,value]);});return iteratorFor(items);};if(support.iterable){Headers.prototype[Symbol.iterator]=Headers.prototype.entries;}function consumed(body){if(body.bodyUsed){return Promise.reject(new TypeError('Already read'));}body.bodyUsed=true;}function fileReaderReady(reader){return new Promise(function(resolve,reject){reader.onload=function(){resolve(reader.result);};reader.onerror=function(){reject(reader.error);};});}function readBlobAsArrayBuffer(blob){var reader=new FileReader();var promise=fileReaderReady(reader);reader.readAsArrayBuffer(blob);return promise;}function readBlobAsText(blob){var reader=new FileReader();var promise=fileReaderReady(reader);reader.readAsText(blob);return promise;}function readArrayBufferAsText(buf){var view=new Uint8Array(buf);var chars=new Array(view.length);for(var i=0;i-1?upcased:method;}function Request(input,options){options=options||{};var body=options.body;if(input instanceof Request){if(input.bodyUsed){throw new TypeError('Already read');}this.url=input.url;this.credentials=input.credentials;if(!options.headers){this.headers=new Headers(input.headers);}this.method=input.method;this.mode=input.mode;if(!body&&input._bodyInit!=null){body=input._bodyInit;input.bodyUsed=true;}}else{this.url=String(input);}this.credentials=options.credentials||this.credentials||'omit';if(options.headers||!this.headers){this.headers=new Headers(options.headers);}this.method=normalizeMethod(options.method||this.method||'GET');this.mode=options.mode||this.mode||null;this.referrer=null;if((this.method==='GET'||this.method==='HEAD')&&body){throw new TypeError('Body not allowed for GET or HEAD requests');}this._initBody(body);}Request.prototype.clone=function(){return new Request(this,{body:this._bodyInit});};function decode(body){var form=new FormData();body.trim().split('&').forEach(function(bytes){if(bytes){var split=bytes.split('=');var name=split.shift().replace(/\\+/g,' ');var value=split.join('=').replace(/\\+/g,' ');form.append(decodeURIComponent(name),decodeURIComponent(value));}});return form;}function parseHeaders(rawHeaders){var headers=new Headers();rawHeaders.split(/\\r?\\n/).forEach(function(line){var parts=line.split(':');var key=parts.shift().trim();if(key){var value=parts.join(':').trim();headers.append(key,value);}});return headers;}Body.call(Request.prototype);function Response(bodyInit,options){if(!options){options={};}this.type='default';this.status='status'in options?options.status:200;this.ok=this.status>=200&&this.status<300;this.statusText='statusText'in options?options.statusText:'OK';this.headers=new Headers(options.headers);this.url=options.url||'';this._initBody(bodyInit);}Body.call(Response.prototype);Response.prototype.clone=function(){return new Response(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new Headers(this.headers),url:this.url});};Response.error=function(){var response=new Response(null,{status:0,statusText:''});response.type='error';return response;};var redirectStatuses=[301,302,303,307,308];Response.redirect=function(url,status){if(redirectStatuses.indexOf(status)===-1){throw new RangeError('Invalid status code');}return new Response(null,{status:status,headers:{location:url}});};self.Headers=Headers;self.Request=Request;self.Response=Response;self.fetch=function(input,init){return new Promise(function(resolve,reject){var request=new Request(input,init);var xhr=new XMLHttpRequest();xhr.onload=function(){var options={status:xhr.status,statusText:xhr.statusText,headers:parseHeaders(xhr.getAllResponseHeaders()||'')};options.url='responseURL'in xhr?xhr.responseURL:options.headers.get('X-Request-URL');var body='response'in xhr?xhr.response:xhr.responseText;resolve(new Response(body,options));};xhr.onerror=function(){reject(new TypeError('Network request failed'));};xhr.ontimeout=function(){reject(new TypeError('Network request failed'));};xhr.open(request.method,request.url,true);if(request.credentials==='include'){xhr.withCredentials=true;}if('responseType'in xhr&&support.blob){xhr.responseType='blob';}request.headers.forEach(function(value,name){xhr.setRequestHeader(name,value);});xhr.send(typeof request._bodyInit==='undefined'?null:request._bodyInit);});};self.fetch.polyfill=true;})(typeof self!=='undefined'?self:undefined);\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*//* eslint-disable no-unused-vars */var getOwnPropertySymbols=Object.getOwnPropertySymbols;var hasOwnProperty=Object.prototype.hasOwnProperty;var propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(val){if(val===null||val===undefined){throw new TypeError('Object.assign cannot be called with null or undefined');}return Object(val);}function shouldUseNative(){try{if(!Object.assign){return false;}// Detect buggy property enumeration order in older V8 versions.\n// https://bugs.chromium.org/p/v8/issues/detail?id=4118\nvar test1=new String('abc');// eslint-disable-line no-new-wrappers\ntest1[5]='de';if(Object.getOwnPropertyNames(test1)[0]==='5'){return false;}// https://bugs.chromium.org/p/v8/issues/detail?id=3056\nvar test2={};for(var i=0;i<10;i++){test2['_'+String.fromCharCode(i)]=i;}var order2=Object.getOwnPropertyNames(test2).map(function(n){return test2[n];});if(order2.join('')!=='0123456789'){return false;}// https://bugs.chromium.org/p/v8/issues/detail?id=3056\nvar test3={};'abcdefghijklmnopqrst'.split('').forEach(function(letter){test3[letter]=letter;});if(Object.keys(Object.assign({},test3)).join('')!=='abcdefghijklmnopqrst'){return false;}return true;}catch(err){// We don't expect any of the above to throw, but better to be safe.\nreturn false;}}module.exports=shouldUseNative()?Object.assign:function(target,source){var from;var to=toObject(target);var symbols;for(var s=1;s {\n// let newP = document.createElement('div')\n// newP.className = '_code-ctn'\n// let pre = code.parentNode\n// let ctn = pre.parentNode\n// if (pre.nodeName === 'PRE') {\n// ctn.insertBefore(newP, pre)\n// let hl = document.createElement('div')\n// hl.className = '_hl'\n// newP.appendChild(hl)\n// newP.appendChild(pre)\n// let nums = codeHlNumArr[index]\n// let max = Math.max.apply(null, nums)\n// let inner = ''\n// for (let i = 0; i <= max; i++) {\n// if (nums.indexOf(i) == -1) {\n// inner += '
'\n// } else {\n// inner += '
'\n// }\n// }\n// hl.innerHTML = inner\n// }\n// })\n//fix line-highlight\nwindow.dispatchEvent(new Event('resize'));}},{key:'_arrToNumber',value:function _arrToNumber(numArr){var arr=[];numArr.forEach(function(item){if(item.indexOf('-')!==-1){var tempArr=item.split('-');var begin=Number(tempArr[0]);var end=Number(tempArr[1]);for(var i=begin;i0)return false;}return true;}},{key:'render',value:function render(){if(!this.demo)return;return Omi.h('div',null,this.show&&Omi.h('iframe',{style:'height:'+(window.innerHeight-59)+'px',src:this.demo}),!this.show&&Omi.h('div',{'class':'switch code',onClick:this.onShow},Omi.h('img',{src:__webpack_require__(32)})),this.show&&Omi.h('div',{'class':'switch close',onClick:this.onClose},Omi.h('img',{src:__webpack_require__(33)})));}}]);return _class2;}(_omi.WeElement));\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n var result = __webpack_require__(31);\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(1)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \"iframe{\\n width: 750px;\\n height: 100%;\\n top: 60px;\\n right: 0;\\n position: fixed;\\n border: none;\\n z-index: 9999;\\n border-left: 2px solid #24292E;\\n}\\n\\n.switch{\\n width: 40px;\\n height: 40px;\\n background-color: #AA0000;\\n border-radius: 50%;\\n position: fixed;\\n right: 50px;\\n bottom: 50px;\\n cursor: pointer;\\n text-align: center;\\n z-index: 10000;\\n}\\n\\n.switch img{\\n width: 30px;\\n height: 30px;\\n margin-top:5px;\\n}\\n\\n.switch.close img{\\n margin-top:10px;\\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n@media only screen and (max-width: 800px) {\\n iframe{\\n width: 100%;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfiDBQMEgYVXhFiAAABVklEQVRIx+3UsU4UURSA4TNARoiJcR9BCwwJNNpRU0hjpS+hDTTyGkAD1UJnRzCbYKRAKzt9AaMxJoR+Ewho8dEMm5nZOzObbfVUM+ec/79n7uTeiP8xUfjiq6Xp8Ufg6fSCN7iQpasztebcttVaz3pEnGQirNqWt62VG2CoV8rNu8TLCD1DDBoVBc5BeVzr+OthhMwBjQq59wVe+Sy7+FQ8Z/bBB/MT4hG+4+3oLa0Y4f0x/AlYLmUyezVFMx5hE79ruaqiDY9wir2xbFnhqAW/7xovEpUZfXCUwEqxFvfiJs5ae+SO0/sfYR8fE8zdvzi524UGhV/Y6MCbp7ACFjvxiuKd2VFuCz/GNu8wgacVPmNnQrxQlA6TB/7geWX4tsNUUgz1IrzClYVStes4F4riQtHHoFbtulAq457j9UTNScEz8Li7c64hfxXf4jr7OfUE/1TcAoyIn6j/RilHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTEyLTIwVDExOjE4OjA2KzAxOjAwT3khJwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMi0yMFQxMToxODowNiswMTowMD4kmZsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC\"\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAQAAACROWYpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiDBQMERzDEbvbAAAArElEQVQ4y6XVOw6DMBBFUSf7SmGy2ZCNBerIJN2lAQn/34ArZHFsi3mDHW9mvDMOPDOjYwKCjeMJwGd/MPBI8OALBJ4S3d8e0okuz6jOi1TjVdrnTdrmXVrnEi1zmebcRGNupgf+YzHTjS8A/Ov0Lqxzs+97PLbUMukHG2wd59LimHheHJmX6yrxeiS6vJ2mJu8Hscq1DBe5Hv+M2zon4pd++teum5Hp5EX3WgGu+8eCI/n/bQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0xMi0yMFQxMToxNzoyOCswMTowMKxoBooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMTItMjBUMTE6MTc6MjgrMDE6MDDdNb42AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==\"\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function defineProperties(target,props){for(var i=0;i [\"test\", \"\\d+\", undefined, \"?\"]\n// \"(\\\\d+)\" => [undefined, undefined, \"\\d+\", undefined]\n'(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'].join('|'),'g');/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */function parse(str,options){var tokens=[];var key=0;var index=0;var path='';var defaultDelimiter=options&&options.delimiter||DEFAULT_DELIMITER;var whitelist=options&&options.whitelist||undefined;var pathEscaped=false;var res;while((res=PATH_REGEXP.exec(str))!==null){var m=res[0];var escaped=res[1];var offset=res.index;path+=str.slice(index,offset);index=offset+m.length;// Ignore already escaped sequences.\nif(escaped){path+=escaped[1];pathEscaped=true;continue;}var prev='';var name=res[2];var capture=res[3];var group=res[4];var modifier=res[5];if(!pathEscaped&&path.length){var k=path.length-1;var c=path[k];var matches=whitelist?whitelist.indexOf(c)>-1:true;if(matches){prev=c;path=path.slice(0,k);}}// Push the current path onto the tokens.\nif(path){tokens.push(path);path='';pathEscaped=false;}var repeat=modifier==='+'||modifier==='*';var optional=modifier==='?'||modifier==='*';var pattern=capture||group;var delimiter=prev||defaultDelimiter;tokens.push({name:name||key++,prefix:prev,delimiter:delimiter,optional:optional,repeat:repeat,pattern:pattern?escapeGroup(pattern):'[^'+escapeString(delimiter===defaultDelimiter?delimiter:delimiter+defaultDelimiter)+']+?'});}// Push any remaining characters.\nif(path||index0){params[pathArr[index].replace(':','')]=item;}});return params;}function route(path,callback){mapping[path]={callback:callback,reg:_pathToRegexp_3_2_0_pathToRegexp(path)};}var router={route:route,hashChange:hashChange};function getGlobal(){if((typeof global==='undefined'?'undefined':_typeof(global))!=='object'||!global||global.Math!==Math||global.Array!==Array){return self||window||global||function(){return this;}();}return global;}function getUrlParams(url){url=url.replace(/#.*$/,'');var queryArray=url.split(/[?&]/).slice(1);var i,args={};for(i=0;iHello!`\n *\n * can be constructed using this function as:\n *\n * `h('div', { id: 'foo', name : 'bar' }, 'Hello!');`\n *\n * @param {string} nodeName\tAn element name. Ex: `div`, `a`, `span`, etc.\n * @param {Object} attributes\tAny attributes/props to set on the created element.\n * @param rest\t\t\tAdditional arguments are taken to be children to append. Can be infinitely nested Arrays.\n *\n * @public\n */\nfunction h(nodeName, attributes) {\n var children = [],\n lastSimple,\n child,\n simple,\n i;\n for (i = arguments.length; i-- > 2;) {\n stack.push(arguments[i]);\n }\n if (attributes && attributes.children != null) {\n if (!stack.length) stack.push(attributes.children);\n delete attributes.children;\n }\n while (stack.length) {\n if ((child = stack.pop()) && child.pop !== undefined) {\n for (i = child.length; i--;) {\n stack.push(child[i]);\n }\n } else {\n if (typeof child === 'boolean') child = null;\n\n if (simple = typeof nodeName !== 'function') {\n if (child == null) child = '';else if (typeof child === 'number') child = String(child);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 var p = new VNode();\n p.nodeName = nodeName;\n p.children = children;\n p.attributes = attributes == null ? undefined : attributes;\n p.key = attributes == null ? undefined : attributes.key;\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\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n\n return Object(val);\n}\n\nfunction assign(target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n\n return to;\n}\n\nif (typeof Element !== 'undefined' && !Element.prototype.addEventListener) {\n var runListeners = function runListeners(oEvent) {\n if (!oEvent) {\n oEvent = window.event;\n }\n for (var iLstId = 0, iElId = 0, oEvtListeners = oListeners[oEvent.type]; iElId < oEvtListeners.aEls.length; iElId++) {\n if (oEvtListeners.aEls[iElId] === this) {\n for (iLstId; iLstId < oEvtListeners.aEvts[iElId].length; iLstId++) {\n oEvtListeners.aEvts[iElId][iLstId].call(this, oEvent);\n }\n break;\n }\n }\n };\n\n var oListeners = {};\n\n Element.prototype.addEventListener = function (sEventType, fListener /*, useCapture (will be ignored!) */) {\n if (oListeners.hasOwnProperty(sEventType)) {\n var oEvtListeners = oListeners[sEventType];\n for (var nElIdx = -1, iElId = 0; iElId < oEvtListeners.aEls.length; iElId++) {\n if (oEvtListeners.aEls[iElId] === this) {\n nElIdx = iElId;break;\n }\n }\n if (nElIdx === -1) {\n oEvtListeners.aEls.push(this);\n oEvtListeners.aEvts.push([fListener]);\n this[\"on\" + sEventType] = runListeners;\n } else {\n var aElListeners = oEvtListeners.aEvts[nElIdx];\n if (this[\"on\" + sEventType] !== runListeners) {\n aElListeners.splice(0);\n this[\"on\" + sEventType] = runListeners;\n }\n for (var iLstId = 0; iLstId < aElListeners.length; iLstId++) {\n if (aElListeners[iLstId] === fListener) {\n return;\n }\n }\n aElListeners.push(fListener);\n }\n } else {\n oListeners[sEventType] = { aEls: [this], aEvts: [[fListener]] };\n this[\"on\" + sEventType] = runListeners;\n }\n };\n Element.prototype.removeEventListener = function (sEventType, fListener /*, useCapture (will be ignored!) */) {\n if (!oListeners.hasOwnProperty(sEventType)) {\n return;\n }\n var oEvtListeners = oListeners[sEventType];\n for (var nElIdx = -1, iElId = 0; iElId < oEvtListeners.aEls.length; iElId++) {\n if (oEvtListeners.aEls[iElId] === this) {\n nElIdx = iElId;break;\n }\n }\n if (nElIdx === -1) {\n return;\n }\n for (var iLstId = 0, aElListeners = oEvtListeners.aEvts[nElIdx]; iLstId < aElListeners.length; iLstId++) {\n if (aElListeners[iLstId] === fListener) {\n aElListeners.splice(iLstId, 1);\n }\n }\n };\n}\n\nif (typeof Object.create !== 'function') {\n Object.create = function (proto, propertiesObject) {\n if (typeof proto !== 'object' && typeof proto !== 'function') {\n throw new TypeError('Object prototype may only be an Object: ' + proto);\n } else if (proto === null) {\n throw new Error(\"This browser's implementation of Object.create is a shim and doesn't support 'null' as the first argument.\");\n }\n\n // if (typeof propertiesObject != 'undefined') {\n // throw new Error(\"This browser's implementation of Object.create is a shim and doesn't support a second argument.\");\n // }\n\n function F() {}\n F.prototype = proto;\n\n return new F();\n };\n}\n\nif (!String.prototype.trim) {\n String.prototype.trim = function () {\n return this.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n };\n}\n\n/**\n * Copy all properties from `props` onto `obj`.\n * @param {Object} obj\t\tObject onto which properties should be copied.\n * @param {Object} props\tObject from which to copy properties.\n * @returns obj\n * @private\n */\nfunction extend(obj, props) {\n for (var i in props) {\n 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 */\nfunction applyRef(ref, value) {\n if (ref) {\n if (typeof ref == 'function') ref(value);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 *\n * @param {Function} callback\n */\n\nvar usePromise = typeof Promise == 'function';\n\n// for native\nif (typeof document !== 'object' && typeof global !== 'undefined' && global.__config__) {\n if (global.__config__.platform === 'android') {\n usePromise = true;\n } else {\n var systemVersion = global.__config__.systemVersion && global.__config__.systemVersion.split('.')[0] || 0;\n if (systemVersion > 8) {\n usePromise = true;\n }\n }\n}\n\nvar defer = usePromise ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n\nfunction isArray(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n}\n\nfunction getUse(data, paths, out, name) {\n var obj = [];\n paths.forEach(function (path, index) {\n var isPath = typeof path === 'string';\n if (isPath) {\n obj[index] = getTargetByPath(data, path);\n } else {\n var key = Object.keys(path)[0];\n var value = path[key];\n if (typeof value === 'string') {\n obj[index] = getTargetByPath(data, value);\n } else {\n var tempPath = value[0];\n if (typeof tempPath === 'string') {\n var tempVal = getTargetByPath(data, tempPath);\n obj[index] = value[1] ? value[1](tempVal) : tempVal;\n } else {\n var args = [];\n tempPath.forEach(function (path) {\n args.push(getTargetByPath(data, path));\n });\n obj[index] = value[1].apply(null, args);\n }\n }\n obj[key] = obj[index];\n }\n });\n out && (out[name] = obj);\n return obj;\n}\n\nfunction getTargetByPath(origin, path) {\n var arr = path.replace(/]/g, '').replace(/\\[/g, '.').split('.');\n var current = origin;\n for (var i = 0, len = arr.length; i < len; i++) {\n current = current[arr[i]];\n }\n return current;\n}\n\nfunction getPath(obj, out, name) {\n\n var result = {};\n obj.forEach(function (item) {\n if (typeof item === 'string') {\n result[item] = true;\n } else {\n var tempPath = item[Object.keys(item)[0]];\n if (typeof tempPath === 'string') {\n result[tempPath] = true;\n } else {\n if (typeof tempPath[0] === 'string') {\n result[tempPath[0]] = true;\n } else {\n tempPath[0].forEach(function (path) {\n return result[path] = true;\n });\n }\n }\n }\n });\n out && (out[name] = result);\n return result;\n}\n\nfunction removeItem(item, arr) {\n for (var i = 0, len = arr.length; i < len; i++) {\n if (arr[i] === item) {\n arr.splice(i, 1);\n break;\n }\n }\n}\n\nfunction Fragment(props) {\n return props.children;\n}\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {VNode} vnode\t\tThe virtual DOM element to clone\n * @param {Object} props\tAttributes/props to add when cloning\n * @param {VNode} rest\t\tAny additional arguments will be used as replacement children.\n */\nfunction cloneElement(vnode, props) {\n return h(vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children);\n}\n\n// DOM properties that should NOT have \"px\" added when numeric\nvar IS_NON_DIMENSIONAL$1 = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\n/** Managed queue of dirty components to be re-rendered */\n\nvar items = [];\n\nfunction enqueueRender(component) {\n if (items.push(component) == 1) {\n(options.debounceRendering || defer)(rerender);\n }\n}\n\n/** Rerender all enqueued dirty components */\nfunction rerender() {\n var p;\n while (p = items.pop()) {\n renderComponent(p);\n }\n}\n\nvar mapping = options.mapping;\n/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node\t\t\tDOM Node to compare\n * @param {VNode} vnode\t\t\tVirtual DOM node to compare\n * @param {boolean} [hydrating=false]\tIf true, ignores component constructors when comparing.\n * @private\n */\nfunction 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 var ctor = mapping[vnode.nodeName];\n if (ctor) {\n return hydrating || node._componentConstructor === ctor;\n }\n return !node._componentConstructor && isNamedNode(node, 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\tA DOM Element to inspect the name of.\n * @param {String} nodeName\tUnnormalized name to compare against.\n */\nfunction isNamedNode(node, nodeName) {\n return node.normalizedNodeName === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();\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 */\nfunction getNodeProps(vnode) {\n var props = extend({}, vnode.attributes);\n props.children = vnode.children;\n\n var defaultProps = vnode.nodeName.defaultProps;\n if (defaultProps !== undefined) {\n for (var i in defaultProps) {\n if (props[i] === undefined) {\n props[i] = defaultProps[i];\n }\n }\n }\n\n return props;\n}\n\n/** Create an element with the given nodeName.\n *\t@param {String} nodeName\n *\t@param {Boolean} [isSvg=false]\tIf `true`, creates an element within the SVG namespace.\n *\t@returns {Element} node\n */\nfunction createNode(nodeName, isSvg) {\n\tvar node = isSvg ? options.doc.createElementNS('http://www.w3.org/2000/svg', nodeName) : options.doc.createElement(nodeName);\n\tnode.normalizedNodeName = nodeName;\n\treturn node;\n}\n\nfunction parseCSSText(cssText) {\n\tvar cssTxt = cssText.replace(/\\/\\*(.|\\s)*?\\*\\//g, ' ').replace(/\\s+/g, ' ');\n\tvar style = {},\n\t _ref = cssTxt.match(/ ?(.*?) ?{([^}]*)}/) || [a, b, cssTxt],\n\t a = _ref[0],\n\t b = _ref[1],\n\t rule = _ref[2];\n\n\tvar cssToJs = function cssToJs(s) {\n\t\treturn s.replace(/\\W+\\w/g, function (match) {\n\t\t\treturn match.slice(-1).toUpperCase();\n\t\t});\n\t};\n\tvar properties = rule.split(';').map(function (o) {\n\t\treturn o.split(':').map(function (x) {\n\t\t\treturn x && x.trim();\n\t\t});\n\t});\n\tfor (var i = properties, i = Array.isArray(i), i = 0, i = i ? i : i[Symbol.iterator]();;) {\n\t\tvar _ref3;\n\n\t\tif (i) {\n\t\t\tif (i >= i.length) break;\n\t\t\t_ref3 = i[i++];\n\t\t} else {\n\t\t\ti = i.next();\n\t\t\tif (i.done) break;\n\t\t\t_ref3 = i.value;\n\t\t}\n\n\t\tvar _ref2 = _ref3;\n\t\tvar property = _ref2[0];\n\t\tvar value = _ref2[1];\n\t\tstyle[cssToJs(property)] = value;\n\t}return style;\n}\n\n/** Remove a child node from its parent if attached.\n *\t@param {Element} node\t\tThe node to remove\n */\nfunction removeNode(node) {\n\tvar parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\n/** Set a named attribute on the given Node, with special behavior for some names and event handlers.\n *\tIf `value` is `null`, the attribute/handler will be removed.\n *\t@param {Element} node\tAn element to mutate\n *\t@param {string} name\tThe name/key to set, such as an event or attribute name\n *\t@param {any} old\tThe last value that was set for this name/node pair\n *\t@param {any} value\tAn attribute value, such as a function to be used as an event handler\n *\t@param {Boolean} isSvg\tAre we currently diffing inside an svg?\n *\t@private\n */\nfunction setAccessor(node, name, old, value, isSvg) {\n\tif (name === 'className') name = 'class';\n\n\tif (name === 'key') {\n\t\t// ignore\n\t} else if (name === 'ref') {\n\t\tapplyRef(old, null);\n\t\tapplyRef(value, node);\n\t} else if (name === 'class' && !isSvg) {\n\t\tnode.className = value || '';\n\t} else if (name === 'style') {\n\t\tif (options.isWeb) {\n\t\t\tif (!value || typeof value === 'string' || typeof old === 'string') {\n\t\t\t\tnode.style.cssText = value || '';\n\t\t\t}\n\t\t\tif (value && typeof value === 'object') {\n\t\t\t\tif (typeof old !== 'string') {\n\t\t\t\t\tfor (var i in old) {\n\t\t\t\t\t\tif (!(i in value)) node.style[i] = '';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (var i in value) {\n\t\t\t\t\tnode.style[i] = typeof value[i] === 'number' && IS_NON_DIMENSIONAL$1.test(i) === false ? value[i] + 'px' : value[i];\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tvar oldJson = old,\n\t\t\t currentJson = value;\n\t\t\tif (typeof old === 'string') {\n\t\t\t\toldJson = parseCSSText(old);\n\t\t\t}\n\t\t\tif (typeof value == 'string') {\n\t\t\t\tcurrentJson = parseCSSText(value);\n\t\t\t}\n\n\t\t\tvar result = {},\n\t\t\t changed = false;\n\n\t\t\tif (oldJson) {\n\t\t\t\tfor (var key in oldJson) {\n\t\t\t\t\tif (typeof currentJson == 'object' && !(key in currentJson)) {\n\t\t\t\t\t\tresult[key] = '';\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor (var ckey in currentJson) {\n\t\t\t\t\tif (currentJson[ckey] !== oldJson[ckey]) {\n\t\t\t\t\t\tresult[ckey] = currentJson[ckey];\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (changed) {\n\t\t\t\t\tnode.setStyles(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tnode.setStyles(currentJson);\n\t\t\t}\n\t\t}\n\t} else if (name === 'dangerouslySetInnerHTML') {\n\t\tif (value) node.innerHTML = value.__html || '';\n\t} else if (name[0] == 'o' && name[1] == 'n') {\n\t\tvar useCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tvar nameLower = name.toLowerCase();\n\t\tname = (nameLower in node ? nameLower : name).slice(2);\n\t\tif (value) {\n\t\t\tif (!old) {\n\t\t\t\tnode.addEventListener(name, eventProxy, useCapture);\n\t\t\t\tif (name == 'tap') {\n\t\t\t\t\tnode.addEventListener('touchstart', touchStart, useCapture);\n\t\t\t\t\tnode.addEventListener('touchend', touchEnd, useCapture);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tnode.removeEventListener(name, eventProxy, useCapture);\n\t\t\tif (name == 'tap') {\n\t\t\t\tnode.removeEventListener('touchstart', touchStart, useCapture);\n\t\t\t\tnode.removeEventListener('touchend', touchEnd, useCapture);\n\t\t\t}\n\t\t}\n(node._listeners || (node._listeners = {}))[name] = value;\n\t} else if (name !== 'list' && name !== 'tagName' &&\n\t// HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n\t// setAttribute\n\tname !== 'form' && name !== 'type' && name !== 'size' && name !== 'download' && name !== 'href' && !isSvg && name in node) {\n\t\tsetProperty(node, name, value == null ? '' : value);\n\t} else {\n\t\tvar ns = isSvg && name !== (name = name.replace(/^xlink:?/, ''));\n\t\tif (value == null || value === false) {\n\t\t\tif (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());else node.removeAttribute(name);\n\t\t} else if (typeof value !== 'function') {\n\t\t\tif (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);else node.setAttribute(name, value);\n\t\t}\n\t}\n}\n\n/** Attempt to set a DOM property to the given value.\n *\tIE & FF throw for certain property-value combinations.\n */\nfunction setProperty(node, name, value) {\n\ttry {\n\t\tnode[name] = value;\n\t} catch (e) {}\n}\n\n/** Proxy an event to hooked event handlers\n *\t@private\n */\nfunction eventProxy(e) {\n\treturn this._listeners[e.type](options.event && options.event(e) || e);\n}\n\nfunction touchStart(e) {\n\tthis.___touchX = e.touches[0].pageX;\n\tthis.___touchY = e.touches[0].pageY;\n\tthis.___scrollTop = document.body.scrollTop;\n}\n\nfunction touchEnd(e) {\n\tif (Math.abs(e.changedTouches[0].pageX - this.___touchX) < 30 && Math.abs(e.changedTouches[0].pageY - this.___touchY) < 30 && Math.abs(document.body.scrollTop - this.___scrollTop) < 30) {\n\t\tthis.dispatchEvent(new CustomEvent('tap', { detail: e }));\n\t}\n}\n\nvar styleId = 0;\n\nfunction getCtorName(ctor) {\n for (var i = 0, len = options.styleCache.length; i < len; i++) {\n var item = options.styleCache[i];\n\n if (item.ctor === ctor) {\n return item.attrName;\n }\n }\n\n var attrName = 's' + styleId;\n options.styleCache.push({ ctor: ctor, attrName: attrName });\n styleId++;\n\n return attrName;\n}\n\n// many thanks to https://github.com/thomaspark/scoper/\nfunction scoper(css, prefix) {\n prefix = '[' + prefix.toLowerCase() + ']';\n // https://www.w3.org/TR/css-syntax-3/#lexical\n css = css.replace(/\\/\\*[^*]*\\*+([^/][^*]*\\*+)*\\//g, '');\n // eslint-disable-next-line\n var re = new RegExp('([^\\r\\n,{}:]+)(:[^\\r\\n,{}]+)?(,(?=[^{}]*{)|\\s*{)', 'g');\n /**\n * Example:\n *\n * .classname::pesudo { color:red }\n *\n * g1 is normal selector `.classname`\n * g2 is pesudo class or pesudo element\n * g3 is the suffix\n */\n css = css.replace(re, function (g0, g1, g2, g3) {\n if (typeof g2 === 'undefined') {\n g2 = '';\n }\n\n /* eslint-ignore-next-line */\n if (g1.match(/^\\s*(@media|\\d+%?|@-webkit-keyframes|@keyframes|to|from|@font-face)/)) {\n return g1 + g2 + g3;\n }\n\n var appendClass = g1.replace(/(\\s*)$/, '') + prefix + g2;\n //let prependClass = prefix + ' ' + g1.trim() + g2;\n\n return appendClass + g3;\n //return appendClass + ',' + prependClass + g3;\n });\n\n return css;\n}\n\nfunction addStyle(cssText, id) {\n id = id.toLowerCase();\n var ele = document.getElementById(id);\n var head = document.getElementsByTagName('head')[0];\n if (ele && ele.parentNode === head) {\n head.removeChild(ele);\n }\n\n var someThingStyles = document.createElement('style');\n head.appendChild(someThingStyles);\n someThingStyles.setAttribute('type', 'text/css');\n someThingStyles.setAttribute('id', id);\n if (window.ActiveXObject) {\n someThingStyles.styleSheet.cssText = cssText;\n } else {\n someThingStyles.textContent = cssText;\n }\n}\n\nfunction addStyleWithoutId(cssText) {\n var head = document.getElementsByTagName('head')[0];\n var someThingStyles = document.createElement('style');\n head.appendChild(someThingStyles);\n someThingStyles.setAttribute('type', 'text/css');\n\n if (window.ActiveXObject) {\n someThingStyles.styleSheet.cssText = cssText;\n } else {\n someThingStyles.textContent = cssText;\n }\n}\n\nfunction addScopedAttrStatic(vdom, attr) {\n if (options.scopedStyle) {\n scopeVdom(attr, vdom);\n }\n}\n\nfunction addStyleToHead(style, attr) {\n if (options.scopedStyle) {\n if (!options.staticStyleMapping[attr]) {\n addStyle(scoper(style, attr), attr);\n options.staticStyleMapping[attr] = true;\n }\n } else if (!options.staticStyleMapping[attr]) {\n addStyleWithoutId(style);\n options.staticStyleMapping[attr] = true;\n }\n}\n\nfunction scopeVdom(attr, vdom) {\n if (typeof vdom === 'object') {\n vdom.attributes = vdom.attributes || {};\n vdom.attributes[attr] = '';\n vdom.css = vdom.css || {};\n vdom.css[attr] = '';\n vdom.children.forEach(function (child) {\n return scopeVdom(attr, child);\n });\n }\n}\n\nfunction scopeHost(vdom, css) {\n if (typeof vdom === 'object' && css) {\n vdom.attributes = vdom.attributes || {};\n for (var key in css) {\n vdom.attributes[key] = '';\n }\n }\n}\n\n/** Queue of components that have been mounted and are awaiting componentDidMount */\nvar mounts = [];\n\n/** Diff recursion count, used to track the end of the diff cycle. */\nvar diffLevel = 0;\n\n/** Global flag indicating if the diff is currently within an SVG */\nvar isSvgMode = false;\n\n/** Global flag indicating if the diff is performing hydration */\nvar hydrating = false;\n\n/** Invoke queued componentDidMount lifecycle methods */\nfunction flushMounts() {\n var c;\n while (c = mounts.pop()) {\n if (options.afterMount) options.afterMount(c);\n if (c.installed) c.installed();\n if (c.constructor.css || c.css) {\n addStyleToHead(c.constructor.css ? c.constructor.css : typeof c.css === 'function' ? c.css() : c.css, '_s' + getCtorName(c.constructor));\n }\n }\n}\n\n/** Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n *\t@param {Element} [dom=null]\t\tA DOM node to mutate into the shape of the `vnode`\n *\t@param {VNode} vnode\t\t\tA VNode (with descendants forming a tree) representing the desired DOM structure\n *\t@returns {Element} dom\t\t\tThe created/mutated element\n *\t@private\n */\nfunction diff(dom, vnode, store, mountAll, parent, componentRoot, updateSelf) {\n // diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\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 && !('__omiattr_' in dom);\n }\n var ret;\n\n if (isArray(vnode)) {\n vnode = {\n nodeName: 'span',\n children: vnode\n };\n } else if (vnode && vnode.nodeName === Fragment) {\n vnode.nodeName = 'span';\n }\n\n ret = idiff(dom, vnode, store, mountAll, componentRoot, updateSelf);\n // append the element if its a new parent\n if (parent && ret.parentNode !== parent) parent.appendChild(ret);\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 if (!componentRoot) flushMounts();\n }\n\n return ret;\n}\n\n/** Internals of `diff()`, separated to allow bypassing diffLevel / mount flushing. */\nfunction idiff(dom, vnode, store, mountAll, componentRoot, updateSelf) {\n var out = dom,\n prevSvgMode = isSvgMode;\n\n // empty values (null, undefined, booleans) render as empty Text nodes\n if (vnode == null || typeof vnode === 'boolean') vnode = '';\n\n // If the VNode represents a Component, perform a component diff:\n var vnodeName = vnode.nodeName;\n if (options.mapping[vnodeName]) {\n vnode.nodeName = options.mapping[vnodeName];\n return buildComponentFromVNode(dom, vnode, store, mountAll, updateSelf);\n }\n if (typeof vnodeName == 'function') {\n return buildComponentFromVNode(dom, vnode, store, mountAll, updateSelf);\n }\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 (dom && dom.splitText !== undefined && dom.parentNode && (!dom._component || componentRoot)) {\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 //ie8 error\n try {\n out['__omiattr_'] = true;\n } catch (e) {}\n\n return out;\n }\n\n // Tracks entering and exiting SVG namespace when descending through the tree.\n isSvgMode = vnodeName === 'svg' ? true : vnodeName === 'foreignObject' ? false : isSvgMode;\n\n // If there's no existing element or it's the wrong type, create a new one:\n vnodeName = String(vnodeName);\n if (!dom || !isNamedNode(dom, vnodeName)) {\n out = createNode(vnodeName, isSvgMode);\n\n if (dom) {\n // move children into the replacement node\n while (dom.firstChild) {\n out.appendChild(dom.firstChild);\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 var fc = out.firstChild,\n props = out['__omiattr_'],\n vchildren = vnode.children;\n\n if (props == null) {\n props = out['__omiattr_'] = {};\n for (var a = out.attributes, i = a.length; i--;) {\n props[a[i].name] = a[i].value;\n }\n }\n\n // Optimization: fast-path for elements containing a single TextNode:\n if (!hydrating && vchildren && vchildren.length === 1 && typeof vchildren[0] === 'string' && fc != null && fc.splitText !== undefined && fc.nextSibling == null) {\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 innerDiffNode(out, vchildren, store, mountAll, hydrating || props.dangerouslySetInnerHTML != null, updateSelf);\n }\n\n // Apply attributes/props from VNode to the DOM Element:\n diffAttributes(out, vnode.attributes, props);\n\n // restore previous SVG mode: (in case we're exiting an SVG namespace)\n isSvgMode = prevSvgMode;\n\n return out;\n}\n\n/** Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n *\t@param {Element} dom\t\t\tElement whose children should be compared & mutated\n *\t@param {Array} vchildren\t\tArray of VNodes to compare to `dom.childNodes`\n *\t@param {Object} store\t\t\tImplicitly descendant context object (from most recent `getChildContext()`)\n *\t@param {Boolean} mountAll\n *\t@param {Boolean} isHydrating\tIf `true`, consumes externally created elements similar to hydration\n */\nfunction innerDiffNode(dom, vchildren, store, mountAll, isHydrating, updateSelf) {\n var 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 (var i = 0; i < len; i++) {\n var _child = originalChildren[i],\n props = _child['__omiattr_'],\n key = vlen && props ? _child._component ? _child._component.__key : props.key : null;\n if (key != null) {\n keyedLen++;\n keyed[key] = _child;\n } else if (props || (_child.splitText !== undefined ? isHydrating ? _child.nodeValue.trim() : true : isHydrating)) {\n children[childrenLen++] = _child;\n }\n }\n }\n\n if (vlen !== 0) {\n for (var i = 0; i < vlen; i++) {\n vchild = vchildren[i];\n child = null;\n\n // attempt to find a node based on key matching\n var 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 (children[j] !== undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {\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 // morph the matched/found/created DOM child to match vchild (deep)\n child = idiff(child, vchild, store, mountAll, null, 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 (var i in keyed) {\n if (keyed[i] !== undefined) recollectNodeTree(keyed[i], false);\n }\n }\n\n // remove orphaned unkeyed children:\n while (min <= childrenLen) {\n if ((child = children[childrenLen--]) !== undefined) recollectNodeTree(child, false);\n }\n}\n\n/** Recursively recycle (or just unmount) a node and its descendants.\n *\t@param {Node} node\t\t\t\t\t\tDOM node to start unmount/removal from\n *\t@param {Boolean} [unmountOnly=false]\tIf `true`, only triggers unmount lifecycle, skips removal\n */\nfunction recollectNodeTree(node, unmountOnly) {\n var component = node._component;\n if (component) {\n // if node is owned by a Component, unmount that component (ends up recursing back here)\n unmountComponent(component);\n } else {\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['__omiattr_'] != null) applyRef(node['__omiattr_'].ref, null);\n\n if (unmountOnly === false || node['__omiattr_'] == null) {\n removeNode(node);\n }\n\n removeChildren(node);\n }\n}\n\n/** Recollect/unmount all children.\n *\t- we use .lastChild here because it causes less reflow than .firstChild\n *\t- it's also cheaper than accessing the .childNodes Live NodeList\n */\nfunction removeChildren(node) {\n node = node.lastChild;\n while (node) {\n var 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 *\t@param {Element} dom\t\tElement with attributes to diff `attrs` against\n *\t@param {Object} attrs\t\tThe desired end-state key-value attribute pairs\n *\t@param {Object} old\t\t\tCurrent/previous attributes (from previous VNode or element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old) {\n var name;\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(dom, name, old[name], old[name] = undefined, isSvgMode);\n }\n }\n\n // add new & update changed attributes\n for (name in attrs) {\n if (name !== 'children' && name !== 'innerHTML' && (!(name in old) || attrs[name] !== (name === 'value' || name === 'checked' ? dom[name] : old[name]))) {\n setAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n }\n }\n}\n\n/** Retains a pool of Components for re-use, keyed on component name.\n *\tNote: since component names are not unique or even necessarily available, these are primarily a form of sharding.\n *\t@private\n */\nvar components = {};\n\n/** Reclaim a component for later re-use by the recycler. */\nfunction collectComponent(component) {\n var name = component.constructor.name;(components[name] || (components[name] = [])).push(component);\n}\n\n/** Create a component. Normalizes differences between PFC's and classful Components. */\nfunction createComponent(Ctor, props, store, vnode) {\n var list = components[Ctor.name],\n inst;\n\n if (Ctor.prototype && Ctor.prototype.render) {\n inst = new Ctor(props, store);\n Component.call(inst, props, store);\n } else {\n inst = new Component(props, store);\n inst.constructor = Ctor;\n inst.render = doRender;\n }\n vnode && (inst.scopedCssAttr = vnode.css);\n\n if (inst.store) {\n if (inst.use) {\n var use = typeof inst.use === 'function' ? inst.use() : inst.use;\n\n if (options.isMultiStore) {\n var _updatePath = {};\n var using = {};\n for (var storeName in use) {\n _updatePath[storeName] = {};\n using[storeName] = {};\n getPath(use[storeName], _updatePath, storeName);\n getUse(inst.store[storeName].data, use[storeName], using, storeName);\n inst.store[storeName].instances.push(inst);\n }\n inst.using = using;\n inst._updatePath = _updatePath;\n } else {\n inst._updatePath = getPath(use);\n inst.using = getUse(inst.store.data, use);\n inst.store.instances.push(inst);\n }\n }\n\n if (inst.useSelf) {\n var _use = typeof inst.useSelf === 'function' ? inst.useSelf() : inst.useSelf;\n\n if (options.isMultiStore) {\n var _updatePath2 = {};\n var _using = {};\n for (var _storeName in _use) {\n getPath(_use[_storeName], _updatePath2, _storeName);\n getUse(inst.store[_storeName].data, _use[_storeName], _using, _storeName);\n inst.store[_storeName].updateSelfInstances.push(inst);\n }\n inst.usingSelf = _using;\n inst._updateSelfPath = _updatePath2;\n } else {\n inst._updateSelfPath = getPath(_use);\n inst.usingSelf = getUse(inst.store.data, _use);\n inst.store.updateSelfInstances.push(inst);\n }\n }\n\n if (inst.compute) {\n for (var key in inst.compute) {\n inst.computed[key] = inst.compute[key].call(options.isMultiStore ? inst.store : inst.store.data);\n }\n }\n }\n\n if (list) {\n for (var i = list.length; i--;) {\n if (list[i].constructor === Ctor) {\n inst.nextBase = list[i].nextBase;\n list.splice(i, 1);\n break;\n }\n }\n }\n return inst;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, store) {\n return this.constructor(props, store);\n}\n\n/** Set a component's `props` (generally derived from JSX attributes).\n *\t@param {Object} props\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.renderSync=false]\tIf `true` and {@link options.syncComponentUpdates} is `true`, triggers synchronous rendering.\n *\t@param {boolean} [opts.render=true]\t\t\tIf `false`, no render will be triggered.\n */\nfunction setComponentProps(component, props, opts, store, mountAll) {\n if (component._disable) return;\n component._disable = true;\n\n if (component.__ref = props.ref) delete props.ref;\n if (component.__key = props.key) delete props.key;\n\n if (!component.base || mountAll) {\n if (component.beforeInstall) component.beforeInstall();\n if (component.install) component.install();\n }\n\n if (!component.prevProps) component.prevProps = component.props;\n component.props = props;\n\n component._disable = false;\n\n if (opts !== 0) {\n if (opts === 1 || options.syncComponentUpdates !== false || !component.base) {\n renderComponent(component, 1, mountAll);\n } else {\n enqueueRender(component);\n }\n }\n\n applyRef(component.__ref, component);\n}\n\n/** Render a Component, triggering necessary lifecycle events and taking High-Order Components into account.\n *\t@param {Component} component\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.build=false]\t\tIf `true`, component will build and store a DOM node if not already associated with one.\n *\t@private\n */\nfunction renderComponent(component, opts, mountAll, isChild, updateSelf) {\n if (component._disable) return;\n\n var props = component.props,\n store = component.store,\n previousProps = component.prevProps || props,\n isUpdate = component.base,\n nextBase = component.nextBase,\n initialBase = isUpdate || nextBase,\n initialChildComponent = component._component,\n skip = false,\n rendered,\n inst,\n cbase;\n\n // if updating\n if (isUpdate) {\n component.props = previousProps;\n\n var receiveResult = true;\n if (component.receiveProps) {\n receiveResult = component.receiveProps(props, previousProps);\n }\n if (receiveResult !== false) {\n skip = false;\n if (component.beforeUpdate) {\n component.beforeUpdate(props, store);\n }\n } else {\n skip = true;\n }\n component.props = props;\n }\n\n component.prevProps = component.nextBase = null;\n\n if (!skip) {\n component.beforeRender && component.beforeRender();\n rendered = component.render(props, store);\n\n //don't rerender\n if (component.constructor.css || component.css) {\n addScopedAttrStatic(rendered, '_s' + getCtorName(component.constructor));\n }\n\n scopeHost(rendered, component.scopedCssAttr);\n\n var childComponent = rendered && rendered.nodeName,\n toUnmount,\n base,\n ctor = options.mapping[childComponent];\n\n if (ctor) {\n // set up high order component link\n\n var childProps = getNodeProps(rendered);\n inst = initialChildComponent;\n\n if (inst && inst.constructor === ctor && childProps.key == inst.__key) {\n setComponentProps(inst, childProps, 1, store, false);\n } else {\n toUnmount = inst;\n\n component._component = inst = createComponent(ctor, childProps, store);\n inst.nextBase = inst.nextBase || nextBase;\n inst._parentComponent = component;\n setComponentProps(inst, childProps, 0, store, false);\n renderComponent(inst, 1, mountAll, true);\n }\n\n base = inst.base;\n } else {\n cbase = initialBase;\n\n // destroy high order component link\n toUnmount = initialChildComponent;\n if (toUnmount) {\n cbase = component._component = null;\n }\n\n if (initialBase || opts === 1) {\n if (cbase) cbase._component = null;\n base = diff(cbase, rendered, store, mountAll || !isUpdate, initialBase && initialBase.parentNode, true, updateSelf);\n }\n }\n\n if (initialBase && base !== initialBase && inst !== initialChildComponent) {\n var baseParent = initialBase.parentNode;\n if (baseParent && base !== baseParent) {\n baseParent.replaceChild(base, initialBase);\n\n if (!toUnmount) {\n initialBase._component = null;\n recollectNodeTree(initialBase, false);\n }\n }\n }\n\n if (toUnmount) {\n unmountComponent(toUnmount);\n }\n\n component.base = base;\n if (base && !isChild) {\n var componentRef = component,\n t = component;\n while (t = t._parentComponent) {\n(componentRef = t).base = base;\n }\n base._component = componentRef;\n base._componentConstructor = componentRef.constructor;\n }\n }\n\n if (!isUpdate || mountAll) {\n mounts.unshift(component);\n } else if (!skip) {\n // Ensure that pending componentDidMount() hooks of child components\n // are called before the componentDidUpdate() hook in the parent.\n // Note: disabled as it causes duplicate hooks, see https://github.com/developit/preact/issues/750\n // flushMounts();\n\n if (component.afterUpdate) {\n //deprecated\n component.afterUpdate(previousProps, store);\n }\n if (component.updated) {\n component.updated(previousProps, store);\n }\n if (options.afterUpdate) options.afterUpdate(component);\n }\n\n if (component._renderCallbacks != null) {\n while (component._renderCallbacks.length) {\n component._renderCallbacks.pop().call(component);\n }\n }\n\n if (!diffLevel && !isChild) flushMounts();\n}\n\n/** Apply the Component referenced by a VNode to the DOM.\n *\t@param {Element} dom\tThe DOM node to mutate\n *\t@param {VNode} vnode\tA Component-referencing VNode\n *\t@returns {Element} dom\tThe created/mutated element\n *\t@private\n */\nfunction buildComponentFromVNode(dom, vnode, store, mountAll, updateSelf) {\n var c = dom && dom._component,\n originalComponent = c,\n oldDom = dom,\n isDirectOwner = c && dom._componentConstructor === vnode.nodeName,\n isOwner = isDirectOwner,\n props = getNodeProps(vnode);\n while (c && !isOwner && (c = c._parentComponent)) {\n isOwner = c.constructor === vnode.nodeName;\n }\n\n if (c && isOwner && (!mountAll || c._component)) {\n if (!updateSelf) {\n setComponentProps(c, props, 3, store, mountAll);\n }\n dom = c.base;\n } else {\n if (originalComponent && !isDirectOwner) {\n unmountComponent(originalComponent);\n dom = oldDom = null;\n }\n\n c = createComponent(vnode.nodeName, props, store, vnode);\n if (dom && !c.nextBase) {\n c.nextBase = dom;\n // passing dom/oldDom as nextBase will recycle it if unused, so bypass recycling on L229:\n oldDom = null;\n }\n setComponentProps(c, props, 1, store, mountAll);\n dom = c.base;\n\n if (oldDom && dom !== oldDom) {\n oldDom._component = null;\n recollectNodeTree(oldDom, false);\n }\n }\n\n return dom;\n}\n\n/** Remove a component from the DOM and recycle it.\n *\t@param {Component} component\tThe Component instance to unmount\n *\t@private\n */\nfunction unmountComponent(component) {\n if (options.beforeUnmount) options.beforeUnmount(component);\n\n var base = component.base;\n\n component._disable = true;\n\n if (component.uninstall) component.uninstall();\n\n if (component.store) {\n if (options.isMultiStore) {\n for (var key in component.store) {\n var current = component.store[key];\n current.instances && removeItem(component, current.instances);\n current.updateSelfInstances && removeItem(component, current.updateSelfInstances);\n }\n } else {\n component.store.instances && removeItem(component, component.store.instances);\n component.store.updateSelfInstances && removeItem(component, component.store.updateSelfInstances);\n }\n }\n\n component.base = null;\n\n // recursively tear down & recollect high-order component children:\n var inner = component._component;\n if (inner) {\n unmountComponent(inner);\n } else if (base) {\n if (base['__omiattr_'] != null) applyRef(base['__omiattr_'].ref, null);\n\n component.nextBase = base;\n\n removeNode(base);\n collectComponent(component);\n\n removeChildren(base);\n }\n\n applyRef(component.__ref, null);\n}\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar id = 0;\n\nvar Component = function () {\n function Component(props, store) {\n _classCallCheck(this, Component);\n\n this.props = assign({}, this.constructor.defaultProps, props);\n this.elementId = id++;\n\n this._preCss = null;\n\n this.store = store;\n this.computed = {};\n }\n\n Component.prototype.update = function update(ignoreAttrs, updateSelf, callback) {\n if (this._willUpdate) return;\n this._willUpdate = true;\n if (callback) (this._renderCallbacks = this._renderCallbacks || []).push(callback);\n renderComponent(this, 2);\n if (options.componentChange) options.componentChange(this, this.base);\n this._willUpdate = false;\n };\n\n Component.prototype.updateSelf = function updateSelf() {\n if (this._willUpdateSelf) return;\n this._willUpdateSelf = true;\n renderComponent(this, 2, null, null, true);\n this._willUpdateSelf = false;\n };\n\n Component.prototype.fire = function fire(type, data) {\n var _this = this;\n\n Object.keys(this.props).every(function (key) {\n if ('on' + type.toLowerCase() === key.toLowerCase()) {\n _this.props[key]({ detail: data });\n return false;\n }\n return true;\n });\n };\n\n Component.prototype.render = function render() {};\n\n return Component;\n}();\n\nComponent.is = 'WeElement';\n\n/*\n * obaa 2.1.0\n * By dntzhang\n * Github: https://github.com/Tencent/omi/tree/master/packages/obaa\n * MIT Licensed.\n */\n\n// $_r_: root\n// $_c_: prop change callback\n// $_p_: path\n\nfunction obaa(target, arr, callback) {\n\n\tvar eventPropArr = [];\n\tif (isArray$1(target)) {\n\t\tif (target.length === 0) {\n\t\t\ttarget.$_o_ = {\n\t\t\t\t$_r_: target,\n\t\t\t\t$_p_: '#'\n\t\t\t};\n\t\t}\n\t\tmock(target, target);\n\t}\n\tif (target && typeof target === 'object' && Object.keys(target).length === 0) {\n\t\ttrack(target);\n\t\ttarget.$_o_.$_r_ = target;\n\t}\n\tfor (var prop in target) {\n\t\tif (target.hasOwnProperty(prop)) {\n\t\t\tif (callback) {\n\t\t\t\tif (isArray$1(arr) && isInArray(arr, prop)) {\n\t\t\t\t\teventPropArr.push(prop);\n\t\t\t\t\twatch(target, prop, null, target);\n\t\t\t\t} else if (isString(arr) && prop == arr) {\n\t\t\t\t\teventPropArr.push(prop);\n\t\t\t\t\twatch(target, prop, null, target);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\teventPropArr.push(prop);\n\t\t\t\twatch(target, prop, null, target);\n\t\t\t}\n\t\t}\n\t}\n\tif (!target.$_c_) {\n\t\ttarget.$_c_ = [];\n\t}\n\tvar propChanged = callback ? callback : arr;\n\ttarget.$_c_.push({\n\t\tall: !callback,\n\t\tpropChanged: propChanged,\n\t\teventPropArr: eventPropArr\n\t});\n}\n\nvar triggerStr = ['concat', 'copyWithin', 'fill', 'pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift', 'size'].join(',');\n\nvar methods = ['concat', 'copyWithin', 'entries', 'every', 'fill', 'filter', 'find', 'findIndex', 'forEach', 'includes', 'indexOf', 'join', 'keys', 'lastIndexOf', 'map', 'pop', 'push', 'reduce', 'reduceRight', 'reverse', 'shift', 'slice', 'some', 'sort', 'splice', 'toLocaleString', 'toString', 'unshift', 'values', 'size'];\n\nfunction mock(target, root) {\n\tmethods.forEach(function (item) {\n\t\ttarget[item] = function () {\n\t\t\tvar old = Array.prototype.slice.call(this, 0);\n\t\t\tvar result = Array.prototype[item].apply(this, Array.prototype.slice.call(arguments));\n\t\t\tif (new RegExp('\\\\b' + item + '\\\\b').test(triggerStr)) {\n\t\t\t\tfor (var cprop in this) {\n\t\t\t\t\tif (this.hasOwnProperty(cprop) && !isFunction(this[cprop])) {\n\t\t\t\t\t\twatch(this, cprop, this.$_o_.$_p_, root);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t//todo\n\t\t\t\tonPropertyChanged('Array-' + item, this, old, this, this.$_o_.$_p_, root);\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\t\ttarget['pure' + item.substring(0, 1).toUpperCase() + item.substring(1)] = function () {\n\t\t\treturn Array.prototype[item].apply(this, Array.prototype.slice.call(arguments));\n\t\t};\n\t});\n}\n\nfunction watch(target, prop, path, root) {\n\tif (prop === '$_o_') return;\n\tif (isFunction(target[prop])) return;\n\tif (!target.$_o_) target.$_o_ = {\n\t\t$_r_: root\n\t};\n\tif (path !== undefined && path !== null) {\n\t\ttarget.$_o_.$_p_ = path;\n\t} else {\n\t\ttarget.$_o_.$_p_ = '#';\n\t}\n\n\tvar currentValue = target.$_o_[prop] = target[prop];\n\tObject.defineProperty(target, prop, {\n\t\tget: function get() {\n\t\t\treturn this.$_o_[prop];\n\t\t},\n\t\tset: function set(value) {\n\t\t\tvar old = this.$_o_[prop];\n\t\t\tthis.$_o_[prop] = value;\n\t\t\tonPropertyChanged(prop, value, old, this, target.$_o_.$_p_, root);\n\t\t},\n\t\tconfigurable: true,\n\t\tenumerable: true\n\t});\n\tif (typeof currentValue == 'object') {\n\t\tif (isArray$1(currentValue)) {\n\t\t\tmock(currentValue, root);\n\t\t\tif (currentValue.length === 0) {\n\t\t\t\ttrack(currentValue, prop, path);\n\t\t\t}\n\t\t}\n\t\tif (currentValue && Object.keys(currentValue).length === 0) {\n\t\t\ttrack(currentValue, prop, path);\n\t\t}\n\t\tfor (var cprop in currentValue) {\n\t\t\tif (currentValue.hasOwnProperty(cprop)) {\n\t\t\t\twatch(currentValue, cprop, target.$_o_.$_p_ + '-' + prop, root);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction track(obj, prop, path) {\n\tif (obj.$_o_) {\n\t\treturn;\n\t}\n\tobj.$_o_ = {};\n\tif (path !== undefined && path !== null) {\n\t\tobj.$_o_.$_p_ = path + '-' + prop;\n\t} else {\n\t\tif (prop !== undefined && prop !== null) {\n\t\t\tobj.$_o_.$_p_ = '#' + '-' + prop;\n\t\t} else {\n\t\t\tobj.$_o_.$_p_ = '#';\n\t\t}\n\t}\n}\n\nfunction onPropertyChanged(prop, value, oldValue, target, path, root) {\n\tif (value !== oldValue && !(nan(value) && nan(oldValue)) && root.$_c_) {\n\t\tvar rootName = getRootName(prop, path);\n\t\tfor (var i = 0, len = root.$_c_.length; i < len; i++) {\n\t\t\tvar handler = root.$_c_[i];\n\t\t\tif (handler.all || isInArray(handler.eventPropArr, rootName) || rootName.indexOf('Array-') === 0) {\n\t\t\t\thandler.propChanged.call(target, prop, value, oldValue, path);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (prop.indexOf('Array-') !== 0 && typeof value === 'object') {\n\t\twatch(target, prop, target.$_o_.$_p_, root);\n\t}\n}\n\nfunction isFunction(obj) {\n\treturn Object.prototype.toString.call(obj) == '[object Function]';\n}\n\nfunction nan(value) {\n\treturn typeof value === \"number\" && isNaN(value);\n}\n\nfunction isArray$1(obj) {\n\treturn Object.prototype.toString.call(obj) === '[object Array]';\n}\n\nfunction isString(obj) {\n\treturn typeof obj === 'string';\n}\n\nfunction isInArray(arr, item) {\n\tfor (var i = arr.length; --i > -1;) {\n\t\tif (item === arr[i]) return true;\n\t}\n\treturn false;\n}\n\nfunction getRootName(prop, path) {\n\tif (path === '#') {\n\t\treturn prop;\n\t}\n\treturn path.split('-')[1];\n}\n\nobaa.add = function (obj, prop) {\n\twatch(obj, prop, obj.$_o_.$_p_, obj.$_o_.$_r_);\n};\n\nobaa.set = function (obj, prop, value) {\n\tif (obj[prop] === undefined) {\n\t\twatch(obj, prop, obj.$_o_.$_p_, obj.$_o_.$_r_);\n\t}\n\tobj[prop] = value;\n};\n\nArray.prototype.size = function (length) {\n\tthis.length = length;\n};\n\n/** Render JSX into a `parent` Element.\n *\t@param {VNode} vnode\t\tA (JSX) VNode to render\n *\t@param {Element} parent\t\tDOM element to render into\n *\t@param {object} [store]\n *\t@public\n */\nfunction render(vnode, parent, store, empty, merge) {\n parent = typeof parent === 'string' ? document.querySelector(parent) : parent;\n\n if (store) {\n if (store.data) {\n obsStore(store);\n } else {\n options.isMultiStore = true;\n for (var key in store) {\n if (store[key].data) {\n obsStore(store[key], key);\n }\n }\n }\n }\n\n if (empty) {\n while (parent.firstChild) {\n parent.removeChild(parent.firstChild);\n }\n }\n\n if (merge) {\n merge = typeof merge === 'string' ? document.querySelector(merge) : merge;\n }\n\n return diff(merge, vnode, store, false, parent, false);\n}\n\nfunction obsStore(store, storeName) {\n\n store.instances = [];\n store.updateSelfInstances = [];\n extendStoreUpate(store, storeName);\n\n obaa(store.data, function (prop, val, old, path) {\n var patchs = {};\n var key = fixPath(path + '-' + prop);\n patchs[key] = true;\n store.update(patchs);\n });\n}\n\nfunction merge(vnode, merge, store) {\n obsStore(store);\n\n merge = typeof merge === 'string' ? document.querySelector(merge) : merge;\n\n return diff(merge, vnode, store);\n}\n\nfunction extendStoreUpate(store, key) {\n store.update = function (patch) {\n if (Object.keys(patch).length > 0) {\n this.instances.forEach(function (instance) {\n compute(instance, key);\n if (key) {\n if (instance._updatePath && instance._updatePath[key] && needUpdate(patch, instance._updatePath[key])) {\n if (instance.use) {\n getUse(store.data, (typeof instance.use === 'function' ? instance.use() : instance.use)[key], instance.using, key);\n }\n\n instance.update();\n }\n } else {\n if (instance._updatePath && needUpdate(patch, instance._updatePath)) {\n if (instance.use) {\n instance.using = getUse(store.data, typeof instance.use === 'function' ? instance.use() : instance.use);\n }\n instance.update();\n }\n }\n });\n\n this.updateSelfInstances.forEach(function (instance) {\n compute(instance, key);\n if (key) {\n if (instance._updateSelfPath && instance._updateSelfPath[key] && needUpdate(patch, instance._updateSelfPath[key])) {\n if (instance.useSelf) {\n getUse(store.data, (typeof instance.useSelf === 'function' ? instance.useSelf() : instance.useSelf)[key], instance.usingSelf, key);\n }\n\n instance.updateSelf();\n }\n } else {\n if (instance._updateSelfPath && needUpdate(patch, instance._updateSelfPath)) {\n instance.usingSelf = getUse(store.data, typeof instance.useSelf === 'function' ? instance.useSelf() : instance.useSelf);\n instance.updateSelf();\n }\n }\n });\n\n this.onChange && this.onChange(patch);\n }\n };\n}\n\nfunction compute(instance, isMultiStore) {\n if (instance.compute) {\n for (var ck in instance.compute) {\n instance.computed[ck] = instance.compute[ck].call(isMultiStore ? instance.store : instance.store.data);\n }\n }\n}\n\nfunction needUpdate(diffResult, updatePath) {\n for (var keyA in diffResult) {\n if (updatePath[keyA]) {\n return true;\n }\n for (var keyB in updatePath) {\n if (includePath(keyA, keyB)) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction includePath(pathA, pathB) {\n if (pathA.indexOf(pathB) === 0) {\n var next = pathA.substr(pathB.length, 1);\n if (next === '[' || next === '.') {\n return true;\n }\n }\n return false;\n}\n\nfunction fixPath(path) {\n var mpPath = '';\n var arr = path.replace('#-', '').split('-');\n arr.forEach(function (item, index) {\n if (index) {\n if (isNaN(Number(item))) {\n mpPath += '.' + item;\n } else {\n mpPath += '[' + item + ']';\n }\n } else {\n mpPath += item;\n }\n });\n return mpPath;\n}\n\nfunction _classCallCheck$1(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar storeHelpers = ['use', 'useSelf'];\n\nfunction define(name, ctor, config) {\n\tif (ctor.is === 'WeElement') {\n\t\toptions.mapping[name] = ctor;\n\t} else {\n\n\t\tif (typeof config === 'string') {\n\t\t\tconfig = { css: config };\n\t\t} else {\n\t\t\tconfig = config || {};\n\t\t}\n\n\t\tvar Comp = function (_Component) {\n\t\t\t_inherits(Comp, _Component);\n\n\t\t\tfunction Comp() {\n\t\t\t\tvar _temp, _this, _ret;\n\n\t\t\t\t_classCallCheck$1(this, Comp);\n\n\t\t\t\tfor (var _len = arguments.length, args = Array(_len), key = 0; key < _len; key++) {\n\t\t\t\t\targs[key] = arguments[key];\n\t\t\t\t}\n\n\t\t\t\treturn _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.compute = config.compute, _temp), _possibleConstructorReturn(_this, _ret);\n\t\t\t}\n\n\t\t\tComp.prototype.render = function render() {\n\t\t\t\treturn ctor.call(this, this);\n\t\t\t};\n\n\t\t\treturn Comp;\n\t\t}(Component);\n\n\t\tComp.css = config.css;\n\t\tComp.propTypes = config.propTypes;\n\t\tComp.defaultProps = config.defaultProps;\n\n\t\tvar _loop = function _loop(key) {\n\t\t\tif (typeof config[key] === 'function') {\n\t\t\t\tComp.prototype[key] = function () {\n\t\t\t\t\treturn config[key].apply(this, arguments);\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\n\t\tfor (var key in config) {\n\t\t\t_loop(key);\n\t\t}\n\n\t\tstoreHelpers.forEach(function (func) {\n\t\t\tif (config[func] && config[func] !== 'function') {\n\t\t\t\tComp.prototype[func] = function () {\n\t\t\t\t\treturn config[func];\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\n\t\toptions.mapping[name] = Comp;\n\t}\n}\n\nfunction rpx(str) {\n return str.replace(/([1-9]\\d*|0)(\\.\\d*)*rpx/g, function (a, b) {\n return window.innerWidth * Number(b) / 750 + 'px';\n });\n}\n\nfunction tag(name) {\n return function (target) {\n define(name, target);\n };\n}\n\n/**\n * classNames based on https://github.com/JedWatson/classnames\n * by Jed Watson\n * Licensed under the MIT License\n * https://github.com/JedWatson/classnames/blob/master/LICENSE\n * modified by dntzhang\n */\n\nvar hasOwn = {}.hasOwnProperty;\n\nfunction 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\nfunction extractClass() {\n var _Array$prototype$slic = Array.prototype.slice.call(arguments, 0),\n props = _Array$prototype$slic[0],\n args = _Array$prototype$slic.slice(1);\n\n if (props) {\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 }\n if (args.length > 0) {\n return { 'class': classNames.apply(null, args) };\n }\n}\n\nfunction getHost(component) {\n var base = component.base;\n if (base) {\n while (base.parentNode) {\n if (base.parentNode._component) {\n return base.parentNode._component;\n } else {\n base = base.parentNode;\n }\n }\n }\n}\n\n/**\n * preact-render-to-string based on preact-render-to-string\n * by Jason Miller\n * Licensed under the MIT License\n * https://github.com/developit/preact-render-to-string\n *\n * modified by dntzhang\n */\n\nvar encodeEntities = function encodeEntities(s) {\n return String(s).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"');\n};\n\nvar indent = function indent(s, char) {\n return String(s).replace(/(\\n+)/g, '$1' + (char || '\\t'));\n};\n\nvar mapping$1 = options.mapping;\n\nvar VOID_ELEMENTS = /^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/;\n\nvar isLargeString = function isLargeString(s, length, ignoreLines) {\n return String(s).length > (length || 40) || !ignoreLines && String(s).indexOf('\\n') !== -1 || String(s).indexOf('<') !== -1;\n};\n\nvar JS_TO_CSS = {};\n\n// Convert an Object style to a CSSText string\nfunction styleObjToCss(s) {\n var str = '';\n for (var prop in s) {\n var val = s[prop];\n if (val != null) {\n if (str) str += ' ';\n // str += jsToCss(prop);\n str += JS_TO_CSS[prop] || (JS_TO_CSS[prop] = prop.replace(/([A-Z])/g, '-$1').toLowerCase());\n str += ': ';\n str += val;\n if (typeof val === 'number' && IS_NON_DIMENSIONAL.test(prop) === false) {\n str += 'px';\n }\n str += ';';\n }\n }\n return str || undefined;\n}\n\nfunction renderToString(vnode, opts, store, isSvgMode) {\n store = store || {};\n opts = Object.assign({\n scopedCSS: true\n }, opts);\n var css = {};\n var html = _renderToString(vnode, opts, store, isSvgMode, css);\n return {\n css: Object.values(css),\n html: html\n };\n}\n\n/** The default export is an alias of `render()`. */\nfunction _renderToString(vnode, opts, store, isSvgMode, css) {\n if (vnode == null || typeof vnode === 'boolean') {\n return '';\n }\n\n var nodeName = vnode.nodeName,\n attributes = vnode.attributes,\n isComponent = false;\n\n var pretty = true && opts.pretty,\n indentChar = pretty && typeof pretty === 'string' ? pretty : '\\t';\n\n // #text nodes\n if (typeof vnode !== 'object' && !nodeName) {\n return encodeEntities(vnode);\n }\n\n // components\n var ctor = mapping$1[nodeName];\n if (ctor) {\n isComponent = true;\n\n var props = getNodeProps$1(vnode),\n rendered;\n // class-based components\n var c = new ctor(props, store);\n // turn off stateful re-rendering:\n c._disable = c.__x = true;\n c.props = props;\n c.store = store;\n if (c.install) c.install();\n if (c.beforeRender) c.beforeRender();\n rendered = c.render(c.props, c.store);\n\n if (opts.scopedCSS) {\n\n if (c.constructor.css || c.css) {\n\n var cssStr = c.constructor.css ? c.constructor.css : typeof c.css === 'function' ? c.css() : c.css;\n var cssAttr = '_s' + getCtorName(c.constructor);\n css[cssAttr] = {\n id: cssAttr,\n css: scoper(cssStr, cssAttr)\n };\n addScopedAttrStatic(rendered, cssAttr);\n }\n\n c.scopedCSSAttr = vnode.css;\n scopeHost(rendered, c.scopedCSSAttr);\n }\n\n return _renderToString(rendered, opts, store, false, css);\n }\n\n // render JSX to HTML\n var s = '',\n html;\n\n if (attributes) {\n var attrs = Object.keys(attributes);\n\n // allow sorting lexicographically for more determinism (useful for tests, such as via preact-jsx-chai)\n if (opts && opts.sortAttributes === true) attrs.sort();\n\n for (var i = 0; i < attrs.length; i++) {\n var name = attrs[i],\n v = attributes[name];\n if (name === 'children') continue;\n\n if (name.match(/[\\s\\n\\\\/='\"\\0<>]/)) continue;\n\n if (!(opts && opts.allAttributes) && (name === 'key' || name === 'ref')) continue;\n\n if (name === 'className') {\n if (attributes['class']) continue;\n name = 'class';\n } else if (isSvgMode && name.match(/^xlink:?./)) {\n name = name.toLowerCase().replace(/^xlink:?/, 'xlink:');\n }\n\n if (name === 'style' && v && typeof v === 'object') {\n v = styleObjToCss(v);\n }\n\n var hooked = opts.attributeHook && opts.attributeHook(name, v, store, opts, isComponent);\n if (hooked || hooked === '') {\n s += hooked;\n continue;\n }\n\n if (name === 'dangerouslySetInnerHTML') {\n html = v && v.__html;\n } else if ((v || v === 0 || v === '') && typeof v !== 'function') {\n if (v === true || v === '') {\n v = name;\n // in non-xml mode, allow boolean attributes\n if (!opts || !opts.xml) {\n s += ' ' + name;\n continue;\n }\n }\n s += ' ' + name + '=\"' + encodeEntities(v) + '\"';\n }\n }\n }\n\n // account for >1 multiline attribute\n if (pretty) {\n var sub = s.replace(/^\\n\\s*/, ' ');\n if (sub !== s && !~sub.indexOf('\\n')) s = sub;else if (pretty && ~s.indexOf('\\n')) s += '\\n';\n }\n\n s = '<' + nodeName + s + '>';\n if (String(nodeName).match(/[\\s\\n\\\\/='\"\\0<>]/)) throw s;\n\n var isVoid = String(nodeName).match(VOID_ELEMENTS);\n if (isVoid) s = s.replace(/>$/, ' />');\n\n var pieces = [];\n if (html) {\n // if multiline, indent.\n if (pretty && isLargeString(html)) {\n html = '\\n' + indentChar + indent(html, indentChar);\n }\n s += html;\n } else if (vnode.children) {\n var hasLarge = pretty && ~s.indexOf('\\n');\n for (var i = 0; i < vnode.children.length; i++) {\n var child = vnode.children[i];\n if (child != null && child !== false) {\n var childSvgMode = nodeName === 'svg' ? true : nodeName === 'foreignObject' ? false : isSvgMode,\n ret = _renderToString(child, opts, store, childSvgMode, css);\n if (pretty && !hasLarge && isLargeString(ret)) hasLarge = true;\n if (ret) pieces.push(ret);\n }\n }\n if (pretty && hasLarge) {\n for (var i = pieces.length; i--;) {\n pieces[i] = '\\n' + indentChar + indent(pieces[i], indentChar);\n }\n }\n }\n\n if (pieces.length) {\n s += pieces.join('');\n } else if (opts && opts.xml) {\n return s.substring(0, s.length - 1) + ' />';\n }\n\n if (!isVoid) {\n if (pretty && ~s.indexOf('\\n')) s += '\\n';\n s += '';\n }\n\n return s;\n}\n\nfunction assign$1(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }return obj;\n}\n\nfunction getNodeProps$1(vnode) {\n var props = assign$1({}, vnode.attributes);\n props.children = vnode.children;\n\n var defaultProps = vnode.nodeName.defaultProps;\n if (defaultProps !== undefined) {\n for (var i in defaultProps) {\n if (props[i] === undefined) {\n props[i] = defaultProps[i];\n }\n }\n }\n\n return props;\n}\n\nh.f = Fragment;\n\nvar WeElement = Component;\nvar defineElement = define;\nfunction createRef() {\n\treturn {};\n}\n\noptions.root.Omi = {\n\th: h,\n\tcreateElement: h,\n\tcloneElement: cloneElement,\n\tcreateRef: createRef,\n\tComponent: Component,\n\trender: render,\n\trerender: rerender,\n\toptions: options,\n\tWeElement: WeElement,\n\tdefine: define,\n\trpx: rpx,\n\tdefineElement: defineElement,\n\tclassNames: classNames,\n\textractClass: extractClass,\n\tgetHost: getHost,\n\trenderToString: renderToString,\n\ttag: tag,\n\tmerge: merge,\n\tobaa: obaa\n};\noptions.root.omi = options.root.Omi;\noptions.root.Omi.version = 'omio-2.8.3';\n\nvar omi = {\n\th: h,\n\tcreateElement: h,\n\tcloneElement: cloneElement,\n\tcreateRef: createRef,\n\tComponent: Component,\n\trender: render,\n\trerender: rerender,\n\toptions: options,\n\tWeElement: WeElement,\n\tdefine: define,\n\trpx: rpx,\n\tdefineElement: defineElement,\n\tclassNames: classNames,\n\textractClass: extractClass,\n\tgetHost: getHost,\n\trenderToString: renderToString,\n\ttag: tag,\n\tmerge: merge,\n\tobaa: obaa\n};\n\nexport default omi;\nexport { h, h as createElement, cloneElement, createRef, Component, render, rerender, options, WeElement, define, rpx, defineElement, classNames, extractClass, getHost, renderToString, tag, merge, obaa };\n//# sourceMappingURL=omi.esm.js.map\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/omio/dist/omi.esm.js","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/css-loader/lib/css-base.js","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\n} catch(e) {\n\t// This works if the window reference is available\n\tif(typeof window === \"object\")\n\t\tg = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n\n// WEBPACK FOOTER //\n// (webpack)/buildin/global.js","'use strict';\n\nvar asap = require('asap/raw');\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n try {\n return obj.then;\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nfunction tryCallOne(fn, a) {\n try {\n return fn(a);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\nfunction tryCallTwo(fn, a, b) {\n try {\n fn(a, b);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('Promise constructor\\'s argument is not a function');\n }\n this._75 = 0;\n this._83 = 0;\n this._18 = null;\n this._38 = null;\n if (fn === noop) return;\n doResolve(fn, this);\n}\nPromise._47 = null;\nPromise._71 = null;\nPromise._44 = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n if (this.constructor !== Promise) {\n return safeThen(this, onFulfilled, onRejected);\n }\n var res = new Promise(noop);\n handle(this, new Handler(onFulfilled, onRejected, res));\n return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n return new self.constructor(function (resolve, reject) {\n var res = new Promise(noop);\n res.then(resolve, reject);\n handle(self, new Handler(onFulfilled, onRejected, res));\n });\n}\nfunction handle(self, deferred) {\n while (self._83 === 3) {\n self = self._18;\n }\n if (Promise._47) {\n Promise._47(self);\n }\n if (self._83 === 0) {\n if (self._75 === 0) {\n self._75 = 1;\n self._38 = deferred;\n return;\n }\n if (self._75 === 1) {\n self._75 = 2;\n self._38 = [self._38, deferred];\n return;\n }\n self._38.push(deferred);\n return;\n }\n handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n asap(function() {\n var cb = self._83 === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n if (self._83 === 1) {\n resolve(deferred.promise, self._18);\n } else {\n reject(deferred.promise, self._18);\n }\n return;\n }\n var ret = tryCallOne(cb, self._18);\n if (ret === IS_ERROR) {\n reject(deferred.promise, LAST_ERROR);\n } else {\n resolve(deferred.promise, ret);\n }\n });\n}\nfunction resolve(self, newValue) {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self) {\n return reject(\n self,\n new TypeError('A promise cannot be resolved with itself.')\n );\n }\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = getThen(newValue);\n if (then === IS_ERROR) {\n return reject(self, LAST_ERROR);\n }\n if (\n then === self.then &&\n newValue instanceof Promise\n ) {\n self._83 = 3;\n self._18 = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(then.bind(newValue), self);\n return;\n }\n }\n self._83 = 1;\n self._18 = newValue;\n finale(self);\n}\n\nfunction reject(self, newValue) {\n self._83 = 2;\n self._18 = newValue;\n if (Promise._71) {\n Promise._71(self, newValue);\n }\n finale(self);\n}\nfunction finale(self) {\n if (self._75 === 1) {\n handle(self, self._38);\n self._38 = null;\n }\n if (self._75 === 2) {\n for (var i = 0; i < self._38.length; i++) {\n handle(self, self._38[i]);\n }\n self._38 = null;\n }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n var done = false;\n var res = tryCallTwo(fn, function (value) {\n if (done) return;\n done = true;\n resolve(promise, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(promise, reason);\n });\n if (!done && res === IS_ERROR) {\n done = true;\n reject(promise, LAST_ERROR);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/promise/lib/core.js","'use strict';\n\nif (typeof Promise === 'undefined') {\n // Rejection tracking prevents a common issue where React gets into an\n // inconsistent state due to an error, but it gets swallowed by a Promise,\n // and the user has no idea what causes React's erratic future behavior.\n require('promise/lib/rejection-tracking').enable();\n window.Promise = require('promise/lib/es6-extensions.js');\n}\n\n// fetch() polyfill for making API calls.\nrequire('whatwg-fetch');\n\n// Object.assign() is commonly used with React.\n// It will use the native implementation if it's present and isn't buggy.\nObject.assign = require('object-assign');\n\n// In tests, polyfill requestAnimationFrame since jsdom doesn't provide it yet.\n// We don't polyfill it in the browser--this is user's responsibility.\nif (process.env.NODE_ENV === 'test') {\n require('raf').polyfill(global);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./config/polyfills.js","'use strict';\n\nvar Promise = require('./core');\n\nvar DEFAULT_WHITELIST = [\n ReferenceError,\n TypeError,\n RangeError\n];\n\nvar enabled = false;\nexports.disable = disable;\nfunction disable() {\n enabled = false;\n Promise._47 = null;\n Promise._71 = null;\n}\n\nexports.enable = enable;\nfunction enable(options) {\n options = options || {};\n if (enabled) disable();\n enabled = true;\n var id = 0;\n var displayId = 0;\n var rejections = {};\n Promise._47 = function (promise) {\n if (\n promise._83 === 2 && // IS REJECTED\n rejections[promise._56]\n ) {\n if (rejections[promise._56].logged) {\n onHandled(promise._56);\n } else {\n clearTimeout(rejections[promise._56].timeout);\n }\n delete rejections[promise._56];\n }\n };\n Promise._71 = function (promise, err) {\n if (promise._75 === 0) { // not yet handled\n promise._56 = id++;\n rejections[promise._56] = {\n displayId: null,\n error: err,\n timeout: setTimeout(\n onUnhandled.bind(null, promise._56),\n // For reference errors and type errors, this almost always\n // means the programmer made a mistake, so log them after just\n // 100ms\n // otherwise, wait 2 seconds to see if they get handled\n matchWhitelist(err, DEFAULT_WHITELIST)\n ? 100\n : 2000\n ),\n logged: false\n };\n }\n };\n function onUnhandled(id) {\n if (\n options.allRejections ||\n matchWhitelist(\n rejections[id].error,\n options.whitelist || DEFAULT_WHITELIST\n )\n ) {\n rejections[id].displayId = displayId++;\n if (options.onUnhandled) {\n rejections[id].logged = true;\n options.onUnhandled(\n rejections[id].displayId,\n rejections[id].error\n );\n } else {\n rejections[id].logged = true;\n logError(\n rejections[id].displayId,\n rejections[id].error\n );\n }\n }\n }\n function onHandled(id) {\n if (rejections[id].logged) {\n if (options.onHandled) {\n options.onHandled(rejections[id].displayId, rejections[id].error);\n } else if (!rejections[id].onUnhandled) {\n console.warn(\n 'Promise Rejection Handled (id: ' + rejections[id].displayId + '):'\n );\n console.warn(\n ' This means you can ignore any previous messages of the form \"Possible Unhandled Promise Rejection\" with id ' +\n rejections[id].displayId + '.'\n );\n }\n }\n }\n}\n\nfunction logError(id, error) {\n console.warn('Possible Unhandled Promise Rejection (id: ' + id + '):');\n var errStr = (error && (error.stack || error)) + '';\n errStr.split('\\n').forEach(function (line) {\n console.warn(' ' + line);\n });\n}\n\nfunction matchWhitelist(error, list) {\n return list.some(function (cls) {\n return error instanceof cls;\n });\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/promise/lib/rejection-tracking.js","\"use strict\";\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n if (!queue.length) {\n requestFlush();\n flushing = true;\n }\n // Equivalent to push, but avoids a function call.\n queue[queue.length] = task;\n}\n\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\nvar requestFlush;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n while (index < queue.length) {\n var currentIndex = index;\n // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n index = index + 1;\n queue[currentIndex].call();\n // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (index > capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n queue.length -= index;\n index = 0;\n }\n }\n queue.length = 0;\n index = 0;\n flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n requestFlush = makeRequestCallFromMutationObserver(flush);\n\n// MessageChannels are desirable because they give direct access to the HTML\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\n} else {\n requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n var toggle = 1;\n var observer = new BrowserMutationObserver(callback);\n var node = document.createTextNode(\"\");\n observer.observe(node, {characterData: true});\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\nfunction makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n var timeoutHandle = setTimeout(handleTimer, 0);\n // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n var intervalHandle = setInterval(handleTimer, 50);\n\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n}\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/asap/browser-raw.js","'use strict';\n\n//This file contains the ES6 extensions to the core Promises/A+ API\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\n\n/* Static Functions */\n\nvar TRUE = valuePromise(true);\nvar FALSE = valuePromise(false);\nvar NULL = valuePromise(null);\nvar UNDEFINED = valuePromise(undefined);\nvar ZERO = valuePromise(0);\nvar EMPTYSTRING = valuePromise('');\n\nfunction valuePromise(value) {\n var p = new Promise(Promise._44);\n p._83 = 1;\n p._18 = value;\n return p;\n}\nPromise.resolve = function (value) {\n if (value instanceof Promise) return value;\n\n if (value === null) return NULL;\n if (value === undefined) return UNDEFINED;\n if (value === true) return TRUE;\n if (value === false) return FALSE;\n if (value === 0) return ZERO;\n if (value === '') return EMPTYSTRING;\n\n if (typeof value === 'object' || typeof value === 'function') {\n try {\n var then = value.then;\n if (typeof then === 'function') {\n return new Promise(then.bind(value));\n }\n } catch (ex) {\n return new Promise(function (resolve, reject) {\n reject(ex);\n });\n }\n }\n return valuePromise(value);\n};\n\nPromise.all = function (arr) {\n var args = Array.prototype.slice.call(arr);\n\n return new Promise(function (resolve, reject) {\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n if (val instanceof Promise && val.then === Promise.prototype.then) {\n while (val._83 === 3) {\n val = val._18;\n }\n if (val._83 === 1) return res(i, val._18);\n if (val._83 === 2) reject(val._18);\n val.then(function (val) {\n res(i, val);\n }, reject);\n return;\n } else {\n var then = val.then;\n if (typeof then === 'function') {\n var p = new Promise(then.bind(val));\n p.then(function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n values.forEach(function(value){\n Promise.resolve(value).then(resolve, reject);\n });\n });\n};\n\n/* Prototype Methods */\n\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/promise/lib/es6-extensions.js","(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue+','+value : value\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n rawHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = 'status' in options ? options.status : 200\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/whatwg-fetch/fetch.js","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/object-assign/index.js","import { define, WeElement } from 'omi'\n\nimport './my-head'\nimport './my-content'\nimport './my-sidebar'\nimport './my-demo'\n\ndefine('my-frame', class extends WeElement {\n\n installed(){\n this.store.init()\n }\n\n render() {\n return (\n
\n \n
\n \n
\n \n \n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-frame.js","import { define, WeElement } from 'omi'\nimport logo from './omi-logo2019.svg'\n\ndefine('my-head', class extends WeElement {\n static css = require('./_index.css')\n\n use = [\n 'position'\n ]\n\n toggleMenus = evt => {\n this.store.toogleSidebar()\n evt.stopPropagation()\n }\n\n hideSidebar = evt => {\n this.store.hideSidebar()\n }\n\n render() {\n return (\n
\n
\n \"\"\n
\n\n \n \n \n \n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-head/index.js","module.exports = __webpack_public_path__ + \"static/media/omi-logo2019.923166c3.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-head/omi-logo2019.svg\n// module id = 13\n// module chunks = 39 40","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAqklEQVRoQ+2WQQ6AMAgE4f+Pxg+oSTNbDXR7Z5UZQpvR/GTz/w838LdBG7ABSMAjBAHichvACGHAXANVVRCOtDwzb2E/GnADUv4R5xkQA9wWN3cLbUMmDrYBMdDluLkGfJEtD8N7wXkXWfsREk/Atri5W2gbMnGwDYiBLsfNNdB+jbqB5Wn2U0KM7KO4uVvoI4D4MzaAEcIAG4AAcbkNYIQwwAYgQFze3sAFU6MwMZGH3LoAAAAASUVORK5CYII=\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-head/menu.png\n// module id = 14\n// module chunks = 39 40","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-head/_index.css\n// module id = 15\n// module chunks = 39 40","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".head{\\n position:fixed;\\n height:60px;\\n line-height: 60px;\\n border-bottom: 1px solid #eee;\\n width:100%;\\n background-color:#24292e;\\n z-index:100;\\n top: 0;\\n}\\n\\nul,li{\\n display: inline-block;\\n}\\n\\n.logo_box{\\n width:100px;\\n display: inline-block;\\n text-align:center;\\n line-height: 60px;\\n}\\n\\n.menu a,.logo_box a{\\n display: inline-block;\\n height:60px;\\n color: white;\\n}\\n\\n.menu{\\n position: absolute;\\n right:20px;\\n}\\n\\n.menu li{\\n margin-left:15px;\\n}\\n\\n.logo_box a{\\n font-size: 34px;\\n font-weight: bold;\\n color: #00bff3;\\n padding: 0px 15px;\\n line-height: 60px;\\n cursor: pointer;\\n}\\n\\n.menu a:hover{\\n color: white;\\n}\\n\\n.m_menu{\\n position:fixed;\\n display:none;\\n cursor: pointer;\\n}\\n\\n.menu li{\\n display:inline-block;\\n}\\n\\n.logo{\\n width: 40px;\\n height: 40px;\\n margin-left: 10px;\\n margin-top: 10px;\\n cursor: pointer;\\n}\\n\\n@media only screen and (max-width: 800px) {\\n\\n .logo_box{\\n display:inline-block;\\n }\\n\\n .logo{\\n display: none;\\n }\\n\\n .head{\\n text-align:center;\\n }\\n\\n .m_menu{\\n top:0;\\n left:0;\\n display:block;\\n width:50px;\\n height:50px;\\n padding-top: 6px;\\n }\\n\\n .m_menu img{\\n width:30px;\\n }\\n\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-head/_index.css\n// module id = 16\n// module chunks = 39 40","import { define, WeElement } from 'omi'\nimport '../my-footer'\n\ndefine('my-content', class extends WeElement {\n static css = require('./_index.css')\n\n use = [\n 'html'\n ]\n\n install() {\n this.store.myContent = this\n }\n\n installed() {\n this.initCodeStyle()\n }\n\n afterUpdate() {\n this.initCodeStyle()\n }\n\n touchEnd = () => {\n this.store.hideSidebar()\n }\n\n initCodeStyle() {\n let codes = document.querySelectorAll('code')\n\n let codesArr = Array.prototype.slice.call(codes);\n let codeHlNumArr = []\n codesArr.forEach(code => {\n let arr = code.className.match(/{([\\S\\s]*)}/)\n let pre = code.parentNode\n //bug!\n arr && pre.setAttribute('data-line', arr[1])\n if (code.className) {\n pre.className = code.className\n\n const temp = code.className.match(/language-\\w*/g)[0]\n if (temp) {\n code.innerHTML = Prism.highlight(code.innerText, Prism.languages[temp.split('-')[1]], temp.split('-')[1])\n }\n } else {\n let pre = code.parentNode\n code.className = 'language-markup'\n pre.className = 'language-markup'\n code.innerHTML = Prism.highlight(code.innerText, Prism.languages.markup, 'markup')\n }\n // let hllNums = null\n // if (arr) {\n // let numArr = arr[0].replace(/[{|}]/g, '').split(',')\n // hllNums = this._arrToNumber(numArr)\n // }\n //codeHlNumArr.push(hllNums)\n })\n\n // codesArr.forEach((code, index) => {\n // let newP = document.createElement('div')\n // newP.className = '_code-ctn'\n // let pre = code.parentNode\n // let ctn = pre.parentNode\n // if (pre.nodeName === 'PRE') {\n // ctn.insertBefore(newP, pre)\n\n // let hl = document.createElement('div')\n // hl.className = '_hl'\n // newP.appendChild(hl)\n // newP.appendChild(pre)\n // let nums = codeHlNumArr[index]\n\n // let max = Math.max.apply(null, nums)\n\n // let inner = ''\n // for (let i = 0; i <= max; i++) {\n // if (nums.indexOf(i) == -1) {\n // inner += '
'\n // } else {\n // inner += '
'\n // }\n // }\n // hl.innerHTML = inner\n // }\n // })\n //fix line-highlight\n window.dispatchEvent(new Event('resize'));\n }\n\n _arrToNumber(numArr) {\n let arr = []\n numArr.forEach(item => {\n if (item.indexOf('-') !== -1) {\n const tempArr = item.split('-')\n const begin = Number(tempArr[0])\n const end = Number(tempArr[1])\n for (let i = begin; i < end + 1; i++) {\n arr.push(i)\n }\n } else {\n arr.push(Number(item))\n }\n })\n return arr\n }\n\n render() {\n return (\n
\n \n \n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-content/index.js","import { define, WeElement } from 'omi'\n\ndefine('my-footer', class extends WeElement {\n static css = require('./_index.css')\n\n use = [\n 'position',\n 'menu'\n ]\n\n render() {\n const [\n position,\n menus\n ] = this.using\n const pre = this.store.getPre()\n const next = this.store.getNext()\n\n return (\n
\n {pre &&← {pre.name}}\n {next &&}\n
\n )\n }\n\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-footer/index.js","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-footer/_index.css\n// module id = 19\n// module chunks = 39 40","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".ft{\\n position: relative;\\n margin-top: 20px\\n}\\n\\n.pre{\\n position: absolute;\\n left:15px;\\n}\\n\\n.next{\\n position: absolute;\\n right: 15px;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-footer/_index.css\n// module id = 20\n// module chunks = 39 40","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-content/_index.css\n// module id = 21\n// module chunks = 39 40","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".content{\\n position: relative;\\n padding: 70px 30px;\\n max-width: 900px;\\n margin: 0 auto;\\n\\n}\\n\\n@media screen and (max-width: 1500px){\\n .content {\\n margin-left: 290px;\\n }\\n}\\n\\nh3{\\n color:#444444;\\n}\\n\\npre{\\n border: 1px solid #eee;\\n width: 100%;\\n}\\nli{\\n text-indent: 20px;\\n list-style:disc inside ;\\n}\\n\\n@media only screen and (max-width: 800px) {\\n .content{\\n margin-left: 0;\\n border-left: none;\\n padding: 70px 10px 70px 10px;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-content/_index.css\n// module id = 22\n// module chunks = 39 40","import { define, WeElement } from 'omi'\nimport '../my-list'\n\ndefine('my-sidebar', class extends WeElement {\n static css = require('./_index.css')\n\n use = [\n 'menus',\n 'sideBarShow',\n 'lan'\n ]\n\n render() {\n const [menus, sideBarShow, lan] = this.using\n\n return (\n
\n {menus[lan].map((menu, index) => (\n \n ))}\n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-sidebar/index.js","import { define, WeElement } from 'omi'\n\ndefine('my-list', class extends WeElement {\n static css = require('./_index.css')\n\n use = [\n 'position'\n ]\n\n render(props) {\n const [position] = this.using\n\n return (\n
    \n
  • {props.menu.title}
  • \n {props.menu.list &&\n props.menu.list.map((item, subIndex) => {\n const cls = position[0] === props.index && position[1] === subIndex ? { class: 'current' } : null\n return
  • \n \n {item.name}\n \n
  • \n })}\n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-list/index.js","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-list/_index.css\n// module id = 25\n// module chunks = 39 40","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"li.title{\\n font-size: 14px;\\n font-weight: bold;\\n margin-bottom:10px;\\n margin-top:10px;\\n text-indent: 23px;\\n}\\nli{\\n margin-bottom:1px;\\n text-indent: 33px;\\n}\\nli a{\\n display:block;\\n font-size:14px;\\n height:30px;\\n line-height:30px;\\n color: black;\\n background-color:#eee;\\n}\\nli a.current,li a.current:hover{\\n background-color:#24292e;\\n color: white;\\n cursor: default;\\n}\\nli a:hover{\\n background-color:#f0f8ff;\\n}\\n\\n\\nul,li{\\n list-style:none;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-list/_index.css\n// module id = 26\n// module chunks = 39 40","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-sidebar/_index.css\n// module id = 27\n// module chunks = 39 40","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"@media only screen and (max-width: 800px) {\\n .list{\\n transform: translateX(-100%);\\n background-color:white;\\n left:0 !important;\\n -moz-transition: all .6s ease;\\n -o-transition: all .6s ease;\\n -webkit-transition: all .6s ease;\\n transition: all .6s ease;\\n width: 70% !important;\\n z-index: 100000;\\n border-right: none !important;\\n }\\n\\n .list.show {\\n -moz-transform: translateX(0%) translateZ(0);\\n -ms-transform: translateX(0%) translateZ(0);\\n -o-transform: translateX(0%) translateZ(0);\\n -webkit-transform: translateX(0%) translateZ(0);\\n transform: translateX(0%) translateZ(0);\\n }\\n}\\n\\n.list{\\n width: 261px;\\n text-indent: 20px;\\n border-right: 1px solid #eee;\\n overflow-x: hidden;\\n overflow-y: auto;\\n position:fixed;\\n top:60px;\\n background-color: white;\\n height: 100%;\\n border-right: 1px solid #ccc;\\n padding-bottom: 100px;\\n}\\n.version{\\n height:20px;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-sidebar/_index.css\n// module id = 28\n// module chunks = 39 40","import { define, WeElement } from 'omi'\nimport css from './_index.css'\n\ndefine('my-demo', class extends WeElement {\n install() {\n this.store.myDemo = this\n if(this.checkPc())\n this.show = true\n else\n this.show = false\n this.demo = this.store.demo\n }\n\n css() {\n return css\n }\n\n checkPc() {\n let userAgentInfo = navigator.userAgent\n let mp = [\"Android\", \"iPhone\", \"SymbianOS\", \"Windows Phone\", \"iPad\", \"iPod\"]\n for (let i = 0; i < mp.length; i++)\n if (userAgentInfo.indexOf(mp[i]) > 0)\n return false\n return true\n }\n\n onShow = () => {\n this.show = true\n this.update()\n }\n\n onClose = () => {\n this.show = false\n this.update()\n }\n \n render() {\n if(!this.demo) return\n return (\n
\n { this.show && }\n\n {!this.show &&
\n \n
}\n\n {this.show &&
\n \n
}\n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-demo/index.js","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-demo/_index.css\n// module id = 30\n// module chunks = 39 40","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"iframe{\\n width: 750px;\\n height: 100%;\\n top: 60px;\\n right: 0;\\n position: fixed;\\n border: none;\\n z-index: 9999;\\n border-left: 2px solid #24292E;\\n}\\n\\n.switch{\\n width: 40px;\\n height: 40px;\\n background-color: #AA0000;\\n border-radius: 50%;\\n position: fixed;\\n right: 50px;\\n bottom: 50px;\\n cursor: pointer;\\n text-align: center;\\n z-index: 10000;\\n}\\n\\n.switch img{\\n width: 30px;\\n height: 30px;\\n margin-top:5px;\\n}\\n\\n.switch.close img{\\n margin-top:10px;\\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n@media only screen and (max-width: 800px) {\\n iframe{\\n width: 100%;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-demo/_index.css\n// module id = 31\n// module chunks = 39 40","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfiDBQMEgYVXhFiAAABVklEQVRIx+3UsU4UURSA4TNARoiJcR9BCwwJNNpRU0hjpS+hDTTyGkAD1UJnRzCbYKRAKzt9AaMxJoR+Ewho8dEMm5nZOzObbfVUM+ec/79n7uTeiP8xUfjiq6Xp8Ufg6fSCN7iQpasztebcttVaz3pEnGQirNqWt62VG2CoV8rNu8TLCD1DDBoVBc5BeVzr+OthhMwBjQq59wVe+Sy7+FQ8Z/bBB/MT4hG+4+3oLa0Y4f0x/AlYLmUyezVFMx5hE79ruaqiDY9wir2xbFnhqAW/7xovEpUZfXCUwEqxFvfiJs5ae+SO0/sfYR8fE8zdvzi524UGhV/Y6MCbp7ACFjvxiuKd2VFuCz/GNu8wgacVPmNnQrxQlA6TB/7geWX4tsNUUgz1IrzClYVStes4F4riQtHHoFbtulAq457j9UTNScEz8Li7c64hfxXf4jr7OfUE/1TcAoyIn6j/RilHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTEyLTIwVDExOjE4OjA2KzAxOjAwT3khJwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMi0yMFQxMToxODowNiswMTowMD4kmZsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-demo/code.png\n// module id = 32\n// module chunks = 39 40","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAQAAACROWYpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiDBQMERzDEbvbAAAArElEQVQ4y6XVOw6DMBBFUSf7SmGy2ZCNBerIJN2lAQn/34ArZHFsi3mDHW9mvDMOPDOjYwKCjeMJwGd/MPBI8OALBJ4S3d8e0okuz6jOi1TjVdrnTdrmXVrnEi1zmebcRGNupgf+YzHTjS8A/Ov0Lqxzs+97PLbUMukHG2wd59LimHheHJmX6yrxeiS6vJ2mJu8Hscq1DBe5Hv+M2zon4pd++teum5Hp5EX3WgGu+8eCI/n/bQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0xMi0yMFQxMToxNzoyOCswMTowMKxoBooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMTItMjBUMTE6MTc6MjgrMDE6MDDdNb42AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-demo/close.png\n// module id = 33\n// module chunks = 39 40","import config from '../docs/config.js'\nimport 'omi-router'\n\nclass Store {\n constructor(data) {\n this.data = {\n position: [-1, -1],\n menus: config.menus,\n lan: data.lan,\n html: '',\n sideBarShow: false\n }\n let id = 0\n this.map = {}\n this.positionMap = {}\n config.menus[this.data.lan].forEach((menu, index) => {\n menu.list.forEach((item, subIndex) => {\n item.id = id++\n item.position = [index, subIndex]\n this.map[item.id] = item\n item.index = index\n item.subIndex = subIndex\n this.positionMap[index + '-' + subIndex] = item\n })\n })\n this.preIndex = 0\n this.preSubIndex = 0\n }\n\n getNext() {\n const item = this.positionMap[this.data.position.join('-')]\n if (item) {\n return this.map[item.id + 1]\n }\n }\n\n getPre() {\n const item = this.positionMap[this.data.position.join('-')]\n if (item) {\n return this.map[item.id - 1]\n }\n }\n\n init() {\n this.remarkable = new Remarkable({ html: true })\n if (location.hash === \"\") {\n this.data.position = [0, 0]\n this.getMarkDown(this.data.menus[this.data.lan][0].list[0].md, this.data.lan, m => {\n this.data.html = this.remarkable.render(m)\n })\n }\n this.initRouter()\n }\n\n toogleSidebar() {\n this.data.sideBarShow = !this.data.sideBarShow\n }\n\n hideSidebar() {\n this.data.sideBarShow = false\n }\n\n initRouter() {\n const menus = this.data.menus[this.data.lan]\n menus.forEach(item => {\n item.list.forEach(subItem => {\n route('/' + subItem.md, evt => {\n menus[this.preIndex].list[this.preSubIndex].selected = false\n const indexs = getIndexs(subItem.md, this.data.lan, config)\n this.preIndex = indexs[0]\n this.preSubIndex = indexs[1]\n this.data.position = [indexs[0], indexs[1]]\n this.data.sideBarShow = false\n\n this.getMarkDown(subItem.md, this.data.lan, m => {\n this.data.html = this.remarkable.render(m)\n document.body.scrollTop = 0\n document.documentElement.scrollTop = 0\n })\n })\n })\n })\n }\n\n getMarkDown(name, lan, callback) {\n import('../docs/' + lan + '/' + name + '.md').then(m => {\n callback(m)\n })\n }\n}\n\nfunction getIndexs(name, lan, config) {\n const menus = config.menus[lan]\n for (let i = 0, len = menus.length; i < len; i++) {\n for (let j = 0, sLen = menus[i].list.length; j < sLen; j++) {\n if (name === menus[i].list[j].md) {\n return [i, j]\n }\n }\n }\n}\n\n\nexport default Store\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/index.js","const config = {\n menus: {\n 'zh-cn': [\n {\n title: 'OMI',\n list: [\n { name: '简介', md: 'introduction' },\n { name: '安装', md: 'installation' }\n ]\n },\n {\n title: '基础概念',\n list: [\n { name: 'H / H.F / JSX', md: 'jsx' },\n { name: '属性 Props', md: 'props' },\n { name: '事件 Event', md: 'event' },\n { name: '插槽 Slot', md: 'slot' },\n { name: '生命周期', md: 'lifecycle' },\n { name: '更新 Update', md: 'update' },\n { name: 'Provide / Inject', md: 'provide-inject' },\n { name: '引用 Ref', md: 'ref' },\n { name: '类名 Class', md: 'class' },\n { name: '扩展 Extend', md: 'extend' },\n // { name: '存储 Store', md: 'store' },\n { name: '样式 CSS', md: 'css' }\n ]\n },\n {\n title: '其他',\n list: [\n { name: 'Kbone 多端开发', md: 'kbone' },\n { name: '路由', md: 'router' },\n // { name: '服务端渲染', md: 'ssr' },\n { name: '生态与例子', md: 'other' },\n // { name: 'Mps', md: 'mps' }\n ]\n }\n ],\n en: [\n {\n title: 'OMI',\n list: [\n { name: 'Introduction', md: 'introduction' },\n { name: 'Installation', md: 'installation' }\n ]\n },\n {\n title: 'Base',\n list: [\n { name: 'H / H.F / JSX', md: 'jsx' },\n { name: 'Props', md: 'props' },\n { name: 'Event', md: 'event' },\n { name: 'Slot', md: 'slot' },\n { name: 'Lifecycle', md: 'lifecycle' },\n { name: 'Update', md: 'update' },\n { name: 'Provide / Inject', md: 'provide-inject' },\n { name: 'Ref', md: 'ref' },\n { name: 'Class', md: 'class' },\n { name: 'Extend', md: 'extend' },\n // { name: 'Store', md: 'store' },\n { name: 'CSS', md: 'css' }\n ]\n },\n {\n title: 'Other',\n list: [\n { name: 'Router', md: 'router' },\n // { name: 'Server-Side Rendering', md: 'ssr' },\n { name: 'Ecosystem and Examples', md: 'other' }\n ]\n }\n ]\n }\n}\n\nexport default config\n\n\n\n// WEBPACK FOOTER //\n// ./src/docs/config.js","/**\n * omi-router v3.0.2 http://omijs.org\n * Front End Cross-Frameworks Framework.\n * By dntzhang https://github.com/dntzhang\n * Github: https://github.com/Tencent/omi\n * MIT Licensed.\n */\n\n/**\n * Expose `pathToRegexp`.\n */\nvar _pathToRegexp_3_2_0_pathToRegexp = pathToRegexp;\nvar match_1 = match;\nvar regexpToFunction_1 = regexpToFunction;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * Default configs.\n */\nvar DEFAULT_DELIMITER = '/';\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \":test(\\\\d+)?\" => [\"test\", \"\\d+\", undefined, \"?\"]\n // \"(\\\\d+)\" => [undefined, undefined, \"\\d+\", undefined]\n '(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = (options && options.delimiter) || DEFAULT_DELIMITER;\n var whitelist = (options && options.whitelist) || undefined;\n var pathEscaped = false;\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) !== null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n pathEscaped = true;\n continue\n }\n\n var prev = '';\n var name = res[2];\n var capture = res[3];\n var group = res[4];\n var modifier = res[5];\n\n if (!pathEscaped && path.length) {\n var k = path.length - 1;\n var c = path[k];\n var matches = whitelist ? whitelist.indexOf(c) > -1 : true;\n\n if (matches) {\n prev = c;\n path = path.slice(0, k);\n }\n }\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n pathEscaped = false;\n }\n\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var pattern = capture || group;\n var delimiter = prev || defaultDelimiter;\n\n tokens.push({\n name: name || key++,\n prefix: prev,\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n pattern: pattern\n ? escapeGroup(pattern)\n : '[^' + escapeString(delimiter === defaultDelimiter ? delimiter : (delimiter + defaultDelimiter)) + ']+?'\n });\n }\n\n // Push any remaining characters.\n if (path || index < str.length) {\n tokens.push(path + str.substr(index));\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nfunction match (str, options) {\n var keys = [];\n var re = pathToRegexp(str, keys, options);\n return regexpToFunction(re, keys)\n}\n\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nfunction regexpToFunction (re, keys) {\n return function (pathname, options) {\n var m = re.exec(pathname);\n if (!m) return false\n\n var path = m[0];\n var index = m.index;\n var params = {};\n var decode = (options && options.decode) || decodeURIComponent;\n\n for (var i = 1; i < m.length; i++) {\n if (m[i] === undefined) continue\n\n var key = keys[i - 1];\n\n if (key.repeat) {\n params[key.name] = m[i].split(key.delimiter).map(function (value) {\n return decode(value, key)\n });\n } else {\n params[key.name] = decode(m[i], key);\n }\n }\n\n return { path: path, index: index, params: params }\n }\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (data, options) {\n var path = '';\n var encode = (options && options.encode) || encodeURIComponent;\n var validate = options ? options.validate !== false : true;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n continue\n }\n\n var value = data ? data[token.name] : undefined;\n var segment;\n\n if (Array.isArray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but got array')\n }\n\n if (value.length === 0) {\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j], token);\n\n if (validate && !matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\"')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n segment = encode(String(value), token);\n\n if (validate && !matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but got \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n continue\n }\n\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to be ' + (token.repeat ? 'an array' : 'a string'))\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$/()])/g, '\\\\$1')\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {Array=} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n if (!keys) return path\n\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n pattern: null\n });\n }\n }\n\n return path\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n return new RegExp('(?:' + parts.join('|') + ')', flags(options))\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n options = options || {};\n\n var strict = options.strict;\n var start = options.start !== false;\n var end = options.end !== false;\n var delimiter = options.delimiter || DEFAULT_DELIMITER;\n var endsWith = [].concat(options.endsWith || []).map(escapeString).concat('$').join('|');\n var route = start ? '^' : '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var capture = token.repeat\n ? '(?:' + token.pattern + ')(?:' + escapeString(token.delimiter) + '(?:' + token.pattern + '))*'\n : token.pattern;\n\n if (keys) keys.push(token);\n\n if (token.optional) {\n if (!token.prefix) {\n route += '(' + capture + ')?';\n } else {\n route += '(?:' + escapeString(token.prefix) + '(' + capture + '))?';\n }\n } else {\n route += escapeString(token.prefix) + '(' + capture + ')';\n }\n }\n }\n\n if (end) {\n if (!strict) route += '(?:' + escapeString(delimiter) + ')?';\n\n route += endsWith === '$' ? '$' : '(?=' + endsWith + ')';\n } else {\n var endToken = tokens[tokens.length - 1];\n var isEndDelimited = typeof endToken === 'string'\n ? endToken[endToken.length - 1] === delimiter\n : endToken === undefined;\n\n if (!strict) route += '(?:' + escapeString(delimiter) + '(?=' + endsWith + '))?';\n if (!isEndDelimited) route += '(?=' + escapeString(delimiter) + '|' + endsWith + ')';\n }\n\n return new RegExp(route, flags(options))\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (path instanceof RegExp) {\n return regexpToRegexp(path, keys)\n }\n\n if (Array.isArray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), keys, options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), keys, options)\n}\n_pathToRegexp_3_2_0_pathToRegexp.match = match_1;\n_pathToRegexp_3_2_0_pathToRegexp.regexpToFunction = regexpToFunction_1;\n_pathToRegexp_3_2_0_pathToRegexp.parse = parse_1;\n_pathToRegexp_3_2_0_pathToRegexp.compile = compile_1;\n_pathToRegexp_3_2_0_pathToRegexp.tokensToFunction = tokensToFunction_1;\n_pathToRegexp_3_2_0_pathToRegexp.tokensToRegExp = tokensToRegExp_1;\n\n/*!\n * omi-router v3.0.1 by dntzhang\n * Router for Omi.\n * Github: https://github.com/Tencent/omi\n * MIT Licensed.\n */\nvar mapping = {};\nvar root = getGlobal();\nroot.route = route;\nroot.route.params = null;\nroot.historyLength = 0;\nroot.route.to = function (path, data) {\n root.route._routeByTo = true;\n root.route.data = data;\n if (path[0] === '#') {\n location.hash = path;\n }\n else {\n location.hash = '#' + path;\n }\n};\nwindow.addEventListener('hashchange', hashChange);\nfunction hashChange(evt) {\n var byNative = false;\n //need to fix a line by omi-link\n if (window.history.length === root.historyLength && !root.route._routeByTo) {\n //keep alive mode\n byNative = true;\n }\n root.route._routeByTo = false;\n root.historyLength = window.history.length;\n var prevent = false;\n if (root.route.before) {\n prevent = root.route.before(evt) === false;\n }\n if (prevent)\n return;\n var path = window.location.hash.replace('#', '');\n if (path === '')\n path = '/';\n var notFound = true;\n Object.keys(mapping).every(function (key) {\n var toArr = path.split('?')[0].match(mapping[key].reg);\n if (toArr) {\n var pathArr = key.match(mapping[key].reg);\n root.route.params = getParams(toArr, pathArr);\n root.route.query = getUrlParams(path);\n mapping[key].callback({\n params: root.route.params,\n query: getUrlParams(path),\n data: root.route.data,\n byNative: byNative\n });\n root.route.data = null;\n notFound = false;\n return false;\n }\n return true;\n });\n if (notFound) {\n mapping['*'] && mapping['*'].callback({ byNative: byNative });\n }\n if (root.route.after) {\n root.route.after(evt);\n }\n}\ndocument.addEventListener('DOMContentLoaded', hashChange);\nfunction getParams(toArr, pathArr) {\n var params = {};\n toArr.forEach(function (item, index) {\n if (index > 0) {\n params[pathArr[index].replace(':', '')] = item;\n }\n });\n return params;\n}\nfunction route(path, callback) {\n mapping[path] = {\n callback: callback,\n reg: _pathToRegexp_3_2_0_pathToRegexp(path)\n };\n}\nvar router = { route: route, hashChange: hashChange };\nfunction getGlobal() {\n if (typeof global !== 'object' ||\n !global ||\n global.Math !== Math ||\n global.Array !== Array) {\n return (self ||\n window ||\n global ||\n (function () {\n return this;\n })());\n }\n return global;\n}\nfunction getUrlParams(url) {\n url = url.replace(/#.*$/, '');\n var queryArray = url.split(/[?&]/).slice(1);\n var i, args = {};\n for (i = 0; i < queryArray.length; i++) {\n var match = queryArray[i].match(/([^=]+)=([^=]+)/);\n if (match !== null) {\n args[match[1]] = decodeURIComponent(match[2]);\n }\n }\n return args;\n}\n\nexport { router as default, hashChange, route };\n//# sourceMappingURL=index.esm.js.map\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/omi-router/src/index.esm.js","var map = {\n\t\"./en/class.md\": [\n\t\t38,\n\t\t38\n\t],\n\t\"./en/css.md\": [\n\t\t39,\n\t\t37\n\t],\n\t\"./en/event.md\": [\n\t\t40,\n\t\t36\n\t],\n\t\"./en/extend.md\": [\n\t\t41,\n\t\t35\n\t],\n\t\"./en/installation.md\": [\n\t\t42,\n\t\t34\n\t],\n\t\"./en/introduction.md\": [\n\t\t43,\n\t\t33\n\t],\n\t\"./en/jsx.md\": [\n\t\t44,\n\t\t32\n\t],\n\t\"./en/lifecycle.md\": [\n\t\t45,\n\t\t31\n\t],\n\t\"./en/omim.md\": [\n\t\t46,\n\t\t30\n\t],\n\t\"./en/other.md\": [\n\t\t47,\n\t\t29\n\t],\n\t\"./en/props.md\": [\n\t\t48,\n\t\t28\n\t],\n\t\"./en/provide-inject.md\": [\n\t\t49,\n\t\t27\n\t],\n\t\"./en/ref.md\": [\n\t\t50,\n\t\t26\n\t],\n\t\"./en/router.md\": [\n\t\t51,\n\t\t25\n\t],\n\t\"./en/slot.md\": [\n\t\t52,\n\t\t24\n\t],\n\t\"./en/ssr.md\": [\n\t\t53,\n\t\t23\n\t],\n\t\"./en/store.md\": [\n\t\t54,\n\t\t22\n\t],\n\t\"./en/update.md\": [\n\t\t55,\n\t\t21\n\t],\n\t\"./zh-cn/class.md\": [\n\t\t56,\n\t\t20\n\t],\n\t\"./zh-cn/css.md\": [\n\t\t57,\n\t\t19\n\t],\n\t\"./zh-cn/event.md\": [\n\t\t58,\n\t\t18\n\t],\n\t\"./zh-cn/extend.md\": [\n\t\t59,\n\t\t17\n\t],\n\t\"./zh-cn/installation.md\": [\n\t\t60,\n\t\t16\n\t],\n\t\"./zh-cn/introduction.md\": [\n\t\t61,\n\t\t15\n\t],\n\t\"./zh-cn/jsx.md\": [\n\t\t62,\n\t\t14\n\t],\n\t\"./zh-cn/kbone.md\": [\n\t\t63,\n\t\t13\n\t],\n\t\"./zh-cn/lifecycle.md\": [\n\t\t64,\n\t\t12\n\t],\n\t\"./zh-cn/mps.md\": [\n\t\t65,\n\t\t11\n\t],\n\t\"./zh-cn/omim.md\": [\n\t\t66,\n\t\t10\n\t],\n\t\"./zh-cn/omip.md\": [\n\t\t67,\n\t\t9\n\t],\n\t\"./zh-cn/other.md\": [\n\t\t68,\n\t\t8\n\t],\n\t\"./zh-cn/props.md\": [\n\t\t69,\n\t\t7\n\t],\n\t\"./zh-cn/provide-inject.md\": [\n\t\t70,\n\t\t6\n\t],\n\t\"./zh-cn/ref.md\": [\n\t\t71,\n\t\t5\n\t],\n\t\"./zh-cn/router.md\": [\n\t\t72,\n\t\t4\n\t],\n\t\"./zh-cn/slot.md\": [\n\t\t73,\n\t\t3\n\t],\n\t\"./zh-cn/ssr.md\": [\n\t\t74,\n\t\t2\n\t],\n\t\"./zh-cn/store.md\": [\n\t\t75,\n\t\t1\n\t],\n\t\"./zh-cn/update.md\": [\n\t\t76,\n\t\t0\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids)\n\t\treturn Promise.reject(new Error(\"Cannot find module '\" + req + \"'.\"));\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(ids[0]);\n\t});\n};\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 37;\nmodule.exports = webpackAsyncContext;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs lazy ^\\.\\/.*\\.md$\n// module id = 37\n// module chunks = 39 40","import { render } from 'omi'\nimport './assets/index.css'\nimport './elements/my-frame.js'\nimport Store from './store'\n\nrender(, '#root', new Store({ lan: 'en' }))\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../static/js/index.eff19fd7.js","../webpack/bootstrap 31ae5987bb5f33b83373","../node_modules/omio/dist/omi.esm.js","../node_modules/css-loader/lib/css-base.js","../node_modules/webpack/buildin/global.js","../node_modules/promise/lib/core.js","../config/polyfills.js","../node_modules/promise/lib/rejection-tracking.js","../node_modules/asap/browser-raw.js","../node_modules/promise/lib/es6-extensions.js","../node_modules/whatwg-fetch/fetch.js","../node_modules/object-assign/index.js","elements/my-frame.js","elements/my-head/index.js","elements/my-head/omi-logo2019.svg","elements/my-head/menu.png","webpack:///./src/elements/my-head/_index.css?911a","elements/my-head/_index.css","elements/my-content/index.js","elements/my-footer/index.js","webpack:///./src/elements/my-footer/_index.css?4020","elements/my-footer/_index.css","webpack:///./src/elements/my-content/_index.css?ea33","elements/my-content/_index.css","elements/my-sidebar/index.js","elements/my-list/index.js","webpack:///./src/elements/my-list/_index.css?7382","elements/my-list/_index.css","webpack:///./src/elements/my-sidebar/_index.css?a491","elements/my-sidebar/_index.css","elements/my-demo/index.js","webpack:///./src/elements/my-demo/_index.css?fba4","elements/my-demo/_index.css","elements/my-demo/code.png","elements/my-demo/close.png","store/index.js","docs/config.js","../node_modules/omi-router/src/index.esm.js","docs lazy /^/.//.*/.md$","index.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","parentJsonpFunction","window","chunkIds","moreModules","executeModules","chunkId","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","shift","39","e","onScriptComplete","script","onerror","onload","clearTimeout","timeout","chunk","Error","undefined","installedChunkData","Promise","resolve","promise","reject","head","document","getElementsByTagName","createElement","type","charset","async","nc","setAttribute","src","p","setTimeout","appendChild","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","oe","err","console","error","s","global","VNode","h","nodeName","attributes","lastSimple","child","simple","children","arguments","stack","pop","String","key","options","vnode","toObject","val","TypeError","assign","target","source","from","symbols","to","getOwnPropertySymbols","propIsEnumerable","extend","obj","props","applyRef","ref","value","current","isArray","toString","getUse","data","paths","out","forEach","path","index","getTargetByPath","keys","tempPath","tempVal","args","apply","origin","arr","replace","split","len","getPath","result","item","removeItem","splice","Fragment","cloneElement","slice","enqueueRender","component","items","debounceRendering","defer","rerender","renderComponent","isSameNodeType","node","hydrating","splitText","ctor","mapping","_componentConstructor","isNamedNode","normalizedNodeName","toLowerCase","getNodeProps","defaultProps","createNode","isSvg","doc","createElementNS","parseCSSText","cssText","cssTxt","style","_ref","match","a","b","rule","properties","map","x","trim","Array","Symbol","iterator","_ref3","next","done","_ref2","toUpperCase","removeNode","parentNode","removeChild","setAccessor","old","isWeb","IS_NON_DIMENSIONAL$1","test","oldJson","currentJson","changed","ckey","setStyles","innerHTML","__html","useCapture","nameLower","addEventListener","eventProxy","touchStart","touchEnd","removeEventListener","_listeners","setProperty","ns","removeAttributeNS","removeAttribute","setAttributeNS","className","this","event","___touchX","touches","pageX","___touchY","pageY","___scrollTop","body","scrollTop","Math","abs","changedTouches","dispatchEvent","CustomEvent","detail","getCtorName","styleCache","attrName","styleId","scoper","css","prefix","re","RegExp","g0","g1","g2","g3","addStyle","id","ele","getElementById","someThingStyles","ActiveXObject","styleSheet","textContent","addStyleWithoutId","addScopedAttrStatic","vdom","attr","scopedStyle","scopeVdom","addStyleToHead","staticStyleMapping","scopeHost","flushMounts","mounts","afterMount","installed","constructor","diff","dom","store","mountAll","parent","componentRoot","updateSelf","diffLevel","isSvgMode","ownerSVGElement","ret","idiff","prevSvgMode","vnodeName","buildComponentFromVNode","_component","nodeValue","createTextNode","replaceChild","recollectNodeTree","firstChild","fc","vchildren","nextSibling","innerDiffNode","dangerouslySetInnerHTML","diffAttributes","isHydrating","j","f","vchild","originalChildren","childNodes","keyed","keyedLen","min","childrenLen","vlen","_child","__key","insertBefore","unmountOnly","unmountComponent","removeChildren","lastChild","previousSibling","attrs","collectComponent","components","createComponent","Ctor","inst","list","render","Component","doRender","scopedCssAttr","use","isMultiStore","_updatePath","using","storeName","instances","useSelf","_use","_updatePath2","_using","_storeName","updateSelfInstances","usingSelf","_updateSelfPath","compute","computed","nextBase","setComponentProps","opts","_disable","__ref","base","beforeInstall","install","prevProps","syncComponentUpdates","isChild","rendered","cbase","previousProps","isUpdate","initialBase","initialChildComponent","skip","receiveResult","receiveProps","beforeUpdate","beforeRender","toUnmount","childComponent","childProps","_parentComponent","baseParent","componentRef","t","unshift","afterUpdate","updated","_renderCallbacks","originalComponent","oldDom","isDirectOwner","isOwner","beforeUnmount","uninstall","inner","_classCallCheck","instance","Constructor","obaa","callback","eventPropArr","isArray$1","$_o_","$_r_","$_p_","mock","track","prop","isInArray","watch","isString","$_c_","propChanged","all","root","methods","triggerStr","cprop","isFunction","onPropertyChanged","substring","currentValue","set","oldValue","nan","rootName","getRootName","handler","indexOf","isNaN","empty","merge","querySelector","obsStore","extendStoreUpate","patchs","fixPath","update","patch","needUpdate","onChange","ck","diffResult","updatePath","keyA","keyB","includePath","pathA","pathB","substr","mpPath","Number","_classCallCheck$1","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","writable","setPrototypeOf","__proto__","define","config","is","Comp","_Component","_temp","_this","_ret","_len","concat","propTypes","storeHelpers","func","rpx","str","innerWidth","tag","classNames","classes","arg","argType","hasOwn","join","extractClass","_Array$prototype$slic","getHost","styleObjToCss","JS_TO_CSS","IS_NON_DIMENSIONAL","renderToString","scopedCSS","html","_renderToString","values","isComponent","pretty","indentChar","encodeEntities","mapping$1","getNodeProps$1","__x","cssStr","cssAttr","scopedCSSAttr","sortAttributes","sort","v","allAttributes","hooked","attributeHook","xml","sub","isVoid","VOID_ELEMENTS","pieces","isLargeString","indent","hasLarge","childSvgMode","assign$1","createRef","_typeof","propertyIsEnumerable","Element","runListeners","oEvent","iLstId","iElId","oEvtListeners","oListeners","aEls","aEvts","sEventType","fListener","nElIdx","aElListeners","proto","propertiesObject","F","usePromise","__config__","platform","systemVersion","then","bind","elementId","_preCss","ignoreAttrs","_willUpdate","componentChange","_willUpdateSelf","fire","every","add","size","char","ignoreLines","WeElement","defineElement","Omi","omi","version","cssWithMappingToString","useSourceMap","content","cssMapping","btoa","sourceMapping","toComment","sources","sourceRoot","sourceMap","unescape","encodeURIComponent","JSON","stringify","mediaQuery","alreadyImportedModules","g","Function","eval","noop","getThen","ex","LAST_ERROR","IS_ERROR","tryCallOne","fn","tryCallTwo","_75","_83","_18","_38","doResolve","safeThen","onFulfilled","onRejected","res","handle","Handler","deferred","_47","handleResolved","asap","cb","newValue","finale","_71","reason","require","_44","enable","disable","enabled","onUnhandled","allRejections","matchWhitelist","rejections","whitelist","DEFAULT_WHITELIST","displayId","logged","logError","onHandled","warn","_56","line","some","cls","RangeError","rawAsap","task","queue","requestFlush","flushing","flush","currentIndex","capacity","scan","newLength","makeRequestCallFromTimer","handleTimer","timeoutHandle","clearInterval","intervalHandle","setInterval","scope","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","toggle","observer","observe","characterData","valuePromise","TRUE","FALSE","NULL","UNDEFINED","ZERO","EMPTYSTRING","remaining","race","normalizeName","normalizeValue","iteratorFor","support","iterable","Headers","headers","append","header","getOwnPropertyNames","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","blob","FileReader","readAsArrayBuffer","readBlobAsText","readAsText","readArrayBufferAsText","buf","view","Uint8Array","chars","fromCharCode","bufferClone","byteLength","buffer","Body","_initBody","_bodyInit","_bodyText","Blob","isPrototypeOf","_bodyBlob","formData","FormData","_bodyFormData","searchParams","URLSearchParams","arrayBuffer","isDataView","_bodyArrayBuffer","ArrayBuffer","isArrayBufferView","rejected","text","decode","json","parse","normalizeMethod","method","upcased","Request","input","url","credentials","mode","referrer","form","bytes","decodeURIComponent","parseHeaders","rawHeaders","parts","Response","bodyInit","status","ok","statusText","fetch","viewClasses","DataView","isView","has","thisArg","entries","clone","response","redirectStatuses","redirect","location","init","request","xhr","XMLHttpRequest","getAllResponseHeaders","responseURL","responseText","ontimeout","open","withCredentials","responseType","setRequestHeader","send","polyfill","test1","test2","test3","letter","_createClass","defineProperties","descriptor","protoProps","staticProps","class","_class","_temp2","toggleMenus","evt","toogleSidebar","stopPropagation","hideSidebar","onClick","alt","href","logo","lan","hash","default","myContent","initCodeStyle","codes","querySelectorAll","codesArr","code","pre","temp","Prism","highlight","innerText","languages","markup","Event","numArr","tempArr","begin","end","ontouchend","_slicedToArray","sliceIterator","_arr","_n","_d","_e","_s","_i","getPre","getNext","md","subIndex","menus","sideBarShow","menu","_extends","position","title","onShow","show","onClose","myDemo","checkPc","demo","userAgentInfo","navigator","userAgent","mp","innerHeight","getIndexs","sLen","Store","positionMap","preIndex","preSubIndex","remarkable","Remarkable","getMarkDown","initRouter","subItem","route","selected","indexs","documentElement","en","tokens","defaultDelimiter","delimiter","DEFAULT_DELIMITER","pathEscaped","PATH_REGEXP","exec","escaped","offset","prev","capture","group","modifier","k","repeat","optional","pattern","escapeGroup","escapeString","compile","tokensToFunction","regexpToFunction","pathToRegexp","pathname","params","matches","flags","encode","validate","token","segment","sensitive","regexpToRegexp","groups","arrayToRegexp","stringToRegexp","tokensToRegExp","strict","start","endsWith","endToken","isEndDelimited","hashChange","byNative","history","historyLength","_routeByTo","prevent","before","notFound","toArr","reg","pathArr","getParams","query","getUrlParams","after","_pathToRegexp_3_2_0_pathToRegexp","queryArray","match_1","regexpToFunction_1","parse_1","compile_1","tokensToFunction_1","tokensToRegExp_1","router","webpackAsyncContext","req","ids"],"mappings":"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H,iBACC,GACA,IAED,eACC,GACA,IAED,iBACC,GACA,IAED,kBACC,GACA,IAED,wBACC,GACA,IAED,wBACC,GACA,IAED,eACC,GACA,IAED,qBACC,GACA,IAED,gBACC,GACA,IAED,iBACC,GACA,IAED,iBACC,GACA,IAED,0BACC,GACA,IAED,eACC,GACA,IAED,kBACC,GACA,IAED,gBACC,GACA,IAED,eACC,GACA,IAED,iBACC,GACA,IAED,kBACC,GACA,IAED,oBACC,GACA,IAED,kBACC,GACA,IAED,oBACC,GACA,IAED,qBACC,GACA,IAED,2BACC,GACA,IAED,2BACC,GACA,IAED,kBACC,GACA,IAED,oBACC,GACA,IAED,wBACC,GACA,IAED,kBACC,GACA,IAED,mBACC,GACA,IAED,mBACC,GACA,GAED,oBACC,GACA,GAED,oBACC,GACA,GAED,6BACC,GACA,GAED,kBACC,GACA,GAED,qBACC,GACA,GAED,mBACC,GACA,GAED,kBACC,GACA,GAED,oBACC,GACA,GAED,qBACC,GACA,GAWFstB,GAAoBzwB,KAAO,WAC1B,MAAOhG,QAAOgG,KAAKmD,IAEpBstB,EAAoBhpB,GAAK,GACzBvO,EAAOD,QAAUw3B,GtC2lCT,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAEF,SAAUv3B,EAAQD,EAASH,GAEjCA,EAAoB,GACpBI,EAAOD,QAAUH,EAAoB,KAK/B,SAAUI,EAAQD,EAASH,GAEjC,YuCzzCA,WACA,OACA,KACA,a,wDAEA,IAAAqT,QAAO,uBAAc,QAAS,GAAIsf,YAAQrD,IAAK","file":"static/js/index.eff19fd7.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId]) {\n/******/ \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n/******/ \t\t\t}\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n/******/ \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n/******/ \t\twhile(resolves.length) {\n/******/ \t\t\tresolves.shift()();\n/******/ \t\t}\n/******/\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// objects to store loaded and loading chunks\n/******/ \tvar installedChunks = {\n/******/ \t\t39: 0\n/******/ \t};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId) {\n/******/ \t\tvar installedChunkData = installedChunks[chunkId];\n/******/ \t\tif(installedChunkData === 0) {\n/******/ \t\t\treturn new Promise(function(resolve) { resolve(); });\n/******/ \t\t}\n/******/\n/******/ \t\t// a Promise means \"currently loading\".\n/******/ \t\tif(installedChunkData) {\n/******/ \t\t\treturn installedChunkData[2];\n/******/ \t\t}\n/******/\n/******/ \t\t// setup Promise in chunk cache\n/******/ \t\tvar promise = new Promise(function(resolve, reject) {\n/******/ \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n/******/ \t\t});\n/******/ \t\tinstalledChunkData[2] = promise;\n/******/\n/******/ \t\t// start chunk loading\n/******/ \t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\tvar script = document.createElement('script');\n/******/ \t\tscript.type = 'text/javascript';\n/******/ \t\tscript.charset = 'utf-8';\n/******/ \t\tscript.async = true;\n/******/ \t\tscript.timeout = 120000;\n/******/\n/******/ \t\tif (__webpack_require__.nc) {\n/******/ \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n/******/ \t\t}\n/******/ \t\tscript.src = __webpack_require__.p + \"static/js/\" + ({}[chunkId]||chunkId) + \".\" + {\"0\":\"9f88e82f\",\"1\":\"820f4ee6\",\"2\":\"1e24d7c5\",\"3\":\"46f6b4b4\",\"4\":\"bfbf1055\",\"5\":\"0b016674\",\"6\":\"bb995a3b\",\"7\":\"f97c6ec5\",\"8\":\"fc220e14\",\"9\":\"18c3905c\",\"10\":\"8e4de214\",\"11\":\"df4eed1c\",\"12\":\"a7266116\",\"13\":\"b6ef3caa\",\"14\":\"aab16c83\",\"15\":\"2f8ac6ea\",\"16\":\"1af26874\",\"17\":\"40e1c749\",\"18\":\"837f5ff0\",\"19\":\"6527f67e\",\"20\":\"b4d9f9a5\",\"21\":\"e36975b6\",\"22\":\"5d6510e9\",\"23\":\"3388824e\",\"24\":\"4e689f00\",\"25\":\"af7ead35\",\"26\":\"cca69bdf\",\"27\":\"23c231ee\",\"28\":\"ce3ae121\",\"29\":\"9351a4c8\",\"30\":\"0102262b\",\"31\":\"54a91a5f\",\"32\":\"3fcd0c77\",\"33\":\"d92fcf22\",\"34\":\"59c3f9c8\",\"35\":\"5d2d960a\",\"36\":\"e4085047\",\"37\":\"e0fd7131\",\"38\":\"a6a7bfcc\"}[chunkId] + \".chunk.js\";\n/******/ \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n/******/ \t\tscript.onerror = script.onload = onScriptComplete;\n/******/ \t\tfunction onScriptComplete() {\n/******/ \t\t\t// avoid mem leaks in IE.\n/******/ \t\t\tscript.onerror = script.onload = null;\n/******/ \t\t\tclearTimeout(timeout);\n/******/ \t\t\tvar chunk = installedChunks[chunkId];\n/******/ \t\t\tif(chunk !== 0) {\n/******/ \t\t\t\tif(chunk) {\n/******/ \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n/******/ \t\t\t\t}\n/******/ \t\t\t\tinstalledChunks[chunkId] = undefined;\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t\thead.appendChild(script);\n/******/\n/******/ \t\treturn promise;\n/******/ \t};\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"./\";\n/******/\n/******/ \t// on error function for async loading\n/******/ \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 79);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(obj){return typeof obj;}:function(obj){return obj&&typeof Symbol===\"function\"&&obj.constructor===Symbol&&obj!==Symbol.prototype?\"symbol\":typeof obj;};/**\n * omi v2.8.3 https://tencent.github.io/omi/\n * Omi === Preact + Scoped CSS + Store System + Native Support in 3kb javascript.\n * By dntzhang https://github.com/dntzhang\n * Github: https://github.com/Tencent/omi\n * MIT Licensed.\n *//** Virtual DOM Node */function VNode(){}function getGlobal(){if((typeof global==='undefined'?'undefined':_typeof(global))!=='object'||!global||global.Math!==Math||global.Array!==Array){if(typeof self!=='undefined'){return self;}else if(typeof window!=='undefined'){return window;}else if(typeof global!=='undefined'){return global;}return function(){return this;}();}return global;}/** Global options\n *\t@public\n *\t@namespace options {Object}\n */var options={scopedStyle:true,mapping:{},isWeb:true,staticStyleMapping:{},doc:(typeof document==='undefined'?'undefined':_typeof(document))==='object'?document:null,root:getGlobal(),//styleCache :[{ctor:ctor,ctorName:ctorName,style:style}]\nstyleCache:[],isMultiStore:false//componentChange(component, element) { },\n/** If `true`, `prop` changes trigger synchronous component updates.\n *\t@name syncComponentUpdates\n *\t@type Boolean\n *\t@default true\n *///syncComponentUpdates: true,\n/** Processes all created VNodes.\n *\t@param {VNode} vnode\tA newly-created VNode to normalize/process\n *///vnode(vnode) { }\n/** Hook invoked after a component is mounted. *///afterMount(component) { },\n/** Hook invoked after the DOM is updated with a component's latest render. *///afterUpdate(component) { }\n/** Hook invoked immediately before a component is unmounted. */// beforeUnmount(component) { }\n};var stack=[];/**\n * JSX/hyperscript reviver.\n * @see http://jasonformat.com/wtf-is-jsx\n * Benchmarks: https://esbench.com/bench/57ee8f8e330ab09900a1a1a0\n *\n * Note: this is exported as both `h()` and `createElement()` for compatibility reasons.\n *\n * Creates a VNode (virtual DOM element). A tree of VNodes can be used as a lightweight representation\n * of the structure of a DOM tree. This structure can be realized by recursively comparing it against\n * the current _actual_ DOM structure, and applying only the differences.\n *\n * `h()`/`createElement()` accepts an element name, a list of attributes/props,\n * and optionally children to append to the element.\n *\n * @example The following DOM tree\n *\n * `
Hello!
`\n *\n * can be constructed using this function as:\n *\n * `h('div', { id: 'foo', name : 'bar' }, 'Hello!');`\n *\n * @param {string} nodeName\tAn element name. Ex: `div`, `a`, `span`, etc.\n * @param {Object} attributes\tAny attributes/props to set on the created element.\n * @param rest\t\t\tAdditional arguments are taken to be children to append. Can be infinitely nested Arrays.\n *\n * @public\n */function h(nodeName,attributes){var children=[],lastSimple,child,simple,i;for(i=arguments.length;i-->2;){stack.push(arguments[i]);}if(attributes&&attributes.children!=null){if(!stack.length)stack.push(attributes.children);delete attributes.children;}while(stack.length){if((child=stack.pop())&&child.pop!==undefined){for(i=child.length;i--;){stack.push(child[i]);}}else{if(typeof child==='boolean')child=null;if(simple=typeof nodeName!=='function'){if(child==null)child='';else if(typeof child==='number')child=String(child);else if(typeof child!=='string')simple=false;}if(simple&&lastSimple){children[children.length-1]+=child;}else if(children.length===0){children=[child];}else{children.push(child);}lastSimple=simple;}}var p=new VNode();p.nodeName=nodeName;p.children=children;p.attributes=attributes==null?undefined:attributes;p.key=attributes==null?undefined:attributes.key;// if a \"vnode hook\" is defined, pass every created VNode to it\nif(options.vnode!==undefined)options.vnode(p);return p;}/* eslint-disable no-unused-vars */var getOwnPropertySymbols=Object.getOwnPropertySymbols;var hasOwnProperty=Object.prototype.hasOwnProperty;var propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(val){if(val===null||val===undefined){throw new TypeError('Object.assign cannot be called with null or undefined');}return Object(val);}function assign(target,source){var from;var to=toObject(target);var symbols;for(var s=1;s8){usePromise=true;}}}var defer=usePromise?Promise.resolve().then.bind(Promise.resolve()):setTimeout;function isArray(obj){return Object.prototype.toString.call(obj)==='[object Array]';}function getUse(data,paths,out,name){var obj=[];paths.forEach(function(path,index){var isPath=typeof path==='string';if(isPath){obj[index]=getTargetByPath(data,path);}else{var key=Object.keys(path)[0];var value=path[key];if(typeof value==='string'){obj[index]=getTargetByPath(data,value);}else{var tempPath=value[0];if(typeof tempPath==='string'){var tempVal=getTargetByPath(data,tempPath);obj[index]=value[1]?value[1](tempVal):tempVal;}else{var args=[];tempPath.forEach(function(path){args.push(getTargetByPath(data,path));});obj[index]=value[1].apply(null,args);}}obj[key]=obj[index];}});out&&(out[name]=obj);return obj;}function getTargetByPath(origin,path){var arr=path.replace(/]/g,'').replace(/\\[/g,'.').split('.');var current=origin;for(var i=0,len=arr.length;i2?[].slice.call(arguments,2):vnode.children);}// DOM properties that should NOT have \"px\" added when numeric\nvar IS_NON_DIMENSIONAL$1=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;/** Managed queue of dirty components to be re-rendered */var items=[];function enqueueRender(component){if(items.push(component)==1){(options.debounceRendering||defer)(rerender);}}/** Rerender all enqueued dirty components */function rerender(){var p;while(p=items.pop()){renderComponent(p);}}var mapping=options.mapping;/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node\t\t\tDOM Node to compare\n * @param {VNode} vnode\t\t\tVirtual DOM node to compare\n * @param {boolean} [hydrating=false]\tIf true, ignores component constructors when comparing.\n * @private\n */function isSameNodeType(node,vnode,hydrating){if(typeof vnode==='string'||typeof vnode==='number'){return node.splitText!==undefined;}if(typeof vnode.nodeName==='string'){var ctor=mapping[vnode.nodeName];if(ctor){return hydrating||node._componentConstructor===ctor;}return!node._componentConstructor&&isNamedNode(node,vnode.nodeName);}return hydrating||node._componentConstructor===vnode.nodeName;}/**\n * Check if an Element has a given nodeName, case-insensitively.\n *\n * @param {Element} node\tA DOM Element to inspect the name of.\n * @param {String} nodeName\tUnnormalized name to compare against.\n */function isNamedNode(node,nodeName){return node.normalizedNodeName===nodeName||node.nodeName.toLowerCase()===nodeName.toLowerCase();}/**\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 */function getNodeProps(vnode){var props=extend({},vnode.attributes);props.children=vnode.children;var defaultProps=vnode.nodeName.defaultProps;if(defaultProps!==undefined){for(var i in defaultProps){if(props[i]===undefined){props[i]=defaultProps[i];}}}return props;}/** Create an element with the given nodeName.\n *\t@param {String} nodeName\n *\t@param {Boolean} [isSvg=false]\tIf `true`, creates an element within the SVG namespace.\n *\t@returns {Element} node\n */function createNode(nodeName,isSvg){var node=isSvg?options.doc.createElementNS('http://www.w3.org/2000/svg',nodeName):options.doc.createElement(nodeName);node.normalizedNodeName=nodeName;return node;}function parseCSSText(cssText){var cssTxt=cssText.replace(/\\/\\*(.|\\s)*?\\*\\//g,' ').replace(/\\s+/g,' ');var style={},_ref=cssTxt.match(/ ?(.*?) ?{([^}]*)}/)||[a,b,cssTxt],a=_ref[0],b=_ref[1],rule=_ref[2];var cssToJs=function cssToJs(s){return s.replace(/\\W+\\w/g,function(match){return match.slice(-1).toUpperCase();});};var properties=rule.split(';').map(function(o){return o.split(':').map(function(x){return x&&x.trim();});});for(var i=properties,i=Array.isArray(i),i=0,i=i?i:i[Symbol.iterator]();;){var _ref3;if(i){if(i>=i.length)break;_ref3=i[i++];}else{i=i.next();if(i.done)break;_ref3=i.value;}var _ref2=_ref3;var property=_ref2[0];var value=_ref2[1];style[cssToJs(property)]=value;}return style;}/** Remove a child node from its parent if attached.\n *\t@param {Element} node\t\tThe node to remove\n */function removeNode(node){var parentNode=node.parentNode;if(parentNode)parentNode.removeChild(node);}/** Set a named attribute on the given Node, with special behavior for some names and event handlers.\n *\tIf `value` is `null`, the attribute/handler will be removed.\n *\t@param {Element} node\tAn element to mutate\n *\t@param {string} name\tThe name/key to set, such as an event or attribute name\n *\t@param {any} old\tThe last value that was set for this name/node pair\n *\t@param {any} value\tAn attribute value, such as a function to be used as an event handler\n *\t@param {Boolean} isSvg\tAre we currently diffing inside an svg?\n *\t@private\n */function setAccessor(node,name,old,value,isSvg){if(name==='className')name='class';if(name==='key'){// ignore\n}else if(name==='ref'){applyRef(old,null);applyRef(value,node);}else if(name==='class'&&!isSvg){node.className=value||'';}else if(name==='style'){if(options.isWeb){if(!value||typeof value==='string'||typeof old==='string'){node.style.cssText=value||'';}if(value&&(typeof value==='undefined'?'undefined':_typeof(value))==='object'){if(typeof old!=='string'){for(var i in old){if(!(i in value))node.style[i]='';}}for(var i in value){node.style[i]=typeof value[i]==='number'&&IS_NON_DIMENSIONAL$1.test(i)===false?value[i]+'px':value[i];}}}else{var oldJson=old,currentJson=value;if(typeof old==='string'){oldJson=parseCSSText(old);}if(typeof value=='string'){currentJson=parseCSSText(value);}var result={},changed=false;if(oldJson){for(var key in oldJson){if((typeof currentJson==='undefined'?'undefined':_typeof(currentJson))=='object'&&!(key in currentJson)){result[key]='';changed=true;}}for(var ckey in currentJson){if(currentJson[ckey]!==oldJson[ckey]){result[ckey]=currentJson[ckey];changed=true;}}if(changed){node.setStyles(result);}}else{node.setStyles(currentJson);}}}else if(name==='dangerouslySetInnerHTML'){if(value)node.innerHTML=value.__html||'';}else if(name[0]=='o'&&name[1]=='n'){var useCapture=name!==(name=name.replace(/Capture$/,''));var nameLower=name.toLowerCase();name=(nameLower in node?nameLower:name).slice(2);if(value){if(!old){node.addEventListener(name,eventProxy,useCapture);if(name=='tap'){node.addEventListener('touchstart',touchStart,useCapture);node.addEventListener('touchend',touchEnd,useCapture);}}}else{node.removeEventListener(name,eventProxy,useCapture);if(name=='tap'){node.removeEventListener('touchstart',touchStart,useCapture);node.removeEventListener('touchend',touchEnd,useCapture);}}(node._listeners||(node._listeners={}))[name]=value;}else if(name!=='list'&&name!=='tagName'&&// HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n// setAttribute\nname!=='form'&&name!=='type'&&name!=='size'&&name!=='download'&&name!=='href'&&!isSvg&&name in node){setProperty(node,name,value==null?'':value);}else{var ns=isSvg&&name!==(name=name.replace(/^xlink:?/,''));if(value==null||value===false){if(ns)node.removeAttributeNS('http://www.w3.org/1999/xlink',name.toLowerCase());else node.removeAttribute(name);}else if(typeof value!=='function'){if(ns)node.setAttributeNS('http://www.w3.org/1999/xlink',name.toLowerCase(),value);else node.setAttribute(name,value);}}}/** Attempt to set a DOM property to the given value.\n *\tIE & FF throw for certain property-value combinations.\n */function setProperty(node,name,value){try{node[name]=value;}catch(e){}}/** Proxy an event to hooked event handlers\n *\t@private\n */function eventProxy(e){return this._listeners[e.type](options.event&&options.event(e)||e);}function touchStart(e){this.___touchX=e.touches[0].pageX;this.___touchY=e.touches[0].pageY;this.___scrollTop=document.body.scrollTop;}function touchEnd(e){if(Math.abs(e.changedTouches[0].pageX-this.___touchX)<30&&Math.abs(e.changedTouches[0].pageY-this.___touchY)<30&&Math.abs(document.body.scrollTop-this.___scrollTop)<30){this.dispatchEvent(new CustomEvent('tap',{detail:e}));}}var styleId=0;function getCtorName(ctor){for(var i=0,len=options.styleCache.length;i-1;){if(item===arr[i])return true;}return false;}function getRootName(prop,path){if(path==='#'){return prop;}return path.split('-')[1];}obaa.add=function(obj,prop){watch(obj,prop,obj.$_o_.$_p_,obj.$_o_.$_r_);};obaa.set=function(obj,prop,value){if(obj[prop]===undefined){watch(obj,prop,obj.$_o_.$_p_,obj.$_o_.$_r_);}obj[prop]=value;};Array.prototype.size=function(length){this.length=length;};/** Render JSX into a `parent` Element.\n *\t@param {VNode} vnode\t\tA (JSX) VNode to render\n *\t@param {Element} parent\t\tDOM element to render into\n *\t@param {object} [store]\n *\t@public\n */function render(vnode,parent,store,empty,merge){parent=typeof parent==='string'?document.querySelector(parent):parent;if(store){if(store.data){obsStore(store);}else{options.isMultiStore=true;for(var key in store){if(store[key].data){obsStore(store[key],key);}}}}if(empty){while(parent.firstChild){parent.removeChild(parent.firstChild);}}if(merge){merge=typeof merge==='string'?document.querySelector(merge):merge;}return diff(merge,vnode,store,false,parent,false);}function obsStore(store,storeName){store.instances=[];store.updateSelfInstances=[];extendStoreUpate(store,storeName);obaa(store.data,function(prop,val,old,path){var patchs={};var key=fixPath(path+'-'+prop);patchs[key]=true;store.update(patchs);});}function merge(vnode,merge,store){obsStore(store);merge=typeof merge==='string'?document.querySelector(merge):merge;return diff(merge,vnode,store);}function extendStoreUpate(store,key){store.update=function(patch){if(Object.keys(patch).length>0){this.instances.forEach(function(instance){compute(instance,key);if(key){if(instance._updatePath&&instance._updatePath[key]&&needUpdate(patch,instance._updatePath[key])){if(instance.use){getUse(store.data,(typeof instance.use==='function'?instance.use():instance.use)[key],instance.using,key);}instance.update();}}else{if(instance._updatePath&&needUpdate(patch,instance._updatePath)){if(instance.use){instance.using=getUse(store.data,typeof instance.use==='function'?instance.use():instance.use);}instance.update();}}});this.updateSelfInstances.forEach(function(instance){compute(instance,key);if(key){if(instance._updateSelfPath&&instance._updateSelfPath[key]&&needUpdate(patch,instance._updateSelfPath[key])){if(instance.useSelf){getUse(store.data,(typeof instance.useSelf==='function'?instance.useSelf():instance.useSelf)[key],instance.usingSelf,key);}instance.updateSelf();}}else{if(instance._updateSelfPath&&needUpdate(patch,instance._updateSelfPath)){instance.usingSelf=getUse(store.data,typeof instance.useSelf==='function'?instance.useSelf():instance.useSelf);instance.updateSelf();}}});this.onChange&&this.onChange(patch);}};}function compute(instance,isMultiStore){if(instance.compute){for(var ck in instance.compute){instance.computed[ck]=instance.compute[ck].call(isMultiStore?instance.store:instance.store.data);}}}function needUpdate(diffResult,updatePath){for(var keyA in diffResult){if(updatePath[keyA]){return true;}for(var keyB in updatePath){if(includePath(keyA,keyB)){return true;}}}return false;}function includePath(pathA,pathB){if(pathA.indexOf(pathB)===0){var next=pathA.substr(pathB.length,1);if(next==='['||next==='.'){return true;}}return false;}function fixPath(path){var mpPath='';var arr=path.replace('#-','').split('-');arr.forEach(function(item,index){if(index){if(isNaN(Number(item))){mpPath+='.'+item;}else{mpPath+='['+item+']';}}else{mpPath+=item;}});return mpPath;}function _classCallCheck$1(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");}return call&&((typeof call==='undefined'?'undefined':_typeof(call))===\"object\"||typeof call===\"function\")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!==\"function\"&&superClass!==null){throw new TypeError(\"Super expression must either be null or a function, not \"+(typeof superClass==='undefined'?'undefined':_typeof(superClass)));}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}var storeHelpers=['use','useSelf'];function define(name,ctor,config){if(ctor.is==='WeElement'){options.mapping[name]=ctor;}else{if(typeof config==='string'){config={css:config};}else{config=config||{};}var Comp=function(_Component){_inherits(Comp,_Component);function Comp(){var _temp,_this,_ret;_classCallCheck$1(this,Comp);for(var _len=arguments.length,args=Array(_len),key=0;key<_len;key++){args[key]=arguments[key];}return _ret=(_temp=(_this=_possibleConstructorReturn(this,_Component.call.apply(_Component,[this].concat(args))),_this),_this.compute=config.compute,_temp),_possibleConstructorReturn(_this,_ret);}Comp.prototype.render=function render(){return ctor.call(this,this);};return Comp;}(Component);Comp.css=config.css;Comp.propTypes=config.propTypes;Comp.defaultProps=config.defaultProps;var _loop=function _loop(key){if(typeof config[key]==='function'){Comp.prototype[key]=function(){return config[key].apply(this,arguments);};}};for(var key in config){_loop(key);}storeHelpers.forEach(function(func){if(config[func]&&config[func]!=='function'){Comp.prototype[func]=function(){return config[func];};}});options.mapping[name]=Comp;}}function rpx(str){return str.replace(/([1-9]\\d*|0)(\\.\\d*)*rpx/g,function(a,b){return window.innerWidth*Number(b)/750+'px';});}function tag(name){return function(target){define(name,target);};}/**\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 */var hasOwn={}.hasOwnProperty;function classNames(){var classes=[];for(var i=0;i0){return{'class':classNames.apply(null,args)};}}function getHost(component){var base=component.base;if(base){while(base.parentNode){if(base.parentNode._component){return base.parentNode._component;}else{base=base.parentNode;}}}}/**\n * preact-render-to-string based on preact-render-to-string\n * by Jason Miller\n * Licensed under the MIT License\n * https://github.com/developit/preact-render-to-string\n *\n * modified by dntzhang\n */var encodeEntities=function encodeEntities(s){return String(s).replace(/&/g,'&').replace(//g,'>').replace(/\"/g,'"');};var indent=function indent(s,char){return String(s).replace(/(\\n+)/g,'$1'+(char||'\\t'));};var mapping$1=options.mapping;var VOID_ELEMENTS=/^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/;var isLargeString=function isLargeString(s,length,ignoreLines){return String(s).length>(length||40)||!ignoreLines&&String(s).indexOf('\\n')!==-1||String(s).indexOf('<')!==-1;};var JS_TO_CSS={};// Convert an Object style to a CSSText string\nfunction styleObjToCss(s){var str='';for(var prop in s){var val=s[prop];if(val!=null){if(str)str+=' ';// str += jsToCss(prop);\nstr+=JS_TO_CSS[prop]||(JS_TO_CSS[prop]=prop.replace(/([A-Z])/g,'-$1').toLowerCase());str+=': ';str+=val;if(typeof val==='number'&&IS_NON_DIMENSIONAL.test(prop)===false){str+='px';}str+=';';}}return str||undefined;}function renderToString(vnode,opts,store,isSvgMode){store=store||{};opts=Object.assign({scopedCSS:true},opts);var css={};var html=_renderToString(vnode,opts,store,isSvgMode,css);return{css:Object.values(css),html:html};}/** The default export is an alias of `render()`. */function _renderToString(vnode,opts,store,isSvgMode,css){if(vnode==null||typeof vnode==='boolean'){return'';}var nodeName=vnode.nodeName,attributes=vnode.attributes,isComponent=false;var pretty=true&&opts.pretty,indentChar=pretty&&typeof pretty==='string'?pretty:'\\t';// #text nodes\nif((typeof vnode==='undefined'?'undefined':_typeof(vnode))!=='object'&&!nodeName){return encodeEntities(vnode);}// components\nvar ctor=mapping$1[nodeName];if(ctor){isComponent=true;var props=getNodeProps$1(vnode),rendered;// class-based components\nvar c=new ctor(props,store);// turn off stateful re-rendering:\nc._disable=c.__x=true;c.props=props;c.store=store;if(c.install)c.install();if(c.beforeRender)c.beforeRender();rendered=c.render(c.props,c.store);if(opts.scopedCSS){if(c.constructor.css||c.css){var cssStr=c.constructor.css?c.constructor.css:typeof c.css==='function'?c.css():c.css;var cssAttr='_s'+getCtorName(c.constructor);css[cssAttr]={id:cssAttr,css:scoper(cssStr,cssAttr)};addScopedAttrStatic(rendered,cssAttr);}c.scopedCSSAttr=vnode.css;scopeHost(rendered,c.scopedCSSAttr);}return _renderToString(rendered,opts,store,false,css);}// render JSX to HTML\nvar s='',html;if(attributes){var attrs=Object.keys(attributes);// allow sorting lexicographically for more determinism (useful for tests, such as via preact-jsx-chai)\nif(opts&&opts.sortAttributes===true)attrs.sort();for(var i=0;i]/))continue;if(!(opts&&opts.allAttributes)&&(name==='key'||name==='ref'))continue;if(name==='className'){if(attributes['class'])continue;name='class';}else if(isSvgMode&&name.match(/^xlink:?./)){name=name.toLowerCase().replace(/^xlink:?/,'xlink:');}if(name==='style'&&v&&(typeof v==='undefined'?'undefined':_typeof(v))==='object'){v=styleObjToCss(v);}var hooked=opts.attributeHook&&opts.attributeHook(name,v,store,opts,isComponent);if(hooked||hooked===''){s+=hooked;continue;}if(name==='dangerouslySetInnerHTML'){html=v&&v.__html;}else if((v||v===0||v==='')&&typeof v!=='function'){if(v===true||v===''){v=name;// in non-xml mode, allow boolean attributes\nif(!opts||!opts.xml){s+=' '+name;continue;}}s+=' '+name+'=\"'+encodeEntities(v)+'\"';}}}// account for >1 multiline attribute\nif(pretty){var sub=s.replace(/^\\n\\s*/,' ');if(sub!==s&&!~sub.indexOf('\\n'))s=sub;else if(pretty&&~s.indexOf('\\n'))s+='\\n';}s='<'+nodeName+s+'>';if(String(nodeName).match(/[\\s\\n\\\\/='\"\\0<>]/))throw s;var isVoid=String(nodeName).match(VOID_ELEMENTS);if(isVoid)s=s.replace(/>$/,' />');var pieces=[];if(html){// if multiline, indent.\nif(pretty&&isLargeString(html)){html='\\n'+indentChar+indent(html,indentChar);}s+=html;}else if(vnode.children){var hasLarge=pretty&&~s.indexOf('\\n');for(var i=0;i';}if(!isVoid){if(pretty&&~s.indexOf('\\n'))s+='\\n';s+='';}return s;}function assign$1(obj,props){for(var i in props){obj[i]=props[i];}return obj;}function getNodeProps$1(vnode){var props=assign$1({},vnode.attributes);props.children=vnode.children;var defaultProps=vnode.nodeName.defaultProps;if(defaultProps!==undefined){for(var i in defaultProps){if(props[i]===undefined){props[i]=defaultProps[i];}}}return props;}h.f=Fragment;var WeElement=Component;var defineElement=define;function createRef(){return{};}options.root.Omi={h:h,createElement:h,cloneElement:cloneElement,createRef:createRef,Component:Component,render:render,rerender:rerender,options:options,WeElement:WeElement,define:define,rpx:rpx,defineElement:defineElement,classNames:classNames,extractClass:extractClass,getHost:getHost,renderToString:renderToString,tag:tag,merge:merge,obaa:obaa};options.root.omi=options.root.Omi;options.root.Omi.version='omio-2.8.3';var omi={h:h,createElement:h,cloneElement:cloneElement,createRef:createRef,Component:Component,render:render,rerender:rerender,options:options,WeElement:WeElement,define:define,rpx:rpx,defineElement:defineElement,classNames:classNames,extractClass:extractClass,getHost:getHost,renderToString:renderToString,tag:tag,merge:merge,obaa:obaa};exports.default=omi;exports.h=h;exports.createElement=h;exports.cloneElement=cloneElement;exports.createRef=createRef;exports.Component=Component;exports.render=render;exports.rerender=rerender;exports.options=options;exports.WeElement=WeElement;exports.define=define;exports.rpx=rpx;exports.defineElement=defineElement;exports.classNames=classNames;exports.extractClass=extractClass;exports.getHost=getHost;exports.renderToString=renderToString;exports.tag=tag;exports.merge=merge;exports.obaa=obaa;//# sourceMappingURL=omi.esm.js.map\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/// css base code, injected by the css-loader\nmodule.exports=function(useSourceMap){var list=[];// return the list of modules as css string\nlist.toString=function toString(){return this.map(function(item){var content=cssWithMappingToString(item,useSourceMap);if(item[2]){return\"@media \"+item[2]+\"{\"+content+\"}\";}else{return content;}}).join(\"\");};// import a list of modules into the list\nlist.i=function(modules,mediaQuery){if(typeof modules===\"string\")modules=[[null,modules,\"\"]];var alreadyImportedModules={};for(var i=0;icapacity){// Manually shift all values starting at the index back to the\n// beginning of the queue.\nfor(var scan=0,newLength=queue.length-index;scan-1;};}function normalizeName(name){if(typeof name!=='string'){name=String(name);}if(/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)){throw new TypeError('Invalid character in header field name');}return name.toLowerCase();}function normalizeValue(value){if(typeof value!=='string'){value=String(value);}return value;}// Build a destructive iterator for the value list\nfunction iteratorFor(items){var iterator={next:function next(){var value=items.shift();return{done:value===undefined,value:value};}};if(support.iterable){iterator[Symbol.iterator]=function(){return iterator;};}return iterator;}function Headers(headers){this.map={};if(headers instanceof Headers){headers.forEach(function(value,name){this.append(name,value);},this);}else if(Array.isArray(headers)){headers.forEach(function(header){this.append(header[0],header[1]);},this);}else if(headers){Object.getOwnPropertyNames(headers).forEach(function(name){this.append(name,headers[name]);},this);}}Headers.prototype.append=function(name,value){name=normalizeName(name);value=normalizeValue(value);var oldValue=this.map[name];this.map[name]=oldValue?oldValue+','+value:value;};Headers.prototype['delete']=function(name){delete this.map[normalizeName(name)];};Headers.prototype.get=function(name){name=normalizeName(name);return this.has(name)?this.map[name]:null;};Headers.prototype.has=function(name){return this.map.hasOwnProperty(normalizeName(name));};Headers.prototype.set=function(name,value){this.map[normalizeName(name)]=normalizeValue(value);};Headers.prototype.forEach=function(callback,thisArg){for(var name in this.map){if(this.map.hasOwnProperty(name)){callback.call(thisArg,this.map[name],name,this);}}};Headers.prototype.keys=function(){var items=[];this.forEach(function(value,name){items.push(name);});return iteratorFor(items);};Headers.prototype.values=function(){var items=[];this.forEach(function(value){items.push(value);});return iteratorFor(items);};Headers.prototype.entries=function(){var items=[];this.forEach(function(value,name){items.push([name,value]);});return iteratorFor(items);};if(support.iterable){Headers.prototype[Symbol.iterator]=Headers.prototype.entries;}function consumed(body){if(body.bodyUsed){return Promise.reject(new TypeError('Already read'));}body.bodyUsed=true;}function fileReaderReady(reader){return new Promise(function(resolve,reject){reader.onload=function(){resolve(reader.result);};reader.onerror=function(){reject(reader.error);};});}function readBlobAsArrayBuffer(blob){var reader=new FileReader();var promise=fileReaderReady(reader);reader.readAsArrayBuffer(blob);return promise;}function readBlobAsText(blob){var reader=new FileReader();var promise=fileReaderReady(reader);reader.readAsText(blob);return promise;}function readArrayBufferAsText(buf){var view=new Uint8Array(buf);var chars=new Array(view.length);for(var i=0;i-1?upcased:method;}function Request(input,options){options=options||{};var body=options.body;if(input instanceof Request){if(input.bodyUsed){throw new TypeError('Already read');}this.url=input.url;this.credentials=input.credentials;if(!options.headers){this.headers=new Headers(input.headers);}this.method=input.method;this.mode=input.mode;if(!body&&input._bodyInit!=null){body=input._bodyInit;input.bodyUsed=true;}}else{this.url=String(input);}this.credentials=options.credentials||this.credentials||'omit';if(options.headers||!this.headers){this.headers=new Headers(options.headers);}this.method=normalizeMethod(options.method||this.method||'GET');this.mode=options.mode||this.mode||null;this.referrer=null;if((this.method==='GET'||this.method==='HEAD')&&body){throw new TypeError('Body not allowed for GET or HEAD requests');}this._initBody(body);}Request.prototype.clone=function(){return new Request(this,{body:this._bodyInit});};function decode(body){var form=new FormData();body.trim().split('&').forEach(function(bytes){if(bytes){var split=bytes.split('=');var name=split.shift().replace(/\\+/g,' ');var value=split.join('=').replace(/\\+/g,' ');form.append(decodeURIComponent(name),decodeURIComponent(value));}});return form;}function parseHeaders(rawHeaders){var headers=new Headers();rawHeaders.split(/\\r?\\n/).forEach(function(line){var parts=line.split(':');var key=parts.shift().trim();if(key){var value=parts.join(':').trim();headers.append(key,value);}});return headers;}Body.call(Request.prototype);function Response(bodyInit,options){if(!options){options={};}this.type='default';this.status='status'in options?options.status:200;this.ok=this.status>=200&&this.status<300;this.statusText='statusText'in options?options.statusText:'OK';this.headers=new Headers(options.headers);this.url=options.url||'';this._initBody(bodyInit);}Body.call(Response.prototype);Response.prototype.clone=function(){return new Response(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new Headers(this.headers),url:this.url});};Response.error=function(){var response=new Response(null,{status:0,statusText:''});response.type='error';return response;};var redirectStatuses=[301,302,303,307,308];Response.redirect=function(url,status){if(redirectStatuses.indexOf(status)===-1){throw new RangeError('Invalid status code');}return new Response(null,{status:status,headers:{location:url}});};self.Headers=Headers;self.Request=Request;self.Response=Response;self.fetch=function(input,init){return new Promise(function(resolve,reject){var request=new Request(input,init);var xhr=new XMLHttpRequest();xhr.onload=function(){var options={status:xhr.status,statusText:xhr.statusText,headers:parseHeaders(xhr.getAllResponseHeaders()||'')};options.url='responseURL'in xhr?xhr.responseURL:options.headers.get('X-Request-URL');var body='response'in xhr?xhr.response:xhr.responseText;resolve(new Response(body,options));};xhr.onerror=function(){reject(new TypeError('Network request failed'));};xhr.ontimeout=function(){reject(new TypeError('Network request failed'));};xhr.open(request.method,request.url,true);if(request.credentials==='include'){xhr.withCredentials=true;}if('responseType'in xhr&&support.blob){xhr.responseType='blob';}request.headers.forEach(function(value,name){xhr.setRequestHeader(name,value);});xhr.send(typeof request._bodyInit==='undefined'?null:request._bodyInit);});};self.fetch.polyfill=true;})(typeof self!=='undefined'?self:undefined);\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*//* eslint-disable no-unused-vars */var getOwnPropertySymbols=Object.getOwnPropertySymbols;var hasOwnProperty=Object.prototype.hasOwnProperty;var propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(val){if(val===null||val===undefined){throw new TypeError('Object.assign cannot be called with null or undefined');}return Object(val);}function shouldUseNative(){try{if(!Object.assign){return false;}// Detect buggy property enumeration order in older V8 versions.\n// https://bugs.chromium.org/p/v8/issues/detail?id=4118\nvar test1=new String('abc');// eslint-disable-line no-new-wrappers\ntest1[5]='de';if(Object.getOwnPropertyNames(test1)[0]==='5'){return false;}// https://bugs.chromium.org/p/v8/issues/detail?id=3056\nvar test2={};for(var i=0;i<10;i++){test2['_'+String.fromCharCode(i)]=i;}var order2=Object.getOwnPropertyNames(test2).map(function(n){return test2[n];});if(order2.join('')!=='0123456789'){return false;}// https://bugs.chromium.org/p/v8/issues/detail?id=3056\nvar test3={};'abcdefghijklmnopqrst'.split('').forEach(function(letter){test3[letter]=letter;});if(Object.keys(Object.assign({},test3)).join('')!=='abcdefghijklmnopqrst'){return false;}return true;}catch(err){// We don't expect any of the above to throw, but better to be safe.\nreturn false;}}module.exports=shouldUseNative()?Object.assign:function(target,source){var from;var to=toObject(target);var symbols;for(var s=1;s {\n// let newP = document.createElement('div')\n// newP.className = '_code-ctn'\n// let pre = code.parentNode\n// let ctn = pre.parentNode\n// if (pre.nodeName === 'PRE') {\n// ctn.insertBefore(newP, pre)\n// let hl = document.createElement('div')\n// hl.className = '_hl'\n// newP.appendChild(hl)\n// newP.appendChild(pre)\n// let nums = codeHlNumArr[index]\n// let max = Math.max.apply(null, nums)\n// let inner = ''\n// for (let i = 0; i <= max; i++) {\n// if (nums.indexOf(i) == -1) {\n// inner += '
'\n// } else {\n// inner += '
'\n// }\n// }\n// hl.innerHTML = inner\n// }\n// })\n//fix line-highlight\nwindow.dispatchEvent(new Event('resize'));}},{key:'_arrToNumber',value:function _arrToNumber(numArr){var arr=[];numArr.forEach(function(item){if(item.indexOf('-')!==-1){var tempArr=item.split('-');var begin=Number(tempArr[0]);var end=Number(tempArr[1]);for(var i=begin;i0)return false;}return true;}},{key:'render',value:function render(){if(!this.demo)return;return Omi.h('div',null,this.show&&Omi.h('iframe',{style:'height:'+(window.innerHeight-59)+'px',src:this.demo}),!this.show&&Omi.h('div',{'class':'switch code',onClick:this.onShow},Omi.h('img',{src:__webpack_require__(32)})),this.show&&Omi.h('div',{'class':'switch close',onClick:this.onClose},Omi.h('img',{src:__webpack_require__(33)})));}}]);return _class2;}(_omi.WeElement));\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n var result = __webpack_require__(31);\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(1)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \"iframe{\\n width: 750px;\\n height: 100%;\\n top: 60px;\\n right: 0;\\n position: fixed;\\n border: none;\\n z-index: 9999;\\n border-left: 2px solid #24292E;\\n}\\n\\n.switch{\\n width: 40px;\\n height: 40px;\\n background-color: #AA0000;\\n border-radius: 50%;\\n position: fixed;\\n right: 50px;\\n bottom: 50px;\\n cursor: pointer;\\n text-align: center;\\n z-index: 10000;\\n}\\n\\n.switch img{\\n width: 30px;\\n height: 30px;\\n margin-top:5px;\\n}\\n\\n.switch.close img{\\n margin-top:10px;\\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n@media only screen and (max-width: 800px) {\\n iframe{\\n width: 100%;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfiDBQMEgYVXhFiAAABVklEQVRIx+3UsU4UURSA4TNARoiJcR9BCwwJNNpRU0hjpS+hDTTyGkAD1UJnRzCbYKRAKzt9AaMxJoR+Ewho8dEMm5nZOzObbfVUM+ec/79n7uTeiP8xUfjiq6Xp8Ufg6fSCN7iQpasztebcttVaz3pEnGQirNqWt62VG2CoV8rNu8TLCD1DDBoVBc5BeVzr+OthhMwBjQq59wVe+Sy7+FQ8Z/bBB/MT4hG+4+3oLa0Y4f0x/AlYLmUyezVFMx5hE79ruaqiDY9wir2xbFnhqAW/7xovEpUZfXCUwEqxFvfiJs5ae+SO0/sfYR8fE8zdvzi524UGhV/Y6MCbp7ACFjvxiuKd2VFuCz/GNu8wgacVPmNnQrxQlA6TB/7geWX4tsNUUgz1IrzClYVStes4F4riQtHHoFbtulAq457j9UTNScEz8Li7c64hfxXf4jr7OfUE/1TcAoyIn6j/RilHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTEyLTIwVDExOjE4OjA2KzAxOjAwT3khJwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMi0yMFQxMToxODowNiswMTowMD4kmZsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC\"\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAQAAACROWYpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiDBQMERzDEbvbAAAArElEQVQ4y6XVOw6DMBBFUSf7SmGy2ZCNBerIJN2lAQn/34ArZHFsi3mDHW9mvDMOPDOjYwKCjeMJwGd/MPBI8OALBJ4S3d8e0okuz6jOi1TjVdrnTdrmXVrnEi1zmebcRGNupgf+YzHTjS8A/Ov0Lqxzs+97PLbUMukHG2wd59LimHheHJmX6yrxeiS6vJ2mJu8Hscq1DBe5Hv+M2zon4pd++teum5Hp5EX3WgGu+8eCI/n/bQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0xMi0yMFQxMToxNzoyOCswMTowMKxoBooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMTItMjBUMTE6MTc6MjgrMDE6MDDdNb42AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==\"\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function defineProperties(target,props){for(var i=0;i [\"test\", \"\\d+\", undefined, \"?\"]\n// \"(\\\\d+)\" => [undefined, undefined, \"\\d+\", undefined]\n'(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'].join('|'),'g');/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */function parse(str,options){var tokens=[];var key=0;var index=0;var path='';var defaultDelimiter=options&&options.delimiter||DEFAULT_DELIMITER;var whitelist=options&&options.whitelist||undefined;var pathEscaped=false;var res;while((res=PATH_REGEXP.exec(str))!==null){var m=res[0];var escaped=res[1];var offset=res.index;path+=str.slice(index,offset);index=offset+m.length;// Ignore already escaped sequences.\nif(escaped){path+=escaped[1];pathEscaped=true;continue;}var prev='';var name=res[2];var capture=res[3];var group=res[4];var modifier=res[5];if(!pathEscaped&&path.length){var k=path.length-1;var c=path[k];var matches=whitelist?whitelist.indexOf(c)>-1:true;if(matches){prev=c;path=path.slice(0,k);}}// Push the current path onto the tokens.\nif(path){tokens.push(path);path='';pathEscaped=false;}var repeat=modifier==='+'||modifier==='*';var optional=modifier==='?'||modifier==='*';var pattern=capture||group;var delimiter=prev||defaultDelimiter;tokens.push({name:name||key++,prefix:prev,delimiter:delimiter,optional:optional,repeat:repeat,pattern:pattern?escapeGroup(pattern):'[^'+escapeString(delimiter===defaultDelimiter?delimiter:delimiter+defaultDelimiter)+']+?'});}// Push any remaining characters.\nif(path||index0){params[pathArr[index].replace(':','')]=item;}});return params;}function route(path,callback){mapping[path]={callback:callback,reg:_pathToRegexp_3_2_0_pathToRegexp(path)};}var router={route:route,hashChange:hashChange};function getGlobal(){if((typeof global==='undefined'?'undefined':_typeof(global))!=='object'||!global||global.Math!==Math||global.Array!==Array){return self||window||global||function(){return this;}();}return global;}function getUrlParams(url){url=url.replace(/#.*$/,'');var queryArray=url.split(/[?&]/).slice(1);var i,args={};for(i=0;iHello!`\n *\n * can be constructed using this function as:\n *\n * `h('div', { id: 'foo', name : 'bar' }, 'Hello!');`\n *\n * @param {string} nodeName\tAn element name. Ex: `div`, `a`, `span`, etc.\n * @param {Object} attributes\tAny attributes/props to set on the created element.\n * @param rest\t\t\tAdditional arguments are taken to be children to append. Can be infinitely nested Arrays.\n *\n * @public\n */\nfunction h(nodeName, attributes) {\n var children = [],\n lastSimple,\n child,\n simple,\n i;\n for (i = arguments.length; i-- > 2;) {\n stack.push(arguments[i]);\n }\n if (attributes && attributes.children != null) {\n if (!stack.length) stack.push(attributes.children);\n delete attributes.children;\n }\n while (stack.length) {\n if ((child = stack.pop()) && child.pop !== undefined) {\n for (i = child.length; i--;) {\n stack.push(child[i]);\n }\n } else {\n if (typeof child === 'boolean') child = null;\n\n if (simple = typeof nodeName !== 'function') {\n if (child == null) child = '';else if (typeof child === 'number') child = String(child);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 var p = new VNode();\n p.nodeName = nodeName;\n p.children = children;\n p.attributes = attributes == null ? undefined : attributes;\n p.key = attributes == null ? undefined : attributes.key;\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\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n\n return Object(val);\n}\n\nfunction assign(target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n\n return to;\n}\n\nif (typeof Element !== 'undefined' && !Element.prototype.addEventListener) {\n var runListeners = function runListeners(oEvent) {\n if (!oEvent) {\n oEvent = window.event;\n }\n for (var iLstId = 0, iElId = 0, oEvtListeners = oListeners[oEvent.type]; iElId < oEvtListeners.aEls.length; iElId++) {\n if (oEvtListeners.aEls[iElId] === this) {\n for (iLstId; iLstId < oEvtListeners.aEvts[iElId].length; iLstId++) {\n oEvtListeners.aEvts[iElId][iLstId].call(this, oEvent);\n }\n break;\n }\n }\n };\n\n var oListeners = {};\n\n Element.prototype.addEventListener = function (sEventType, fListener /*, useCapture (will be ignored!) */) {\n if (oListeners.hasOwnProperty(sEventType)) {\n var oEvtListeners = oListeners[sEventType];\n for (var nElIdx = -1, iElId = 0; iElId < oEvtListeners.aEls.length; iElId++) {\n if (oEvtListeners.aEls[iElId] === this) {\n nElIdx = iElId;break;\n }\n }\n if (nElIdx === -1) {\n oEvtListeners.aEls.push(this);\n oEvtListeners.aEvts.push([fListener]);\n this[\"on\" + sEventType] = runListeners;\n } else {\n var aElListeners = oEvtListeners.aEvts[nElIdx];\n if (this[\"on\" + sEventType] !== runListeners) {\n aElListeners.splice(0);\n this[\"on\" + sEventType] = runListeners;\n }\n for (var iLstId = 0; iLstId < aElListeners.length; iLstId++) {\n if (aElListeners[iLstId] === fListener) {\n return;\n }\n }\n aElListeners.push(fListener);\n }\n } else {\n oListeners[sEventType] = { aEls: [this], aEvts: [[fListener]] };\n this[\"on\" + sEventType] = runListeners;\n }\n };\n Element.prototype.removeEventListener = function (sEventType, fListener /*, useCapture (will be ignored!) */) {\n if (!oListeners.hasOwnProperty(sEventType)) {\n return;\n }\n var oEvtListeners = oListeners[sEventType];\n for (var nElIdx = -1, iElId = 0; iElId < oEvtListeners.aEls.length; iElId++) {\n if (oEvtListeners.aEls[iElId] === this) {\n nElIdx = iElId;break;\n }\n }\n if (nElIdx === -1) {\n return;\n }\n for (var iLstId = 0, aElListeners = oEvtListeners.aEvts[nElIdx]; iLstId < aElListeners.length; iLstId++) {\n if (aElListeners[iLstId] === fListener) {\n aElListeners.splice(iLstId, 1);\n }\n }\n };\n}\n\nif (typeof Object.create !== 'function') {\n Object.create = function (proto, propertiesObject) {\n if (typeof proto !== 'object' && typeof proto !== 'function') {\n throw new TypeError('Object prototype may only be an Object: ' + proto);\n } else if (proto === null) {\n throw new Error(\"This browser's implementation of Object.create is a shim and doesn't support 'null' as the first argument.\");\n }\n\n // if (typeof propertiesObject != 'undefined') {\n // throw new Error(\"This browser's implementation of Object.create is a shim and doesn't support a second argument.\");\n // }\n\n function F() {}\n F.prototype = proto;\n\n return new F();\n };\n}\n\nif (!String.prototype.trim) {\n String.prototype.trim = function () {\n return this.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n };\n}\n\n/**\n * Copy all properties from `props` onto `obj`.\n * @param {Object} obj\t\tObject onto which properties should be copied.\n * @param {Object} props\tObject from which to copy properties.\n * @returns obj\n * @private\n */\nfunction extend(obj, props) {\n for (var i in props) {\n 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 */\nfunction applyRef(ref, value) {\n if (ref) {\n if (typeof ref == 'function') ref(value);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 *\n * @param {Function} callback\n */\n\nvar usePromise = typeof Promise == 'function';\n\n// for native\nif (typeof document !== 'object' && typeof global !== 'undefined' && global.__config__) {\n if (global.__config__.platform === 'android') {\n usePromise = true;\n } else {\n var systemVersion = global.__config__.systemVersion && global.__config__.systemVersion.split('.')[0] || 0;\n if (systemVersion > 8) {\n usePromise = true;\n }\n }\n}\n\nvar defer = usePromise ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n\nfunction isArray(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n}\n\nfunction getUse(data, paths, out, name) {\n var obj = [];\n paths.forEach(function (path, index) {\n var isPath = typeof path === 'string';\n if (isPath) {\n obj[index] = getTargetByPath(data, path);\n } else {\n var key = Object.keys(path)[0];\n var value = path[key];\n if (typeof value === 'string') {\n obj[index] = getTargetByPath(data, value);\n } else {\n var tempPath = value[0];\n if (typeof tempPath === 'string') {\n var tempVal = getTargetByPath(data, tempPath);\n obj[index] = value[1] ? value[1](tempVal) : tempVal;\n } else {\n var args = [];\n tempPath.forEach(function (path) {\n args.push(getTargetByPath(data, path));\n });\n obj[index] = value[1].apply(null, args);\n }\n }\n obj[key] = obj[index];\n }\n });\n out && (out[name] = obj);\n return obj;\n}\n\nfunction getTargetByPath(origin, path) {\n var arr = path.replace(/]/g, '').replace(/\\[/g, '.').split('.');\n var current = origin;\n for (var i = 0, len = arr.length; i < len; i++) {\n current = current[arr[i]];\n }\n return current;\n}\n\nfunction getPath(obj, out, name) {\n\n var result = {};\n obj.forEach(function (item) {\n if (typeof item === 'string') {\n result[item] = true;\n } else {\n var tempPath = item[Object.keys(item)[0]];\n if (typeof tempPath === 'string') {\n result[tempPath] = true;\n } else {\n if (typeof tempPath[0] === 'string') {\n result[tempPath[0]] = true;\n } else {\n tempPath[0].forEach(function (path) {\n return result[path] = true;\n });\n }\n }\n }\n });\n out && (out[name] = result);\n return result;\n}\n\nfunction removeItem(item, arr) {\n for (var i = 0, len = arr.length; i < len; i++) {\n if (arr[i] === item) {\n arr.splice(i, 1);\n break;\n }\n }\n}\n\nfunction Fragment(props) {\n return props.children;\n}\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {VNode} vnode\t\tThe virtual DOM element to clone\n * @param {Object} props\tAttributes/props to add when cloning\n * @param {VNode} rest\t\tAny additional arguments will be used as replacement children.\n */\nfunction cloneElement(vnode, props) {\n return h(vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children);\n}\n\n// DOM properties that should NOT have \"px\" added when numeric\nvar IS_NON_DIMENSIONAL$1 = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\n/** Managed queue of dirty components to be re-rendered */\n\nvar items = [];\n\nfunction enqueueRender(component) {\n if (items.push(component) == 1) {\n(options.debounceRendering || defer)(rerender);\n }\n}\n\n/** Rerender all enqueued dirty components */\nfunction rerender() {\n var p;\n while (p = items.pop()) {\n renderComponent(p);\n }\n}\n\nvar mapping = options.mapping;\n/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node\t\t\tDOM Node to compare\n * @param {VNode} vnode\t\t\tVirtual DOM node to compare\n * @param {boolean} [hydrating=false]\tIf true, ignores component constructors when comparing.\n * @private\n */\nfunction 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 var ctor = mapping[vnode.nodeName];\n if (ctor) {\n return hydrating || node._componentConstructor === ctor;\n }\n return !node._componentConstructor && isNamedNode(node, 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\tA DOM Element to inspect the name of.\n * @param {String} nodeName\tUnnormalized name to compare against.\n */\nfunction isNamedNode(node, nodeName) {\n return node.normalizedNodeName === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();\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 */\nfunction getNodeProps(vnode) {\n var props = extend({}, vnode.attributes);\n props.children = vnode.children;\n\n var defaultProps = vnode.nodeName.defaultProps;\n if (defaultProps !== undefined) {\n for (var i in defaultProps) {\n if (props[i] === undefined) {\n props[i] = defaultProps[i];\n }\n }\n }\n\n return props;\n}\n\n/** Create an element with the given nodeName.\n *\t@param {String} nodeName\n *\t@param {Boolean} [isSvg=false]\tIf `true`, creates an element within the SVG namespace.\n *\t@returns {Element} node\n */\nfunction createNode(nodeName, isSvg) {\n\tvar node = isSvg ? options.doc.createElementNS('http://www.w3.org/2000/svg', nodeName) : options.doc.createElement(nodeName);\n\tnode.normalizedNodeName = nodeName;\n\treturn node;\n}\n\nfunction parseCSSText(cssText) {\n\tvar cssTxt = cssText.replace(/\\/\\*(.|\\s)*?\\*\\//g, ' ').replace(/\\s+/g, ' ');\n\tvar style = {},\n\t _ref = cssTxt.match(/ ?(.*?) ?{([^}]*)}/) || [a, b, cssTxt],\n\t a = _ref[0],\n\t b = _ref[1],\n\t rule = _ref[2];\n\n\tvar cssToJs = function cssToJs(s) {\n\t\treturn s.replace(/\\W+\\w/g, function (match) {\n\t\t\treturn match.slice(-1).toUpperCase();\n\t\t});\n\t};\n\tvar properties = rule.split(';').map(function (o) {\n\t\treturn o.split(':').map(function (x) {\n\t\t\treturn x && x.trim();\n\t\t});\n\t});\n\tfor (var i = properties, i = Array.isArray(i), i = 0, i = i ? i : i[Symbol.iterator]();;) {\n\t\tvar _ref3;\n\n\t\tif (i) {\n\t\t\tif (i >= i.length) break;\n\t\t\t_ref3 = i[i++];\n\t\t} else {\n\t\t\ti = i.next();\n\t\t\tif (i.done) break;\n\t\t\t_ref3 = i.value;\n\t\t}\n\n\t\tvar _ref2 = _ref3;\n\t\tvar property = _ref2[0];\n\t\tvar value = _ref2[1];\n\t\tstyle[cssToJs(property)] = value;\n\t}return style;\n}\n\n/** Remove a child node from its parent if attached.\n *\t@param {Element} node\t\tThe node to remove\n */\nfunction removeNode(node) {\n\tvar parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\n/** Set a named attribute on the given Node, with special behavior for some names and event handlers.\n *\tIf `value` is `null`, the attribute/handler will be removed.\n *\t@param {Element} node\tAn element to mutate\n *\t@param {string} name\tThe name/key to set, such as an event or attribute name\n *\t@param {any} old\tThe last value that was set for this name/node pair\n *\t@param {any} value\tAn attribute value, such as a function to be used as an event handler\n *\t@param {Boolean} isSvg\tAre we currently diffing inside an svg?\n *\t@private\n */\nfunction setAccessor(node, name, old, value, isSvg) {\n\tif (name === 'className') name = 'class';\n\n\tif (name === 'key') {\n\t\t// ignore\n\t} else if (name === 'ref') {\n\t\tapplyRef(old, null);\n\t\tapplyRef(value, node);\n\t} else if (name === 'class' && !isSvg) {\n\t\tnode.className = value || '';\n\t} else if (name === 'style') {\n\t\tif (options.isWeb) {\n\t\t\tif (!value || typeof value === 'string' || typeof old === 'string') {\n\t\t\t\tnode.style.cssText = value || '';\n\t\t\t}\n\t\t\tif (value && typeof value === 'object') {\n\t\t\t\tif (typeof old !== 'string') {\n\t\t\t\t\tfor (var i in old) {\n\t\t\t\t\t\tif (!(i in value)) node.style[i] = '';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (var i in value) {\n\t\t\t\t\tnode.style[i] = typeof value[i] === 'number' && IS_NON_DIMENSIONAL$1.test(i) === false ? value[i] + 'px' : value[i];\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tvar oldJson = old,\n\t\t\t currentJson = value;\n\t\t\tif (typeof old === 'string') {\n\t\t\t\toldJson = parseCSSText(old);\n\t\t\t}\n\t\t\tif (typeof value == 'string') {\n\t\t\t\tcurrentJson = parseCSSText(value);\n\t\t\t}\n\n\t\t\tvar result = {},\n\t\t\t changed = false;\n\n\t\t\tif (oldJson) {\n\t\t\t\tfor (var key in oldJson) {\n\t\t\t\t\tif (typeof currentJson == 'object' && !(key in currentJson)) {\n\t\t\t\t\t\tresult[key] = '';\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor (var ckey in currentJson) {\n\t\t\t\t\tif (currentJson[ckey] !== oldJson[ckey]) {\n\t\t\t\t\t\tresult[ckey] = currentJson[ckey];\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (changed) {\n\t\t\t\t\tnode.setStyles(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tnode.setStyles(currentJson);\n\t\t\t}\n\t\t}\n\t} else if (name === 'dangerouslySetInnerHTML') {\n\t\tif (value) node.innerHTML = value.__html || '';\n\t} else if (name[0] == 'o' && name[1] == 'n') {\n\t\tvar useCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tvar nameLower = name.toLowerCase();\n\t\tname = (nameLower in node ? nameLower : name).slice(2);\n\t\tif (value) {\n\t\t\tif (!old) {\n\t\t\t\tnode.addEventListener(name, eventProxy, useCapture);\n\t\t\t\tif (name == 'tap') {\n\t\t\t\t\tnode.addEventListener('touchstart', touchStart, useCapture);\n\t\t\t\t\tnode.addEventListener('touchend', touchEnd, useCapture);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tnode.removeEventListener(name, eventProxy, useCapture);\n\t\t\tif (name == 'tap') {\n\t\t\t\tnode.removeEventListener('touchstart', touchStart, useCapture);\n\t\t\t\tnode.removeEventListener('touchend', touchEnd, useCapture);\n\t\t\t}\n\t\t}\n(node._listeners || (node._listeners = {}))[name] = value;\n\t} else if (name !== 'list' && name !== 'tagName' &&\n\t// HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n\t// setAttribute\n\tname !== 'form' && name !== 'type' && name !== 'size' && name !== 'download' && name !== 'href' && !isSvg && name in node) {\n\t\tsetProperty(node, name, value == null ? '' : value);\n\t} else {\n\t\tvar ns = isSvg && name !== (name = name.replace(/^xlink:?/, ''));\n\t\tif (value == null || value === false) {\n\t\t\tif (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());else node.removeAttribute(name);\n\t\t} else if (typeof value !== 'function') {\n\t\t\tif (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);else node.setAttribute(name, value);\n\t\t}\n\t}\n}\n\n/** Attempt to set a DOM property to the given value.\n *\tIE & FF throw for certain property-value combinations.\n */\nfunction setProperty(node, name, value) {\n\ttry {\n\t\tnode[name] = value;\n\t} catch (e) {}\n}\n\n/** Proxy an event to hooked event handlers\n *\t@private\n */\nfunction eventProxy(e) {\n\treturn this._listeners[e.type](options.event && options.event(e) || e);\n}\n\nfunction touchStart(e) {\n\tthis.___touchX = e.touches[0].pageX;\n\tthis.___touchY = e.touches[0].pageY;\n\tthis.___scrollTop = document.body.scrollTop;\n}\n\nfunction touchEnd(e) {\n\tif (Math.abs(e.changedTouches[0].pageX - this.___touchX) < 30 && Math.abs(e.changedTouches[0].pageY - this.___touchY) < 30 && Math.abs(document.body.scrollTop - this.___scrollTop) < 30) {\n\t\tthis.dispatchEvent(new CustomEvent('tap', { detail: e }));\n\t}\n}\n\nvar styleId = 0;\n\nfunction getCtorName(ctor) {\n for (var i = 0, len = options.styleCache.length; i < len; i++) {\n var item = options.styleCache[i];\n\n if (item.ctor === ctor) {\n return item.attrName;\n }\n }\n\n var attrName = 's' + styleId;\n options.styleCache.push({ ctor: ctor, attrName: attrName });\n styleId++;\n\n return attrName;\n}\n\n// many thanks to https://github.com/thomaspark/scoper/\nfunction scoper(css, prefix) {\n prefix = '[' + prefix.toLowerCase() + ']';\n // https://www.w3.org/TR/css-syntax-3/#lexical\n css = css.replace(/\\/\\*[^*]*\\*+([^/][^*]*\\*+)*\\//g, '');\n // eslint-disable-next-line\n var re = new RegExp('([^\\r\\n,{}:]+)(:[^\\r\\n,{}]+)?(,(?=[^{}]*{)|\\s*{)', 'g');\n /**\n * Example:\n *\n * .classname::pesudo { color:red }\n *\n * g1 is normal selector `.classname`\n * g2 is pesudo class or pesudo element\n * g3 is the suffix\n */\n css = css.replace(re, function (g0, g1, g2, g3) {\n if (typeof g2 === 'undefined') {\n g2 = '';\n }\n\n /* eslint-ignore-next-line */\n if (g1.match(/^\\s*(@media|\\d+%?|@-webkit-keyframes|@keyframes|to|from|@font-face)/)) {\n return g1 + g2 + g3;\n }\n\n var appendClass = g1.replace(/(\\s*)$/, '') + prefix + g2;\n //let prependClass = prefix + ' ' + g1.trim() + g2;\n\n return appendClass + g3;\n //return appendClass + ',' + prependClass + g3;\n });\n\n return css;\n}\n\nfunction addStyle(cssText, id) {\n id = id.toLowerCase();\n var ele = document.getElementById(id);\n var head = document.getElementsByTagName('head')[0];\n if (ele && ele.parentNode === head) {\n head.removeChild(ele);\n }\n\n var someThingStyles = document.createElement('style');\n head.appendChild(someThingStyles);\n someThingStyles.setAttribute('type', 'text/css');\n someThingStyles.setAttribute('id', id);\n if (window.ActiveXObject) {\n someThingStyles.styleSheet.cssText = cssText;\n } else {\n someThingStyles.textContent = cssText;\n }\n}\n\nfunction addStyleWithoutId(cssText) {\n var head = document.getElementsByTagName('head')[0];\n var someThingStyles = document.createElement('style');\n head.appendChild(someThingStyles);\n someThingStyles.setAttribute('type', 'text/css');\n\n if (window.ActiveXObject) {\n someThingStyles.styleSheet.cssText = cssText;\n } else {\n someThingStyles.textContent = cssText;\n }\n}\n\nfunction addScopedAttrStatic(vdom, attr) {\n if (options.scopedStyle) {\n scopeVdom(attr, vdom);\n }\n}\n\nfunction addStyleToHead(style, attr) {\n if (options.scopedStyle) {\n if (!options.staticStyleMapping[attr]) {\n addStyle(scoper(style, attr), attr);\n options.staticStyleMapping[attr] = true;\n }\n } else if (!options.staticStyleMapping[attr]) {\n addStyleWithoutId(style);\n options.staticStyleMapping[attr] = true;\n }\n}\n\nfunction scopeVdom(attr, vdom) {\n if (typeof vdom === 'object') {\n vdom.attributes = vdom.attributes || {};\n vdom.attributes[attr] = '';\n vdom.css = vdom.css || {};\n vdom.css[attr] = '';\n vdom.children.forEach(function (child) {\n return scopeVdom(attr, child);\n });\n }\n}\n\nfunction scopeHost(vdom, css) {\n if (typeof vdom === 'object' && css) {\n vdom.attributes = vdom.attributes || {};\n for (var key in css) {\n vdom.attributes[key] = '';\n }\n }\n}\n\n/** Queue of components that have been mounted and are awaiting componentDidMount */\nvar mounts = [];\n\n/** Diff recursion count, used to track the end of the diff cycle. */\nvar diffLevel = 0;\n\n/** Global flag indicating if the diff is currently within an SVG */\nvar isSvgMode = false;\n\n/** Global flag indicating if the diff is performing hydration */\nvar hydrating = false;\n\n/** Invoke queued componentDidMount lifecycle methods */\nfunction flushMounts() {\n var c;\n while (c = mounts.pop()) {\n if (options.afterMount) options.afterMount(c);\n if (c.installed) c.installed();\n if (c.constructor.css || c.css) {\n addStyleToHead(c.constructor.css ? c.constructor.css : typeof c.css === 'function' ? c.css() : c.css, '_s' + getCtorName(c.constructor));\n }\n }\n}\n\n/** Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n *\t@param {Element} [dom=null]\t\tA DOM node to mutate into the shape of the `vnode`\n *\t@param {VNode} vnode\t\t\tA VNode (with descendants forming a tree) representing the desired DOM structure\n *\t@returns {Element} dom\t\t\tThe created/mutated element\n *\t@private\n */\nfunction diff(dom, vnode, store, mountAll, parent, componentRoot, updateSelf) {\n // diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\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 && !('__omiattr_' in dom);\n }\n var ret;\n\n if (isArray(vnode)) {\n vnode = {\n nodeName: 'span',\n children: vnode\n };\n } else if (vnode && vnode.nodeName === Fragment) {\n vnode.nodeName = 'span';\n }\n\n ret = idiff(dom, vnode, store, mountAll, componentRoot, updateSelf);\n // append the element if its a new parent\n if (parent && ret.parentNode !== parent) parent.appendChild(ret);\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 if (!componentRoot) flushMounts();\n }\n\n return ret;\n}\n\n/** Internals of `diff()`, separated to allow bypassing diffLevel / mount flushing. */\nfunction idiff(dom, vnode, store, mountAll, componentRoot, updateSelf) {\n var out = dom,\n prevSvgMode = isSvgMode;\n\n // empty values (null, undefined, booleans) render as empty Text nodes\n if (vnode == null || typeof vnode === 'boolean') vnode = '';\n\n // If the VNode represents a Component, perform a component diff:\n var vnodeName = vnode.nodeName;\n if (options.mapping[vnodeName]) {\n vnode.nodeName = options.mapping[vnodeName];\n return buildComponentFromVNode(dom, vnode, store, mountAll, updateSelf);\n }\n if (typeof vnodeName == 'function') {\n return buildComponentFromVNode(dom, vnode, store, mountAll, updateSelf);\n }\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 (dom && dom.splitText !== undefined && dom.parentNode && (!dom._component || componentRoot)) {\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 //ie8 error\n try {\n out['__omiattr_'] = true;\n } catch (e) {}\n\n return out;\n }\n\n // Tracks entering and exiting SVG namespace when descending through the tree.\n isSvgMode = vnodeName === 'svg' ? true : vnodeName === 'foreignObject' ? false : isSvgMode;\n\n // If there's no existing element or it's the wrong type, create a new one:\n vnodeName = String(vnodeName);\n if (!dom || !isNamedNode(dom, vnodeName)) {\n out = createNode(vnodeName, isSvgMode);\n\n if (dom) {\n // move children into the replacement node\n while (dom.firstChild) {\n out.appendChild(dom.firstChild);\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 var fc = out.firstChild,\n props = out['__omiattr_'],\n vchildren = vnode.children;\n\n if (props == null) {\n props = out['__omiattr_'] = {};\n for (var a = out.attributes, i = a.length; i--;) {\n props[a[i].name] = a[i].value;\n }\n }\n\n // Optimization: fast-path for elements containing a single TextNode:\n if (!hydrating && vchildren && vchildren.length === 1 && typeof vchildren[0] === 'string' && fc != null && fc.splitText !== undefined && fc.nextSibling == null) {\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 innerDiffNode(out, vchildren, store, mountAll, hydrating || props.dangerouslySetInnerHTML != null, updateSelf);\n }\n\n // Apply attributes/props from VNode to the DOM Element:\n diffAttributes(out, vnode.attributes, props);\n\n // restore previous SVG mode: (in case we're exiting an SVG namespace)\n isSvgMode = prevSvgMode;\n\n return out;\n}\n\n/** Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n *\t@param {Element} dom\t\t\tElement whose children should be compared & mutated\n *\t@param {Array} vchildren\t\tArray of VNodes to compare to `dom.childNodes`\n *\t@param {Object} store\t\t\tImplicitly descendant context object (from most recent `getChildContext()`)\n *\t@param {Boolean} mountAll\n *\t@param {Boolean} isHydrating\tIf `true`, consumes externally created elements similar to hydration\n */\nfunction innerDiffNode(dom, vchildren, store, mountAll, isHydrating, updateSelf) {\n var 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 (var i = 0; i < len; i++) {\n var _child = originalChildren[i],\n props = _child['__omiattr_'],\n key = vlen && props ? _child._component ? _child._component.__key : props.key : null;\n if (key != null) {\n keyedLen++;\n keyed[key] = _child;\n } else if (props || (_child.splitText !== undefined ? isHydrating ? _child.nodeValue.trim() : true : isHydrating)) {\n children[childrenLen++] = _child;\n }\n }\n }\n\n if (vlen !== 0) {\n for (var i = 0; i < vlen; i++) {\n vchild = vchildren[i];\n child = null;\n\n // attempt to find a node based on key matching\n var 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 (children[j] !== undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {\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 // morph the matched/found/created DOM child to match vchild (deep)\n child = idiff(child, vchild, store, mountAll, null, 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 (var i in keyed) {\n if (keyed[i] !== undefined) recollectNodeTree(keyed[i], false);\n }\n }\n\n // remove orphaned unkeyed children:\n while (min <= childrenLen) {\n if ((child = children[childrenLen--]) !== undefined) recollectNodeTree(child, false);\n }\n}\n\n/** Recursively recycle (or just unmount) a node and its descendants.\n *\t@param {Node} node\t\t\t\t\t\tDOM node to start unmount/removal from\n *\t@param {Boolean} [unmountOnly=false]\tIf `true`, only triggers unmount lifecycle, skips removal\n */\nfunction recollectNodeTree(node, unmountOnly) {\n var component = node._component;\n if (component) {\n // if node is owned by a Component, unmount that component (ends up recursing back here)\n unmountComponent(component);\n } else {\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['__omiattr_'] != null) applyRef(node['__omiattr_'].ref, null);\n\n if (unmountOnly === false || node['__omiattr_'] == null) {\n removeNode(node);\n }\n\n removeChildren(node);\n }\n}\n\n/** Recollect/unmount all children.\n *\t- we use .lastChild here because it causes less reflow than .firstChild\n *\t- it's also cheaper than accessing the .childNodes Live NodeList\n */\nfunction removeChildren(node) {\n node = node.lastChild;\n while (node) {\n var 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 *\t@param {Element} dom\t\tElement with attributes to diff `attrs` against\n *\t@param {Object} attrs\t\tThe desired end-state key-value attribute pairs\n *\t@param {Object} old\t\t\tCurrent/previous attributes (from previous VNode or element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old) {\n var name;\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(dom, name, old[name], old[name] = undefined, isSvgMode);\n }\n }\n\n // add new & update changed attributes\n for (name in attrs) {\n if (name !== 'children' && name !== 'innerHTML' && (!(name in old) || attrs[name] !== (name === 'value' || name === 'checked' ? dom[name] : old[name]))) {\n setAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n }\n }\n}\n\n/** Retains a pool of Components for re-use, keyed on component name.\n *\tNote: since component names are not unique or even necessarily available, these are primarily a form of sharding.\n *\t@private\n */\nvar components = {};\n\n/** Reclaim a component for later re-use by the recycler. */\nfunction collectComponent(component) {\n var name = component.constructor.name;(components[name] || (components[name] = [])).push(component);\n}\n\n/** Create a component. Normalizes differences between PFC's and classful Components. */\nfunction createComponent(Ctor, props, store, vnode) {\n var list = components[Ctor.name],\n inst;\n\n if (Ctor.prototype && Ctor.prototype.render) {\n inst = new Ctor(props, store);\n Component.call(inst, props, store);\n } else {\n inst = new Component(props, store);\n inst.constructor = Ctor;\n inst.render = doRender;\n }\n vnode && (inst.scopedCssAttr = vnode.css);\n\n if (inst.store) {\n if (inst.use) {\n var use = typeof inst.use === 'function' ? inst.use() : inst.use;\n\n if (options.isMultiStore) {\n var _updatePath = {};\n var using = {};\n for (var storeName in use) {\n _updatePath[storeName] = {};\n using[storeName] = {};\n getPath(use[storeName], _updatePath, storeName);\n getUse(inst.store[storeName].data, use[storeName], using, storeName);\n inst.store[storeName].instances.push(inst);\n }\n inst.using = using;\n inst._updatePath = _updatePath;\n } else {\n inst._updatePath = getPath(use);\n inst.using = getUse(inst.store.data, use);\n inst.store.instances.push(inst);\n }\n }\n\n if (inst.useSelf) {\n var _use = typeof inst.useSelf === 'function' ? inst.useSelf() : inst.useSelf;\n\n if (options.isMultiStore) {\n var _updatePath2 = {};\n var _using = {};\n for (var _storeName in _use) {\n getPath(_use[_storeName], _updatePath2, _storeName);\n getUse(inst.store[_storeName].data, _use[_storeName], _using, _storeName);\n inst.store[_storeName].updateSelfInstances.push(inst);\n }\n inst.usingSelf = _using;\n inst._updateSelfPath = _updatePath2;\n } else {\n inst._updateSelfPath = getPath(_use);\n inst.usingSelf = getUse(inst.store.data, _use);\n inst.store.updateSelfInstances.push(inst);\n }\n }\n\n if (inst.compute) {\n for (var key in inst.compute) {\n inst.computed[key] = inst.compute[key].call(options.isMultiStore ? inst.store : inst.store.data);\n }\n }\n }\n\n if (list) {\n for (var i = list.length; i--;) {\n if (list[i].constructor === Ctor) {\n inst.nextBase = list[i].nextBase;\n list.splice(i, 1);\n break;\n }\n }\n }\n return inst;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, store) {\n return this.constructor(props, store);\n}\n\n/** Set a component's `props` (generally derived from JSX attributes).\n *\t@param {Object} props\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.renderSync=false]\tIf `true` and {@link options.syncComponentUpdates} is `true`, triggers synchronous rendering.\n *\t@param {boolean} [opts.render=true]\t\t\tIf `false`, no render will be triggered.\n */\nfunction setComponentProps(component, props, opts, store, mountAll) {\n if (component._disable) return;\n component._disable = true;\n\n if (component.__ref = props.ref) delete props.ref;\n if (component.__key = props.key) delete props.key;\n\n if (!component.base || mountAll) {\n if (component.beforeInstall) component.beforeInstall();\n if (component.install) component.install();\n }\n\n if (!component.prevProps) component.prevProps = component.props;\n component.props = props;\n\n component._disable = false;\n\n if (opts !== 0) {\n if (opts === 1 || options.syncComponentUpdates !== false || !component.base) {\n renderComponent(component, 1, mountAll);\n } else {\n enqueueRender(component);\n }\n }\n\n applyRef(component.__ref, component);\n}\n\n/** Render a Component, triggering necessary lifecycle events and taking High-Order Components into account.\n *\t@param {Component} component\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.build=false]\t\tIf `true`, component will build and store a DOM node if not already associated with one.\n *\t@private\n */\nfunction renderComponent(component, opts, mountAll, isChild, updateSelf) {\n if (component._disable) return;\n\n var props = component.props,\n store = component.store,\n previousProps = component.prevProps || props,\n isUpdate = component.base,\n nextBase = component.nextBase,\n initialBase = isUpdate || nextBase,\n initialChildComponent = component._component,\n skip = false,\n rendered,\n inst,\n cbase;\n\n // if updating\n if (isUpdate) {\n component.props = previousProps;\n\n var receiveResult = true;\n if (component.receiveProps) {\n receiveResult = component.receiveProps(props, previousProps);\n }\n if (receiveResult !== false) {\n skip = false;\n if (component.beforeUpdate) {\n component.beforeUpdate(props, store);\n }\n } else {\n skip = true;\n }\n component.props = props;\n }\n\n component.prevProps = component.nextBase = null;\n\n if (!skip) {\n component.beforeRender && component.beforeRender();\n rendered = component.render(props, store);\n\n //don't rerender\n if (component.constructor.css || component.css) {\n addScopedAttrStatic(rendered, '_s' + getCtorName(component.constructor));\n }\n\n scopeHost(rendered, component.scopedCssAttr);\n\n var childComponent = rendered && rendered.nodeName,\n toUnmount,\n base,\n ctor = options.mapping[childComponent];\n\n if (ctor) {\n // set up high order component link\n\n var childProps = getNodeProps(rendered);\n inst = initialChildComponent;\n\n if (inst && inst.constructor === ctor && childProps.key == inst.__key) {\n setComponentProps(inst, childProps, 1, store, false);\n } else {\n toUnmount = inst;\n\n component._component = inst = createComponent(ctor, childProps, store);\n inst.nextBase = inst.nextBase || nextBase;\n inst._parentComponent = component;\n setComponentProps(inst, childProps, 0, store, false);\n renderComponent(inst, 1, mountAll, true);\n }\n\n base = inst.base;\n } else {\n cbase = initialBase;\n\n // destroy high order component link\n toUnmount = initialChildComponent;\n if (toUnmount) {\n cbase = component._component = null;\n }\n\n if (initialBase || opts === 1) {\n if (cbase) cbase._component = null;\n base = diff(cbase, rendered, store, mountAll || !isUpdate, initialBase && initialBase.parentNode, true, updateSelf);\n }\n }\n\n if (initialBase && base !== initialBase && inst !== initialChildComponent) {\n var baseParent = initialBase.parentNode;\n if (baseParent && base !== baseParent) {\n baseParent.replaceChild(base, initialBase);\n\n if (!toUnmount) {\n initialBase._component = null;\n recollectNodeTree(initialBase, false);\n }\n }\n }\n\n if (toUnmount) {\n unmountComponent(toUnmount);\n }\n\n component.base = base;\n if (base && !isChild) {\n var componentRef = component,\n t = component;\n while (t = t._parentComponent) {\n(componentRef = t).base = base;\n }\n base._component = componentRef;\n base._componentConstructor = componentRef.constructor;\n }\n }\n\n if (!isUpdate || mountAll) {\n mounts.unshift(component);\n } else if (!skip) {\n // Ensure that pending componentDidMount() hooks of child components\n // are called before the componentDidUpdate() hook in the parent.\n // Note: disabled as it causes duplicate hooks, see https://github.com/developit/preact/issues/750\n // flushMounts();\n\n if (component.afterUpdate) {\n //deprecated\n component.afterUpdate(previousProps, store);\n }\n if (component.updated) {\n component.updated(previousProps, store);\n }\n if (options.afterUpdate) options.afterUpdate(component);\n }\n\n if (component._renderCallbacks != null) {\n while (component._renderCallbacks.length) {\n component._renderCallbacks.pop().call(component);\n }\n }\n\n if (!diffLevel && !isChild) flushMounts();\n}\n\n/** Apply the Component referenced by a VNode to the DOM.\n *\t@param {Element} dom\tThe DOM node to mutate\n *\t@param {VNode} vnode\tA Component-referencing VNode\n *\t@returns {Element} dom\tThe created/mutated element\n *\t@private\n */\nfunction buildComponentFromVNode(dom, vnode, store, mountAll, updateSelf) {\n var c = dom && dom._component,\n originalComponent = c,\n oldDom = dom,\n isDirectOwner = c && dom._componentConstructor === vnode.nodeName,\n isOwner = isDirectOwner,\n props = getNodeProps(vnode);\n while (c && !isOwner && (c = c._parentComponent)) {\n isOwner = c.constructor === vnode.nodeName;\n }\n\n if (c && isOwner && (!mountAll || c._component)) {\n if (!updateSelf) {\n setComponentProps(c, props, 3, store, mountAll);\n }\n dom = c.base;\n } else {\n if (originalComponent && !isDirectOwner) {\n unmountComponent(originalComponent);\n dom = oldDom = null;\n }\n\n c = createComponent(vnode.nodeName, props, store, vnode);\n if (dom && !c.nextBase) {\n c.nextBase = dom;\n // passing dom/oldDom as nextBase will recycle it if unused, so bypass recycling on L229:\n oldDom = null;\n }\n setComponentProps(c, props, 1, store, mountAll);\n dom = c.base;\n\n if (oldDom && dom !== oldDom) {\n oldDom._component = null;\n recollectNodeTree(oldDom, false);\n }\n }\n\n return dom;\n}\n\n/** Remove a component from the DOM and recycle it.\n *\t@param {Component} component\tThe Component instance to unmount\n *\t@private\n */\nfunction unmountComponent(component) {\n if (options.beforeUnmount) options.beforeUnmount(component);\n\n var base = component.base;\n\n component._disable = true;\n\n if (component.uninstall) component.uninstall();\n\n if (component.store) {\n if (options.isMultiStore) {\n for (var key in component.store) {\n var current = component.store[key];\n current.instances && removeItem(component, current.instances);\n current.updateSelfInstances && removeItem(component, current.updateSelfInstances);\n }\n } else {\n component.store.instances && removeItem(component, component.store.instances);\n component.store.updateSelfInstances && removeItem(component, component.store.updateSelfInstances);\n }\n }\n\n component.base = null;\n\n // recursively tear down & recollect high-order component children:\n var inner = component._component;\n if (inner) {\n unmountComponent(inner);\n } else if (base) {\n if (base['__omiattr_'] != null) applyRef(base['__omiattr_'].ref, null);\n\n component.nextBase = base;\n\n removeNode(base);\n collectComponent(component);\n\n removeChildren(base);\n }\n\n applyRef(component.__ref, null);\n}\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar id = 0;\n\nvar Component = function () {\n function Component(props, store) {\n _classCallCheck(this, Component);\n\n this.props = assign({}, this.constructor.defaultProps, props);\n this.elementId = id++;\n\n this._preCss = null;\n\n this.store = store;\n this.computed = {};\n }\n\n Component.prototype.update = function update(ignoreAttrs, updateSelf, callback) {\n if (this._willUpdate) return;\n this._willUpdate = true;\n if (callback) (this._renderCallbacks = this._renderCallbacks || []).push(callback);\n renderComponent(this, 2);\n if (options.componentChange) options.componentChange(this, this.base);\n this._willUpdate = false;\n };\n\n Component.prototype.updateSelf = function updateSelf() {\n if (this._willUpdateSelf) return;\n this._willUpdateSelf = true;\n renderComponent(this, 2, null, null, true);\n this._willUpdateSelf = false;\n };\n\n Component.prototype.fire = function fire(type, data) {\n var _this = this;\n\n Object.keys(this.props).every(function (key) {\n if ('on' + type.toLowerCase() === key.toLowerCase()) {\n _this.props[key]({ detail: data });\n return false;\n }\n return true;\n });\n };\n\n Component.prototype.render = function render() {};\n\n return Component;\n}();\n\nComponent.is = 'WeElement';\n\n/*\n * obaa 2.1.0\n * By dntzhang\n * Github: https://github.com/Tencent/omi/tree/master/packages/obaa\n * MIT Licensed.\n */\n\n// $_r_: root\n// $_c_: prop change callback\n// $_p_: path\n\nfunction obaa(target, arr, callback) {\n\n\tvar eventPropArr = [];\n\tif (isArray$1(target)) {\n\t\tif (target.length === 0) {\n\t\t\ttarget.$_o_ = {\n\t\t\t\t$_r_: target,\n\t\t\t\t$_p_: '#'\n\t\t\t};\n\t\t}\n\t\tmock(target, target);\n\t}\n\tif (target && typeof target === 'object' && Object.keys(target).length === 0) {\n\t\ttrack(target);\n\t\ttarget.$_o_.$_r_ = target;\n\t}\n\tfor (var prop in target) {\n\t\tif (target.hasOwnProperty(prop)) {\n\t\t\tif (callback) {\n\t\t\t\tif (isArray$1(arr) && isInArray(arr, prop)) {\n\t\t\t\t\teventPropArr.push(prop);\n\t\t\t\t\twatch(target, prop, null, target);\n\t\t\t\t} else if (isString(arr) && prop == arr) {\n\t\t\t\t\teventPropArr.push(prop);\n\t\t\t\t\twatch(target, prop, null, target);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\teventPropArr.push(prop);\n\t\t\t\twatch(target, prop, null, target);\n\t\t\t}\n\t\t}\n\t}\n\tif (!target.$_c_) {\n\t\ttarget.$_c_ = [];\n\t}\n\tvar propChanged = callback ? callback : arr;\n\ttarget.$_c_.push({\n\t\tall: !callback,\n\t\tpropChanged: propChanged,\n\t\teventPropArr: eventPropArr\n\t});\n}\n\nvar triggerStr = ['concat', 'copyWithin', 'fill', 'pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift', 'size'].join(',');\n\nvar methods = ['concat', 'copyWithin', 'entries', 'every', 'fill', 'filter', 'find', 'findIndex', 'forEach', 'includes', 'indexOf', 'join', 'keys', 'lastIndexOf', 'map', 'pop', 'push', 'reduce', 'reduceRight', 'reverse', 'shift', 'slice', 'some', 'sort', 'splice', 'toLocaleString', 'toString', 'unshift', 'values', 'size'];\n\nfunction mock(target, root) {\n\tmethods.forEach(function (item) {\n\t\ttarget[item] = function () {\n\t\t\tvar old = Array.prototype.slice.call(this, 0);\n\t\t\tvar result = Array.prototype[item].apply(this, Array.prototype.slice.call(arguments));\n\t\t\tif (new RegExp('\\\\b' + item + '\\\\b').test(triggerStr)) {\n\t\t\t\tfor (var cprop in this) {\n\t\t\t\t\tif (this.hasOwnProperty(cprop) && !isFunction(this[cprop])) {\n\t\t\t\t\t\twatch(this, cprop, this.$_o_.$_p_, root);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t//todo\n\t\t\t\tonPropertyChanged('Array-' + item, this, old, this, this.$_o_.$_p_, root);\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\t\ttarget['pure' + item.substring(0, 1).toUpperCase() + item.substring(1)] = function () {\n\t\t\treturn Array.prototype[item].apply(this, Array.prototype.slice.call(arguments));\n\t\t};\n\t});\n}\n\nfunction watch(target, prop, path, root) {\n\tif (prop === '$_o_') return;\n\tif (isFunction(target[prop])) return;\n\tif (!target.$_o_) target.$_o_ = {\n\t\t$_r_: root\n\t};\n\tif (path !== undefined && path !== null) {\n\t\ttarget.$_o_.$_p_ = path;\n\t} else {\n\t\ttarget.$_o_.$_p_ = '#';\n\t}\n\n\tvar currentValue = target.$_o_[prop] = target[prop];\n\tObject.defineProperty(target, prop, {\n\t\tget: function get() {\n\t\t\treturn this.$_o_[prop];\n\t\t},\n\t\tset: function set(value) {\n\t\t\tvar old = this.$_o_[prop];\n\t\t\tthis.$_o_[prop] = value;\n\t\t\tonPropertyChanged(prop, value, old, this, target.$_o_.$_p_, root);\n\t\t},\n\t\tconfigurable: true,\n\t\tenumerable: true\n\t});\n\tif (typeof currentValue == 'object') {\n\t\tif (isArray$1(currentValue)) {\n\t\t\tmock(currentValue, root);\n\t\t\tif (currentValue.length === 0) {\n\t\t\t\ttrack(currentValue, prop, path);\n\t\t\t}\n\t\t}\n\t\tif (currentValue && Object.keys(currentValue).length === 0) {\n\t\t\ttrack(currentValue, prop, path);\n\t\t}\n\t\tfor (var cprop in currentValue) {\n\t\t\tif (currentValue.hasOwnProperty(cprop)) {\n\t\t\t\twatch(currentValue, cprop, target.$_o_.$_p_ + '-' + prop, root);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction track(obj, prop, path) {\n\tif (obj.$_o_) {\n\t\treturn;\n\t}\n\tobj.$_o_ = {};\n\tif (path !== undefined && path !== null) {\n\t\tobj.$_o_.$_p_ = path + '-' + prop;\n\t} else {\n\t\tif (prop !== undefined && prop !== null) {\n\t\t\tobj.$_o_.$_p_ = '#' + '-' + prop;\n\t\t} else {\n\t\t\tobj.$_o_.$_p_ = '#';\n\t\t}\n\t}\n}\n\nfunction onPropertyChanged(prop, value, oldValue, target, path, root) {\n\tif (value !== oldValue && !(nan(value) && nan(oldValue)) && root.$_c_) {\n\t\tvar rootName = getRootName(prop, path);\n\t\tfor (var i = 0, len = root.$_c_.length; i < len; i++) {\n\t\t\tvar handler = root.$_c_[i];\n\t\t\tif (handler.all || isInArray(handler.eventPropArr, rootName) || rootName.indexOf('Array-') === 0) {\n\t\t\t\thandler.propChanged.call(target, prop, value, oldValue, path);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (prop.indexOf('Array-') !== 0 && typeof value === 'object') {\n\t\twatch(target, prop, target.$_o_.$_p_, root);\n\t}\n}\n\nfunction isFunction(obj) {\n\treturn Object.prototype.toString.call(obj) == '[object Function]';\n}\n\nfunction nan(value) {\n\treturn typeof value === \"number\" && isNaN(value);\n}\n\nfunction isArray$1(obj) {\n\treturn Object.prototype.toString.call(obj) === '[object Array]';\n}\n\nfunction isString(obj) {\n\treturn typeof obj === 'string';\n}\n\nfunction isInArray(arr, item) {\n\tfor (var i = arr.length; --i > -1;) {\n\t\tif (item === arr[i]) return true;\n\t}\n\treturn false;\n}\n\nfunction getRootName(prop, path) {\n\tif (path === '#') {\n\t\treturn prop;\n\t}\n\treturn path.split('-')[1];\n}\n\nobaa.add = function (obj, prop) {\n\twatch(obj, prop, obj.$_o_.$_p_, obj.$_o_.$_r_);\n};\n\nobaa.set = function (obj, prop, value) {\n\tif (obj[prop] === undefined) {\n\t\twatch(obj, prop, obj.$_o_.$_p_, obj.$_o_.$_r_);\n\t}\n\tobj[prop] = value;\n};\n\nArray.prototype.size = function (length) {\n\tthis.length = length;\n};\n\n/** Render JSX into a `parent` Element.\n *\t@param {VNode} vnode\t\tA (JSX) VNode to render\n *\t@param {Element} parent\t\tDOM element to render into\n *\t@param {object} [store]\n *\t@public\n */\nfunction render(vnode, parent, store, empty, merge) {\n parent = typeof parent === 'string' ? document.querySelector(parent) : parent;\n\n if (store) {\n if (store.data) {\n obsStore(store);\n } else {\n options.isMultiStore = true;\n for (var key in store) {\n if (store[key].data) {\n obsStore(store[key], key);\n }\n }\n }\n }\n\n if (empty) {\n while (parent.firstChild) {\n parent.removeChild(parent.firstChild);\n }\n }\n\n if (merge) {\n merge = typeof merge === 'string' ? document.querySelector(merge) : merge;\n }\n\n return diff(merge, vnode, store, false, parent, false);\n}\n\nfunction obsStore(store, storeName) {\n\n store.instances = [];\n store.updateSelfInstances = [];\n extendStoreUpate(store, storeName);\n\n obaa(store.data, function (prop, val, old, path) {\n var patchs = {};\n var key = fixPath(path + '-' + prop);\n patchs[key] = true;\n store.update(patchs);\n });\n}\n\nfunction merge(vnode, merge, store) {\n obsStore(store);\n\n merge = typeof merge === 'string' ? document.querySelector(merge) : merge;\n\n return diff(merge, vnode, store);\n}\n\nfunction extendStoreUpate(store, key) {\n store.update = function (patch) {\n if (Object.keys(patch).length > 0) {\n this.instances.forEach(function (instance) {\n compute(instance, key);\n if (key) {\n if (instance._updatePath && instance._updatePath[key] && needUpdate(patch, instance._updatePath[key])) {\n if (instance.use) {\n getUse(store.data, (typeof instance.use === 'function' ? instance.use() : instance.use)[key], instance.using, key);\n }\n\n instance.update();\n }\n } else {\n if (instance._updatePath && needUpdate(patch, instance._updatePath)) {\n if (instance.use) {\n instance.using = getUse(store.data, typeof instance.use === 'function' ? instance.use() : instance.use);\n }\n instance.update();\n }\n }\n });\n\n this.updateSelfInstances.forEach(function (instance) {\n compute(instance, key);\n if (key) {\n if (instance._updateSelfPath && instance._updateSelfPath[key] && needUpdate(patch, instance._updateSelfPath[key])) {\n if (instance.useSelf) {\n getUse(store.data, (typeof instance.useSelf === 'function' ? instance.useSelf() : instance.useSelf)[key], instance.usingSelf, key);\n }\n\n instance.updateSelf();\n }\n } else {\n if (instance._updateSelfPath && needUpdate(patch, instance._updateSelfPath)) {\n instance.usingSelf = getUse(store.data, typeof instance.useSelf === 'function' ? instance.useSelf() : instance.useSelf);\n instance.updateSelf();\n }\n }\n });\n\n this.onChange && this.onChange(patch);\n }\n };\n}\n\nfunction compute(instance, isMultiStore) {\n if (instance.compute) {\n for (var ck in instance.compute) {\n instance.computed[ck] = instance.compute[ck].call(isMultiStore ? instance.store : instance.store.data);\n }\n }\n}\n\nfunction needUpdate(diffResult, updatePath) {\n for (var keyA in diffResult) {\n if (updatePath[keyA]) {\n return true;\n }\n for (var keyB in updatePath) {\n if (includePath(keyA, keyB)) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction includePath(pathA, pathB) {\n if (pathA.indexOf(pathB) === 0) {\n var next = pathA.substr(pathB.length, 1);\n if (next === '[' || next === '.') {\n return true;\n }\n }\n return false;\n}\n\nfunction fixPath(path) {\n var mpPath = '';\n var arr = path.replace('#-', '').split('-');\n arr.forEach(function (item, index) {\n if (index) {\n if (isNaN(Number(item))) {\n mpPath += '.' + item;\n } else {\n mpPath += '[' + item + ']';\n }\n } else {\n mpPath += item;\n }\n });\n return mpPath;\n}\n\nfunction _classCallCheck$1(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar storeHelpers = ['use', 'useSelf'];\n\nfunction define(name, ctor, config) {\n\tif (ctor.is === 'WeElement') {\n\t\toptions.mapping[name] = ctor;\n\t} else {\n\n\t\tif (typeof config === 'string') {\n\t\t\tconfig = { css: config };\n\t\t} else {\n\t\t\tconfig = config || {};\n\t\t}\n\n\t\tvar Comp = function (_Component) {\n\t\t\t_inherits(Comp, _Component);\n\n\t\t\tfunction Comp() {\n\t\t\t\tvar _temp, _this, _ret;\n\n\t\t\t\t_classCallCheck$1(this, Comp);\n\n\t\t\t\tfor (var _len = arguments.length, args = Array(_len), key = 0; key < _len; key++) {\n\t\t\t\t\targs[key] = arguments[key];\n\t\t\t\t}\n\n\t\t\t\treturn _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.compute = config.compute, _temp), _possibleConstructorReturn(_this, _ret);\n\t\t\t}\n\n\t\t\tComp.prototype.render = function render() {\n\t\t\t\treturn ctor.call(this, this);\n\t\t\t};\n\n\t\t\treturn Comp;\n\t\t}(Component);\n\n\t\tComp.css = config.css;\n\t\tComp.propTypes = config.propTypes;\n\t\tComp.defaultProps = config.defaultProps;\n\n\t\tvar _loop = function _loop(key) {\n\t\t\tif (typeof config[key] === 'function') {\n\t\t\t\tComp.prototype[key] = function () {\n\t\t\t\t\treturn config[key].apply(this, arguments);\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\n\t\tfor (var key in config) {\n\t\t\t_loop(key);\n\t\t}\n\n\t\tstoreHelpers.forEach(function (func) {\n\t\t\tif (config[func] && config[func] !== 'function') {\n\t\t\t\tComp.prototype[func] = function () {\n\t\t\t\t\treturn config[func];\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\n\t\toptions.mapping[name] = Comp;\n\t}\n}\n\nfunction rpx(str) {\n return str.replace(/([1-9]\\d*|0)(\\.\\d*)*rpx/g, function (a, b) {\n return window.innerWidth * Number(b) / 750 + 'px';\n });\n}\n\nfunction tag(name) {\n return function (target) {\n define(name, target);\n };\n}\n\n/**\n * classNames based on https://github.com/JedWatson/classnames\n * by Jed Watson\n * Licensed under the MIT License\n * https://github.com/JedWatson/classnames/blob/master/LICENSE\n * modified by dntzhang\n */\n\nvar hasOwn = {}.hasOwnProperty;\n\nfunction 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\nfunction extractClass() {\n var _Array$prototype$slic = Array.prototype.slice.call(arguments, 0),\n props = _Array$prototype$slic[0],\n args = _Array$prototype$slic.slice(1);\n\n if (props) {\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 }\n if (args.length > 0) {\n return { 'class': classNames.apply(null, args) };\n }\n}\n\nfunction getHost(component) {\n var base = component.base;\n if (base) {\n while (base.parentNode) {\n if (base.parentNode._component) {\n return base.parentNode._component;\n } else {\n base = base.parentNode;\n }\n }\n }\n}\n\n/**\n * preact-render-to-string based on preact-render-to-string\n * by Jason Miller\n * Licensed under the MIT License\n * https://github.com/developit/preact-render-to-string\n *\n * modified by dntzhang\n */\n\nvar encodeEntities = function encodeEntities(s) {\n return String(s).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"');\n};\n\nvar indent = function indent(s, char) {\n return String(s).replace(/(\\n+)/g, '$1' + (char || '\\t'));\n};\n\nvar mapping$1 = options.mapping;\n\nvar VOID_ELEMENTS = /^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/;\n\nvar isLargeString = function isLargeString(s, length, ignoreLines) {\n return String(s).length > (length || 40) || !ignoreLines && String(s).indexOf('\\n') !== -1 || String(s).indexOf('<') !== -1;\n};\n\nvar JS_TO_CSS = {};\n\n// Convert an Object style to a CSSText string\nfunction styleObjToCss(s) {\n var str = '';\n for (var prop in s) {\n var val = s[prop];\n if (val != null) {\n if (str) str += ' ';\n // str += jsToCss(prop);\n str += JS_TO_CSS[prop] || (JS_TO_CSS[prop] = prop.replace(/([A-Z])/g, '-$1').toLowerCase());\n str += ': ';\n str += val;\n if (typeof val === 'number' && IS_NON_DIMENSIONAL.test(prop) === false) {\n str += 'px';\n }\n str += ';';\n }\n }\n return str || undefined;\n}\n\nfunction renderToString(vnode, opts, store, isSvgMode) {\n store = store || {};\n opts = Object.assign({\n scopedCSS: true\n }, opts);\n var css = {};\n var html = _renderToString(vnode, opts, store, isSvgMode, css);\n return {\n css: Object.values(css),\n html: html\n };\n}\n\n/** The default export is an alias of `render()`. */\nfunction _renderToString(vnode, opts, store, isSvgMode, css) {\n if (vnode == null || typeof vnode === 'boolean') {\n return '';\n }\n\n var nodeName = vnode.nodeName,\n attributes = vnode.attributes,\n isComponent = false;\n\n var pretty = true && opts.pretty,\n indentChar = pretty && typeof pretty === 'string' ? pretty : '\\t';\n\n // #text nodes\n if (typeof vnode !== 'object' && !nodeName) {\n return encodeEntities(vnode);\n }\n\n // components\n var ctor = mapping$1[nodeName];\n if (ctor) {\n isComponent = true;\n\n var props = getNodeProps$1(vnode),\n rendered;\n // class-based components\n var c = new ctor(props, store);\n // turn off stateful re-rendering:\n c._disable = c.__x = true;\n c.props = props;\n c.store = store;\n if (c.install) c.install();\n if (c.beforeRender) c.beforeRender();\n rendered = c.render(c.props, c.store);\n\n if (opts.scopedCSS) {\n\n if (c.constructor.css || c.css) {\n\n var cssStr = c.constructor.css ? c.constructor.css : typeof c.css === 'function' ? c.css() : c.css;\n var cssAttr = '_s' + getCtorName(c.constructor);\n css[cssAttr] = {\n id: cssAttr,\n css: scoper(cssStr, cssAttr)\n };\n addScopedAttrStatic(rendered, cssAttr);\n }\n\n c.scopedCSSAttr = vnode.css;\n scopeHost(rendered, c.scopedCSSAttr);\n }\n\n return _renderToString(rendered, opts, store, false, css);\n }\n\n // render JSX to HTML\n var s = '',\n html;\n\n if (attributes) {\n var attrs = Object.keys(attributes);\n\n // allow sorting lexicographically for more determinism (useful for tests, such as via preact-jsx-chai)\n if (opts && opts.sortAttributes === true) attrs.sort();\n\n for (var i = 0; i < attrs.length; i++) {\n var name = attrs[i],\n v = attributes[name];\n if (name === 'children') continue;\n\n if (name.match(/[\\s\\n\\\\/='\"\\0<>]/)) continue;\n\n if (!(opts && opts.allAttributes) && (name === 'key' || name === 'ref')) continue;\n\n if (name === 'className') {\n if (attributes['class']) continue;\n name = 'class';\n } else if (isSvgMode && name.match(/^xlink:?./)) {\n name = name.toLowerCase().replace(/^xlink:?/, 'xlink:');\n }\n\n if (name === 'style' && v && typeof v === 'object') {\n v = styleObjToCss(v);\n }\n\n var hooked = opts.attributeHook && opts.attributeHook(name, v, store, opts, isComponent);\n if (hooked || hooked === '') {\n s += hooked;\n continue;\n }\n\n if (name === 'dangerouslySetInnerHTML') {\n html = v && v.__html;\n } else if ((v || v === 0 || v === '') && typeof v !== 'function') {\n if (v === true || v === '') {\n v = name;\n // in non-xml mode, allow boolean attributes\n if (!opts || !opts.xml) {\n s += ' ' + name;\n continue;\n }\n }\n s += ' ' + name + '=\"' + encodeEntities(v) + '\"';\n }\n }\n }\n\n // account for >1 multiline attribute\n if (pretty) {\n var sub = s.replace(/^\\n\\s*/, ' ');\n if (sub !== s && !~sub.indexOf('\\n')) s = sub;else if (pretty && ~s.indexOf('\\n')) s += '\\n';\n }\n\n s = '<' + nodeName + s + '>';\n if (String(nodeName).match(/[\\s\\n\\\\/='\"\\0<>]/)) throw s;\n\n var isVoid = String(nodeName).match(VOID_ELEMENTS);\n if (isVoid) s = s.replace(/>$/, ' />');\n\n var pieces = [];\n if (html) {\n // if multiline, indent.\n if (pretty && isLargeString(html)) {\n html = '\\n' + indentChar + indent(html, indentChar);\n }\n s += html;\n } else if (vnode.children) {\n var hasLarge = pretty && ~s.indexOf('\\n');\n for (var i = 0; i < vnode.children.length; i++) {\n var child = vnode.children[i];\n if (child != null && child !== false) {\n var childSvgMode = nodeName === 'svg' ? true : nodeName === 'foreignObject' ? false : isSvgMode,\n ret = _renderToString(child, opts, store, childSvgMode, css);\n if (pretty && !hasLarge && isLargeString(ret)) hasLarge = true;\n if (ret) pieces.push(ret);\n }\n }\n if (pretty && hasLarge) {\n for (var i = pieces.length; i--;) {\n pieces[i] = '\\n' + indentChar + indent(pieces[i], indentChar);\n }\n }\n }\n\n if (pieces.length) {\n s += pieces.join('');\n } else if (opts && opts.xml) {\n return s.substring(0, s.length - 1) + ' />';\n }\n\n if (!isVoid) {\n if (pretty && ~s.indexOf('\\n')) s += '\\n';\n s += '';\n }\n\n return s;\n}\n\nfunction assign$1(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }return obj;\n}\n\nfunction getNodeProps$1(vnode) {\n var props = assign$1({}, vnode.attributes);\n props.children = vnode.children;\n\n var defaultProps = vnode.nodeName.defaultProps;\n if (defaultProps !== undefined) {\n for (var i in defaultProps) {\n if (props[i] === undefined) {\n props[i] = defaultProps[i];\n }\n }\n }\n\n return props;\n}\n\nh.f = Fragment;\n\nvar WeElement = Component;\nvar defineElement = define;\nfunction createRef() {\n\treturn {};\n}\n\noptions.root.Omi = {\n\th: h,\n\tcreateElement: h,\n\tcloneElement: cloneElement,\n\tcreateRef: createRef,\n\tComponent: Component,\n\trender: render,\n\trerender: rerender,\n\toptions: options,\n\tWeElement: WeElement,\n\tdefine: define,\n\trpx: rpx,\n\tdefineElement: defineElement,\n\tclassNames: classNames,\n\textractClass: extractClass,\n\tgetHost: getHost,\n\trenderToString: renderToString,\n\ttag: tag,\n\tmerge: merge,\n\tobaa: obaa\n};\noptions.root.omi = options.root.Omi;\noptions.root.Omi.version = 'omio-2.8.3';\n\nvar omi = {\n\th: h,\n\tcreateElement: h,\n\tcloneElement: cloneElement,\n\tcreateRef: createRef,\n\tComponent: Component,\n\trender: render,\n\trerender: rerender,\n\toptions: options,\n\tWeElement: WeElement,\n\tdefine: define,\n\trpx: rpx,\n\tdefineElement: defineElement,\n\tclassNames: classNames,\n\textractClass: extractClass,\n\tgetHost: getHost,\n\trenderToString: renderToString,\n\ttag: tag,\n\tmerge: merge,\n\tobaa: obaa\n};\n\nexport default omi;\nexport { h, h as createElement, cloneElement, createRef, Component, render, rerender, options, WeElement, define, rpx, defineElement, classNames, extractClass, getHost, renderToString, tag, merge, obaa };\n//# sourceMappingURL=omi.esm.js.map\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/omio/dist/omi.esm.js","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/css-loader/lib/css-base.js","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\n} catch(e) {\n\t// This works if the window reference is available\n\tif(typeof window === \"object\")\n\t\tg = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n\n// WEBPACK FOOTER //\n// (webpack)/buildin/global.js","'use strict';\n\nvar asap = require('asap/raw');\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n try {\n return obj.then;\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nfunction tryCallOne(fn, a) {\n try {\n return fn(a);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\nfunction tryCallTwo(fn, a, b) {\n try {\n fn(a, b);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('Promise constructor\\'s argument is not a function');\n }\n this._75 = 0;\n this._83 = 0;\n this._18 = null;\n this._38 = null;\n if (fn === noop) return;\n doResolve(fn, this);\n}\nPromise._47 = null;\nPromise._71 = null;\nPromise._44 = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n if (this.constructor !== Promise) {\n return safeThen(this, onFulfilled, onRejected);\n }\n var res = new Promise(noop);\n handle(this, new Handler(onFulfilled, onRejected, res));\n return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n return new self.constructor(function (resolve, reject) {\n var res = new Promise(noop);\n res.then(resolve, reject);\n handle(self, new Handler(onFulfilled, onRejected, res));\n });\n}\nfunction handle(self, deferred) {\n while (self._83 === 3) {\n self = self._18;\n }\n if (Promise._47) {\n Promise._47(self);\n }\n if (self._83 === 0) {\n if (self._75 === 0) {\n self._75 = 1;\n self._38 = deferred;\n return;\n }\n if (self._75 === 1) {\n self._75 = 2;\n self._38 = [self._38, deferred];\n return;\n }\n self._38.push(deferred);\n return;\n }\n handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n asap(function() {\n var cb = self._83 === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n if (self._83 === 1) {\n resolve(deferred.promise, self._18);\n } else {\n reject(deferred.promise, self._18);\n }\n return;\n }\n var ret = tryCallOne(cb, self._18);\n if (ret === IS_ERROR) {\n reject(deferred.promise, LAST_ERROR);\n } else {\n resolve(deferred.promise, ret);\n }\n });\n}\nfunction resolve(self, newValue) {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self) {\n return reject(\n self,\n new TypeError('A promise cannot be resolved with itself.')\n );\n }\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = getThen(newValue);\n if (then === IS_ERROR) {\n return reject(self, LAST_ERROR);\n }\n if (\n then === self.then &&\n newValue instanceof Promise\n ) {\n self._83 = 3;\n self._18 = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(then.bind(newValue), self);\n return;\n }\n }\n self._83 = 1;\n self._18 = newValue;\n finale(self);\n}\n\nfunction reject(self, newValue) {\n self._83 = 2;\n self._18 = newValue;\n if (Promise._71) {\n Promise._71(self, newValue);\n }\n finale(self);\n}\nfunction finale(self) {\n if (self._75 === 1) {\n handle(self, self._38);\n self._38 = null;\n }\n if (self._75 === 2) {\n for (var i = 0; i < self._38.length; i++) {\n handle(self, self._38[i]);\n }\n self._38 = null;\n }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n var done = false;\n var res = tryCallTwo(fn, function (value) {\n if (done) return;\n done = true;\n resolve(promise, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(promise, reason);\n });\n if (!done && res === IS_ERROR) {\n done = true;\n reject(promise, LAST_ERROR);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/promise/lib/core.js","'use strict';\n\nif (typeof Promise === 'undefined') {\n // Rejection tracking prevents a common issue where React gets into an\n // inconsistent state due to an error, but it gets swallowed by a Promise,\n // and the user has no idea what causes React's erratic future behavior.\n require('promise/lib/rejection-tracking').enable();\n window.Promise = require('promise/lib/es6-extensions.js');\n}\n\n// fetch() polyfill for making API calls.\nrequire('whatwg-fetch');\n\n// Object.assign() is commonly used with React.\n// It will use the native implementation if it's present and isn't buggy.\nObject.assign = require('object-assign');\n\n// In tests, polyfill requestAnimationFrame since jsdom doesn't provide it yet.\n// We don't polyfill it in the browser--this is user's responsibility.\nif (process.env.NODE_ENV === 'test') {\n require('raf').polyfill(global);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./config/polyfills.js","'use strict';\n\nvar Promise = require('./core');\n\nvar DEFAULT_WHITELIST = [\n ReferenceError,\n TypeError,\n RangeError\n];\n\nvar enabled = false;\nexports.disable = disable;\nfunction disable() {\n enabled = false;\n Promise._47 = null;\n Promise._71 = null;\n}\n\nexports.enable = enable;\nfunction enable(options) {\n options = options || {};\n if (enabled) disable();\n enabled = true;\n var id = 0;\n var displayId = 0;\n var rejections = {};\n Promise._47 = function (promise) {\n if (\n promise._83 === 2 && // IS REJECTED\n rejections[promise._56]\n ) {\n if (rejections[promise._56].logged) {\n onHandled(promise._56);\n } else {\n clearTimeout(rejections[promise._56].timeout);\n }\n delete rejections[promise._56];\n }\n };\n Promise._71 = function (promise, err) {\n if (promise._75 === 0) { // not yet handled\n promise._56 = id++;\n rejections[promise._56] = {\n displayId: null,\n error: err,\n timeout: setTimeout(\n onUnhandled.bind(null, promise._56),\n // For reference errors and type errors, this almost always\n // means the programmer made a mistake, so log them after just\n // 100ms\n // otherwise, wait 2 seconds to see if they get handled\n matchWhitelist(err, DEFAULT_WHITELIST)\n ? 100\n : 2000\n ),\n logged: false\n };\n }\n };\n function onUnhandled(id) {\n if (\n options.allRejections ||\n matchWhitelist(\n rejections[id].error,\n options.whitelist || DEFAULT_WHITELIST\n )\n ) {\n rejections[id].displayId = displayId++;\n if (options.onUnhandled) {\n rejections[id].logged = true;\n options.onUnhandled(\n rejections[id].displayId,\n rejections[id].error\n );\n } else {\n rejections[id].logged = true;\n logError(\n rejections[id].displayId,\n rejections[id].error\n );\n }\n }\n }\n function onHandled(id) {\n if (rejections[id].logged) {\n if (options.onHandled) {\n options.onHandled(rejections[id].displayId, rejections[id].error);\n } else if (!rejections[id].onUnhandled) {\n console.warn(\n 'Promise Rejection Handled (id: ' + rejections[id].displayId + '):'\n );\n console.warn(\n ' This means you can ignore any previous messages of the form \"Possible Unhandled Promise Rejection\" with id ' +\n rejections[id].displayId + '.'\n );\n }\n }\n }\n}\n\nfunction logError(id, error) {\n console.warn('Possible Unhandled Promise Rejection (id: ' + id + '):');\n var errStr = (error && (error.stack || error)) + '';\n errStr.split('\\n').forEach(function (line) {\n console.warn(' ' + line);\n });\n}\n\nfunction matchWhitelist(error, list) {\n return list.some(function (cls) {\n return error instanceof cls;\n });\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/promise/lib/rejection-tracking.js","\"use strict\";\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n if (!queue.length) {\n requestFlush();\n flushing = true;\n }\n // Equivalent to push, but avoids a function call.\n queue[queue.length] = task;\n}\n\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\nvar requestFlush;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n while (index < queue.length) {\n var currentIndex = index;\n // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n index = index + 1;\n queue[currentIndex].call();\n // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (index > capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n queue.length -= index;\n index = 0;\n }\n }\n queue.length = 0;\n index = 0;\n flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n requestFlush = makeRequestCallFromMutationObserver(flush);\n\n// MessageChannels are desirable because they give direct access to the HTML\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\n} else {\n requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n var toggle = 1;\n var observer = new BrowserMutationObserver(callback);\n var node = document.createTextNode(\"\");\n observer.observe(node, {characterData: true});\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\nfunction makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n var timeoutHandle = setTimeout(handleTimer, 0);\n // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n var intervalHandle = setInterval(handleTimer, 50);\n\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n}\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/asap/browser-raw.js","'use strict';\n\n//This file contains the ES6 extensions to the core Promises/A+ API\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\n\n/* Static Functions */\n\nvar TRUE = valuePromise(true);\nvar FALSE = valuePromise(false);\nvar NULL = valuePromise(null);\nvar UNDEFINED = valuePromise(undefined);\nvar ZERO = valuePromise(0);\nvar EMPTYSTRING = valuePromise('');\n\nfunction valuePromise(value) {\n var p = new Promise(Promise._44);\n p._83 = 1;\n p._18 = value;\n return p;\n}\nPromise.resolve = function (value) {\n if (value instanceof Promise) return value;\n\n if (value === null) return NULL;\n if (value === undefined) return UNDEFINED;\n if (value === true) return TRUE;\n if (value === false) return FALSE;\n if (value === 0) return ZERO;\n if (value === '') return EMPTYSTRING;\n\n if (typeof value === 'object' || typeof value === 'function') {\n try {\n var then = value.then;\n if (typeof then === 'function') {\n return new Promise(then.bind(value));\n }\n } catch (ex) {\n return new Promise(function (resolve, reject) {\n reject(ex);\n });\n }\n }\n return valuePromise(value);\n};\n\nPromise.all = function (arr) {\n var args = Array.prototype.slice.call(arr);\n\n return new Promise(function (resolve, reject) {\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n if (val instanceof Promise && val.then === Promise.prototype.then) {\n while (val._83 === 3) {\n val = val._18;\n }\n if (val._83 === 1) return res(i, val._18);\n if (val._83 === 2) reject(val._18);\n val.then(function (val) {\n res(i, val);\n }, reject);\n return;\n } else {\n var then = val.then;\n if (typeof then === 'function') {\n var p = new Promise(then.bind(val));\n p.then(function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n values.forEach(function(value){\n Promise.resolve(value).then(resolve, reject);\n });\n });\n};\n\n/* Prototype Methods */\n\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/promise/lib/es6-extensions.js","(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue+','+value : value\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n rawHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = 'status' in options ? options.status : 200\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/whatwg-fetch/fetch.js","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/object-assign/index.js","import { define, WeElement } from 'omi'\n\nimport './my-head'\nimport './my-content'\nimport './my-sidebar'\nimport './my-demo'\n\ndefine('my-frame', class extends WeElement {\n\n installed(){\n this.store.init()\n }\n\n render() {\n return (\n
\n \n
\n \n
\n \n \n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-frame.js","import { define, WeElement } from 'omi'\nimport logo from './omi-logo2019.svg'\n\ndefine('my-head', class extends WeElement {\n static css = require('./_index.css')\n\n use = [\n 'position'\n ]\n\n toggleMenus = evt => {\n this.store.toogleSidebar()\n evt.stopPropagation()\n }\n\n hideSidebar = evt => {\n this.store.hideSidebar()\n }\n\n render() {\n return (\n
\n
\n \"\"\n
\n\n \n \n \n \n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-head/index.js","module.exports = __webpack_public_path__ + \"static/media/omi-logo2019.923166c3.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-head/omi-logo2019.svg\n// module id = 13\n// module chunks = 39 40","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAqklEQVRoQ+2WQQ6AMAgE4f+Pxg+oSTNbDXR7Z5UZQpvR/GTz/w838LdBG7ABSMAjBAHichvACGHAXANVVRCOtDwzb2E/GnADUv4R5xkQA9wWN3cLbUMmDrYBMdDluLkGfJEtD8N7wXkXWfsREk/Atri5W2gbMnGwDYiBLsfNNdB+jbqB5Wn2U0KM7KO4uVvoI4D4MzaAEcIAG4AAcbkNYIQwwAYgQFze3sAFU6MwMZGH3LoAAAAASUVORK5CYII=\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-head/menu.png\n// module id = 14\n// module chunks = 39 40","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-head/_index.css\n// module id = 15\n// module chunks = 39 40","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".head{\\n position:fixed;\\n height:60px;\\n line-height: 60px;\\n border-bottom: 1px solid #eee;\\n width:100%;\\n background-color:#24292e;\\n z-index:100;\\n top: 0;\\n}\\n\\nul,li{\\n display: inline-block;\\n}\\n\\n.logo_box{\\n width:100px;\\n display: inline-block;\\n text-align:center;\\n line-height: 60px;\\n}\\n\\n.menu a,.logo_box a{\\n display: inline-block;\\n height:60px;\\n color: white;\\n}\\n\\n.menu{\\n position: absolute;\\n right:20px;\\n}\\n\\n.menu li{\\n margin-left:15px;\\n}\\n\\n.logo_box a{\\n font-size: 34px;\\n font-weight: bold;\\n color: #00bff3;\\n padding: 0px 15px;\\n line-height: 60px;\\n cursor: pointer;\\n}\\n\\n.menu a:hover{\\n color: white;\\n}\\n\\n.m_menu{\\n position:fixed;\\n display:none;\\n cursor: pointer;\\n}\\n\\n.menu li{\\n display:inline-block;\\n}\\n\\n.logo{\\n width: 40px;\\n height: 40px;\\n margin-left: 10px;\\n margin-top: 10px;\\n cursor: pointer;\\n}\\n\\n@media only screen and (max-width: 800px) {\\n\\n .logo_box{\\n display:inline-block;\\n }\\n\\n .logo{\\n display: none;\\n }\\n\\n .head{\\n text-align:center;\\n }\\n\\n .m_menu{\\n top:0;\\n left:0;\\n display:block;\\n width:50px;\\n height:50px;\\n padding-top: 6px;\\n }\\n\\n .m_menu img{\\n width:30px;\\n }\\n\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-head/_index.css\n// module id = 16\n// module chunks = 39 40","import { define, WeElement } from 'omi'\nimport '../my-footer'\n\ndefine('my-content', class extends WeElement {\n static css = require('./_index.css')\n\n use = [\n 'html'\n ]\n\n install() {\n this.store.myContent = this\n }\n\n installed() {\n this.initCodeStyle()\n }\n\n afterUpdate() {\n this.initCodeStyle()\n }\n\n touchEnd = () => {\n this.store.hideSidebar()\n }\n\n initCodeStyle() {\n let codes = document.querySelectorAll('code')\n\n let codesArr = Array.prototype.slice.call(codes);\n let codeHlNumArr = []\n codesArr.forEach(code => {\n let arr = code.className.match(/{([\\S\\s]*)}/)\n let pre = code.parentNode\n //bug!\n arr && pre.setAttribute('data-line', arr[1])\n if (code.className) {\n pre.className = code.className\n\n const temp = code.className.match(/language-\\w*/g)[0]\n if (temp) {\n code.innerHTML = Prism.highlight(code.innerText, Prism.languages[temp.split('-')[1]], temp.split('-')[1])\n }\n } else {\n let pre = code.parentNode\n code.className = 'language-markup'\n pre.className = 'language-markup'\n code.innerHTML = Prism.highlight(code.innerText, Prism.languages.markup, 'markup')\n }\n // let hllNums = null\n // if (arr) {\n // let numArr = arr[0].replace(/[{|}]/g, '').split(',')\n // hllNums = this._arrToNumber(numArr)\n // }\n //codeHlNumArr.push(hllNums)\n })\n\n // codesArr.forEach((code, index) => {\n // let newP = document.createElement('div')\n // newP.className = '_code-ctn'\n // let pre = code.parentNode\n // let ctn = pre.parentNode\n // if (pre.nodeName === 'PRE') {\n // ctn.insertBefore(newP, pre)\n\n // let hl = document.createElement('div')\n // hl.className = '_hl'\n // newP.appendChild(hl)\n // newP.appendChild(pre)\n // let nums = codeHlNumArr[index]\n\n // let max = Math.max.apply(null, nums)\n\n // let inner = ''\n // for (let i = 0; i <= max; i++) {\n // if (nums.indexOf(i) == -1) {\n // inner += '
'\n // } else {\n // inner += '
'\n // }\n // }\n // hl.innerHTML = inner\n // }\n // })\n //fix line-highlight\n window.dispatchEvent(new Event('resize'));\n }\n\n _arrToNumber(numArr) {\n let arr = []\n numArr.forEach(item => {\n if (item.indexOf('-') !== -1) {\n const tempArr = item.split('-')\n const begin = Number(tempArr[0])\n const end = Number(tempArr[1])\n for (let i = begin; i < end + 1; i++) {\n arr.push(i)\n }\n } else {\n arr.push(Number(item))\n }\n })\n return arr\n }\n\n render() {\n return (\n
\n \n \n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-content/index.js","import { define, WeElement } from 'omi'\n\ndefine('my-footer', class extends WeElement {\n static css = require('./_index.css')\n\n use = [\n 'position',\n 'menu'\n ]\n\n render() {\n const [\n position,\n menus\n ] = this.using\n const pre = this.store.getPre()\n const next = this.store.getNext()\n\n return (\n
\n {pre &&← {pre.name}}\n {next &&}\n
\n )\n }\n\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-footer/index.js","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-footer/_index.css\n// module id = 19\n// module chunks = 39 40","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".ft{\\n position: relative;\\n margin-top: 20px\\n}\\n\\n.pre{\\n position: absolute;\\n left:15px;\\n}\\n\\n.next{\\n position: absolute;\\n right: 15px;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-footer/_index.css\n// module id = 20\n// module chunks = 39 40","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-content/_index.css\n// module id = 21\n// module chunks = 39 40","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".content{\\n position: relative;\\n padding: 70px 30px;\\n max-width: 900px;\\n margin: 0 auto;\\n\\n}\\n\\n@media screen and (max-width: 1500px){\\n .content {\\n margin-left: 290px;\\n }\\n}\\n\\nh3{\\n color:#444444;\\n}\\n\\npre{\\n border: 1px solid #eee;\\n width: 100%;\\n}\\nli{\\n text-indent: 20px;\\n list-style:disc inside ;\\n}\\n\\n@media only screen and (max-width: 800px) {\\n .content{\\n margin-left: 0;\\n border-left: none;\\n padding: 70px 10px 70px 10px;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-content/_index.css\n// module id = 22\n// module chunks = 39 40","import { define, WeElement } from 'omi'\nimport '../my-list'\n\ndefine('my-sidebar', class extends WeElement {\n static css = require('./_index.css')\n\n use = [\n 'menus',\n 'sideBarShow',\n 'lan'\n ]\n\n render() {\n const [menus, sideBarShow, lan] = this.using\n\n return (\n
\n {menus[lan].map((menu, index) => (\n \n ))}\n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-sidebar/index.js","import { define, WeElement } from 'omi'\n\ndefine('my-list', class extends WeElement {\n static css = require('./_index.css')\n\n use = [\n 'position'\n ]\n\n render(props) {\n const [position] = this.using\n\n return (\n
    \n
  • {props.menu.title}
  • \n {props.menu.list &&\n props.menu.list.map((item, subIndex) => {\n const cls = position[0] === props.index && position[1] === subIndex ? { class: 'current' } : null\n return
  • \n \n {item.name}\n \n
  • \n })}\n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-list/index.js","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-list/_index.css\n// module id = 25\n// module chunks = 39 40","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"li.title{\\n font-size: 14px;\\n font-weight: bold;\\n margin-bottom:10px;\\n margin-top:10px;\\n text-indent: 23px;\\n}\\nli{\\n margin-bottom:1px;\\n text-indent: 33px;\\n}\\nli a{\\n display:block;\\n font-size:14px;\\n height:30px;\\n line-height:30px;\\n color: black;\\n background-color:#eee;\\n}\\nli a.current,li a.current:hover{\\n background-color:#24292e;\\n color: white;\\n cursor: default;\\n}\\nli a:hover{\\n background-color:#f0f8ff;\\n}\\n\\n\\nul,li{\\n list-style:none;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-list/_index.css\n// module id = 26\n// module chunks = 39 40","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-sidebar/_index.css\n// module id = 27\n// module chunks = 39 40","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"@media only screen and (max-width: 800px) {\\n .list{\\n transform: translateX(-100%);\\n background-color:white;\\n left:0 !important;\\n -moz-transition: all .6s ease;\\n -o-transition: all .6s ease;\\n -webkit-transition: all .6s ease;\\n transition: all .6s ease;\\n width: 70% !important;\\n z-index: 100000;\\n border-right: none !important;\\n }\\n\\n .list.show {\\n -moz-transform: translateX(0%) translateZ(0);\\n -ms-transform: translateX(0%) translateZ(0);\\n -o-transform: translateX(0%) translateZ(0);\\n -webkit-transform: translateX(0%) translateZ(0);\\n transform: translateX(0%) translateZ(0);\\n }\\n}\\n\\n.list{\\n width: 261px;\\n text-indent: 20px;\\n border-right: 1px solid #eee;\\n overflow-x: hidden;\\n overflow-y: auto;\\n position:fixed;\\n top:60px;\\n background-color: white;\\n height: 100%;\\n border-right: 1px solid #ccc;\\n padding-bottom: 100px;\\n}\\n.version{\\n height:20px;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-sidebar/_index.css\n// module id = 28\n// module chunks = 39 40","import { define, WeElement } from 'omi'\nimport css from './_index.css'\n\ndefine('my-demo', class extends WeElement {\n install() {\n this.store.myDemo = this\n if(this.checkPc())\n this.show = true\n else\n this.show = false\n this.demo = this.store.demo\n }\n\n css() {\n return css\n }\n\n checkPc() {\n let userAgentInfo = navigator.userAgent\n let mp = [\"Android\", \"iPhone\", \"SymbianOS\", \"Windows Phone\", \"iPad\", \"iPod\"]\n for (let i = 0; i < mp.length; i++)\n if (userAgentInfo.indexOf(mp[i]) > 0)\n return false\n return true\n }\n\n onShow = () => {\n this.show = true\n this.update()\n }\n\n onClose = () => {\n this.show = false\n this.update()\n }\n \n render() {\n if(!this.demo) return\n return (\n
\n { this.show && }\n\n {!this.show &&
\n \n
}\n\n {this.show &&
\n \n
}\n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-demo/index.js","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (result && result.__esModule) {\n result = result.default;\n }\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-demo/_index.css\n// module id = 30\n// module chunks = 39 40","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"iframe{\\n width: 750px;\\n height: 100%;\\n top: 60px;\\n right: 0;\\n position: fixed;\\n border: none;\\n z-index: 9999;\\n border-left: 2px solid #24292E;\\n}\\n\\n.switch{\\n width: 40px;\\n height: 40px;\\n background-color: #AA0000;\\n border-radius: 50%;\\n position: fixed;\\n right: 50px;\\n bottom: 50px;\\n cursor: pointer;\\n text-align: center;\\n z-index: 10000;\\n}\\n\\n.switch img{\\n width: 30px;\\n height: 30px;\\n margin-top:5px;\\n}\\n\\n.switch.close img{\\n margin-top:10px;\\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n@media only screen and (max-width: 800px) {\\n iframe{\\n width: 100%;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-demo/_index.css\n// module id = 31\n// module chunks = 39 40","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfiDBQMEgYVXhFiAAABVklEQVRIx+3UsU4UURSA4TNARoiJcR9BCwwJNNpRU0hjpS+hDTTyGkAD1UJnRzCbYKRAKzt9AaMxJoR+Ewho8dEMm5nZOzObbfVUM+ec/79n7uTeiP8xUfjiq6Xp8Ufg6fSCN7iQpasztebcttVaz3pEnGQirNqWt62VG2CoV8rNu8TLCD1DDBoVBc5BeVzr+OthhMwBjQq59wVe+Sy7+FQ8Z/bBB/MT4hG+4+3oLa0Y4f0x/AlYLmUyezVFMx5hE79ruaqiDY9wir2xbFnhqAW/7xovEpUZfXCUwEqxFvfiJs5ae+SO0/sfYR8fE8zdvzi524UGhV/Y6MCbp7ACFjvxiuKd2VFuCz/GNu8wgacVPmNnQrxQlA6TB/7geWX4tsNUUgz1IrzClYVStes4F4riQtHHoFbtulAq457j9UTNScEz8Li7c64hfxXf4jr7OfUE/1TcAoyIn6j/RilHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTEyLTIwVDExOjE4OjA2KzAxOjAwT3khJwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMi0yMFQxMToxODowNiswMTowMD4kmZsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-demo/code.png\n// module id = 32\n// module chunks = 39 40","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAQAAACROWYpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiDBQMERzDEbvbAAAArElEQVQ4y6XVOw6DMBBFUSf7SmGy2ZCNBerIJN2lAQn/34ArZHFsi3mDHW9mvDMOPDOjYwKCjeMJwGd/MPBI8OALBJ4S3d8e0okuz6jOi1TjVdrnTdrmXVrnEi1zmebcRGNupgf+YzHTjS8A/Ov0Lqxzs+97PLbUMukHG2wd59LimHheHJmX6yrxeiS6vJ2mJu8Hscq1DBe5Hv+M2zon4pd++teum5Hp5EX3WgGu+8eCI/n/bQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0xMi0yMFQxMToxNzoyOCswMTowMKxoBooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMTItMjBUMTE6MTc6MjgrMDE6MDDdNb42AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-demo/close.png\n// module id = 33\n// module chunks = 39 40","import config from '../docs/config.js'\nimport 'omi-router'\n\nclass Store {\n constructor(data) {\n this.data = {\n position: [-1, -1],\n menus: config.menus,\n lan: data.lan,\n html: '',\n sideBarShow: false\n }\n let id = 0\n this.map = {}\n this.positionMap = {}\n config.menus[this.data.lan].forEach((menu, index) => {\n menu.list.forEach((item, subIndex) => {\n item.id = id++\n item.position = [index, subIndex]\n this.map[item.id] = item\n item.index = index\n item.subIndex = subIndex\n this.positionMap[index + '-' + subIndex] = item\n })\n })\n this.preIndex = 0\n this.preSubIndex = 0\n }\n\n getNext() {\n const item = this.positionMap[this.data.position.join('-')]\n if (item) {\n return this.map[item.id + 1]\n }\n }\n\n getPre() {\n const item = this.positionMap[this.data.position.join('-')]\n if (item) {\n return this.map[item.id - 1]\n }\n }\n\n init() {\n this.remarkable = new Remarkable({ html: true })\n if (location.hash === \"\") {\n this.data.position = [0, 0]\n this.getMarkDown(this.data.menus[this.data.lan][0].list[0].md, this.data.lan, m => {\n this.data.html = this.remarkable.render(m)\n })\n }\n this.initRouter()\n }\n\n toogleSidebar() {\n this.data.sideBarShow = !this.data.sideBarShow\n }\n\n hideSidebar() {\n this.data.sideBarShow = false\n }\n\n initRouter() {\n const menus = this.data.menus[this.data.lan]\n menus.forEach(item => {\n item.list.forEach(subItem => {\n route('/' + subItem.md, evt => {\n menus[this.preIndex].list[this.preSubIndex].selected = false\n const indexs = getIndexs(subItem.md, this.data.lan, config)\n this.preIndex = indexs[0]\n this.preSubIndex = indexs[1]\n this.data.position = [indexs[0], indexs[1]]\n this.data.sideBarShow = false\n\n this.getMarkDown(subItem.md, this.data.lan, m => {\n this.data.html = this.remarkable.render(m)\n document.body.scrollTop = 0\n document.documentElement.scrollTop = 0\n })\n })\n })\n })\n }\n\n getMarkDown(name, lan, callback) {\n import('../docs/' + lan + '/' + name + '.md').then(m => {\n callback(m)\n })\n }\n}\n\nfunction getIndexs(name, lan, config) {\n const menus = config.menus[lan]\n for (let i = 0, len = menus.length; i < len; i++) {\n for (let j = 0, sLen = menus[i].list.length; j < sLen; j++) {\n if (name === menus[i].list[j].md) {\n return [i, j]\n }\n }\n }\n}\n\n\nexport default Store\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/index.js","const config = {\n menus: {\n 'zh-cn': [\n {\n title: 'OMI',\n list: [\n { name: '简介', md: 'introduction' },\n { name: '安装', md: 'installation' }\n ]\n },\n {\n title: '基础概念',\n list: [\n { name: 'H / H.F / JSX', md: 'jsx' },\n { name: '属性 Props', md: 'props' },\n { name: '事件 Event', md: 'event' },\n { name: '插槽 Slot', md: 'slot' },\n { name: '生命周期', md: 'lifecycle' },\n { name: '更新 Update', md: 'update' },\n { name: 'Provide / Inject', md: 'provide-inject' },\n { name: '引用 Ref', md: 'ref' },\n { name: '类名 Class', md: 'class' },\n { name: '扩展 Extend', md: 'extend' },\n // { name: '存储 Store', md: 'store' },\n { name: '样式 CSS', md: 'css' }\n ]\n },\n {\n title: '其他',\n list: [\n { name: 'Kbone 多端开发', md: 'kbone' },\n { name: '路由', md: 'router' },\n // { name: '服务端渲染', md: 'ssr' },\n { name: '生态与例子', md: 'other' },\n // { name: 'Mps', md: 'mps' }\n ]\n }\n ],\n en: [\n {\n title: 'OMI',\n list: [\n { name: 'Introduction', md: 'introduction' },\n { name: 'Installation', md: 'installation' }\n ]\n },\n {\n title: 'Base',\n list: [\n { name: 'H / H.F / JSX', md: 'jsx' },\n { name: 'Props', md: 'props' },\n { name: 'Event', md: 'event' },\n { name: 'Slot', md: 'slot' },\n { name: 'Lifecycle', md: 'lifecycle' },\n { name: 'Update', md: 'update' },\n { name: 'Provide / Inject', md: 'provide-inject' },\n { name: 'Ref', md: 'ref' },\n { name: 'Class', md: 'class' },\n { name: 'Extend', md: 'extend' },\n // { name: 'Store', md: 'store' },\n { name: 'CSS', md: 'css' }\n ]\n },\n {\n title: 'Other',\n list: [\n { name: 'Router', md: 'router' },\n // { name: 'Server-Side Rendering', md: 'ssr' },\n { name: 'Ecosystem and Examples', md: 'other' }\n ]\n }\n ]\n }\n}\n\nexport default config\n\n\n\n// WEBPACK FOOTER //\n// ./src/docs/config.js","/**\n * omi-router v3.0.2 http://omijs.org\n * Front End Cross-Frameworks Framework.\n * By dntzhang https://github.com/dntzhang\n * Github: https://github.com/Tencent/omi\n * MIT Licensed.\n */\n\n/**\n * Expose `pathToRegexp`.\n */\nvar _pathToRegexp_3_2_0_pathToRegexp = pathToRegexp;\nvar match_1 = match;\nvar regexpToFunction_1 = regexpToFunction;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * Default configs.\n */\nvar DEFAULT_DELIMITER = '/';\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \":test(\\\\d+)?\" => [\"test\", \"\\d+\", undefined, \"?\"]\n // \"(\\\\d+)\" => [undefined, undefined, \"\\d+\", undefined]\n '(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = (options && options.delimiter) || DEFAULT_DELIMITER;\n var whitelist = (options && options.whitelist) || undefined;\n var pathEscaped = false;\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) !== null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n pathEscaped = true;\n continue\n }\n\n var prev = '';\n var name = res[2];\n var capture = res[3];\n var group = res[4];\n var modifier = res[5];\n\n if (!pathEscaped && path.length) {\n var k = path.length - 1;\n var c = path[k];\n var matches = whitelist ? whitelist.indexOf(c) > -1 : true;\n\n if (matches) {\n prev = c;\n path = path.slice(0, k);\n }\n }\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n pathEscaped = false;\n }\n\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var pattern = capture || group;\n var delimiter = prev || defaultDelimiter;\n\n tokens.push({\n name: name || key++,\n prefix: prev,\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n pattern: pattern\n ? escapeGroup(pattern)\n : '[^' + escapeString(delimiter === defaultDelimiter ? delimiter : (delimiter + defaultDelimiter)) + ']+?'\n });\n }\n\n // Push any remaining characters.\n if (path || index < str.length) {\n tokens.push(path + str.substr(index));\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nfunction match (str, options) {\n var keys = [];\n var re = pathToRegexp(str, keys, options);\n return regexpToFunction(re, keys)\n}\n\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nfunction regexpToFunction (re, keys) {\n return function (pathname, options) {\n var m = re.exec(pathname);\n if (!m) return false\n\n var path = m[0];\n var index = m.index;\n var params = {};\n var decode = (options && options.decode) || decodeURIComponent;\n\n for (var i = 1; i < m.length; i++) {\n if (m[i] === undefined) continue\n\n var key = keys[i - 1];\n\n if (key.repeat) {\n params[key.name] = m[i].split(key.delimiter).map(function (value) {\n return decode(value, key)\n });\n } else {\n params[key.name] = decode(m[i], key);\n }\n }\n\n return { path: path, index: index, params: params }\n }\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (data, options) {\n var path = '';\n var encode = (options && options.encode) || encodeURIComponent;\n var validate = options ? options.validate !== false : true;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n continue\n }\n\n var value = data ? data[token.name] : undefined;\n var segment;\n\n if (Array.isArray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but got array')\n }\n\n if (value.length === 0) {\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j], token);\n\n if (validate && !matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\"')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n segment = encode(String(value), token);\n\n if (validate && !matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but got \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n continue\n }\n\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to be ' + (token.repeat ? 'an array' : 'a string'))\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$/()])/g, '\\\\$1')\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {Array=} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n if (!keys) return path\n\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n pattern: null\n });\n }\n }\n\n return path\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n return new RegExp('(?:' + parts.join('|') + ')', flags(options))\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n options = options || {};\n\n var strict = options.strict;\n var start = options.start !== false;\n var end = options.end !== false;\n var delimiter = options.delimiter || DEFAULT_DELIMITER;\n var endsWith = [].concat(options.endsWith || []).map(escapeString).concat('$').join('|');\n var route = start ? '^' : '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var capture = token.repeat\n ? '(?:' + token.pattern + ')(?:' + escapeString(token.delimiter) + '(?:' + token.pattern + '))*'\n : token.pattern;\n\n if (keys) keys.push(token);\n\n if (token.optional) {\n if (!token.prefix) {\n route += '(' + capture + ')?';\n } else {\n route += '(?:' + escapeString(token.prefix) + '(' + capture + '))?';\n }\n } else {\n route += escapeString(token.prefix) + '(' + capture + ')';\n }\n }\n }\n\n if (end) {\n if (!strict) route += '(?:' + escapeString(delimiter) + ')?';\n\n route += endsWith === '$' ? '$' : '(?=' + endsWith + ')';\n } else {\n var endToken = tokens[tokens.length - 1];\n var isEndDelimited = typeof endToken === 'string'\n ? endToken[endToken.length - 1] === delimiter\n : endToken === undefined;\n\n if (!strict) route += '(?:' + escapeString(delimiter) + '(?=' + endsWith + '))?';\n if (!isEndDelimited) route += '(?=' + escapeString(delimiter) + '|' + endsWith + ')';\n }\n\n return new RegExp(route, flags(options))\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (path instanceof RegExp) {\n return regexpToRegexp(path, keys)\n }\n\n if (Array.isArray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), keys, options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), keys, options)\n}\n_pathToRegexp_3_2_0_pathToRegexp.match = match_1;\n_pathToRegexp_3_2_0_pathToRegexp.regexpToFunction = regexpToFunction_1;\n_pathToRegexp_3_2_0_pathToRegexp.parse = parse_1;\n_pathToRegexp_3_2_0_pathToRegexp.compile = compile_1;\n_pathToRegexp_3_2_0_pathToRegexp.tokensToFunction = tokensToFunction_1;\n_pathToRegexp_3_2_0_pathToRegexp.tokensToRegExp = tokensToRegExp_1;\n\n/*!\n * omi-router v3.0.1 by dntzhang\n * Router for Omi.\n * Github: https://github.com/Tencent/omi\n * MIT Licensed.\n */\nvar mapping = {};\nvar root = getGlobal();\nroot.route = route;\nroot.route.params = null;\nroot.historyLength = 0;\nroot.route.to = function (path, data) {\n root.route._routeByTo = true;\n root.route.data = data;\n if (path[0] === '#') {\n location.hash = path;\n }\n else {\n location.hash = '#' + path;\n }\n};\nwindow.addEventListener('hashchange', hashChange);\nfunction hashChange(evt) {\n var byNative = false;\n //need to fix a line by omi-link\n if (window.history.length === root.historyLength && !root.route._routeByTo) {\n //keep alive mode\n byNative = true;\n }\n root.route._routeByTo = false;\n root.historyLength = window.history.length;\n var prevent = false;\n if (root.route.before) {\n prevent = root.route.before(evt) === false;\n }\n if (prevent)\n return;\n var path = window.location.hash.replace('#', '');\n if (path === '')\n path = '/';\n var notFound = true;\n Object.keys(mapping).every(function (key) {\n var toArr = path.split('?')[0].match(mapping[key].reg);\n if (toArr) {\n var pathArr = key.match(mapping[key].reg);\n root.route.params = getParams(toArr, pathArr);\n root.route.query = getUrlParams(path);\n mapping[key].callback({\n params: root.route.params,\n query: getUrlParams(path),\n data: root.route.data,\n byNative: byNative\n });\n root.route.data = null;\n notFound = false;\n return false;\n }\n return true;\n });\n if (notFound) {\n mapping['*'] && mapping['*'].callback({ byNative: byNative });\n }\n if (root.route.after) {\n root.route.after(evt);\n }\n}\ndocument.addEventListener('DOMContentLoaded', hashChange);\nfunction getParams(toArr, pathArr) {\n var params = {};\n toArr.forEach(function (item, index) {\n if (index > 0) {\n params[pathArr[index].replace(':', '')] = item;\n }\n });\n return params;\n}\nfunction route(path, callback) {\n mapping[path] = {\n callback: callback,\n reg: _pathToRegexp_3_2_0_pathToRegexp(path)\n };\n}\nvar router = { route: route, hashChange: hashChange };\nfunction getGlobal() {\n if (typeof global !== 'object' ||\n !global ||\n global.Math !== Math ||\n global.Array !== Array) {\n return (self ||\n window ||\n global ||\n (function () {\n return this;\n })());\n }\n return global;\n}\nfunction getUrlParams(url) {\n url = url.replace(/#.*$/, '');\n var queryArray = url.split(/[?&]/).slice(1);\n var i, args = {};\n for (i = 0; i < queryArray.length; i++) {\n var match = queryArray[i].match(/([^=]+)=([^=]+)/);\n if (match !== null) {\n args[match[1]] = decodeURIComponent(match[2]);\n }\n }\n return args;\n}\n\nexport { router as default, hashChange, route };\n//# sourceMappingURL=index.esm.js.map\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/omi-router/src/index.esm.js","var map = {\n\t\"./en/class.md\": [\n\t\t38,\n\t\t38\n\t],\n\t\"./en/css.md\": [\n\t\t39,\n\t\t37\n\t],\n\t\"./en/event.md\": [\n\t\t40,\n\t\t36\n\t],\n\t\"./en/extend.md\": [\n\t\t41,\n\t\t35\n\t],\n\t\"./en/installation.md\": [\n\t\t42,\n\t\t34\n\t],\n\t\"./en/introduction.md\": [\n\t\t43,\n\t\t33\n\t],\n\t\"./en/jsx.md\": [\n\t\t44,\n\t\t32\n\t],\n\t\"./en/lifecycle.md\": [\n\t\t45,\n\t\t31\n\t],\n\t\"./en/omim.md\": [\n\t\t46,\n\t\t30\n\t],\n\t\"./en/other.md\": [\n\t\t47,\n\t\t29\n\t],\n\t\"./en/props.md\": [\n\t\t48,\n\t\t28\n\t],\n\t\"./en/provide-inject.md\": [\n\t\t49,\n\t\t27\n\t],\n\t\"./en/ref.md\": [\n\t\t50,\n\t\t26\n\t],\n\t\"./en/router.md\": [\n\t\t51,\n\t\t25\n\t],\n\t\"./en/slot.md\": [\n\t\t52,\n\t\t24\n\t],\n\t\"./en/ssr.md\": [\n\t\t53,\n\t\t23\n\t],\n\t\"./en/store.md\": [\n\t\t54,\n\t\t22\n\t],\n\t\"./en/update.md\": [\n\t\t55,\n\t\t21\n\t],\n\t\"./zh-cn/class.md\": [\n\t\t56,\n\t\t20\n\t],\n\t\"./zh-cn/css.md\": [\n\t\t57,\n\t\t19\n\t],\n\t\"./zh-cn/event.md\": [\n\t\t58,\n\t\t18\n\t],\n\t\"./zh-cn/extend.md\": [\n\t\t59,\n\t\t17\n\t],\n\t\"./zh-cn/installation.md\": [\n\t\t60,\n\t\t16\n\t],\n\t\"./zh-cn/introduction.md\": [\n\t\t61,\n\t\t15\n\t],\n\t\"./zh-cn/jsx.md\": [\n\t\t62,\n\t\t14\n\t],\n\t\"./zh-cn/kbone.md\": [\n\t\t63,\n\t\t13\n\t],\n\t\"./zh-cn/lifecycle.md\": [\n\t\t64,\n\t\t12\n\t],\n\t\"./zh-cn/mps.md\": [\n\t\t65,\n\t\t11\n\t],\n\t\"./zh-cn/omim.md\": [\n\t\t66,\n\t\t10\n\t],\n\t\"./zh-cn/omip.md\": [\n\t\t67,\n\t\t9\n\t],\n\t\"./zh-cn/other.md\": [\n\t\t68,\n\t\t8\n\t],\n\t\"./zh-cn/props.md\": [\n\t\t69,\n\t\t7\n\t],\n\t\"./zh-cn/provide-inject.md\": [\n\t\t70,\n\t\t6\n\t],\n\t\"./zh-cn/ref.md\": [\n\t\t71,\n\t\t5\n\t],\n\t\"./zh-cn/router.md\": [\n\t\t72,\n\t\t4\n\t],\n\t\"./zh-cn/slot.md\": [\n\t\t73,\n\t\t3\n\t],\n\t\"./zh-cn/ssr.md\": [\n\t\t74,\n\t\t2\n\t],\n\t\"./zh-cn/store.md\": [\n\t\t75,\n\t\t1\n\t],\n\t\"./zh-cn/update.md\": [\n\t\t76,\n\t\t0\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids)\n\t\treturn Promise.reject(new Error(\"Cannot find module '\" + req + \"'.\"));\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(ids[0]);\n\t});\n};\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 37;\nmodule.exports = webpackAsyncContext;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs lazy ^\\.\\/.*\\.md$\n// module id = 37\n// module chunks = 39 40","import { render } from 'omi'\nimport './assets/index.css'\nimport './elements/my-frame.js'\nimport Store from './store'\n\nrender(, '#root', new Store({ lan: 'en' }))\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js"],"sourceRoot":""} \ No newline at end of file diff --git a/site/omi-src/src/docs/en/update.md b/site/omi-src/src/docs/en/update.md index 5d8ad84af7..7efb808bd9 100644 --- a/site/omi-src/src/docs/en/update.md +++ b/site/omi-src/src/docs/en/update.md @@ -7,12 +7,6 @@ this.update() ``` -You can also pass use `forceUpdate` to ignore attributes in html mode and updates: - -```js -this.forceUpdate() -``` - For example, click on the mask of the pop-up layer to close the pop-up, pass it to the parent component in the react, let the parent component update, while Omi advocates self-update, so that the diff area is smaller. ```js @@ -21,8 +15,8 @@ onMaskClick = ()=> { this.props.show = false //prevent parent component from updating diff without results this.prevProps.show = false - //update self and ignore attributes in html mode - this.forceUpdate() + //update + this.update() //trigger events, which can be used to change external state variables to maintain consistency, but external components need not be updated this.fire('close') } diff --git a/site/omi-src/src/docs/zh-cn/update.md b/site/omi-src/src/docs/zh-cn/update.md index 218d7fd22d..9a32ea9356 100644 --- a/site/omi-src/src/docs/zh-cn/update.md +++ b/site/omi-src/src/docs/zh-cn/update.md @@ -7,11 +7,6 @@ this.update() ``` -也可以使用 forceUpdate 在 html 模式下忽略 attributes: - -```js -this.forceUpdate() -``` 举个场景,比如点击弹出层的 mask 关闭弹出,在 react 中需要传递给父组件,让父组件更新,而 Omi 推崇自更新,这样 diff 的区域更小。 @@ -21,8 +16,8 @@ onMaskClick = ()=> { this.props.show = false //防止父组件更新 diff 不出结果 this.prevProps.show = false - //更新,并且在 html 模式下忽略 attributes - this.forceUpdate() + //更新 + this.update() //触发事件,可以通过这个更改外部的状态变量来保持一致性,但是外面的组件不用再更新 this.fire('close') }