{"version":3,"sources":["../../../src/DOM/recycling.js","../../../src/util/isVoid.js","../../../src/util/isStringOrNumber.js","../../../src/util/isSVGElement.js","../../../src/util/isMathMLElement.js","../../../src/util/isArray.js","../../../src/core/variables.js","../../../src/util/ExecutionEnvironment.js","../../../src/util/isSVG.js","../../../src/util/inArray.js","../../../src/util/noop.js","../../../src/util/styleAccessor.js","../../../src/util/isValidAttribute.js","../../../src/DOM/DOMRegistry.js","../../../src/DOM/index.js","../../../src/shared/eventMapping.js","../../../src/DOM/events/infernoNodeID.js","../../../src/shared/listenersStorage.js","../../../src/shared/focusEvents.js","../../../src/shared/eventHooks.js","../../../src/DOM/events/setHandler.js","../../../src/DOM/events/EventRegistry.js","../../../src/DOM/events/eventInterface.js","../../../src/util/isFormElement.js","../../../src/DOM/getFormElementType.js","../../../src/DOM/getFormElementValues.js","../../../src/shared/setupHooks.js","../../../src/DOM/events/createListenerArguments.js","../../../src/DOM/events/addRootListener.js","../../../src/DOM/events/createEventListener.js","../../../src/DOM/events/addListener.js","../../../src/shared/eventListener.js","../../../src/DOM/events/removeListener.js","../../../src/DOM/addAttributes.js","../../../src/DOM/recreateRootNode.js","../../../src/DOM/shapes/rootNodeWithDynamicText.js","../../../src/DOM/shapes/nodeWithDynamicText.js","../../../src/DOM/shapes/rootNodeWithStaticChild.js","../../../src/DOM/shapes/nodeWithStaticChild.js","../../../src/shared/updateAndAppendDynamicChildren.js","../../../src/util/appendText.js","../../../src/core/removeChild.js","../../../src/core/replaceChild.js","../../../src/DOM/domMutate.js","../../../src/DOM/shapes/rootNodeWithDynamicChild.js","../../../src/DOM/recreateNode.js","../../../src/DOM/shapes/nodeWithDynamicChild.js","../../../src/shared/addShapeChildren.js","../../../src/DOM/shapes/rootNodeWithDynamicSubTreeForChildren.js","../../../src/DOM/shapes/nodeWithDynamicSubTreeForChildren.js","../../../src/DOM/shapes/dynamicNode.js","../../../src/DOM/shapes/rootNodeWithComponent.js","../../../src/DOM/shapes/nodeWithComponent.js","../../../src/DOM/shapes/rootDynamicTextNode.js","../../../src/DOM/shapes/rootVoidNode.js","../../../src/DOM/shapes/voidNode.js","../../../src/DOM/hydration.js","../../../src/DOM/shapes/rootStaticNode.js","../../../src/DOM/shapes/staticNode.js","../../../src/DOM/createTree.js","../../../src/DOM/createRef.js","../../../src/DOM/createFragment.js","../../../src/DOM/rendering.js","../../inferno-dom/src/index.js"],"names":["recyclingEnabled","DOMRegistry","styleAccessor","isSVG","eventMapping","global","updateComponent","pool","item","key","tree","dom","push","keyedPool","recycle","treeLifecycle","context","recyclableItem","undefined","keyPool","pop","update","rootNode","isRecyclingEnabled","isSVGElement","nodeName","isMathMLElement","getValueWithIndex","index","v0","v1","values","getTypeFromValue","value","isStringOrNumber","isVoid","ValueTypes","TEXT","isArray","ARRAY","babelHelpers_typeof","create","TREE","FRAGMENT","Object","keys","length","EMPTY_OBJECT","FUNCTION","getValueForProps","props","newProps","name","val","overrideItem","removeValueTree","i","child","remove","inArray","arr","len","isValidAttribute","strings","character","isNaN","toUpperCase","toLowerCase","checkBitmask","bitmask","infernoNodeID","node","get","INFERNO_PROP","counter","setHandler","type","handler","hook","eventHooks","hooked","originalHandler","getFocusBlur","nativeFocus","fn","_type","this","e","addRootListener","document","addEventListener","focusEvents","stopPropagation","_isPropagationStopped","_stopPropagation","cancelBubble","isPropagationStopped","stopImmediatePropagation","_isImmediatePropagationStopped","_stopImmediatePropagation","isImmediatePropagationStopped","preventDefault","_isDefaultPrevented","_preventDefault","returnValue","isDefaultPrevented","eventInterface","nativeEvent","isFormElement","getFormElementType","multiple","getAttribute","selectValues","result","selectedIndex","options","option","selected","disabled","parentNode","getFormElementValues","checked","createListenerArguments","target","event","tagHooks","setupHooks","registry","EventRegistry","nodeType","listenersCount","_counter","listeners","listener","nodeID","args","defaultArgs","listenersStorage","numArgs","apply","createEventListener","addListener","vNode","domNode","Error","_enabled","_focusBlur","_bubbles","destroy","removeListener","removeEventListener","eventListener","addDOMStaticAttributes","attrs","styleUpdates","attrName","attrVal","template","setProperty","setCSS","fastPropSet","setAttribute","className","element","addDOMDynamicAttributes","dynamicAttrs","clearListeners","updateDOMDynamicAttributes","lastItem","nextItem","nextDynamicAttrs","lastDynamicAttrs","removeProperty","styleName","lastAttrVal","nextAttrVal","recreateRootNode","lastDomNode","lastTree","replaceChild","recreateRootNodeFromHydration","hydrateNode","createRootNodeWithDynamicText","templateNode","valueIndex","cloneNode","appendChild","createTextNode","textContent","id","nextValue","lastValue","firstChild","nodeValue","createNodeWithDynamicText","domNodeMap","createRootNodeWithStaticChild","createNodeWithStaticChild","updateAndAppendDynamicChildren","appendText","removeChild","childNode","replaceNode","updateKeyed","items","oldItems","parentNextNode","stop","startIndex","oldStartIndex","itemsLength","oldItemsLength","startItem","endIndex","oldEndIndex","oldStartItem","endItem","oldEndItem","nextNode","oldItem","outer","insertOrAppend","oldItemsMap","oldNextItem","nextSibling","updateNonKeyed","domNodeList","Math","max","splice","newNode","insertBefore","innerHTML","createVirtualList","childNodeList","createDocumentFragment","keyedChildren","childType","childDomNode","updateVirtualList","nextDomNode","createRootNodeWithDynamicChild","childItem","textNode","childNodes","oldTree","recreateNode","createNodeWithDynamicChild","_tree","addShapeChildren","subTreeForChildren","subTree","createRootNodeWithDynamicSubTreeForChildren","newDomNode","createNodeWithDynamicSubTreeForChildren","createDynamicNode","virtualList","addTreeSuccessListener","nextType","lastType","createRootNodeWithComponent","componentIndex","currentItem","statelessRender","instance","toUseItem","Component","prototype","render","componentWillMount","nextRender","childContext","getChildContext","fragmentFirstChild","babelHelpers_extends","parent","_lastRender","DocumentFragment","componentDidMount","forceUpdate","call","constructor","prevProps","prevState","state","nextState","nextProps","_newDomNode","componentWillUnmount","createNodeWithComponent","createRootDynamicTextNode","createRootVoidNode","createVoidNode","canHydrate","hasAttribute","purgeCommentNodes","parentDom","validateHydrateNodeChildren","templateNodeChild","hydrateNodeChild","validateHydrateNode","createRootStaticNode","hydrate","createStaticNode","createElement","schema","domNamespace","MathNamespace","SVGNamespace","tag","is","xmlns","namespaceURI","createElementNS","namespace","createStaticAttributes","excludeAttrs","newAttrs","attr","createStaticTreeChildren","children","createStaticTreeNode","staticNode","Element","text","createDOMTree","isRoot","dynamicNodeMap","dynamicFlags","NODE","ObjectTypes","VARIABLE","lastAttrs","_attrs","_children","ATTRS","CHILDREN","childNodeDynamicFlags","createRef","createDOMFragment","treeSuccessListeners","removeTreeSuccessListener","treeSuccessListener","activeNode","activeElement","body","focus","getRootFragmentAtNode","rootFragmentsLength","rootFragments","rootFragment","removeRootFragment","fragment","x","Array","canUseDOM","window","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","canUseViewport","screen","canUseSymbol","Symbol","implementation","_document","hasFeature","isSVG$1","HOOK","reDash","unitlessProperties","animation-iteration-count","box-flex","box-flex-group","column-count","counter-increment","fill-opacity","flex","flex-grow","flex-order","flex-positive","flex-shrink","float","font-weight","grid-column","line-height","line-clamp","opacity","order","orphans","stop-opacity","stroke-dashoffset","stroke-opacity","stroke-width","tab-size","transform","transform-origin","widows","z-index","zoom","directions","dirMap","prefix","postfix","map","dir","shortCuts","font","padding","margin","border-width","border-style","cssToJSName","cssName","replace","str","documentElement","computed","getComputedStyle","slice","style","forEach","propName","substr","indexOf","stylePropName","unPrefixed","unitless","shorthand","lenMap",1,"prop",2,4,"cssText","split","noop","PROPERTY","BOOLEAN","NUMERIC_VALUE","POSITIVE_NUMERIC_VALUE","xlink","xml","DOMAttributeNamespaces","xlink:actuate","xlink:arcrole","xlink:href","xlink:role","xlink:show","xlink:title","xlink:type","xml:base","xml:lang","xml:space","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","DOMAttributeNames","acceptCharset","htmlFor","httpEquiv","clipPath","fillOpacity","fontFamily","fontSize","markerEnd","markerMid","markerStart","stopColor","stopOpacity","strokeDasharray","strokeLinecap","strokeOpacity","strokeWidth","textAnchor","viewBox","xmlBase","xmlLang","xmlSpace","DOMPropertyNames","autoComplete","autoFocus","autoSave","Whitelist","allowFullScreen","async","autoPlay","capture","controls","currentTime","default","defaultChecked","defaultMuted","defaultSelected","defer","download","enabled","formNoValidate","hidden","loop","muted","mediaGroup","noValidate","noShade","noResize","noWrap","typeMustMatch","open","paused","playbackRate","readOnly","required","reversed","radioGroup","icon","draggable","dropzone","scoped","visible","trueSpeed","sandbox","sortable","inert","indeterminate","nohref","compact","declare","ismap","pauseOnExit","seamless","translate","srcLang","srcObject","volume","itemScope","tabindex","cols","rows","rowspan","size","sizes","start","title","autocorrect","autoCapitalize","form","formAction","formEncType","formMethod","formTarget","frameBorder","unselectable","continuous","srcSet","inlist","minLength","marginWidth","marginHeight","list","keyType","inputMode","height","width","dateTime","contenteditable","contextMenu","classID","cellPadding","cellSpacing","charSet","allowTransparency","spellcheck","srcDoc","HTMLPropsContainer","propConfig","attributeName","attributeNamespace","propertyName","mustUseProperty","hasBooleanValue","hasNumericValue","hasPositiveNumericValue","useProperties","propertyInfo","tagName","setSelectValueForProperty","setAttributeNS","removeAttribute","styles","styleValue","removeSelectValueForProperty","isMultiple","optionNode","standardNativeEventMapping","onBlur","onChange","onClick","onCompositionEnd","onCompositionStart","onCompositionUpdate","onContextMenu","onCopy","onCut","onDoubleClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onFocus","onFocusIn","onFocusOut","onInput","onKeyDown","onKeyPress","onKeyUp","onMouseDown","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onMouseWheel","onPaste","onReset","onSelect","onSelectionChange","onSelectStart","onShow","onSubmit","onTextInput","onTouchCancel","onTouchEnd","onTouchMove","onTouchStart","onWheel","nonBubbleableEventMapping","onAbort","onBeforeUnload","onCanPlay","onCanPlayThrough","onDurationChange","onEmptied","onEnded","onError","onInvalid","onLoad","onLoadedData","onLoadedMetadata","onLoadStart","onMouseEnter","onMouseLeave","onOrientationChange","onPause","onPlay","onPlaying","onProgress","onRateChange","onResize","onScroll","onSeeked","onSeeking","onStalled","onSuspend","onTimeUpdate","onUnload","onVolumeChange","onWaiting","propertyToEventType","mapping","reduce","property","blur","standardNativeEvents","nonBubbleableEvents","InfernoComponent","require","updateComponent$1","Inferno","addTreeConstructor"],"mappings":"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","file":"inferno-dom.min.js","sourcesContent":["const recyclingEnabled = true;\n\nexport function pool(item) {\n\tconst key = item.key;\n\tconst tree = item.tree.dom;\n\n\tif (key === null) {\n\t\ttree.pool.push(item);\n\t} else {\n\t\tconst keyedPool = tree.keyedPool; // TODO rename\n\n\t\t(keyedPool[key] || (keyedPool[key] = [])).push(item);\n\t}\n}\n\nexport function recycle(tree, item, treeLifecycle, context) {\n\t// TODO use depth as key\n\tconst key = item.key;\n\tlet recyclableItem;\n\n\t// TODO faster to check pool size first?\n\tif (key !== null) {\n\t\tconst keyPool = tree.keyedPool[key];\n\n\t\trecyclableItem = keyPool && keyPool.pop();\n\t} else {\n\t\trecyclableItem = tree.pool.pop();\n\t}\n\tif (recyclableItem) {\n\t\ttree.update(recyclableItem, item, treeLifecycle, context);\n\t\treturn item.rootNode;\n\t}\n}\nexport function isRecyclingEnabled() {\n\treturn recyclingEnabled;\n}\n","export default x => ( x === null ) || ( x === undefined );\n","export default x => ( typeof x === 'string' ) || ( typeof x === 'number' );\n","// To be compat with React, we support at least the same SVG elements\nfunction isSVGElement( nodeName ) {\n\treturn nodeName === 'svg'\n\t\t|| nodeName === 'clipPath'\n\t\t|| nodeName === 'circle'\n\t\t|| nodeName === 'defs'\n\t\t|| nodeName === 'desc'\n\t\t|| nodeName === 'ellipse'\n\t\t|| nodeName === 'filter'\n\t\t|| nodeName === 'g'\n\t\t|| nodeName === 'line'\n\t\t|| nodeName === 'linearGradient'\n\t\t|| nodeName === 'mask'\n\t\t|| nodeName === 'marker'\n\t\t|| nodeName === 'metadata'\n\t\t|| nodeName === 'mpath'\n\t\t|| nodeName === 'path'\n\t\t|| nodeName === 'pattern'\n\t\t|| nodeName === 'polygon'\n\t\t|| nodeName === 'polyline'\n\t\t|| nodeName === 'pattern'\n\t\t|| nodeName === 'radialGradient'\n\t\t|| nodeName === 'rect'\n\t\t|| nodeName === 'set'\n\t\t|| nodeName === 'stop'\n\t\t|| nodeName === 'symbol'\n\t\t|| nodeName === 'switch'\n\t\t|| nodeName === 'text'\n\t\t|| nodeName === 'tspan'\n\t\t|| nodeName === 'use'\n\t\t|| nodeName === 'view';\n}\n\nexport default isSVGElement;\n","function isMathMLElement( nodeName ) {\n\treturn nodeName === 'mo'\n\t\t|| nodeName === 'mover'\n\t\t|| nodeName === 'mn'\n\t\t|| nodeName === 'maction'\n\t\t|| nodeName === 'menclose'\n\t\t|| nodeName === 'merror'\n\t\t|| nodeName === 'mfrac'\n\t\t|| nodeName === 'mi'\n\t\t|| nodeName === 'mmultiscripts'\n\t\t|| nodeName === 'mpadded'\n\t\t|| nodeName === 'mphantom'\n\t\t|| nodeName === 'mroot'\n\t\t|| nodeName === 'mrow'\n\t\t|| nodeName === 'ms'\n\t\t|| nodeName === 'mtd'\n\t\t|| nodeName === 'mtable'\n\t\t|| nodeName === 'munder'\n\t\t|| nodeName === 'msub'\n\t\t|| nodeName === 'msup'\n\t\t|| nodeName === 'msubsup'\n\t\t|| nodeName === 'mtr'\n\t\t|| nodeName === 'mtext';\n}\n\nexport default isMathMLElement;\n","export default x => x.constructor === Array;\n","import isArray from '../util/isArray';\nimport isVoid from '../util/isVoid';\nimport isStringOrNumber from '../util/isStringOrNumber';\n\nexport const ObjectTypes = {\n\tVARIABLE: 1\n};\n\nexport const ValueTypes = {\n\tTEXT: 0,\n\tARRAY: 1,\n\tTREE: 2,\n\tEMPTY_OBJECT: 3,\n\tFUNCTION: 4,\n\tFRAGMENT: 5\n};\n\nexport function createVariable(index) {\n\treturn {\n\t\tindex,\n\t\ttype: ObjectTypes.VARIABLE\n\t};\n}\n\nexport function getValueWithIndex(item, index) {\n\treturn (index < 2) ? ((index === 0) ? item.v0 : item.v1) : item.values[index - 2];\n}\n\nexport function getTypeFromValue(value) {\n\n\tif (isStringOrNumber(value) || isVoid(value)) {\n\t\treturn ValueTypes.TEXT;\n\t} else if (isArray(value)) {\n\t\treturn ValueTypes.ARRAY;\n\t} else if (typeof value === 'object' && value.create) {\n\t\treturn ValueTypes.TREE;\n\t} else if (typeof value === 'object' && value.tree.dom) {\n\t\treturn ValueTypes.FRAGMENT;\n\t} else if (typeof value === 'object' && Object.keys(value).length === 0) {\n\t\treturn ValueTypes.EMPTY_OBJECT;\n\t} else if (typeof value === 'function') {\n\t\treturn ValueTypes.FUNCTION;\n\t}\n}\n\nexport function getValueForProps(props, item) {\n\tconst newProps = {};\n\n\tif (props.index) {\n\t\treturn getValueWithIndex(item, props.index);\n\t}\n\tfor (let name in props) {\n\t\tconst val = props[name];\n\n\t\tif (val && val.index) {\n\t\t\tnewProps[name] = getValueWithIndex(item, val.index);\n\t\t} else {\n\t\t\tnewProps[name] = val;\n\t\t}\n\n\t\tif (name === 'children') {\n\t\t\tnewProps[name].overrideItem = item;\n\t\t}\n\t}\n\treturn newProps;\n}\n\nexport function removeValueTree(value, treeLifecycle) {\n\tif (isVoid(value)) {\n\t\treturn;\n\t}\n\tif (isArray(value)) {\n\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\tconst child = value[i];\n\n\t\t\tremoveValueTree(child, treeLifecycle);\n\t\t}\n\t} else if (typeof value === 'object') {\n\t\tconst tree = value.tree;\n\n\t\ttree.dom.remove(value, treeLifecycle);\n\t}\n}\n","const canUseDOM = !!(\n\ttypeof window !== 'undefined' &&\n\t// Nwjs doesn't add document as a global in their node context, but does have it on window.document,\n\t// As a workaround, check if document is undefined\n\ttypeof document !== 'undefined' &&\n\twindow.document.createElement\n);\n\nexport default {\n\tcanUseDOM: canUseDOM,\n\tcanUseWorkers: typeof Worker !== 'undefined',\n\tcanUseEventListeners: canUseDOM && !!( window.addEventListener ),\n\tcanUseViewport: canUseDOM && !!window.screen,\n\tcanUseSymbol: typeof Symbol === 'function' && typeof Symbol['for'] === 'function'\n};\n","import ExecutionEnvironment from './ExecutionEnvironment';\n\nlet isSVG;\n\nif ( ExecutionEnvironment.canUseDOM ) {\n\tconst { implementation } = document;\n\n\tisSVG = (\n\t\timplementation &&\n\t\timplementation.hasFeature &&\n\t\timplementation.hasFeature(\n\t\t\t'http://www.w3.org/TR/SVG11/feature#BasicStructure',\n\t\t\t'1.1'\n\t\t)\n\t);\n}\n\nexport default isSVG;\n","export default function inArray( arr, item ) {\n\tconst len = arr.length;\n\tlet i = 0;\n\n\twhile ( i < len ) {\n\t\tif ( arr[i++] === item ) {\n\t\t\treturn true;\n\t\t}\n\n\t}\n\n\treturn false;\n}\n","export default () => {};","import ExecutionEnvironment from './ExecutionEnvironment';\nimport noop from './noop';\n\nconst HOOK = {};\nconst reDash = /\\-./g;\n\n/* eslint-disable quote-props */\nexport const unitlessProperties = {\n\t'animation-iteration-count': true,\n\t'box-flex': true,\n\t'box-flex-group': true,\n\t'column-count': true,\n\t'counter-increment': true,\n\t'fill-opacity': true,\n\t'flex': true,\n\t'flex-grow': true,\n\t'flex-order': true,\n\t'flex-positive': true,\n\t'flex-shrink': true,\n\t'float': true,\n\t'font-weight': true,\n\t'grid-column': true,\n\t'line-height': true,\n\t'line-clamp': true,\n\t'opacity': true,\n\t'order': true,\n\t'orphans': true,\n\t'stop-opacity': true,\n\t'stroke-dashoffset': true,\n\t'stroke-opacity': true,\n\t'stroke-width': true,\n\t'tab-size': true,\n\t'transform': true,\n\t'transform-origin': true,\n\t'widows': true,\n\t'z-index': true,\n\t'zoom': true\n};\n\n/* eslint-enable quote-props */\n\nexport let directions = [ 'Top', 'Right', 'Bottom', 'Left' ];\nexport let dirMap = ( prefix, postfix ) =>\n directions.map( dir => ( prefix || '' ) + dir + ( postfix || '' ) );\nexport const shortCuts = {\n\t// rely on cssText\n\tfont: [/*\n\t\tfont-style\n\t\tfont-variant\n\t\tfont-weight\n\t\tfont-size/line-height\n\t\tfont-family|caption|icon|menu|message-box|small-caption|status-bar|initial|inherit;\n\t*/],\n\tpadding: dirMap( 'padding' ),\n\tmargin: dirMap( 'margin' ),\n\t'border-width': dirMap( 'border', 'Width' ),\n\t'border-style': dirMap( 'border', 'Style' )\n};\nexport const cssToJSName = cssName =>\n\tcssName.replace( reDash, str => str[1].toUpperCase() );\n\n// Don't execute this in nodejS\nif ( ExecutionEnvironment.canUseDOM ) {\n\t// get browser supported CSS properties\n\tconst documentElement = document.documentElement;\n\tconst computed = window.getComputedStyle( documentElement );\n\tconst props = Array.prototype.slice.call( computed, 0 );\n\tfor ( let key in documentElement.style ) {\n\t\tif ( !computed[key] ) {\n\t\t\tprops.push( key );\n\t\t}\n\t}\n\tprops.forEach( function ( propName ) {\n\t\tlet prefix = propName[0] === '-'\n\t\t\t? propName.substr( 1, propName.indexOf( '-', 1 ) - 1 )\n\t\t\t: null;\n\t\tlet stylePropName = cssToJSName( propName );\n\n\t\tHOOK[stylePropName] = {\n\t\t\tunPrefixed: prefix\n\t\t\t\t? propName.substr( prefix.length + 2 )\n\t\t\t\t: propName,\n\t\t\tunitless: unitlessProperties[propName] ? true : false,\n\t\t\tshorthand: null\n\t\t};\n\t} );\n\n\tconst lenMap = {\n\t\t1: ( values, props, style ) => props.forEach( prop => style[prop] = values[0] ),\n\t\t2: ( values, props, style ) => values.forEach( ( value, index ) => {\n\t\t\tstyle[props[index]] = style[props[index + 2]] = value;\n\t\t} ),\n\t\t4: ( values, props, style ) => props.forEach( ( prop, index ) => {\n\t\t\tstyle[prop] = values[index];\n\t\t} )\n\t};\n\n\t// normalize property shortcuts\n\tObject.keys( shortCuts ).forEach( propName => {\n\t\tlet stylePropName = cssToJSName( propName );\n\n\t\tHOOK[stylePropName] = {\n\t\t\tunPrefixed: propName,\n\t\t\tunitless: false,\n\t\t\tshorthand: ( value, style ) => {\n\t\t\t\tlet type = typeof value;\n\n\t\t\t\tif ( type === 'number' ) {\n\t\t\t\t\tvalue += 'px';\n\t\t\t\t}\n\t\t\t\tif ( !value ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif ( 'cssText' in style ) {\n\t\t\t\t\t// normalize setting complex property across browsers\n\t\t\t\t\tstyle.cssText += ';' + propName + ':' + value;\n\t\t\t\t} else {\n\t\t\t\t\tlet values = value.split( ' ' );\n\n\t\t\t\t\t( lenMap[values.length] || noop )( values, shortCuts[propName], style );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\n\n// TODO! Find a way to solve this for SSR\n\nexport default HOOK;\n","/* eslint eqeqeq:0 */\nexport default function isValidAttribute( strings ){\n\tlet i = 0;\n\tlet character;\n\n\twhile ( i <= strings.length ) {\n\t\tcharacter = strings[ i ];\n\t\tif ( !isNaN( character * 1 ) ) {\n\t\t\treturn false;\n\t\t} else {\n\t\t\tif ( character == character.toUpperCase() ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif ( character === character.toLowerCase() ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\ti++;\n\t}\n\n\treturn false;\n}\n","/**\n * DOM registry\n * */\n\nconst PROPERTY = 0x1;\nconst BOOLEAN = 0x2;\nconst NUMERIC_VALUE = 0x4;\nconst POSITIVE_NUMERIC_VALUE = 0x6 | 0x4;\n\nconst xlink = 'http://www.w3.org/1999/xlink';\nconst xml = 'http://www.w3.org/XML/1998/namespace';\n\nconst DOMAttributeNamespaces = {\n\t// None-JSX compat\n\t'xlink:actuate': xlink,\n\t'xlink:arcrole': xlink,\n\t'xlink:href': xlink,\n\t'xlink:role': xlink,\n\t'xlink:show': xlink,\n\t'xlink:title': xlink,\n\t'xlink:type': xlink,\n\t'xml:base': xml,\n\t'xml:lang': xml,\n\t'xml:space': xml,\n\t// JSX compat\n\txlinkActuate: xlink,\n\txlinkArcrole: xlink,\n\txlinkHref: xlink,\n\txlinkRole: xlink,\n\txlinkShow: xlink,\n\txlinkTitle: xlink,\n\txlinkType: xlink\n};\n\nexport const DOMAttributeNames = {\n\n\tacceptCharset: 'accept-charset',\n\tclassName: 'class',\n\thtmlFor: 'for',\n\thttpEquiv: 'http-equiv',\n\n\t// SVG\n\tclipPath: 'clip-path',\n\tfillOpacity: 'fill-opacity',\n\tfontFamily: 'font-family',\n\tfontSize: 'font-size',\n\tmarkerEnd: 'marker-end',\n\tmarkerMid: 'marker-mid',\n\tmarkerStart: 'marker-start',\n\tstopColor: 'stop-color',\n\tstopOpacity: 'stop-opacity',\n\tstrokeDasharray: 'stroke-dasharray',\n\tstrokeLinecap: 'stroke-linecap',\n\tstrokeOpacity: 'stroke-opacity',\n\tstrokeWidth: 'stroke-width',\n\ttextAnchor: 'text-anchor',\n\tviewBox: 'viewBox', // Edge case. The letter 'b' need to be uppercase\n\n\t// JSX compat\n\txlinkActuate: 'xlink:actuate',\n\txlinkArcrole: 'xlink:arcrole',\n\txlinkHref: 'xlink:href',\n\txlinkRole: 'xlink:role',\n\txlinkShow: 'xlink:show',\n\txlinkTitle: 'xlink:title',\n\txlinkType: 'xlink:type',\n\txmlBase: 'xml:base',\n\txmlLang: 'xml:lang',\n\txmlSpace: 'xml:space'\n\n};\n\nconst DOMPropertyNames = {\n\tautoComplete: 'autocomplete',\n\tautoFocus: 'autofocus',\n\tautoSave: 'autosave',\n};\n\n// This 'whitelist' contains edge cases such as attributes\n// that should be seen as a property or boolean property.\n// ONLY EDIT THIS IF YOU KNOW WHAT YOU ARE DOING!!\nconst Whitelist = {\n\tallowFullScreen: BOOLEAN,\n\tasync: BOOLEAN,\n\tautoFocus: BOOLEAN,\n\tautoPlay: BOOLEAN,\n\tcapture: BOOLEAN,\n\tchecked: PROPERTY | BOOLEAN,\n\tcontrols: BOOLEAN,\n\tcurrentTime: PROPERTY | POSITIVE_NUMERIC_VALUE,\n\tdefault: BOOLEAN,\n\tdefaultChecked: BOOLEAN,\n\tdefaultMuted: BOOLEAN,\n\tdefaultSelected: BOOLEAN,\n\tdefer: BOOLEAN,\n\tdisabled: PROPERTY | BOOLEAN,\n\tdownload: BOOLEAN,\n\tenabled: BOOLEAN,\n\tformNoValidate: BOOLEAN,\n\thidden: PROPERTY | BOOLEAN, // 3.2.5 - Global attributes\n\tloop: BOOLEAN,\n\t// Caution; `option.selected` is not updated if `select.multiple` is\n\t// disabled with `removeAttribute`.\n\tmultiple: PROPERTY | BOOLEAN,\n\tmuted: PROPERTY | BOOLEAN,\n\tmediaGroup: PROPERTY,\n\tnoValidate: BOOLEAN,\n\tnoShade: PROPERTY | BOOLEAN,\n\tnoResize: BOOLEAN,\n\tnoWrap: BOOLEAN,\n\ttypeMustMatch: BOOLEAN,\n\topen: BOOLEAN,\n\tpaused: PROPERTY,\n\tplaybackRate: PROPERTY | NUMERIC_VALUE,\n\treadOnly: BOOLEAN,\n\trequired: PROPERTY | BOOLEAN,\n\treversed: BOOLEAN,\n\tradioGroup: PROPERTY,\n\ticon: PROPERTY,\n\tdraggable: BOOLEAN, // 3.2.5 - Global attributes\n\tdropzone: null, // 3.2.5 - Global attributes\n\tscoped: PROPERTY | BOOLEAN,\n\tvisible: BOOLEAN,\n\ttrueSpeed: BOOLEAN,\n\tsandbox: null,\n\tsortable: BOOLEAN,\n\tinert: BOOLEAN,\n\tindeterminate: BOOLEAN,\n\tnohref: BOOLEAN,\n\tcompact: BOOLEAN,\n\tdeclare: BOOLEAN,\n\tismap: PROPERTY | BOOLEAN,\n\tpauseOnExit: PROPERTY | BOOLEAN,\n\tseamless: BOOLEAN,\n\ttranslate: BOOLEAN, // 3.2.5 - Global attributes\n\tselected: PROPERTY | BOOLEAN,\n\tsrcLang: PROPERTY,\n\tsrcObject: PROPERTY,\n\tvalue: PROPERTY,\n\tvolume: PROPERTY | POSITIVE_NUMERIC_VALUE,\n\titemScope: BOOLEAN, // 3.2.5 - Global attributes\n\tclassName: null,\n\ttabindex: PROPERTY | NUMERIC_VALUE,\n\n\t/**\n\t * React compat for non-working JSX namespace support\n\t */\n\n\txlinkActuate: null,\n\txlinkArcrole: null,\n\txlinkHref: null,\n\txlinkRole: null,\n\txlinkShow: null,\n\txlinkTitle: null,\n\txlinkType: null,\n\txmlBase: null,\n\txmlLang: null,\n\txmlSpace: null,\n\n\t/**\n\t * SVG\n\t */\n\n\tclipPath: null,\n\tfillOpacity: null,\n\tfontFamily: null,\n\tfontSize: null,\n\tmarkerEnd: null,\n\tmarkerMid: null,\n\tmarkerStart: null,\n\tstopColor: null,\n\tstopOpacity: null,\n\tstrokeDasharray: null,\n\tstrokeLinecap: null,\n\tstrokeOpacity: null,\n\tstrokeWidth: null,\n\ttextAnchor: null,\n\n\t/**\n\t * Numeric attributes\n\t */\n\tcols: POSITIVE_NUMERIC_VALUE,\n\trows: NUMERIC_VALUE,\n\trowspan: NUMERIC_VALUE,\n\tsize: POSITIVE_NUMERIC_VALUE,\n\tsizes: NUMERIC_VALUE,\n\tstart: NUMERIC_VALUE,\n\n\t/**\n\t * Namespace attributes\n\t */\n\t'xlink:actuate': null,\n\t'xlink:arcrole': null,\n\t'xlink:href': null,\n\t'xlink:role': null,\n\t'xlink:show': null,\n\t'xlink:title': null,\n\t'xlink:type': null,\n\t'xml:base': null,\n\t'xml:lang': null,\n\t'xml:space': null,\n\n\t/**\n\t * 3.2.5 - Global attributes\n\t */\n\tid: null,\n\tdir: null,\n\ttitle: null,\n\n\t/**\n\t * Properties that MUST be set as attributes, due to:\n\t *\n\t * - browser bug\n\t * - strange spec outlier\n\t *\n\t * Nothing bad with this. This properties get a performance boost\n\t * compared to custom attributes because they are skipping the\n\t * validation check.\n\t */\n\n\t// Force 'autocorrect' and 'autoCapitalize' to be set as an attribute\n\t// to fix issues with Mobile Safari on iOS devices\n\tautocorrect: null,\n\t// autoCapitalize and autoCorrect are supported in Mobile Safari for\n\t// keyboard hints.\n\tautoCapitalize: null,\n\n\t// Some version of IE ( like IE9 ) actually throw an exception\n\t// if you set input.type = 'something-unknown'\n\ttype: null,\n\n\t/**\n\t * Form\n\t */\n\tform: null,\n\tformAction: null,\n\tformEncType: null,\n\tformMethod: null,\n\tformTarget: null,\n\tframeBorder: null,\n\n\t/**\n\t * Internet Explorer / Edge\n\t */\n\n\t// IE-only attribute that controls focus behavior\n\tunselectable: null,\n\n\t/**\n\t * Firefox\n\t */\n\n\tcontinuous: BOOLEAN,\n\n\t/**\n\t * Others\n\t */\n\tsrcSet: null,\n\tinlist: null,\n\tminLength: null,\n\tmarginWidth: null,\n\tmarginHeight: null,\n\tlist: null,\n\tkeyType: null,\n\tis: null,\n\tinputMode: null,\n\theight: null,\n\twidth: null,\n\tdateTime: null,\n\tcontenteditable: null, // 3.2.5 - Global attributes\n\tcontextMenu: null,\n\tclassID: null,\n\tcellPadding: null,\n\tcellSpacing: null,\n\tcharSet: null,\n\tallowTransparency: null,\n\tspellcheck: null, // 3.2.5 - Global attributes\n\tsrcDoc: PROPERTY\n};\n\nconst HTMLPropsContainer = {};\n\nfunction checkBitmask( value, bitmask ) {\n\treturn bitmask !== null && ( ( value & bitmask ) === bitmask );\n}\n\nfor ( const propName in Whitelist ) {\n\n\tconst propConfig = Whitelist[propName];\n\n\tHTMLPropsContainer[propName] = {\n\t\tattributeName: DOMAttributeNames[propName] || propName.toLowerCase(),\n\t\tattributeNamespace: DOMAttributeNamespaces[propName] ? DOMAttributeNamespaces[propName] : null,\n\t\tpropertyName: DOMPropertyNames[propName] || propName,\n\n\t\tmustUseProperty: checkBitmask( propConfig, PROPERTY ),\n\t\thasBooleanValue: checkBitmask( propConfig, BOOLEAN ),\n\t\thasNumericValue: checkBitmask( propConfig, NUMERIC_VALUE ),\n\t\thasPositiveNumericValue: checkBitmask( propConfig, POSITIVE_NUMERIC_VALUE )\n\t};\n}\n\nexport default HTMLPropsContainer;\n","import isVoid from '../util/isVoid';\nimport isArray from '../util/isArray';\nimport inArray from '../util/inArray';\nimport styleAccessor from '../util/styleAccessor';\nimport isValidAttribute from '../util/isValidAttribute';\nimport DOMRegistry from './DOMRegistry';\n\nconst template = {\n\t/**\n\t * Sets the value for a property on a node. If a value is specified as\n\t * '' ( empty string ), the corresponding style property will be unset.\n\t *\n\t * @param {DOMElement} node\n\t * @param {string} name\n\t * @param {*} value\n\t */\n\tsetProperty(vNode, domNode, name, value, useProperties ) {\n\n\t\tconst propertyInfo = DOMRegistry[name] || null;\n\n\t\tif (propertyInfo) {\n\t\t\tif (isVoid(value) ||\n\t\t\t\tpropertyInfo.hasBooleanValue && !value ||\n\t\t\t\tpropertyInfo.hasNumericValue && (value !== value) ||\n\t\t\t\tpropertyInfo.hasPositiveNumericValue && value < 1 ||\n\t\t\t\tvalue.length === 0) {\n\t\t\t\ttemplate.removeProperty(vNode, domNode, name, useProperties);\n\t\t\t} else if (propertyInfo.mustUseProperty) {\n\n\t\t\t\tconst propName = propertyInfo.propertyName;\n\n\t\t\t\tif ( propName === 'value' && ((!isVoid(vNode) && vNode.tag === 'select') || (domNode.tagName === 'SELECT'))) {\n\t\t\t\t\ttemplate.setSelectValueForProperty(vNode, domNode, value, useProperties);\n\t\t\t\t} else if (useProperties) {\n\n\t\t\t\t\tif (('' + domNode[propName]) !== ('' + value)) {\n\t\t\t\t\t\tdomNode[propName] = value;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (propertyInfo.hasBooleanValue && (value === true || value === 'true')) {\n\t\t\t\t\t\tvalue = propName;\n\t\t\t\t\t}\n\t\t\t\t\tdomNode.setAttribute(propName, value);\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\tconst attributeName = propertyInfo.attributeName;\n\t\t\t\tconst namespace = propertyInfo.attributeNamespace;\n\n\t\t\t\tif (namespace) {\n\t\t\t\t\tdomNode.setAttributeNS(namespace, attributeName, '' + value);\n\t\t\t\t} else {\n\n\t\t\t\t\t// if 'truthy' value, and boolean, it will be 'propName=propName'\n\t\t\t\t\tif (propertyInfo.hasBooleanValue && value === true) {\n\t\t\t\t\t\tvalue = attributeName;\n\t\t\t\t\t}\n\t\t\t\t\tdomNode.setAttribute(attributeName, '' + value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (isValidAttribute(name)) {\n\t\t\t\tif (isVoid(value)){\n\t\t\t\t\tdomNode.removeAttribute(name);\n\t\t\t\t} else if (name) {\n\t\t\t\t\tdomNode.setAttribute(name, value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Sets the value for multiple styles on a node.\tIf a value is specified as\n\t * '' ( empty string ), the corresponding style property will be unset.\n\t *\n\t * @param {vNode} virtual node\n\t * @param {DOMElement} node\n\t * @param {object} styles\n\t */\n\tsetCSS( vNode, domNode, styles ) {\n\n\t\tfor ( let styleName in styles ) {\n\t\t\tlet styleValue = styles[styleName];\n\n\t\t\tconst style = domNode.style;\n\n\t\t\tif ( isVoid( styleValue ) ||\n\t\t\t\ttypeof styleValue === 'boolean' ) { // Todo! Should we check for typeof boolean?\n\t\t\t\tstyle[styleName] = '';\n\t\t\t} else {\n\n\t\t\t\t// The 'hook' contains all browser supported CSS properties.\n\t\t\t\t// No 'custom-css' are allowed or will work.\n\t\t\t\tconst hook = styleAccessor[styleName];\n\n\t\t\t\tif ( hook ) {\n\t\t\t\t\tif ( hook.shorthand ) {\n\n\t\t\t\t\t\thook.shorthand( styleValue, style );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif ( !hook.unitless ) {\n\t\t\t\t\t\t\tif ( typeof styleValue !== 'string' ) {\n\t\t\t\t\t\t\t\tstyleValue = styleValue + 'px';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstyle[hook.unPrefixed] = styleValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Removes the value for a property on a node.\n\t *\n\t * @param {DOMElement} node\n\t * @param {string} name\n\t */\n\tremoveProperty(vNode, domNode, name, useProperties) {\n\t\tconst propertyInfo = DOMRegistry[name];\n\n\t\tif (propertyInfo) {\n\t\t\tif (propertyInfo.mustUseProperty) {\n\t\t\t\tconst propName = propertyInfo.propertyName;\n\t\t\t\t// Make sure we remove select / select multiiple properly\n\t\t\t\tif (name === 'value' && ((vNode !== null && vNode.tag === 'select') || (domNode.tagName === 'SELECT'))) {\n\t\t\t\t\ttemplate.removeSelectValueForProperty(vNode, domNode);\n\t\t\t\t} else {\n\t\t\t\t\tif (useProperties) {\n\t\t\t\t\t\tif (propertyInfo.hasBooleanValue) {\n\t\t\t\t\t\t\tdomNode[propName] = false;\n\t\t\t\t\t\t} else if ('' + domNode[propName] !== '') {\n\t\t\t\t\t\t\tdomNode[propName] = '';\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdomNode.removeAttribute(propName);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdomNode.removeAttribute(propertyInfo.attributeName);\n\t\t\t}\n\t\t} else {\n\t\t\t// HTML attributes and custom attributes\n\t\t\tdomNode.removeAttribute(name);\n\t\t}\n\t},\n\n\t/**\n\t * Set the value for a select / select multiple on a node.\n\t *\n\t * @param {DOMElement} node\n\t * @param {string} name\n\t */\n\tsetSelectValueForProperty( vNode, domNode, value, useProperties ) {\n\t\tconst isMultiple = isArray( value );\n\t\tconst options = domNode.options;\n\t\tconst len = options.length;\n\n\t\tvalue = typeof value === 'number' ? '' + value : value;\n\n\t\tlet i = 0, optionNode;\n\n\t\twhile ( i < len ) {\n\t\t\toptionNode = options[i++];\n\t\t\tif ( useProperties ) {\n\t\t\t\toptionNode.selected = !isVoid( value ) &&\n\t\t\t\t\t( isMultiple ? inArray( value, optionNode.value ) : optionNode.value === value );\n\t\t\t} else {\n\t\t\t\tif ( !isVoid( value ) && ( isMultiple ? inArray( value, optionNode.value ) : optionNode.value === value ) ) {\n\t\t\t\t\toptionNode.setAttribute( 'selected', 'selected' );\n\t\t\t\t} else {\n\t\t\t\t\toptionNode.removeAttribute( 'selected' );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tremoveSelectValueForProperty( vNode, domNode/* , propName */ ) {\n\t\tconst options = domNode.options;\n\t\tconst len = options.length;\n\n\t\tlet i = 0;\n\n\t\twhile ( i < len ) {\n\t\t\toptions[i++].selected = false;\n\t\t}\n\t}\n};\n\nexport default template;\n","export const standardNativeEventMapping = {\n\tonBlur: 'blur',\n\tonChange: 'change',\n\tonClick: 'click',\n\tonCompositionEnd: 'compositionend',\n\tonCompositionStart: 'compositionstart',\n\tonCompositionUpdate: 'compositionupdate',\n\tonContextMenu: 'contextmenu',\n\tonCopy: 'copy',\n\tonCut: 'cut',\n\tonDoubleClick: 'dblclick',\n\tonDrag: 'drag',\n\tonDragEnd: 'dragend',\n\tonDragEnter: 'dragenter',\n\tonDragExit: 'dragexit',\n\tonDragLeave: 'dragleave',\n\tonDragOver: 'dragover',\n\tonDragStart: 'dragstart',\n\tonDrop: 'drop',\n\tonFocus: 'focus',\n\tonFocusIn: 'focusin',\n\tonFocusOut: 'focusout',\n\tonInput: 'input',\n\tonKeyDown: 'keydown',\n\tonKeyPress: 'keypress',\n\tonKeyUp: 'keyup',\n\tonMouseDown: 'mousedown',\n\tonMouseMove: 'mousemove',\n\tonMouseOut: 'mouseout',\n\tonMouseOver: 'mouseover',\n\tonMouseUp: 'mouseup',\n\tonMouseWheel: 'mousewheel',\n\tonPaste: 'paste',\n\tonReset: 'reset',\n\tonSelect: 'select',\n\tonSelectionChange: 'selectionchange',\n\tonSelectStart: 'selectstart',\n\tonShow: 'show',\n\tonSubmit: 'submit',\n\tonTextInput: 'textInput',\n\tonTouchCancel: 'touchcancel',\n\tonTouchEnd: 'touchend',\n\tonTouchMove: 'touchmove',\n\tonTouchStart: 'touchstart',\n\tonWheel: 'wheel'\n};\n\nexport const nonBubbleableEventMapping = {\n\tonAbort: 'abort',\n\tonBeforeUnload: 'beforeunload',\n\tonCanPlay: 'canplay',\n\tonCanPlayThrough: 'canplaythrough',\n\tonDurationChange: 'durationchange',\n\tonEmptied: 'emptied',\n\tonEnded: 'ended',\n\tonError: 'error',\n\tonInput: 'input',\n\tonInvalid: 'invalid',\n\tonLoad: 'load',\n\tonLoadedData: 'loadeddata',\n\tonLoadedMetadata: 'loadedmetadata',\n\tonLoadStart: 'loadstart',\n\tonMouseEnter: 'mouseenter',\n\tonMouseLeave: 'mouseleave',\n\tonOrientationChange: 'orientationchange',\n\tonPause: 'pause',\n\tonPlay: 'play',\n\tonPlaying: 'playing',\n\tonProgress: 'progress',\n\tonRateChange: 'ratechange',\n\tonResize: 'resize',\n\tonScroll: 'scroll',\n\tonSeeked: 'seeked',\n\tonSeeking: 'seeking',\n\tonSelect: 'select',\n\tonStalled: 'stalled',\n\tonSuspend: 'suspend',\n\tonTimeUpdate: 'timeupdate',\n\tonUnload: 'unload',\n\tonVolumeChange: 'volumechange',\n\tonWaiting: 'waiting'\n};\n\nconst propertyToEventType = {};\n\n[ standardNativeEventMapping, nonBubbleableEventMapping ].forEach( mapping => {\n\tObject.keys( mapping ).reduce( ( state, property ) => {\n\t\tstate[property] = mapping[property];\n\t\treturn state;\n\t}, propertyToEventType );\n} );\n\nexport default propertyToEventType;\n","const INFERNO_PROP = '__Inferno__id__';\nlet counter = 1;\n\nexport default function infernoNodeID( node, get ) {\n\treturn node[INFERNO_PROP] ||\n\t\t( get ? 0 : node[INFERNO_PROP] = counter++ );\n}","/**\n * Internal store for event listeners\n * DOMNodeId -> type -> listener\n */\nexport default {};","export default {\n\tfocus: 'focusin', // DOM L3\n\tblur: 'focusout' // DOM L3\n};","export default {};","import eventHooks from '../../shared/eventHooks';\n\n/**\n * Creates a wrapped handler that hooks into the Inferno\n * eventHooks system based on the type of event being\n * attached.\n *\n * @param {string} type\n * @param {Function} handler\n * @return {Function} wrapped handler\n */\nexport default function setHandler( type, handler ) {\n\tconst hook = eventHooks[type];\n\n\tif ( hook ) {\n\t\tconst hooked = hook( handler );\n\n\t\thooked.originalHandler = handler;\n\t\treturn hooked;\n\t}\n\n\treturn { handler, originalHandler: handler };\n}\n","import ExecutionEnvironment from '../../util/ExecutionEnvironment';\nimport addRootListener from './addRootListener';\nimport setHandler from './setHandler';\nimport focusEvents from '../../shared/focusEvents';\nimport {\n\tstandardNativeEventMapping,\n\tnonBubbleableEventMapping } from '../../shared/eventMapping';\n\nconst standardNativeEvents = Object.keys( standardNativeEventMapping )\n\t.map( key => standardNativeEventMapping[key] );\n\nconst nonBubbleableEvents = Object.keys( nonBubbleableEventMapping )\n\t.map( key => nonBubbleableEventMapping[key] );\n\nconst EventRegistry = {};\n\nfunction getFocusBlur( nativeFocus ) {\n\tif ( typeof getFocusBlur.fn === 'undefined' ) {\n\t\tgetFocusBlur.fn = nativeFocus ? function () {\n\t\t\tconst _type = this._type;\n\t\t\tconst handler = setHandler( _type, e => {\n\t\t\t\taddRootListener( e, _type );\n\t\t\t} ).handler;\n\n\t\t\tdocument.addEventListener( focusEvents[_type], handler );\n\t\t} : function () {\n\t\t\tconst _type = this._type;\n\n\t\t\tdocument.addEventListener(\n\t\t\t\t_type,\n\t\t\t\tsetHandler( _type, addRootListener ).handler,\n\t\t\t\ttrue );\n\t\t};\n\t}\n\treturn getFocusBlur.fn;\n}\n\nif ( ExecutionEnvironment.canUseDOM ) {\n\tlet i = 0;\n\tlet type;\n\tconst nativeFocus = 'onfocusin' in document.documentElement;\n\n\tfor ( ; i < standardNativeEvents.length; i++ ) {\n\t\ttype = standardNativeEvents[i];\n\t\tEventRegistry[type] = {\n\t\t\t_type: type,\n\t\t\t_bubbles: true,\n\t\t\t_counter: 0,\n\t\t\t_enabled: false\n\t\t};\n\t\t// 'focus' and 'blur'\n\t\tif ( focusEvents[type] ) {\n\t\t\t// IE has `focusin` and `focusout` events which bubble.\n\t\t\t// @see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html\n\t\t\tEventRegistry[type]._focusBlur = getFocusBlur( nativeFocus );\n\t\t}\n\t}\n\t// For non-bubbleable events - e.g. scroll - we are setting the events directly on the node\n\tfor ( i = 0; i < nonBubbleableEvents.length; i++ ) {\n\t\ttype = nonBubbleableEvents[i];\n\t\tEventRegistry[type] = {\n\t\t\t_type: type,\n\t\t\t_bubbles: false,\n\t\t\t_enabled: false\n\t\t};\n\t}\n}\n\nexport default EventRegistry;\n","/* eslint no-invalid-this:0 */\n\nfunction stopPropagation() {\n\tthis._isPropagationStopped = true;\n\tif ( this._stopPropagation ) {\n\t\tthis._stopPropagation();\n\t} else {\n\t\tthis.cancelBubble = true;\n\t}\n}\n\nfunction isPropagationStopped() {\n\treturn this._isPropagationStopped;\n}\n\nfunction stopImmediatePropagation() {\n\tthis._isImmediatePropagationStopped = true;\n\tthis._isPropagationStopped = true;\n\tif ( this._stopImmediatePropagation ) {\n\t\tthis._stopImmediatePropagation();\n\t} else {\n\t\tthis.cancelBubble = true;\n\t}\n}\n\nfunction isImmediatePropagationStopped() {\n\treturn this._isImmediatePropagationStopped;\n}\n\nfunction preventDefault() {\n\tthis._isDefaultPrevented = true;\n\n\tif ( this._preventDefault ) {\n\t\tthis._preventDefault();\n\t} else {\n\t\tthis.returnValue = false;\n\t}\n}\n\nfunction isDefaultPrevented() {\n\treturn this._isDefaultPrevented;\n}\n\nfunction eventInterface( nativeEvent ) {\n\n\t// Extend nativeEvent\n\tnativeEvent._stopPropagation = nativeEvent.stopPropagation;\n\tnativeEvent.stopPropagation = stopPropagation;\n\tnativeEvent.isPropagationStopped = isPropagationStopped;\n\n\tnativeEvent._stopImmediatePropagation = nativeEvent.stopImmediatePropagation;\n\tnativeEvent.stopImmediatePropagation = stopImmediatePropagation;\n\tnativeEvent.isImmediatePropagationStopped = isImmediatePropagationStopped;\n\n\tnativeEvent._preventDefault = nativeEvent.preventDefault;\n\tnativeEvent.preventDefault = preventDefault;\n\tnativeEvent.isDefaultPrevented = isDefaultPrevented;\n\n\treturn nativeEvent;\n}\n\nexport default eventInterface;\n","function isFormElement( nodeName ) {\n\treturn nodeName === 'form'\n\t\t|| nodeName === 'input'\n\t\t|| nodeName === 'textarea'\n\t\t|| nodeName === 'label'\n\t\t|| nodeName === 'fieldset'\n\t\t|| nodeName === 'legend'\n\t\t|| nodeName === 'select'\n\t\t|| nodeName === 'optgroup'\n\t\t|| nodeName === 'option'\n\t\t|| nodeName === 'button'\n\t\t|| nodeName === 'datalist'\n\t\t|| nodeName === 'keygen'\n\t\t|| nodeName === 'output';\n}\n\nexport default isFormElement;","export default function getFormElementType( node ) {\n\tconst name = node.nodeName.toLowerCase();\n\n\tif ( name !== 'input' ) {\n\t\tif ( name === 'select' && node.multiple ) {\n\t\t\treturn 'select-multiple';\n\t\t}\n\t\treturn name;\n\t}\n\n\tconst type = node.getAttribute( 'type' );\n\n\tif ( !type ) {\n\t\treturn 'text';\n\t}\n\n\treturn type.toLowerCase();\n}\n","import getFormElementType from './getFormElementType';\nimport isVoid from '../util/isVoid';\n\nfunction selectValues( node ) {\n\n\tconst result = [];\n\tconst index = node.selectedIndex;\n\tconst options = node.options;\n\tconst length = options.length;\n\tlet option;\n\tlet i = index < 0 ? length : 0;\n\n\tfor ( ; i < length; i++ ) {\n\n\t\toption = options[i];\n\n\t\tlet selected = option.selected || option.getAttribute( 'selected' );\n\n\t\t// IMPORTANT! IE9 doesn't update selected after form reset\n\t\tif ( ( option.selected || i === index ) &&\n\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t!option.disabled && ( !option.parentNode.disabled || option.parentNode.nodeName !== 'OPTGROUP' ) ) {\n\t\t\tresult.push( option.value );\n\t\t}\n\t}\n\tif ( result.length < 2 ) {\n\t\treturn result[0];\n\t}\n\treturn result;\n}\n\nexport default function getFormElementValues( node ) {\n\n\tif ( isVoid( node ) ) {\n\t\treturn null;\n\t}\n\n\tconst name = getFormElementType( node );\n\n\tswitch ( name ) {\n\t\tcase 'checkbox':\n\t\tcase 'radio':\n\t\t\tconst checked = node.getAttribute( 'checked' ) || node.checked;\n\n\t\t\tif ( !isVoid( checked ) ) {\n\t\t\t\treturn ( checked !== false ) && ( checked !== 'false' );\n\t\t\t}\n\t\t\treturn false;\n\t\tcase 'select-multiple':\n\t\t\treturn selectValues( node );\n\t\tdefault:\n\t\t\treturn node.value;\n\t}\n}\n","// type -> node -> function(target, event)\nexport default {};","import isFormElement from '../../util/isFormElement';\nimport getFormElementValues from '../getFormElementValues';\nimport setupHooks from '../../shared/setupHooks';\n\nexport default function createListenerArguments( target, event ) {\n\tconst type = event.type;\n\tconst nodeName = target.nodeName.toLowerCase();\n\n\tlet tagHooks;\n\n\tif ( ( tagHooks = setupHooks[type] ) ) {\n\t\tconst hook = tagHooks[nodeName];\n\n\t\tif ( hook ) {\n\t\t\treturn hook( target, event );\n\t\t}\n\t}\n\t// Default behavior:\n\t// Form elements with a value attribute will have the arguments:\n\t// [event, value]\n\tif ( isFormElement( nodeName ) ) {\n\t\treturn [ event, getFormElementValues( target ) ];\n\t}\n\t// Fallback to just event\n\treturn [event];\n}\n","import infernoNodeID from './infernoNodeID';\nimport listenersStorage from '../../shared/listenersStorage';\nimport EventRegistry from './EventRegistry';\nimport eventInterface from './eventInterface';\nimport createListenerArguments from './createListenerArguments';\n\nexport default function addRootListener( e, type ) {\n\n\tif (!type) {\n\t\ttype = e.type;\n\t}\n\n\tconst registry = EventRegistry[type];\n\n\t// Support: Safari 6-8+\n\t// Target should not be a text node\n\tif (e.target.nodeType === 3) {\n\t\te.target = e.target.parentNode;\n\t}\n\n\tlet target = e.target,\n\t\tlistenersCount = registry._counter,\n\t\tlisteners,\n\t\tlistener,\n\t\tnodeID,\n\t\tevent,\n\t\targs,\n\t\tdefaultArgs;\n\n\tif (listenersCount > 0) {\n\t\tevent = eventInterface(e, type);\n\t\tdefaultArgs = args = [event];\n\t}\n\t// NOTE: Only the event blubbling phase is modeled. This is done because\n\t// handlers specified on props can not specify they are handled on the\n\t// capture phase.\n\twhile (target !== null\n\t&& listenersCount > 0\n\t&& target !== document.parentNode) {\n\t\tif (( nodeID = infernoNodeID(target, true))) {\n\t\t\tlisteners = listenersStorage[nodeID];\n\t\t\tif (listeners && listeners[type]) {\n\n\t\t\t\tlistener = listeners[type];\n\n\t\t\t\t// lazily instantiate additional arguments in the case\n\t\t\t\t// where an event handler takes more than one argument\n\t\t\t\t// listener is a function, and length is the number of\n\t\t\t\t// arguments that function takes\n\t\t\t\tconst numArgs = listener.originalHandler.length;\n\n\t\t\t\targs = defaultArgs;\n\t\t\t\tif ( numArgs > 1 ) {\n\t\t\t\t\targs = createListenerArguments(target, event);\n\t\t\t\t}\n\n\t\t\t\t// 'this' on an eventListener is the element handling the event\n\t\t\t\t// event.currentTarget is unwriteable, and since these are\n\t\t\t\t// native events, will always refer to the document. Therefore\n\t\t\t\t// 'this' is the only supported way of referring to the element\n\t\t\t\t// whose listener is handling the current event\n\t\t\t\tlistener.handler.apply( target, args );\n\n\t\t\t\t// Check if progagation stopped. There is only one listener per\n\t\t\t\t// type, so we do not need to check immediate propagation.\n\t\t\t\tif (event.isPropagationStopped()) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\t--listenersCount;\n\t\t\t}\n\t\t}\n\t\ttarget = target.parentNode;\n\t}\n}\n","import listenersStorage from '../../shared/listenersStorage';\nimport createListenerArguments from './createListenerArguments';\nimport infernoNodeID from './infernoNodeID';\n\nexport default function createEventListener( type ) {\n\treturn e => {\n\t\tconst target = e.target;\n\t\tconst listener = listenersStorage[infernoNodeID( target )][type];\n\t\tconst args = listener.originalHandler.length > 1\n\t\t\t? createListenerArguments( target, e )\n\t\t\t: [e];\n\n\t\tlistener.originalHandler.apply( target, args );\n\t};\n}","import infernoNodeID from './infernoNodeID';\nimport addRootListener from './addRootListener';\nimport EventRegistry from './EventRegistry';\nimport listenersStorage from '../../shared/listenersStorage';\nimport setHandler from './setHandler';\nimport createEventListener from './createEventListener';\n\nexport default function addListener(vNode, domNode, type, listener) {\n\tif (!domNode) {\n\t\treturn null; // TODO! Should we throw?\n\t}\n\tconst registry = EventRegistry[type];\n\n\t// only add listeners for registered events\n\tif (registry) {\n\t\tif (!registry._enabled) {\n\t\t\t// handle focus / blur events\n\t\t\tif (registry._focusBlur) {\n\t\t\t\tregistry._focusBlur();\n\t\t\t} else if (registry._bubbles) {\n\t\t\t\tconst handler = setHandler(type, addRootListener).handler;\n\n\t\t\t\tdocument.addEventListener(type, handler, false);\n\t\t\t}\n\t\t\tregistry._enabled = true;\n\t\t}\n\t\tconst nodeID = infernoNodeID(domNode);\n\t\tlet\tlisteners;\n\n\t\tif (listenersStorage[nodeID]) {\n\t\t\tlisteners = listenersStorage[nodeID];\n\t\t} else {\n\t\t\tlistenersStorage[nodeID] = {};\n\t\t\tlisteners = listenersStorage[nodeID];\n\t\t}\n\n\t\tif (listeners[type]) {\n\t\t\tif (listeners[type].destroy) {\n\t\t\t\tlisteners[type].destroy();\n\t\t\t}\n\t\t}\n\t\tif (registry._bubbles) {\n\t\t\tif (!listeners[type]) {\n\t\t\t\t++registry._counter;\n\t\t\t}\n\t\t\tlisteners[type] = {\n\t\t\t\thandler: listener,\n\t\t\t\toriginalHandler: listener\n\t\t\t};\n\t\t} else {\n\t\t\tlisteners[type] = setHandler(type, createEventListener(type));\n\t\t\tlisteners[type].originalHandler = listener;\n\t\t\tdomNode.addEventListener(type, listeners[type].handler, false);\n\t\t}\n\t} else {\n\t\tthrow Error('Inferno Error: ' + type + ' has not been registered, and therefor not supported.');\n\t}\n}\n","export default {};","import infernoNodeID from './infernoNodeID';\nimport EventRegistry from './EventRegistry';\nimport listenersStorage from '../../shared/listenersStorage';\nimport eventListener from '../../shared/eventListener';\n// import focusEvents from '../../shared/focusEvents';\n\n/**\n * Remove event listeners from a node\n */\nexport default function removeListener( node, type ) {\n\n\tif ( !node ) {\n\t\treturn null; // TODO! Should we throw?\n\t}\n\n\tconst nodeID = infernoNodeID( node, true );\n\n\tif ( nodeID ) {\n\t\tconst listeners = listenersStorage[nodeID];\n\n\t\tif ( listeners && listeners[type] ) {\n\t\t\tif ( listeners[type] && listeners[type].destroy ) {\n\t\t\t\tlisteners[type].destroy();\n\t\t\t}\n\t\t\tlisteners[type] = null;\n\n\t\t\tconst registry = EventRegistry[type];\n\n\t\t\tif ( registry ) {\n\t\t\t\tif ( registry._bubbles ) {\n\t\t\t\t\t--registry._counter;\n\t\t\t\t\t// TODO Run tests and check if this works, or code should be removed\n//\t\t\t\t} else if ( registry._focusBlur ) {\n//\t\t\t\t\tnode.removeEventListener( type, eventListener[focusEvents[type]] );\n\t\t\t\t} else {\n\t\t\t\t\tnode.removeEventListener( type, eventListener[type] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","import isVoid from '../util/isVoid';\nimport isSVG from '../util/isSVG';\nimport template from './';\nimport eventMapping from '../shared/eventMapping';\nimport addListener from './events/addListener';\nimport removeListener from './events/removeListener';\n\nimport { getValueWithIndex } from '../core/variables';\n\n/**\n * Set HTML attributes on the template\n * @param{ HTMLElement } node\n * @param{ Object } attrs\n */\nexport function addDOMStaticAttributes( vNode, domNode, attrs ) {\n\tlet styleUpdates;\n\n\tfor ( const attrName in attrs ) {\n\t\tconst attrVal = attrs[attrName];\n\n\t\tif ( attrVal ) {\n\t\t\tif ( attrName === 'style' ) {\n\t\t\t\tstyleUpdates = attrVal;\n\t\t\t} else {\n\t\t\t\ttemplate.setProperty( vNode, domNode, attrName, attrVal, false );\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( styleUpdates ) {\n\t\ttemplate.setCSS( vNode, domNode, styleUpdates );\n\t}\n}\n\n// A fast className setter as its the most common property to regularly change\nfunction fastPropSet( attrName, attrVal, domNode ) {\n\tif ( attrName === 'class' || attrName === 'className' ) {\n\t\tif ( !isVoid( attrVal ) ) {\n\t\t\tif ( isSVG ) {\n\t\t\t\tdomNode.setAttribute( 'class', attrVal );\n\t\t\t} else {\n\t\t\t\tdomNode.className = attrVal;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t} else if ( attrName === 'ref' ) {\n\n\t\tif ( process.env.NODE_ENV === 'development' ) {\n\t\t\tif ( isVoid( attrVal ) ) {\n\t\t\t\tthrow ( 'Inferno Error: Inferno.createRef() can not be null or undefined' );\n\t\t\t}\n\t\t}\n\n\t\tattrVal.element = domNode;\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport function addDOMDynamicAttributes(item, domNode, dynamicAttrs, node) {\n\tlet styleUpdates;\n\n\tif (dynamicAttrs.index !== undefined) {\n\t\tdynamicAttrs = getValueWithIndex(item, dynamicAttrs.index);\n\t\taddDOMStaticAttributes(item, domNode, dynamicAttrs);\n\t\treturn;\n\t}\n\tfor (const attrName in dynamicAttrs) {\n\t\tif (!isVoid( attrName)) {\n\t\t\tconst attrVal = getValueWithIndex(item, dynamicAttrs[attrName]);\n\n\t\t\tif (attrVal !== undefined) {\n\t\t\t\tif (attrName === 'style') {\n\t\t\t\t\tstyleUpdates = attrVal;\n\t\t\t\t} else {\n\t\t\t\t\tif (fastPropSet(attrName, attrVal, domNode) === false) {\n\t\t\t\t\t\tif (eventMapping[attrName]) {\n\t\t\t\t\t\t\taddListener(item, domNode, eventMapping[attrName], attrVal);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttemplate.setProperty(null, domNode, attrName, attrVal, true);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif (styleUpdates) {\n\t\ttemplate.setCSS(item, domNode, styleUpdates);\n\t}\n}\n\nexport function clearListeners (item, domNode, dynamicAttrs) {\n\tfor (const attrName in dynamicAttrs) {\n\t\tconst attrVal = getValueWithIndex(item, dynamicAttrs[attrName]);\n\n\t\tif (attrVal !== undefined && eventMapping[attrName]) {\n\t\t\tremoveListener(item, domNode, eventMapping[attrName], attrVal);\n\t\t}\n\t}\n}\n\n/**\n * NOTE!! This function is probably the single most\n * critical path for performance optimization.\n */\nexport function updateDOMDynamicAttributes(lastItem, nextItem, domNode, dynamicAttrs) {\n\tif ( dynamicAttrs.index !== undefined ) {\n\t\tconst nextDynamicAttrs = getValueWithIndex( nextItem, dynamicAttrs.index );\n\n\t\tif ( isVoid( nextDynamicAttrs ) ) {\n\t\t\tconst lastDynamicAttrs = getValueWithIndex( lastItem, dynamicAttrs.index );\n\n\t\t\tfor ( let attrName in lastDynamicAttrs ) {\n\t\t\t\ttemplate.removeProperty( null, domNode, attrName, true );\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\taddDOMStaticAttributes( nextItem, domNode, nextDynamicAttrs );\n\t\treturn;\n\t}\n\n\t/**\n\t * TODO: Benchmark areas that can be improved with caching.\n\t */\n\tlet styleUpdates = {};\n\tlet styleName;\n\n\tfor ( const attrName in dynamicAttrs ) {\n\n\t\tconst lastAttrVal = getValueWithIndex( lastItem, dynamicAttrs[attrName] );\n\t\tconst nextAttrVal = getValueWithIndex( nextItem, dynamicAttrs[attrName] );\n\n\t\tif ( !isVoid( lastAttrVal ) ) {\n\n\t\t\tif ( isVoid( nextAttrVal ) ) {\n\t\t\t\tif ( attrName === 'style' ) {\n\t\t\t\t\tfor ( styleName in lastAttrVal ) {\n\t\t\t\t\t\tif ( !nextAttrVal || !nextAttrVal[styleName] ) {\n\t\t\t\t\t\t\tstyleUpdates[styleName] = '';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if ( eventMapping[attrName] ) {\n\t\t\t\t\tremoveListener( nextItem, domNode, eventMapping[attrName], nextAttrVal );\n\t\t\t\t} else {\n\t\t\t\t\ttemplate.removeProperty( null, domNode, attrName, true );\n\t\t\t\t}\n\n\t\t\t} else if ( attrName === 'style' ) {\n\n\t\t\t\t// Unset styles on `lastAttrVal` but not on `nextAttrVal`.\n\t\t\t\tfor ( styleName in lastAttrVal ) {\n\t\t\t\t\tif ( lastAttrVal[styleName] &&\n\t\t\t\t\t\t( !nextAttrVal || !nextAttrVal[styleName] ) ) {\n\t\t\t\t\t\tstyleUpdates[styleName] = '';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Update styles that changed since `lastAttrVal`.\n\t\t\t\tfor ( styleName in nextAttrVal ) {\n\t\t\t\t\tif ( !nextAttrVal[styleName] || lastAttrVal[styleName] !== nextAttrVal[ styleName ] ) {\n\t\t\t\t\t\tstyleUpdates[styleName] = nextAttrVal[styleName];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t} else if ( lastAttrVal !== nextAttrVal ) {\n\n\t\t\t\tif ( fastPropSet( attrName, nextAttrVal, domNode ) === false ) {\n\t\t\t\t\tif ( eventMapping[attrName] ) {\n\t\t\t\t\t\taddListener( nextItem, domNode, eventMapping[attrName], nextAttrVal ); // TODO! Write tests for this!\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttemplate.setProperty( null, domNode, attrName, nextAttrVal, true );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( !isVoid( nextAttrVal ) ) {\n\t\t\tif ( attrName === 'style' ) {\n\t\t\t\tstyleUpdates = nextAttrVal;\n\t\t\t} else {\n\n\t\t\t\tif ( fastPropSet( attrName, nextAttrVal, domNode ) === false ) {\n\t\t\t\t\tif ( eventMapping[attrName] ) {\n\t\t\t\t\t\taddListener( nextItem, domNode, eventMapping[attrName], nextAttrVal );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttemplate.setProperty( null, domNode, attrName, nextAttrVal, true );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( styleUpdates ) {\n\t\ttemplate.setCSS( domNode, domNode, styleUpdates );\n\t}\n}\n","export default function recreateRootNode(lastItem, nextItem, node, treeLifecycle, context) {\n\tconst lastDomNode = lastItem.rootNode;\n\tconst lastTree = lastItem.tree.dom;\n\n\tlastTree.remove(lastItem, treeLifecycle);\n\n\tconst domNode = node.create(nextItem, treeLifecycle, context);\n\tconst parentNode = lastDomNode.parentNode;\n\n\tif (parentNode) {\n\t\tparentNode.replaceChild(domNode, lastDomNode);\n\t}\n\tnextItem.rootNode = domNode;\n\treturn domNode;\n}\n\nexport function recreateRootNodeFromHydration(hydrateNode, nextItem, node, treeLifecycle, context) {\n\tconst lastDomNode = hydrateNode;\n\n\tconst domNode = node.create(nextItem, treeLifecycle, context);\n\tconst parentNode = lastDomNode.parentNode;\n\n\tif (parentNode) {\n\t\tparentNode.replaceChild(domNode, lastDomNode);\n\t}\n\tnextItem.rootNode = domNode;\n\treturn domNode;\n}\n","import isVoid from '../../util/isVoid';\nimport isStringOrNumber from '../../util/isStringOrNumber';\nimport { recycle } from '../recycling';\nimport { getValueWithIndex } from '../../core/variables';\nimport { addDOMDynamicAttributes, updateDOMDynamicAttributes, clearListeners } from '../addAttributes';\nimport recreateRootNode from '../recreateRootNode';\n\nexport default function createRootNodeWithDynamicText( templateNode, valueIndex, dynamicAttrs, recyclingEnabled ) {\n\tconst node = {\n\t\tpool: [],\n\t\tkeyedPool: [],\n\t\toverrideItem: null,\n\t\tcreate( item ) {\n\t\t\tlet domNode;\n\n\t\t\tif ( recyclingEnabled ) {\n\t\t\t\tdomNode = recycle( node, item );\n\t\t\t\tif ( domNode ) {\n\t\t\t\t\treturn domNode;\n\t\t\t\t}\n\t\t\t}\n\t\t\tdomNode = templateNode.cloneNode( false );\n\t\t\tconst value = getValueWithIndex( item, valueIndex );\n\n\t\t\tif ( !isVoid( value ) ) {\n\t\t\t\tif ( process.env.NODE_ENV !== 'production' ) {\n\t\t\t\t\tif ( !isStringOrNumber( value ) ) {\n\t\t\t\t\t\tthrow Error( 'Inferno Error: Template nodes with TEXT must only have a StringLiteral or NumericLiteral as a value, this is intended for low-level optimisation purposes.' );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (value === '') {\n\t\t\t\t\tdomNode.appendChild(document.createTextNode(''));\n\t\t\t\t} else {\n\t\t\t\t\tdomNode.textContent = value;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( dynamicAttrs ) {\n\t\t\t\taddDOMDynamicAttributes( item, domNode, dynamicAttrs, node );\n\t\t\t}\n\t\t\titem.rootNode = domNode;\n\t\t\treturn domNode;\n\t\t},\n\t\tupdate( lastItem, nextItem, treeLifecycle ) {\n\t\t\tif ( node !== lastItem.tree.dom ) {\n\t\t\t\trecreateRootNode( lastItem, nextItem, node, treeLifecycle );\n\t\t\t} else {\n\t\t\t\tconst domNode = lastItem.rootNode;\n\n\t\t\t\tnextItem.id = lastItem.id;\n\t\t\t\tnextItem.rootNode = domNode;\n\t\t\t\tconst nextValue = getValueWithIndex( nextItem, valueIndex );\n\t\t\t\tconst lastValue = getValueWithIndex( lastItem, valueIndex );\n\n\t\t\t\tif ( nextValue !== lastValue ) {\n\t\t\t\t\tif ( isVoid( nextValue ) ) {\n\t\t\t\t\t\tif ( isVoid( lastValue ) ) {\n\t\t\t\t\t\t\tdomNode.firstChild.nodeValue = '';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdomNode.textContent = '';\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif ( process.env.NODE_ENV !== 'production' ) {\n\t\t\t\t\t\t\tif ( !isStringOrNumber( nextValue ) ) {\n\t\t\t\t\t\t\t\tthrow Error( 'Inferno Error: Template nodes with TEXT must only have a StringLiteral or NumericLiteral as a value, this is intended for low-level optimisation purposes.' );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( isVoid( lastValue ) ) {\n\t\t\t\t\t\t\tdomNode.textContent = nextValue;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdomNode.firstChild.nodeValue = nextValue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif ( !isVoid( dynamicAttrs ) ) {\n\t\t\t\t\tupdateDOMDynamicAttributes( lastItem, nextItem, domNode, dynamicAttrs );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tremove(item) {\n\t\t\tif (dynamicAttrs) {\n\t\t\t\tclearListeners(item, item.rootNode, dynamicAttrs);\n\t\t\t}\n\t\t}\n\t};\n\n\treturn node;\n}\n","import isVoid from '../../util/isVoid';\nimport isStringOrNumber from '../../util/isStringOrNumber';\nimport { getValueWithIndex } from '../../core/variables';\nimport { addDOMDynamicAttributes, updateDOMDynamicAttributes, clearListeners } from '../addAttributes';\n\nconst errorMsg = 'Inferno Error: Template nodes with TEXT must only have a StringLiteral or NumericLiteral as a value, this is intended for low-level optimisation purposes.';\n\nexport default function createNodeWithDynamicText(templateNode, valueIndex, dynamicAttrs) {\n\tconst domNodeMap = {};\n\tconst node = {\n\t\toverrideItem: null,\n\t\tcreate(item) {\n\t\t\tconst domNode = templateNode.cloneNode(false);\n\t\t\tconst value = getValueWithIndex(item, valueIndex);\n\n\t\t\tif (!isVoid( value)) {\n\t\t\t\tif (process.env.NODE_ENV !== 'production') {\n\t\t\t\t\tif (!isStringOrNumber(value)) {\n\t\t\t\t\t\tthrow Error(errorMsg);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (value === '') {\n\t\t\t\t\tdomNode.appendChild(document.createTextNode(''));\n\t\t\t\t} else {\n\t\t\t\t\tdomNode.textContent = value;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (dynamicAttrs) {\n\t\t\t\taddDOMDynamicAttributes(item, domNode, dynamicAttrs, null);\n\t\t\t}\n\t\t\tdomNodeMap[item.id] = domNode;\n\t\t\treturn domNode;\n\t\t},\n\t\tupdate(lastItem, nextItem) {\n\t\t\tconst domNode = domNodeMap[lastItem.id];\n\t\t\tconst nextValue = getValueWithIndex(nextItem, valueIndex);\n\t\t\tconst lastValue = getValueWithIndex(lastItem, valueIndex);\n\n\t\t\tif (nextValue !== lastValue) {\n\t\t\t\tif (isVoid( nextValue)) {\n\t\t\t\t\tif (isVoid( lastValue)) {\n\t\t\t\t\t\tdomNode.firstChild.nodeValue = '';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdomNode.textContent = '';\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (process.env.NODE_ENV !== 'production') {\n\t\t\t\t\t\tif (!isStringOrNumber( nextValue)) {\n\t\t\t\t\t\t\tthrow Error( errorMsg );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (isVoid(lastValue)) {\n\t\t\t\t\t\tdomNode.textContent = nextValue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdomNode.firstChild.nodeValue = nextValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (dynamicAttrs) {\n\t\t\t\tupdateDOMDynamicAttributes(lastItem, nextItem, domNode, dynamicAttrs);\n\t\t\t}\n\t\t},\n\t\tremove(item) {\n\t\t\tconst domNode = domNodeMap[item.id];\n\n\t\t\tif (dynamicAttrs) {\n\t\t\t\tclearListeners(item, domNode, dynamicAttrs);\n\t\t\t}\n\t\t}\n\t};\n\n\treturn node;\n}\n","import { recycle } from '../recycling';\nimport { addDOMDynamicAttributes, updateDOMDynamicAttributes, clearListeners } from '../addAttributes';\nimport recreateRootNode from '../recreateRootNode';\n\nexport default function createRootNodeWithStaticChild(templateNode, dynamicAttrs, recyclingEnabled) {\n\tconst node = {\n\t\tpool: [],\n\t\tkeyedPool: [],\n\t\toverrideItem: null,\n\t\tcreate(item) {\n\t\t\tlet domNode;\n\n\t\t\tif (recyclingEnabled) {\n\t\t\t\tdomNode = recycle(node, item);\n\t\t\t\tif (domNode) {\n\t\t\t\t\treturn domNode;\n\t\t\t\t}\n\t\t\t}\n\t\t\tdomNode = templateNode.cloneNode(true);\n\t\t\tif (dynamicAttrs) {\n\t\t\t\taddDOMDynamicAttributes(item, domNode, dynamicAttrs, node);\n\t\t\t}\n\t\t\titem.rootNode = domNode;\n\t\t\treturn domNode;\n\t\t},\n\t\tupdate(lastItem, nextItem, treeLifecycle) {\n\t\t\tif (node !== lastItem.tree.dom) {\n\t\t\t\trecreateRootNode(lastItem, nextItem, node, treeLifecycle);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst domNode = lastItem.rootNode;\n\n\t\t\tnextItem.rootNode = domNode;\n\t\t\tnextItem.id = lastItem.id;\n\t\t\tif (dynamicAttrs) {\n\t\t\t\tupdateDOMDynamicAttributes(lastItem, nextItem, domNode, dynamicAttrs);\n\t\t\t}\n\t\t},\n\t\tremove(item) {\n\t\t\tif (dynamicAttrs) {\n\t\t\t\tclearListeners(item, item.rootNode, dynamicAttrs);\n\t\t\t}\n\t\t}\n\t};\n\n\treturn node;\n}\n","import { addDOMDynamicAttributes, updateDOMDynamicAttributes, clearListeners } from '../addAttributes';\n\nexport default function createNodeWithStaticChild(templateNode, dynamicAttrs) {\n\tconst domNodeMap = {};\n\tconst node = {\n\t\toverrideItem: null,\n\t\tcreate(item) {\n\t\t\tconst domNode = templateNode.cloneNode(true);\n\n\t\t\tif (dynamicAttrs) {\n\t\t\t\taddDOMDynamicAttributes(item, domNode, dynamicAttrs, null);\n\t\t\t}\n\t\t\tdomNodeMap[item.id] = domNode;\n\t\t\treturn domNode;\n\t\t},\n\t\tupdate(lastItem, nextItem) {\n\t\t\tconst domNode = domNodeMap[lastItem.id];\n\n\t\t\tif (dynamicAttrs) {\n\t\t\t\tupdateDOMDynamicAttributes(lastItem, nextItem, domNode, dynamicAttrs);\n\t\t\t}\n\t\t},\n\t\tremove(item) {\n\t\t\tconst domNode = domNodeMap[item.id];\n\n\t\t\tif (dynamicAttrs) {\n\t\t\t\tclearListeners(item, domNode, dynamicAttrs);\n\t\t\t}\n\t\t}\n\t};\n\n\treturn node;\n}\n","import isStringOrNumber from '../util/isStringOrNumber';\n\nexport default function updateAndAppendDynamicChildren(domNode, nextValue ) {\n\n\tfor ( let i = 0; i < nextValue.length; i++ ) {\n\t\tif ( isStringOrNumber( nextValue[i] ) ) {\n\t\t\tdomNode.appendChild( document.createTextNode( nextValue[i] ) );\n\t\t} else {\n\t\t\t// Do nothing for now\n\t\t}\n\t}\n}","function appendText( domNode, value ) {\n\tconst firstChild = domNode.firstChild;\n\tif ( firstChild ) {\n\t\tfirstChild.nodeValue = value;\n\t} else {\n\t\tdomNode.textContent = value;\n\t}\n}\nexport default appendText;","export default function removeChild(domNode) {\n\tconst firstChild = domNode.firstChild;\n\tif (firstChild) {\n\t\tdomNode.removeChild(firstChild);\n\t}\n}","export default function replaceChild(domNode, childNode) {\n\tconst replaceNode = domNode.firstChild;\n\n\tif (replaceNode) {\n\t\tdomNode.replaceChild(childNode, domNode.firstChild);\n\t} else {\n\t\tdomNode.appendChild(childNode);\n\t}\n}","import isVoid from '../util/isVoid';\nimport { getValueWithIndex, getTypeFromValue, ValueTypes } from '../core/variables';\nimport isArray from '../util/isArray';\nimport isStringOrNumber from '../util/isStringOrNumber';\nimport { isRecyclingEnabled, pool } from './recycling';\n\nconst recyclingEnabled = isRecyclingEnabled();\nconst infernoBadTemplate = 'Inferno Error: A valid template node must be returned. You may have returned undefined, an array or some other invalid object.';\n\nexport function updateKeyed(items, oldItems, parentNode, parentNextNode, treeLifecycle, context) {\n\tlet stop = false;\n\tlet startIndex = 0;\n\tlet oldStartIndex = 0;\n\n\tconst itemsLength = items.length;\n\tconst oldItemsLength = oldItems.length;\n\n\tlet startItem = itemsLength > 0 && items[startIndex];\n\n\t// Edge case! In cases where someone try to update from [null] to [null], 'startitem' will be null.\n\t// Also in cases where someone try to update from [{}] to [{}] ( empty object to empty object)\n\t// We solve that with avoiding going into the iteration loop.\n\tif ( isVoid( startItem ) && ( isVoid( startItem.tree ) ) ) {\n\t\treturn;\n\t}\n\n\t// TODO only if there are no other children\n\tif ( itemsLength === 0 && oldItemsLength >= 5 ) {\n\t\tif ( recyclingEnabled ) {\n\t\t\tfor ( let i = 0; i < oldItemsLength; i++ ) {\n\t\t\t\tpool( oldItems[i] );\n\t\t\t}\n\t\t}\n\t\tparentNode.textContent = '';\n\t\treturn;\n\t}\n\n\tlet endIndex = itemsLength - 1;\n\tlet oldEndIndex = oldItemsLength - 1;\n\tlet oldStartItem = oldItemsLength > 0 && oldItems[oldStartIndex];\n\tlet endItem;\n\tlet oldEndItem;\n\tlet nextNode;\n\tlet oldItem;\n\tlet item;\n\n\t// TODO don't read key too often\n\touter: while ( !stop && startIndex <= endIndex && oldStartIndex <= oldEndIndex ) {\n\t\tstop = true;\n\t\twhile ( startItem.key === oldStartItem.key ) {\n\t\t\tstartItem.tree.dom.update( oldStartItem, startItem, treeLifecycle, context );\n\t\t\tstartIndex++;\n\t\t\toldStartIndex++;\n\t\t\tif ( startIndex > endIndex || oldStartIndex > oldEndIndex ) {\n\t\t\t\tbreak outer;\n\t\t\t} else {\n\t\t\t\tstartItem = items[startIndex];\n\t\t\t\toldStartItem = oldItems[oldStartIndex];\n\t\t\t\tstop = false;\n\t\t\t}\n\t\t}\n\t\tendItem = items[endIndex];\n\t\toldEndItem = oldItems[oldEndIndex];\n\t\twhile ( endItem.key === oldEndItem.key ) {\n\t\t\tendItem.tree.dom.update( oldEndItem, endItem, treeLifecycle, context );\n\t\t\tendIndex--;\n\t\t\toldEndIndex--;\n\t\t\tif ( startIndex > endIndex || oldStartIndex > oldEndIndex ) {\n\t\t\t\tbreak outer;\n\t\t\t} else {\n\t\t\t\tendItem = items[endIndex];\n\t\t\t\toldEndItem = oldItems[oldEndIndex];\n\t\t\t\tstop = false;\n\t\t\t}\n\t\t}\n\t\twhile ( endItem.key === oldStartItem.key ) {\n\t\t\tnextNode = ( endIndex + 1 < itemsLength ) ? items[endIndex + 1].rootNode : parentNextNode;\n\t\t\tendItem.tree.dom.update( oldStartItem, endItem, treeLifecycle, context );\n\t\t\tinsertOrAppend( parentNode, endItem.rootNode, nextNode );\n\t\t\tendIndex--;\n\t\t\toldStartIndex++;\n\t\t\tif ( startIndex > endIndex || oldStartIndex > oldEndIndex ) {\n\t\t\t\tbreak outer;\n\t\t\t} else {\n\t\t\t\tendItem = items[endIndex];\n\t\t\t\toldStartItem = oldItems[oldStartIndex];\n\t\t\t\tstop = false;\n\t\t\t}\n\t\t}\n\t\twhile ( startItem.key === oldEndItem.key ) {\n\t\t\tnextNode = oldItems[oldStartIndex].rootNode;\n\t\t\tstartItem.tree.dom.update( oldEndItem, startItem, treeLifecycle, context );\n\t\t\tinsertOrAppend( parentNode, startItem.rootNode, nextNode );\n\t\t\tstartIndex++;\n\t\t\toldEndIndex--;\n\t\t\tif ( startIndex > endIndex || oldStartIndex > oldEndIndex ) {\n\t\t\t\tbreak outer;\n\t\t\t} else {\n\t\t\t\tstartItem = items[startIndex];\n\t\t\t\toldEndItem = oldItems[oldEndIndex];\n\t\t\t\tstop = false;\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( oldStartIndex > oldEndIndex ) {\n\t\tif ( startIndex <= endIndex ) {\n\t\t\tnextNode = ( endIndex + 1 < itemsLength ) ? items[endIndex + 1].rootNode : parentNextNode;\n\t\t\tfor ( ; startIndex <= endIndex; startIndex++ ) {\n\t\t\t\titem = items[startIndex];\n\t\t\t\tinsertOrAppend( parentNode, item.tree.dom.create( item, treeLifecycle, context ), nextNode );\n\t\t\t}\n\t\t}\n\t} else if ( startIndex > endIndex ) {\n\t\tfor ( ; oldStartIndex <= oldEndIndex; oldStartIndex++ ) {\n\t\t\toldItem = oldItems[oldStartIndex];\n\t\t\tremove( oldItem, parentNode );\n\t\t}\n\t} else {\n\t\tconst oldItemsMap = {};\n\t\tlet oldNextItem = ( oldEndIndex + 1 < oldItemsLength ) ? oldItems[oldEndIndex + 1] : null;\n\n\t\tfor ( let i = oldEndIndex; i >= oldStartIndex; i-- ) {\n\t\t\toldItem = oldItems[i];\n\t\t\toldItem.nextItem = oldNextItem;\n\t\t\toldItemsMap[oldItem.key] = oldItem;\n\t\t\toldNextItem = oldItem;\n\t\t}\n\t\tlet nextItem = ( endIndex + 1 < itemsLength ) ? items[endIndex + 1] : null;\n\n\t\tfor ( let i = endIndex; i >= startIndex; i-- ) {\n\t\t\titem = items[i];\n\t\t\tconst key = item.key;\n\n\t\t\toldItem = oldItemsMap[key];\n\t\t\tif ( oldItem ) {\n\t\t\t\toldItemsMap[key] = null;\n\t\t\t\toldNextItem = oldItem.nextItem;\n\n\t\t\t\titem.tree.dom.update( oldItem, item, treeLifecycle, context );\n\n\t\t\t\t/* eslint eqeqeq:0 */\n\t\t\t\t// TODO optimise\n\t\t\t\tif ( item.rootNode.nextSibling != ( nextItem && nextItem.rootNode ) ) {\n\t\t\t\t\tnextNode = ( nextItem && nextItem.rootNode ) || parentNextNode;\n\t\t\t\t\tinsertOrAppend( parentNode, item.rootNode, nextNode );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tnextNode = ( nextItem && nextItem.rootNode ) || parentNextNode;\n\t\t\t\tinsertOrAppend( parentNode, item.tree.dom.create( item, treeLifecycle, context ), nextNode );\n\t\t\t}\n\t\t\tnextItem = item;\n\t\t}\n\t\tfor ( let i = oldStartIndex; i <= oldEndIndex; i++ ) {\n\t\t\toldItem = oldItems[i];\n\t\t\tif ( oldItemsMap[oldItem.key] !== null ) {\n\t\t\t\toldItem = oldItems[oldStartIndex];\n\t\t\t\tremove( item, parentNode );\n\t\t\t}\n\t\t}\n\t}\n}\n\n// TODO can we improve performance here?\nexport function updateNonKeyed( items, oldItems, domNodeList, parentNode, parentNextNode, treeLifecycle, context ) {\n\n\tlet itemsLength;\n\t// We can't calculate length of 0 in the cases either items or oldItems is 0.\n\t// In this cases we need workaround\n\tif ( items && oldItems ) {\n\t\titemsLength = Math.max( items.length, oldItems.length );\n\t} else if ( items ) {\n\t\titemsLength = items = itemsLength;\n\t} else if ( oldItems ) {\n\t\titemsLength = oldItems = itemsLength;\n\t}\n\n\tfor ( let i = 0; i < itemsLength; i++ ) {\n\t\tconst item = items[i];\n\t\tconst oldItem = oldItems[i];\n\t\tif ( item !== oldItem ) {\n\t\t\tif ( !isVoid( item ) ) {\n\n\t\t\t\tif ( !isVoid( oldItem ) ) {\n\t\t\t\t\tif ( isStringOrNumber( item ) ) {\n\n\t\t\t\t\t\tlet domNode = domNodeList[i];\n\n\t\t\t\t\t\tif ( domNode ) {\n\t\t\t\t\t\t\tdomNode.nodeValue = item;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else if ( typeof item === 'object' ) {\n\n\t\t\t\t\t\titem.tree.dom.update( oldItem, item, treeLifecycle, context );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif ( isStringOrNumber( item ) ) {\n\t\t\t\t\t\tconst childNode = document.createTextNode( item );\n\n\t\t\t\t\t\tdomNodeList[i] = childNode;\n\t\t\t\t\t\tinsertOrAppend( parentNode, childNode, parentNextNode );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\tif ( domNodeList[i] ) {\n\t\t\t\t\tparentNode.removeChild( domNodeList[i] );\n\t\t\t\t\tdomNodeList.splice( i, 1 );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport function insertOrAppend(parentNode, newNode, nextNode) {\n\tif (nextNode) {\n\t\tparentNode.insertBefore(newNode, nextNode);\n\t} else {\n\t\tparentNode.appendChild(newNode);\n\t}\n}\n\nexport function remove(item, parentNode) {\n\tconst rootNode = item.rootNode;\n\n\tif (isVoid( rootNode ) ||\n\t\t!( rootNode.nodeType)) {\n\t\treturn null;\n\t}\n\tif (rootNode === parentNode) {\n\t\tparentNode.innerHTML = '';\n\t} else {\n\t\tparentNode.removeChild(item.rootNode);\n\t\tif (recyclingEnabled) {\n\t\t\tpool(item);\n\t\t}\n\t}\n}\n\nexport function createVirtualList( value, item, childNodeList, treeLifecycle, context ) {\n\tconst domNode = document.createDocumentFragment();\n\tlet keyedChildren = true;\n\n\tif ( isVoid( value ) ) {\n\t\treturn;\n\t}\n\n\tfor ( let i = 0; i < value.length; i++ ) {\n\t\tconst childNode = value[i];\n\t\tconst childType = getTypeFromValue( childNode );\n\t\tlet childDomNode;\n\n\t\tswitch ( childType ) {\n\t\t\tcase ValueTypes.TEXT:\n\t\t\t\tchildDomNode = document.createTextNode( childNode );\n\t\t\t\tchildNodeList.push( childDomNode );\n\t\t\t\tdomNode.appendChild( childDomNode );\n\t\t\t\tkeyedChildren = false;\n\t\t\t\tbreak;\n\t\t\tcase ValueTypes.TREE:\n\t\t\t\tkeyedChildren = false;\n\t\t\t\tchildDomNode = childNode.create( item, treeLifecycle, context );\n\t\t\t\tchildNodeList.push( childDomNode );\n\n\t\t\t\tif ( process.env.NODE_ENV !== 'production' ) {\n\t\t\t\t\tif ( childDomNode === undefined ) {\n\t\t\t\t\t\tthrow Error( 'Inferno Error: Children must be provided as templates.' );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t\tdomNode.appendChild( childDomNode );\n\t\t\t\tbreak;\n\t\t\tcase ValueTypes.FRAGMENT:\n\t\t\t\tif ( childNode.key === undefined ) {\n\t\t\t\t\tkeyedChildren = false;\n\t\t\t\t}\n\t\t\t\tchildDomNode = childNode.tree.dom.create( childNode, treeLifecycle, context );\n\t\t\t\tchildNodeList.push( childDomNode );\n\t\t\t\tdomNode.appendChild( childDomNode );\n\t\t\t\tbreak;\n\t\t\tcase ValueTypes.EMPTY_OBJECT:\n\t\t\t\tif ( process.env.NODE_ENV !== 'production' ) {\n\t\t\t\t\tthrow Error( infernoBadTemplate );\n\t\t\t\t} else {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\tcase ValueTypes.FUNCTION:\n\t\t\t\tif ( process.env.NODE_ENV !== 'production' ) {\n\t\t\t\t\tthrow Error( infernoBadTemplate );\n\t\t\t\t} else {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\tcase ValueTypes.ARRAY:\n\t\t\t\tif ( process.env.NODE_ENV !== 'production' ) {\n\t\t\t\t\tthrow Error( 'Inferno Error: Deep nested arrays are not supported as a valid template values - e.g. [[[1, 2, 3]]]. Only shallow nested arrays are supported - e.g. [[1, 2, 3]].' );\n\t\t\t\t} else {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t}\n\t}\n\treturn { domNode, keyedChildren };\n}\n\nexport function updateVirtualList( lastValue, nextValue, childNodeList, domNode, nextDomNode, keyedChildren, treeLifecycle, context ) {\n\tif ( isVoid( lastValue ) ) {\n\t\treturn null;\n\t}\n\t// NOTE: if someone switches from keyed to non-keyed, the node order won't be right...\n\tif ( isArray( lastValue ) ) {\n\t\tif ( keyedChildren ) {\n\t\t\tupdateKeyed( nextValue, lastValue, domNode, nextDomNode, treeLifecycle, context );\n\t\t} else {\n\t\t\tupdateNonKeyed( nextValue, lastValue, childNodeList, domNode, nextDomNode, treeLifecycle, context );\n\t\t}\n\t} else {\n\t\t// TODO\n\t}\n}\n","import isArray from '../../util/isArray';\nimport isVoid from '../../util/isVoid';\nimport updateAndAppendDynamicChildren from '../../shared/updateAndAppendDynamicChildren';\nimport appendText from '../../util/appendText';\nimport removeChild from '../../core/removeChild';\nimport replaceChild from '../../core/replaceChild';\nimport isStringOrNumber from '../../util/isStringOrNumber';\nimport { recycle } from '../recycling';\nimport { getValueWithIndex, removeValueTree } from '../../core/variables';\nimport { updateKeyed, updateNonKeyed } from '../domMutate';\nimport { addDOMDynamicAttributes, updateDOMDynamicAttributes, clearListeners } from '../addAttributes';\nimport recreateRootNode from '../recreateRootNode';\n\nexport default function createRootNodeWithDynamicChild( templateNode, valueIndex, dynamicAttrs, recyclingEnabled ) {\n\tlet keyedChildren = true;\n\tlet childNodeList = [];\n\tconst node = {\n\t\tpool: [],\n\t\tkeyedPool: [],\n\t\toverrideItem: null,\n\t\tcreate( item, treeLifecycle, context ) {\n\t\t\tlet domNode;\n\n\t\t\tif ( recyclingEnabled ) {\n\t\t\t\tdomNode = recycle( node, item, treeLifecycle, context );\n\t\t\t\tif ( domNode ) {\n\t\t\t\t\treturn domNode;\n\t\t\t\t}\n\t\t\t}\n\t\t\tdomNode = templateNode.cloneNode( false );\n\n\t\t\tconst value = getValueWithIndex( item, valueIndex );\n\n\t\t\tif ( !isVoid( value ) ) {\n\t\t\t\tif ( isArray( value ) ) {\n\t\t\t\t\tfor ( let i = 0; i < value.length; i++ ) {\n\t\t\t\t\t\tconst childItem = value[i];\n\t\t\t\t\t\t// catches edge case where we e.g. have [null, null, null] as a starting point\n\t\t\t\t\t\tif ( !isVoid( childItem ) && typeof childItem === 'object' ) {\n\t\t\t\t\t\t\tconst tree = childItem && childItem.tree;\n\n\t\t\t\t\t\t\tif ( tree ) {\n\t\t\t\t\t\t\t\tconst childNode = childItem.tree.dom.create( childItem, treeLifecycle, context);\n\n\t\t\t\t\t\t\t\tif ( childItem.key === undefined ) {\n\t\t\t\t\t\t\t\t\tkeyedChildren = false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchildNodeList.push( childNode );\n\t\t\t\t\t\t\t\tdomNode.appendChild( childNode );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if ( isStringOrNumber( childItem ) ) {\n\t\t\t\t\t\t\tconst textNode = document.createTextNode( childItem );\n\n\t\t\t\t\t\t\tdomNode.appendChild( textNode );\n\t\t\t\t\t\t\tchildNodeList.push( textNode );\n\t\t\t\t\t\t\tkeyedChildren = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if ( typeof value === 'object' ) {\n\t\t\t\t\tconst tree = value && value.tree;\n\n\t\t\t\t\tif ( tree ) {\n\t\t\t\t\t\tdomNode.appendChild( value.tree.dom.create( value, treeLifecycle, context ) );\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( isStringOrNumber( value ) ) {\n\t\t\t\t\tdomNode.textContent = value;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( dynamicAttrs ) {\n\t\t\t\taddDOMDynamicAttributes( item, domNode, dynamicAttrs, node );\n\t\t\t}\n\t\t\titem.rootNode = domNode;\n\t\t\treturn domNode;\n\t\t},\n\t\tupdate( lastItem, nextItem, treeLifecycle, context ) {\n\t\t\tif ( node !== lastItem.tree.dom ) {\n\t\t\t\tchildNodeList = [];\n\t\t\t\trecreateRootNode( lastItem, nextItem, node, treeLifecycle, context );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst domNode = lastItem.rootNode;\n\n\t\t\tnextItem.rootNode = domNode;\n\t\t\tnextItem.id = lastItem.id;\n\t\t\tconst nextValue = getValueWithIndex( nextItem, valueIndex );\n\t\t\tconst lastValue = getValueWithIndex( lastItem, valueIndex );\n\n\t\t\tif (nextValue && isVoid( lastValue)) {\n\t\t\t\tif (typeof nextValue === 'object') {\n\t\t\t\t\tif (isArray(nextValue )) {\n\t\t\t\t\t\tupdateAndAppendDynamicChildren(domNode, nextValue);\n\t\t\t\t\t} else {\n\t\t\t\t\t\trecreateRootNode(lastItem, nextItem, node, treeLifecycle, context);\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\t\t\t\t\tdomNode.appendChild(document.createTextNode(nextValue));\n\t\t\t\t}\n\t\t\t} else if (lastValue && isVoid(nextValue)) {\n\t\t\t\tif (isArray(lastValue)) {\n\t\t\t\t\tfor ( let i = 0; i < lastValue.length; i++ ) {\n\t\t\t\t\t\tif ( !isVoid( domNode.childNodes[i] ) ) {\n\t\t\t\t\t\t\tdomNode.removeChild( domNode.childNodes[i] );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tremoveChild( domNode );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tremoveChild( domNode );\n\t\t\t\t}\n\t\t\t} else if (nextValue !== lastValue) {\n\t\t\t\tif (isStringOrNumber( nextValue)) {\n\t\t\t\t\tappendText(domNode, nextValue);\n\t\t\t\t} else if (isVoid( nextValue)) {\n\t\t\t\t\tif (domNode !== null) {\n\t\t\t\t\t\treplaceChild( domNode, document.createTextNode( '' ) );\n\t\t\t\t\t}\n\t\t\t\t\t// if we update from undefined, we will have an array with zero length.\n\t\t\t\t\t// If we check if it's an array, it will throw 'x' is undefined.\n\t\t\t\t} else if (isArray( nextValue)) {\n\t\t\t\t\tif (isArray( lastValue)) {\n\t\t\t\t\t\tif ( keyedChildren ) {\n\t\t\t\t\t\t\tupdateKeyed( nextValue, lastValue, domNode, null, treeLifecycle, context );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tupdateNonKeyed( nextValue, lastValue, childNodeList, domNode, null, treeLifecycle, context );\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tupdateNonKeyed( nextValue, [], childNodeList, domNode, null, treeLifecycle, context );\n\t\t\t\t\t}\n\t\t\t\t} else if ( typeof nextValue === 'object' ) {\n\t\t\t\t\t// Sometimes 'nextValue' can be an empty array or nothing at all, then it will\n\t\t\t\t\t// throw ': nextValue.tree is undefined'.\n\t\t\t\t\tconst tree = nextValue && nextValue.tree;\n\t\t\t\t\tif ( !isVoid( tree ) ) {\n\t\t\t\t\t\tif ( !isVoid( lastValue ) ) {\n\t\t\t\t\t\t\t// If we update from 'null', there will be no 'tree', and the code will throw.\n\t\t\t\t\t\t\tconst oldTree = lastValue && lastValue.tree;\n\n\t\t\t\t\t\t\tif ( !isVoid( oldTree ) ) {\n\t\t\t\t\t\t\t\ttree.dom.update( lastValue, nextValue, treeLifecycle, context );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\trecreateRootNode( lastItem, nextItem, node, treeLifecycle, context );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treplaceChild(domNode, tree.dom.create( nextValue, treeLifecycle, context));\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Edge case! If we update from e.g object literal - {} - from a existing value, the\n\t\t\t\t\t\t// value will not be unset\n\t\t\t\t\t\tremoveChild(domNode);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( dynamicAttrs ) {\n\t\t\t\tupdateDOMDynamicAttributes( lastItem, nextItem, domNode, dynamicAttrs );\n\t\t\t}\n\t\t},\n\t\tremove(item, treeLifecycle) {\n\t\t\tremoveValueTree(getValueWithIndex(item, valueIndex), treeLifecycle);\n\t\t\tif (dynamicAttrs) {\n\t\t\t\tclearListeners(item, item.rootNode, dynamicAttrs);\n\t\t\t}\n\t\t}\n\t};\n\n\treturn node;\n}\n","export default function recreateNode( lastDomNode, nextItem, node, treeLifecycle, context ) {\nconst domNode = node.create( nextItem, treeLifecycle, context );\n\n\tlastDomNode.parentNode.replaceChild( domNode, lastDomNode );\n\t// TODO recycle old node\n}\n","import isArray from '../../util/isArray';\nimport isVoid from '../../util/isVoid';\nimport updateAndAppendDynamicChildren from '../../shared/updateAndAppendDynamicChildren';\nimport appendText from '../../util/appendText';\nimport recreateNode from '../recreateNode';\nimport isStringOrNumber from '../../util/isStringOrNumber';\nimport { getValueWithIndex, removeValueTree } from '../../core/variables';\nimport removeChild from '../../core/removeChild';\nimport { updateKeyed, updateNonKeyed } from '../domMutate';\nimport { addDOMDynamicAttributes, updateDOMDynamicAttributes, clearListeners } from '../addAttributes';\n\nexport default function createNodeWithDynamicChild(templateNode, valueIndex, dynamicAttrs) {\n\tlet keyedChildren = true;\n\tconst domNodeMap = {};\n\tconst childNodeList = [];\n\tconst node = {\n\t\toverrideItem: null,\n\t\tcreate( item, treeLifecycle, context ) {\n\t\t\tconst domNode = templateNode.cloneNode( false );\n\t\t\tconst value = getValueWithIndex( item, valueIndex );\n\n\t\t\tif ( !isVoid( value ) ) {\n\t\t\t\tif ( isArray( value ) ) {\n\t\t\t\t\tfor ( let i = 0; i < value.length; i++ ) {\n\t\t\t\t\t\tconst childItem = value[i];\n\t\t\t\t\t\t// catches edge case where we e.g. have [null, null, null] as a starting point\n\t\t\t\t\t\tif ( !isVoid( childItem ) && typeof childItem === 'object' ) {\n\n\t\t\t\t\t\t\tconst tree = childItem && childItem.tree;\n\n\t\t\t\t\t\t\tif ( tree ) {\n\t\t\t\t\t\t\t\tconst childNode = childItem.tree.dom.create( childItem, treeLifecycle, context );\n\n\t\t\t\t\t\t\t\tif ( childItem.key === undefined ) {\n\t\t\t\t\t\t\t\t\tkeyedChildren = false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchildNodeList.push( childNode );\n\t\t\t\t\t\t\t\tdomNode.appendChild( childNode );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if ( isStringOrNumber( childItem ) ) {\n\t\t\t\t\t\t\tconst textNode = document.createTextNode( childItem );\n\n\t\t\t\t\t\t\tdomNode.appendChild( textNode );\n\t\t\t\t\t\t\tchildNodeList.push( textNode );\n\t\t\t\t\t\t\tkeyedChildren = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if ( typeof value === 'object' ) {\n\n\t\t\t\t\tconst tree = value && value.tree;\n\n\t\t\t\t\tif ( tree ) {\n\t\t\t\t\t\tdomNode.appendChild( value.tree.dom.create( value, treeLifecycle, context ) );\n\t\t\t\t\t}\n\t\t\t\t} else if ( isStringOrNumber( value ) ) {\n\t\t\t\t\tdomNode.textContent = value;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (dynamicAttrs) {\n\t\t\t\taddDOMDynamicAttributes(item, domNode, dynamicAttrs, null);\n\t\t\t}\n\t\t\tdomNodeMap[item.id] = domNode;\n\t\t\treturn domNode;\n\t\t},\n\t\tupdate( lastItem, nextItem, treeLifecycle, context ) {\n\t\t\tconst domNode = domNodeMap[lastItem.id];\n\t\t\tconst nextValue = getValueWithIndex( nextItem, valueIndex );\n\t\t\tconst lastValue = getValueWithIndex( lastItem, valueIndex );\n\n\t\t\tif ( nextValue && isVoid( lastValue ) ) {\n\n\t\t\t\tif ( typeof nextValue === 'object' ) {\n\t\t\t\t\tif ( isArray( nextValue ) ) {\n\t\t\t\t\t\tupdateAndAppendDynamicChildren( domNode, nextValue );\n\t\t\t\t\t} else {\n\t\t\t\t\t\trecreateNode( lastItem, nextItem, node, treeLifecycle, context );\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\t\t\t\t\tdomNode.appendChild( document.createTextNode( nextValue ) );\n\t\t\t\t}\n\t\t\t} else \tif ( lastValue && isVoid( nextValue ) ) {\n\n\t\t\t\tif ( isArray( lastValue ) ) {\n\n\t\t\t\t\tfor ( let i = 0; i < lastValue.length; i++ ) {\n\n\t\t\t\t\t\tif ( !isVoid( domNode.childNodes[i] ) ) {\n\t\t\t\t\t\t\tdomNode.removeChild( domNode.childNodes[i] );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tremoveChild( domNode );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tremoveChild( domNode );\n\t\t\t\t}\n\t\t\t} else if ( nextValue !== lastValue ) {\n\t\t\t\tif ( isStringOrNumber( nextValue ) ) {\n\t\t\t\t\tappendText( domNode, nextValue );\n\t\t\t\t} else if ( isVoid( nextValue ) ) {\n\t\t\t\t\tremoveChild( domNode );\n\t\t\t\t\t// if we update from undefined, we will have an array with zero length.\n\t\t\t\t\t// If we check if it's an array, it will throw 'x' is undefined.\n\t\t\t\t} else if ( nextValue.length !== 0 && isArray( nextValue ) ) {\n\t\t\t\t\tif ( lastValue && isArray( lastValue ) ) {\n\t\t\t\t\t\tif ( keyedChildren ) {\n\t\t\t\t\t\t\tupdateKeyed( nextValue, lastValue, domNode, null, treeLifecycle, context );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tupdateNonKeyed( nextValue, lastValue, childNodeList, domNode, null, treeLifecycle, context );\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// lastValue is undefined, so set it to an empty array and update\n\t\t\t\t\t\tupdateNonKeyed( nextValue, [], childNodeList, domNode, null, treeLifecycle, context);\n\t\t\t\t\t}\n\t\t\t\t} else if ( typeof nextValue === 'object' ) {\n\t\t\t\t\t// Sometimes 'nextValue' can be an empty array or nothing at all, then it will\n\t\t\t\t\t// throw ': nextValue.tree is undefined'.\n\t\t\t\t\tconst tree = nextValue && nextValue.tree;\n\n\t\t\t\t\tif ( !isVoid( tree ) ) {\n\n\t\t\t\t\t\t// If we update from 'null', there will be no 'tree', and the code will throw.\n\t\t\t\t\t\tconst tree = lastValue && lastValue.tree;\n\n\t\t\t\t\t\tif ( !isVoid( tree ) ) {\n\t\t\t\t\t\t\ttree.dom.update( lastValue, nextValue, treeLifecycle, context );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// TODO implement\n\t\t\t\t\t\t\t// NOTE There will be no 'tree' if we update from a null value\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Edge case! If we update from e.g object literal - {} - from a existing value, the\n\t\t\t\t\t\t// value will not be unset\n\t\t\t\t\t\tremoveChild( domNode );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (dynamicAttrs) {\n\t\t\t\tupdateDOMDynamicAttributes(lastItem, nextItem, domNode, dynamicAttrs);\n\t\t\t}\n\t\t},\n\t\tremove(item, treeLifecycle) {\n\t\t\tconst domNode = domNodeMap[item.id];\n\n\t\t\tremoveValueTree(getValueWithIndex(item, valueIndex), treeLifecycle);\n\t\t\tif (dynamicAttrs) {\n\t\t\t\tclearListeners(item, domNode, dynamicAttrs);\n\t\t\t}\n\t\t}\n\t};\n\n\treturn node;\n}\n","import isVoid from '../util/isVoid';\nimport isArray from '../util/isArray';\n\nexport default function addShapeChildren(domNode, subTreeForChildren, item, treeLifecycle, context ) {\n\n\tif ( !isVoid( subTreeForChildren ) ) {\n\t\tif ( isArray( subTreeForChildren ) ) {\n\t\t\tfor ( let i = 0; i < subTreeForChildren.length; i++ ) {\n\t\t\t\tconst subTree = subTreeForChildren[i];\n\t\t\t\tconst childNode = subTree.create( item, treeLifecycle, context );\n\n\t\t\t\tdomNode.appendChild( childNode );\n\t\t\t}\n\t\t} else if ( typeof subTreeForChildren === 'object' ) {\n\t\t\tdomNode.appendChild( subTreeForChildren.create( item, treeLifecycle, context ) );\n\t\t}\n\t}\n}","import isArray from '../../util/isArray';\nimport isVoid from '../../util/isVoid';\nimport { recycle } from '../recycling';\nimport { addDOMDynamicAttributes, updateDOMDynamicAttributes, clearListeners } from '../addAttributes';\nimport recreateRootNode from '../recreateRootNode';\nimport addShapeChildren from '../../shared/addShapeChildren';\n\nexport default function createRootNodeWithDynamicSubTreeForChildren(templateNode, subTreeForChildren, dynamicAttrs, recyclingEnabled) {\n\tconst node = {\n\t\tpool: [],\n\t\tkeyedPool: [],\n\t\toverrideItem: null,\n\t\tcreate(item, treeLifecycle, context) {\n\t\t\tlet domNode;\n\n\t\t\tif ( recyclingEnabled ) {\n\t\t\t\tdomNode = recycle( node, item, treeLifecycle, context );\n\t\t\t\tif ( domNode ) {\n\t\t\t\t\treturn domNode;\n\t\t\t\t}\n\t\t\t}\n\t\t\tdomNode = templateNode.cloneNode( false );\n\n\t\t\taddShapeChildren(domNode, subTreeForChildren, item, treeLifecycle, context );\n\n\t\t\tif ( dynamicAttrs ) {\n\t\t\t\taddDOMDynamicAttributes( item, domNode, dynamicAttrs, node );\n\t\t\t}\n\t\t\titem.rootNode = domNode;\n\t\t\treturn domNode;\n\t\t},\n\t\tupdate(lastItem, nextItem, treeLifecycle, context) {\n\t\t\tnextItem.id = lastItem.id;\n\n\t\t\tif ( node !== lastItem.tree.dom ) {\n\t\t\t\tconst newDomNode = recreateRootNode( lastItem, nextItem, node, treeLifecycle, context );\n\n\t\t\t\tnextItem.rootNode = newDomNode;\n\t\t\t\treturn newDomNode;\n\t\t\t}\n\t\t\tconst domNode = lastItem.rootNode;\n\n\t\t\tnextItem.rootNode = domNode;\n\t\t\tif ( !isVoid( subTreeForChildren ) ) {\n\t\t\t\tif ( isArray( subTreeForChildren ) ) {\n\t\t\t\t\tfor ( let i = 0; i < subTreeForChildren.length; i++ ) {\n\t\t\t\t\t\tconst subTree = subTreeForChildren[i];\n\n\t\t\t\t\t\tsubTree.update( lastItem, nextItem, treeLifecycle, context );\n\t\t\t\t\t}\n\t\t\t\t} else if ( typeof subTreeForChildren === 'object' ) {\n\t\t\t\t\tsubTreeForChildren.update( lastItem, nextItem, treeLifecycle, context );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( dynamicAttrs ) {\n\t\t\t\tupdateDOMDynamicAttributes( lastItem, nextItem, domNode, dynamicAttrs );\n\t\t\t}\n\t\t},\n\t\tremove(item, treeLifecycle) {\n\t\t\tif (!isVoid( subTreeForChildren)) {\n\t\t\t\tif (isArray( subTreeForChildren)) {\n\t\t\t\t\tfor (let i = 0; i < subTreeForChildren.length; i++) {\n\t\t\t\t\t\tconst subTree = subTreeForChildren[i];\n\n\t\t\t\t\t\tsubTree.remove(item, treeLifecycle);\n\t\t\t\t\t}\n\t\t\t\t} else if (typeof subTreeForChildren === 'object') {\n\t\t\t\t\tsubTreeForChildren.remove(item, treeLifecycle);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (dynamicAttrs) {\n\t\t\t\tclearListeners(item, item.rootNode, dynamicAttrs);\n\t\t\t}\n\t\t}\n\t};\n\n\treturn node;\n}\n","import isArray from '../../util/isArray';\nimport isVoid from '../../util/isVoid';\nimport addShapeChildren from '../../shared/addShapeChildren';\nimport replaceChild from '../../core/replaceChild';\nimport { addDOMDynamicAttributes, updateDOMDynamicAttributes, clearListeners } from '../addAttributes';\nimport recreateNode from '../recreateNode';\n\nexport default function createNodeWithDynamicSubTreeForChildren(templateNode, subTreeForChildren, dynamicAttrs) {\n\tconst domNodeMap = {};\n\tconst node = {\n\t\toverrideItem: null,\n\t\tcreate(item, treeLifecycle, context) {\n\t\t\tconst domNode = templateNode.cloneNode(false);\n\n\t\t\taddShapeChildren(domNode, subTreeForChildren, item, treeLifecycle, context);\n\t\t\tif (dynamicAttrs) {\n\t\t\t\taddDOMDynamicAttributes(item, domNode, dynamicAttrs, null);\n\t\t\t}\n\t\t\tdomNodeMap[item.id] = domNode;\n\t\t\treturn domNode;\n\t\t},\n\t\tupdate(lastItem, nextItem, treeLifecycle, context) {\n\t\t\tconst domNode = domNodeMap[lastItem.id];\n\n\t\t\tif (!isVoid( subTreeForChildren)) {\n\t\t\t\tif (isArray( subTreeForChildren)) {\n\t\t\t\t\tfor (let i = 0; i < subTreeForChildren.length; i++) {\n\t\t\t\t\t\tconst subTree = subTreeForChildren[i];\n\n\t\t\t\t\t\tsubTree.update(lastItem, nextItem, treeLifecycle, context);\n\t\t\t\t\t}\n\t\t\t\t} else if (typeof subTreeForChildren === 'object') {\n\t\t\t\t\tconst newDomNode = subTreeForChildren.update(lastItem, nextItem, treeLifecycle, context);\n\n\t\t\t\t\tif (newDomNode) {\n\t\t\t\t\t\treplaceChild(domNode, newDomNode);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (dynamicAttrs) {\n\t\t\t\tupdateDOMDynamicAttributes(lastItem, nextItem, domNode, dynamicAttrs);\n\t\t\t}\n\t\t},\n\t\tremove(item, treeLifecycle) {\n\t\t\tconst domNode = domNodeMap[item.id];\n\n\t\t\tif (!isVoid( subTreeForChildren)) {\n\t\t\t\tif (isArray( subTreeForChildren)) {\n\t\t\t\t\tfor (let i = 0; i < subTreeForChildren.length; i++) {\n\t\t\t\t\t\tconst subTree = subTreeForChildren[i];\n\n\t\t\t\t\t\tsubTree.remove(item, treeLifecycle);\n\t\t\t\t\t}\n\t\t\t\t} else if (typeof subTreeForChildren === 'object') {\n\t\t\t\t\tsubTreeForChildren.remove(item, treeLifecycle);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (dynamicAttrs) {\n\t\t\t\tclearListeners(item, domNode, dynamicAttrs);\n\t\t\t}\n\t\t}\n\t};\n\treturn node;\n}\n","import isVoid from '../../util/isVoid';\nimport { getValueWithIndex, getTypeFromValue, ValueTypes } from '../../core/variables';\nimport recreateNode from '../recreateNode';\nimport { createVirtualList, updateVirtualList } from '../domMutate';\n\nexport default function createDynamicNode(valueIndex) {\n\tconst domNodeMap = {};\n\tlet childNodeList = [];\n\tlet keyedChildren = true;\n\tlet nextDomNode;\n\tconst node = {\n\t\toverrideItem: null,\n\t\tcreate( item, treeLifecycle, context ) {\n\t\t\tlet value = getValueWithIndex( item, valueIndex );\n\t\t\tlet domNode;\n\t\t\tconst type = getTypeFromValue( value );\n\n\t\t\tswitch ( type ) {\n\t\t\t\tcase ValueTypes.TEXT:\n\t\t\t\t\t// Testing the length property are actually faster than testing the\n\t\t\t\t\t// string against '', because the interpreter won't have to create a String\n\t\t\t\t\t// object from the string literal.\n\t\t\t\t\tif ( isVoid( value ) || value.length === 0 ) {\n\t\t\t\t\t\tvalue = '';\n\t\t\t\t\t}\n\t\t\t\t\tdomNode = document.createTextNode( value );\n\t\t\t\t\tbreak;\n\t\t\t\tcase ValueTypes.ARRAY:\n\t\t\t\t\tconst virtualList = createVirtualList( value, item, childNodeList, treeLifecycle, context );\n\t\t\t\t\tdomNode = virtualList.domNode;\n\t\t\t\t\tkeyedChildren = virtualList.keyedChildren;\n\t\t\t\t\ttreeLifecycle.addTreeSuccessListener( () => {\n\t\t\t\t\t\tnextDomNode = childNodeList[ childNodeList.length - 1 ].nextSibling || null;\n\t\t\t\t\t\tdomNode = childNodeList[0].parentNode;\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\t\t\t\tcase ValueTypes.TREE:\n\t\t\t\t\tdomNode = value.create( item, treeLifecycle, context );\n\t\t\t\t\tbreak;\n\t\t\t\tcase ValueTypes.EMPTY_OBJECT:\n\t\t\t\t\tif (process.env.NODE_ENV !== 'production') {\n\t\t\t\t\t\tthrow Error( 'Inferno Error: A valid template node must be returned. You may have returned undefined, an array or some other invalid object.' );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase ValueTypes.FUNCTION:\n\t\t\t\t\tif ( process.env.NODE_ENV !== 'production' ) {\n\t\t\t\t\t\tthrow Error( 'Inferno Error: A valid template node must be returned. You may have returned undefined, an array or some other invalid object.' );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase ValueTypes.FRAGMENT:\n\t\t\t\t\tdomNode = value.tree.dom.create( value, treeLifecycle, context );\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdomNodeMap[item.id] = domNode;\n\t\t\treturn domNode;\n\t\t},\n\t\tupdate(lastItem, nextItem, treeLifecycle, context) {\n\t\t\tlet domNode = domNodeMap[lastItem.id];\n\t\t\tlet nextValue = getValueWithIndex( nextItem, valueIndex );\n\t\t\tconst lastValue = getValueWithIndex( lastItem, valueIndex );\n\n\t\t\tif ( nextValue !== lastValue ) {\n\t\t\t\tconst nextType = getTypeFromValue( nextValue );\n\t\t\t\tconst lastType = getTypeFromValue( lastValue );\n\n\t\t\t\tif ( lastType !== nextType ) {\n\t\t\t\t\trecreateNode( domNode, nextItem, node, treeLifecycle, context );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswitch ( nextType ) {\n\t\t\t\t\tcase ValueTypes.TEXT:\n\t\t\t\t\t\t// Testing the length property are actually faster than testing the\n\t\t\t\t\t\t// string against '', because the interpreter won't have to create a String\n\t\t\t\t\t\t// object from the string literal.\n\t\t\t\t\t\tif ( isVoid( nextValue ) ||\n\t\t\t\t\t\t\tnextValue.length === 0 ) {\n\t\t\t\t\t\t\tnextValue = '';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdomNode.nodeValue = nextValue;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ValueTypes.ARRAY:\n\t\t\t\t\t\tupdateVirtualList( lastValue, nextValue, childNodeList, domNode, nextDomNode, keyedChildren, treeLifecycle, context );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ValueTypes.TREE:\n\t\t\t\t\t\t// TODO\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ValueTypes.FRAGMENT:\n\t\t\t\t\t\tnextValue.tree.dom.update( lastValue, nextValue, treeLifecycle, context );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: break;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tremove(item, treeLifecycle) {\n\t\t\tconst value = getValueWithIndex(item, valueIndex);\n\t\t\tconst type = getTypeFromValue(value);\n\n\t\t\tif (type === ValueTypes.TREE) {\n\t\t\t\tvalue.remove(item, treeLifecycle);\n\t\t\t} else if (type === ValueTypes.FRAGMENT) {\n\t\t\t\tvalue.tree.dom.remove(value, treeLifecycle);\n\t\t\t}\n\t\t}\n\t};\n\n\treturn node;\n}","/* eslint new-cap:0 */\nimport isVoid from '../../util/isVoid';\nimport { recycle } from '../recycling';\nimport { getValueWithIndex, getValueForProps } from '../../core/variables';\nimport recreateRootNode from '../recreateRootNode';\n\nlet updateComponent;\n\nconst global = global || (typeof window !== 'undefined' ? window : null);\n\nif (global && global.InfernoComponent) {\n\tupdateComponent = global.InfernoComponent.updateComponent;\n} else if (global && !global.InfernoComponent) {\n\ttry {\n\t\tupdateComponent = require('inferno-component').updateComponent;\n\t} catch (e) {\n\t\t// do nothing, this is fine, the person might be using stateless components\n\t}\n}\n\nexport default function createRootNodeWithComponent( componentIndex, props, recyclingEnabled ) {\n\tlet currentItem;\n\tlet statelessRender;\n\tconst node = {\n\t\tinstance: null,\n\t\tpool: [],\n\t\tkeyedPool: [],\n\t\toverrideItem: null,\n\t\tcreate( item, treeLifecycle, context ) {\n\t\t\tlet instance = node.instance;\n\t\t\tlet domNode;\n\t\t\tlet toUseItem = item;\n\n\t\t\tif ( node.overrideItem !== null ) {\n\t\t\t\ttoUseItem = node.overrideItem;\n\t\t\t}\n\t\t\tif ( recyclingEnabled ) {\n\t\t\t\tdomNode = recycle( node, item, treeLifecycle, context );\n\t\t\t\tif ( domNode ) {\n\t\t\t\t\treturn domNode;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst Component = getValueWithIndex( toUseItem, componentIndex );\n\n\t\t\tcurrentItem = item;\n\t\t\tif ( isVoid( Component ) ) {\n\t\t\t\t// bad component, make a text node\n\t\t\t\tdomNode = document.createTextNode( '' );\n\t\t\t\titem.rootNode = domNode;\n\t\t\t\tnode.instance = null;\n\t\t\t\treturn domNode;\n\t\t\t} else if ( typeof Component === 'function' ) {\n\t\t\t\t// stateless component\n\t\t\t\tif ( !Component.prototype.render ) {\n\t\t\t\t\tconst nextRender = Component( getValueForProps( props, toUseItem ), context );\n\n\t\t\t\t\tnextRender.parent = item;\n\t\t\t\t\tdomNode = nextRender.tree.dom.create( nextRender, treeLifecycle, context );\n\t\t\t\t\tstatelessRender = nextRender;\n\t\t\t\t\titem.rootNode = domNode;\n\t\t\t\t} else {\n\t\t\t\t\tinstance = node.instance = new Component( getValueForProps( props, toUseItem ) );\n\t\t\t\t\tinstance.context = context;\n\t\t\t\t\tinstance.componentWillMount();\n\t\t\t\t\tconst nextRender = instance.render();\n\t\t\t\t\tconst childContext = instance.getChildContext();\n\t\t\t\t\tlet fragmentFirstChild;\n\n\t\t\t\t\tif ( childContext ) {\n\t\t\t\t\t\tcontext = { ...context, ...childContext };\n\t\t\t\t\t}\n\t\t\t\t\tnextRender.parent = item;\n\t\t\t\t\tdomNode = nextRender.tree.dom.create( nextRender, treeLifecycle, context );\n\t\t\t\t\titem.rootNode = domNode;\n\t\t\t\t\tinstance._lastRender = nextRender;\n\n\t\t\t\t\tif ( domNode instanceof DocumentFragment ) {\n\t\t\t\t\t\tfragmentFirstChild = domNode.childNodes[0];\n\t\t\t\t\t}\n\t\t\t\t\ttreeLifecycle.addTreeSuccessListener( () => {\n\t\t\t\t\t\tif ( fragmentFirstChild ) {\n\t\t\t\t\t\t\tdomNode = fragmentFirstChild.parentNode;\n\t\t\t\t\t\t\titem.rootNode = domNode;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinstance.componentDidMount();\n\t\t\t\t\t} );\n\t\t\t\t\tinstance.forceUpdate = () => {\n\t\t\t\t\t\tinstance.context = context;\n\t\t\t\t\t\tconst nextRender = instance.render.call( instance );\n\t\t\t\t\t\tconst childContext = instance.getChildContext();\n\n\t\t\t\t\t\tif ( childContext ) {\n\t\t\t\t\t\t\tcontext = { ...context, ...childContext };\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnextRender.parent = currentItem;\n\t\t\t\t\t\tnextRender.tree.dom.update( instance._lastRender, nextRender, treeLifecycle, context );\n\t\t\t\t\t\tcurrentItem.rootNode = nextRender.rootNode;\n\t\t\t\t\t\tinstance._lastRender = nextRender;\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn domNode;\n\t\t},\n\t\tupdate( lastItem, nextItem, treeLifecycle, context ) {\n\t\t\tconst Component = getValueWithIndex( nextItem, componentIndex );\n\t\t\tlet instance = node.instance;\n\n\t\t\tnextItem.id = lastItem.id;\n\t\t\tcurrentItem = nextItem;\n\t\t\tif ( !Component ) {\n\t\t\t\trecreateRootNode( lastItem, nextItem, node, treeLifecycle, context );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( typeof Component === 'function' ) {\n\t\t\t\tif ( !Component.prototype.render ) {\n\t\t\t\t\tconst nextRender = Component( getValueForProps( props, nextItem ), context );\n\n\t\t\t\t\tnextRender.parent = currentItem;\n\t\t\t\t\tif ( !isVoid( statelessRender ) ) {\n\t\t\t\t\t\tconst newDomNode = nextRender.tree.dom.update(statelessRender || node.instance._lastRender, nextRender, treeLifecycle, context);\n\n\t\t\t\t\t\tif ( newDomNode ) {\n\t\t\t\t\t\t\tif ( nextRender.rootNode.parentNode ) {\n\t\t\t\t\t\t\t\tnextRender.rootNode.parentNode.replaceChild( newDomNode, nextRender.rootNode );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tlastItem.rootNode.parentNode.replaceChild( newDomNode, lastItem.rootNode );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcurrentItem.rootNode = newDomNode;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst newDomNode = nextRender.tree.dom.create( statelessRender, treeLifecycle, context );\n\n\t\t\t\t\t\t\tif ( newDomNode ) {\n\t\t\t\t\t\t\t\tif ( nextRender.rootNode.parentNode ) {\n\t\t\t\t\t\t\t\t\tnextRender.rootNode.parentNode.replaceChild(newDomNode, nextRender.rootNode );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tlastItem.rootNode.parentNode.replaceChild(newDomNode, lastItem.rootNode );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcurrentItem.rootNode = newDomNode;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcurrentItem.rootNode = nextRender.rootNode;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\trecreateRootNode( lastItem, nextItem, node, treeLifecycle, context );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tstatelessRender = nextRender;\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( !instance || node !== lastItem.tree.dom || Component !== instance.constructor ) {\n\t\t\t\t\t\trecreateRootNode( lastItem, nextItem, node, treeLifecycle, context );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst domNode = lastItem.rootNode;\n\t\t\t\t\tconst prevProps = instance.props;\n\t\t\t\t\tconst prevState = instance.state;\n\t\t\t\t\tconst nextState = instance.state;\n\t\t\t\t\tconst nextProps = getValueForProps( props, nextItem );\n\n\t\t\t\t\tnextItem.rootNode = domNode;\n\t\t\t\t\tupdateComponent( instance, prevState, nextState, prevProps, nextProps, instance.forceUpdate );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tremove( item, treeLifecycle ) {\n\t\t\tlet instance = node.instance;\n\n\t\t\tif ( instance ) {\n\t\t\t\tinstance._lastRender.tree.dom.remove( instance._lastRender, treeLifecycle );\n\t\t\t\tinstance.componentWillUnmount();\n\t\t\t\tnode.instance = null;\n\t\t\t}\n\t\t}\n\t};\n\n\treturn node;\n}\n","/* eslint new-cap:0 */\nimport isVoid from '../../util/isVoid';\nimport { getValueWithIndex, getValueForProps } from '../../core/variables';\nimport recreateNode from '../recreateNode';\n\nlet updateComponent;\n\nconst global = global || (typeof window !== 'undefined' ? window : null);\n\nif (global && global.InfernoComponent) {\n\tupdateComponent = global.InfernoComponent.updateComponent;\n} else if (global && !global.InfernoComponent) {\n\ttry {\n\t\tupdateComponent = require('inferno-component').updateComponent;\n\t} catch (e) {\n\t\t// do nothing, this is fine, the person might be using stateless components\n\t}\n}\n\nexport default function createNodeWithComponent(componentIndex, props) {\n\tlet domNode;\n\tlet currentItem;\n\tlet statelessRender;\n\tconst node = {\n\t\toverrideItem: null,\n\t\tinstance: null,\n\t\tcreate(item, treeLifecycle, context) {\n\t\t\tlet toUseItem = item;\n\t\t\tlet nextRender;\n\t\t\tlet instance = node.instance;\n\n\t\t\tif (node.overrideItem !== null) {\n\t\t\t\ttoUseItem = node.overrideItem;\n\t\t\t}\n\t\t\tconst Component = getValueWithIndex(toUseItem, componentIndex);\n\n\t\t\tcurrentItem = item;\n\t\t\tif (isVoid(Component)) {\n\t\t\t\tdomNode = document.createTextNode('');\n\t\t\t\tnode.instance = null;\n\t\t\t\treturn domNode;\n\t\t\t} else if (typeof Component === 'function') {\n\t\t\t\t// stateless component\n\t\t\t\tif (!Component.prototype.render) {\n\t\t\t\t\tnextRender = Component(getValueForProps(props, toUseItem), context);\n\n\t\t\t\t\tnextRender.parent = item;\n\t\t\t\t\tdomNode = nextRender.tree.dom.create(nextRender, treeLifecycle, context);\n\t\t\t\t\tstatelessRender = nextRender;\n\t\t\t\t} else {\n\t\t\t\t\tinstance = new Component(getValueForProps(props, toUseItem));\n\t\t\t\t\tinstance.context = context;\n\t\t\t\t\tinstance.componentWillMount();\n\t\t\t\t\tnextRender = instance.render();\n\t\t\t\t\tconst childContext = instance.getChildContext();\n\t\t\t\t\tlet fragmentFirstChild;\n\n\t\t\t\t\tif (childContext) {\n\t\t\t\t\t\tcontext = { ...context, ...childContext };\n\t\t\t\t\t}\n\t\t\t\t\tnextRender.parent = item;\n\t\t\t\t\tdomNode = nextRender.tree.dom.create(nextRender, treeLifecycle, context);\n\t\t\t\t\tinstance._lastRender = nextRender;\n\n\t\t\t\t\tif (domNode instanceof DocumentFragment) {\n\t\t\t\t\t\tfragmentFirstChild = domNode.childNodes[0];\n\t\t\t\t\t}\n\t\t\t\t\ttreeLifecycle.addTreeSuccessListener(() => {\n\t\t\t\t\t\tif (fragmentFirstChild) {\n\t\t\t\t\t\t\tdomNode = fragmentFirstChild.parentNode;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinstance.componentDidMount();\n\t\t\t\t\t});\n\t\t\t\t\tinstance.forceUpdate = () => {\n\t\t\t\t\t\tinstance.context = context;\n\t\t\t\t\t\tconst nextRender = instance.render.call(instance);\n\t\t\t\t\t\tconst childContext = instance.getChildContext();\n\n\t\t\t\t\t\tif (childContext) {\n\t\t\t\t\t\t\tcontext = { ...context, ...childContext };\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnextRender.parent = currentItem;\n\t\t\t\t\t\tconst newDomNode = nextRender.tree.dom.update(instance._lastRender, nextRender, treeLifecycle, context);\n\n\t\t\t\t\t\tif (newDomNode) {\n\t\t\t\t\t\t\tdomNode = newDomNode;\n\t\t\t\t\t\t\tinstance._lastRender.rootNode = domNode;\n\t\t\t\t\t\t\tinstance._lastRender = nextRender;\n\t\t\t\t\t\t\treturn domNode;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tinstance._lastRender = nextRender;\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn domNode;\n\t\t},\n\t\tupdate(lastItem, nextItem, treeLifecycle, context) {\n\t\t\tconst Component = getValueWithIndex(nextItem, componentIndex);\n\t\t\tlet instance = node.instance;\n\n\t\t\tcurrentItem = nextItem;\n\t\t\tif (!Component) {\n\t\t\t\trecreateNode(domNode, nextItem, node, treeLifecycle, context);\n\t\t\t\tif (instance) {\n\t\t\t\t\tinstance._lastRender.rootNode = domNode;\n\t\t\t\t}\n\t\t\t\treturn domNode;\n\t\t\t}\n\t\t\tif (typeof Component === 'function') {\n\t\t\t\t// stateless component\n\t\t\t\tif (!Component.prototype.render) {\n\t\t\t\t\tconst nextRender = Component(getValueForProps(props, nextItem), context);\n\t\t\t\t\tlet newDomNode;\n\n\t\t\t\t\tnextRender.parent = currentItem;\n\t\t\t\t\t// Edge case. If we update from a stateless component with a null value, we need to re-create it, not update it\n\t\t\t\t\t// E.g. start with 'render(template(null), container); ' will cause this.\n\t\t\t\t\tif (!isVoid(statelessRender)) {\n\t\t\t\t\t\tnewDomNode = nextRender.tree.dom.update(statelessRender || node.instance._lastRender, nextRender, treeLifecycle, context);\n\t\t\t\t\t} else {\n\t\t\t\t\t\trecreateNode(domNode, nextItem, node, treeLifecycle, context);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tstatelessRender = nextRender;\n\n\t\t\t\t\tif (!isVoid(newDomNode)) {\n\t\t\t\t\t\tif (domNode.parentNode) {\n\t\t\t\t\t\t\tdomNode.parentNode.replaceChild(newDomNode, domNode);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdomNode = newDomNode;\n\t\t\t\t\t\treturn domNode;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!instance || Component !== instance.constructor) {\n\t\t\t\t\t\trecreateNode(domNode, nextItem, node, treeLifecycle, context);\n\t\t\t\t\t\treturn domNode;\n\t\t\t\t\t}\n\t\t\t\t\tconst prevProps = instance.props;\n\t\t\t\t\tconst prevState = instance.state;\n\t\t\t\t\tconst nextState = instance.state;\n\t\t\t\t\tconst nextProps = getValueForProps(props, nextItem);\n\n\t\t\t\t\treturn updateComponent(instance, prevState, nextState, prevProps, nextProps, instance.forceUpdate);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tremove(item, treeLifecycle) {\n\t\t\tlet instance = node.instance;\n\n\t\t\tif (instance) {\n\t\t\t\tinstance._lastRender.tree.dom.remove(instance._lastRender, treeLifecycle);\n\t\t\t\tinstance.componentWillUnmount();\n\t\t\t\tnode.instance = null;\n\t\t\t}\n\t\t}\n\t};\n\n\treturn node;\n}\n","import isVoid from '../../util/isVoid';\nimport isStringOrNumber from '../../util/isStringOrNumber';\nimport { recycle } from '../recycling';\nimport { getValueWithIndex } from '../../core/variables';\nimport recreateRootNode from '../recreateRootNode';\n\nexport default function createRootDynamicTextNode( templateNode, valueIndex, recyclingEnabled ) {\n\tconst node = {\n\t\tpool: [],\n\t\tkeyedPool: [],\n\t\toverrideItem: null,\n\t\tcreate( item ) {\n\t\t\tlet domNode;\n\n\t\t\tif ( recyclingEnabled ) {\n\t\t\t\tdomNode = recycle( node, item );\n\t\t\t\tif ( domNode ) {\n\t\t\t\t\treturn domNode;\n\t\t\t\t}\n\t\t\t}\n\t\t\tdomNode = templateNode.cloneNode( false );\n\t\t\tconst value = getValueWithIndex( item, valueIndex );\n\n\t\t\tif ( !isVoid( value ) ) {\n\t\t\t\tif ( isStringOrNumber( value ) ) {\n\t\t\t\t\tdomNode.nodeValue = value;\n\t\t\t\t}\n\t\t\t}\n\t\t\titem.rootNode = domNode;\n\t\t\treturn domNode;\n\t\t},\n\t\tupdate( lastItem, nextItem, treeLifecycle ) {\n\n\t\t\tif ( node !== lastItem.tree.dom ) {\n\n\t\t\t\trecreateRootNode( lastItem, nextItem, node, treeLifecycle );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst domNode = lastItem.rootNode;\n\n\t\t\tnextItem.rootNode = domNode;\n\t\t\tnextItem.id = lastItem.id;\n\t\t\tconst nextValue = getValueWithIndex( nextItem, valueIndex );\n\n\t\t\tif ( nextValue !== getValueWithIndex( lastItem, valueIndex ) ) {\n\t\t\t\tif ( isStringOrNumber( nextValue ) ) {\n\t\t\t\t\tdomNode.nodeValue = nextValue;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tremove( /* lastItem */ ) {\n\n\t\t}\n\t};\n\n\treturn node;\n}\n","import { isRecyclingEnabled, recycle } from '../recycling';\nimport { addDOMDynamicAttributes, updateDOMDynamicAttributes, clearListeners } from '../addAttributes';\nimport recreateRootNode from '../recreateRootNode';\n\nexport default function createRootVoidNode( templateNode, dynamicAttrs, recyclingEnabled ) {\n\tconst node = {\n\t\tpool: [],\n\t\tkeyedPool: [],\n\t\toverrideItem: null,\n\t\tcreate( item ) {\n\t\t\tlet domNode;\n\n\t\t\tif ( recyclingEnabled ) {\n\t\t\t\tdomNode = recycle( node, item );\n\t\t\t\tif ( domNode ) {\n\t\t\t\t\treturn domNode;\n\t\t\t\t}\n\t\t\t}\n\t\t\tdomNode = templateNode.cloneNode( true );\n\t\t\titem.rootNode = domNode;\n\t\t\tif ( dynamicAttrs ) {\n\t\t\t\taddDOMDynamicAttributes( item, domNode, dynamicAttrs, node );\n\t\t\t}\n\t\t\treturn domNode;\n\t\t},\n\t\tupdate( lastItem, nextItem ) {\n\t\t\tif ( node !== lastItem.tree.dom ) {\n\t\t\t\trecreateRootNode( lastItem, nextItem, node );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst domNode = lastItem.rootNode;\n\n\t\t\tnextItem.rootNode = domNode;\n\t\t\tnextItem.rootNode = lastItem.rootNode;\n\t\t\tif ( dynamicAttrs ) {\n\t\t\t\tupdateDOMDynamicAttributes( lastItem, nextItem, domNode, dynamicAttrs );\n\t\t\t}\n\t\t},\n\t\tremove(item) {\n\t\t\tif (dynamicAttrs) {\n\t\t\t\tclearListeners(item, item.rootNode, dynamicAttrs);\n\t\t\t}\n\t\t}\n\t};\n\n\treturn node;\n}\n","import { addDOMDynamicAttributes, updateDOMDynamicAttributes, clearListeners } from '../addAttributes';\n\nexport default function createVoidNode(templateNode, dynamicAttrs) {\n\tconst domNodeMap = {};\n\tconst node = {\n\t\toverrideItem: null,\n\t\tcreate(item) {\n\t\t\tconst domNode = templateNode.cloneNode(true);\n\n\t\t\tif (dynamicAttrs) {\n\t\t\t\taddDOMDynamicAttributes(item, domNode, dynamicAttrs, null);\n\t\t\t}\n\t\t\tdomNodeMap[item.id] = domNode;\n\t\t\treturn domNode;\n\t\t},\n\t\tupdate(lastItem, nextItem) {\n\t\t\tconst domNode = domNodeMap[lastItem.id];\n\n\t\t\tif (dynamicAttrs) {\n\t\t\t\tupdateDOMDynamicAttributes(lastItem, nextItem, domNode, dynamicAttrs);\n\t\t\t}\n\t\t},\n\t\tremove(item) {\n\t\t\tconst domNode = domNodeMap[item.id];\n\n\t\t\tif (dynamicAttrs) {\n\t\t\t\tclearListeners(item, domNode, dynamicAttrs);\n\t\t\t}\n\t\t}\n\t};\n\n\treturn node;\n}\n","export function canHydrate(domNode, nextDomNode) {\n\tif (nextDomNode) {\n\t\tif (nextDomNode.nodeType === 1 && nextDomNode.hasAttribute('data-inferno')) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\t// otherwise clear the DOM node\n\t\t\tdomNode.innerHTML = '';\n\t\t}\n\t}\n}\n\nfunction purgeCommentNodes(domNode, parentDom) {\n\tlet nextSibling = domNode.nextSibling;\n\n\tif (nextSibling && nextSibling.nodeType === 8) {\n\t\tnextSibling = purgeCommentNodes(nextSibling, parentDom);\n\t\tparentDom.removeChild(nextSibling);\n\t}\n\n\treturn nextSibling;\n}\n\nfunction validateHydrateNodeChildren(hydrateNode, templateNode) {\n\tlet templateNodeChild = templateNode.firstChild;\n\tlet hydrateNodeChild = hydrateNode.firstChild;\n\n\twhile (templateNodeChild) {\n\t\tconst result = validateHydrateNode(hydrateNodeChild, templateNodeChild);\n\t\tif (!result) {\n\t\t\treturn false;\n\t\t}\n\t\ttemplateNodeChild = templateNodeChild.nextSibling;\n\t\t// check when we reach a comment and remove it, as they are used to break up text nodes\n\t\thydrateNodeChild = purgeCommentNodes(hydrateNodeChild, hydrateNode);\n\t}\n\treturn true;\n}\n\nexport function validateHydrateNode(hydrateNode, templateNode, item, dynamicAttrs) {\n\t// check nodeNames, return false if not same\n\tif (hydrateNode.nodeName !== templateNode.nodeName) {\n\t\treturn false;\n\t}\n\tif (hydrateNode.nodeType === 1) {\n\t\t// check hydrateNode has all the same attrs as templateNode (as these will be static)\n\t\t// return false if not same\n\t\t// TODO\n\n\t\t// check hydrateNode has all the same attrs as dynamicAttrs+item (as these will be dyanmic),\n\t\t// passively update here and do not return false (as state could have changed) if not same\n\t\tif (dynamicAttrs && item) {\n\t\t\t// TODO\n\t\t}\n\t\t// check through children\n\t\treturn validateHydrateNodeChildren(hydrateNode, templateNode);\n\t} else if (hydrateNode.nodeType === 3) {\n\t\treturn hydrateNode.nodeValue === templateNode.nodeValue;\n\t}\n}","import { isRecyclingEnabled, recycle } from '../recycling';\nimport recreateRootNode, { recreateRootNodeFromHydration } from '../recreateRootNode';\nimport { validateHydrateNode } from '../hydration';\n\nexport default function createRootStaticNode(templateNode, recyclingEnabled) {\n\tconst node = {\n\t\tpool: [],\n\t\tkeyedPool: [],\n\t\toverrideItem: null,\n\t\tcreate(item) {\n\t\t\tlet domNode;\n\n\t\t\tif (recyclingEnabled) {\n\t\t\t\tdomNode = recycle(node, item);\n\t\t\t\tif (domNode) {\n\t\t\t\t\treturn domNode;\n\t\t\t\t}\n\t\t\t}\n\t\t\tdomNode = templateNode.cloneNode( true );\n\t\t\titem.rootNode = domNode;\n\t\t\treturn domNode;\n\t\t},\n\t\tupdate(lastItem, nextItem) {\n\t\t\t// wrong tree and it toggle\n\t\t\tif (node !== lastItem.tree.dom) {\n\t\t\t\trecreateRootNode(lastItem, nextItem, node);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tnextItem.rootNode = lastItem.rootNode;\n\t\t},\n\t\tremove() {},\n\t\thydrate(hydrateNode, item) {\n\t\t\tif (!validateHydrateNode(hydrateNode, templateNode, item)) {\n\t\t\t\trecreateRootNodeFromHydration(hydrateNode, item, node);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\titem.rootNode = hydrateNode;\n\t\t}\n\t};\n\n\treturn node;\n}\n","\nexport default function createStaticNode(templateNode) {\n\tconst node = {\n\t\toverrideItem: null,\n\t\tcreate() {\n\t\t\treturn templateNode.cloneNode(true);\n\t\t},\n\t\tupdate() {},\n\t\tremove() {},\n\t\thydrate() {}\n\t};\n\n\treturn node;\n}\n","import isVoid from '../util/isVoid';\nimport isStringOrNumber from '../util/isStringOrNumber';\nimport isSVGElement from '../util/isSVGElement';\nimport isMathMLElement from '../util/isMathMLElement';\nimport createRootNodeWithDynamicText from './shapes/rootNodeWithDynamicText';\nimport createNodeWithDynamicText from './shapes/nodeWithDynamicText';\nimport createRootNodeWithStaticChild from './shapes/rootNodeWithStaticChild';\nimport createNodeWithStaticChild from './shapes/nodeWithStaticChild';\nimport createRootNodeWithDynamicChild from './shapes/rootNodeWithDynamicChild';\nimport createNodeWithDynamicChild from './shapes/nodeWithDynamicChild';\nimport createRootNodeWithDynamicSubTreeForChildren from './shapes/rootNodeWithDynamicSubTreeForChildren';\nimport createNodeWithDynamicSubTreeForChildren from './shapes/nodeWithDynamicSubTreeForChildren';\n// import createRootDynamicNode from './shapes/rootDynamicNode';\nimport createDynamicNode from './shapes/dynamicNode';\nimport createRootNodeWithComponent from './shapes/rootNodeWithComponent';\nimport createNodeWithComponent from './shapes/nodeWithComponent';\nimport createRootDynamicTextNode from './shapes/rootDynamicTextNode';\n// import createDynamicTextNode from './shapes/dynamicTextNode';\nimport { ObjectTypes } \tfrom '../core/variables';\nimport isArray from '../util/isArray';\nimport { addDOMStaticAttributes } from './addAttributes';\nimport { isRecyclingEnabled } from './recycling';\nimport createRootVoidNode from './shapes/rootVoidNode';\nimport createVoidNode from './shapes/voidNode';\nimport createRootStaticNode from './shapes/rootStaticNode';\nimport createStaticNode from './shapes/staticNode';\n\nfunction createElement(schema, domNamespace, parentNode) {\n\tconst MathNamespace = 'http://www.w3.org/1998/Math/MathML';\n\tconst SVGNamespace = 'http://www.w3.org/2000/svg';\n\tconst nodeName = schema.tag.toLowerCase();\n\tconst is = schema.attrs && schema.attrs.is;\n\n\tlet templateNode;\n\n\tif (domNamespace === undefined) {\n\t\tif (schema.attrs && schema.attrs.xmlns) {\n\t\t\tdomNamespace = schema.attrs.xmlns;\n\t\t} else {\n\t\t\tswitch (nodeName) {\n\t\t\t\tcase 'svg':\n\t\t\t\t\tdomNamespace = SVGNamespace;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'math':\n\t\t\t\t\tdomNamespace = MathNamespace;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\t// Edge case. In case a namespace element are wrapped inside a non-namespace element, it will inherit wrong namespace.\n\t\t\t\t\t// E.g.
- will not work\n\t\t\t\t\tif (parentNode) { // only used by static children\n\t\t\t\t\t\t// check only for top-level element for both mathML and SVG\n\t\t\t\t\t\tif (nodeName === 'svg' && (parentNode.namespaceURI !== SVGNamespace)) {\n\t\t\t\t\t\t\tdomNamespace = SVGNamespace;\n\t\t\t\t\t\t} else if (nodeName === 'math' && (parentNode.namespaceURI !== MathNamespace)) {\n\t\t\t\t\t\t\tdomNamespace = MathNamespace;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (isSVGElement(nodeName)) {\n\t\t\t\t\t\tdomNamespace = SVGNamespace;\n\t\t\t\t\t} else if (isMathMLElement(nodeName)) {\n\t\t\t\t\t\tdomNamespace = MathNamespace;\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\ttemplateNode = domNamespace ?\n\t\tis ?\n\t\t\tdocument.createElementNS(domNamespace, nodeName, is) :\n\t\t\tdocument.createElementNS(domNamespace, nodeName) :\n\t\tis ?\n\t\t\tdocument.createElement(nodeName, is) :\n\t\t\tdocument.createElement(nodeName);\n\n\treturn {\n\t\tnamespace: domNamespace,\n\t\tnode: templateNode\n\t};\n}\n\nconst recyclingEnabled = isRecyclingEnabled();\nconst invalidTemplateError = 'Inferno Error: A valid template node must be returned. You may have returned undefined, an array or some other invalid object.';\n\nfunction createStaticAttributes(node, domNode, excludeAttrs) {\n\tconst attrs = node.attrs;\n\n\tif (!isVoid(attrs)) {\n\t\tif (excludeAttrs) {\n\t\t\tconst newAttrs = { ...attrs };\n\n\t\t\tfor (const attr in excludeAttrs) {\n\t\t\t\tif (newAttrs[attr]) {\n\t\t\t\t\tdelete newAttrs[attr];\n\t\t\t\t}\n\t\t\t}\n\t\t\taddDOMStaticAttributes(node, domNode, newAttrs);\n\t\t} else {\n\t\t\taddDOMStaticAttributes(node, domNode, attrs);\n\t\t}\n\t}\n}\n\nfunction createStaticTreeChildren(children, parentNode, domNamespace) {\n\tif (isArray(children)) {\n\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\tconst childItem = children[i];\n\n\t\t\tif (isStringOrNumber(childItem)) {\n\t\t\t\tconst textNode = document.createTextNode(childItem);\n\n\t\t\t\tparentNode.appendChild(textNode);\n\t\t\t} else {\n\t\t\t\tcreateStaticTreeNode(childItem, parentNode, domNamespace);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (isStringOrNumber(children)) {\n\t\t\tparentNode.textContent = children;\n\t\t} else {\n\t\t\tcreateStaticTreeNode(children, parentNode, domNamespace);\n\t\t}\n\t}\n}\n\nfunction createStaticTreeNode(node, parentNode, domNamespace) {\n\tlet staticNode;\n\n\tif (!isVoid(node)) {\n\t\tif (isStringOrNumber(node)) {\n\t\t\tstaticNode = document.createTextNode(node);\n\t\t} else {\n\t\t\tconst tag = node.tag;\n\n\t\t\tif (tag) {\n\t\t\t\tconst Element = createElement(node, domNamespace, parentNode);\n\n\t\t\t\tstaticNode = Element.node;\n\t\t\t\tdomNamespace = Element.namespace;\n\t\t\t\tconst text = node.text;\n\t\t\t\tconst children = node.children;\n\n\t\t\t\tif (!isVoid(text)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== 'production') {\n\t\t\t\t\t\tif (!isVoid(children)) {\n\t\t\t\t\t\t\tthrow Error(invalidTemplateError);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!isStringOrNumber(text)) {\n\t\t\t\t\t\t\tthrow Error('Inferno Error: Template nodes with TEXT must only have a StringLiteral or NumericLiteral as a value, this is intended for low-level optimisation purposes.');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tstaticNode.textContent = text;\n\t\t\t\t} else {\n\t\t\t\t\tif (!isVoid(children)) {\n\t\t\t\t\t\tcreateStaticTreeChildren(children, staticNode, domNamespace);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcreateStaticAttributes(node, staticNode);\n\t\t\t} else if (node.text) {\n\t\t\t\tstaticNode = document.createTextNode(node.text);\n\t\t\t}\n\t\t}\n\t\tif (process.env.NODE_ENV !== 'production') {\n\t\t\tif (staticNode === undefined) {\n\t\t\t\tthrow Error(invalidTemplateError);\n\t\t\t}\n\t\t}\n\t\tif (parentNode === null) {\n\t\t\treturn staticNode;\n\t\t} else {\n\t\t\tparentNode.appendChild(staticNode);\n\t\t}\n\t}\n}\n\nexport default function createDOMTree(schema, isRoot, dynamicNodeMap, domNamespace) {\n\tif (process.env.NODE_ENV !== 'production') {\n\t\tif (isVoid(schema)) {\n\t\t\tthrow Error(invalidTemplateError);\n\t\t}\n\t\tif (isArray(schema)) {\n\t\t\tthrow Error(invalidTemplateError);\n\t\t}\n\t}\n\n\tconst dynamicFlags = dynamicNodeMap.get(schema);\n\tlet node;\n\tlet templateNode;\n\n\tif (!dynamicFlags) {\n\t\ttemplateNode = createStaticTreeNode(schema, null, domNamespace, schema);\n\t\tif (process.env.NODE_ENV !== 'production') {\n\t\t\tif (!templateNode) {\n\t\t\t\tthrow Error(invalidTemplateError);\n\t\t\t}\n\t\t}\n\t\tif (isRoot) {\n\t\t\tnode = createRootStaticNode(templateNode, recyclingEnabled);\n\t\t} else {\n\t\t\tnode = createStaticNode(templateNode);\n\t\t}\n\t} else {\n\t\tif (dynamicFlags.NODE === true) {\n\t\t\tif (isRoot) {\n\t\t\t\t//\t\tnode = createRootDynamicNode( schema.index, domNamespace, recyclingEnabled );\n\t\t\t} else {\n\t\t\t\tnode = createDynamicNode(schema.index, domNamespace);\n\t\t\t}\n\t\t} else {\n\t\t\tconst tag = schema.tag;\n\t\t\tconst text = schema.text;\n\n\t\t\tif (tag) {\n\t\t\t\tif (tag.type === ObjectTypes.VARIABLE) {\n\t\t\t\t\tconst lastAttrs = schema.attrs;\n\t\t\t\t\tconst attrs = { ...lastAttrs };\n\t\t\t\t\tconst children = schema.children;\n\n\t\t\t\t\tif (children) {\n\t\t\t\t\t\tif (isArray(children)) {\n\t\t\t\t\t\t\tif (children.length > 1) {\n\t\t\t\t\t\t\t\tattrs.children = [];\n\t\t\t\t\t\t\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\t\t\t\t\t\t\tconst childNode = children[i];\n\n\t\t\t\t\t\t\t\t\tattrs.children.push(createDOMTree(childNode, false, dynamicNodeMap, domNamespace));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (children.length === 1) {\n\t\t\t\t\t\t\t\tattrs.children = createDOMTree(children[0], false, dynamicNodeMap, domNamespace);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tattrs.children = createDOMTree(children, false, dynamicNodeMap, domNamespace);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (isRoot) {\n\t\t\t\t\t\treturn createRootNodeWithComponent(tag.index, attrs, children, domNamespace, recyclingEnabled);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn createNodeWithComponent(tag.index, attrs, children, domNamespace);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\ttemplateNode = createElement(schema, domNamespace, null).node;\n\n\t\t\t\tconst attrs = schema.attrs;\n\t\t\t\tlet dynamicAttrs = null;\n\n\t\t\t\tif (!isVoid(attrs)) {\n\t\t\t\t\tif (dynamicFlags.ATTRS === true) {\n\t\t\t\t\t\tdynamicAttrs = attrs;\n\t\t\t\t\t} else if (dynamicFlags.ATTRS !== false) {\n\t\t\t\t\t\tdynamicAttrs = dynamicFlags.ATTRS;\n\t\t\t\t\t\tcreateStaticAttributes(schema, templateNode, dynamicAttrs);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcreateStaticAttributes(schema, templateNode);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst children = schema.children;\n\n\t\t\t\tif (!isVoid(text)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== 'production') {\n\t\t\t\t\t\tif (!isVoid(children)) {\n\t\t\t\t\t\t\tthrow Error('Inferno Error: Template nodes cannot contain both TEXT and a CHILDREN properties, they must only use one or the other.');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (dynamicFlags.TEXT === true) {\n\t\t\t\t\t\tif (isRoot) {\n\t\t\t\t\t\t\tnode = createRootNodeWithDynamicText(templateNode, text.index, dynamicAttrs, recyclingEnabled);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnode = createNodeWithDynamicText(templateNode, text.index, dynamicAttrs);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (isStringOrNumber(text)) {\n\t\t\t\t\t\t\ttemplateNode.textContent = text;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (process.env.NODE_ENV !== 'production') {\n\t\t\t\t\t\t\t\tthrow Error('Inferno Error: Template nodes with TEXT must only have a StringLiteral or NumericLiteral as a value, this is intended for low-level optimisation purposes.');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isRoot) {\n\t\t\t\t\t\t\tnode = createRootNodeWithStaticChild(templateNode, dynamicAttrs, recyclingEnabled);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnode = createNodeWithStaticChild(templateNode, dynamicAttrs);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!isVoid(children)) {\n\t\t\t\t\t\tif (children.type === ObjectTypes.VARIABLE) {\n\t\t\t\t\t\t\tif (isRoot) {\n\t\t\t\t\t\t\t\tnode = createRootNodeWithDynamicChild(\n\t\t\t\t\t\t\t\t\ttemplateNode, children.index, dynamicAttrs, recyclingEnabled\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tnode = createNodeWithDynamicChild(\n\t\t\t\t\t\t\t\t\ttemplateNode, children.index, dynamicAttrs\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (dynamicFlags.CHILDREN === true) {\n\t\t\t\t\t\t\tlet subTreeForChildren = [];\n\n\t\t\t\t\t\t\tif (typeof children === 'object') {\n\t\t\t\t\t\t\t\tif (isArray(children)) {\n\t\t\t\t\t\t\t\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\t\t\t\t\t\t\t\tconst childItem = children[i];\n\n\t\t\t\t\t\t\t\t\t\tsubTreeForChildren.push(createDOMTree(childItem, false, dynamicNodeMap));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsubTreeForChildren = createDOMTree(children, false, dynamicNodeMap);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (isRoot) {\n\t\t\t\t\t\t\t\tnode = createRootNodeWithDynamicSubTreeForChildren(\n\t\t\t\t\t\t\t\t\ttemplateNode, subTreeForChildren, dynamicAttrs, recyclingEnabled\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tnode = createNodeWithDynamicSubTreeForChildren(\n\t\t\t\t\t\t\t\t\ttemplateNode, subTreeForChildren, dynamicAttrs\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (isStringOrNumber(children)) {\n\t\t\t\t\t\t\ttemplateNode.textContent = children;\n\t\t\t\t\t\t\tif (isRoot) {\n\t\t\t\t\t\t\t\tnode = createRootNodeWithStaticChild(templateNode, dynamicAttrs, recyclingEnabled);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tnode = createNodeWithStaticChild(templateNode, dynamicAttrs);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst childNodeDynamicFlags = dynamicNodeMap.get(children);\n\n\t\t\t\t\t\t\tif (childNodeDynamicFlags === undefined) {\n\t\t\t\t\t\t\t\tcreateStaticTreeChildren(children, templateNode);\n\n\t\t\t\t\t\t\t\tif (isRoot) {\n\t\t\t\t\t\t\t\t\tnode = createRootNodeWithStaticChild(templateNode, dynamicAttrs, recyclingEnabled);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnode = createNodeWithStaticChild(templateNode, dynamicAttrs);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (isRoot) {\n\t\t\t\t\t\t\tnode = createRootVoidNode(templateNode, dynamicAttrs, recyclingEnabled);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnode = createVoidNode(templateNode, dynamicAttrs);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (text) {\n\t\t\t\ttemplateNode = document.createTextNode('');\n\t\t\t\t// if ( isRoot ) {\n\t\t\t\tnode = createRootDynamicTextNode(templateNode, text.index);\n\t\t\t\t// } //else {\n//\t\t\t\t\tnode = createDynamicTextNode( templateNode, text.index );\n//\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn node;\n}\n","export default function createRef() {\n\treturn {\n\t\telement: null\n\t};\n}\n","import { remove } from './domMutate';\nimport { canHydrate } from './hydration';\n\nexport default function createDOMFragment(parentNode, nextNode) {\n\tlet lastItem;\n\tlet treeSuccessListeners = [];\n\tconst context = {};\n\tconst treeLifecycle = {\n\t\taddTreeSuccessListener(listener) {\n\t\t\ttreeSuccessListeners.push(listener);\n\t\t},\n\t\tremoveTreeSuccessListener(listener) {\n\t\t\tfor (let i = 0; i < treeSuccessListeners.length; i++) {\n\t\t\t\tconst treeSuccessListener = treeSuccessListeners[i];\n\n\t\t\t\tif ( treeSuccessListener === listener ) {\n\t\t\t\t\ttreeSuccessListeners.splice(i, 1);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\treturn {\n\t\tparentNode,\n\t\trender(nextItem) {\n\t\t\tif (nextItem) {\n\t\t\t\tconst tree = nextItem.tree.dom;\n\n\t\t\t\tif (tree) {\n\t\t\t\t\tconst activeNode = document.activeElement;\n\n\t\t\t\t\tif (lastItem) {\n\t\t\t\t\t\ttree.update(lastItem, nextItem, treeLifecycle, context);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (tree) {\n\t\t\t\t\t\t\tconst hydrateNode = parentNode.firstChild;\n\n\t\t\t\t\t\t\tif (canHydrate(parentNode, hydrateNode)) {\n\t\t\t\t\t\t\t\ttree.hydrate(hydrateNode, nextItem, treeLifecycle, context);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tconst dom = tree.create(nextItem, treeLifecycle, context);\n\n\t\t\t\t\t\t\t\tif (nextNode) {\n\t\t\t\t\t\t\t\t\tparentNode.insertBefore(dom, nextNode);\n\t\t\t\t\t\t\t\t} else if (parentNode) {\n\t\t\t\t\t\t\t\t\tparentNode.appendChild(dom);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (treeSuccessListeners.length > 0) {\n\t\t\t\t\t\tfor (let i = 0; i < treeSuccessListeners.length; i++) {\n\t\t\t\t\t\t\ttreeSuccessListeners[i]();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tlastItem = nextItem;\n\t\t\t\t\tif (activeNode !== document.body && document.activeElement !== activeNode) {\n\t\t\t\t\t\tactiveNode.focus();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tremove() {\n\t\t\tif (lastItem) {\n\t\t\t\tconst tree = lastItem.tree.dom;\n\n\t\t\t\tif (lastItem) {\n\t\t\t\t\ttree.remove(lastItem, treeLifecycle);\n\t\t\t\t}\n\t\t\t\tremove(lastItem, parentNode);\n\t\t\t}\n\t\t\ttreeSuccessListeners = [];\n\t\t}\n\t};\n}\n","import createDOMFragment from '../DOM/createFragment';\n\nconst rootFragments = [];\n\nexport function getRootFragmentAtNode(node) {\n\tconst rootFragmentsLength = rootFragments.length;\n\n\tif (rootFragmentsLength === 0) {\n\t\treturn null;\n\t}\n\tfor (let i = 0; i < rootFragmentsLength; i++) {\n\t\tconst rootFragment = rootFragments[i];\n\n\t\tif (rootFragment.parentNode === node) {\n\t\t\treturn rootFragment;\n\t\t}\n\t}\n\treturn null;\n}\n\nexport function removeRootFragment(rootFragment) {\n\tfor (let i = 0; i < rootFragments.length; i++) {\n\t\tif (rootFragments[i] === rootFragment) {\n\t\t\trootFragments.splice(i, 1);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nexport function render(nextItem, parentNode) {\n\tconst rootFragment = getRootFragmentAtNode(parentNode);\n\n\tif ( rootFragment == null ) {\n\t\tconst fragment = createDOMFragment(parentNode);\n\n\t\tfragment.render(nextItem);\n\t\trootFragments.push(fragment);\n\t} else {\n\t\tif (nextItem == null) {\n\t\t\trootFragment.remove();\n\t\t\tremoveRootFragment(rootFragment);\n\t\t} else {\n\t\t\trootFragment.render(nextItem);\n\t\t}\n\t}\n}","import { render } from '../../../src/DOM/rendering';\nimport createRef from '../../../src/DOM/createRef';\nimport createDOMTree from '../../../src/DOM/createTree';\n\nconst global = global || (typeof window !== 'undefined' ? window : null);\n\n// browser\nif (global && global.Inferno) {\n\tglobal.Inferno.addTreeConstructor('dom', createDOMTree);\n// nodeJS\n// TODO! Find a better way to detect if we are running in Node, and test if this actually works!!!\n} else if ( global && !global.Inferno ) {\n\tlet Inferno;\n\n\t// TODO! Avoid try / catch\n\ttry {\n\t\tInferno = require('inferno');\n\t} catch (e) {\n\t\tInferno = null;\n\t\t// TODO Should we throw a warning and inform that the Inferno package is not installed?\n\t}\n\n\tif (Inferno != null) {\n\t\tif (typeof Inferno.addTreeConstructor !== 'function') {\n\t\t\tthrow ('Your package is out-of-date! Upgrade to latest Inferno in order to use the InfernoDOM package.');\n\t\t} else {\n\t\t\tInferno.addTreeConstructor('dom', createDOMTree);\n\t\t}\n\t}\n}\n\nexport default {\n\trender,\n\tcreateRef\n};\n"]}