{"version":3,"file":"homepageSearchValetChunk.js?v=23.134.0+20261102.30.bbbf8652390b5ce306040b1cece1df0dd99fac01&h=5c2ccc9d589d9a14d16a","mappings":"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","sources":["webpack://site-client-side/../src/util.js","webpack://site-client-side/../src/options.js","webpack://site-client-side/../src/create-element.js","webpack://site-client-side/../src/component.js","webpack://site-client-side/../src/constants.js","webpack://site-client-side/../src/diff/children.js","webpack://site-client-side/../src/diff/props.js","webpack://site-client-side/../src/diff/index.js","webpack://site-client-side/./ClientApp/components/homepageSearchWidget/searchValet/icons.tsx","webpack://site-client-side/../src/diff/catch-error.js","webpack://site-client-side/./ClientApp/components/homepageSearchWidget/searchValet/services/textProcessing.ts","webpack://site-client-side/./ClientApp/components/homepageSearchWidget/searchValet/Autocomplete.tsx","webpack://site-client-side/./ClientApp/components/homepageSearchWidget/searchValet/services/debounce.ts","webpack://site-client-side/./ClientApp/components/homepageSearchWidget/searchValet/services/phrases.ts","webpack://site-client-side/./ClientApp/components/homepageSearchWidget/searchValet/services/wordDiff.ts","webpack://site-client-side/./ClientApp/components/homepageSearchWidget/searchValet/homepageSearchValetClassic.tsx","webpack://site-client-side/../src/render.js","webpack://site-client-side/./ClientApp/components/homepageSearchWidget/searchValet/AutocompleteWidget.tsx","webpack://site-client-side/./ClientApp/components/homepageSearchWidget/searchValet/homepageSearchValet.ts"],"sourcesContent":["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-ignore 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 {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) 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 {import('./internal').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 {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the 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\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\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original\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 import('./internal').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';\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 Component(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 */\nComponent.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 */\nComponent.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 {import('./index').ComponentChildren | void}\n */\nComponent.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._parent._children.indexOf(vnode) + 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 vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [],\n\t\t\trefQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating,\n\t\t\trefQueue\n\t\t);\n\n\t\tcommitRoot(commitQueue, vnode, refQueue);\n\n\t\tif (vnode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\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","export const EMPTY_OBJ = {};\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 { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { isArray } from '../util';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {Array} refQueue an array of elements needed to invoke refs\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating,\n\trefQueue\n) {\n\tlet i,\n\t\tj,\n\t\toldVNode,\n\t\tchildVNode,\n\t\tnewDom,\n\t\tfirstChildDom,\n\t\tskew = 0;\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\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length,\n\t\tremainingOldChildren = oldChildrenLength,\n\t\tnewChildrenLength = renderResult.length;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < newChildrenLength; i++) {\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}\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) {\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\tchildVNode\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._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\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\toldVNode = oldChildren[i];\n\t\t\tif (oldVNode && oldVNode.key == null && oldVNode._dom) {\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, false);\n\t\t\t}\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\tlet skewedIndex = i + skew;\n\t\tconst matchingIndex = findMatchingIndex(\n\t\t\tchildVNode,\n\t\t\toldChildren,\n\t\t\tskewedIndex,\n\t\t\tremainingOldChildren\n\t\t);\n\n\t\tif (matchingIndex === -1) {\n\t\t\toldVNode = EMPTY_OBJ;\n\t\t} else {\n\t\t\toldVNode = oldChildren[matchingIndex] || EMPTY_OBJ;\n\t\t\toldChildren[matchingIndex] = undefined;\n\t\t\tremainingOldChildren--;\n\t\t}\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\tisSvg,\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\tnewDom = childVNode._dom;\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (oldVNode.ref) {\n\t\t\t\tapplyRef(oldVNode.ref, null, childVNode);\n\t\t\t}\n\t\t\trefQueue.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\tlet isMounting = oldVNode === EMPTY_OBJ || oldVNode._original === null;\n\t\t\tif (isMounting) {\n\t\t\t\tif (matchingIndex == -1) {\n\t\t\t\t\tskew--;\n\t\t\t\t}\n\t\t\t} else if (matchingIndex !== skewedIndex) {\n\t\t\t\tif (matchingIndex === skewedIndex + 1) {\n\t\t\t\t\tskew++;\n\t\t\t\t} else if (matchingIndex > skewedIndex) {\n\t\t\t\t\tif (remainingOldChildren > newChildrenLength - skewedIndex) {\n\t\t\t\t\t\tskew += matchingIndex - skewedIndex;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// ### Change from keyed: I think this was missing from the algo...\n\t\t\t\t\t\tskew--;\n\t\t\t\t\t}\n\t\t\t\t} else if (matchingIndex < skewedIndex) {\n\t\t\t\t\tif (matchingIndex == skewedIndex - 1) {\n\t\t\t\t\t\tskew = matchingIndex - skewedIndex;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tskew = 0;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tskew = 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tskewedIndex = i + skew;\n\n\t\t\tif (\n\t\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\t\t(matchingIndex !== skewedIndex ||\n\t\t\t\t\toldVNode._children === childVNode._children)\n\t\t\t) {\n\t\t\t\toldDom = reorderChildren(childVNode, oldDom, parentDom);\n\t\t\t} else if (\n\t\t\t\ttypeof childVNode.type != 'function' &&\n\t\t\t\t(matchingIndex !== skewedIndex || isMounting)\n\t\t\t) {\n\t\t\t\toldDom = placeChild(parentDom, newDom, oldDom);\n\t\t\t} else if (childVNode._nextDom !== undefined) {\n\t\t\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t\t\t// of last DOM child of this child VNode\n\t\t\t\toldDom = childVNode._nextDom;\n\n\t\t\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t\t\t// can clean up the property\n\t\t\t\tchildVNode._nextDom = undefined;\n\t\t\t} else {\n\t\t\t\toldDom = newDom.nextSibling;\n\t\t\t}\n\n\t\t\tif (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) {\n\t\t\tif (\n\t\t\t\ttypeof newParentVNode.type == 'function' &&\n\t\t\t\toldChildren[i]._dom != null &&\n\t\t\t\toldChildren[i]._dom == newParentVNode._nextDom\n\t\t\t) {\n\t\t\t\t// If the newParentVNode.__nextDom points to a dom node that is about to\n\t\t\t\t// be unmounted, then get the next sibling of that vnode and set\n\t\t\t\t// _nextDom to it\n\n\t\t\t\tnewParentVNode._nextDom = oldChildren[i]._dom.nextSibling;\n\t\t\t}\n\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\n\t\t}\n\t}\n}\n\nfunction reorderChildren(childVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\tlet c = childVNode._children;\n\n\tlet tmp = 0;\n\tfor (; c && tmp < c.length; tmp++) {\n\t\tlet vnode = c[tmp];\n\t\tif (vnode) {\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\n\t\t\t// (childVNode here).\n\t\t\tvnode._parent = childVNode;\n\n\t\t\tif (typeof vnode.type == 'function') {\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(parentDom, vnode._dom, oldDom);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').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\nfunction placeChild(parentDom, newDom, oldDom) {\n\tif (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\tparentDom.insertBefore(newDom, null);\n\t} else if (newDom != oldDom || newDom.parentNode == null) {\n\t\tparentDom.insertBefore(newDom, oldDom);\n\t}\n\n\treturn newDom.nextSibling;\n}\n\n/**\n * @param {import('../internal').VNode | string} childVNode\n * @param {import('../internal').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\tif (\n\t\toldVNode === null ||\n\t\t(oldVNode && key == oldVNode.key && type === oldVNode.type)\n\t) {\n\t\treturn skewedIndex;\n\t} else if (remainingOldChildren > (oldVNode != null ? 1 : 0)) {\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 (oldVNode && key == oldVNode.key && type === oldVNode.type) {\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 (oldVNode && key == oldVNode.key && type === oldVNode.type) {\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 { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\n/**\n * Diff the old and new properties of a VNode and apply changes to the DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to apply\n * changes to\n * @param {object} newProps The new props\n * @param {object} oldProps The old props\n * @param {boolean} isSvg Whether or not this node is an SVG node\n * @param {boolean} hydrate Whether or not we are in hydration mode\n */\nexport function diffProps(dom, newProps, oldProps, isSvg, hydrate) {\n\tlet i;\n\n\tfor (i in oldProps) {\n\t\tif (i !== 'children' && i !== 'key' && !(i in newProps)) {\n\t\t\tsetProperty(dom, i, null, oldProps[i], isSvg);\n\t\t}\n\t}\n\n\tfor (i in newProps) {\n\t\tif (\n\t\t\t(!hydrate || typeof newProps[i] == 'function') &&\n\t\t\ti !== 'children' &&\n\t\t\ti !== 'key' &&\n\t\t\ti !== 'value' &&\n\t\t\ti !== 'checked' &&\n\t\t\toldProps[i] !== newProps[i]\n\t\t) {\n\t\t\tsetProperty(dom, i, newProps[i], oldProps[i], isSvg);\n\t\t}\n\t}\n}\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/**\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 {boolean} isSvg Whether or not this DOM node is an SVG node or not\n */\nexport function setProperty(dom, name, value, oldValue, isSvg) {\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$/, ''));\n\n\t\t// Infer correct casing for DOM built-in events:\n\t\tif (name.toLowerCase() in dom) name = 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\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\t\tdom.addEventListener(name, handler, useCapture);\n\t\t\t}\n\t\t} else {\n\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\tdom.removeEventListener(name, handler, useCapture);\n\t\t}\n\t} else if (name !== 'dangerouslySetInnerHTML') {\n\t\tif (isSvg) {\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 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, value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\treturn this._listeners[e.type + false](options.event ? options.event(e) : e);\n}\n\nfunction eventProxyCapture(e) {\n\treturn this._listeners[e.type + true](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ } from '../constants';\nimport { Component, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps, 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 {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {Array} refQueue an array of elements needed to invoke refs\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating,\n\trefQueue\n) {\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._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\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\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 ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\t// @ts-ignore 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-ignore Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\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 (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\n\t\t\tif (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\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 (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\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.forEach(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 (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 ('prototype' in newType && newType.prototype.render) {\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 (!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\tisSvg,\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._hydrating = null;\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._dom = oldDom;\n\t\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t\t// ^ could possibly be simplified to:\n\t\t\t\t// excessDomChildren.length = 0;\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\tisSvg,\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 {import('../internal').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-ignore 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-ignore See above ts-ignore 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 {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {Array} refQueue an array of elements needed to invoke refs\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating,\n\trefQueue\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = newVNode.type;\n\tlet i = 0;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tif (nodeType === 'svg') isSvg = true;\n\n\tif (excessDomChildren != null) {\n\t\tfor (; i < excessDomChildren.length; i++) {\n\t\t\tconst child = 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\tchild &&\n\t\t\t\t'setAttribute' in child === !!nodeType &&\n\t\t\t\t(nodeType ? child.localName === nodeType : child.nodeType === 3)\n\t\t\t) {\n\t\t\t\tdom = child;\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\t// @ts-ignore createTextNode returns Text, we expect PreactElement\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tif (isSvg) {\n\t\t\tdom = document.createElementNS(\n\t\t\t\t'http://www.w3.org/2000/svg',\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType\n\t\t\t);\n\t\t} else {\n\t\t\tdom = document.createElement(\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType,\n\t\t\t\tnewProps.is && newProps\n\t\t\t);\n\t\t}\n\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\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\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\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\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tisArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\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\tif (excessDomChildren[i] != null) removeNode(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\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== 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(i !== dom.value ||\n\t\t\t\t\t(nodeType === 'progress' && !i) ||\n\t\t\t\t\t// This is only for IE 11 to fix