{"version":3,"file":"static/js/576.f357c0af.chunk.js","mappings":"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","sources":["../node_modules/clsx/dist/clsx.m.js","../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"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t} [children] The children of the\n * virtual node\n * @returns {import('./internal').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 {import('./internal').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 {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').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 {import('./internal').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_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 {import('./internal').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 {import('./internal').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 {import('./internal').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 {import('./internal').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 {import('./internal').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 {import('./internal').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 {import('./internal').Component} a\n * @param {import('./internal').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, SVG_NAMESPACE } 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\nconst CAPTURE_REGEX = /(PointerCapture)$|Capture$/i;\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 {import('../internal').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 = name != (name = name.replace(CAPTURE_REGEX, '$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 == SVG_NAMESPACE) {\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 {import('../internal').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 {import('./internal').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 {import('./internal').FunctionComponent} */\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\t/** @type {Set | null} */\n\t\t\t\tlet subs = new Set();\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.forEach(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.add(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.delete(c);\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 {\n\tEMPTY_OBJ,\n\tEMPTY_ARR,\n\tINSERT_VNODE,\n\tMATCHED,\n\tUNDEFINED\n} from '../constants';\nimport { isArray } from '../util';\nimport { getDomSibling } from '../component';\n\n/**\n * @typedef {import('../internal').ComponentChildren} ComponentChildren\n * @typedef {import('../internal').Component} Component\n * @typedef {import('../internal').PreactElement} PreactElement\n * @typedef {import('../internal').VNode} VNode\n */\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\toldDom = constructNewChildrenArray(\n\t\tnewParentVNode,\n\t\trenderResult,\n\t\toldChildren,\n\t\toldDom,\n\t\tnewChildrenLength\n\t);\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\tlet result = diff(\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 (typeof childVNode.type == 'function' && result !== UNDEFINED) {\n\t\t\toldDom = result;\n\t\t} else if (newDom) {\n\t\t\toldDom = newDom.nextSibling;\n\t\t}\n\n\t\t// Unset diffing flags\n\t\tchildVNode._flags &= ~(INSERT_VNODE | MATCHED);\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\treturn oldDom;\n}\n\n/**\n * @param {VNode} newParentVNode\n * @param {ComponentChildren[]} renderResult\n * @param {VNode[]} oldChildren\n */\nfunction constructNewChildrenArray(\n\tnewParentVNode,\n\trenderResult,\n\toldChildren,\n\toldDom,\n\tnewChildrenLength\n) {\n\t/** @type {number} */\n\tlet i;\n\t/** @type {VNode} */\n\tlet childVNode;\n\t/** @type {VNode} */\n\tlet oldVNode;\n\n\tlet oldChildrenLength = oldChildren.length,\n\t\tremainingOldChildren = oldChildrenLength;\n\n\tlet skew = 0;\n\n\tnewParentVNode._children = new Array(newChildrenLength);\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\tnewParentVNode._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 == oldDom) {\n\t\t\t\t\toldDom = 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\treturn oldDom;\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 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\t//\n\t// If there is an unkeyed functional VNode, that isn't a built-in like our Fragment,\n\t// we should not search as we risk re-using state of an unrelated VNode. (reverted for now)\n\tlet shouldSearch =\n\t\t// (typeof type != 'function' || type === Fragment || key) &&\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\tlet x = skewedIndex - 1;\n\t\tlet y = skewedIndex + 1;\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\tMATH_NAMESPACE,\n\tMODE_HYDRATE,\n\tMODE_SUSPENDED,\n\tRESET_MODE,\n\tSVG_NAMESPACE,\n\tUNDEFINED,\n\tXHTML_NAMESPACE\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 * @typedef {import('../internal').ComponentChildren} ComponentChildren\n * @typedef {import('../internal').Component} Component\n * @typedef {import('../internal').PreactElement} PreactElement\n * @typedef {import('../internal').VNode} VNode\n */\n\n/**\n * @template {any} T\n * @typedef {import('../internal').Ref} Ref\n */\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\toldDom = diffChildren(\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\tif (e.then) {\n\t\t\t\t\tnewVNode._flags |= isHydrating\n\t\t\t\t\t\t? MODE_HYDRATE | MODE_SUSPENDED\n\t\t\t\t\t\t: MODE_SUSPENDED;\n\n\t\t\t\t\twhile (oldDom && oldDom.nodeType == 8 && oldDom.nextSibling) {\n\t\t\t\t\t\toldDom = oldDom.nextSibling;\n\t\t\t\t\t}\n\n\t\t\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t\t\tnewVNode._dom = oldDom;\n\t\t\t\t} else {\n\t\t\t\t\tfor (let i = excessDomChildren.length; i--; ) {\n\t\t\t\t\t\tremoveNode(excessDomChildren[i]);\n\t\t\t\t\t}\n\t\t\t\t}\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\toldDom = newVNode._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\treturn newVNode._flags & MODE_SUSPENDED ? undefined : oldDom;\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\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 = SVG_NAMESPACE;\n\telse if (nodeType == 'math') namespace = MATH_NAMESPACE;\n\telse if (!namespace) namespace = XHTML_NAMESPACE;\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' ? XHTML_NAMESPACE : 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