{"version":3,"file":"rax.mjs","sources":["../src/vdom/host.js","../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../node_modules/prop-types/lib/has.js","../../../node_modules/prop-types/checkPropTypes.js","../src/vdom/element.js","../src/types.js","../src/vdom/flattenChildren.js","../src/vdom/scheduler.js","../src/error.js","../src/validateChildKeys.js","../src/createElement.js","../src/invokeFunctionsWithContext.js","../src/vdom/shallowEqual.js","../src/constant.js","../src/hooks.js","../src/toArray.js","../src/vdom/getNearestParent.js","../src/createContext.js","../src/createRef.js","../src/forwardRef.js","../src/memo.js","../src/fragment.js","../src/vdom/injectRenderOptions.js","../src/vdom/instantiateComponent.js","../src/vdom/component.js","../src/vdom/root.js","../src/vdom/instance.js","../src/vdom/ref.js","../src/vdom/shouldUpdateComponent.js","../src/vdom/getElementKeyName.js","../src/vdom/getPrevSiblingNativeNode.js","../src/vdom/base.js","../src/assign.js","../src/vdom/native.js","../src/vdom/reactive.js","../src/vdom/updater.js","../src/vdom/performInSandbox.js","../src/vdom/composite.js","../src/vdom/text.js","../src/vdom/fragment.js","../src/vdom/empty.js","../src/devtools/reconciler.js","../src/vdom/inject.js","../src/render.js","../src/version.js","../src/devtools/index.js","../src/index.js"],"sourcesContent":["/*\n * Stateful things in runtime\n */\nexport default {\n  __mountID: 1,\n  __isUpdating: false,\n  // Inject\n  driver: null,\n  // Roots\n  rootComponents: {},\n  rootInstances: {},\n  // Current owner component\n  owner: null,\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n  var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n  var loggedTypeFailures = {};\n  var has = require('./lib/has');\n\n  printWarning = function(text) {\n    var message = 'Warning: ' + text;\n    if (typeof console !== 'undefined') {\n      console.error(message);\n    }\n    try {\n      // --- Welcome to debugging React ---\n      // This error was thrown as a convenience so that you can use this stack\n      // to find the callsite that caused this warning to fire.\n      throw new Error(message);\n    } catch (x) { /**/ }\n  };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n  if (process.env.NODE_ENV !== 'production') {\n    for (var typeSpecName in typeSpecs) {\n      if (has(typeSpecs, typeSpecName)) {\n        var error;\n        // Prop type validation may throw. In case they do, we don't want to\n        // fail the render phase where it didn't fail before. So we log it.\n        // After these have been cleaned up, we'll let them throw.\n        try {\n          // This is intentionally an invariant that gets caught. It's the same\n          // behavior as without this statement except with a better message.\n          if (typeof typeSpecs[typeSpecName] !== 'function') {\n            var err = Error(\n              (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n              'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n              'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n            );\n            err.name = 'Invariant Violation';\n            throw err;\n          }\n          error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n        } catch (ex) {\n          error = ex;\n        }\n        if (error && !(error instanceof Error)) {\n          printWarning(\n            (componentName || 'React class') + ': type specification of ' +\n            location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n            'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n            'You may have forgotten to pass an argument to the type checker ' +\n            'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n            'shape all require an argument).'\n          );\n        }\n        if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n          // Only monitor this failure once because there tends to be a lot of the\n          // same error.\n          loggedTypeFailures[error.message] = true;\n\n          var stack = getStack ? getStack() : '';\n\n          printWarning(\n            'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n          );\n        }\n      }\n    }\n  }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n  if (process.env.NODE_ENV !== 'production') {\n    loggedTypeFailures = {};\n  }\n}\n\nmodule.exports = checkPropTypes;\n","import checkPropTypes from 'prop-types/checkPropTypes';\n\nexport default function Element(type, key, ref, props, owner) {\n  let element = {\n    // Built-in properties that belong on the element\n    type,\n    key,\n    ref,\n    props,\n    // Record the component responsible for creating this element.\n    _owner: owner,\n  };\n\n  if (process.env.NODE_ENV !== 'production') {\n    const propTypes = type.propTypes;\n\n    // Validate its props provided by the propTypes definition\n    if (propTypes) {\n      const displayName = type.displayName || type.name;\n      checkPropTypes(\n        propTypes,\n        props,\n        'prop',\n        displayName,\n      );\n    }\n\n    // We make validation flag non-enumerable, so the test framework could ignore it\n    Object.defineProperty(element, '__validated', {\n      configurable: false,\n      enumerable: false,\n      writable: true,\n      value: false\n    });\n\n    // Props is immutable\n    if (Object.freeze) {\n      Object.freeze(props);\n    }\n  }\n\n  return element;\n};\n","export function isNull(obj) {\n  return obj === null;\n}\n\nexport function isFunction(obj) {\n  return typeof obj === 'function';\n}\n\nexport function isObject(obj) {\n  return typeof obj === 'object';\n}\n\nexport function isPlainObject(obj) {\n  return EMPTY_OBJECT.toString.call(obj) === '[object Object]';\n}\n\nexport function isArray(array) {\n  return Array.isArray(array);\n}\n\nexport function isString(string) {\n  return typeof string === 'string';\n}\n\nexport function isNumber(string) {\n  return typeof string === 'number';\n}\n\nexport function isFalsy(val) {\n  return !Boolean(val);\n}\n\nexport const NOOP = () => {};\nexport const EMPTY_OBJECT = {};\n","import { isArray } from '../types';\n\nfunction traverseChildren(children, result) {\n  if (isArray(children)) {\n    for (let i = 0, l = children.length; i < l; i++) {\n      traverseChildren(children[i], result);\n    }\n  } else {\n    result.push(children);\n  }\n}\n\nexport default function flattenChildren(children) {\n  if (children == null) {\n    return children;\n  }\n  const result = [];\n  traverseChildren(children, result);\n\n  // If length equal 1, return the only one.\n  return result.length - 1 ? result : result[0];\n}\n","let updateCallbacks = [];\nlet effectCallbacks = [];\nlet layoutCallbacks = [];\nexport let scheduler = setTimeout;\n\nif (process.env.NODE_ENV !== 'production') {\n  // Wrapper timer for hijack timers in jest\n  scheduler = (callback) => {\n    setTimeout(callback);\n  };\n}\n\nfunction invokeFunctionsWithClear(callbacks) {\n  let callback;\n  while (callback = callbacks.shift()) {\n    callback();\n  }\n}\n\n// Schedule before next render\nexport function schedule(callback) {\n  if (updateCallbacks.length === 0) {\n    scheduler(flush);\n  }\n  updateCallbacks.push(callback);\n}\n\n// Flush before next render\nexport function flush() {\n  invokeFunctionsWithClear(updateCallbacks);\n}\n\nexport function scheduleEffect(callback) {\n  if (effectCallbacks.length === 0) {\n    scheduler(flushEffect);\n  }\n  effectCallbacks.push(callback);\n}\n\nexport function flushEffect() {\n  invokeFunctionsWithClear(effectCallbacks);\n}\n\nexport function scheduleLayout(callback) {\n  layoutCallbacks.push(callback);\n}\n\nexport function flushLayout() {\n  invokeFunctionsWithClear(layoutCallbacks);\n}\n","import Host from './vdom/host';\nimport { scheduler } from './vdom/scheduler';\nimport { NOOP, isPlainObject } from './types';\n\nfunction createMinifiedError(type, code, obj) {\n  var typeInfo = obj === undefined ? '' : ' got: ' + getTypeInfo(obj);\n  return new Error(`${type}: #${code}, ${getRenderErrorInfo()}.` + typeInfo);\n}\n\nexport function getTypeInfo(obj) {\n  return isPlainObject(obj) ? Object.keys(obj) : obj;\n}\n\nexport function getRenderErrorInfo() {\n  const ownerComponent = Host.owner;\n  return ownerComponent ? `check <${ownerComponent.__getName()}>` : 'no owner';\n}\n\n/**\n * Minified code:\n *  1: Hooks called outside a component, or multiple version of Rax are used.\n *  6: Invalid component type, expected a class or function component.\n *  4: Too many re-renders, the number of renders is limited to prevent an infinite loop.\n *  5: Rax driver not found.\n * @param code {Number}\n * @param obj {Object}\n */\nexport function throwMinifiedError(code, obj) {\n  throw createMinifiedError('Error', code, obj);\n}\n\n/**\n * Minified Code:\n * 0: Invalid element type, expected a string or a class/function component but got \"null\" or \"undefined\".\n * 2. Invalid child type, expected types: Element instance, string, boolean, array, null, undefined.\n * 3. Ref can not attach because multiple copies of Rax are used.\n * @param {number} code\n * @param {string} info\n */\nexport function throwMinifiedWarn(code, obj) {\n  let err = createMinifiedError('Warn', code, obj);\n  scheduler(() => {\n    throw err;\n  }, 0);\n}\n\nexport function throwError(message, obj) {\n  let typeInfo = obj === undefined ? '' :\n    '(found: ' + (isPlainObject(obj) ? `object with keys {${Object.keys(obj)}}` : obj) + ')';\n\n  throw Error(`${message} ${typeInfo}`);\n}\n\nexport let warning = NOOP;\n\nif (process.env.NODE_ENV !== 'production') {\n  warning = (template, ...args) => {\n    if (typeof console !== 'undefined') {\n      let argsWithFormat = args.map(item => '' + item);\n      argsWithFormat.unshift('Warning: ' + template);\n      // Don't use spread (or .apply) directly because it breaks IE9\n      Function.prototype.apply.call(console.error, console, argsWithFormat);\n    }\n\n    // For works in DevTools when enable `Pause on caught exceptions`\n    // that can find the component where caused this warning\n    try {\n      let argIndex = 0;\n      const message = 'Warning: ' + template.replace(/%s/g, () => args[argIndex++]);\n      throw new Error(message);\n    } catch (e) {}\n  };\n}\n\n","import Host from './vdom/host';\nimport { warning } from './error';\nimport { isArray } from './types';\n\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\nconst ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n  let info = '';\n\n  const ownerComponent = Host.owner;\n  if (ownerComponent) {\n    const name = ownerComponent.__getName();\n    if (name) {\n      info = ` Check the render method of <${name}>.`;\n    }\n  }\n\n  if (!info) {\n    const parentName =\n      typeof parentType === 'string'\n        ? parentType\n        : parentType.displayName || parentType.name;\n    if (parentName) {\n      info = ` Check the top-level render call using <${parentName}>.`;\n    }\n  }\n  return info;\n}\n\nfunction isValidElement(object) {\n  return typeof object === 'object' && object !== null && object.type && !!object.props;\n}\n\nfunction validateExplicitKey(element, parentType) {\n  if (element.__validated || element.key != null) {\n    return;\n  }\n\n  element.__validated = true;\n\n  const currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n  if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n    return;\n  }\n  ownerHasKeyUseWarning[currentComponentErrorInfo] = true;\n\n  // Usually the current owner is the offender, but if it accepts children as a\n  // property, it may be the creator of the child that's responsible for\n  // assigning it a key.\n  let childOwner = '';\n  if (\n    element &&\n    element._owner &&\n    element._owner !== Host.owner\n  ) {\n    // Give the component that originally created this child.\n    childOwner = ` It was passed a child from <${element._owner.__getName()}>.`;\n  }\n\n  warning(`Each child in a list should have a unique \"key\" prop.${currentComponentErrorInfo}${childOwner}`);\n}\n\nexport default function validateChildKeys(node, parentType) {\n  // Only array or element object is valid child\n  if (typeof node !== 'object') {\n    return;\n  }\n\n  if (isArray(node)) {\n    for (let i = 0; i < node.length; i++) {\n      const child = node[i];\n      if (isValidElement(child)) {\n        validateExplicitKey(child, parentType);\n      }\n    }\n  } else if (isValidElement(node)) {\n    node.__validated = true;\n  }\n  // Rax don't support iterator object as element children\n  // TODO: add validate when rax support iterator object as element.\n}\n","import Host from './vdom/host';\nimport Element from './vdom/element';\nimport flattenChildren from './vdom/flattenChildren';\nimport { warning, throwError, throwMinifiedWarn } from './error';\nimport { isString, isArray, NOOP } from './types';\nimport validateChildKeys from './validateChildKeys';\n\nconst RESERVED_PROPS = {\n  key: true,\n  ref: true,\n};\n\nexport default function createElement(type, config, children) {\n  // Reserved names are extracted\n  let props = {};\n  let propName;\n  let key = null;\n  let ref = null;\n\n  if (config != null) {\n    ref = config.ref === undefined ? null : config.ref;\n    key = config.key === undefined ? null : '' + config.key;\n\n    // Remaining properties are added to a new props object\n    for (propName in config) {\n      if (!RESERVED_PROPS[propName]) {\n        props[propName] = config[propName];\n      }\n    }\n  }\n\n  // Children arguments can be more than one\n  const childrenLength = arguments.length - 2;\n  if (childrenLength > 0) {\n    if (childrenLength === 1 && !isArray(children)) {\n      props.children = children;\n    } else {\n      let childArray = children;\n      if (childrenLength > 1) {\n        childArray = new Array(childrenLength);\n        for (var i = 0; i < childrenLength; i++) {\n          childArray[i] = arguments[i + 2];\n        }\n      }\n      props.children = flattenChildren(childArray);\n    }\n  }\n\n  // Resolve default props\n  if (type && type.defaultProps) {\n    let defaultProps = type.defaultProps;\n    for (propName in defaultProps) {\n      if (props[propName] === undefined) {\n        props[propName] = defaultProps[propName];\n      }\n    }\n  }\n\n  if (type == null) {\n    if (process.env.NODE_ENV !== 'production') {\n      throwError(`Invalid element type, expected a string or a class/function component but got \"${type}\".`);\n    } else {\n      // A empty component replaced avoid break render in production\n      type = NOOP;\n      throwMinifiedWarn(0);\n    }\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (isString(ref) && !Host.owner) {\n      warning(\n        `Adding a string ref \"${ref}\" that was not created inside render method, or multiple copies of Rax are used.`\n      );\n    }\n\n    for (let i = 2; i < arguments.length; i ++) {\n      validateChildKeys(arguments[i], type);\n    }\n  }\n\n  return new Element(\n    type,\n    key,\n    ref,\n    props,\n    Host.owner\n  );\n}\n\n","export default function invokeFunctionsWithContext(fns, context, value) {\n  for (let i = 0, l = fns && fns.length; i < l; i++) {\n    fns[i].call(context, value);\n  }\n}\n","import { isNull, isObject, EMPTY_OBJECT } from '../types';\n\nconst hasOwnProperty = EMPTY_OBJECT.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nexport function is(x, y) {\n  // SameValue algorithm\n  if (x === y) {\n    // Steps 1-5, 7-10\n    // Steps 6.b-6.e: +0 != -0\n    return x !== 0 || 1 / x === 1 / y;\n  } else {\n    // Step 6.a: NaN == NaN\n    return x !== x && y !== y; // eslint-disable-line no-self-compare\n  }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nexport default function shallowEqual(objA, objB) {\n  if (is(objA, objB)) {\n    return true;\n  }\n\n  if (!isObject(objA) || isNull(objA) || !isObject(objB) || isNull(objB)) {\n    return false;\n  }\n\n  let keysA = Object.keys(objA);\n  let keysB = Object.keys(objB);\n\n  if (keysA.length !== keysB.length) {\n    return false;\n  }\n\n  // Test for A's keys different from B.\n  for (let i = 0; i < keysA.length; i++) {\n    if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n      return false;\n    }\n  }\n\n  return true;\n}\n","/* Common constant variables for rax */\n\nexport const INTERNAL = '_internal';\nexport const INSTANCE = '_instance';\nexport const NATIVE_NODE = '_nativeNode';\nexport const RENDERED_COMPONENT = '_renderedComponent';\n","import Host from './vdom/host';\nimport { scheduleEffect, flushEffect } from './vdom/scheduler';\nimport { is } from './vdom/shallowEqual';\nimport { isArray, isFunction, isNull } from './types';\nimport { warning, throwError, throwMinifiedError } from './error';\nimport { INSTANCE } from './constant';\n\nfunction getCurrentInstance() {\n  return Host.owner && Host.owner[INSTANCE];\n}\n\nfunction getCurrentRenderingInstance() {\n  const currentInstance = getCurrentInstance();\n  if (currentInstance) {\n    return currentInstance;\n  } else {\n    if (process.env.NODE_ENV !== 'production') {\n      throwError('Hooks called outside a component, or multiple version of Rax are used.');\n    } else {\n      throwMinifiedError(1);\n    }\n  }\n}\n\nfunction areInputsEqual(inputs, prevInputs) {\n  if (isNull(prevInputs) || inputs.length !== prevInputs.length) {\n    return false;\n  }\n\n  for (let i = 0; i < inputs.length; i++) {\n    if (is(inputs[i], prevInputs[i])) {\n      continue;\n    }\n    return false;\n  }\n  return true;\n}\n\nexport function useState(initialState) {\n  const currentInstance = getCurrentRenderingInstance();\n  const hookID = currentInstance.getHookID();\n  const hooks = currentInstance.getHooks();\n\n  if (!hooks[hookID]) {\n    // If the initial state is the result of an expensive computation,\n    // you may provide a function instead for lazy initial state.\n    if (isFunction(initialState)) {\n      initialState = initialState();\n    }\n\n    const setState = newState => {\n      // Flush all effects first before update state\n      if (!Host.__isUpdating) {\n        flushEffect();\n      }\n\n      const hook = hooks[hookID];\n      const eagerState = hook[2];\n      // function updater\n      if (isFunction(newState)) {\n        newState = newState(eagerState);\n      }\n\n      if (!is(newState, eagerState)) {\n        // Current instance is in render update phase.\n        // After this one render finish, will continue run.\n        hook[2] = newState;\n        if (getCurrentInstance() === currentInstance) {\n          // Marked as is scheduled that could finish hooks.\n          currentInstance.__isScheduled = true;\n        } else {\n          currentInstance.__update();\n        }\n      }\n    };\n\n    hooks[hookID] = [\n      initialState,\n      setState,\n      initialState\n    ];\n  }\n\n  const hook = hooks[hookID];\n  if (!is(hook[0], hook[2])) {\n    hook[0] = hook[2];\n    currentInstance.__shouldUpdate = true;\n  }\n\n  return hook;\n}\n\nexport function useContext(context) {\n  const currentInstance = getCurrentRenderingInstance();\n  return currentInstance.useContext(context);\n}\n\nexport function useEffect(effect, inputs) {\n  useEffectImpl(effect, inputs, true);\n}\n\nexport function useLayoutEffect(effect, inputs) {\n  useEffectImpl(effect, inputs);\n}\n\nfunction useEffectImpl(effect, inputs, defered) {\n  const currentInstance = getCurrentRenderingInstance();\n  const hookID = currentInstance.getHookID();\n  const hooks = currentInstance.getHooks();\n  inputs = inputs === undefined ? null : inputs;\n\n  if (!hooks[hookID]) {\n    const __create = (immediately) => {\n      if (!immediately && defered) return scheduleEffect(() => __create(true));\n      const { current } = __create;\n      if (current) {\n        __destory.current = current();\n        __create.current = null;\n\n        if (process.env.NODE_ENV !== 'production') {\n          const currentDestory = __destory.current;\n          if (currentDestory !== undefined && typeof currentDestory !== 'function') {\n            let msg;\n            if (currentDestory === null) {\n              msg =\n                ' You returned null. If your effect does not require clean ' +\n                'up, return undefined (or nothing).';\n            } else if (typeof currentDestory.then === 'function') {\n              msg =\n                '\\n\\nIt looks like you wrote useEffect(async () => ...) or returned a Promise. ' +\n                'Instead, write the async function inside your effect ' +\n                'and call it immediately:\\n\\n' +\n                'useEffect(() => {\\n' +\n                '  async function fetchData() {\\n' +\n                '    // You can await here\\n' +\n                '    const response = await MyAPI.getData(someId);\\n' +\n                '    // ...\\n' +\n                '  }\\n' +\n                '  fetchData();\\n' +\n                '}, [someId]); // Or [] if effect doesn\\'t need props or state.';\n            } else {\n              msg = ' You returned: ' + currentDestory;\n            }\n\n            warning(\n              'An effect function must not return anything besides a function, ' +\n              'which is used for clean-up.' + msg,\n            );\n          }\n        }\n      }\n    };\n\n    const __destory = (immediately) => {\n      if (!immediately && defered) return scheduleEffect(() => __destory(true));\n      const { current } = __destory;\n      if (current) {\n        current();\n        __destory.current = null;\n      }\n    };\n\n    __create.current = effect;\n\n    hooks[hookID] = {\n      __create,\n      __destory,\n      __prevInputs: inputs,\n      __inputs: inputs\n    };\n\n    currentInstance.didMount.push(__create);\n    currentInstance.willUnmount.push(() => __destory(true));\n    currentInstance.didUpdate.push(() => {\n      const { __prevInputs, __inputs, __create } = hooks[hookID];\n      if (__inputs == null || !areInputsEqual(__inputs, __prevInputs)) {\n        __destory();\n        __create();\n      }\n    });\n  } else {\n    const hook = hooks[hookID];\n    const { __create, __inputs: prevInputs } = hook;\n    hook.__inputs = inputs;\n    hook.__prevInputs = prevInputs;\n    __create.current = effect;\n  }\n}\n\nexport function useImperativeHandle(ref, create, inputs) {\n  const nextInputs = isArray(inputs) ? inputs.concat([ref]) : null;\n\n  useLayoutEffect(() => {\n    if (isFunction(ref)) {\n      ref(create());\n      return () => ref(null);\n    } else if (ref != null) {\n      ref.current = create();\n      return () => {\n        ref.current = null;\n      };\n    }\n  }, nextInputs);\n}\n\nexport function useRef(initialValue) {\n  const currentInstance = getCurrentRenderingInstance();\n  const hookID = currentInstance.getHookID();\n  const hooks = currentInstance.getHooks();\n\n  if (!hooks[hookID]) {\n    hooks[hookID] = {\n      current: initialValue\n    };\n  }\n\n  return hooks[hookID];\n}\n\nexport function useCallback(callback, inputs) {\n  return useMemo(() => callback, inputs);\n}\n\nexport function useMemo(create, inputs) {\n  const currentInstance = getCurrentRenderingInstance();\n  const hookID = currentInstance.getHookID();\n  const hooks = currentInstance.getHooks();\n  inputs = inputs === undefined ? null : inputs;\n\n  if (!hooks[hookID]) {\n    hooks[hookID] = [create(), inputs];\n  } else {\n    const prevInputs = hooks[hookID][1];\n    if (isNull(inputs) || !areInputsEqual(inputs, prevInputs)) {\n      hooks[hookID] = [create(), inputs];\n    }\n  }\n\n  return hooks[hookID][0];\n}\n\nexport function useReducer(reducer, initialArg, init) {\n  const currentInstance = getCurrentRenderingInstance();\n  const hookID = currentInstance.getHookID();\n  const hooks = currentInstance.getHooks();\n  const hook = hooks[hookID];\n\n  if (!hook) {\n    const initialState = isFunction(init) ? init(initialArg) : initialArg;\n\n    const dispatch = action => {\n      // Flush all effects first before update state\n      if (!Host.__isUpdating) {\n        flushEffect();\n      }\n\n      const hook = hooks[hookID];\n      // Reducer will update in the next render, before that we add all\n      // actions to the queue\n      const queue = hook[2];\n\n      if (getCurrentInstance() === currentInstance) {\n        queue.__actions.push(action);\n        currentInstance.__isScheduled = true;\n      } else {\n        const currentState = queue.__eagerState;\n        const eagerReducer = queue.__eagerReducer;\n        const eagerState = eagerReducer(currentState, action);\n        if (is(eagerState, currentState)) {\n          return;\n        }\n        queue.__eagerState = eagerState;\n        queue.__actions.push(action);\n        currentInstance.__update();\n      }\n    };\n\n    return hooks[hookID] = [\n      initialState,\n      dispatch,\n      {\n        __actions: [],\n        __eagerReducer: reducer,\n        __eagerState: initialState\n      }\n    ];\n  }\n\n  const queue = hook[2];\n  let next = hook[0];\n\n  if (currentInstance.__reRenders > 0) {\n    for (let i = 0; i < queue.__actions.length; i++) {\n      next = reducer(next, queue.__actions[i]);\n    }\n  } else {\n    next = queue.__eagerState;\n  }\n\n  if (!is(next, hook[0])) {\n    hook[0] = next;\n    currentInstance.__shouldUpdate = true;\n  }\n\n  queue.__eagerReducer = reducer;\n  queue.__eagerState = next;\n  queue.__actions.length = 0;\n\n  return hooks[hookID];\n}\n","import { isArray } from './types';\n\nexport default function toArray(obj) {\n  return isArray(obj) ? obj : [obj];\n}\n","import { INTERNAL } from '../constant';\n\nexport default function getNearestParent(instance, matcher) {\n  let parent;\n  while (instance && instance[INTERNAL]) {\n    if (matcher(instance)) {\n      parent = instance;\n      break;\n    }\n    instance = instance[INTERNAL].__parentInstance;\n  }\n  return parent;\n}","import invokeFunctionsWithContext from './invokeFunctionsWithContext';\nimport { useState, useLayoutEffect } from './hooks';\nimport { isFunction } from './types';\nimport toArray from './toArray';\nimport getNearestParent from './vdom/getNearestParent';\n\nlet id = 0;\n\nexport default function createContext(defaultValue) {\n  const contextID = '_c' + id++;\n\n  // Provider Component\n  class Provider {\n    constructor() {\n      this.__contextID = contextID;\n      this.__handlers = [];\n    }\n    __on(handler) {\n      this.__handlers.push(handler);\n    }\n    __off(handler) {\n      this.__handlers = this.__handlers.filter(h => h !== handler);\n    }\n    // Like getChildContext but called in SSR\n    _getChildContext() {\n      return {\n        [contextID]: this\n      };\n    }\n    // `getValue()` called in rax-server-renderer\n    getValue() {\n      return this.props.value !== undefined ? this.props.value : defaultValue;\n    }\n    componentDidUpdate(prevProps) {\n      if (this.props.value !== prevProps.value) {\n        invokeFunctionsWithContext(this.__handlers, null, this.getValue());\n      }\n    }\n    render() {\n      return this.props.children;\n    }\n  }\n\n  function getNearestParentProvider(instance) {\n    return getNearestParent(instance, parent => parent.__contextID === contextID);\n  }\n\n  // Consumer Component\n  function Consumer(props, context) {\n    // Current `context[contextID]` only works in SSR\n    const [provider] = useState(() => context[contextID] || getNearestParentProvider(this));\n    let value = provider ? provider.getValue() : defaultValue;\n    const [prevValue, setValue] = useState(value);\n\n    if (value !== prevValue) {\n      setValue(value);\n      return; // Interrupt execution of consumer.\n    }\n\n    useLayoutEffect(() => {\n      if (provider) {\n        provider.__on(setValue);\n        return () => {\n          provider.__off(setValue);\n        };\n      }\n    }, []);\n\n    // Consumer requires a function as a child.\n    // The function receives the current context value.\n    const consumer = toArray(props.children)[0];\n    if (isFunction(consumer)) {\n      return consumer(value);\n    }\n  }\n\n  return {\n    Provider,\n    Consumer,\n    // `_contextID` and `_defaultValue` accessed in rax-server-renderer\n    _contextID: contextID,\n    _defaultValue: defaultValue,\n    __getNearestParentProvider: getNearestParentProvider,\n  };\n}\n","export default function createRef() {\n  return {\n    current: null\n  };\n}","export default function(render) {\n  // _forwardRef is also use in rax server renderer\n  render._forwardRef = true;\n  return render;\n}","import shallowEqual from './vdom/shallowEqual';\n\nexport default function memo(type, compare) {\n  compare = compare || shallowEqual;\n\n  // Memo could composed\n  if (type.__compares) {\n    type.__compares.push(compare);\n  } else {\n    type.__compares = [compare];\n  }\n\n  return type;\n}\n","export default function Fragment(props) {\n  return props.children;\n}","import Host from './host';\nimport { throwError, throwMinifiedError } from '../error';\n\nexport default function injectRenderOptions({ driver, measurer }) {\n  // Inject render driver\n  if (!(Host.driver = driver || Host.driver)) {\n    if (process.env.NODE_ENV !== 'production') {\n      throwError('Rax driver not found.');\n    } else {\n      throwMinifiedError(5);\n    }\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    // Inject performance measurer\n    Host.measurer = measurer;\n  }\n}\n","import Host from './host';\nimport {isString, isNumber, isArray, isNull, isPlainObject} from '../types';\nimport { throwMinifiedWarn, throwError } from '../error';\n\nexport default function instantiateComponent(element) {\n  let instance;\n\n  if (isPlainObject(element) && element !== null && element.type) {\n    // Special case string values\n    if (isString(element.type)) {\n      instance = new Host.__Native(element);\n    } else {\n      instance = new Host.__Composite(element);\n    }\n  } else if (isString(element) || isNumber(element)) {\n    instance = new Host.__Text(String(element));\n  } else if (isArray(element)) {\n    instance = new Host.__Fragment(element);\n  } else {\n    if (!(element === undefined || isNull(element) || element === false || element === true)) {\n      if (process.env.NODE_ENV !== 'production') {\n        throwError('Invalid child type, expected types: Element instance, string, boolean, array, null, undefined.', element);\n      } else {\n        throwMinifiedWarn(2, element);\n      }\n    }\n\n    instance = new Host.__Empty(element);\n  }\n\n  return instance;\n}\n","/**\n * Base component class.\n */\nexport default class Component {\n  constructor(props, context) {\n    this.props = props;\n    this.context = context;\n    this.refs = {};\n  }\n\n  setState(partialState, callback) {\n    // The updater property is injected when composite component mounting\n    this.updater.setState(this, partialState, callback);\n  }\n\n  forceUpdate(callback) {\n    this.updater.forceUpdate(this, callback);\n  }\n}\n\n/**\n * Pure component.\n */\nexport class PureComponent extends Component {\n  constructor(props, context) {\n    super(props, context);\n    this.__isPureComponent = true;\n  }\n}\n","import Component from './component';\nimport {INTERNAL, RENDERED_COMPONENT} from '../constant';\n\nlet rootID = 1;\n\nclass Root extends Component {\n  constructor() {\n    super();\n    // Using fragment instead of null for avoid create a comment node when init mount\n    this.__element = [];\n    this.__rootID = rootID++;\n  }\n\n  __getPublicInstance() {\n    return this.__getRenderedComponent().__getPublicInstance();\n  }\n\n  __getRenderedComponent() {\n    return this[INTERNAL][RENDERED_COMPONENT];\n  }\n\n  __update(element) {\n    this.__element = element;\n    this.forceUpdate();\n  }\n\n  render() {\n    return this.__element;\n  }\n}\n\nexport default Root;\n","import Host from './host';\nimport createElement from '../createElement';\nimport instantiateComponent from './instantiateComponent';\nimport Root from './root';\nimport {INTERNAL, RENDERED_COMPONENT} from '../constant';\n\n/**\n * Instance manager\n * @NOTE Key should not be compressed, for that will be added to native node and cause DOM Exception.\n */\nconst KEY = '_r';\n\nexport default {\n  set(node, instance) {\n    if (!node[KEY]) {\n      node[KEY] = instance;\n      // Record root instance to roots map\n      if (instance.__rootID) {\n        Host.rootInstances[instance.__rootID] = instance;\n        Host.rootComponents[instance.__rootID] = instance[INTERNAL];\n      }\n    }\n  },\n  get(node) {\n    return node[KEY];\n  },\n  remove(node) {\n    let instance = this.get(node);\n    if (instance) {\n      node[KEY] = null;\n      if (instance.__rootID) {\n        delete Host.rootComponents[instance.__rootID];\n        delete Host.rootInstances[instance.__rootID];\n      }\n    }\n  },\n  mount(element, container, { parent, hydrate }) {\n    if (process.env.NODE_ENV !== 'production') {\n      Host.measurer && Host.measurer.beforeRender();\n    }\n\n    const driver = Host.driver;\n\n    // Real native root node is body\n    if (container == null) {\n      container = driver.createBody();\n    }\n\n    const renderOptions = {\n      element,\n      container,\n      hydrate\n    };\n\n    // Before render callback\n    driver.beforeRender && driver.beforeRender(renderOptions);\n\n    // Get the context from the conceptual parent component.\n    let parentContext;\n    if (parent) {\n      let parentInternal = parent[INTERNAL];\n      parentContext = parentInternal.__processChildContext(parentInternal._context);\n    }\n\n    // Update root component\n    let prevRootInstance = this.get(container);\n    if (prevRootInstance && prevRootInstance.__rootID) {\n      if (parentContext) {\n        // Using __penddingContext to pass new context\n        prevRootInstance[INTERNAL].__penddingContext = parentContext;\n      }\n      prevRootInstance.__update(element);\n\n      // After render callback\n      driver.afterRender && driver.afterRender(renderOptions);\n\n      return prevRootInstance;\n    }\n\n    // Init root component with empty children\n    let renderedComponent = instantiateComponent(createElement(Root));\n    let defaultContext = parentContext || {};\n    let rootInstance = renderedComponent.__mountComponent(container, parent, defaultContext);\n    this.set(container, rootInstance);\n\n    // Mount new element through update queue avoid when there is in rendering phase\n    rootInstance.__update(element);\n\n    // After render callback\n    driver.afterRender && driver.afterRender(renderOptions);\n\n    if (process.env.NODE_ENV !== 'production') {\n      // Devtool render new root hook\n      Host.reconciler.renderNewRootComponent(rootInstance[INTERNAL][RENDERED_COMPONENT]);\n      Host.measurer && Host.measurer.afterRender();\n    }\n\n    return rootInstance;\n  }\n};\n","/*\n * Ref manager\n */\nimport { isFunction, isObject } from '../types';\nimport { INSTANCE } from '../constant';\nimport { warning, throwMinifiedWarn } from '../error';\n\nexport function updateRef(prevElement, nextElement, component) {\n  let prevRef = prevElement ? prevElement.ref : null;\n  let nextRef = nextElement ? nextElement.ref : null;\n\n  // Update refs in owner component\n  if (prevRef !== nextRef) {\n    // Detach prev RenderedElement's ref\n    prevRef && detachRef(prevElement._owner, prevRef, component);\n    // Attach next RenderedElement's ref\n    nextRef && attachRef(nextElement._owner, nextRef, component);\n  }\n}\n\nexport function attachRef(ownerComponent, ref, component) {\n  if (!ownerComponent) {\n    if (process.env.NODE_ENV !== 'production') {\n      warning('Ref can not attach because multiple copies of Rax are used.');\n    } else {\n      throwMinifiedWarn(3);\n    }\n    return;\n  }\n\n  let instance = component.__getPublicInstance();\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (instance == null) {\n      warning('Do not attach ref to function component because they don’t have instances.');\n    }\n  }\n\n  if (isFunction(ref)) {\n    ref(instance);\n  } else if (isObject(ref)) {\n    ref.current = instance;\n  } else {\n    ownerComponent[INSTANCE].refs[ref] = instance;\n  }\n}\n\nexport function detachRef(ownerComponent, ref, component) {\n  if (isFunction(ref)) {\n    // When the referenced component is unmounted and whenever the ref changes, the old ref will be called with null as an argument.\n    ref(null);\n  } else {\n    // Must match component and ref could detach the ref on owner when A's before ref is B's current ref\n    let instance = component.__getPublicInstance();\n\n    if (isObject(ref) && ref.current === instance) {\n      ref.current = null;\n    } else if (ownerComponent[INSTANCE].refs[ref] === instance) {\n      delete ownerComponent[INSTANCE].refs[ref];\n    }\n  }\n}\n","import {isArray, isString, isNumber, isObject, isFalsy} from '../types';\n\nfunction shouldUpdateComponent(prevElement, nextElement) {\n  let prevFalsy = isFalsy(prevElement);\n  let nextFalsy = isFalsy(nextElement);\n  if (prevFalsy || nextFalsy) {\n    return prevFalsy === nextFalsy;\n  }\n\n  if (isArray(prevElement) && isArray(nextElement)) {\n    return true;\n  }\n\n  const isPrevStringOrNumber = isString(prevElement) || isNumber(prevElement);\n  if (isPrevStringOrNumber) {\n    return isString(nextElement) || isNumber(nextElement);\n  } else {\n    // prevElement and nextElement could be array, typeof [] is \"object\"\n    return (\n      isObject(prevElement) &&\n      isObject(nextElement) &&\n      prevElement.type === nextElement.type &&\n      prevElement.key === nextElement.key\n    );\n  }\n}\n\nexport default shouldUpdateComponent;\n","import { isString } from '../types';\nimport { warning } from '../error';\n\nexport default function getElementKeyName(children, element, index) {\n  // `element && element.key` will cause elementKey receive \"\" when element is \"\"\n  const elementKey = element ? element.key : void 0;\n  const defaultName = '.' + index.toString(36); // Inner child name default format fallback\n\n  // Key should must be string type\n  if (isString(elementKey)) {\n    let keyName = '$' + elementKey;\n    // Child keys must be unique.\n    let keyUnique = children[keyName] === undefined;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!keyUnique) {\n        // Only the first child will be used when encountered two children with the same key\n        warning(`Encountered two children with the same key \"${elementKey}\".`);\n      }\n    }\n\n    return keyUnique ? keyName : defaultName;\n  } else {\n    return defaultName;\n  }\n}\n","import Host from './host';\nimport { isArray } from '../types';\nimport { INTERNAL } from '../constant';\n\n/**\n * This function is usually been used to find the closet previous sibling native node of FragmentComponent.\n * FragmentComponent does not have a native node in the DOM tree, so when it is replaced, the new node has no corresponding location to insert.\n * So we need to look forward from the current mount position of the FragmentComponent to the nearest component which have the native node.\n * @param component\n * @return nativeNode\n */\nexport default function getPrevSiblingNativeNode(component) {\n  let parent = component;\n  while (parent = component.__parentInstance &&\n    component.__parentInstance[INTERNAL]) {\n    if (parent instanceof Host.__Composite) {\n      component = parent;\n      continue;\n    }\n\n    const keys = Object.keys(parent.__renderedChildren);\n    // Find previous sibling native node from current mount index\n    for (let i = component.__mountIndex - 1; i >= 0; i--) {\n      const nativeNode = parent.__renderedChildren[keys[i]].__getNativeNode();\n      // Fragment component always return array\n      if (isArray(nativeNode)) {\n        if (nativeNode.length > 0) {\n          // Get the last one\n          return nativeNode[nativeNode.length - 1];\n        }\n      } else {\n        // Others maybe native node or empty node\n        return nativeNode;\n      }\n    }\n\n    // Find parent over parent\n    if (parent instanceof Host.__Fragment) {\n      component = parent;\n    } else {\n      return null;\n    }\n  }\n}\n","import Host from './host';\nimport { INSTANCE, INTERNAL, NATIVE_NODE } from '../constant';\n\n/**\n * Base Component\n */\nexport default class BaseComponent {\n  constructor(element) {\n    this.__currentElement = element;\n  }\n\n  __initComponent(parent, parentInstance, context) {\n    this._parent = parent;\n    this.__parentInstance = parentInstance;\n    this._context = context;\n    this._mountID = Host.__mountID++;\n  }\n\n  __destoryComponent() {\n    if (process.env.NODE_ENV !== 'production') {\n      Host.reconciler.unmountComponent(this);\n    }\n\n    this.__currentElement\n      = this[NATIVE_NODE]\n      = this._parent\n      = this.__parentInstance\n      = this._context\n      = null;\n\n    if (this[INSTANCE]) {\n      this[INSTANCE] = this[INSTANCE][INTERNAL] = null;\n    }\n  }\n\n  __mountComponent(parent, parentInstance, context, nativeNodeMounter) {\n    this.__initComponent(parent, parentInstance, context);\n    this.__mountNativeNode(nativeNodeMounter);\n\n    if (process.env.NODE_ENV !== 'production') {\n      Host.reconciler.mountComponent(this);\n    }\n\n    const instance = {};\n    instance[INTERNAL] = this;\n\n    return instance;\n  }\n\n  unmountComponent(shouldNotRemoveChild) {\n    if (this[NATIVE_NODE] && !shouldNotRemoveChild) {\n      Host.driver.removeChild(this[NATIVE_NODE], this._parent);\n    }\n\n    this.__destoryComponent();\n  }\n\n  __getName() {\n    let currentElement = this.__currentElement;\n    let type = currentElement && currentElement.type;\n\n    return (\n      type && type.displayName ||\n      type && type.name ||\n      type || // Native component's name is type\n      currentElement\n    );\n  }\n\n  __mountNativeNode(nativeNodeMounter) {\n    let nativeNode = this.__getNativeNode();\n    let parent = this._parent;\n\n    if (nativeNodeMounter) {\n      nativeNodeMounter(nativeNode, parent);\n    } else {\n      Host.driver.appendChild(nativeNode, parent);\n    }\n  }\n\n  __getNativeNode() {\n    return this[NATIVE_NODE] == null\n      ? this[NATIVE_NODE] = this.__createNativeNode()\n      : this[NATIVE_NODE];\n  }\n\n  __getPublicInstance() {\n    return this.__getNativeNode();\n  }\n}\n","export default Object.assign;\n","import Host from './host';\nimport { detachRef, attachRef, updateRef } from './ref';\nimport instantiateComponent from './instantiateComponent';\nimport shouldUpdateComponent from './shouldUpdateComponent';\nimport getElementKeyName from './getElementKeyName';\nimport getPrevSiblingNativeNode from './getPrevSiblingNativeNode';\nimport Instance from './instance';\nimport BaseComponent from './base';\nimport toArray from '../toArray';\nimport { isFunction, isArray, isNull } from '../types';\nimport assign from '../assign';\nimport { INSTANCE, INTERNAL, NATIVE_NODE } from '../constant';\n\nconst STYLE = 'style';\nconst CHILDREN = 'children';\nconst TREE = 'tree';\nconst EVENT_PREFIX_REGEXP = /^on[A-Z]/;\n\n/**\n * Native Component\n */\nexport default class NativeComponent extends BaseComponent {\n  __mountComponent(parent, parentInstance, context, nativeNodeMounter) {\n    this.__initComponent(parent, parentInstance, context);\n\n    const currentElement = this.__currentElement;\n    const props = currentElement.props;\n    const type = currentElement.type;\n    const children = props[CHILDREN];\n    const appendType = props.append || TREE; // Default is tree\n\n    // Clone a copy for style diff\n    this.__prevStyleCopy = assign({}, props[STYLE]);\n\n    let instance = {\n      type,\n      props,\n    };\n    instance[INTERNAL] = this;\n\n    this[INSTANCE] = instance;\n\n    if (appendType === TREE) {\n      // Should after process children when mount by tree mode\n      this.__mountChildren(children, context);\n      this.__mountNativeNode(nativeNodeMounter);\n    } else {\n      // Should before process children when mount by node mode\n      this.__mountNativeNode(nativeNodeMounter);\n      this.__mountChildren(children, context);\n    }\n\n    // Ref acttach\n    if (currentElement && currentElement.ref) {\n      attachRef(currentElement._owner, currentElement.ref, this);\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      Host.reconciler.mountComponent(this);\n    }\n\n    return instance;\n  }\n\n  __mountChildren(children, context) {\n    if (children == null) return children;\n\n    const nativeNode = this.__getNativeNode();\n    return this.__mountChildrenImpl(nativeNode, toArray(children), context);\n  }\n\n  __mountChildrenImpl(parent, children, context, nativeNodeMounter) {\n    let renderedChildren = this.__renderedChildren = {};\n\n    const renderedChildrenImage = [];\n    for (let i = 0, l = children.length; i < l; i++) {\n      const element = children[i];\n      const renderedChild = instantiateComponent(element);\n      const name = getElementKeyName(renderedChildren, element, i);\n      renderedChildren[name] = renderedChild;\n      renderedChild.__mountIndex = i;\n      // Mount children\n      const mountImage = renderedChild.__mountComponent(\n        parent,\n        this[INSTANCE],\n        context,\n        nativeNodeMounter\n      );\n      renderedChildrenImage.push(mountImage);\n    }\n\n    return renderedChildrenImage;\n  }\n\n  __unmountChildren(shouldNotRemoveChild) {\n    let renderedChildren = this.__renderedChildren;\n\n    if (renderedChildren) {\n      for (let name in renderedChildren) {\n        let renderedChild = renderedChildren[name];\n        renderedChild.unmountComponent(shouldNotRemoveChild);\n      }\n      this.__renderedChildren = null;\n    }\n  }\n\n  unmountComponent(shouldNotRemoveChild) {\n    if (this[NATIVE_NODE]) {\n      let ref = this.__currentElement.ref;\n      if (ref) {\n        detachRef(this.__currentElement._owner, ref, this);\n      }\n\n      Instance.remove(this[NATIVE_NODE]);\n\n      if (!shouldNotRemoveChild) {\n        Host.driver.removeChild(this[NATIVE_NODE], this._parent);\n      }\n    }\n\n    this.__unmountChildren(true);\n\n    this.__prevStyleCopy = null;\n    this.__destoryComponent();\n  }\n\n  __updateComponent(prevElement, nextElement, prevContext, nextContext) {\n    // Replace current element\n    this.__currentElement = nextElement;\n\n    updateRef(prevElement, nextElement, this);\n\n    let prevProps = prevElement.props;\n    let nextProps = nextElement.props;\n\n    this.__updateProperties(prevProps, nextProps);\n\n    // If the prevElement has no child, mount children directly\n    if (prevProps[CHILDREN] == null ||\n      isArray(prevProps[CHILDREN]) && prevProps[CHILDREN].length === 0) {\n      this.__mountChildren(nextProps[CHILDREN], nextContext);\n    } else {\n      this.__updateChildren(nextProps[CHILDREN], nextContext);\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      Host.reconciler.receiveComponent(this);\n    }\n  }\n\n  __updateProperties(prevProps, nextProps) {\n    let propKey;\n    let styleName;\n    let styleUpdates;\n    const driver = Host.driver;\n    const nativeNode = this.__getNativeNode();\n\n    for (propKey in prevProps) {\n      // Continue children and null value prop or nextProps has some propKey that do noting\n      if (\n        propKey === CHILDREN ||\n        prevProps[propKey] == null ||\n        // Use hasOwnProperty here for avoid propKey name is some with method name in object proptotype\n        nextProps.hasOwnProperty(propKey)\n      ) {\n        continue;\n      }\n\n      if (propKey === STYLE) {\n        // Remove all style\n        let lastStyle = this.__prevStyleCopy;\n        for (styleName in lastStyle) {\n          styleUpdates = styleUpdates || {};\n          styleUpdates[styleName] = '';\n        }\n        this.__prevStyleCopy = null;\n      } else if (EVENT_PREFIX_REGEXP.test(propKey)) {\n        // Remove event\n        const eventListener = prevProps[propKey];\n\n        if (isFunction(eventListener)) {\n          driver.removeEventListener(\n            nativeNode,\n            propKey.slice(2).toLowerCase(),\n            eventListener\n          );\n        }\n      } else {\n        // Remove attribute\n        driver.removeAttribute(\n          nativeNode,\n          propKey,\n          prevProps[propKey]\n        );\n      }\n    }\n\n    for (propKey in nextProps) {\n      let nextProp = nextProps[propKey];\n      let prevProp = propKey === STYLE ? this.__prevStyleCopy :\n        prevProps != null ? prevProps[propKey] : undefined;\n\n      // Continue children or prevProp equal nextProp\n      if (\n        propKey === CHILDREN ||\n        prevProp === nextProp ||\n        nextProp == null && prevProp == null\n      ) {\n        continue;\n      }\n\n      // Update style\n      if (propKey === STYLE) {\n        if (nextProp) {\n          // Clone property\n          nextProp = this.__prevStyleCopy = assign({}, nextProp);\n        } else {\n          this.__prevStyleCopy = null;\n        }\n\n        if (prevProp != null) {\n          // Unset styles on `prevProp` but not on `nextProp`.\n          for (styleName in prevProp) {\n            if (!nextProp || !nextProp[styleName] && nextProp[styleName] !== 0) {\n              styleUpdates = styleUpdates || {};\n              styleUpdates[styleName] = '';\n            }\n          }\n          // Update styles that changed since `prevProp`.\n          for (styleName in nextProp) {\n            if (prevProp[styleName] !== nextProp[styleName]) {\n              styleUpdates = styleUpdates || {};\n              styleUpdates[styleName] = nextProp[styleName];\n            }\n          }\n        } else {\n          // Assign next prop when prev style is null\n          styleUpdates = nextProp;\n        }\n      } else if (EVENT_PREFIX_REGEXP.test(propKey)) {\n        // Update event binding\n        let eventName = propKey.slice(2).toLowerCase();\n\n        if (isFunction(prevProp)) {\n          driver.removeEventListener(nativeNode, eventName, prevProp, nextProps);\n        }\n\n        if (isFunction(nextProp)) {\n          driver.addEventListener(nativeNode, eventName, nextProp, nextProps);\n        }\n      } else {\n        // Update other property\n        if (nextProp != null) {\n          driver.setAttribute(\n            nativeNode,\n            propKey,\n            nextProp\n          );\n        } else {\n          driver.removeAttribute(\n            nativeNode,\n            propKey,\n            prevProps[propKey]\n          );\n        }\n\n        if (process.env.NODE_ENV !== 'production') {\n          Host.measurer && Host.measurer.recordOperation({\n            instanceID: this._mountID,\n            type: 'update attribute',\n            payload: {\n              [propKey]: nextProp\n            }\n          });\n        }\n      }\n    }\n\n    if (styleUpdates) {\n      if (process.env.NODE_ENV !== 'production') {\n        Host.measurer && Host.measurer.recordOperation({\n          instanceID: this._mountID,\n          type: 'update style',\n          payload: styleUpdates\n        });\n      }\n\n      driver.setStyle(nativeNode, styleUpdates);\n    }\n  }\n\n  __updateChildren(nextChildrenElements, context) {\n    // prev rendered children\n    let prevChildren = this.__renderedChildren;\n    let driver = Host.driver;\n\n    if (nextChildrenElements == null && prevChildren == null) {\n      return;\n    }\n\n    let nextChildren = {};\n\n    if (nextChildrenElements != null) {\n      nextChildrenElements = toArray(nextChildrenElements);\n\n      // Update next children elements\n      for (let index = 0, length = nextChildrenElements.length; index < length; index++) {\n        let nextElement = nextChildrenElements[index];\n        let name = getElementKeyName(nextChildren, nextElement, index);\n        let prevChild = prevChildren && prevChildren[name];\n        let prevElement = prevChild && prevChild.__currentElement;\n        let prevContext = prevChild && prevChild._context;\n\n        // Try to update between the two of some name that has some element type,\n        // and move child in next children loop if need\n        if (prevChild != null && shouldUpdateComponent(prevElement, nextElement)) {\n          if (prevElement !== nextElement || prevContext !== context) {\n            // Pass the same context when updating children\n            prevChild.__updateComponent(prevElement, nextElement, context,\n              context);\n          }\n\n          nextChildren[name] = prevChild;\n        } else {\n          // Unmount the prevChild when some name with nextChild but different element type,\n          // and move child node in next children loop\n          if (prevChild) {\n            prevChild.__unmount = true;\n          }\n          // The child must be instantiated before it's mounted.\n          nextChildren[name] = instantiateComponent(nextElement);\n        }\n      }\n    }\n\n    let parent = this.__getNativeNode();\n    let isFragmentParent = isArray(parent);\n    let prevFirstChild = null;\n    let prevFirstNativeNode = null;\n    let isPrevFirstEmptyFragment = false;\n    let shouldUnmountPrevFirstChild = false;\n    let lastPlacedNode = null;\n\n    // Directly remove all children from component, if nextChildren is empty (null, [], '').\n    // `driver.removeChildren` is optional driver protocol.\n    let shouldRemoveAllChildren = Boolean(\n      driver.removeChildren\n      // nextChildElements == null or nextChildElements is empty\n      && (isNull(nextChildrenElements) || nextChildrenElements && !nextChildrenElements.length)\n      // Fragment parent can not remove parentNode's all child nodes directly.\n      && !isFragmentParent\n    );\n\n    // Unmount children that are no longer present.\n    if (prevChildren != null) {\n      for (let name in prevChildren) {\n        let prevChild = prevChildren[name];\n        let shouldUnmount = prevChild.__unmount || !nextChildren[name];\n\n        // Store old first child ref for append node ahead and maybe delay remove it\n        if (!prevFirstChild) {\n          shouldUnmountPrevFirstChild = shouldUnmount;\n          prevFirstChild = prevChild;\n          prevFirstNativeNode = prevFirstChild.__getNativeNode();\n\n          if (isArray(prevFirstNativeNode)) {\n            isPrevFirstEmptyFragment = prevFirstNativeNode.length === 0;\n            prevFirstNativeNode = prevFirstNativeNode[0];\n          }\n        } else if (shouldUnmount) {\n          prevChild.unmountComponent(shouldRemoveAllChildren);\n        }\n      }\n\n      // 1. When fragment embed fragment updated but prev fragment is empty\n      // that need to get the prev sibling native node.\n      // like: [ [] ] -> [ [1, 2] ]\n      // 2. When prev fragment is empty and update to other type\n      // like: [ [], 1 ] -> [ 1, 2 ]\n      if (isFragmentParent && parent.length === 0 || isPrevFirstEmptyFragment) {\n        lastPlacedNode = getPrevSiblingNativeNode(this);\n      }\n    }\n\n\n    if (nextChildren != null) {\n      // `nextIndex` will increment for each child in `nextChildren`\n      let nextIndex = 0;\n\n      function insertNodes(nativeNodes, parentNode) {\n        // The nativeNodes maybe fragment, so convert to array type\n        nativeNodes = toArray(nativeNodes);\n\n        for (let i = 0, l = nativeNodes.length; i < l; i++) {\n          if (lastPlacedNode) {\n            // Should reverse order when insert new child after lastPlacedNode:\n            // [lastPlacedNode, *newChild1, *newChild2],\n            // And if prev is empty fragment, lastPlacedNode is the prevSiblingNativeNode found.\n            driver.insertAfter(nativeNodes[l - 1 - i], lastPlacedNode);\n          } else if (prevFirstNativeNode) {\n            // [*newChild1, *newChild2, prevFirstNativeNode]\n            driver.insertBefore(nativeNodes[i], prevFirstNativeNode);\n          } else if (parentNode) {\n            // [*newChild1, *newChild2]\n            driver.appendChild(nativeNodes[i], parentNode);\n          }\n        }\n      }\n\n      for (let name in nextChildren) {\n        let nextChild = nextChildren[name];\n        let prevChild = prevChildren && prevChildren[name];\n\n        // Try to move the some key prevChild but current not at the some position\n        if (prevChild === nextChild) {\n          let prevChildNativeNode = prevChild.__getNativeNode();\n\n          if (prevChild.__mountIndex !== nextIndex) {\n            insertNodes(prevChildNativeNode);\n          }\n        } else {\n          // Mount nextChild that in prevChildren there has no some name\n\n          // Fragment extended native component, so if parent is fragment should get this._parent\n          if (isFragmentParent) {\n            parent = this._parent;\n          }\n\n          nextChild.__mountComponent(\n            parent,\n            this[INSTANCE],\n            context,\n            insertNodes // Insert nodes mounter\n          );\n        }\n\n        // Update to the latest mount order\n        nextChild.__mountIndex = nextIndex++;\n\n        // Get the last child\n        lastPlacedNode = nextChild.__getNativeNode();\n\n        if (isArray(lastPlacedNode)) {\n          lastPlacedNode = lastPlacedNode[lastPlacedNode.length - 1];\n        }\n      }\n    }\n\n    if (shouldUnmountPrevFirstChild) {\n      prevFirstChild.unmountComponent(shouldRemoveAllChildren);\n    }\n\n    if (shouldRemoveAllChildren) {\n      driver.removeChildren(this[NATIVE_NODE]);\n    }\n\n    this.__renderedChildren = nextChildren;\n  }\n\n  __createNativeNode() {\n    const instance = this[INSTANCE];\n    const nativeNode = Host.driver.createElement(instance.type, instance.props, this);\n    Instance.set(nativeNode, instance);\n    return nativeNode;\n  }\n}\n","import Host from './host';\nimport Component from './component';\nimport invokeFunctionsWithContext from '../invokeFunctionsWithContext';\nimport { throwMinifiedError } from '../error';\nimport { INTERNAL } from '../constant';\nimport { EMPTY_OBJECT } from '../types';\n\nconst RE_RENDER_LIMIT = 24;\n/**\n * Functional Reactive Component Class Wrapper\n */\nexport default class ReactiveComponent extends Component {\n  constructor(pureRender, ref) {\n    super();\n    // Marked ReactiveComponent.\n    this.__isReactiveComponent = true;\n    // A pure function\n    this.__render = pureRender;\n    this.__hookID = 0;\n    // Number of rerenders\n    this.__reRenders = 0;\n    this.__hooks = {};\n    // Is render scheduled\n    this.__isScheduled = false;\n    this.__shouldUpdate = false;\n    this.__children = null;\n    this.__contexts = {};\n    // Handles store\n    this.didMount = [];\n    this.didUpdate = [];\n    this.willUnmount = [];\n\n    this.state = EMPTY_OBJECT;\n\n    if (pureRender._forwardRef) {\n      this.__prevForwardRef = this._forwardRef = ref;\n    }\n\n    const compares = pureRender.__compares;\n    if (compares) {\n      this.shouldComponentUpdate = (nextProps) => {\n        // Process composed compare\n        let arePropsEqual = true;\n\n        // Compare push in and pop out\n        for (let i = compares.length - 1; i > -1; i--) {\n          if (arePropsEqual = compares[i](this.props, nextProps)) {\n            break;\n          }\n        }\n\n        return !arePropsEqual || this.__prevForwardRef !== this._forwardRef;\n      };\n    }\n  }\n\n  getHooks() {\n    return this.__hooks;\n  }\n\n  getHookID() {\n    return ++this.__hookID;\n  }\n\n  useContext(context) {\n    const contextID = context._contextID;\n    let contextItem = this.__contexts[contextID];\n    if (!contextItem) {\n      const provider = context.__getNearestParentProvider(this);\n      contextItem = this.__contexts[contextID] = {\n        __provider: provider\n      };\n\n      if (provider) {\n        const handleContextChange = (value) => {\n          // Check the last value that maybe alread rerender\n          // avoid rerender twice when provider value changed\n          if (contextItem.__lastValue !== value) {\n            this.__shouldUpdate = true;\n            this.__update();\n          }\n        };\n        provider.__on(handleContextChange);\n        this.willUnmount.push(() => provider.__off(handleContextChange));\n      }\n    }\n\n    return contextItem.__lastValue = contextItem.__provider ?\n      contextItem.__provider.getValue() : context._defaultValue;\n  }\n\n  componentWillMount() {\n    this.__shouldUpdate = true;\n  }\n\n  componentDidMount() {\n    invokeFunctionsWithContext(this.didMount);\n  }\n\n  componentWillReceiveProps() {\n    this.__shouldUpdate = true;\n  }\n\n  componentDidUpdate() {\n    invokeFunctionsWithContext(this.didUpdate);\n  }\n\n  componentWillUnmount() {\n    invokeFunctionsWithContext(this.willUnmount);\n  }\n\n  __update() {\n    this.setState(EMPTY_OBJECT);\n  }\n\n  render() {\n    if (process.env.NODE_ENV !== 'production') {\n      Host.measurer && Host.measurer.beforeRender();\n    }\n\n    this.__hookID = 0;\n    this.__reRenders = 0;\n    this.__isScheduled = false;\n    let children = this.__render(this.props, this._forwardRef ? this._forwardRef : this.context);\n\n    while (this.__isScheduled) {\n      this.__reRenders++;\n      if (this.__reRenders > RE_RENDER_LIMIT) {\n        if (process.env.NODE_ENV !== 'production') {\n          throw new Error('Too many re-renders, the number of renders is limited to prevent an infinite loop.');\n        } else {\n          throwMinifiedError(4);\n        }\n      }\n\n      this.__hookID = 0;\n      this.__isScheduled = false;\n      children = this.__render(this.props, this._forwardRef ? this._forwardRef : this.context);\n    }\n\n    if (this.__shouldUpdate) {\n      this.__children = children;\n      this.__shouldUpdate = false;\n    }\n\n    return this.__children;\n  }\n}\n","import Host from './host';\nimport { flushEffect, schedule, flushLayout } from './scheduler';\nimport { INTERNAL, RENDERED_COMPONENT } from '../constant';\n\n// Dirty components store\nlet dirtyComponents = [];\n\nfunction getPendingCallbacks(internal) {\n  return internal.__pendingCallbacks;\n}\n\nfunction setPendingCallbacks(internal, callbacks) {\n  return internal.__pendingCallbacks = callbacks;\n}\n\nfunction getPendingStateQueue(internal) {\n  return internal.__pendingStateQueue;\n}\n\nfunction setPendingStateQueue(internal, partialState) {\n  return internal.__pendingStateQueue = partialState;\n}\n\nfunction enqueueCallback(internal, callback) {\n  let callbackQueue = getPendingCallbacks(internal) || setPendingCallbacks(internal, []);\n  callbackQueue.push(callback);\n}\n\nfunction enqueueState(internal, partialState) {\n  let stateQueue = getPendingStateQueue(internal) || setPendingStateQueue(internal, []);\n  stateQueue.push(partialState);\n}\n\nfunction runUpdate(component) {\n  let internal = component[INTERNAL];\n  if (!internal) {\n    return;\n  }\n\n  Host.__isUpdating = true;\n\n  let prevElement = internal.__currentElement;\n  let prevUnmaskedContext = internal._context;\n  let nextUnmaskedContext = internal.__penddingContext || prevUnmaskedContext;\n  internal.__penddingContext = undefined;\n\n  if (getPendingStateQueue(internal) || internal.__isPendingForceUpdate) {\n    internal.__updateComponent(\n      prevElement,\n      prevElement,\n      prevUnmaskedContext,\n      nextUnmaskedContext\n    );\n\n    flushLayout();\n  }\n\n  Host.__isUpdating = false;\n}\n\nfunction mountOrderComparator(c1, c2) {\n  return c2[INTERNAL]._mountID - c1[INTERNAL]._mountID;\n}\n\nfunction performUpdate() {\n  if (Host.__isUpdating) {\n    return schedule(performUpdate);\n  }\n\n  let component;\n  let dirties = dirtyComponents;\n  if (dirties.length > 0) {\n    // Before next render, we will flush all the effects\n    flushEffect();\n    dirtyComponents = [];\n    // Since reconciling a component higher in the owner hierarchy usually (not\n    // always -- see shouldComponentUpdate()) will reconcile children, reconcile\n    // them before their children by sorting the array.\n    if (dirties.length > 1) {\n      dirties = dirties.filter(c => !!c[INTERNAL]).sort(mountOrderComparator);\n    }\n\n    while (component = dirties.pop()) {\n      runUpdate(component);\n    }\n  }\n}\n\nfunction scheduleUpdate(component, shouldAsyncUpdate) {\n  if (dirtyComponents.indexOf(component) < 0) {\n    dirtyComponents.push(component);\n  }\n\n  if (shouldAsyncUpdate) {\n    // If have been scheduled before, do not need schedule again\n    if (dirtyComponents.length > 1) {\n      return;\n    }\n    schedule(performUpdate);\n  } else {\n    performUpdate();\n  }\n}\n\nfunction requestUpdate(component, partialState, callback) {\n  let internal = component[INTERNAL];\n\n  if (!internal) {\n    if (process.env.NODE_ENV !== 'production') {\n      // Block other render\n      Host.__isUpdating = false;\n      console.error(\n        \"Warning: Can't perform a Rax state update on an unmounted component. This \" +\n          'is a no-op, but it indicates a memory leak in your application. To ' +\n          'fix, cancel all subscriptions and asynchronous tasks in %s.',\n        component.__isReactiveComponent\n          ? 'a useEffect cleanup function'\n          : 'the componentWillUnmount method',\n      );\n    }\n    return;\n  }\n\n  if (callback) {\n    enqueueCallback(internal, callback);\n  }\n\n  const hasComponentRendered = internal[RENDERED_COMPONENT];\n\n  // setState\n  if (partialState) {\n    // Function Component should force update\n    if (component.__isReactiveComponent) {\n      internal.__isPendingForceUpdate = true;\n    }\n    enqueueState(internal, partialState);\n    // State pending when request update in componentWillMount and componentWillReceiveProps,\n    // isPendingState default is false value (false or null) and set to true after componentWillReceiveProps,\n    // _renderedComponent is null when componentWillMount exec.\n    if (!internal.__isPendingState && hasComponentRendered) {\n      scheduleUpdate(component, true);\n    }\n  } else {\n    // forceUpdate\n    internal.__isPendingForceUpdate = true;\n\n    if (hasComponentRendered) {\n      scheduleUpdate(component);\n    }\n  }\n}\n\nconst Updater = {\n  setState(component, partialState, callback) {\n    // Flush all effects first before update state\n    if (!Host.__isUpdating) {\n      flushEffect();\n    }\n    requestUpdate(component, partialState, callback);\n  },\n  forceUpdate(component, callback) {\n    requestUpdate(component, null, callback);\n  }\n};\n\nexport default Updater;\n","import getNearestParent from './getNearestParent';\nimport { scheduler, scheduleLayout } from './scheduler';\nimport { INTERNAL } from '../constant';\n\nexport default function performInSandbox(fn, instance, callback) {\n  try {\n    return fn();\n  } catch (e) {\n    if (callback) {\n      callback(e);\n    } else {\n      handleError(instance, e);\n    }\n  }\n}\n\n/**\n * A class component becomes an error boundary if\n * it defines either (or both) of the lifecycle methods static getDerivedStateFromError() or componentDidCatch().\n * Use static getDerivedStateFromError() to render a fallback UI after an error has been thrown.\n * Use componentDidCatch() to log error information.\n * @param {*} instance\n * @param {*} error\n */\nexport function handleError(instance, error) {\n  let boundary = getNearestParent(instance, parent => {\n    return parent.componentDidCatch || parent.constructor && parent.constructor.getDerivedStateFromError;\n  });\n\n  if (boundary) {\n    scheduleLayout(() => {\n      const boundaryInternal = boundary[INTERNAL];\n      // Should not attempt to recover an unmounting error boundary\n      if (boundaryInternal) {\n        performInSandbox(() => {\n          if (boundary.componentDidCatch) {\n            boundary.componentDidCatch(error);\n          }\n\n          // Update state to the next render to show the fallback UI.\n          if (boundary.constructor && boundary.constructor.getDerivedStateFromError) {\n            const state = boundary.constructor.getDerivedStateFromError(error);\n            boundary.setState(state);\n          }\n        }, boundaryInternal.__parentInstance);\n      }\n    });\n  } else {\n    // Do not break when error happens\n    scheduler(() => {\n      throw error;\n    }, 0);\n  }\n}\n","import ReactiveComponent from './reactive';\nimport updater from './updater';\nimport Host from './host';\nimport { attachRef, updateRef, detachRef } from './ref';\nimport instantiateComponent from './instantiateComponent';\nimport shouldUpdateComponent from './shouldUpdateComponent';\nimport shallowEqual from './shallowEqual';\nimport BaseComponent from './base';\nimport getPrevSiblingNativeNode from './getPrevSiblingNativeNode';\nimport performInSandbox from './performInSandbox';\nimport toArray from '../toArray';\nimport { scheduleLayout } from './scheduler';\nimport { isFunction, isArray } from '../types';\nimport assign from '../assign';\nimport { INSTANCE, INTERNAL, RENDERED_COMPONENT } from '../constant';\nimport invokeFunctionsWithContext from '../invokeFunctionsWithContext';\nimport validateChildKeys from '../validateChildKeys';\nimport { throwError, throwMinifiedError } from '../error';\n\nlet measureLifeCycle;\nif (process.env.NODE_ENV !== 'production') {\n  measureLifeCycle = function(callback, instanceID, type) {\n    Host.measurer && Host.measurer.beforeLifeCycle(instanceID, type);\n    callback();\n    Host.measurer && Host.measurer.afterLifeCycle(instanceID, type);\n  };\n}\n\nfunction scheduleLayoutInSandbox(fn, instance) {\n  scheduleLayout(() => {\n    performInSandbox(fn, instance);\n  });\n}\n\nfunction scheduleLayoutCallbacksInSandbox(callbacks, instance) {\n  if (callbacks) {\n    scheduleLayoutInSandbox(() => {\n      invokeFunctionsWithContext(callbacks, instance);\n    }, instance);\n  }\n}\n\n/**\n * Composite Component\n */\nclass CompositeComponent extends BaseComponent {\n  __mountComponent(parent, parentInstance, context, nativeNodeMounter) {\n    this.__initComponent(parent, parentInstance, context);\n\n    if (process.env.NODE_ENV !== 'production') {\n      this._updateCount = 0;\n      Host.measurer && Host.measurer.beforeMountComponent(this._mountID, this);\n    }\n\n    let currentElement = this.__currentElement;\n    let Component = currentElement.type;\n    let ref = currentElement.ref;\n    let publicProps = currentElement.props;\n    let componentPrototype = Component.prototype;\n\n    // Context process\n    let publicContext = this.__processContext(context);\n\n    // Initialize the public class\n    let instance;\n    let renderedElement;\n\n    performInSandbox(() => {\n      if (componentPrototype && componentPrototype.render) {\n        // Class Component instance\n        instance = new Component(publicProps, publicContext);\n      } else if (isFunction(Component)) {\n        // Functional reactive component with hooks\n        instance = new ReactiveComponent(Component, ref);\n      } else {\n        if (process.env.NODE_ENV !== 'production') {\n          throwError('Invalid component type, expected a class or function component.', Component);\n        } else {\n          throwMinifiedError(6, Component);\n        }\n      }\n    }, parentInstance);\n\n    if (!instance) {\n      return;\n    }\n\n    // These should be set up in the constructor, but as a convenience for\n    // simpler class abstractions, we set them up after the fact.\n    instance.props = publicProps;\n    instance.context = publicContext;\n    instance.refs = {};\n\n    // Inject the updater into instance\n    instance.updater = updater;\n    instance[INTERNAL] = this;\n    this[INSTANCE] = instance;\n\n    // Init state, must be set to an object or null\n    let initialState = instance.state;\n    if (initialState === undefined) {\n      // TODO clone the state?\n      instance.state = initialState = null;\n    }\n\n    if (instance.componentWillMount) {\n      performInSandbox(() => {\n        if (process.env.NODE_ENV !== 'production') {\n          measureLifeCycle(() => {\n            instance.componentWillMount();\n          }, this._mountID, 'componentWillMount');\n        } else {\n          instance.componentWillMount();\n        }\n      }, instance);\n    }\n\n    Host.owner = this;\n    // Process pending state when call setState in componentWillMount\n    instance.state = this.__processPendingState(publicProps, publicContext);\n    const callbacks = this.__pendingCallbacks;\n    this.__pendingCallbacks = null;\n\n    performInSandbox(() => {\n      if (process.env.NODE_ENV !== 'production') {\n        measureLifeCycle(() => {\n          renderedElement = instance.render();\n        }, this._mountID, 'render');\n      } else {\n        renderedElement = instance.render();\n      }\n    }, instance);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateChildKeys(renderedElement, this.__currentElement.type);\n    }\n\n    Host.owner = null;\n\n    this[RENDERED_COMPONENT] = instantiateComponent(renderedElement);\n    this[RENDERED_COMPONENT].__mountComponent(\n      this._parent,\n      instance,\n      this.__processChildContext(context),\n      nativeNodeMounter\n    );\n\n    if (!currentElement.type._forwardRef && ref) {\n      attachRef(currentElement._owner, ref, this);\n    }\n\n    if (instance.componentDidMount) {\n      scheduleLayoutInSandbox(() => {\n        if (process.env.NODE_ENV !== 'production') {\n          measureLifeCycle(() => {\n            instance.componentDidMount();\n          }, this._mountID, 'componentDidMount');\n        } else {\n          instance.componentDidMount();\n        }\n      }, instance);\n    }\n\n    // Trigger setState callback\n    scheduleLayoutCallbacksInSandbox(callbacks, instance);\n\n    if (process.env.NODE_ENV !== 'production') {\n      scheduleLayout(() => {\n        Host.reconciler.mountComponent(this);\n        Host.measurer && Host.measurer.afterMountComponent(this._mountID);\n      });\n    }\n\n    return instance;\n  }\n\n  unmountComponent(shouldNotRemoveChild) {\n    let instance = this[INSTANCE];\n\n    // Unmounting a composite component maybe not complete mounted\n    // when throw error in component constructor stage\n    if (instance && instance.componentWillUnmount) {\n      performInSandbox(() => {\n        instance.componentWillUnmount();\n      }, instance);\n    }\n\n    if (this[RENDERED_COMPONENT] != null) {\n      let currentElement = this.__currentElement;\n      let ref = currentElement.ref;\n\n      if (!currentElement.type._forwardRef && ref) {\n        detachRef(currentElement._owner, ref, this);\n      }\n\n      this[RENDERED_COMPONENT].unmountComponent(shouldNotRemoveChild);\n      this[RENDERED_COMPONENT] = null;\n    }\n\n    // Reset pending fields\n    // Even if this component is scheduled for another async update,\n    // it would still be ignored because these fields are reset.\n    this.__pendingStateQueue = null;\n    this.__isPendingForceUpdate = false;\n\n    this.__destoryComponent();\n  }\n\n  /**\n   * Filters the context object to only contain keys specified in\n   * `contextTypes`\n   */\n  __processContext(context) {\n    let maskedContext = {};\n    let Component = this.__currentElement.type;\n    let contextTypes = Component.contextTypes;\n\n    if (contextTypes) {\n      for (let contextName in contextTypes) {\n        maskedContext[contextName] = context[contextName];\n      }\n    }\n\n    return maskedContext;\n  }\n\n  __processChildContext(currentContext) {\n    let instance = this[INSTANCE];\n    // The getChildContext method context should be current instance\n    let childContext = instance.getChildContext && instance.getChildContext();\n    if (childContext) {\n      return assign({}, currentContext, childContext);\n    }\n\n    return currentContext;\n  }\n\n  __processPendingState(props, context) {\n    let instance = this[INSTANCE];\n    let queue = this.__pendingStateQueue;\n    if (!queue) {\n      return instance.state;\n    }\n    // Reset pending queue\n    this.__pendingStateQueue = null;\n    let nextState = assign({}, instance.state);\n    for (let i = 0; i < queue.length; i++) {\n      let partial = queue[i];\n      assign(\n        nextState,\n        isFunction(partial) ?\n          partial.call(instance, nextState, props, context) :\n          partial\n      );\n    }\n\n    return nextState;\n  }\n\n  __updateComponent(\n    prevElement,\n    nextElement,\n    prevUnmaskedContext,\n    nextUnmaskedContext\n  ) {\n    let instance = this[INSTANCE];\n\n    // Maybe update component that has already been unmounted or failed mount.\n    if (!instance) {\n      return;\n    }\n\n    performInSandbox(() => {\n      if (process.env.NODE_ENV !== 'production') {\n        Host.measurer && Host.measurer.beforeUpdateComponent(this._mountID, this);\n      }\n\n      let willReceive;\n      let nextContext;\n      let nextProps;\n\n      // Determine if the context has changed or not\n      if (this._context === nextUnmaskedContext) {\n        nextContext = instance.context;\n      } else {\n        nextContext = this.__processContext(nextUnmaskedContext);\n        willReceive = true;\n      }\n\n      // Distinguish between a props update versus a simple state update\n      // Skip checking prop types again -- we don't read component.props to avoid\n      // warning for DOM component props in this upgrade\n      nextProps = nextElement.props;\n\n      if (prevElement !== nextElement) {\n        willReceive = true;\n      }\n\n      if (willReceive && instance.componentWillReceiveProps) {\n        // Calling this.setState() within componentWillReceiveProps will not trigger an additional render.\n        this.__isPendingState = true;\n        instance.componentWillReceiveProps(nextProps, nextContext);\n        this.__isPendingState = false;\n      }\n\n      // Update refs\n      if (this.__currentElement.type._forwardRef) {\n        instance.__prevForwardRef = prevElement.ref;\n        instance._forwardRef = nextElement.ref;\n      } else {\n        updateRef(prevElement, nextElement, this);\n      }\n\n      // Shoud update default\n      let shouldUpdate = true;\n      let prevProps = instance.props;\n      let prevState = instance.state;\n      // TODO: could delay execution processPendingState\n      let nextState = this.__processPendingState(nextProps, nextContext);\n      const callbacks = this.__pendingCallbacks;\n      this.__pendingCallbacks = null;\n\n      // ShouldComponentUpdate is not called when forceUpdate is used\n      if (!this.__isPendingForceUpdate) {\n        if (instance.shouldComponentUpdate) {\n          shouldUpdate = instance.shouldComponentUpdate(nextProps, nextState, nextContext);\n        } else if (instance.__isPureComponent) {\n          // Pure Component\n          shouldUpdate = !shallowEqual(prevProps, nextProps) ||\n            !shallowEqual(prevState, nextState);\n        }\n      }\n\n      if (shouldUpdate) {\n        this.__isPendingForceUpdate = false;\n        // Will set `this.props`, `this.state` and `this.context`.\n        let prevContext = instance.context;\n\n        // Cannot use this.setState() in componentWillUpdate.\n        // If need to update state in response to a prop change, use componentWillReceiveProps instead.\n        if (instance.componentWillUpdate) {\n          instance.componentWillUpdate(nextProps, nextState, nextContext);\n        }\n\n        // Replace with next\n        this.__currentElement = nextElement;\n        this._context = nextUnmaskedContext;\n        instance.props = nextProps;\n        instance.state = nextState;\n        instance.context = nextContext;\n\n        this.__updateRenderedComponent(nextUnmaskedContext);\n\n        if (instance.componentDidUpdate) {\n          scheduleLayoutInSandbox(() => {\n            instance.componentDidUpdate(prevProps, prevState, prevContext);\n          }, instance);\n        }\n\n        if (process.env.NODE_ENV !== 'production') {\n          // Calc update count.\n          this._updateCount++;\n        }\n      } else {\n        // If it's determined that a component should not update, we still want\n        // to set props and state but we shortcut the rest of the update.\n        this.__currentElement = nextElement;\n        this._context = nextUnmaskedContext;\n        instance.props = nextProps;\n        instance.state = nextState;\n        instance.context = nextContext;\n      }\n\n      scheduleLayoutCallbacksInSandbox(callbacks, instance);\n\n      if (process.env.NODE_ENV !== 'production') {\n        scheduleLayout(() => {\n          Host.measurer && Host.measurer.afterUpdateComponent(this._mountID);\n          Host.reconciler.receiveComponent(this);\n        });\n      }\n    }, instance);\n  }\n\n  /**\n   * Call the component's `render` method and update the DOM accordingly.\n   */\n  __updateRenderedComponent(context) {\n    let prevRenderedComponent = this[RENDERED_COMPONENT];\n    let prevRenderedElement = prevRenderedComponent.__currentElement;\n\n    let instance = this[INSTANCE];\n    let nextRenderedElement;\n\n    Host.owner = this;\n\n    if (process.env.NODE_ENV !== 'production') {\n      measureLifeCycle(() => {\n        nextRenderedElement = instance.render();\n      }, this._mountID, 'render');\n    } else {\n      nextRenderedElement = instance.render();\n    }\n\n    Host.owner = null;\n\n    if (shouldUpdateComponent(prevRenderedElement, nextRenderedElement)) {\n      const prevRenderedUnmaskedContext = prevRenderedComponent._context;\n      const nextRenderedUnmaskedContext = this.__processChildContext(context);\n      // If getChildContext existed and invoked when component updated that will make\n      // prevRenderedUnmaskedContext not equal nextRenderedUnmaskedContext under the tree\n      if (prevRenderedElement !== nextRenderedElement || prevRenderedUnmaskedContext !== nextRenderedUnmaskedContext) {\n        // If element type is illegal catch the error\n        prevRenderedComponent.__updateComponent(\n          prevRenderedElement,\n          nextRenderedElement,\n          prevRenderedUnmaskedContext,\n          nextRenderedUnmaskedContext\n        );\n      }\n\n      if (process.env.NODE_ENV !== 'production') {\n        Host.measurer && Host.measurer.recordOperation({\n          instanceID: this._mountID,\n          type: 'update component',\n          payload: {}\n        });\n      }\n    } else {\n      let lastNativeNode = null;\n      let prevNativeNode = prevRenderedComponent.__getNativeNode();\n      // Only prevNativeNode is empty fragment should find the prevSlibingNativeNode\n      // And current root component is fragment, but not need find the prevSlibingNativeNode when init mounting\n      if (isArray(prevNativeNode) && prevNativeNode.length === 0 && instance.__rootID == null) {\n        lastNativeNode = getPrevSiblingNativeNode(prevRenderedComponent);\n      }\n\n      prevRenderedComponent.unmountComponent(true);\n\n      this[RENDERED_COMPONENT] = instantiateComponent(nextRenderedElement);\n      this[RENDERED_COMPONENT].__mountComponent(\n        this._parent,\n        instance,\n        this.__processChildContext(context),\n        (newNativeNode, parent) => {\n          const driver = Host.driver;\n\n          prevNativeNode = toArray(prevNativeNode);\n          newNativeNode = toArray(newNativeNode);\n\n          // If the new length large then prev\n          for (let i = 0; i < newNativeNode.length; i++) {\n            let nativeNode = newNativeNode[i];\n            if (prevNativeNode[i]) {\n              driver.replaceChild(nativeNode, prevNativeNode[i]);\n            } else if (lastNativeNode) {\n              driver.insertAfter(nativeNode, lastNativeNode);\n            } else {\n              driver.appendChild(nativeNode, parent);\n            }\n            lastNativeNode = nativeNode;\n          }\n\n          // If the new length less then prev\n          for (let i = newNativeNode.length; i < prevNativeNode.length; i++) {\n            driver.removeChild(prevNativeNode[i]);\n          }\n        }\n      );\n    }\n  }\n\n  __getNativeNode() {\n    let renderedComponent = this[RENDERED_COMPONENT];\n    if (renderedComponent) {\n      return renderedComponent.__getNativeNode();\n    }\n  }\n\n  __getPublicInstance() {\n    let instance = this[INSTANCE];\n\n    // The functional components cannot be given refs\n    if (instance.__isReactiveComponent) return null;\n\n    return instance;\n  }\n}\n\nexport default CompositeComponent;\n","import Host from './host';\nimport BaseComponent from './base';\n\n/**\n * Text Component\n */\nclass TextComponent extends BaseComponent {\n  __updateComponent(prevElement, nextElement, context) {\n    nextElement = '' + nextElement;\n    // If text is some value that do not update even there number 1 and string \"1\"\n    if (prevElement !== nextElement) {\n      // Replace current element\n      this.__currentElement = nextElement;\n      Host.driver.updateText(this.__getNativeNode(), nextElement);\n\n      if (process.env.NODE_ENV !== 'production') {\n        this._stringText = this.__currentElement;\n        Host.reconciler.receiveComponent(this);\n      }\n    }\n  }\n\n  __createNativeNode() {\n    if (process.env.NODE_ENV !== 'production') {\n      this._stringText = this.__currentElement;\n    }\n    return Host.driver.createText(this.__currentElement, this);\n  }\n}\n\nexport default TextComponent;\n","import Host from './host';\nimport NativeComponent from './native';\nimport toArray from '../toArray';\nimport { INSTANCE, INTERNAL, NATIVE_NODE } from '../constant';\n\n/**\n * Fragment Component\n */\nclass FragmentComponent extends NativeComponent {\n  __mountComponent(parent, parentInstance, context, nativeNodeMounter) {\n    this.__initComponent(parent, parentInstance, context);\n\n    let instance = this[INSTANCE] = {};\n    instance[INTERNAL] = this;\n\n    const fragment = [];\n    this.__mountChildrenImpl(this._parent, this.__currentElement, context, (nativeNode) => {\n      nativeNode = toArray(nativeNode);\n      for (let i = 0; i < nativeNode.length; i++) {\n        fragment.push(nativeNode[i]);\n      }\n    });\n    if (nativeNodeMounter) {\n      nativeNodeMounter(fragment, parent);\n    } else {\n      for (let i = 0; i < fragment.length; i++) {\n        Host.driver.appendChild(fragment[i], parent);\n      }\n    }\n    if (process.env.NODE_ENV !== 'production') {\n      this.__currentElement.type = FragmentComponent;\n      Host.reconciler.mountComponent(this);\n    }\n\n    return instance;\n  }\n\n  unmountComponent(shouldNotRemoveChild) {\n    if (!shouldNotRemoveChild) {\n      const nativeNode = this.__getNativeNode();\n      for (let i = 0, l = nativeNode.length; i < l; i++) {\n        Host.driver.removeChild(nativeNode[i]);\n      }\n    }\n\n    // Do not need remove child when their parent is removed\n    this.__unmountChildren(true);\n    this.__destoryComponent();\n  }\n\n  __updateComponent(prevElement, nextElement, prevContext, nextContext) {\n    // Replace current element\n    this.__currentElement = nextElement;\n    this.__updateChildren(this.__currentElement, nextContext);\n\n    if (process.env.NODE_ENV !== 'production') {\n      this.__currentElement.type = FragmentComponent;\n      Host.reconciler.receiveComponent(this);\n    }\n  }\n\n  __getNativeNode() {\n    const renderedChildren = this.__renderedChildren || {};\n    return [].concat.apply([], Object.keys(renderedChildren).map(key => renderedChildren[key].__getNativeNode()));\n  }\n}\n\nif (process.env.NODE_ENV !== 'production') {\n  FragmentComponent.displayName = 'Fragment';\n}\n\nexport default FragmentComponent;\n","import Host from './host';\nimport BaseComponent from './base';\n\n/**\n * Empty Component\n */\nclass EmptyComponent extends BaseComponent {\n  __createNativeNode() {\n    return Host.driver.createEmpty(this);\n  }\n  __updateComponent() {\n    return;\n  }\n}\n\nexport default EmptyComponent;\n","export default {\n  // Stubs - DevTools expects to find these methods and replace them\n  // with wrappers in order to observe components being mounted, updated and\n  // unmounted\n  mountComponent() {},\n  receiveComponent() {},\n  unmountComponent() {},\n  // Stub - DevTools expects to find this method and replace it\n  // with a wrapper in order to observe new root components being added\n  renderNewRootComponent() {},\n};\n","import Host from './host';\nimport NativeComponent from './native';\nimport CompositeComponent from './composite';\nimport TextComponent from './text';\nimport FragmentComponent from './fragment';\nimport EmptyComponent from './empty';\nimport reconciler from '../devtools/reconciler';\n\nexport default function inject() {\n  // Inject component class\n  Host.__Empty = EmptyComponent;\n  Host.__Native = NativeComponent;\n  Host.__Text = TextComponent;\n  Host.__Fragment = FragmentComponent;\n  Host.__Composite = CompositeComponent;\n\n  if (process.env.NODE_ENV !== 'production') {\n    // Inject devtool renderer hook\n    Host.reconciler = reconciler;\n  }\n}\n","import injectRenderOptions from './vdom/injectRenderOptions';\nimport Instance from './vdom/instance';\nimport { isFunction, EMPTY_OBJECT } from './types';\nimport inject from './vdom/inject';\n\n// Inject init options to host, avoid circle deps between class component file and ./vdom/host\ninject();\n\nfunction render(element, container, options, callback) {\n  // Compatible with `render(element, container, callback)`\n  if (isFunction(options)) {\n    callback = options;\n    options = null;\n  }\n\n  options = options || EMPTY_OBJECT;\n  // Init inject\n  injectRenderOptions(options);\n\n  let rootComponent = Instance.mount(element, container, options);\n  let componentInstance = rootComponent.__getPublicInstance();\n\n  if (callback) {\n    callback.call(componentInstance);\n  }\n\n  return componentInstance;\n}\n\nexport default render;\n","export default process.env.RAX_VERSION;\n","import Instance from '../vdom/instance';\nimport Host from '../vdom/host';\nimport Reconciler from './reconciler';\nimport { RENDERED_COMPONENT } from '../constant';\n\nconst DevtoolsHook = {\n  ComponentTree: {\n    getClosestInstanceFromNode(node) {\n      return Instance.get(node);\n    },\n    getNodeFromInstance(inst) {\n      // inst is an internal instance (but could be a composite)\n      while (inst[RENDERED_COMPONENT]) {\n        inst = inst[RENDERED_COMPONENT];\n      }\n\n      if (inst) {\n        return inst._nativeNode;\n      } else {\n        return null;\n      }\n    }\n  },\n  Mount: {\n    get _instancesByReactRootID() {\n      const rootComponents = {};\n\n      // Ignore display top-level root component\n      for (let rootID in Host.rootComponents) {\n        rootComponents[rootID] = Host.rootComponents[rootID][RENDERED_COMPONENT];\n      }\n\n      return rootComponents;\n    },\n\n    _renderNewRootComponent: Reconciler.renderNewRootComponent\n  },\n  Reconciler,\n  // monitor the info of all components\n  monitor: null\n};\n\nexport default DevtoolsHook;\n","export createElement from './createElement';\nexport createContext from './createContext';\nexport createRef from './createRef';\nexport forwardRef from './forwardRef';\nexport { useState, useContext, useEffect, useLayoutEffect, useRef, useCallback, useMemo, useReducer, useImperativeHandle } from './hooks';\nexport memo from './memo';\nexport Fragment from './fragment';\nexport render from './render';\nexport Component, { PureComponent } from './vdom/component';\nexport version from './version';\n\nimport Host from './vdom/host';\nimport Instance from './vdom/instance';\nimport Element from './vdom/element';\nimport flattenChildren from './vdom/flattenChildren';\nimport DevtoolsHook from './devtools/index';\n\nexport const shared = {\n  Host,\n  Instance,\n  Element,\n  flattenChildren,\n};\n\nif (process.env.NODE_ENV !== 'production') {\n  /* global __RAX_DEVTOOLS_GLOBAL_HOOK__ */\n  if (typeof __RAX_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n    typeof __RAX_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') {\n    __RAX_DEVTOOLS_GLOBAL_HOOK__.inject(DevtoolsHook);\n  }\n\n  if (typeof window !== 'undefined') {\n    if (window.__RAX_INITIALISED__) {\n      console.error('Warning: more than one instance of Rax has been initialised, this could lead to unexpected behaviour.');\n    }\n    window.__RAX_INITIALISED__ = true;\n  }\n}\n"],"names":["__mountID","__isUpdating","driver","rootComponents","rootInstances","owner","ReactPropTypesSecret","has","require$$0","require$$1","Element","type","key","ref","props","element","_owner","propTypes","displayName","name","checkPropTypes","Object","defineProperty","configurable","enumerable","writable","value","freeze","isNull","obj","isFunction","isObject","isPlainObject","EMPTY_OBJECT","toString","call","isArray","array","Array","isString","string","isNumber","isFalsy","val","Boolean","NOOP","traverseChildren","children","result","i","l","length","push","flattenChildren","updateCallbacks","effectCallbacks","layoutCallbacks","scheduler","setTimeout","callback","invokeFunctionsWithClear","callbacks","shift","schedule","flush","scheduleEffect","flushEffect","scheduleLayout","flushLayout","createMinifiedError","code","typeInfo","undefined","getTypeInfo","Error","getRenderErrorInfo","keys","ownerComponent","Host","__getName","throwMinifiedError","throwError","message","warning","template","args","console","argsWithFormat","map","item","unshift","Function","prototype","apply","error","argIndex","replace","e","ownerHasKeyUseWarning","getCurrentComponentErrorInfo","parentType","info","parentName","isValidElement","object","validateExplicitKey","__validated","currentComponentErrorInfo","childOwner","validateChildKeys","node","child","RESERVED_PROPS","createElement","config","propName","childrenLength","arguments","childArray","defaultProps","invokeFunctionsWithContext","fns","context","hasOwnProperty","is","x","y","shallowEqual","objA","objB","keysA","keysB","INTERNAL","INSTANCE","NATIVE_NODE","RENDERED_COMPONENT","getCurrentInstance","getCurrentRenderingInstance","currentInstance","areInputsEqual","inputs","prevInputs","useState","initialState","hookID","getHookID","hooks","getHooks","setState","newState","hook","eagerState","__isScheduled","__update","__shouldUpdate","useContext","useEffect","effect","useEffectImpl","useLayoutEffect","defered","__create","immediately","current","__destory","currentDestory","msg","then","__prevInputs","__inputs","didMount","willUnmount","didUpdate","useImperativeHandle","create","nextInputs","concat","useRef","initialValue","useCallback","useMemo","useReducer","reducer","initialArg","init","dispatch","action","queue","__actions","currentState","__eagerState","eagerReducer","__eagerReducer","next","__reRenders","toArray","getNearestParent","instance","matcher","parent","__parentInstance","id","createContext","defaultValue","contextID","Provider","__contextID","__handlers","__on","handler","__off","filter","h","_getChildContext","getValue","componentDidUpdate","prevProps","render","getNearestParentProvider","Consumer","provider","prevValue","setValue","consumer","_contextID","_defaultValue","__getNearestParentProvider","createRef","_forwardRef","memo","compare","__compares","Fragment","injectRenderOptions","measurer","instantiateComponent","__Native","__Composite","__Text","String","__Fragment","__Empty","Component","refs","partialState","updater","forceUpdate","PureComponent","__isPureComponent","rootID","Root","__element","__rootID","__getPublicInstance","__getRenderedComponent","KEY","set","get","remove","mount","container","hydrate","beforeRender","createBody","renderOptions","parentContext","parentInternal","__processChildContext","_context","prevRootInstance","__penddingContext","afterRender","renderedComponent","defaultContext","rootInstance","__mountComponent","reconciler","renderNewRootComponent","updateRef","prevElement","nextElement","component","prevRef","nextRef","detachRef","attachRef","shouldUpdateComponent","prevFalsy","nextFalsy","isPrevStringOrNumber","getElementKeyName","index","elementKey","defaultName","keyName","keyUnique","getPrevSiblingNativeNode","__renderedChildren","__mountIndex","nativeNode","__getNativeNode","BaseComponent","__currentElement","__initComponent","parentInstance","_parent","_mountID","__destoryComponent","unmountComponent","nativeNodeMounter","__mountNativeNode","mountComponent","shouldNotRemoveChild","removeChild","currentElement","appendChild","__createNativeNode","assign","STYLE","CHILDREN","TREE","EVENT_PREFIX_REGEXP","NativeComponent","appendType","append","__prevStyleCopy","__mountChildren","__mountChildrenImpl","renderedChildren","renderedChildrenImage","renderedChild","mountImage","__unmountChildren","Instance","__updateComponent","prevContext","nextContext","nextProps","__updateProperties","__updateChildren","receiveComponent","propKey","styleName","styleUpdates","lastStyle","test","eventListener","removeEventListener","slice","toLowerCase","removeAttribute","nextProp","prevProp","eventName","addEventListener","setAttribute","recordOperation","instanceID","payload","setStyle","nextChildrenElements","prevChildren","nextChildren","prevChild","__unmount","isFragmentParent","prevFirstChild","prevFirstNativeNode","isPrevFirstEmptyFragment","shouldUnmountPrevFirstChild","lastPlacedNode","shouldRemoveAllChildren","removeChildren","shouldUnmount","insertNodes","nativeNodes","parentNode","insertAfter","insertBefore","nextIndex","nextChild","prevChildNativeNode","RE_RENDER_LIMIT","ReactiveComponent","pureRender","__isReactiveComponent","__render","__hookID","__hooks","__children","__contexts","state","__prevForwardRef","compares","shouldComponentUpdate","arePropsEqual","contextItem","__provider","handleContextChange","__lastValue","componentWillMount","componentDidMount","componentWillReceiveProps","componentWillUnmount","dirtyComponents","getPendingCallbacks","internal","__pendingCallbacks","setPendingCallbacks","getPendingStateQueue","__pendingStateQueue","setPendingStateQueue","enqueueCallback","callbackQueue","enqueueState","stateQueue","runUpdate","prevUnmaskedContext","nextUnmaskedContext","__isPendingForceUpdate","mountOrderComparator","c1","c2","performUpdate","dirties","c","sort","pop","scheduleUpdate","shouldAsyncUpdate","indexOf","requestUpdate","hasComponentRendered","__isPendingState","Updater","performInSandbox","fn","handleError","boundary","componentDidCatch","constructor","getDerivedStateFromError","boundaryInternal","measureLifeCycle","beforeLifeCycle","afterLifeCycle","scheduleLayoutInSandbox","scheduleLayoutCallbacksInSandbox","CompositeComponent","_updateCount","beforeMountComponent","publicProps","componentPrototype","publicContext","__processContext","renderedElement","process","__processPendingState","afterMountComponent","maskedContext","contextTypes","contextName","currentContext","childContext","getChildContext","nextState","partial","beforeUpdateComponent","willReceive","shouldUpdate","prevState","componentWillUpdate","__updateRenderedComponent","afterUpdateComponent","prevRenderedComponent","prevRenderedElement","nextRenderedElement","prevRenderedUnmaskedContext","nextRenderedUnmaskedContext","lastNativeNode","prevNativeNode","newNativeNode","replaceChild","TextComponent","updateText","_stringText","createText","FragmentComponent","fragment","EmptyComponent","createEmpty","inject","options","rootComponent","componentInstance","DevtoolsHook","ComponentTree","getClosestInstanceFromNode","getNodeFromInstance","inst","_nativeNode","Mount","_instancesByReactRootID","_renderNewRootComponent","Reconciler","monitor","shared","__RAX_DEVTOOLS_GLOBAL_HOOK__","window","__RAX_INITIALISED__"],"mappings":"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"}