{"version":3,"file":"static/js/899.425cd9b1.chunk.js","mappings":"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","sources":["../node_modules/preact/src/constants.js","../node_modules/preact/src/util.js","../node_modules/preact/src/options.js","../node_modules/preact/src/create-element.js","../node_modules/preact/src/component.js","../node_modules/preact/src/diff/props.js","../node_modules/preact/src/create-context.js","../node_modules/preact/src/diff/children.js","../node_modules/preact/src/diff/index.js","../node_modules/preact/src/render.js","../node_modules/preact/src/clone-element.js","../node_modules/preact/src/diff/catch-error.js","../node_modules/preact/hooks/src/index.js","../node_modules/safe-buffer/index.js","../node_modules/sha.js/hash.js","../node_modules/sha.js/index.js","../node_modules/sha.js/sha.js","../node_modules/sha.js/sha1.js","../node_modules/sha.js/sha224.js","../node_modules/sha.js/sha256.js","../node_modules/sha.js/sha384.js","../node_modules/sha.js/sha512.js"],"sourcesContent":["/** Normal hydration that attaches to a DOM tree but does not diff it. */\nexport const MODE_HYDRATE = 1 << 5;\n/** Signifies this VNode suspended on the previous render */\nexport const MODE_SUSPENDED = 1 << 7;\n/** Indicates that this node needs to be inserted while patching children */\nexport const INSERT_VNODE = 1 << 16;\n/** Indicates a VNode has been matched with another VNode in the diff */\nexport const MATCHED = 1 << 17;\n\n/** Reset all mode flags */\nexport const RESET_MODE = ~(MODE_HYDRATE | MODE_SUSPENDED);\n\nexport const EMPTY_OBJ = /** @type {any} */ ({});\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL =\n\t/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n","import { EMPTY_ARR } from './constants';\n\nexport const isArray = Array.isArray;\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-expect-error We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {preact.ContainerNode} node The node to remove\n */\nexport function removeNode(node) {\n\tif (node && node.parentNode) node.parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n","import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {VNode[\"type\"]} type The node name or Component constructor for this\n * virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the\n * virtual node\n * @returns {VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\t/** @type {VNode} */\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original,\n\t\t_index: -1,\n\t\t_flags: 0\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == null && options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor == undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\nimport { MODE_HYDRATE } from './constants';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function BaseComponent(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nBaseComponent.prototype.setState = function (update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) {\n\t\t\tthis._stateCallbacks.push(callback);\n\t\t}\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nBaseComponent.prototype.forceUpdate = function (callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {ComponentChildren | void}\n */\nBaseComponent.prototype.render = Fragment;\n\n/**\n * @param {VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._index + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet oldVNode = component._vnode,\n\t\toldDom = oldVNode._dom,\n\t\tcommitQueue = [],\n\t\trefQueue = [];\n\n\tif (component._parentDom) {\n\t\tconst newVNode = assign({}, oldVNode);\n\t\tnewVNode._original = oldVNode._original + 1;\n\t\tif (options.vnode) options.vnode(newVNode);\n\n\t\tdiff(\n\t\t\tcomponent._parentDom,\n\t\t\tnewVNode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tcomponent._parentDom.namespaceURI,\n\t\t\toldVNode._flags & MODE_HYDRATE ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(oldVNode) : oldDom,\n\t\t\t!!(oldVNode._flags & MODE_HYDRATE),\n\t\t\trefQueue\n\t\t);\n\n\t\tnewVNode._original = oldVNode._original;\n\t\tnewVNode._parent._children[newVNode._index] = newVNode;\n\t\tcommitRoot(commitQueue, newVNode, refQueue);\n\n\t\tif (newVNode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(newVNode);\n\t\t}\n\t}\n}\n\n/**\n * @param {VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array}\n */\nlet rerenderQueue = [];\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/**\n * Enqueue a rerender of a component\n * @param {Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/**\n * @param {Component} a\n * @param {Component} b\n */\nconst depthSort = (a, b) => a._vnode._depth - b._vnode._depth;\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet c;\n\trerenderQueue.sort(depthSort);\n\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t// process() calls from getting scheduled while `queue` is still being consumed.\n\twhile ((c = rerenderQueue.shift())) {\n\t\tif (c._dirty) {\n\t\t\tlet renderQueueLength = rerenderQueue.length;\n\t\t\trenderComponent(c);\n\t\t\tif (rerenderQueue.length > renderQueueLength) {\n\t\t\t\t// When i.e. rerendering a provider additional new items can be injected, we want to\n\t\t\t\t// keep the order from top to bottom with those new items so we can handle them in a\n\t\t\t\t// single pass\n\t\t\t\trerenderQueue.sort(depthSort);\n\t\t\t}\n\t\t}\n\t}\n\tprocess._rerenderCount = 0;\n}\n\nprocess._rerenderCount = 0;\n","import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value == null ? '' : value);\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else if (typeof value != 'number' || IS_NON_DIMENSIONAL.test(key)) {\n\t\tstyle[key] = value;\n\t} else {\n\t\tstyle[key] = value + 'px';\n\t}\n}\n\n// A logical clock to solve issues like https://github.com/preactjs/preact/issues/3927.\n// When the DOM performs an event it leaves micro-ticks in between bubbling up which means that\n// an event can trigger on a newly reated DOM-node while the event bubbles up.\n//\n// Originally inspired by Vue\n// (https://github.com/vuejs/core/blob/caeb8a68811a1b0f79/packages/runtime-dom/src/modules/events.ts#L90-L101),\n// but modified to use a logical clock instead of Date.now() in case event handlers get attached\n// and events get dispatched during the same millisecond.\n//\n// The clock is incremented after each new event dispatch. This allows 1 000 000 new events\n// per second for over 280 years before the value reaches Number.MAX_SAFE_INTEGER (2**53 - 1).\nlet eventClock = 0;\n\n/**\n * Set a property value on a DOM node\n * @param {PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {string} namespace Whether or not this DOM node is an SVG node or not\n */\nexport function setProperty(dom, name, value, oldValue, namespace) {\n\tlet useCapture;\n\n\to: if (name === 'style') {\n\t\tif (typeof value == 'string') {\n\t\t\tdom.style.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\tdom.style.cssText = oldValue = '';\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (name in oldValue) {\n\t\t\t\t\tif (!(value && name in value)) {\n\t\t\t\t\t\tsetStyle(dom.style, name, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (name in value) {\n\t\t\t\t\tif (!oldValue || value[name] !== oldValue[name]) {\n\t\t\t\t\t\tsetStyle(dom.style, name, value[name]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tuseCapture =\n\t\t\tname !== (name = name.replace(/(PointerCapture)$|Capture$/i, '$1'));\n\n\t\t// Infer correct casing for DOM built-in events:\n\t\tif (\n\t\t\tname.toLowerCase() in dom ||\n\t\t\tname === 'onFocusOut' ||\n\t\t\tname === 'onFocusIn'\n\t\t)\n\t\t\tname = name.toLowerCase().slice(2);\n\t\telse name = name.slice(2);\n\n\t\tif (!dom._listeners) dom._listeners = {};\n\t\tdom._listeners[name + useCapture] = value;\n\n\t\tif (value) {\n\t\t\tif (!oldValue) {\n\t\t\t\tvalue._attached = eventClock;\n\t\t\t\tdom.addEventListener(\n\t\t\t\t\tname,\n\t\t\t\t\tuseCapture ? eventProxyCapture : eventProxy,\n\t\t\t\t\tuseCapture\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tvalue._attached = oldValue._attached;\n\t\t\t}\n\t\t} else {\n\t\t\tdom.removeEventListener(\n\t\t\t\tname,\n\t\t\t\tuseCapture ? eventProxyCapture : eventProxy,\n\t\t\t\tuseCapture\n\t\t\t);\n\t\t}\n\t} else {\n\t\tif (namespace == 'http://www.w3.org/2000/svg') {\n\t\t\t// Normalize incorrect prop usage for SVG:\n\t\t\t// - xlink:href / xlinkHref --> href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname != 'width' &&\n\t\t\tname != 'height' &&\n\t\t\tname != 'href' &&\n\t\t\tname != 'list' &&\n\t\t\tname != 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname != 'tabIndex' &&\n\t\t\tname != 'download' &&\n\t\t\tname != 'rowSpan' &&\n\t\t\tname != 'colSpan' &&\n\t\t\tname != 'role' &&\n\t\t\tname != 'popover' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// aria- and data- attributes have no boolean representation.\n\t\t// A `false` value is different from the attribute not being\n\t\t// present, so we can't remove it. For non-boolean aria\n\t\t// attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost too many bytes. On top of\n\t\t// that other frameworks generally stringify `false`.\n\n\t\tif (typeof value == 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (value != null && (value !== false || name[4] === '-')) {\n\t\t\tdom.setAttribute(name, name == 'popover' && value == true ? '' : value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Create an event proxy function.\n * @param {boolean} useCapture Is the event handler for the capture phase.\n * @private\n */\nfunction createEventProxy(useCapture) {\n\t/**\n\t * Proxy an event to hooked event handlers\n\t * @param {PreactEvent} e The event object from the browser\n\t * @private\n\t */\n\treturn function (e) {\n\t\tif (this._listeners) {\n\t\t\tconst eventHandler = this._listeners[e.type + useCapture];\n\t\t\tif (e._dispatched == null) {\n\t\t\t\te._dispatched = eventClock++;\n\n\t\t\t\t// When `e._dispatched` is smaller than the time when the targeted event\n\t\t\t\t// handler was attached we know we have bubbled up to an element that was added\n\t\t\t\t// during patching the DOM.\n\t\t\t} else if (e._dispatched < eventHandler._attached) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn eventHandler(options.event ? options.event(e) : e);\n\t\t}\n\t};\n}\n\nconst eventProxy = createEventProxy(false);\nconst eventProxyCapture = createEventProxy(true);\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\t/** @type {FunctionComponent} */\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\t/** @type {FunctionComponent} */\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\t/** @type {Component[] | null} */\n\t\t\t\tlet subs = [];\n\t\t\t\tlet ctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.componentWillUnmount = () => {\n\t\t\t\t\tsubs = null;\n\t\t\t\t};\n\n\t\t\t\tthis.shouldComponentUpdate = function (_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\tsubs.some(c => {\n\t\t\t\t\t\t\tc._force = true;\n\t\t\t\t\t\t\tenqueueRender(c);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tif (subs) {\n\t\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType =\n\t\tcontext);\n}\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR, INSERT_VNODE, MATCHED } from '../constants';\nimport { isArray } from '../util';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {PreactElement} parentDom The DOM element whose children are being\n * diffed\n * @param {ComponentChildren[]} renderResult\n * @param {VNode} newParentVNode The new virtual node whose children should be\n * diff'ed against oldParentVNode\n * @param {VNode} oldParentVNode The old virtual node whose children should be\n * diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by\n * getChildContext\n * @param {string} namespace Current namespace of the DOM node (HTML, SVG, or MathML)\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {PreactElement} oldDom The current attached DOM element any new dom\n * elements should be placed around. Likely `null` on first render (except when\n * hydrating). Can be a sibling DOM element when diffing Fragments that have\n * siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tnamespace,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating,\n\trefQueue\n) {\n\tlet i,\n\t\t/** @type {VNode} */\n\t\toldVNode,\n\t\t/** @type {VNode} */\n\t\tchildVNode,\n\t\t/** @type {PreactElement} */\n\t\tnewDom,\n\t\t/** @type {PreactElement} */\n\t\tfirstChildDom;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\t/** @type {VNode[]} */\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet newChildrenLength = renderResult.length;\n\n\tnewParentVNode._nextDom = oldDom;\n\tconstructNewChildrenArray(newParentVNode, renderResult, oldChildren);\n\toldDom = newParentVNode._nextDom;\n\n\tfor (i = 0; i < newChildrenLength; i++) {\n\t\tchildVNode = newParentVNode._children[i];\n\t\tif (childVNode == null) continue;\n\n\t\t// At this point, constructNewChildrenArray has assigned _index to be the\n\t\t// matchingIndex for this VNode's oldVNode (or -1 if there is no oldVNode).\n\t\tif (childVNode._index === -1) {\n\t\t\toldVNode = EMPTY_OBJ;\n\t\t} else {\n\t\t\toldVNode = oldChildren[childVNode._index] || EMPTY_OBJ;\n\t\t}\n\n\t\t// Update childVNode._index to its final index\n\t\tchildVNode._index = i;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tnamespace,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating,\n\t\t\trefQueue\n\t\t);\n\n\t\t// Adjust DOM nodes\n\t\tnewDom = childVNode._dom;\n\t\tif (childVNode.ref && oldVNode.ref != childVNode.ref) {\n\t\t\tif (oldVNode.ref) {\n\t\t\t\tapplyRef(oldVNode.ref, null, childVNode);\n\t\t\t}\n\t\t\trefQueue.push(\n\t\t\t\tchildVNode.ref,\n\t\t\t\tchildVNode._component || newDom,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t}\n\n\t\tif (firstChildDom == null && newDom != null) {\n\t\t\tfirstChildDom = newDom;\n\t\t}\n\n\t\tif (\n\t\t\tchildVNode._flags & INSERT_VNODE ||\n\t\t\toldVNode._children === childVNode._children\n\t\t) {\n\t\t\toldDom = insert(childVNode, oldDom, parentDom);\n\t\t} else if (\n\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\tchildVNode._nextDom !== undefined\n\t\t) {\n\t\t\t// Since Fragments or components that return Fragment like VNodes can\n\t\t\t// contain multiple DOM nodes as the same level, continue the diff from\n\t\t\t// the sibling of last DOM child of this child VNode\n\t\t\toldDom = childVNode._nextDom;\n\t\t} else if (newDom) {\n\t\t\toldDom = newDom.nextSibling;\n\t\t}\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because it\n\t\t// is only used by `diffChildren` to determine where to resume the diff\n\t\t// after diffing Components and Fragments. Once we store it the nextDOM\n\t\t// local var, we can clean up the property. Also prevents us hanging on to\n\t\t// DOM nodes that may have been unmounted.\n\t\tchildVNode._nextDom = undefined;\n\n\t\t// Unset diffing flags\n\t\tchildVNode._flags &= ~(INSERT_VNODE | MATCHED);\n\t}\n\n\t// TODO: With new child diffing algo, consider alt ways to diff Fragments.\n\t// Such as dropping oldDom and moving fragments in place\n\t//\n\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t// _nextDom property to the nextSibling of its last child DOM node.\n\t//\n\t// `oldDom` contains the correct value here because if the last child\n\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t// node's nextSibling.\n\tnewParentVNode._nextDom = oldDom;\n\tnewParentVNode._dom = firstChildDom;\n}\n\n/**\n * @param {VNode} newParentVNode\n * @param {ComponentChildren[]} renderResult\n * @param {VNode[]} oldChildren\n */\nfunction constructNewChildrenArray(newParentVNode, renderResult, oldChildren) {\n\t/** @type {number} */\n\tlet i;\n\t/** @type {VNode} */\n\tlet childVNode;\n\t/** @type {VNode} */\n\tlet oldVNode;\n\n\tconst newChildrenLength = renderResult.length;\n\tlet oldChildrenLength = oldChildren.length,\n\t\tremainingOldChildren = oldChildrenLength;\n\n\tlet skew = 0;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < newChildrenLength; i++) {\n\t\t// @ts-expect-error We are reusing the childVNode variable to hold both the\n\t\t// pre and post normalized childVNode\n\t\tchildVNode = renderResult[i];\n\n\t\tif (\n\t\t\tchildVNode == null ||\n\t\t\ttypeof childVNode == 'boolean' ||\n\t\t\ttypeof childVNode == 'function'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t\tcontinue;\n\t\t}\n\t\t// If this newVNode is being reused (e.g.
{reuse}{reuse}
) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint' ||\n\t\t\tchildVNode.constructor == String\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode.constructor === undefined && childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse =
\n\t\t\t//
{reuse}{reuse}
\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tchildVNode.ref ? childVNode.ref : null,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\tconst skewedIndex = i + skew;\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Temporarily store the matchingIndex on the _index property so we can pull\n\t\t// out the oldVNode in diffChildren. We'll override this to the VNode's\n\t\t// final index after using this property to get the oldVNode\n\t\tconst matchingIndex = (childVNode._index = findMatchingIndex(\n\t\t\tchildVNode,\n\t\t\toldChildren,\n\t\t\tskewedIndex,\n\t\t\tremainingOldChildren\n\t\t));\n\n\t\toldVNode = null;\n\t\tif (matchingIndex !== -1) {\n\t\t\toldVNode = oldChildren[matchingIndex];\n\t\t\tremainingOldChildren--;\n\t\t\tif (oldVNode) {\n\t\t\t\toldVNode._flags |= MATCHED;\n\t\t\t}\n\t\t}\n\n\t\t// Here, we define isMounting for the purposes of the skew diffing\n\t\t// algorithm. Nodes that are unsuspending are considered mounting and we detect\n\t\t// this by checking if oldVNode._original === null\n\t\tconst isMounting = oldVNode == null || oldVNode._original === null;\n\n\t\tif (isMounting) {\n\t\t\tif (matchingIndex == -1) {\n\t\t\t\tskew--;\n\t\t\t}\n\n\t\t\t// If we are mounting a DOM VNode, mark it for insertion\n\t\t\tif (typeof childVNode.type != 'function') {\n\t\t\t\tchildVNode._flags |= INSERT_VNODE;\n\t\t\t}\n\t\t} else if (matchingIndex !== skewedIndex) {\n\t\t\t// When we move elements around i.e. [0, 1, 2] --> [1, 0, 2]\n\t\t\t// --> we diff 1, we find it at position 1 while our skewed index is 0 and our skew is 0\n\t\t\t// we set the skew to 1 as we found an offset.\n\t\t\t// --> we diff 0, we find it at position 0 while our skewed index is at 2 and our skew is 1\n\t\t\t// this makes us increase the skew again.\n\t\t\t// --> we diff 2, we find it at position 2 while our skewed index is at 4 and our skew is 2\n\t\t\t//\n\t\t\t// this becomes an optimization question where currently we see a 1 element offset as an insertion\n\t\t\t// or deletion i.e. we optimize for [0, 1, 2] --> [9, 0, 1, 2]\n\t\t\t// while a more than 1 offset we see as a swap.\n\t\t\t// We could probably build heuristics for having an optimized course of action here as well, but\n\t\t\t// might go at the cost of some bytes.\n\t\t\t//\n\t\t\t// If we wanted to optimize for i.e. only swaps we'd just do the last two code-branches and have\n\t\t\t// only the first item be a re-scouting and all the others fall in their skewed counter-part.\n\t\t\t// We could also further optimize for swaps\n\t\t\tif (matchingIndex == skewedIndex - 1) {\n\t\t\t\tskew--;\n\t\t\t} else if (matchingIndex == skewedIndex + 1) {\n\t\t\t\tskew++;\n\t\t\t} else {\n\t\t\t\tif (matchingIndex > skewedIndex) {\n\t\t\t\t\tskew--;\n\t\t\t\t} else {\n\t\t\t\t\tskew++;\n\t\t\t\t}\n\n\t\t\t\t// Move this VNode's DOM if the original index (matchingIndex) doesn't\n\t\t\t\t// match the new skew index (i + new skew)\n\t\t\t\t// In the former two branches we know that it matches after skewing\n\t\t\t\tchildVNode._flags |= INSERT_VNODE;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove remaining oldChildren if there are any. Loop forwards so that as we\n\t// unmount DOM from the beginning of the oldChildren, we can adjust oldDom to\n\t// point to the next child, which needs to be the first DOM node that won't be\n\t// unmounted.\n\tif (remainingOldChildren) {\n\t\tfor (i = 0; i < oldChildrenLength; i++) {\n\t\t\toldVNode = oldChildren[i];\n\t\t\tif (oldVNode != null && (oldVNode._flags & MATCHED) === 0) {\n\t\t\t\tif (oldVNode._dom == newParentVNode._nextDom) {\n\t\t\t\t\tnewParentVNode._nextDom = getDomSibling(oldVNode);\n\t\t\t\t}\n\n\t\t\t\tunmount(oldVNode, oldVNode);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * @param {VNode} parentVNode\n * @param {PreactElement} oldDom\n * @param {PreactElement} parentDom\n * @returns {PreactElement}\n */\nfunction insert(parentVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\n\tif (typeof parentVNode.type == 'function') {\n\t\tlet children = parentVNode._children;\n\t\tfor (let i = 0; children && i < children.length; i++) {\n\t\t\tif (children[i]) {\n\t\t\t\t// If we enter this code path on sCU bailout, where we copy\n\t\t\t\t// oldVNode._children to newVNode._children, we need to update the old\n\t\t\t\t// children's _parent pointer to point to the newVNode (parentVNode\n\t\t\t\t// here).\n\t\t\t\tchildren[i]._parent = parentVNode;\n\t\t\t\toldDom = insert(children[i], oldDom, parentDom);\n\t\t\t}\n\t\t}\n\n\t\treturn oldDom;\n\t} else if (parentVNode._dom != oldDom) {\n\t\tif (oldDom && parentVNode.type && !parentDom.contains(oldDom)) {\n\t\t\toldDom = getDomSibling(parentVNode);\n\t\t}\n\t\tparentDom.insertBefore(parentVNode._dom, oldDom || null);\n\t\toldDom = parentVNode._dom;\n\t}\n\n\tdo {\n\t\toldDom = oldDom && oldDom.nextSibling;\n\t} while (oldDom != null && oldDom.nodeType === 8);\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {ComponentChildren} children The unflattened children of a virtual\n * node\n * @returns {VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\n/**\n * @param {VNode} childVNode\n * @param {VNode[]} oldChildren\n * @param {number} skewedIndex\n * @param {number} remainingOldChildren\n * @returns {number}\n */\nfunction findMatchingIndex(\n\tchildVNode,\n\toldChildren,\n\tskewedIndex,\n\tremainingOldChildren\n) {\n\tconst key = childVNode.key;\n\tconst type = childVNode.type;\n\tlet x = skewedIndex - 1;\n\tlet y = skewedIndex + 1;\n\tlet oldVNode = oldChildren[skewedIndex];\n\n\t// We only need to perform a search if there are more children\n\t// (remainingOldChildren) to search. However, if the oldVNode we just looked\n\t// at skewedIndex was not already used in this diff, then there must be at\n\t// least 1 other (so greater than 1) remainingOldChildren to attempt to match\n\t// against. So the following condition checks that ensuring\n\t// remainingOldChildren > 1 if the oldVNode is not already used/matched. Else\n\t// if the oldVNode was null or matched, then there could needs to be at least\n\t// 1 (aka `remainingOldChildren > 0`) children to find and compare against.\n\tlet shouldSearch =\n\t\tremainingOldChildren >\n\t\t(oldVNode != null && (oldVNode._flags & MATCHED) === 0 ? 1 : 0);\n\n\tif (\n\t\toldVNode === null ||\n\t\t(oldVNode &&\n\t\t\tkey == oldVNode.key &&\n\t\t\ttype === oldVNode.type &&\n\t\t\t(oldVNode._flags & MATCHED) === 0)\n\t) {\n\t\treturn skewedIndex;\n\t} else if (shouldSearch) {\n\t\twhile (x >= 0 || y < oldChildren.length) {\n\t\t\tif (x >= 0) {\n\t\t\t\toldVNode = oldChildren[x];\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\t(oldVNode._flags & MATCHED) === 0 &&\n\t\t\t\t\tkey == oldVNode.key &&\n\t\t\t\t\ttype === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\treturn x;\n\t\t\t\t}\n\t\t\t\tx--;\n\t\t\t}\n\n\t\t\tif (y < oldChildren.length) {\n\t\t\t\toldVNode = oldChildren[y];\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\t(oldVNode._flags & MATCHED) === 0 &&\n\t\t\t\t\tkey == oldVNode.key &&\n\t\t\t\t\ttype === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\treturn y;\n\t\t\t\t}\n\t\t\t\ty++;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn -1;\n}\n","import {\n\tEMPTY_OBJ,\n\tMODE_HYDRATE,\n\tMODE_SUSPENDED,\n\tRESET_MODE\n} from '../constants';\nimport { BaseComponent, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { setProperty } from './props';\nimport { assign, isArray, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {PreactElement} parentDom The parent of the DOM element\n * @param {VNode} newVNode The new virtual node\n * @param {VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by\n * getChildContext\n * @param {string} namespace Current namespace of the DOM node (HTML, SVG, or MathML)\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {PreactElement} oldDom The current attached DOM element any new dom\n * elements should be placed around. Likely `null` on first render (except when\n * hydrating). Can be a sibling DOM element when diffing Fragments that have\n * siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tnamespace,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating,\n\trefQueue\n) {\n\t/** @type {any} */\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._flags & MODE_SUSPENDED) {\n\t\tisHydrating = !!(oldVNode._flags & MODE_HYDRATE);\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\touter: if (typeof newType == 'function') {\n\t\ttry {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\t\t\tconst isClassComponent =\n\t\t\t\t'prototype' in newType && newType.prototype.render;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif (isClassComponent) {\n\t\t\t\t\t// @ts-expect-error The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-expect-error Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new BaseComponent(\n\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (isClassComponent && c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\n\t\t\tif (isClassComponent && newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\t\t\tc._vnode = newVNode;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tisClassComponent &&\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (isClassComponent && c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tisClassComponent &&\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t!c._force &&\n\t\t\t\t\t((c.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\t\tnewVNode._original === oldVNode._original)\n\t\t\t\t) {\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) {\n\t\t\t\t\t\t// When we are dealing with a bail because of sCU we have to update\n\t\t\t\t\t\t// the props, state and dirty-state.\n\t\t\t\t\t\t// when we are dealing with strict-equality we don't as the child could still\n\t\t\t\t\t\t// be dirtied see #3883\n\t\t\t\t\t\tc.props = newProps;\n\t\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t\tc._dirty = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.some(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\n\t\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t\t}\n\t\t\t\t\tc._stateCallbacks = [];\n\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (isClassComponent && c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc._parentDom = parentDom;\n\t\t\tc._force = false;\n\n\t\t\tlet renderHook = options._render,\n\t\t\t\tcount = 0;\n\t\t\tif (isClassComponent) {\n\t\t\t\tc.state = c._nextState;\n\t\t\t\tc._dirty = false;\n\n\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t}\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t} else {\n\t\t\t\tdo {\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\t\t// Handle setState called in render, see #2553\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t} while (c._dirty && ++count < 25);\n\t\t\t}\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (isClassComponent && !isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tisArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tnamespace,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating,\n\t\t\t\trefQueue\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._flags &= RESET_MODE;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tnewVNode._original = null;\n\t\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\t\tnewVNode._flags |= isHydrating\n\t\t\t\t\t? MODE_HYDRATE | MODE_SUSPENDED\n\t\t\t\t\t: MODE_HYDRATE;\n\n\t\t\t\twhile (oldDom && oldDom.nodeType === 8 && oldDom.nextSibling) {\n\t\t\t\t\toldDom = oldDom.nextSibling;\n\t\t\t\t}\n\t\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t\tnewVNode._dom = oldDom;\n\t\t\t} else {\n\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t}\n\t\t\toptions._catchError(e, newVNode, oldVNode);\n\t\t}\n\t} else if (\n\t\texcessDomChildren == null &&\n\t\tnewVNode._original === oldVNode._original\n\t) {\n\t\tnewVNode._children = oldVNode._children;\n\t\tnewVNode._dom = oldVNode._dom;\n\t} else {\n\t\tnewVNode._dom = diffElementNodes(\n\t\t\toldVNode._dom,\n\t\t\tnewVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tnamespace,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\tisHydrating,\n\t\t\trefQueue\n\t\t);\n\t}\n\n\tif ((tmp = options.diffed)) tmp(newVNode);\n}\n\n/**\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {VNode} root\n */\nexport function commitRoot(commitQueue, root, refQueue) {\n\troot._nextDom = undefined;\n\n\tfor (let i = 0; i < refQueue.length; i++) {\n\t\tapplyRef(refQueue[i], refQueue[++i], refQueue[++i]);\n\t}\n\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-expect-error Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-expect-error See above comment on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {PreactElement} dom The DOM element representing the virtual nodes\n * being diffed\n * @param {VNode} newVNode The new virtual node\n * @param {VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {string} namespace Current namespace of the DOM node (HTML, SVG, or MathML)\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n * @returns {PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tnamespace,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating,\n\trefQueue\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = /** @type {string} */ (newVNode.type);\n\t/** @type {any} */\n\tlet i;\n\t/** @type {{ __html?: string }} */\n\tlet newHtml;\n\t/** @type {{ __html?: string }} */\n\tlet oldHtml;\n\t/** @type {ComponentChildren} */\n\tlet newChildren;\n\tlet value;\n\tlet inputValue;\n\tlet checked;\n\n\t// Tracks entering and exiting namespaces when descending through the tree.\n\tif (nodeType === 'svg') namespace = 'http://www.w3.org/2000/svg';\n\telse if (nodeType === 'math')\n\t\tnamespace = 'http://www.w3.org/1998/Math/MathML';\n\telse if (!namespace) namespace = 'http://www.w3.org/1999/xhtml';\n\n\tif (excessDomChildren != null) {\n\t\tfor (i = 0; i < excessDomChildren.length; i++) {\n\t\t\tvalue = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tvalue &&\n\t\t\t\t'setAttribute' in value === !!nodeType &&\n\t\t\t\t(nodeType ? value.localName === nodeType : value.nodeType === 3)\n\t\t\t) {\n\t\t\t\tdom = value;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tdom = document.createElementNS(\n\t\t\tnamespace,\n\t\t\tnodeType,\n\t\t\tnewProps.is && newProps\n\t\t);\n\n\t\t// we are creating a new node, so we can assume this is a new subtree (in\n\t\t// case we are hydrating), this deopts the hydrate\n\t\tif (isHydrating) {\n\t\t\tif (options._hydrationMismatch)\n\t\t\t\toptions._hydrationMismatch(newVNode, excessDomChildren);\n\t\t\tisHydrating = false;\n\t\t}\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\t// If we are in a situation where we are not hydrating but are using\n\t\t// existing DOM (e.g. replaceNode) we should read the existing DOM\n\t\t// attributes to diff them\n\t\tif (!isHydrating && excessDomChildren != null) {\n\t\t\toldProps = {};\n\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\tvalue = dom.attributes[i];\n\t\t\t\toldProps[value.name] = value.value;\n\t\t\t}\n\t\t}\n\n\t\tfor (i in oldProps) {\n\t\t\tvalue = oldProps[i];\n\t\t\tif (i == 'children') {\n\t\t\t} else if (i == 'dangerouslySetInnerHTML') {\n\t\t\t\toldHtml = value;\n\t\t\t} else if (!(i in newProps)) {\n\t\t\t\tif (\n\t\t\t\t\t(i == 'value' && 'defaultValue' in newProps) ||\n\t\t\t\t\t(i == 'checked' && 'defaultChecked' in newProps)\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tsetProperty(dom, i, null, value, namespace);\n\t\t\t}\n\t\t}\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tfor (i in newProps) {\n\t\t\tvalue = newProps[i];\n\t\t\tif (i == 'children') {\n\t\t\t\tnewChildren = value;\n\t\t\t} else if (i == 'dangerouslySetInnerHTML') {\n\t\t\t\tnewHtml = value;\n\t\t\t} else if (i == 'value') {\n\t\t\t\tinputValue = value;\n\t\t\t} else if (i == 'checked') {\n\t\t\t\tchecked = value;\n\t\t\t} else if (\n\t\t\t\t(!isHydrating || typeof value == 'function') &&\n\t\t\t\toldProps[i] !== value\n\t\t\t) {\n\t\t\t\tsetProperty(dom, i, value, oldProps[i], namespace);\n\t\t\t}\n\t\t}\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\tif (\n\t\t\t\t!isHydrating &&\n\t\t\t\t(!oldHtml ||\n\t\t\t\t\t(newHtml.__html !== oldHtml.__html &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML))\n\t\t\t) {\n\t\t\t\tdom.innerHTML = newHtml.__html;\n\t\t\t}\n\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\tif (oldHtml) dom.innerHTML = '';\n\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tisArray(newChildren) ? newChildren : [newChildren],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tnodeType === 'foreignObject'\n\t\t\t\t\t? 'http://www.w3.org/1999/xhtml'\n\t\t\t\t\t: namespace,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating,\n\t\t\t\trefQueue\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tremoveNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// As above, don't diff props during hydration\n\t\tif (!isHydrating) {\n\t\t\ti = 'value';\n\t\t\tif (nodeType === 'progress' && inputValue == null) {\n\t\t\t\tdom.removeAttribute('value');\n\t\t\t} else if (\n\t\t\t\tinputValue !== undefined &&\n\t\t\t\t// #2756 For the -element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(inputValue !== dom[i] ||\n\t\t\t\t\t(nodeType === 'progress' && !inputValue) ||\n\t\t\t\t\t// This is only for IE 11 to fix