UNPKG

nervjs

Version:

A react-like framework based on virtual-dom

2 lines (1 loc) 33.2 kB
"use strict";function noop(){}function isNumber(e){return"number"==typeof e}function isString(e){return"string"==typeof e}function isFunction(e){return"function"==typeof e}function isBoolean(e){return!0===e||!1===e}function isUndefined(e){return e===undefined}function shallowEqual(e,t){if(null===e||null===t)return!1;if(Object.is(e,t))return!0;var n=e?Object.keys(e):[],r=t?Object.keys(t):[];if(n.length!==r.length)return!1;for(var o=0;o<n.length;o++){var i=n[o];if(!t.hasOwnProperty(i)||!Object.is(e[i],t[i]))return!1}return!0}function isAttrAnEvent(e){return"o"===e[0]&&"n"===e[1]}function clone(e){return extend({},e)}function isNullOrUndef(e){return e===undefined||null===e}function isInvalid(e){return isNullOrUndef(e)||!0===e||!1===e}function isVNode(e){return!isNullOrUndef(e)&&2===e.vtype}function isVText(e){return!isNullOrUndef(e)&&1===e.vtype}function isComponent(e){return!isInvalid(e)&&e.isReactComponent===EMPTY_OBJ}function isPortal(e,t){return(32&e)>0}function isComposite(e){return!isNullOrUndef(e)&&4===e.vtype}function isValidElement(e){return!isNullOrUndef(e)&&e.vtype}function noop$1(){}function attachEvent(e,t,n){if((t=fixEvent(e,t))!==ONPROPERTYCHANGE){var r=delegatedEvents.get(t);if(1===unbubbleEvents[t]){r||(r=new MapClass);var o=attachEventToNode(e,t,r);delegatedEvents.set(t,r),isFunction(n)&&r.set(e,{eventHandler:n,event:o})}else r||((r={items:new MapClass}).event=attachEventToDocument(doc,t,r),delegatedEvents.set(t,r)),isFunction(n)&&(isiOS&&(e.onclick=noop$1),r.items.set(e,n))}else processOnPropertyChangeEvent(e,n)}function detachEvent(e,t,n){if((t=fixEvent(e,t))!==ONPROPERTYCHANGE){var r=delegatedEvents.get(t);if(1===unbubbleEvents[t]&&r){var o=r.get(e);if(o){e.removeEventListener(parseEventName(t),o.event,!1);var i=r.size;r["delete"](e)&&0===i&&delegatedEvents["delete"](t)}}else if(r&&r.items){var a=r.items;a["delete"](e)&&0===a.size&&(doc.removeEventListener(parseEventName(t),r.event,!1),delegatedEvents["delete"](t))}}}function propertyChangeHandler(e){if("value"===e.propertyName){var t=e.target||e.srcElement,n=t.value;if(n!==propertyChangeActiveElementValue){propertyChangeActiveElementValue=n;var r=propertyChangeActiveHandlers[t.name];isFunction(r)&&r.call(t,e)}}}function processOnPropertyChangeEvent(e,t){propertyChangeActiveHandlers[e.name]=t,bindFocus||(e.addEventListener("focusin",(function(){unbindOnPropertyChange(),bindOnPropertyChange(e)}),!1),e.addEventListener("focusout",unbindOnPropertyChange,!1))}function bindOnPropertyChange(e){propertyChangeActiveElement=e,propertyChangeActiveElementValue=e.value,propertyChangeActiveElementValueProp=Object.getOwnPropertyDescriptor(e.constructor.prototype,"value"),Object.defineProperty(propertyChangeActiveElement,"value",{get:function(){return propertyChangeActiveElementValueProp.get.call(this)},set:function(e){propertyChangeActiveElementValue=e,propertyChangeActiveElementValueProp.set.call(this,e)}}),propertyChangeActiveElement.addEventListener("propertychange",propertyChangeHandler,!1)}function unbindOnPropertyChange(){propertyChangeActiveElement&&(delete propertyChangeActiveElement.value,propertyChangeActiveElement.removeEventListener("propertychange",propertyChangeHandler,!1),propertyChangeActiveElement=null,propertyChangeActiveElementValue=null,propertyChangeActiveElementValueProp=null)}function detectCanUseOnInputNode(e){var t=e.nodeName&&e.nodeName.toLowerCase(),n=e.type;return"input"===t&&/text|password/.test(n)||"textarea"===t}function fixEvent(e,t){return t="onDoubleClick"===t?"ondblclick":"onTouchTap"===t?"onclick":"onChange"===t&&detectCanUseOnInputNode(e)?ONINPUT in window?ONINPUT:ONPROPERTYCHANGE:t.toLowerCase()}function parseEventName(e){return e.substr(2)}function stopPropagation(){this.cancelBubble=!0,this.stopImmediatePropagation()}function dispatchEvent(e,t,n,r,o){var i=n.get(t);if((!i||(r--,o.currentTarget=t,Object.defineProperties(e,{nativeEvent:{value:e}}),i(e),!e.cancelBubble))&&r>0){var a=t.parentNode;if(null===a||"click"===e.type&&1===a.nodeType&&a.disabled)return;dispatchEvent(e,a,n,r,o)}}function attachEventToDocument(e,t,n){var r=function(e){var t=n.items.size;if(t>0){var r={currentTarget:e.target};try{Object.defineProperties(e,{currentTarget:{configurable:!0,get:function(){return r.currentTarget}},stopPropagation:{value:stopPropagation}})}catch(o){}dispatchEvent(e,e.target,n.items,t,r)}};return e.addEventListener(parseEventName(t),r,!1),r}function attachEventToNode(e,t,n){var r=function(t){var r=n.get(e);if(r&&r.eventHandler){var o={currentTarget:e};Object.defineProperties(t,{currentTarget:{configurable:!0,get:function(){return o.currentTarget}}}),r.eventHandler(t)}};return e.addEventListener(parseEventName(t),r,!1),r}function unmountChildren(e,t){if(isArray(e))for(var n=0,r=e.length;n<r;n++)unmount(e[n],t);else unmount(e,t)}function unmount(e,t){if(!isInvalid(e)){var n=e.vtype,r=e.dom;if((12&n)>0)options.beforeUnmount(e),e.destroy();else if((2&n)>0){var o=e.props,i=e.children,a=e.ref;unmountChildren(i);for(var s in o)isAttrAnEvent(s)&&detachEvent(r,s,o[s]);null!==a&&Ref.detach(e,a,r)}else 32&n&&unmountChildren(e.children,e.type);isNullOrUndef(t)||isNullOrUndef(r)||t.removeChild(r)}}function patch(e,t,n,r,o){var i,a=e.dom;if(isSameVNode(e,t)){var s=t.vtype;if(2&s)(o=isNullOrUndef(o)?e.isSvg:o)&&(t.isSvg=o),patchProps(a,t.props,e.props,e,o),patchChildren(a,e.children,t.children,r,o),null!==t.ref&&Ref.update(e,t,a),i=a;else if((12&s)>0)i=t.update(e,t,r),options.afterUpdate(t);else{if(1&s)return patchVText(e,t);32&s&&patchChildren(e.type,e.children,t.children,r,o)}t.dom=i||a}else isArray(e)&&isArray(t)?patchArrayChildren(a,e,t,r,!1):(unmount(e),i=createElement(t,o,r),null!==t&&(t.dom=i),null!==n&&n.replaceChild(i,a));return i}function patchArrayChildren(e,t,n,r,o){var i=t.length,a=n.length;if(0===i){if(a>0)for(var s=0;s<a;s++)mountChild(n[s],e,r,o)}else 0===a?(unmountChildren(t),e.textContent=""):isKeyed(t,n)?patchKeyedChildren(t,n,e,r,o,i,a):patchNonKeyedChildren(e,t,n,r,o,i,a)}function patchChildren(e,t,n,r,o){var i=isArray(t),a=isArray(n);i&&a?patchArrayChildren(e,t,n,r,o):i||a?i&&!a?patchArrayChildren(e,t,[n],r,o):!i&&a&&patchArrayChildren(e,[t],n,r,o):patch(t,n,e,r,o)}function patchNonKeyedChildren(e,t,n,r,o,i,a){for(var s=Math.min(i,a),l=0;l<s;)patch(t[l],n[l],e,r,o),l++;if(i<a)for(l=s;l<a;l++)null!==e&&e.appendChild(createElement(n[l],o,r));else if(i>a)for(l=s;l<i;l++)unmount(t[l],e)}function patchKeyedChildren(e,t,n,r,o,i,a){var s,l,p,c,u,d,f,h=i-1,m=a-1,v=0,g=0,y=e[v],C=t[g],x=e[h],E=t[m];e:{for(;y.key===C.key;){if(patch(y,C,n,r,o),v++,g++,v>h||g>m)break e;y=e[v],C=t[g]}for(;x.key===E.key;){if(patch(x,E,n,r,o),h--,m--,v>h||g>m)break e;x=e[h],E=t[m]}}if(v>h){if(g<=m)for(u=(d=m+1)<a?t[d].dom:null;g<=m;)f=t[g],g++,attachNewNode(n,createElement(f,o,r),u)}else if(g>m)for(;v<=h;)unmount(e[v++],n);else{var N=h-v+1,b=m-g+1,k=new Array(b);for(s=0;s<b;s++)k[s]=-1;var S=!1,P=0,A=0;if(b<=4||N*b<=16){for(s=v;s<=h;s++)if(p=e[s],A<b)for(l=g;l<=m;l++)if(c=t[l],p.key===c.key){k[l-g]=s,P>l?S=!0:P=l,patch(p,c,n,r,o),A++,e[s]=null;break}}else{var O=new MapClass;for(s=g;s<=m;s++)O.set(t[s].key,s);for(s=v;s<=h;s++)p=e[s],A<b&&(l=O.get(p.key))!==undefined&&(c=t[l],k[l-g]=s,P>l?S=!0:P=l,patch(p,c,n,r,o),A++,e[s]=null)}if(N===i&&0===A)for(unmountChildren(e),n.textContent="";g<b;)f=t[g],g++,attachNewNode(n,createElement(f,o,r),null);else{for(s=N-A;s>0;)null!==(p=e[v++])&&(unmount(p,n),s--);if(S){var T=lis(k);for(l=T.length-1,s=b-1;s>=0;s--)-1===k[s]?(d=(P=s+g)+1,attachNewNode(n,createElement(f=t[P],o,r),d<a?t[d].dom:null)):l<0||s!==T[l]?(d=(P=s+g)+1,attachNewNode(n,(f=t[P]).dom,d<a?t[d].dom:null)):l--}else if(A!==b)for(s=b-1;s>=0;s--)-1===k[s]&&(d=(P=s+g)+1,attachNewNode(n,createElement(f=t[P],o,r),d<a?t[d].dom:null))}}}function attachNewNode(e,t,n){isNullOrUndef(n)?e.appendChild(t):e.insertBefore(t,n)}function lis(e){var t=e.slice(),n=[];n.push(0);for(var r,o,i=0,a=e.length;i<a;++i)if(-1!==e[i]){var s=n[n.length-1];if(e[s]<e[i])t[i]=s,n.push(i);else{for(r=0,o=n.length-1;r<o;){var l=(r+o)/2|0;e[n[l]]<e[i]?r=l+1:o=l}e[i]<e[n[r]]&&(r>0&&(t[i]=n[r-1]),n[r]=i)}}for(o=n[(r=n.length)-1];r-- >0;)n[r]=o,o=t[o];return n}function isKeyed(e,t){return t.length>0&&!isNullOrUndef(t[0])&&!isNullOrUndef(t[0].key)&&e.length>0&&!isNullOrUndef(e[0])&&!isNullOrUndef(e[0].key)}function isSameVNode(e,t){return!(isInvalid(e)||isInvalid(t)||isArray(e)||isArray(t))&&(e.type===t.type&&e.vtype===t.vtype&&e.key===t.key)}function patchVText(e,t){var n=e.dom;if(null!==n){var r=t.text;return t.dom=n,e.text!==r&&(n.nodeValue=r),n}}function setStyle(e,t,n){if(!(isNullOrUndef(n)||isNumber(n)&&isNaN(n)))return"float"===t?(e.cssFloat=n,void(e.styleFloat=n)):void(e[t]=!isNumber(n)||IS_NON_DIMENSIONAL.test(t)?n:n+"px");e[t]=""}function patchEvent(e,t,n,r){t!==n&&(isFunction(t)&&detachEvent(r,e,t),attachEvent(r,e,n))}function patchStyle(e,t,n){var r,o,i=n.style;if(isString(t))i.cssText=t;else if(isNullOrUndef(e)||isString(e))for(r in t)setStyle(i,r,o=t[r]);else{for(r in t)(o=t[r])!==e[r]&&setStyle(i,r,o);for(r in e)isNullOrUndef(t[r])&&(i[r]="")}}function patchProp(e,t,n,r,o,i){if(n!==r||"value"===t){if("className"===t&&(t="class"),1===skipProps[t])return;if("class"!==t||i)if("dangerouslySetInnerHTML"===t){var a=n&&n.__html,s=r&&r.__html;a!==s&&(isNullOrUndef(s)||(isValidElement(o)&&o.children!==EMPTY_CHILDREN&&(unmountChildren(o.children),o.children=[]),e.innerHTML=s))}else if(isAttrAnEvent(t))patchEvent(t,n,r,e);else if("style"===t)patchStyle(n,r,e);else if("list"!==t&&"type"!==t&&!i&&t in e)setProperty(e,t,null==r?"":r),null!=r&&!1!==r||e.removeAttribute(t);else if(isNullOrUndef(r)||!1===r)e.removeAttribute(t);else{var l=SVGPropertyConfig.DOMAttributeNamespaces[t];if(i&&l)if(r)e.setAttributeNS(l,t,r);else{var p=t.indexOf(":"),c=p>-1?t.substr(p+1):t;e.removeAttributeNS(l,c)}else isFunction(r)||e.setAttribute(t,r)}else e.className=r}}function setProperty(e,t,n){try{e[t]=n}catch(r){}}function patchProps(e,t,n,r,o){for(var i in n){var a=n[i];isNullOrUndef(t[i])&&!isNullOrUndef(a)&&(isAttrAnEvent(i)?detachEvent(e,i,a):"dangerouslySetInnerHTML"===i?e.textContent="":"className"===i?e.removeAttribute("class"):e.removeAttribute(i))}for(var s in t)patchProp(e,s,n[s],t[s],r,o)}function createElement(e,t,n,r){var o;if(isValidElement(e)){var i=e.vtype;12&i?(o=e.init(n,r),options.afterMount(e)):1&i?(o=doc.createTextNode(e.text),e.dom=o):2&i?o=mountVNode$1(e,t,n,r):16&i?o=e.dom=doc.createTextNode(""):isPortal(i,e)&&(e.type.appendChild(createElement(e.children,t,n,r)),o=doc.createTextNode(""))}else if(isString(e)||isNumber(e))o=doc.createTextNode(e);else if(isNullOrUndef(e)||isBoolean(e))o=doc.createTextNode("");else{if(!isArray(e))throw new Error("Unsupported VNode.");o=doc.createDocumentFragment(),e.forEach((function(e){if(!isInvalid(e)){var i=createElement(e,t,n,r);i&&o.appendChild(i)}}))}return o}function mountVNode$1(e,t,n,r){e.isSvg?t=!0:"svg"===e.type?t=!0:isSupportSVG||(t=!1),t&&(e.namespace=SVG_NAMESPACE,e.isSvg=t);var o=t?doc.createElementNS(e.namespace,e.type):doc.createElement(e.type);setProps(o,e,t),"foreignObject"===e.type&&(t=!1);var i=e.children;if(isArray(i))for(var a=0,s=i.length;a<s;a++)mountChild(i[a],o,n,t,r);else mountChild(i,o,n,t,r);return e.dom=o,null!==e.ref&&Ref.attach(e,e.ref,o),o}function mountChild(e,t,n,r,o){e.parentContext=n||EMPTY_OBJ;var i=createElement(e,r,n,o);null!==i&&t.appendChild(i)}function setProps(e,t,n){var r=t.props;for(var o in r)patchProp(e,o,null,r[o],null,n)}function createVText(e){return{text:e,vtype:1,dom:null}}function createVoid(){return{dom:null,vtype:16}}function errorCatcher(e,t){try{return e()}catch(n){errorHandler(t,n)}}function errorHandler(e,t){for(var n;;){if(isFunction(e.componentDidCatch)){n=e;break}if(!e._parentComponent)break;e=e._parentComponent}if(!n)throw t;var r=n._disable;n._disable=!1,n.componentDidCatch(t),n._disable=r}function ensureVirtualNode(e){return isNumber(e)||isString(e)?createVText(e):isInvalid(e)?createVoid():e}function mountVNode(e,t,n){return createElement(e,!1,t,n)}function mountComponent(e,t,n){var r=e.ref;e.component=new e.type(e.props,t);var o=e.component;o.vnode=e,isComponent(n)&&(o._parentComponent=n),isFunction(o.componentWillMount)&&(errorCatcher((function(){o.componentWillMount()}),o),o.state=o.getState(),o.clearCallBacks()),o._dirty=!1;var i=renderComponent(o);i.parentVNode=e,o._rendered=i,isFunction(o.componentDidMount)&&readyComponents.push(o),isNullOrUndef(r)||Ref.attach(e,r,e.dom);var a=e.dom=mountVNode(i,getChildContext(o,t),o);return o._disable=!1,a}function mountStatelessComponent(e,t){var n=e.type(e.props,t);return e._rendered=ensureVirtualNode(n),e._rendered.parentVNode=e,e.dom=mountVNode(e._rendered,t)}function getChildContext(e,t){return void 0===t&&(t=EMPTY_OBJ),e.getChildContext?extend(clone(t),e.getChildContext()):clone(t)}function renderComponent(e){Current.current=e;var t;return errorCatcher((function(){t=e.render()}),e),t=ensureVirtualNode(t),Current.current=null,t}function flushMount(){if(readyComponents.length){var e=readyComponents.slice(0);readyComponents.length=0,e.forEach((function(e){isFunction(e)?e():e.componentDidMount&&errorCatcher((function(){e.componentDidMount()}),e)}))}}function reRenderComponent(e,t){var n=t.component=e.component,r=t.props,o=t.context;return n._disable=!0,isFunction(n.componentWillReceiveProps)&&errorCatcher((function(){n.componentWillReceiveProps(r,o)}),n),n._disable=!1,n.prevProps=n.props,n.prevState=n.state,n.prevContext=n.context,n.props=r,n.context=o,isNullOrUndef(t.ref)||Ref.update(e,t),updateComponent(n)}function reRenderStatelessComponent(e,t,n,r){var o=e._rendered,i=t.type(t.props,n);return i.parentVNode=t,t._rendered=i,t.dom=patch(o,i,o&&o.dom||r,n)}function updateComponent(e,t){void 0===t&&(t=!1);var n=e.vnode,r=n.dom,o=e.props,i=e.getState(),a=e.context,s=e.prevProps||o,l=e.prevState||e.state,p=e.prevContext||a;e.props=s,e.context=p;var c=!1;if(!t&&isFunction(e.shouldComponentUpdate)&&!1===e.shouldComponentUpdate(o,i,a)?c=!0:isFunction(e.componentWillUpdate)&&errorCatcher((function(){e.componentWillUpdate(o,i,a)}),e),e.props=o,e.state=i,e.context=a,e._dirty=!1,!c){var u=e._rendered,d=renderComponent(e);d.parentVNode=n;var f=getChildContext(e,a),h=u.dom&&u.dom.parentNode;for(r=n.dom=patch(u,d,h||null,f),e._rendered=d,isFunction(e.componentDidUpdate)&&errorCatcher((function(){e.componentDidUpdate(s,l,a)}),e),options.afterUpdate(n);n=n.parentVNode;)(12&n.vtype)>0&&(n.dom=r)}return e.prevProps=e.props,e.prevState=e.state,e.prevContext=e.context,e.clearCallBacks(),flushMount(),r}function unmountComponent(e){var t=e.component;isFunction(t.componentWillUnmount)&&errorCatcher((function(){t.componentWillUnmount()}),t),t._disable=!0,unmount(t._rendered),isNullOrUndef(e.ref)||Ref.detach(e,e.ref,e.dom)}function unmountStatelessComponent(e){unmount(e._rendered)}function enqueueRender(e){!e._dirty&&(e._dirty=!0)&&1===items.push(e)&&nextTick(rerender)}function rerender(){var e,t=items;for(items=[];e=t.pop();)e._dirty&&updateComponent(e)}function render(e,t,n){if(!t)throw new Error(t+" should be a DOM Element");var r,o=t._component;return options.roots.push(e),o!==undefined?(options.roots=options.roots.filter((function(e){return e!==o})),r=patch(o,e,t,{})):(r=mountVNode(e,{}),t.appendChild(r)),t&&(t._component=e),flushMount(),n&&n(),isComposite(e)?e.component:r}function createVNode(e,t,n,r,o,i,a){return{type:e,key:r||null,vtype:2,props:t||EMPTY_OBJ,children:n,namespace:o||null,_owner:i,dom:null,ref:a||null}}function h(e,t,n){var r;return t.children&&(n||(n=t.children)),isArray(n)?addChildren(r=[],n,e):isString(n)||isNumber(n)?n=createVText(String(n)):isValidElement(n)||(n=EMPTY_CHILDREN),t.children=r!==undefined?r:n,createVNode(e,t,t.children,t.key,t.namespace,t.owner,t.ref)}function addChildren(e,t,n){if(isString(t)||isNumber(t))e.push(createVText(String(t)));else if(isValidElement(t))e.push(t);else if(isArray(t))for(var r=0;r<t.length;r++)addChildren(e,t[r],n);else e.push(createVoid())}function transformPropsForRealTag(e,t){var n={};for(var r in t){var o=t[r];if("defaultValue"!==r){var i=SVGPropertyConfig.DOMAttributeNames[r];i&&i!==r?n[i]=o:n[r]=o}else n.value=t.value||t.defaultValue}return n}function transformPropsForComponent(e,t){var n={};for(var r in e){var o=e[r];n[r]=o}if(t)for(var i in t)isUndefined(n[i])&&(n[i]=t[i]);return n}function createElement$2(e,t){for(var n=[],r=arguments.length-2;r-- >0;)n[r]=arguments[r+2];var o=n;n&&(1===n.length?o=n[0]:0===n.length&&(o=undefined));var i;return isString(e)?(i=transformPropsForRealTag(e,t),i.owner=Current.current,h(e,i,o)):isFunction(e)?((i=transformPropsForComponent(t,e.defaultProps)).children&&i.children!==EMPTY_CHILDREN||(i.children=o||0===o?o:EMPTY_CHILDREN),i.owner=Current.current,e.prototype&&e.prototype.render?new ComponentWrapper(e,i):new StateLessComponent(e,i)):e}function cloneElement(e,t){for(var n=[],r=arguments.length-2;r-- >0;)n[r]=arguments[r+2];if(isVText(e))return createVText(e.text);if(isString(e)||isNumber(e))return createVText(e);if(isInvalid(e)||!isInvalid(e)&&isPortal(e.vtype,e)||e&&16&e.vtype)return createVoid();var o=clone(extend(clone(e.props),t));e.namespace&&(o.namespace=e.namespace),4&e.vtype&&!isNullOrUndef(e.ref)&&(o.ref=e.ref);var i=(arguments.length>2?[].slice.call(arguments,2):e.children||o.children)||[];if(i.length&&1===i.length&&(i=n[0]),isArray(e))return e.map((function(e){return cloneElement(e)}));var a=createElement$2(e.type,o);if(isArray(i)){var s=i.map((function(e){return cloneElement(e,e.props)}));0===s.length&&(s=EMPTY_CHILDREN),isVNode(a)&&(a.children=s),a.props.children=s}else i&&(isVNode(a)&&(a.children=cloneElement(i)),a.props.children=cloneElement(i,i.props));return a}function flatten(e,t){for(var n=0,r=e.length;n<r;n++){var o=e[n];isArray(o)?flatten(o,t):t.push(o)}return t}function hydrate(e,t,n){if(null!==t){for(var r=t.lastChild;r;){var o=r.previousSibling;t.removeChild(r),r=o}return render(e,t,n)}}function createPortal(e,t){return{type:t,vtype:32,children:e,dom:null}}function unmountComponentAtNode(e){var t=e._component;return!!isValidElement(t)&&(unmount(t,e),delete e._component,!0)}function findDOMNode(e){return isInvalid(e)?null:isComponent(e)?e.vnode.dom:isValidElement(e)?e.dom:e}function createFactory(e){return createElement$2.bind(null,e)}function unstable_renderSubtreeIntoContainer(e,t,n,r){var o=render(createElement$2(WrapperComponent,{context:getChildContext(e,e.context)},t),n);return r&&r.call(o),o}function isValidElement$1(e){return isValidElement(e)&&(6&e.vtype)>0}function getShim(){return shim}var global=(function(){var e;if(void 0!==global)e=global;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(t){throw new Error("global object is unavailable in this environment")}return e})(),isBrowser="undefined"!=typeof window,fakeDoc={createElement:noop,createElementNS:noop,createTextNode:noop},doc=isBrowser?document:fakeDoc,isSupportSVG=isFunction(doc.createAttributeNS),isArray=Array.isArray,canUsePromise="Promise"in global,resolved;canUsePromise&&(resolved=Promise.resolve());var nextTick=function(e){for(var t=[],n=arguments.length-1;n-- >0;)t[n]=arguments[n+1];if(e=isFunction(e)?e.bind.apply(e,[null].concat(t)):e,canUsePromise)return resolved.then(e);("requestAnimationFrame"in global?requestAnimationFrame:setTimeout)(e)};Object.is=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!==e&&t!==t};var SimpleMap=function(){this.cache=[],this.size=0};SimpleMap.prototype.set=function(e,t){var n=this,r=this.cache.length;if(!r)return this.cache.push({k:e,v:t}),void(this.size+=1);for(var o=0;o<r;o++){var i=n.cache[o];if(i.k===e)return void(i.v=t)}this.cache.push({k:e,v:t}),this.size+=1},SimpleMap.prototype.get=function(e){var t=this,n=this.cache.length;if(n)for(var r=0;r<n;r++){var o=t.cache[r];if(o.k===e)return o.v}},SimpleMap.prototype.has=function(e){var t=this,n=this.cache.length;if(!n)return!1;for(var r=0;r<n;r++)if(t.cache[r].k===e)return!0;return!1},SimpleMap.prototype["delete"]=function(e){for(var t=this,n=this.cache.length,r=0;r<n;r++)if(t.cache[r].k===e)return t.cache.splice(r,1),t.size-=1,!0;return!1},SimpleMap.prototype.clear=function(){var e=this,t=this.cache.length;if(this.size=0,t)for(;t;)e.cache.pop(),t--};var MapClass="Map"in global?Map:SimpleMap,extend="assign"in Object?function(e,t){return t?(Object.assign(e,t),e):e}:function(e,t){if(!t)return e;for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},Current={current:null},EMPTY_CHILDREN=[],EMPTY_OBJ={},VType;!(function(e){e[e.Text=1]="Text",e[e.Node=2]="Node",e[e.Composite=4]="Composite",e[e.Stateless=8]="Stateless",e[e.Void=16]="Void",e[e.Portal=32]="Portal"})(VType||(VType={}));var Ref={update:function(e,t,n){var r=null!=e&&e.ref,o=null!=t&&t.ref;r!==o&&(this.detach(e,r,e.dom),this.attach(t,o,n))},attach:function(e,t,n){var r=isComposite(e)?e.component:n;if(isFunction(t))t(r);else if(isString(t)){var o=e._owner;o&&isFunction(o.render)&&(o.refs[t]=r)}},detach:function(e,t,n){var r=isComposite(e)?e.component:n;if(isFunction(t))t(null);else if(isString(t)){var o=e._owner;o.refs[t]===r&&isFunction(o.render)&&delete o.refs[t]}}},ONINPUT="oninput",ONPROPERTYCHANGE="onpropertychange",isiOS=isBrowser&&!!navigator.platform&&/iPad|iPhone|iPod/.test(navigator.platform),delegatedEvents=new MapClass,unbubbleEvents={onmousemove:1,ontouchmove:1,onmouseleave:1,onmouseenter:1,onload:1,onunload:1,onscroll:1,onfocus:1,onblur:1,onrowexit:1,onbeforeunload:1,onstop:1,ondragdrop:1,ondragenter:1,ondragexit:1,ondraggesture:1,ondragover:1,oncontextmenu:1,onerror:1,onabort:1,oncanplay:1,oncanplaythrough:1,ondurationchange:1,onemptied:1,onended:1,onloadeddata:1,onloadedmetadata:1,onloadstart:1,onencrypted:1,onpause:1,onplay:1,onplaying:1,onprogress:1,onratechange:1,onseeking:1,onseeked:1,onstalled:1,onsuspend:1,ontimeupdate:1,onvolumechange:1,onwaiting:1};unbubbleEvents[ONPROPERTYCHANGE]=1;var bindFocus=!1;if(isBrowser&&navigator.userAgent.indexOf("MSIE 9")>=0){var elements=[],values=[];doc.addEventListener("selectionchange",(function(){var e=doc.activeElement;if(detectCanUseOnInputNode(e)){var t=elements.indexOf(e),n=elements[t]||elements.push(e);if(n.value!==values[t]){var r=doc.createEvent("CustomEvent");r.initCustomEvent("input",!0,!0,undefined),values[t]=n.value,e.dispatchEvent(r)}}}))}"undefined"==typeof Event||Event.prototype.persist||(Event.prototype.persist=noop$1);var propertyChangeActiveElement,propertyChangeActiveElementValue,propertyChangeActiveElementValueProp,propertyChangeActiveHandlers={},options={afterMount:noop$1,afterUpdate:noop$1,beforeUnmount:noop$1,roots:[],debug:!1},NS={ev:"http://www.w3.org/2001/xml-events",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace"},ATTRS={accentHeight:"accent-height",accumulate:0,additive:0,alignmentBaseline:"alignment-baseline",allowReorder:"allowReorder",alphabetic:0,amplitude:0,arabicForm:"arabic-form",ascent:0,attributeName:"attributeName",attributeType:"attributeType",autoReverse:"autoReverse",azimuth:0,baseFrequency:"baseFrequency",baseProfile:"baseProfile",baselineShift:"baseline-shift",bbox:0,begin:0,bias:0,by:0,calcMode:"calcMode",capHeight:"cap-height",clip:0,clipPath:"clip-path",clipRule:"clip-rule",clipPathUnits:"clipPathUnits",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",contentScriptType:"contentScriptType",contentStyleType:"contentStyleType",cursor:0,cx:0,cy:0,d:0,decelerate:0,descent:0,diffuseConstant:"diffuseConstant",direction:0,display:0,divisor:0,dominantBaseline:"dominant-baseline",dur:0,dx:0,dy:0,edgeMode:"edgeMode",elevation:0,enableBackground:"enable-background",end:0,evEvent:"ev:event",exponent:0,externalResourcesRequired:"externalResourcesRequired",fill:0,fillOpacity:"fill-opacity",fillRule:"fill-rule",filter:0,filterRes:"filterRes",filterUnits:"filterUnits",floodColor:"flood-color",floodOpacity:"flood-opacity",focusable:0,fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",format:0,from:0,fx:0,fy:0,g1:0,g2:0,glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",glyphRef:"glyphRef",gradientTransform:"gradientTransform",gradientUnits:"gradientUnits",hanging:0,horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",ideographic:0,imageRendering:"image-rendering","in":0,in2:0,intercept:0,k:0,k1:0,k2:0,k3:0,k4:0,kernelMatrix:"kernelMatrix",kernelUnitLength:"kernelUnitLength",kerning:0,keyPoints:"keyPoints",keySplines:"keySplines",keyTimes:"keyTimes",lengthAdjust:"lengthAdjust",letterSpacing:"letter-spacing",lightingColor:"lighting-color",limitingConeAngle:"limitingConeAngle",local:0,markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",markerHeight:"markerHeight",markerUnits:"markerUnits",markerWidth:"markerWidth",mask:0,maskContentUnits:"maskContentUnits",maskUnits:"maskUnits",mathematical:0,mode:0,numOctaves:"numOctaves",offset:0,opacity:0,operator:0,order:0,orient:0,orientation:0,origin:0,overflow:0,overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pathLength:"pathLength",patternContentUnits:"patternContentUnits",patternTransform:"patternTransform",patternUnits:"patternUnits",pointerEvents:"pointer-events",points:0,pointsAtX:"pointsAtX",pointsAtY:"pointsAtY",pointsAtZ:"pointsAtZ",preserveAlpha:"preserveAlpha",preserveAspectRatio:"preserveAspectRatio",primitiveUnits:"primitiveUnits",r:0,radius:0,refX:"refX",refY:"refY",renderingIntent:"rendering-intent",repeatCount:"repeatCount",repeatDur:"repeatDur",requiredExtensions:"requiredExtensions",requiredFeatures:"requiredFeatures",restart:0,result:0,rotate:0,rx:0,ry:0,scale:0,seed:0,shapeRendering:"shape-rendering",slope:0,spacing:0,specularConstant:"specularConstant",specularExponent:"specularExponent",speed:0,spreadMethod:"spreadMethod",startOffset:"startOffset",stdDeviation:"stdDeviation",stemh:0,stemv:0,stitchTiles:"stitchTiles",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",string:0,stroke:0,strokeDasharray:"stroke-dasharray",strokeDashoffset:"stroke-dashoffset",strokeLinecap:"stroke-linecap",strokeLinejoin:"stroke-linejoin",strokeMiterlimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",surfaceScale:"surfaceScale",systemLanguage:"systemLanguage",tableValues:"tableValues",targetX:"targetX",targetY:"targetY",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",textLength:"textLength",to:0,transform:0,u1:0,u2:0,underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicode:0,unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",values:0,vectorEffect:"vector-effect",version:0,vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",viewBox:"viewBox",viewTarget:"viewTarget",visibility:0,widths:0,wordSpacing:"word-spacing",writingMode:"writing-mode",x:0,xHeight:"x-height",x1:0,x2:0,xChannelSelector:"xChannelSelector",xlinkActuate:"xlink:actuate",xlinkArcrole:"xlink:arcrole",xlinkHref:"xlink:href",xlinkRole:"xlink:role",xlinkShow:"xlink:show",xlinkTitle:"xlink:title",xlinkType:"xlink:type",xmlBase:"xml:base",xmlId:"xml:id",xmlns:0,xmlnsXlink:"xmlns:xlink",xmlLang:"xml:lang",xmlSpace:"xml:space",y:0,y1:0,y2:0,yChannelSelector:"yChannelSelector",z:0,zoomAndPan:"zoomAndPan"},SVGPropertyConfig={Properties:{},DOMAttributeNamespaces:{"ev:event":NS.ev,"xlink:actuate":NS.xlink,"xlink:arcrole":NS.xlink,"xlink:href":NS.xlink,"xlink:role":NS.xlink,"xlink:show":NS.xlink,"xlink:title":NS.xlink,"xlink:type":NS.xlink,"xml:base":NS.xml,"xml:id":NS.xml,"xml:lang":NS.xml,"xml:space":NS.xml},DOMAttributeNames:{}};Object.keys(ATTRS).forEach((function(e){SVGPropertyConfig.Properties[e]=0,ATTRS[e]&&(SVGPropertyConfig.DOMAttributeNames[e]=ATTRS[e])}));var skipProps={children:1,key:1,ref:1,owner:1},IS_NON_DIMENSIONAL=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,SVG_NAMESPACE="http://www.w3.org/2000/svg",readyComponents=[],items=[],Component=function(e,t){this._dirty=!0,this._disable=!0,this._pendingStates=[],this.state||(this.state={}),this.props=e||{},this.context=t||EMPTY_OBJ,this.refs={}};Component.prototype.setState=function(e,t){e&&(this._pendingStates=this._pendingStates||[]).push(e),isFunction(t)&&(this._pendingCallbacks=this._pendingCallbacks||[]).push(t),this._disable||enqueueRender(this)},Component.prototype.getState=function(){var e=this,t=this,n=t._pendingStates,r=t.state,o=t.props;if(!n.length)return r;var i=clone(r),a=n.concat();return this._pendingStates.length=0,a.forEach((function(t){isFunction(t)&&(t=t.call(e,r,o)),extend(i,t)})),i},Component.prototype.clearCallBacks=function(){var e=this;if(isArray(this._pendingCallbacks))for(;this._pendingCallbacks.length;)e._pendingCallbacks.pop().call(e)},Component.prototype.forceUpdate=function(e){isFunction(e)&&(this._pendingCallbacks=this._pendingCallbacks||[]).push(e),updateComponent(this,!0)},Component.prototype.render=function(e,t,n){},Component.prototype.isReactComponent=EMPTY_OBJ;var PureComponent=(function(e){function t(){e.apply(this,arguments),this.isPureComponent=!0}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.shouldComponentUpdate=function(e,t){return!shallowEqual(this.props,e)||!shallowEqual(this.state,t)},t})(Component),ComponentWrapper=function(e,t){this.vtype=4,this.type=e,this.name=e.name||e.toString().match(/^function\s*([^\s(]+)/)[1],e.displayName=this.name,this._owner=t.owner,delete t.owner,(this.ref=t.ref)&&delete t.ref,this.props=t,this.key=t.key||null,this.dom=null};ComponentWrapper.prototype.init=function(e,t){return mountComponent(this,e,t)},ComponentWrapper.prototype.update=function(e,t,n,r){return this.context=n,reRenderComponent(e,this)},ComponentWrapper.prototype.destroy=function(){unmountComponent(this)};var StateLessComponent=function(e,t){this.vtype=8,this.type=e,this._owner=t.owner,delete t.owner,this.props=t,this.key=t.key};StateLessComponent.prototype.init=function(e){return mountStatelessComponent(this,e)},StateLessComponent.prototype.update=function(e,t,n){var r=t.props,o=t.context,i=r.onShouldComponentUpdate;return isFunction(i)&&!i(e.props,r,o)?(t._rendered=e._rendered,e.dom):reRenderStatelessComponent(e,this,n,e.dom)},StateLessComponent.prototype.destroy=function(){unmountStatelessComponent(this)};var Children={map:function(e,t,n){return isNullOrUndef(e)?e:(e=Children.toArray(e),n&&n!==e&&(t=t.bind(n)),e.map(t))},forEach:function(e,t,n){if(!isNullOrUndef(e)){e=Children.toArray(e),n&&n!==e&&(t=t.bind(n));for(var r=0,o=e.length;r<o;r++)t(isInvalid(e[r])?null:e[r],r,e)}},count:function(e){return(e=Children.toArray(e)).length},only:function(e){if(1!==(e=Children.toArray(e)).length)throw new Error("Children.only() expects only one child.");return e[0]},toArray:function(e){if(isNullOrUndef(e))return[];if(isArray(e)){var t=[];return flatten(e,t),t}return EMPTY_CHILDREN.concat(e)}},version="15.4.2",WrapperComponent=(function(e){function t(){e.apply(this,arguments)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.getChildContext=function(){return this.props.context},t.prototype.render=function(){return this.props.children},t})(Component),unstable_batchedUpdates=nextTick,shim=noop$1;shim.isRequired=noop$1;var PropTypes={array:shim,bool:shim,func:shim,number:shim,object:shim,string:shim,any:shim,arrayOf:getShim,element:shim,instanceOf:getShim,node:shim,objectOf:getShim,oneOf:getShim,oneOfType:getShim,shape:getShim,exact:getShim,PropTypes:{},checkPropTypes:noop$1};PropTypes.PropTypes=PropTypes;var index={Children:Children,Component:Component,PureComponent:PureComponent,createElement:createElement$2,cloneElement:cloneElement,render:render,nextTick:nextTick,options:options,findDOMNode:findDOMNode,isValidElement:isValidElement$1,unmountComponentAtNode:unmountComponentAtNode,createPortal:createPortal,unstable_renderSubtreeIntoContainer:unstable_renderSubtreeIntoContainer,hydrate:hydrate,createFactory:createFactory,unstable_batchedUpdates:unstable_batchedUpdates,version:version,PropTypes:PropTypes};exports.Children=Children,exports.Component=Component,exports.PureComponent=PureComponent,exports.createElement=createElement$2,exports.cloneElement=cloneElement,exports.render=render,exports.nextTick=nextTick,exports.options=options,exports.findDOMNode=findDOMNode,exports.isValidElement=isValidElement$1,exports.unmountComponentAtNode=unmountComponentAtNode,exports.createPortal=createPortal,exports.unstable_renderSubtreeIntoContainer=unstable_renderSubtreeIntoContainer,exports.hydrate=hydrate,exports.createFactory=createFactory,exports.unstable_batchedUpdates=unstable_batchedUpdates,exports.version=version,exports.PropTypes=PropTypes,exports["default"]=index;