{"version":3,"file":"app.bundle.js?1738308084332","mappings":"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","sources":["webpack://machineintelligence.com/./node_modules/preact/src/constants.js","webpack://machineintelligence.com/./node_modules/preact/src/util.js","webpack://machineintelligence.com/./node_modules/preact/src/options.js","webpack://machineintelligence.com/./node_modules/preact/src/create-element.js","webpack://machineintelligence.com/./node_modules/preact/src/component.js","webpack://machineintelligence.com/./node_modules/preact/src/diff/props.js","webpack://machineintelligence.com/./node_modules/preact/src/diff/children.js","webpack://machineintelligence.com/./node_modules/preact/src/diff/index.js","webpack://machineintelligence.com/./node_modules/preact/src/diff/catch-error.js","webpack://machineintelligence.com/./src/services/ganglion-connection.ts","webpack://machineintelligence.com/./src/pages/landing/loginUi.tsx","webpack://machineintelligence.com/./src/pages/landing/forgotPasswordUi.tsx","webpack://machineintelligence.com/./src/pages/landing/background.ts","webpack://machineintelligence.com/./src/pages/landing/landingPage.tsx","webpack://machineintelligence.com/./node_modules/preact/hooks/src/index.js","webpack://machineintelligence.com/./src/utils.ts","webpack://machineintelligence.com/./src/applets/countdown/countdownApplet.tsx","webpack://machineintelligence.com/./src/applets/password/passwordApplet.tsx","webpack://machineintelligence.com/./src/pages/chat/chatPage.tsx","webpack://machineintelligence.com/./src/services/registerServiceworker.ts","webpack://machineintelligence.com/./node_modules/preact/src/render.js","webpack://machineintelligence.com/./src/entry.tsx","webpack://machineintelligence.com/./src/app.tsx"],"sourcesContent":["/** Normal hydration that attaches to a DOM tree but does not diff it. */\nexport const MODE_HYDRATE = 1 << 5;\n/** Signifies this VNode suspended on the previous render */\nexport const MODE_SUSPENDED = 1 << 7;\n/** Indicates that this node needs to be inserted while patching children */\nexport const INSERT_VNODE = 1 << 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 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 { 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 } from './constants';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function BaseComponent(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nBaseComponent.prototype.setState = function (update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) {\n\t\t\tthis._stateCallbacks.push(callback);\n\t\t}\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nBaseComponent.prototype.forceUpdate = function (callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {ComponentChildren | void}\n */\nBaseComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._index + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet oldVNode = component._vnode,\n\t\toldDom = oldVNode._dom,\n\t\tcommitQueue = [],\n\t\trefQueue = [];\n\n\tif (component._parentDom) {\n\t\tconst newVNode = assign({}, oldVNode);\n\t\tnewVNode._original = oldVNode._original + 1;\n\t\tif (options.vnode) options.vnode(newVNode);\n\n\t\tdiff(\n\t\t\tcomponent._parentDom,\n\t\t\tnewVNode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tcomponent._parentDom.namespaceURI,\n\t\t\toldVNode._flags & MODE_HYDRATE ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(oldVNode) : oldDom,\n\t\t\t!!(oldVNode._flags & MODE_HYDRATE),\n\t\t\trefQueue\n\t\t);\n\n\t\tnewVNode._original = oldVNode._original;\n\t\tnewVNode._parent._children[newVNode._index] = newVNode;\n\t\tcommitRoot(commitQueue, newVNode, refQueue);\n\n\t\tif (newVNode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(newVNode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array}\n */\nlet rerenderQueue = [];\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/**\n * @param {import('./internal').Component} a\n * @param {import('./internal').Component} b\n */\nconst depthSort = (a, b) => a._vnode._depth - b._vnode._depth;\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet c;\n\trerenderQueue.sort(depthSort);\n\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t// process() calls from getting scheduled while `queue` is still being consumed.\n\twhile ((c = rerenderQueue.shift())) {\n\t\tif (c._dirty) {\n\t\t\tlet renderQueueLength = rerenderQueue.length;\n\t\t\trenderComponent(c);\n\t\t\tif (rerenderQueue.length > renderQueueLength) {\n\t\t\t\t// When i.e. rerendering a provider additional new items can be injected, we want to\n\t\t\t\t// keep the order from top to bottom with those new items so we can handle them in a\n\t\t\t\t// single pass\n\t\t\t\trerenderQueue.sort(depthSort);\n\t\t\t}\n\t\t}\n\t}\n\tprocess._rerenderCount = 0;\n}\n\nprocess._rerenderCount = 0;\n","import { IS_NON_DIMENSIONAL, SVG_NAMESPACE } from '../constants';\nimport options from '../options';\n\nfunction setStyle(style, key, value) {\n\tif (key[0] == '-') {\n\t\tstyle.setProperty(key, value == null ? '' : value);\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else if (typeof value != 'number' || IS_NON_DIMENSIONAL.test(key)) {\n\t\tstyle[key] = value;\n\t} else {\n\t\tstyle[key] = value + 'px';\n\t}\n}\n\nconst CAPTURE_REGEX = /(PointerCapture)$|Capture$/i;\n\n// A logical clock to solve issues like https://github.com/preactjs/preact/issues/3927.\n// When the DOM performs an event it leaves micro-ticks in between bubbling up which means that\n// an event can trigger on a newly reated DOM-node while the event bubbles up.\n//\n// Originally inspired by Vue\n// (https://github.com/vuejs/core/blob/caeb8a68811a1b0f79/packages/runtime-dom/src/modules/events.ts#L90-L101),\n// but modified to use a logical clock instead of Date.now() in case event handlers get attached\n// and events get dispatched during the same millisecond.\n//\n// The clock is incremented after each new event dispatch. This allows 1 000 000 new events\n// per second for over 280 years before the value reaches Number.MAX_SAFE_INTEGER (2**53 - 1).\nlet eventClock = 0;\n\n/**\n * Set a property value on a DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {string} namespace Whether or not this DOM node is an SVG node or not\n */\nexport function setProperty(dom, name, value, oldValue, namespace) {\n\tlet useCapture;\n\n\to: if (name == 'style') {\n\t\tif (typeof value == 'string') {\n\t\t\tdom.style.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\tdom.style.cssText = oldValue = '';\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (name in oldValue) {\n\t\t\t\t\tif (!(value && name in value)) {\n\t\t\t\t\t\tsetStyle(dom.style, name, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (name in value) {\n\t\t\t\t\tif (!oldValue || value[name] !== oldValue[name]) {\n\t\t\t\t\t\tsetStyle(dom.style, name, value[name]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] == 'o' && name[1] == 'n') {\n\t\tuseCapture = name != (name = name.replace(CAPTURE_REGEX, '$1'));\n\n\t\t// Infer correct casing for DOM built-in events:\n\t\tif (\n\t\t\tname.toLowerCase() in dom ||\n\t\t\tname == 'onFocusOut' ||\n\t\t\tname == 'onFocusIn'\n\t\t)\n\t\t\tname = name.toLowerCase().slice(2);\n\t\telse name = name.slice(2);\n\n\t\tif (!dom._listeners) dom._listeners = {};\n\t\tdom._listeners[name + useCapture] = value;\n\n\t\tif (value) {\n\t\t\tif (!oldValue) {\n\t\t\t\tvalue._attached = eventClock;\n\t\t\t\tdom.addEventListener(\n\t\t\t\t\tname,\n\t\t\t\t\tuseCapture ? eventProxyCapture : eventProxy,\n\t\t\t\t\tuseCapture\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tvalue._attached = oldValue._attached;\n\t\t\t}\n\t\t} else {\n\t\t\tdom.removeEventListener(\n\t\t\t\tname,\n\t\t\t\tuseCapture ? eventProxyCapture : eventProxy,\n\t\t\t\tuseCapture\n\t\t\t);\n\t\t}\n\t} else {\n\t\tif (namespace == SVG_NAMESPACE) {\n\t\t\t// Normalize incorrect prop usage for SVG:\n\t\t\t// - xlink:href / xlinkHref --> href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname != 'width' &&\n\t\t\tname != 'height' &&\n\t\t\tname != 'href' &&\n\t\t\tname != 'list' &&\n\t\t\tname != 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname != 'tabIndex' &&\n\t\t\tname != 'download' &&\n\t\t\tname != 'rowSpan' &&\n\t\t\tname != 'colSpan' &&\n\t\t\tname != 'role' &&\n\t\t\tname != 'popover' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// aria- and data- attributes have no boolean representation.\n\t\t// A `false` value is different from the attribute not being\n\t\t// present, so we can't remove it. For non-boolean aria\n\t\t// attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost too many bytes. On top of\n\t\t// that other frameworks generally stringify `false`.\n\n\t\tif (typeof value == 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (value != null && (value !== false || name[4] == '-')) {\n\t\t\tdom.setAttribute(name, name == 'popover' && value == true ? '' : value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Create an event proxy function.\n * @param {boolean} useCapture Is the event handler for the capture phase.\n * @private\n */\nfunction createEventProxy(useCapture) {\n\t/**\n\t * Proxy an event to hooked event handlers\n\t * @param {import('../internal').PreactEvent} e The event object from the browser\n\t * @private\n\t */\n\treturn function (e) {\n\t\tif (this._listeners) {\n\t\t\tconst eventHandler = this._listeners[e.type + useCapture];\n\t\t\tif (e._dispatched == null) {\n\t\t\t\te._dispatched = eventClock++;\n\n\t\t\t\t// When `e._dispatched` is smaller than the time when the targeted event\n\t\t\t\t// handler was attached we know we have bubbled up to an element that was added\n\t\t\t\t// during patching the DOM.\n\t\t\t} else if (e._dispatched < eventHandler._attached) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn eventHandler(options.event ? options.event(e) : e);\n\t\t}\n\t};\n}\n\nconst eventProxy = createEventProxy(false);\nconst eventProxyCapture = createEventProxy(true);\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport {\n\tEMPTY_OBJ,\n\tEMPTY_ARR,\n\tINSERT_VNODE,\n\tMATCHED,\n\tUNDEFINED\n} from '../constants';\nimport { isArray } from '../util';\nimport { getDomSibling } from '../component';\n\n/**\n * @typedef {import('../internal').ComponentChildren} ComponentChildren\n * @typedef {import('../internal').Component} Component\n * @typedef {import('../internal').PreactElement} PreactElement\n * @typedef {import('../internal').VNode} VNode\n */\n\n/**\n * Diff the children of a virtual node\n * @param {PreactElement} parentDom The DOM element whose children are being\n * diffed\n * @param {ComponentChildren[]} renderResult\n * @param {VNode} newParentVNode The new virtual node whose children should be\n * diff'ed against oldParentVNode\n * @param {VNode} oldParentVNode The old virtual node whose children should be\n * diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by\n * getChildContext\n * @param {string} namespace Current namespace of the DOM node (HTML, SVG, or MathML)\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {PreactElement} oldDom The current attached DOM element any new dom\n * elements should be placed around. Likely `null` on first render (except when\n * hydrating). Can be a sibling DOM element when diffing Fragments that have\n * siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tnamespace,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating,\n\trefQueue\n) {\n\tlet i,\n\t\t/** @type {VNode} */\n\t\toldVNode,\n\t\t/** @type {VNode} */\n\t\tchildVNode,\n\t\t/** @type {PreactElement} */\n\t\tnewDom,\n\t\t/** @type {PreactElement} */\n\t\tfirstChildDom;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\t/** @type {VNode[]} */\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet newChildrenLength = renderResult.length;\n\n\toldDom = constructNewChildrenArray(\n\t\tnewParentVNode,\n\t\trenderResult,\n\t\toldChildren,\n\t\toldDom,\n\t\tnewChildrenLength\n\t);\n\n\tfor (i = 0; i < newChildrenLength; i++) {\n\t\tchildVNode = newParentVNode._children[i];\n\t\tif (childVNode == null) continue;\n\n\t\t// At this point, constructNewChildrenArray has assigned _index to be the\n\t\t// matchingIndex for this VNode's oldVNode (or -1 if there is no oldVNode).\n\t\tif (childVNode._index === -1) {\n\t\t\toldVNode = EMPTY_OBJ;\n\t\t} else {\n\t\t\toldVNode = oldChildren[childVNode._index] || EMPTY_OBJ;\n\t\t}\n\n\t\t// Update childVNode._index to its final index\n\t\tchildVNode._index = i;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tlet result = diff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tnamespace,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating,\n\t\t\trefQueue\n\t\t);\n\n\t\t// Adjust DOM nodes\n\t\tnewDom = childVNode._dom;\n\t\tif (childVNode.ref && oldVNode.ref != childVNode.ref) {\n\t\t\tif (oldVNode.ref) {\n\t\t\t\tapplyRef(oldVNode.ref, null, childVNode);\n\t\t\t}\n\t\t\trefQueue.push(\n\t\t\t\tchildVNode.ref,\n\t\t\t\tchildVNode._component || newDom,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t}\n\n\t\tif (firstChildDom == null && newDom != null) {\n\t\t\tfirstChildDom = newDom;\n\t\t}\n\n\t\tif (\n\t\t\tchildVNode._flags & INSERT_VNODE ||\n\t\t\toldVNode._children === childVNode._children\n\t\t) {\n\t\t\toldDom = insert(childVNode, oldDom, parentDom);\n\t\t} else if (typeof childVNode.type == 'function' && result !== UNDEFINED) {\n\t\t\toldDom = result;\n\t\t} else if (newDom) {\n\t\t\toldDom = newDom.nextSibling;\n\t\t}\n\n\t\t// Unset diffing flags\n\t\tchildVNode._flags &= ~(INSERT_VNODE | MATCHED);\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\treturn oldDom;\n}\n\n/**\n * @param {VNode} newParentVNode\n * @param {ComponentChildren[]} renderResult\n * @param {VNode[]} oldChildren\n */\nfunction constructNewChildrenArray(\n\tnewParentVNode,\n\trenderResult,\n\toldChildren,\n\toldDom,\n\tnewChildrenLength\n) {\n\t/** @type {number} */\n\tlet i;\n\t/** @type {VNode} */\n\tlet childVNode;\n\t/** @type {VNode} */\n\tlet oldVNode;\n\n\tlet oldChildrenLength = oldChildren.length,\n\t\tremainingOldChildren = oldChildrenLength;\n\n\tlet skew = 0;\n\n\tnewParentVNode._children = new Array(newChildrenLength);\n\tfor (i = 0; i < newChildrenLength; i++) {\n\t\t// @ts-expect-error We are reusing the childVNode variable to hold both the\n\t\t// pre and post normalized childVNode\n\t\tchildVNode = renderResult[i];\n\n\t\tif (\n\t\t\tchildVNode == null ||\n\t\t\ttypeof childVNode == 'boolean' ||\n\t\t\ttypeof childVNode == 'function'\n\t\t) {\n\t\t\tnewParentVNode._children[i] = null;\n\t\t\tcontinue;\n\t\t}\n\t\t// If this newVNode is being reused (e.g.
{reuse}{reuse}
) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint' ||\n\t\t\tchildVNode.constructor == String\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode.constructor === UNDEFINED && childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse =
\n\t\t\t//
{reuse}{reuse}
\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tchildVNode.ref ? childVNode.ref : null,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\tconst skewedIndex = i + skew;\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Temporarily store the matchingIndex on the _index property so we can pull\n\t\t// out the oldVNode in diffChildren. We'll override this to the VNode's\n\t\t// final index after using this property to get the oldVNode\n\t\tconst matchingIndex = (childVNode._index = findMatchingIndex(\n\t\t\tchildVNode,\n\t\t\toldChildren,\n\t\t\tskewedIndex,\n\t\t\tremainingOldChildren\n\t\t));\n\n\t\toldVNode = null;\n\t\tif (matchingIndex !== -1) {\n\t\t\toldVNode = oldChildren[matchingIndex];\n\t\t\tremainingOldChildren--;\n\t\t\tif (oldVNode) {\n\t\t\t\toldVNode._flags |= MATCHED;\n\t\t\t}\n\t\t}\n\n\t\t// Here, we define isMounting for the purposes of the skew diffing\n\t\t// algorithm. Nodes that are unsuspending are considered mounting and we detect\n\t\t// this by checking if oldVNode._original === null\n\t\tconst isMounting = oldVNode == null || oldVNode._original === null;\n\n\t\tif (isMounting) {\n\t\t\tif (matchingIndex == -1) {\n\t\t\t\tskew--;\n\t\t\t}\n\n\t\t\t// If we are mounting a DOM VNode, mark it for insertion\n\t\t\tif (typeof childVNode.type != 'function') {\n\t\t\t\tchildVNode._flags |= INSERT_VNODE;\n\t\t\t}\n\t\t} else if (matchingIndex != skewedIndex) {\n\t\t\t// When we move elements around i.e. [0, 1, 2] --> [1, 0, 2]\n\t\t\t// --> we diff 1, we find it at position 1 while our skewed index is 0 and our skew is 0\n\t\t\t// we set the skew to 1 as we found an offset.\n\t\t\t// --> we diff 0, we find it at position 0 while our skewed index is at 2 and our skew is 1\n\t\t\t// this makes us increase the skew again.\n\t\t\t// --> we diff 2, we find it at position 2 while our skewed index is at 4 and our skew is 2\n\t\t\t//\n\t\t\t// this becomes an optimization question where currently we see a 1 element offset as an insertion\n\t\t\t// or deletion i.e. we optimize for [0, 1, 2] --> [9, 0, 1, 2]\n\t\t\t// while a more than 1 offset we see as a swap.\n\t\t\t// We could probably build heuristics for having an optimized course of action here as well, but\n\t\t\t// might go at the cost of some bytes.\n\t\t\t//\n\t\t\t// If we wanted to optimize for i.e. only swaps we'd just do the last two code-branches and have\n\t\t\t// only the first item be a re-scouting and all the others fall in their skewed counter-part.\n\t\t\t// We could also further optimize for swaps\n\t\t\tif (matchingIndex == skewedIndex - 1) {\n\t\t\t\tskew--;\n\t\t\t} else if (matchingIndex == skewedIndex + 1) {\n\t\t\t\tskew++;\n\t\t\t} else {\n\t\t\t\tif (matchingIndex > skewedIndex) {\n\t\t\t\t\tskew--;\n\t\t\t\t} else {\n\t\t\t\t\tskew++;\n\t\t\t\t}\n\n\t\t\t\t// Move this VNode's DOM if the original index (matchingIndex) doesn't\n\t\t\t\t// match the new skew index (i + new skew)\n\t\t\t\t// In the former two branches we know that it matches after skewing\n\t\t\t\tchildVNode._flags |= INSERT_VNODE;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove remaining oldChildren if there are any. Loop forwards so that as we\n\t// unmount DOM from the beginning of the oldChildren, we can adjust oldDom to\n\t// point to the next child, which needs to be the first DOM node that won't be\n\t// unmounted.\n\tif (remainingOldChildren) {\n\t\tfor (i = 0; i < oldChildrenLength; i++) {\n\t\t\toldVNode = oldChildren[i];\n\t\t\tif (oldVNode != null && (oldVNode._flags & MATCHED) == 0) {\n\t\t\t\tif (oldVNode._dom == oldDom) {\n\t\t\t\t\toldDom = getDomSibling(oldVNode);\n\t\t\t\t}\n\n\t\t\t\tunmount(oldVNode, oldVNode);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * @param {VNode} parentVNode\n * @param {PreactElement} oldDom\n * @param {PreactElement} parentDom\n * @returns {PreactElement}\n */\nfunction insert(parentVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\n\tif (typeof parentVNode.type == 'function') {\n\t\tlet children = parentVNode._children;\n\t\tfor (let i = 0; children && i < children.length; i++) {\n\t\t\tif (children[i]) {\n\t\t\t\t// If we enter this code path on sCU bailout, where we copy\n\t\t\t\t// oldVNode._children to newVNode._children, we need to update the old\n\t\t\t\t// children's _parent pointer to point to the newVNode (parentVNode\n\t\t\t\t// here).\n\t\t\t\tchildren[i]._parent = parentVNode;\n\t\t\t\toldDom = insert(children[i], oldDom, parentDom);\n\t\t\t}\n\t\t}\n\n\t\treturn oldDom;\n\t} else if (parentVNode._dom != oldDom) {\n\t\tif (oldDom && parentVNode.type && !parentDom.contains(oldDom)) {\n\t\t\toldDom = getDomSibling(parentVNode);\n\t\t}\n\t\tparentDom.insertBefore(parentVNode._dom, oldDom || null);\n\t\toldDom = parentVNode._dom;\n\t}\n\n\tdo {\n\t\toldDom = oldDom && oldDom.nextSibling;\n\t} while (oldDom != null && oldDom.nodeType == 8);\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {ComponentChildren} children The unflattened children of a virtual\n * node\n * @returns {VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\n/**\n * @param {VNode} childVNode\n * @param {VNode[]} oldChildren\n * @param {number} skewedIndex\n * @param {number} remainingOldChildren\n * @returns {number}\n */\nfunction findMatchingIndex(\n\tchildVNode,\n\toldChildren,\n\tskewedIndex,\n\tremainingOldChildren\n) {\n\tconst key = childVNode.key;\n\tconst type = childVNode.type;\n\tlet oldVNode = oldChildren[skewedIndex];\n\n\t// We only need to perform a search if there are more children\n\t// (remainingOldChildren) to search. However, if the oldVNode we just looked\n\t// at skewedIndex was not already used in this diff, then there must be at\n\t// least 1 other (so greater than 1) remainingOldChildren to attempt to match\n\t// against. So the following condition checks that ensuring\n\t// remainingOldChildren > 1 if the oldVNode is not already used/matched. Else\n\t// if the oldVNode was null or matched, then there could needs to be at least\n\t// 1 (aka `remainingOldChildren > 0`) children to find and compare against.\n\t//\n\t// If there is an unkeyed functional VNode, that isn't a built-in like our Fragment,\n\t// we should not search as we risk re-using state of an unrelated VNode. (reverted for now)\n\tlet shouldSearch =\n\t\t// (typeof type != 'function' || type === Fragment || key) &&\n\t\tremainingOldChildren >\n\t\t(oldVNode != null && (oldVNode._flags & MATCHED) == 0 ? 1 : 0);\n\n\tif (\n\t\toldVNode === null ||\n\t\t(oldVNode &&\n\t\t\tkey == oldVNode.key &&\n\t\t\ttype === oldVNode.type &&\n\t\t\t(oldVNode._flags & MATCHED) == 0)\n\t) {\n\t\treturn skewedIndex;\n\t} else if (shouldSearch) {\n\t\tlet x = skewedIndex - 1;\n\t\tlet y = skewedIndex + 1;\n\t\twhile (x >= 0 || y < oldChildren.length) {\n\t\t\tif (x >= 0) {\n\t\t\t\toldVNode = oldChildren[x];\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\t(oldVNode._flags & MATCHED) == 0 &&\n\t\t\t\t\tkey == oldVNode.key &&\n\t\t\t\t\ttype === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\treturn x;\n\t\t\t\t}\n\t\t\t\tx--;\n\t\t\t}\n\n\t\t\tif (y < oldChildren.length) {\n\t\t\t\toldVNode = oldChildren[y];\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\t(oldVNode._flags & MATCHED) == 0 &&\n\t\t\t\t\tkey == oldVNode.key &&\n\t\t\t\t\ttype === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\treturn y;\n\t\t\t\t}\n\t\t\t\ty++;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn -1;\n}\n","import {\n\tEMPTY_OBJ,\n\tMATH_NAMESPACE,\n\tMODE_HYDRATE,\n\tMODE_SUSPENDED,\n\tRESET_MODE,\n\tSVG_NAMESPACE,\n\tUNDEFINED,\n\tXHTML_NAMESPACE\n} from '../constants';\nimport { BaseComponent, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { setProperty } from './props';\nimport { assign, isArray, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * @typedef {import('../internal').ComponentChildren} ComponentChildren\n * @typedef {import('../internal').Component} Component\n * @typedef {import('../internal').PreactElement} PreactElement\n * @typedef {import('../internal').VNode} VNode\n */\n\n/**\n * @template {any} T\n * @typedef {import('../internal').Ref} Ref\n */\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {PreactElement} parentDom The parent of the DOM element\n * @param {VNode} newVNode The new virtual node\n * @param {VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by\n * getChildContext\n * @param {string} namespace Current namespace of the DOM node (HTML, SVG, or MathML)\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {PreactElement} oldDom The current attached DOM element any new dom\n * elements should be placed around. Likely `null` on first render (except when\n * hydrating). Can be a sibling DOM element when diffing Fragments that have\n * siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tnamespace,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating,\n\trefQueue\n) {\n\t/** @type {any} */\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== UNDEFINED) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._flags & MODE_SUSPENDED) {\n\t\tisHydrating = !!(oldVNode._flags & MODE_HYDRATE);\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\touter: if (typeof newType == 'function') {\n\t\ttry {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\t\t\tconst isClassComponent =\n\t\t\t\t'prototype' in newType && newType.prototype.render;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif (isClassComponent) {\n\t\t\t\t\t// @ts-expect-error The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-expect-error Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new BaseComponent(\n\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (isClassComponent && c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\n\t\t\tif (isClassComponent && newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\t\t\tc._vnode = newVNode;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tisClassComponent &&\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (isClassComponent && c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tisClassComponent &&\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t!c._force &&\n\t\t\t\t\t((c.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\t\tnewVNode._original == oldVNode._original)\n\t\t\t\t) {\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original != oldVNode._original) {\n\t\t\t\t\t\t// When we are dealing with a bail because of sCU we have to update\n\t\t\t\t\t\t// the props, state and dirty-state.\n\t\t\t\t\t\t// when we are dealing with strict-equality we don't as the child could still\n\t\t\t\t\t\t// be dirtied see #3883\n\t\t\t\t\t\tc.props = newProps;\n\t\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t\tc._dirty = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.some(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\n\t\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t\t}\n\t\t\t\t\tc._stateCallbacks = [];\n\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (isClassComponent && c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc._parentDom = parentDom;\n\t\t\tc._force = false;\n\n\t\t\tlet renderHook = options._render,\n\t\t\t\tcount = 0;\n\t\t\tif (isClassComponent) {\n\t\t\t\tc.state = c._nextState;\n\t\t\t\tc._dirty = false;\n\n\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t}\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t} else {\n\t\t\t\tdo {\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\t\t// Handle setState called in render, see #2553\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t} while (c._dirty && ++count < 25);\n\t\t\t}\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (isClassComponent && !isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\toldDom = diffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tisArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tnamespace,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating,\n\t\t\t\trefQueue\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._flags &= RESET_MODE;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tnewVNode._original = null;\n\t\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\t\tif (e.then) {\n\t\t\t\t\tnewVNode._flags |= isHydrating\n\t\t\t\t\t\t? MODE_HYDRATE | MODE_SUSPENDED\n\t\t\t\t\t\t: MODE_SUSPENDED;\n\n\t\t\t\t\twhile (oldDom && oldDom.nodeType == 8 && oldDom.nextSibling) {\n\t\t\t\t\t\toldDom = oldDom.nextSibling;\n\t\t\t\t\t}\n\n\t\t\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t\t\tnewVNode._dom = oldDom;\n\t\t\t\t} else {\n\t\t\t\t\tfor (let i = excessDomChildren.length; i--; ) {\n\t\t\t\t\t\tremoveNode(excessDomChildren[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t}\n\t\t\toptions._catchError(e, newVNode, oldVNode);\n\t\t}\n\t} else if (\n\t\texcessDomChildren == null &&\n\t\tnewVNode._original == oldVNode._original\n\t) {\n\t\tnewVNode._children = oldVNode._children;\n\t\tnewVNode._dom = oldVNode._dom;\n\t} else {\n\t\toldDom = newVNode._dom = diffElementNodes(\n\t\t\toldVNode._dom,\n\t\t\tnewVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tnamespace,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\tisHydrating,\n\t\t\trefQueue\n\t\t);\n\t}\n\n\tif ((tmp = options.diffed)) tmp(newVNode);\n\n\treturn newVNode._flags & MODE_SUSPENDED ? undefined : oldDom;\n}\n\n/**\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {VNode} root\n */\nexport function commitRoot(commitQueue, root, refQueue) {\n\tfor (let i = 0; i < refQueue.length; i++) {\n\t\tapplyRef(refQueue[i], refQueue[++i], refQueue[++i]);\n\t}\n\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-expect-error Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-expect-error See above comment on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {PreactElement} dom The DOM element representing the virtual nodes\n * being diffed\n * @param {VNode} newVNode The new virtual node\n * @param {VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {string} namespace Current namespace of the DOM node (HTML, SVG, or MathML)\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n * @returns {PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tnamespace,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating,\n\trefQueue\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = /** @type {string} */ (newVNode.type);\n\t/** @type {any} */\n\tlet i;\n\t/** @type {{ __html?: string }} */\n\tlet newHtml;\n\t/** @type {{ __html?: string }} */\n\tlet oldHtml;\n\t/** @type {ComponentChildren} */\n\tlet newChildren;\n\tlet value;\n\tlet inputValue;\n\tlet checked;\n\n\t// Tracks entering and exiting namespaces when descending through the tree.\n\tif (nodeType == 'svg') namespace = SVG_NAMESPACE;\n\telse if (nodeType == 'math') namespace = MATH_NAMESPACE;\n\telse if (!namespace) namespace = XHTML_NAMESPACE;\n\n\tif (excessDomChildren != null) {\n\t\tfor (i = 0; i < excessDomChildren.length; i++) {\n\t\t\tvalue = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tvalue &&\n\t\t\t\t'setAttribute' in value == !!nodeType &&\n\t\t\t\t(nodeType ? value.localName == nodeType : value.nodeType == 3)\n\t\t\t) {\n\t\t\t\tdom = value;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType == null) {\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tdom = document.createElementNS(\n\t\t\tnamespace,\n\t\t\tnodeType,\n\t\t\tnewProps.is && newProps\n\t\t);\n\n\t\t// we are creating a new node, so we can assume this is a new subtree (in\n\t\t// case we are hydrating), this deopts the hydrate\n\t\tif (isHydrating) {\n\t\t\tif (options._hydrationMismatch)\n\t\t\t\toptions._hydrationMismatch(newVNode, excessDomChildren);\n\t\t\tisHydrating = false;\n\t\t}\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\t// If we are in a situation where we are not hydrating but are using\n\t\t// existing DOM (e.g. replaceNode) we should read the existing DOM\n\t\t// attributes to diff them\n\t\tif (!isHydrating && excessDomChildren != null) {\n\t\t\toldProps = {};\n\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\tvalue = dom.attributes[i];\n\t\t\t\toldProps[value.name] = value.value;\n\t\t\t}\n\t\t}\n\n\t\tfor (i in oldProps) {\n\t\t\tvalue = oldProps[i];\n\t\t\tif (i == 'children') {\n\t\t\t} else if (i == 'dangerouslySetInnerHTML') {\n\t\t\t\toldHtml = value;\n\t\t\t} else if (!(i in newProps)) {\n\t\t\t\tif (\n\t\t\t\t\t(i == 'value' && 'defaultValue' in newProps) ||\n\t\t\t\t\t(i == 'checked' && 'defaultChecked' in newProps)\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tsetProperty(dom, i, null, value, namespace);\n\t\t\t}\n\t\t}\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tfor (i in newProps) {\n\t\t\tvalue = newProps[i];\n\t\t\tif (i == 'children') {\n\t\t\t\tnewChildren = value;\n\t\t\t} else if (i == 'dangerouslySetInnerHTML') {\n\t\t\t\tnewHtml = value;\n\t\t\t} else if (i == 'value') {\n\t\t\t\tinputValue = value;\n\t\t\t} else if (i == 'checked') {\n\t\t\t\tchecked = value;\n\t\t\t} else if (\n\t\t\t\t(!isHydrating || typeof value == 'function') &&\n\t\t\t\toldProps[i] !== value\n\t\t\t) {\n\t\t\t\tsetProperty(dom, i, value, oldProps[i], namespace);\n\t\t\t}\n\t\t}\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\tif (\n\t\t\t\t!isHydrating &&\n\t\t\t\t(!oldHtml ||\n\t\t\t\t\t(newHtml.__html !== oldHtml.__html &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML))\n\t\t\t) {\n\t\t\t\tdom.innerHTML = newHtml.__html;\n\t\t\t}\n\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\tif (oldHtml) dom.innerHTML = '';\n\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tisArray(newChildren) ? newChildren : [newChildren],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tnodeType == 'foreignObject' ? XHTML_NAMESPACE : namespace,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating,\n\t\t\t\trefQueue\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tremoveNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// As above, don't diff props during hydration\n\t\tif (!isHydrating) {\n\t\t\ti = 'value';\n\t\t\tif (nodeType == 'progress' && inputValue == null) {\n\t\t\t\tdom.removeAttribute('value');\n\t\t\t} else if (\n\t\t\t\tinputValue !== UNDEFINED &&\n\t\t\t\t// #2756 For the -element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(inputValue !== dom[i] ||\n\t\t\t\t\t(nodeType == 'progress' && !inputValue) ||\n\t\t\t\t\t// This is only for IE 11 to fix \n
\n {\n state.isResettingPassword\n ? \n : \n }\n
\n {\n //true && \n }\n
\n );\n }\n}\n\n/*\nfunction HeroText() {\n return (\n
\n
Democratizing
\n
Machine
\n
Intelligence
\n
\n );\n}\n*/","import { options as _options } from 'preact';\n\n/** @type {number} */\nlet currentIndex;\n\n/** @type {import('./internal').Component} */\nlet currentComponent;\n\n/** @type {import('./internal').Component} */\nlet previousComponent;\n\n/** @type {number} */\nlet currentHook = 0;\n\n/** @type {Array} */\nlet afterPaintEffects = [];\n\n// Cast to use internal Options type\nconst options = /** @type {import('./internal').Options} */ (_options);\n\nlet oldBeforeDiff = options._diff;\nlet oldBeforeRender = options._render;\nlet oldAfterDiff = options.diffed;\nlet oldCommit = options._commit;\nlet oldBeforeUnmount = options.unmount;\nlet oldRoot = options._root;\n\nconst RAF_TIMEOUT = 100;\nlet prevRaf;\n\n/** @type {(vnode: import('./internal').VNode) => void} */\noptions._diff = vnode => {\n\tcurrentComponent = null;\n\tif (oldBeforeDiff) oldBeforeDiff(vnode);\n};\n\noptions._root = (vnode, parentDom) => {\n\tif (vnode && parentDom._children && parentDom._children._mask) {\n\t\tvnode._mask = parentDom._children._mask;\n\t}\n\n\tif (oldRoot) oldRoot(vnode, parentDom);\n};\n\n/** @type {(vnode: import('./internal').VNode) => void} */\noptions._render = vnode => {\n\tif (oldBeforeRender) oldBeforeRender(vnode);\n\n\tcurrentComponent = vnode._component;\n\tcurrentIndex = 0;\n\n\tconst hooks = currentComponent.__hooks;\n\tif (hooks) {\n\t\tif (previousComponent === currentComponent) {\n\t\t\thooks._pendingEffects = [];\n\t\t\tcurrentComponent._renderCallbacks = [];\n\t\t\thooks._list.forEach(hookItem => {\n\t\t\t\tif (hookItem._nextValue) {\n\t\t\t\t\thookItem._value = hookItem._nextValue;\n\t\t\t\t}\n\t\t\t\thookItem._pendingArgs = hookItem._nextValue = undefined;\n\t\t\t});\n\t\t} else {\n\t\t\thooks._pendingEffects.forEach(invokeCleanup);\n\t\t\thooks._pendingEffects.forEach(invokeEffect);\n\t\t\thooks._pendingEffects = [];\n\t\t\tcurrentIndex = 0;\n\t\t}\n\t}\n\tpreviousComponent = currentComponent;\n};\n\n/** @type {(vnode: import('./internal').VNode) => void} */\noptions.diffed = vnode => {\n\tif (oldAfterDiff) oldAfterDiff(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\tif (c.__hooks._pendingEffects.length) afterPaint(afterPaintEffects.push(c));\n\t\tc.__hooks._list.forEach(hookItem => {\n\t\t\tif (hookItem._pendingArgs) {\n\t\t\t\thookItem._args = hookItem._pendingArgs;\n\t\t\t}\n\t\t\thookItem._pendingArgs = undefined;\n\t\t});\n\t}\n\tpreviousComponent = currentComponent = null;\n};\n\n// TODO: Improve typing of commitQueue parameter\n/** @type {(vnode: import('./internal').VNode, commitQueue: any) => void} */\noptions._commit = (vnode, commitQueue) => {\n\tcommitQueue.some(component => {\n\t\ttry {\n\t\t\tcomponent._renderCallbacks.forEach(invokeCleanup);\n\t\t\tcomponent._renderCallbacks = component._renderCallbacks.filter(cb =>\n\t\t\t\tcb._value ? invokeEffect(cb) : true\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tcommitQueue.some(c => {\n\t\t\t\tif (c._renderCallbacks) c._renderCallbacks = [];\n\t\t\t});\n\t\t\tcommitQueue = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t});\n\n\tif (oldCommit) oldCommit(vnode, commitQueue);\n};\n\n/** @type {(vnode: import('./internal').VNode) => void} */\noptions.unmount = vnode => {\n\tif (oldBeforeUnmount) oldBeforeUnmount(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\tlet hasErrored;\n\t\tc.__hooks._list.forEach(s => {\n\t\t\ttry {\n\t\t\t\tinvokeCleanup(s);\n\t\t\t} catch (e) {\n\t\t\t\thasErrored = e;\n\t\t\t}\n\t\t});\n\t\tc.__hooks = undefined;\n\t\tif (hasErrored) options._catchError(hasErrored, c._vnode);\n\t}\n};\n\n/**\n * Get a hook's state from the currentComponent\n * @param {number} index The index of the hook to get\n * @param {number} type The index of the hook to get\n * @returns {any}\n */\nfunction getHookState(index, type) {\n\tif (options._hook) {\n\t\toptions._hook(currentComponent, index, currentHook || type);\n\t}\n\tcurrentHook = 0;\n\n\t// Largely inspired by:\n\t// * https://github.com/michael-klein/funcy.js/blob/f6be73468e6ec46b0ff5aa3cc4c9baf72a29025a/src/hooks/core_hooks.mjs\n\t// * https://github.com/michael-klein/funcy.js/blob/650beaa58c43c33a74820a3c98b3c7079cf2e333/src/renderer.mjs\n\t// Other implementations to look at:\n\t// * https://codesandbox.io/s/mnox05qp8\n\tconst hooks =\n\t\tcurrentComponent.__hooks ||\n\t\t(currentComponent.__hooks = {\n\t\t\t_list: [],\n\t\t\t_pendingEffects: []\n\t\t});\n\n\tif (index >= hooks._list.length) {\n\t\thooks._list.push({});\n\t}\n\n\treturn hooks._list[index];\n}\n\n/**\n * @template {unknown} S\n * @param {import('./index').Dispatch>} [initialState]\n * @returns {[S, (state: S) => void]}\n */\nexport function useState(initialState) {\n\tcurrentHook = 1;\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @template {unknown} S\n * @template {unknown} A\n * @param {import('./index').Reducer} reducer\n * @param {import('./index').Dispatch>} initialState\n * @param {(initialState: any) => void} [init]\n * @returns {[ S, (state: S) => void ]}\n */\nexport function useReducer(reducer, initialState, init) {\n\t/** @type {import('./internal').ReducerHookState} */\n\tconst hookState = getHookState(currentIndex++, 2);\n\thookState._reducer = reducer;\n\tif (!hookState._component) {\n\t\thookState._value = [\n\t\t\t!init ? invokeOrReturn(undefined, initialState) : init(initialState),\n\n\t\t\taction => {\n\t\t\t\tconst currentValue = hookState._nextValue\n\t\t\t\t\t? hookState._nextValue[0]\n\t\t\t\t\t: hookState._value[0];\n\t\t\t\tconst nextValue = hookState._reducer(currentValue, action);\n\n\t\t\t\tif (currentValue !== nextValue) {\n\t\t\t\t\thookState._nextValue = [nextValue, hookState._value[1]];\n\t\t\t\t\thookState._component.setState({});\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\n\t\thookState._component = currentComponent;\n\n\t\tif (!currentComponent._hasScuFromHooks) {\n\t\t\tcurrentComponent._hasScuFromHooks = true;\n\t\t\tlet prevScu = currentComponent.shouldComponentUpdate;\n\t\t\tconst prevCWU = currentComponent.componentWillUpdate;\n\n\t\t\t// If we're dealing with a forced update `shouldComponentUpdate` will\n\t\t\t// not be called. But we use that to update the hook values, so we\n\t\t\t// need to call it.\n\t\t\tcurrentComponent.componentWillUpdate = function (p, s, c) {\n\t\t\t\tif (this._force) {\n\t\t\t\t\tlet tmp = prevScu;\n\t\t\t\t\t// Clear to avoid other sCU hooks from being called\n\t\t\t\t\tprevScu = undefined;\n\t\t\t\t\tupdateHookState(p, s, c);\n\t\t\t\t\tprevScu = tmp;\n\t\t\t\t}\n\n\t\t\t\tif (prevCWU) prevCWU.call(this, p, s, c);\n\t\t\t};\n\n\t\t\t// This SCU has the purpose of bailing out after repeated updates\n\t\t\t// to stateful hooks.\n\t\t\t// we store the next value in _nextValue[0] and keep doing that for all\n\t\t\t// state setters, if we have next states and\n\t\t\t// all next states within a component end up being equal to their original state\n\t\t\t// we are safe to bail out for this specific component.\n\t\t\t/**\n\t\t\t *\n\t\t\t * @type {import('./internal').Component[\"shouldComponentUpdate\"]}\n\t\t\t */\n\t\t\t// @ts-ignore - We don't use TS to downtranspile\n\t\t\t// eslint-disable-next-line no-inner-declarations\n\t\t\tfunction updateHookState(p, s, c) {\n\t\t\t\tif (!hookState._component.__hooks) return true;\n\n\t\t\t\t/** @type {(x: import('./internal').HookState) => x is import('./internal').ReducerHookState} */\n\t\t\t\tconst isStateHook = x => !!x._component;\n\t\t\t\tconst stateHooks =\n\t\t\t\t\thookState._component.__hooks._list.filter(isStateHook);\n\n\t\t\t\tconst allHooksEmpty = stateHooks.every(x => !x._nextValue);\n\t\t\t\t// When we have no updated hooks in the component we invoke the previous SCU or\n\t\t\t\t// traverse the VDOM tree further.\n\t\t\t\tif (allHooksEmpty) {\n\t\t\t\t\treturn prevScu ? prevScu.call(this, p, s, c) : true;\n\t\t\t\t}\n\n\t\t\t\t// We check whether we have components with a nextValue set that\n\t\t\t\t// have values that aren't equal to one another this pushes\n\t\t\t\t// us to update further down the tree\n\t\t\t\tlet shouldUpdate = hookState._component.props !== p;\n\t\t\t\tstateHooks.forEach(hookItem => {\n\t\t\t\t\tif (hookItem._nextValue) {\n\t\t\t\t\t\tconst currentValue = hookItem._value[0];\n\t\t\t\t\t\thookItem._value = hookItem._nextValue;\n\t\t\t\t\t\thookItem._nextValue = undefined;\n\t\t\t\t\t\tif (currentValue !== hookItem._value[0]) shouldUpdate = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn prevScu\n\t\t\t\t\t? prevScu.call(this, p, s, c) || shouldUpdate\n\t\t\t\t\t: shouldUpdate;\n\t\t\t}\n\n\t\t\tcurrentComponent.shouldComponentUpdate = updateHookState;\n\t\t}\n\t}\n\n\treturn hookState._nextValue || hookState._value;\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {unknown[]} args\n * @returns {void}\n */\nexport function useEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 3);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._pendingArgs = args;\n\n\t\tcurrentComponent.__hooks._pendingEffects.push(state);\n\t}\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {unknown[]} args\n * @returns {void}\n */\nexport function useLayoutEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 4);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._pendingArgs = args;\n\n\t\tcurrentComponent._renderCallbacks.push(state);\n\t}\n}\n\n/** @type {(initialValue: unknown) => unknown} */\nexport function useRef(initialValue) {\n\tcurrentHook = 5;\n\treturn useMemo(() => ({ current: initialValue }), []);\n}\n\n/**\n * @param {object} ref\n * @param {() => object} createHandle\n * @param {unknown[]} args\n * @returns {void}\n */\nexport function useImperativeHandle(ref, createHandle, args) {\n\tcurrentHook = 6;\n\tuseLayoutEffect(\n\t\t() => {\n\t\t\tif (typeof ref == 'function') {\n\t\t\t\tref(createHandle());\n\t\t\t\treturn () => ref(null);\n\t\t\t} else if (ref) {\n\t\t\t\tref.current = createHandle();\n\t\t\t\treturn () => (ref.current = null);\n\t\t\t}\n\t\t},\n\t\targs == null ? args : args.concat(ref)\n\t);\n}\n\n/**\n * @template {unknown} T\n * @param {() => T} factory\n * @param {unknown[]} args\n * @returns {T}\n */\nexport function useMemo(factory, args) {\n\t/** @type {import('./internal').MemoHookState} */\n\tconst state = getHookState(currentIndex++, 7);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._value = factory();\n\t\tstate._args = args;\n\t\tstate._factory = factory;\n\t}\n\n\treturn state._value;\n}\n\n/**\n * @param {() => void} callback\n * @param {unknown[]} args\n * @returns {() => void}\n */\nexport function useCallback(callback, args) {\n\tcurrentHook = 8;\n\treturn useMemo(() => callback, args);\n}\n\n/**\n * @param {import('./internal').PreactContext} context\n */\nexport function useContext(context) {\n\tconst provider = currentComponent.context[context._id];\n\t// We could skip this call here, but than we'd not call\n\t// `options._hook`. We need to do that in order to make\n\t// the devtools aware of this hook.\n\t/** @type {import('./internal').ContextHookState} */\n\tconst state = getHookState(currentIndex++, 9);\n\t// The devtools needs access to the context object to\n\t// be able to pull of the default value when no provider\n\t// is present in the tree.\n\tstate._context = context;\n\tif (!provider) return context._defaultValue;\n\t// This is probably not safe to convert to \"!\"\n\tif (state._value == null) {\n\t\tstate._value = true;\n\t\tprovider.sub(currentComponent);\n\t}\n\treturn provider.props.value;\n}\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {(value: T, cb?: (value: T) => string | number) => void}\n */\nexport function useDebugValue(value, formatter) {\n\tif (options.useDebugValue) {\n\t\toptions.useDebugValue(\n\t\t\tformatter ? formatter(value) : /** @type {any}*/ (value)\n\t\t);\n\t}\n}\n\n/**\n * @param {(error: unknown, errorInfo: import('preact').ErrorInfo) => void} cb\n * @returns {[unknown, () => void]}\n */\nexport function useErrorBoundary(cb) {\n\t/** @type {import('./internal').ErrorBoundaryHookState} */\n\tconst state = getHookState(currentIndex++, 10);\n\tconst errState = useState();\n\tstate._value = cb;\n\tif (!currentComponent.componentDidCatch) {\n\t\tcurrentComponent.componentDidCatch = (err, errorInfo) => {\n\t\t\tif (state._value) state._value(err, errorInfo);\n\t\t\terrState[1](err);\n\t\t};\n\t}\n\treturn [\n\t\terrState[0],\n\t\t() => {\n\t\t\terrState[1](undefined);\n\t\t}\n\t];\n}\n\n/** @type {() => string} */\nexport function useId() {\n\t/** @type {import('./internal').IdHookState} */\n\tconst state = getHookState(currentIndex++, 11);\n\tif (!state._value) {\n\t\t// Grab either the root node or the nearest async boundary node.\n\t\t/** @type {import('./internal').VNode} */\n\t\tlet root = currentComponent._vnode;\n\t\twhile (root !== null && !root._mask && root._parent !== null) {\n\t\t\troot = root._parent;\n\t\t}\n\n\t\tlet mask = root._mask || (root._mask = [0, 0]);\n\t\tstate._value = 'P' + mask[0] + '-' + mask[1]++;\n\t}\n\n\treturn state._value;\n}\n\n/**\n * After paint effects consumer.\n */\nfunction flushAfterPaintEffects() {\n\tlet component;\n\twhile ((component = afterPaintEffects.shift())) {\n\t\tif (!component._parentDom || !component.__hooks) continue;\n\t\ttry {\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t} catch (e) {\n\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t}\n}\n\nlet HAS_RAF = typeof requestAnimationFrame == 'function';\n\n/**\n * Schedule a callback to be invoked after the browser has a chance to paint a new frame.\n * Do this by combining requestAnimationFrame (rAF) + setTimeout to invoke a callback after\n * the next browser frame.\n *\n * Also, schedule a timeout in parallel to the the rAF to ensure the callback is invoked\n * even if RAF doesn't fire (for example if the browser tab is not visible)\n *\n * @param {() => void} callback\n */\nfunction afterNextFrame(callback) {\n\tconst done = () => {\n\t\tclearTimeout(timeout);\n\t\tif (HAS_RAF) cancelAnimationFrame(raf);\n\t\tsetTimeout(callback);\n\t};\n\tconst timeout = setTimeout(done, RAF_TIMEOUT);\n\n\tlet raf;\n\tif (HAS_RAF) {\n\t\traf = requestAnimationFrame(done);\n\t}\n}\n\n// Note: if someone used options.debounceRendering = requestAnimationFrame,\n// then effects will ALWAYS run on the NEXT frame instead of the current one, incurring a ~16ms delay.\n// Perhaps this is not such a big deal.\n/**\n * Schedule afterPaintEffects flush after the browser paints\n * @param {number} newQueueLength\n * @returns {void}\n */\nfunction afterPaint(newQueueLength) {\n\tif (newQueueLength === 1 || prevRaf !== options.requestAnimationFrame) {\n\t\tprevRaf = options.requestAnimationFrame;\n\t\t(prevRaf || afterNextFrame)(flushAfterPaintEffects);\n\t}\n}\n\n/**\n * @param {import('./internal').HookState} hook\n * @returns {void}\n */\nfunction invokeCleanup(hook) {\n\t// A hook cleanup can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\tlet cleanup = hook._cleanup;\n\tif (typeof cleanup == 'function') {\n\t\thook._cleanup = undefined;\n\t\tcleanup();\n\t}\n\n\tcurrentComponent = comp;\n}\n\n/**\n * Invoke a Hook's effect\n * @param {import('./internal').EffectHookState} hook\n * @returns {void}\n */\nfunction invokeEffect(hook) {\n\t// A hook call can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\thook._cleanup = hook._value();\n\tcurrentComponent = comp;\n}\n\n/**\n * @param {unknown[]} oldArgs\n * @param {unknown[]} newArgs\n * @returns {boolean}\n */\nfunction argsChanged(oldArgs, newArgs) {\n\treturn (\n\t\t!oldArgs ||\n\t\toldArgs.length !== newArgs.length ||\n\t\tnewArgs.some((arg, index) => arg !== oldArgs[index])\n\t);\n}\n\n/**\n * @template Arg\n * @param {Arg} arg\n * @param {(arg: Arg) => any} f\n * @returns {any}\n */\nfunction invokeOrReturn(arg, f) {\n\treturn typeof f == 'function' ? f(arg) : f;\n}\n","import { useLayoutEffect } from \"preact/hooks\";\n\nexport const useBodyStyle = (className: string) => {\n useLayoutEffect(() => {\n const old = document.body.className;\n document.body.className = (!old ? \"\" : (old + \" \")) + className;\n return () => {\n document.body.className = old;\n }\n }, [className]);\n};\n\nexport function isDevice(): boolean {\n return (/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(navigator.userAgent.toLowerCase()));\n}\n\nexport function isMobile(): boolean {\n return isDevice() && window.devicePixelRatio >= 2;\n}\n\nexport function isTablet(): boolean {\n return isMobile() && window.devicePixelRatio < 2;\n}\n","import { h, Component } from \"preact\";\nimport \"./countdownApplet.scss\";\n\ninterface CountdownAppletProps {\n}\n\ninterface CountdownAppletState {\n title: string;\n}\n\nexport class CountdownApplet extends Component {\n constructor(props: CountdownAppletProps) {\n super(props);\n\n this.state = {\n title: \"New timer\"\n };\n }\n\n render(props: CountdownAppletProps, state: CountdownAppletState) {\n return (\n
\n
Countdown applet goes here!
\n
\n \n
\n
\n \n :\n \n :\n \n
\n
\n );\n }\n}\n\n\n","import { h, Component } from \"preact\";\nimport \"./passwordApplet.scss\";\n\ninterface PasswordAppletProps {\n title?: string;\n description?: string;\n requireConfirmation?: boolean;\n okButton?: string;\n cancelButton?: string;\n allowCancel?: boolean;\n}\n\ninterface PasswordAppletState {\n password: string;\n password2: string;\n}\n\nexport class PasswordApplet extends Component {\n constructor(props: PasswordAppletProps) {\n super(props);\n\n this.state = {\n password: \"\",\n password2: \"\"\n };\n }\n\n render(props: PasswordAppletProps, state: PasswordAppletState) {\n return (\n
\n {\n !!props.title &&
{props.title}
\n }\n {\n !!props.description &&
{props.description}
\n }\n
\n
New Password
\n \n
\n {\n props.requireConfirmation && (\n
\n
Confirm Password
\n \n
\n )\n }\n
\n \n {\n (props.allowCancel === undefined || props.allowCancel === true) && (\n \n )\n }\n
\n
\n );\n }\n}\n","import { h, Component, createRef } from \"preact\";\nimport { GanglionConnection, GanglionConversationResponse } from \"../../services/ganglion-connection\";\nimport { isMobile } from \"../../utils\";\nimport { CountdownApplet } from \"../../applets/countdown/countdownApplet\"\nimport { PasswordApplet } from \"../../applets/password/passwordApplet\"\nimport \"./chatpage.scss\";\n\n// tslint:disable: typedef\n\nexport interface IChatPageProps {\n connection: GanglionConnection;\n showSendButton?: boolean;\n compactLayout?: boolean;\n}\n\ninterface IChatPageState {\n input: string;\n messages: IChatMessage[];\n connectionUnsubscriber: (() => void) | null;\n isMobile: boolean;\n fixedLayout: boolean;\n}\n\ninterface IChatMessage {\n fromUser: boolean;\n text?: string;\n component?: string;\n action?: string;\n time: Date;\n data?: any;\n}\n\nexport class ChatPage extends Component {\n constructor(props: IChatPageProps) {\n super(props);\n\n this.state = {\n input: \"\",\n messages: [],\n connectionUnsubscriber: null,\n isMobile: isMobile(),\n fixedLayout: props.compactLayout ?? isMobile() ?? false\n };\n\n document.body.className = \"chat\";\n }\n\n componentDidMount() {\n const unsubscriber = this.props.connection.addMessageListener(data => {\n\n if (data.action) {\n handleAction(this, data);\n }\n\n if (!data.message && !data.component) return;\n\n this.setState({\n messages: [\n ...this.state.messages,\n {\n fromUser: false,\n text: data.message,\n component: data.component,\n time: new Date(data.receivedTime),\n data: data.data\n }\n ]\n });\n });\n\n window.addEventListener(\"visibilitychange\", this.onVisibilityChanged);\n window.addEventListener(\"resize\", this.onSizeChanged);\n\n this.setState({\n connectionUnsubscriber: unsubscriber\n });\n }\n\n componentWillUnmount() {\n if (this.state.connectionUnsubscriber) {\n this.state.connectionUnsubscriber();\n }\n\n window.removeEventListener(\"resize\", this.onSizeChanged);\n window.removeEventListener(\"visibilitychange\", this.onVisibilityChanged);\n }\n\n componentDidUpdate() {\n setTimeout(this.onSizeChanged);\n window.scrollTo(0, document.body.scrollHeight);\n }\n\n onVisibilityChanged = () => {\n if (this.textfieldRef?.current) {\n this.textfieldRef.current.focus();\n }\n }\n\n onSizeChanged = () => {\n if (this.state.fixedLayout) { return; }\n\n const page = document.getElementById(\"chatpagecontainer\");\n if (page) {\n //console.log(\"\" + window.innerHeight + \" - \" + page.scrollHeight);\n\n if (window.innerHeight < page.scrollHeight) {\n this.setState({\n fixedLayout: true\n });\n }\n }\n }\n\n onInput = (event: Event) => {\n this.setState({\n input: (event.srcElement as HTMLInputElement).value\n });\n }\n\n onKeydown = (event: KeyboardEvent) => {\n if (event.keyCode === 13) {\n this.send();\n }\n }\n\n send = () => {\n const text = this.state.input;\n if (text) {\n this.props.connection.sendText(text);\n this.setState({\n input: \"\",\n messages: [\n ...this.state.messages,\n {\n fromUser: true,\n text: text,\n time: new Date()\n }\n ]\n });\n }\n }\n\n textfieldRef = createRef();\n\n render(props: IChatPageProps, state: IChatPageState) {\n const layoutClass = this.state.isMobile\n ? \"chatpagecontainer fixed mobile\"\n : state.fixedLayout\n ? \"chatpagecontainer fixed\"\n : \"chatpagecontainer\";\n\n return (\n
\n
\n {\n state.messages.map(message => )\n }\n
\n
\n
\n \n {\n !!props.showSendButton &&\n \n \n \n \n \n \n \n }\n
\n
\n {\n !this.state.isMobile && this.state.messages.length == 0 &&\n
\n
Copyright ©1999-2025 Ontogenesis, all rights reserved.
\n
\n }\n
\n );\n }\n}\n\nfunction ChatMessage({ message }: { message: IChatMessage }) {\n switch (message.component) {\n case null:\n case undefined:\n break;\n case \"changepassword\":\n return \n case \"countdown\":\n return \n default:\n return (\n

COMPONENT: {message.component}

\n );\n }\n return (\n
\n
{message.fromUser ? \"\" : \"Exocortex, \"}{formatTime(message.time)}
\n
\n {message.text}\n
\n
\n );\n}\n\nfunction formatTime(date: Date) {\n return (\"0\" + date.getHours()).slice(-2) + \":\" + (\"0\" + date.getMinutes()).slice(-2); // + \":\" + (\"0\" + date.getSeconds()).slice(-2);\n}\n\nfunction handleAction(page: ChatPage, message: GanglionConversationResponse) {\n switch (message.action) {\n case \"logout\":\n page.props.connection.logout();\n break;\n case \"quit\":\n window.close();\n break;\n default:\n alert(\"action: \" + message.action);\n }\n}","const isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function registerServiceWorker() {\n if(isLocalhost) {\n // Lets not register on localhost\n return;\n }\n if (\"serviceWorker\" in navigator) {\n navigator.serviceWorker.register(\"/serviceworker.js\")\n .then(() => {\n console.log('Service Worker Registered');\n })\n .catch(function(err) {\n console.log(\"Service Worker Failed to Register\", err);\n });\n }\n}","import { EMPTY_OBJ } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\nimport { slice } from './util';\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to render into\n * @param {import('./internal').PreactElement | object} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\t// https://github.com/preactjs/preact/issues/3794\n\tif (parentDom == document) {\n\t\tparentDom = document.documentElement;\n\t}\n\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we are in\n\t// hydration mode or not by passing the `hydrate` function instead of a DOM\n\t// element..\n\tlet isHydrating = typeof replaceNode == 'function';\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\n\tvnode = ((!isHydrating && replaceNode) || parentDom)._children =\n\t\tcreateElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [],\n\t\trefQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\tvnode,\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.namespaceURI,\n\t\t!isHydrating && replaceNode\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t\t? null\n\t\t\t\t: parentDom.firstChild\n\t\t\t\t\t? slice.call(parentDom.childNodes)\n\t\t\t\t\t: null,\n\t\tcommitQueue,\n\t\t!isHydrating && replaceNode\n\t\t\t? replaceNode\n\t\t\t: oldVNode\n\t\t\t\t? oldVNode._dom\n\t\t\t\t: parentDom.firstChild,\n\t\tisHydrating,\n\t\trefQueue\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode, refQueue);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, hydrate);\n}\n","import { h, render } from \"preact\";\nimport { App } from \"./app\";\nimport { registerServiceWorker } from \"./services/registerServiceworker\";\n\nrender(, document.getElementById(\"app\")!);\nregisterServiceWorker();\n\n","import { h, Component } from \"preact\";\nimport { GanglionConnection } from \"./services/ganglion-connection\";\nimport { LandingPage } from \"./pages/landing/landingPage\";\nimport { ChatPage } from \"./pages/chat/chatPage\";\n//import { UploadPage } from \"./pages/upload/uploadPage\";\nimport { isMobile } from \"./utils\";\n\n// tslint:disable: typedef\n\ninterface IAppState {\n connection: GanglionConnection;\n unsubscribe?: () => void;\n}\n\nexport class App extends Component {\n constructor(props: IAppState) {\n super(props);\n\n const connection = new GanglionConnection();\n\n this.state = {\n connection: connection\n };\n }\n\n async componentDidMount() {\n await this.state.connection.reestablish();\n\n const unsubscriber = this.state.connection.addAuthenticationChangedListener(() => {\n this.forceUpdate();\n });\n this.setState({\n unsubscribe: unsubscriber\n });\n }\n\n componentWillUnmount() {\n if (this.state.unsubscribe) {\n this.state.unsubscribe();\n }\n }\n\n render(props: any, state: IAppState) {\n // return ;\n // return ;\n\n return (\n this.state.connection.isAuthenticated\n ? \n : \n );\n }\n}\n"],"names":["slice","options","vnodeId","rerenderQueue","prevDebounce","defer","depthSort","CAPTURE_REGEX","eventClock","eventProxy","eventProxyCapture","EMPTY_OBJ","EMPTY_ARR","IS_NON_DIMENSIONAL","isArray","Array","assign","obj","props","i","removeNode","node","parentNode","removeChild","createElement","type","children","key","ref","normalizedProps","arguments","length","call","defaultProps","createVNode","original","vnode","__k","__","__b","__e","__c","constructor","__v","__i","__u","Fragment","BaseComponent","context","this","getDomSibling","childIndex","sibling","updateParentDomPointers","child","base","enqueueRender","c","__d","push","process","__r","debounceRendering","renderQueueLength","component","newVNode","oldVNode","oldDom","commitQueue","refQueue","sort","shift","__P","diff","__n","namespaceURI","commitRoot","diffChildren","parentDom","renderResult","newParentVNode","oldParentVNode","globalContext","namespace","excessDomChildren","isHydrating","childVNode","newDom","firstChildDom","result","oldChildren","newChildrenLength","constructNewChildrenArray","applyRef","insert","nextSibling","skewedIndex","matchingIndex","oldChildrenLength","remainingOldChildren","skew","String","findMatchingIndex","unmount","parentVNode","contains","insertBefore","nodeType","x","y","setStyle","style","value","setProperty","test","dom","name","oldValue","useCapture","o","cssText","replace","toLowerCase","l","_attached","addEventListener","removeEventListener","e","removeAttribute","setAttribute","createEventProxy","eventHandler","_dispatched","event","tmp","isNew","oldProps","oldState","snapshot","clearProcessingException","newProps","isClassComponent","provider","componentContext","renderHook","count","newType","outer","prototype","render","contextType","__E","doRender","sub","state","__h","_sb","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","some","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","then","MODE_HYDRATE","indexOf","diffElementNodes","diffed","root","cb","newHtml","oldHtml","newChildren","inputValue","checked","localName","document","createTextNode","createElementNS","is","__m","data","childNodes","attributes","__html","innerHTML","hasRefUnmount","current","skipRemove","r","componentWillUnmount","error","errorInfo","ctor","handled","getDerivedStateFromError","setState","componentDidCatch","update","callback","s","forceUpdate","Promise","bind","resolve","setTimeout","a","b","GanglionConnection","_host","_httpUrl","_wsUrl","_refreshToken","sessionStorage","getItem","_accessToken","connectWebsocket","webSocket","isSocketConnected","conversationId","_wsSetupAttempts","_wsSetupDelay","_messageListeners","_authenticationListeners","isAuthenticated","_getHeaders","headers","reestablish","localStorage","getNewToken","logout","removeItem","_notifyAuthenticationChangedListeners","requestPasswordReset","email","fetch","method","body","JSON","stringify","refreshToken","response","grant_type","refresh_token","_handleTokenResponse","authenticate","username","password","rememberMe","ok","json","access_token","setItem","forEach","listener","addMessageListener","index","splice","addAuthenticationChangedListener","sendText","text","interactionRequest","message","send","emitResponse","WebSocket","onopen","async","socket","timeout","isOpened","readyState","OPEN","CONNECTING","intrasleep","ttl","loop","waitConnected","console","log","onmessage","evt","parse","onerror","onclose","LoginUi","super","login","isLoading","stopPropagation","onKeydown","keyCode","doLogin","onInput","srcElement","id","onForgotPassword","forgotPassword","isValid","connection","className","class","for","tabIndex","placeholder","onKeyDown","onChange","currentTarget","onClick","disabled","ForgotPasswordUi","hasProcessed","doResetPassword","doBackground","canvas","getElementById","appendChild","width","window","innerWidth","height","innerHeight","ctx","getContext","alpha","imageSmoothingEnabled","grd","createLinearGradient","addColorStop","fillStyle","rect","fill","Math","sin","PI","beginPath","arc","updateTimer","resizeListener","clearTimeout","LandingPage","isMenuVisible","isResettingPassword","hide","remove","removeBackground","toggle","elem","focus","currentComponent","previousComponent","prevRaf","afterPaintEffects","_options","oldBeforeDiff","oldBeforeRender","oldAfterDiff","oldCommit","oldBeforeUnmount","oldRoot","flushAfterPaintEffects","__H","invokeCleanup","invokeEffect","hooks","hookItem","__N","_pendingArgs","requestAnimationFrame","afterNextFrame","filter","hasErrored","HAS_RAF","raf","done","cancelAnimationFrame","hook","comp","cleanup","isMobile","navigator","userAgent","devicePixelRatio","CountdownApplet","title","pattern","maxLength","PasswordApplet","password2","description","autoComplete","requireConfirmation","okButton","undefined","allowCancel","cancelButton","ChatPage","input","messages","connectionUnsubscriber","fixedLayout","compactLayout","unsubscriber","action","page","close","alert","handleAction","fromUser","time","Date","receivedTime","onVisibilityChanged","onSizeChanged","scrollTo","scrollHeight","textfieldRef","map","ChatMessage","autoFocus","showSendButton","version","xmlns","viewBox","xmlSpace","d","date","getHours","getMinutes","isLocalhost","Boolean","location","hostname","match","replaceNode","documentElement","firstChild","unsubscribe","serviceWorker","register","catch","err"],"sourceRoot":""}