{"version":3,"file":"7037.e8a50.js","mappings":"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","sources":["webpack://@rocket.chat/livechat/./node_modules/regenerator-runtime/runtime.js","webpack://@rocket.chat/livechat/../src/constants.js","webpack://@rocket.chat/livechat/../src/util.js","webpack://@rocket.chat/livechat/../src/options.js","webpack://@rocket.chat/livechat/../src/create-element.js","webpack://@rocket.chat/livechat/../src/component.js","webpack://@rocket.chat/livechat/../src/diff/props.js","webpack://@rocket.chat/livechat/../src/create-context.js","webpack://@rocket.chat/livechat/../src/diff/children.js","webpack://@rocket.chat/livechat/../src/diff/index.js","webpack://@rocket.chat/livechat/../src/render.js","webpack://@rocket.chat/livechat/../src/clone-element.js","webpack://@rocket.chat/livechat/../src/diff/catch-error.js"],"sourcesContent":["/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next mehtod, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/** Normal hydration that attaches to a DOM tree but does not diff it. */\nexport const MODE_HYDRATE = 1 << 5;\n/** Signifies this VNode suspended on the previous render */\nexport const MODE_SUSPENDED = 1 << 7;\n/** Indicates that this node needs to be inserted while patching children */\nexport const INSERT_VNODE = 1 << 2;\n/** Indicates a VNode has been matched with another VNode in the diff */\nexport const MATCHED = 1 << 1;\n\n/** Reset all mode flags */\nexport const RESET_MODE = ~(MODE_HYDRATE | MODE_SUSPENDED);\n\nexport const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\nexport const XHTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\nexport const MATH_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n\nexport const NULL = null;\nexport const UNDEFINED = undefined;\nexport const EMPTY_OBJ = /** @type {any} */ ({});\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL =\n\t/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n","import { EMPTY_ARR } from './constants';\n\nexport const isArray = Array.isArray;\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-expect-error We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {import('./index').ContainerNode} node The node to remove\n */\nexport function removeNode(node) {\n\tif (node && node.parentNode) node.parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n","import { slice } from './util';\nimport options from './options';\nimport { NULL, UNDEFINED } from './constants';\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 constructor for this\n * virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the\n * virtual node\n * @returns {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, NULL } 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](https://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\t\tl = 1;\n\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 (rerenderQueue.length) {\n\t\t// Keep the rerender queue sorted by (depth, insertion order). The queue\n\t\t// will initially be sorted on the first iteration only if it has more than 1 item.\n\t\t//\n\t\t// New items can be added to the queue e.g. when rerendering a provider, so we want to\n\t\t// keep the order from top to bottom with those new items so we can handle them in a\n\t\t// single pass\n\t\tif (rerenderQueue.length > l) {\n\t\t\trerenderQueue.sort(depthSort);\n\t\t}\n\n\t\tc = rerenderQueue.shift();\n\t\tl = rerenderQueue.length;\n\n\t\tif (c._dirty) {\n\t\t\trenderComponent(c);\n\t\t}\n\t}\n\tprocess._rerenderCount = 0;\n}\n\nprocess._rerenderCount = 0;\n","import { IS_NON_DIMENSIONAL, NULL, 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';\nimport { NULL } from './constants';\n\nexport let i = 0;\n\nexport function createContext(defaultValue) {\n\tfunction Context(props) {\n\t\tif (!this.getChildContext) {\n\t\t\t/** @type {Set | null} */\n\t\t\tlet subs = new Set();\n\t\t\tlet ctx = {};\n\t\t\tctx[Context._id] = this;\n\n\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\tthis.componentWillUnmount = () => {\n\t\t\t\tsubs = NULL;\n\t\t\t};\n\n\t\t\tthis.shouldComponentUpdate = function (_props) {\n\t\t\t\t// @ts-expect-error even\n\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\tsubs.forEach(c => {\n\t\t\t\t\t\tc._force = true;\n\t\t\t\t\t\tenqueueRender(c);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tthis.sub = c => {\n\t\t\t\tsubs.add(c);\n\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\tif (subs) {\n\t\t\t\t\t\tsubs.delete(c);\n\t\t\t\t\t}\n\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t};\n\t\t\t};\n\t\t}\n\n\t\treturn props.children;\n\t}\n\n\tContext._id = '__cC' + i++;\n\tContext._defaultValue = defaultValue;\n\n\t/** @type {import('./internal').FunctionComponent} */\n\tContext.Consumer = (props, contextValue) => {\n\t\treturn props.children(contextValue);\n\t};\n\n\t// we could also get rid of _contextRef entirely\n\tContext.Provider =\n\t\tContext._contextRef =\n\t\tContext.Consumer.contextType =\n\t\t\tContext;\n\n\treturn Context;\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\tNULL\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\tNULL,\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\tif (isTopLevelFragment) {\n\t\t\t\ttmp.props.children = NULL;\n\t\t\t}\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\t// @ts-expect-error\n\t\t\t\tnewVNode.type === 'template' ? dom.content : dom,\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