{"mappings":"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","sources":["node_modules/@parcel/runtime-js/lib/helpers/bundle-manifest.js","node_modules/preact/src/util.js","node_modules/preact/src/options.js","node_modules/preact/src/create-element.js","node_modules/preact/src/component.js","node_modules/preact/src/create-context.js","node_modules/preact/src/constants.js","node_modules/preact/src/diff/children.js","node_modules/preact/src/diff/props.js","node_modules/preact/src/diff/index.js","node_modules/preact/src/render.js","node_modules/preact/src/clone-element.js","node_modules/preact/src/diff/catch-error.js","node_modules/@parcel/runtime-js/lib/runtime-bfa3e6c8d021b299.js","node_modules/@parcel/runtime-js/lib/helpers/browser/js-loader.js","node_modules/@parcel/runtime-js/lib/helpers/cacheLoader.js","node_modules/@parcel/runtime-js/lib/helpers/bundle-url.js","node_modules/@parcel/runtime-js/lib/runtime-27723e7216029dc4.js","node_modules/preact/jsx-runtime/src/index.js","node_modules/preact-iso/router.js","node_modules/preact/hooks/src/index.js","node_modules/preact-iso/lazy.js","node_modules/preact-iso/hydrate.js","public/pages/home/index.tsx","public/util/zh-cn.json5","public/util/stringUtil.ts","public/util/en-us.json5","public/util/language.ts","public/pages/_404.tsx","public/pages/about/index.tsx","node_modules/@swc/helpers/src/_define_property.mjs","public/components/logo.tsx","public/util/mduiHelper.ts","mdui.js","public/util/theme.ts","public/components/headbar.tsx","public/components/plugin/pluginCard.module.css","public/components/plugin/pluginCard.tsx","public/util/apiUtil.ts","public/util/timeUtil.ts","public/util/languageColor.json","public/data/RepoDataBean.ts","public/util/commonUtil.ts","public/components/plugin/pluginDrawer.tsx","public/pages/plugin/style.module.css","node_modules/preact/compat/src/util.js","node_modules/preact/compat/src/PureComponent.js","node_modules/preact/compat/src/forwardRef.js","node_modules/preact/compat/src/Children.js","node_modules/preact/compat/src/suspense.js","node_modules/preact/compat/src/suspense-list.js","node_modules/preact/compat/src/render.js","node_modules/preact/compat/src/index.js","public/components/dialog/sliderChooseDialog.module.css","public/components/dialog/sliderChooseDialog.tsx","public/components/plugin/pluginDetail.module.css","public/components/dialog/loadingDialog.module.css","public/components/dialog/loadingDialog.tsx","public/components/plugin/pluginDependencies.tsx","public/components/plugin/pluginDetail.tsx","public/pages/plugin/index.tsx","public/index.tsx"],"sourcesContent":["\"use strict\";\n\nvar mapping = {};\n\nfunction register(pairs) {\n var keys = Object.keys(pairs);\n\n for (var i = 0; i < keys.length; i++) {\n mapping[keys[i]] = pairs[keys[i]];\n }\n}\n\nfunction resolve(id) {\n var resolved = mapping[id];\n\n if (resolved == null) {\n throw new Error('Could not resolve bundle with id ' + id);\n }\n\n return resolved;\n}\n\nmodule.exports.register = register;\nmodule.exports.resolve = resolve;","import { EMPTY_ARR } from \"./constants\";\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-ignore We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n","import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == null && options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) {\n\t\t\tthis._stateCallbacks.push(callback);\n\t\t}\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (vnode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array}\n */\nlet rerenderQueue = [];\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet c;\n\trerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\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((a, b) => a._vnode._depth - b._vnode._depth);\n\t\t\t}\n\t\t}\n\t}\n\tprocess._rerenderCount = 0;\n}\n\nprocess._rerenderCount = 0;\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\t/** @type {import('./internal').Component[]} */\n\t\t\t\tlet subs = [];\n\t\t\t\tlet ctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.shouldComponentUpdate = function(_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\t// I think the forced value propagation here was only needed when `options.debounceRendering` was being bypassed:\n\t\t\t\t\t\t// https://github.com/preactjs/preact/commit/4d339fb803bea09e9f198abf38ca1bf8ea4b7771#diff-54682ce380935a717e41b8bfc54737f6R358\n\t\t\t\t\t\t// In those cases though, even with the value corrected, we're double-rendering all nodes.\n\t\t\t\t\t\t// It might be better to just tell folks not to use force-sync mode.\n\t\t\t\t\t\t// Currently, using `useContext()` in a class component will overwrite its `this.context` value.\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context[contextId] = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\t\t\t\t\t\tsubs.some(c => {\n\t\t\t\t\t\t\tc._force = true;\n\t\t\t\t\t\t\tenqueueRender(c);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType = context);\n}\n","export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g.
{reuse}{reuse}
) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse =
\n\t\t\t//
{reuse}{reuse}
\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tchildVNode.ref ? childVNode.ref : null,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tnewDom = childVNode._dom;\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\t\tchildVNode._children === oldVNode._children\n\t\t\t) {\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldDom,\n\t\t\t\t\tparentDom\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\toldChildren,\n\t\t\t\t\tnewDom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) {\n\t\t\tif (\n\t\t\t\ttypeof newParentVNode.type == 'function' &&\n\t\t\t\toldChildren[i]._dom != null &&\n\t\t\t\toldChildren[i]._dom == newParentVNode._nextDom\n\t\t\t) {\n\t\t\t\t// If the newParentVNode.__nextDom points to a dom node that is about to\n\t\t\t\t// be unmounted, then get the next sibling of that vnode and set\n\t\t\t\t// _nextDom to it\n\t\t\t\tnewParentVNode._nextDom = getLastDom(oldParentVNode).nextSibling;\n\t\t\t}\n\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\n\t\t}\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\nfunction reorderChildren(childVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\tlet c = childVNode._children;\n\tlet tmp = 0;\n\tfor (; c && tmp < c.length; tmp++) {\n\t\tlet vnode = c[tmp];\n\t\tif (vnode) {\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\n\t\t\t// (childVNode here).\n\t\t\tvnode._parent = childVNode;\n\n\t\t\tif (typeof vnode.type == 'function') {\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(parentDom, vnode, vnode, c, vnode._dom, oldDom);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nfunction placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\toldVNode == null ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j= 0; i--) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child) {\n\t\t\t\tlet lastDom = getLastDom(child);\n\t\t\t\tif (lastDom) {\n\t\t\t\t\treturn lastDom;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn null;\n}\n","import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\n/**\n * Diff the old and new properties of a VNode and apply changes to the DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to apply\n * changes to\n * @param {object} newProps The new props\n * @param {object} oldProps The old props\n * @param {boolean} isSvg Whether or not this node is an SVG node\n * @param {boolean} hydrate Whether or not we are in hydration mode\n */\nexport function diffProps(dom, newProps, oldProps, isSvg, hydrate) {\n\tlet i;\n\n\tfor (i in oldProps) {\n\t\tif (i !== 'children' && i !== 'key' && !(i in newProps)) {\n\t\t\tsetProperty(dom, i, null, oldProps[i], isSvg);\n\t\t}\n\t}\n\n\tfor (i in newProps) {\n\t\tif (\n\t\t\t(!hydrate || typeof newProps[i] == 'function') &&\n\t\t\ti !== 'children' &&\n\t\t\ti !== 'key' &&\n\t\t\ti !== 'value' &&\n\t\t\ti !== 'checked' &&\n\t\t\toldProps[i] !== newProps[i]\n\t\t) {\n\t\t\tsetProperty(dom, i, newProps[i], oldProps[i], isSvg);\n\t\t}\n\t}\n}\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value == null ? '' : value);\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else if (typeof value != 'number' || IS_NON_DIMENSIONAL.test(key)) {\n\t\tstyle[key] = value;\n\t} else {\n\t\tstyle[key] = value + 'px';\n\t}\n}\n\n/**\n * Set a property value on a DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node or not\n */\nexport function setProperty(dom, name, value, oldValue, isSvg) {\n\tlet useCapture;\n\n\to: if (name === 'style') {\n\t\tif (typeof value == 'string') {\n\t\t\tdom.style.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\tdom.style.cssText = oldValue = '';\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (name in oldValue) {\n\t\t\t\t\tif (!(value && name in value)) {\n\t\t\t\t\t\tsetStyle(dom.style, name, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (name in value) {\n\t\t\t\t\tif (!oldValue || value[name] !== oldValue[name]) {\n\t\t\t\t\t\tsetStyle(dom.style, name, value[name]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tuseCapture = name !== (name = name.replace(/Capture$/, ''));\n\n\t\t// Infer correct casing for DOM built-in events:\n\t\tif (name.toLowerCase() in dom) name = name.toLowerCase().slice(2);\n\t\telse name = name.slice(2);\n\n\t\tif (!dom._listeners) dom._listeners = {};\n\t\tdom._listeners[name + useCapture] = value;\n\n\t\tif (value) {\n\t\t\tif (!oldValue) {\n\t\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\t\tdom.addEventListener(name, handler, useCapture);\n\t\t\t}\n\t\t} else {\n\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\tdom.removeEventListener(name, handler, useCapture);\n\t\t}\n\t} else if (name !== 'dangerouslySetInnerHTML') {\n\t\tif (isSvg) {\n\t\t\t// Normalize incorrect prop usage for SVG:\n\t\t\t// - xlink:href / xlinkHref --> href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname !== 'width' &&\n\t\t\tname !== 'height' &&\n\t\t\tname !== 'href' &&\n\t\t\tname !== 'list' &&\n\t\t\tname !== 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname !== 'tabIndex' &&\n\t\t\tname !== 'download' &&\n\t\t\tname 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-attributes have a different notion of boolean values.\n\t\t// The value `false` is different from the attribute not\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t// that other VDOM frameworks also always 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.indexOf('-') != -1)) {\n\t\t\tdom.setAttribute(name, value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\treturn this._listeners[e.type + false](options.event ? options.event(e) : e);\n}\n\nfunction eventProxyCapture(e) {\n\treturn this._listeners[e.type + true](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ } from '../constants';\nimport { Component, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps, setProperty } from './props';\nimport { assign, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\t\t\tc._vnode = newVNode;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.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\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\t// In cases of bailing due to strict-equality we have to reset force as well\n\t\t\t\t\tc._force = false;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\n\t\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t\t}\n\t\t\t\t\tc._stateCallbacks = [];\n\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\tlet renderHook = options._render,\n\t\t\t\tcount = 0;\n\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\tc.state = c._nextState;\n\t\t\t\tc._dirty = false;\n\n\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t}\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t} else {\n\t\t\t\tdo {\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\t\t// Handle setState called in render, see #2553\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t} while (c._dirty && ++count < 25);\n\t\t\t}\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n}\n\n/**\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-ignore Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = newVNode.type;\n\tlet i = 0;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tif (nodeType === 'svg') isSvg = true;\n\n\tif (excessDomChildren != null) {\n\t\tfor (; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild &&\n\t\t\t\t'setAttribute' in child === !!nodeType &&\n\t\t\t\t(nodeType ? child.localName === nodeType : child.nodeType === 3)\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tif (isSvg) {\n\t\t\tdom = document.createElementNS(\n\t\t\t\t'http://www.w3.org/2000/svg',\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType\n\t\t\t);\n\t\t} else {\n\t\t\tdom = document.createElement(\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType,\n\t\t\t\tnewProps.is && newProps\n\t\t\t);\n\t\t}\n\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the -element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value ||\n\t\t\t\t\t(nodeType === 'progress' && !i) ||\n\t\t\t\t\t// This is only for IE 11 to fix \n\t\tif (\n\t\t\ttype == 'select' &&\n\t\t\tnormalizedProps.multiple &&\n\t\t\tArray.isArray(normalizedProps.value)\n\t\t) {\n\t\t\t// forEach() always returns undefined, which we abuse here to unset the value prop.\n\t\t\tnormalizedProps.value = toChildArray(props.children).forEach(child => {\n\t\t\t\tchild.props.selected =\n\t\t\t\t\tnormalizedProps.value.indexOf(child.props.value) != -1;\n\t\t\t});\n\t\t}\n\n\t\t// Adding support for defaultValue in select tag\n\t\tif (type == 'select' && normalizedProps.defaultValue != null) {\n\t\t\tnormalizedProps.value = toChildArray(props.children).forEach(child => {\n\t\t\t\tif (normalizedProps.multiple) {\n\t\t\t\t\tchild.props.selected =\n\t\t\t\t\t\tnormalizedProps.defaultValue.indexOf(child.props.value) != -1;\n\t\t\t\t} else {\n\t\t\t\t\tchild.props.selected =\n\t\t\t\t\t\tnormalizedProps.defaultValue == child.props.value;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tvnode.props = normalizedProps;\n\n\t\tif (props.class != props.className) {\n\t\t\tclassNameDescriptor.enumerable = 'className' in props;\n\t\t\tif (props.className != null) normalizedProps.class = props.className;\n\t\t\tObject.defineProperty(normalizedProps, 'className', classNameDescriptor);\n\t\t}\n\t}\n\n\tvnode.$$typeof = REACT_ELEMENT_TYPE;\n\n\tif (oldVNodeHook) oldVNodeHook(vnode);\n};\n\n// Only needed for react-relay\nlet currentComponent;\nconst oldBeforeRender = options._render;\noptions._render = function(vnode) {\n\tif (oldBeforeRender) {\n\t\toldBeforeRender(vnode);\n\t}\n\tcurrentComponent = vnode._component;\n};\n\nconst oldDiffed = options.diffed;\n/** @type {(vnode: import('./internal').VNode)} */\noptions.diffed = function(vnode) {\n\tif (oldDiffed) {\n\t\toldDiffed(vnode);\n\t}\n\n\tconst props = vnode.props;\n\tconst dom = vnode._dom;\n\tif (\n\t\tdom != null &&\n\t\tvnode.type === 'textarea' &&\n\t\t'value' in props &&\n\t\tprops.value !== dom.value\n\t) {\n\t\tdom.value = props.value == null ? '' : props.value;\n\t}\n\n\tcurrentComponent = null;\n};\n\n// This is a very very private internal function for React it\n// is used to sort-of do runtime dependency injection. So far\n// only `react-relay` makes use of it. It uses it to read the\n// context value.\nexport const __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = {\n\tReactCurrentDispatcher: {\n\t\tcurrent: {\n\t\t\treadContext(context) {\n\t\t\t\treturn currentComponent._globalContext[context._id].props.value;\n\t\t\t}\n\t\t}\n\t}\n};\n","import {\n\tcreateElement,\n\trender as preactRender,\n\tcloneElement as preactCloneElement,\n\tcreateRef,\n\tComponent,\n\tcreateContext,\n\tFragment\n} from 'preact';\nimport {\n\tuseState,\n\tuseId,\n\tuseReducer,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseRef,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue\n} from 'preact/hooks';\nimport { PureComponent } from './PureComponent';\nimport { memo } from './memo';\nimport { forwardRef } from './forwardRef';\nimport { Children } from './Children';\nimport { Suspense, lazy } from './suspense';\nimport { SuspenseList } from './suspense-list';\nimport { createPortal } from './portals';\nimport { is } from './util';\nimport {\n\thydrate,\n\trender,\n\tREACT_ELEMENT_TYPE,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n} from './render';\n\nconst version = '17.0.2'; // trick libraries to think we are react\n\n/**\n * Legacy version of createElement.\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component constructor\n */\nfunction createFactory(type) {\n\treturn createElement.bind(null, type);\n}\n\n/**\n * Check if the passed element is a valid (p)react node.\n * @param {*} element The element to check\n * @returns {boolean}\n */\nfunction isValidElement(element) {\n\treturn !!element && element.$$typeof === REACT_ELEMENT_TYPE;\n}\n\n/**\n * Wrap `cloneElement` to abort if the passed element is not a valid element and apply\n * all vnode normalizations.\n * @param {import('./internal').VNode} element The vnode to clone\n * @param {object} props Props to add when cloning\n * @param {Array} rest Optional component children\n */\nfunction cloneElement(element) {\n\tif (!isValidElement(element)) return element;\n\treturn preactCloneElement.apply(null, arguments);\n}\n\n/**\n * Remove a component tree from the DOM, including state and event handlers.\n * @param {import('./internal').PreactElement} container\n * @returns {boolean}\n */\nfunction unmountComponentAtNode(container) {\n\tif (container._children) {\n\t\tpreactRender(null, container);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n/**\n * Get the matching DOM node for a component\n * @param {import('./internal').Component} component\n * @returns {import('./internal').PreactElement | null}\n */\nfunction findDOMNode(component) {\n\treturn (\n\t\t(component &&\n\t\t\t(component.base || (component.nodeType === 1 && component))) ||\n\t\tnull\n\t);\n}\n\n/**\n * Deprecated way to control batched rendering inside the reconciler, but we\n * already schedule in batches inside our rendering code\n * @template Arg\n * @param {(arg: Arg) => void} callback function that triggers the updated\n * @param {Arg} [arg] Optional argument that can be passed to the callback\n */\n// eslint-disable-next-line camelcase\nconst unstable_batchedUpdates = (callback, arg) => callback(arg);\n\n/**\n * In React, `flushSync` flushes the entire tree and forces a rerender. It's\n * implmented here as a no-op.\n * @template Arg\n * @template Result\n * @param {(arg: Arg) => Result} callback function that runs before the flush\n * @param {Arg} [arg] Optional argument that can be passed to the callback\n * @returns\n */\nconst flushSync = (callback, arg) => callback(arg);\n\n/**\n * Strict Mode is not implemented in Preact, so we provide a stand-in for it\n * that just renders its children without imposing any restrictions.\n */\nconst StrictMode = Fragment;\n\nexport function startTransition(cb) {\n\tcb();\n}\n\nexport function useDeferredValue(val) {\n\treturn val;\n}\n\nexport function useTransition() {\n\treturn [false, startTransition];\n}\n\n// TODO: in theory this should be done after a VNode is diffed as we want to insert\n// styles/... before it attaches\nexport const useInsertionEffect = useLayoutEffect;\n\n/**\n * This is taken from https://github.com/facebook/react/blob/main/packages/use-sync-external-store/src/useSyncExternalStoreShimClient.js#L84\n * on a high level this cuts out the warnings, ... and attempts a smaller implementation\n */\nexport function useSyncExternalStore(subscribe, getSnapshot) {\n\tconst value = getSnapshot();\n\n\tconst [{ _instance }, forceUpdate] = useState({\n\t\t_instance: { _value: value, _getSnapshot: getSnapshot }\n\t});\n\n\tuseLayoutEffect(() => {\n\t\t_instance._value = value;\n\t\t_instance._getSnapshot = getSnapshot;\n\n\t\tif (!is(_instance._value, getSnapshot())) {\n\t\t\tforceUpdate({ _instance });\n\t\t}\n\t}, [subscribe, value, getSnapshot]);\n\n\tuseEffect(() => {\n\t\tif (!is(_instance._value, _instance._getSnapshot())) {\n\t\t\tforceUpdate({ _instance });\n\t\t}\n\n\t\treturn subscribe(() => {\n\t\t\tif (!is(_instance._value, _instance._getSnapshot())) {\n\t\t\t\tforceUpdate({ _instance });\n\t\t\t}\n\t\t});\n\t}, [subscribe]);\n\n\treturn value;\n}\n\nexport * from 'preact/hooks';\nexport {\n\tversion,\n\tChildren,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n\tcreatePortal,\n\tcreateElement,\n\tcreateContext,\n\tcreateFactory,\n\tcloneElement,\n\tcreateRef,\n\tFragment,\n\tisValidElement,\n\tfindDOMNode,\n\tComponent,\n\tPureComponent,\n\tmemo,\n\tforwardRef,\n\tflushSync,\n\t// eslint-disable-next-line camelcase\n\tunstable_batchedUpdates,\n\tStrictMode,\n\tSuspense,\n\tSuspenseList,\n\tlazy,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n};\n\n// React copies the named exports to the default one.\nexport default {\n\tuseState,\n\tuseId,\n\tuseReducer,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseInsertionEffect,\n\tuseTransition,\n\tuseDeferredValue,\n\tuseSyncExternalStore,\n\tstartTransition,\n\tuseRef,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue,\n\tversion,\n\tChildren,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n\tcreatePortal,\n\tcreateElement,\n\tcreateContext,\n\tcreateFactory,\n\tcloneElement,\n\tcreateRef,\n\tFragment,\n\tisValidElement,\n\tfindDOMNode,\n\tComponent,\n\tPureComponent,\n\tmemo,\n\tforwardRef,\n\tflushSync,\n\tunstable_batchedUpdates,\n\tStrictMode,\n\tSuspense,\n\tSuspenseList,\n\tlazy,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n};\n",".sliderDialogContent {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n padding: 24px;\n font-size: 15px;\n line-height: 1.5;\n -webkit-overflow-scrolling: touch;\n}","import {translate} from \"../../util/language\";\nimport {render} from \"preact/compat\";\nimport mdui from \"mdui\";\n// @ts-ignore\nimport * as style from './sliderChooseDialog.module.css';\n\nlet tmpElement: HTMLDivElement | null = null;\n\nexport default function slideChooseDialog(title: string, current: number, min: number, max: number, step: number): Promise {\n const id = \"slideChooseDialog-\" + Math.random().toString(36).substring(2);\n const fragment =
\n
{title}
\n
\n \n
\n
\n \n \n
\n
\n if (tmpElement === null) {\n tmpElement = document.createElement(\"div\");\n } else {\n while (tmpElement.firstChild) {\n tmpElement.removeChild(tmpElement.firstChild);\n }\n }\n document.body.append(tmpElement);\n render(fragment, tmpElement);\n mdui.mutation(\"#\" + id);\n mdui.updateSliders(\"#slider-\" + id);\n return new Promise((resolve, reject) => {\n const dialog = new mdui.Dialog(\"#\" + id);\n dialog.$element.on(\"confirm.mdui.dialog\", () => {\n const value = parseInt(dialog.$element.find(\"input\").val() as string);\n dialog.close();\n if (resolve) resolve(value);\n });\n dialog.$element.on(\"close.mdui.dialog\", () => {\n if (reject) reject();\n });\n dialog.$element.on(\"cancel.mdui.dialog\", () => {\n if (reject) reject();\n });\n dialog.open();\n })\n}",".detailContainer {\n margin-left: 8px;\n margin-right: 8px;\n}\n\n.noLeftPaddingValign span[style] {\n margin-left: 0;\n flex-wrap: wrap;\n}\n\n.noLeftPaddingValign {\n flex-wrap: wrap;\n}\n\n.componentLabel {\n margin-left: 4px;\n margin-right: 12px;\n font-size: 14px;\n height: 26px;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow-wrap: normal;\n}\n\n.componentIcon {\n font-size: 20px;\n opacity: 0.54;\n}\n\n.downloadList {\n flex-wrap: wrap;\n}\n\n.downloadList > li > div {\n flex-wrap: wrap;\n}\n\n.downloadList > li > div > span {\n margin-bottom: 4px;\n transform: translateY(2px);\n}\n\n.downloadList .fileName {\n margin-right: 12px;\n}\n\n.downloadList i {\n margin-left: 0;\n}\n\n.downloadList i+span {\n height: auto;\n}\n\n.centerActionLink {\n cursor: pointer;\n text-align: center;\n display: block;\n margin-top: 4px;\n}",".loadingBox {\n margin-top: 48px;\n margin-bottom: 48px;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n flex-wrap: wrap;\n}\n\n.loadingSpin {\n margin-right: 24px;\n width: 36px;\n height: 36px;\n margin-left: 48px;\n}\n\n.loadingFailedIcon {\n margin-right: 24px;\n width: 36px;\n height: 36px;\n margin-left: 48px;\n font-size: 36px;\n opacity: 0.54;\n}","// TODO 实现加载对话框并实现其API,在合适的地方使用它\n\nimport { render } from \"preact/compat\";\n// @ts-ignore\nimport * as style from \"./loadingDialog.module.css\";\nimport mdui from \"mdui\";\nimport { translate } from \"../../util/language\";\n\nlet tmpElement: HTMLDivElement | null = null;\n\nexport default function loadingDialog(promise?: Promise | null | undefined, content?: string) {\n const id = \"slideChooseDialog-\" + Math.random().toString(36).substring(2);\n const fragment =
\n
\n \n {translate(\"loading-sth\", content ?? \"\")}\n
\n
\n \n {translate(\"loading-failed\")}\n
\n
\n if (tmpElement === null) {\n tmpElement = document.createElement(\"div\");\n } else {\n while (tmpElement.firstChild) {\n tmpElement.removeChild(tmpElement.firstChild);\n }\n }\n document.body.append(tmpElement);\n render(fragment, tmpElement);\n mdui.mutation(\"#\" + id);\n const dialog = new mdui.Dialog(\"#\" + id, {\n history: false\n });\n dialog.open();\n if (promise) {\n promise.then(() => {\n dialog.close();\n }).catch(() => {\n (document.getElementById(id).children[0] as HTMLDivElement).style.display = \"none\";\n (document.getElementById(id).children[1] as HTMLDivElement).style.display = \"flex\";\n });\n }\n}","import React, { useEffect, useState } from \"preact/compat\";\nimport { apiDelayedReturn } from \"../../util/apiUtil\";\nimport { DependenciesDataBean } from \"../../data/DependenciesDataBean\";\nimport { translate } from \"../../util/language\";\nimport loadingDialog from \"../dialog/loadingDialog\";\n\nexport function PluginDependencies(props: { pluginName: string }) {\n if (props.pluginName) {\n const [dependencies, setDependencies] = useState(null);\n useEffect(() => {\n const promise = getPluginDependencies(props.pluginName);\n loadingDialog(promise, translate(\"dependency-graph\"));\n promise.then((data) => {\n setDependencies(data);\n });\n }, [props.pluginName]);\n if (dependencies?.mermaid) {\n // 如果是手机端,将TD改为LR\n if (window.innerWidth < 768) {\n dependencies.mermaid = dependencies.mermaid.replace(/TD/g, 'LR');\n } else {\n dependencies.mermaid = dependencies.mermaid.replace(/TD/g, '');\n }\n // 等待MermaidDiagram渲染完成\n return (\n
\n {(() => {\n setTimeout(() => {\n window['renderMermaid'](\".mermaid\");\n (document.querySelector(\".mermaid\") as HTMLDivElement).style.opacity = \"1\";\n }, 50);\n return dependencies.mermaid\n })()}\n
\n );\n }\n return
{translate(\"loading\")}
\n }\n\n}\n\n// 请求插件依赖关系图\nconst getPluginDependencies = async (pluginName: string) => {\n return await apiDelayedReturn({\n url: \"/plugin/dependency-graph/\" + pluginName,\n });\n}","// noinspection HtmlUnknownAnchorTarget\n\nimport { Component, createRef, RefObject, RenderableProps } from \"preact\";\nimport RepoDataBean from \"../../data/RepoDataBean\";\nimport MDUI from \"../../util/mduiHelper\";\nimport { translate } from \"../../util/language\";\nimport { apiGetJson, apiPostRaw, getApiURL } from \"../../util/apiUtil\";\nimport { ReadmeDataBean } from \"../../data/ReadmeDataBean\";\nimport { LanguageComponent, StarComponent, TimeComponent } from \"./pluginCard\";\n// @ts-ignore\nimport * as style from \"./pluginDetail.module.css\";\nimport ReleaseDataBean from \"../../data/ReleaseDataBean\";\nimport { time2AgoString } from \"../../util/timeUtil\";\nimport { useState } from \"preact/compat\";\nimport { sizeToString } from \"../../util/stringUtil\";\nimport { PluginDependencies } from \"./pluginDependencies\";\nimport loadingDialog from \"../dialog/loadingDialog\";\n\ninterface Props {\n path: string\n}\n\ninterface State {\n repoData: RepoDataBean | null | undefined\n renderedReadme: string | null | undefined\n lastUpdateTime: Date | null | undefined\n releases: Array\n displayAllReleases: boolean,\n tab: any\n}\n\nexport default class PluginDetail extends Component {\n private readonly ref: RefObject = createRef();\n\n constructor() {\n super();\n this.setState({\n repoData: null,\n renderedReadme: null,\n lastUpdateTime: null,\n releases: [],\n displayAllReleases: false,\n tab: null\n })\n }\n\n setDisplayTab(index: number) {\n this.state.tab.show(index);\n }\n\n get pluginID(): string {\n const path = this.props.path;\n if (path.endsWith(\"/\")) {\n return path.substring(0, path.length - 1);\n }\n return path.substring(8);\n }\n\n componentDidMount() {\n this.updateInfo(false, false).catch(e => {\n console.error(e);\n MDUI.snackbar({\n message: translate(\"error-get-data\"),\n buttonText: translate(\"ok\")\n })\n });\n MDUI.mutation(\"#\" + this.ref.current.id);\n }\n\n async updateInfo(force: boolean, displayAllReleases: boolean) {\n if (!this.state) return;\n const now = new Date();\n if (this.state.lastUpdateTime && now.getTime() - this.state.lastUpdateTime.getTime() < 1000) {\n MDUI.snackbar({\n message: translate(\"update-too-frequent\"),\n buttonText: translate(\"ok\")\n });\n return;\n }\n try {\n if (!this.state.repoData || force) {\n const responsePromise = apiGetJson({\n url: \"/plugin/get/\" + this.pluginID\n });\n loadingDialog(responsePromise, translate(\"plugin-info\"))\n const repoData = await responsePromise;\n this.setState({\n repoData: repoData\n })\n }\n if (!this.state.renderedReadme || force) {\n const readmeData = await apiGetJson({\n url: \"/git/readme/\" + this.pluginID\n });\n if (\"Markdown\" === readmeData.format) {\n const responsePromise = apiPostRaw({\n url: \"/git/markdown/\" + this.pluginID,\n contentType: \"text/plain\",\n data: readmeData.content\n });\n loadingDialog(responsePromise, translate(\"plugin-description\"));\n this.setState({\n renderedReadme: await responsePromise\n })\n } else {\n this.setState({\n renderedReadme: translate(\"this-plugin-has-no-description\")\n })\n }\n }\n if (displayAllReleases || this.state.displayAllReleases) {\n if (!this.state.releases || this.state.releases.length <= 1 || force) {\n const releaseData = await apiGetJson>({\n url: \"/git/all-releases/\" + this.pluginID\n });\n this.setState({\n releases: releaseData\n })\n }\n } else {\n if (!this.state.releases || this.state.releases.length === 0 || force) {\n const releaseData = await apiGetJson({\n url: \"/git/latest-release/\" + this.pluginID\n });\n this.setState({\n releases: [releaseData]\n })\n }\n }\n } catch (e) {\n console.error(e);\n MDUI.snackbar({\n message: translate(\"error-get-data\"),\n buttonText: translate(\"ok\")\n })\n }\n }\n\n displayTab(index: number) {\n if (this.state?.tab) {\n // 忽略重复点击\n if (this.state.tab.activeIndex === index) return;\n this.state.tab.show(index);\n // 重新渲染\n this.setState({\n ...this.state,\n tab: this.state.tab\n })\n }\n }\n\n render(props: RenderableProps | undefined, state: Readonly | undefined) {\n // 渲染时检查tab\n if (!state?.tab || state.tab.activeIndex === -1) {\n const tab = new MDUI.Tab(\"#pluginDetailTab\");\n this.setState({\n tab: tab\n })\n }\n return (\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n {state?.repoData?.name ?? translate(\"loading\")}\n
\n
\n
\n \n \n \n \n
\n \n {/*TODO 修复错误的图片相对链接(将相对链接指向GitHub而非PNXHub)*/}\n {/*检查tab是否选中这个, 否则不渲染 */}\n {\n state?.tab?.activeIndex === 0 ?\n
\n
\n
\n : <>\n }\n {\n state?.tab?.activeIndex === 1 ?\n
\n
\n
{translate(\"release\")}
\n {\n this.setState({\n displayAllReleases: true\n });\n return this.updateInfo(false, true)\n }}/>\n
\n : <>\n }\n {\n state?.tab?.activeIndex === 2 ?\n
\n
\n
{translate(\"dependencies\")}
\n
\n \n
\n : <>\n }\n
\n
\n
\n );\n }\n}\n\nexport function AuthorComponent(props: { author: string }) {\n return (\n \n \n {props.author}\n \n )\n}\n\nexport function FileSizeComponent(props: { size: number }) {\n return (\n \n \n {sizeToString(props.size)}\n \n )\n}\n\nfunction copyJsonObj(obj: T): T {\n return JSON.parse(JSON.stringify(obj));\n}\n\nexport class ReleaseComponent extends Component<{ pluginID: string, releaseDataBeans: Array, loadAllCallback?: () => Promise | null | undefined }> {\n render() {\n const [state, updater] = useState({});\n console.log(\"render\", this.props)\n for (const releaseDataBean of this.props.releaseDataBeans) {\n // TODO 多次渲染Markdown结果进行缓存,避免不必要的请求\n if (releaseDataBean && releaseDataBean.body && !state['renderedReadme_' + releaseDataBean.tagName]) {\n apiPostRaw({\n url: \"/git/markdown/\" + this.props.pluginID,\n contentType: \"text/plain\",\n data: releaseDataBean.body\n }).then(value => {\n const tmp = copyJsonObj(state);\n tmp['renderedReadme_' + releaseDataBean.tagName] = value;\n updater(tmp);\n }).catch(() => {\n const tmp = copyJsonObj(state);\n tmp['renderedReadme_' + releaseDataBean.tagName] = translate(\"error-get-data\");\n updater(tmp);\n })\n }\n }\n return (\n <>\n
\n {this.props.releaseDataBeans.map((releaseDataBean, index) => {\n if (!releaseDataBean || !releaseDataBean.name) return <>\n return (\n
\n
\n
{releaseDataBean.name}
\n {time2AgoString(releaseDataBean.publishedAt)}
\n keyboard_arrow_down\n
\n
\n
\n
\n
    \n {releaseDataBean.artifacts.map((artifact) => {\n if (!artifact.name) return <>\n return (\n
  • \n
    \n {artifact.name}\n \n \n
    \n {/*TODO 优化下载按钮样式*/}\n \n \n \n
  • \n )\n })}\n
\n
\n
\n )\n })}\n {\n (() => {\n if (this.props.releaseDataBeans.filter(value => value?.name).length !== 0) {\n return (<>\n {/*TODO 使用LoadingDialog来提示用户正在加载*/}\n {/*TODO 如果一共只有一个发行版给出用户提示,不要让用户以为是加载失败*/}\n \n )\n }\n return <>\n })()\n }\n
\n
\n {\n // TODO 在合适的时候显示正在加载\n // TODO 目前的实现方式会导致在加载完成之后仍然显示正在加载,所以目前什么也不显示\n (() => {\n if ((this.props.releaseDataBeans.length === 1 && this.props.releaseDataBeans[0]\n && !this.props.releaseDataBeans[0].name)) {\n return {translate(\"no-release\")}\n }\n return <>\n })()\n }\n
\n \n )\n }\n\n componentDidMount() {\n MDUI.mutation(\"#latest-release-panel\")\n }\n}\n","import { PluginCard } from \"../../components/plugin/pluginCard\";\nimport RepoDataBean from \"../../data/RepoDataBean\";\nimport PluginDrawer from \"../../components/plugin/pluginDrawer\";\nimport NotFound from \"../_404\";\nimport { Router } from \"preact-iso\";\nimport { translate } from \"../../util/language\";\nimport { Component, JSX } from \"preact\";\nimport MDUI from \"../../util/mduiHelper\";\nimport { apiGetJson, getApiURL } from \"../../util/apiUtil\";\n// @ts-ignore\nimport * as style from \"./style.module.css\";\nimport slideChooseDialog from \"../../components/dialog/sliderChooseDialog\";\nimport PluginDetail from \"../../components/plugin/pluginDetail\";\nimport loadingDialog from \"../../components/dialog/loadingDialog\";\n\nexport default function PluginHub() {\n return (\n <>\n \n \n \n \n \n \n \n \n )\n}\n\nlet queryFrom = 0;\n\nclass Hub extends Component<{ path: string }, {\n updating: boolean,\n updatingProcess: number, // 0-100 如果 <0 说明请求出错\n errorReason: string,\n updateQuery: {\n from: number,\n size: number,\n sort: \"recommend\" | \"lastUpdate\" | \"star\",\n order: \"asc\" | \"desc\",\n keywords: string\n }\n}> {\n private repoData: RepoDataBean[] = [];\n private totalSize: number = 1;\n private pluginCards: JSX.Element[] = [];\n private lastUpdateTime: number = 0;\n\n constructor() {\n super();\n const clientWidth = document.body.clientWidth;\n let pageSize;\n if (clientWidth <= 600) {\n pageSize = 4;\n } else if (clientWidth <= 1024) {\n pageSize = 8;\n } else if (clientWidth <= 1440) {\n pageSize = 12;\n } else {\n pageSize = 16;\n }\n this.setState({\n updating: false,\n updatingProcess: 0,\n errorReason: null,\n updateQuery: {\n from: queryFrom,\n size: pageSize,\n sort: (localStorage.getItem(\"pluginHubSort\") as \"recommend\" | \"lastUpdate\" | \"star\") || \"recommend\",\n order: (localStorage.getItem(\"pluginHubOrder\") as \"asc\" | \"desc\") || \"desc\",\n keywords: null\n }\n })\n }\n\n shouldComponentUpdate(nextProps: Readonly<{ path: string }>,\n nextState: Readonly<{ updating: boolean; updatingProcess: number; errorReason: string; updateQuery: { from: number; size: number; sort: \"recommend\" | \"lastUpdate\" | \"star\"; order: \"asc\" | \"desc\"; keywords: string } }>, nextContext: any): boolean {\n if (this.state.updating || this.state.updating !== nextState.updating) {\n console.log(\"ture\")\n return true;\n }\n if (!Hub.isObjEqual(this.state.updateQuery, nextState.updateQuery)) {\n console.log(\"ture\")\n return true;\n }\n console.log(\"false\")\n return false;\n }\n\n private static isObjEqual(object1, object2) {\n const o1keys = Object.keys(object1);\n const o2keys = Object.keys(object2);\n if (o2keys.length !== o1keys.length) return false;\n for (let i = 0; i <= o1keys.length - 1; i++) {\n let key = o1keys[i];\n if (!o2keys.includes(key)) return false;\n if (object2[key] !== object1[key]) return false;\n }\n return true;\n }\n\n /**\n * @returns If we successfully send a request to update plugin list.\n */\n updatePlugins(): boolean {\n // 三秒以内不重复更新\n const currentTime = new Date().getTime();\n if (currentTime - this.lastUpdateTime < 1000) {\n MDUI.snackbar({\n message: translate(\"update-too-frequent\"),\n buttonText: translate(\"ok\")\n })\n return false;\n }\n this.lastUpdateTime = currentTime;\n // 设置正在更新\n this.setState({\n updating: true\n })\n loadingDialog(\n apiGetJson({\n url: this.processURL(),\n beforeSend: xhr => {\n xhr.upload.addEventListener(\"progress\", e => {\n this.setState({\n updatingProcess: e.loaded / e.total * 100\n })\n console.log(\"update\")\n })\n },\n error: (xhr, textStatus) => {\n this.setState({\n updating: false,\n updatingProcess: -1,\n errorReason: textStatus\n })\n }\n }).then(dataObj => {\n this.setState({\n updating: false,\n updatingProcess: 0,\n errorReason: null\n });\n if (dataObj.size === 0) {\n this.setState({\n updatingProcess: -1,\n errorReason: \"No plugins matched\"\n });\n } else {\n const dataArray = [];\n for (const each of dataObj.plugins) {\n dataArray.push(RepoDataBean.fromJSON(each));\n }\n this.repoData = dataArray;\n this.totalSize = dataObj.totalSize;\n }\n }), translate(\"plugin-list\")\n );\n return true;\n }\n\n renderPluginCards(): void {\n this.pluginCards = [];\n for (const each of this.repoData) {\n this.pluginCards.push()\n }\n }\n\n processURL(): string {\n let root = getApiURL();\n const queryData = this.state.updateQuery;\n if (queryData.keywords) {\n root += \"/plugin/search\"\n if (queryData.order) {\n root += \"/\" + queryData.order\n }\n root += \"?keywords\" + queryData.keywords\n if (queryData.from) {\n root += \"&from=\" + queryData.from\n }\n if (queryData.size) {\n root += \"&size=\" + queryData.size\n }\n } else {\n root += \"/plugin/list\"\n if (queryData.sort) {\n root += \"/\" + queryData.sort\n if (queryData.order) {\n root += \"/\" + queryData.order\n }\n } else {\n if (queryData.order) {\n root += \"/recommend/\" + queryData.order\n }\n }\n if (queryData.from && queryData.size) {\n root += \"?from=\" + queryData.from + \"&size=\" + queryData.size\n } else if (queryData.from) {\n root += \"?from=\" + queryData.from\n } else if (queryData.size) {\n root += \"?size=\" + queryData.size\n }\n }\n return root;\n }\n\n turnPageDelta(deltaPage: number): void {\n const queryData = this.state.updateQuery;\n const previousFrom = queryData.from;\n queryData.from += deltaPage * queryData.size;\n if (queryData.from < 0) {\n queryData.from = 0;\n }\n if (queryData.from + 1 > this.totalSize) {\n queryData.from = previousFrom;\n }\n if (queryData.from !== previousFrom) {\n if (!this.updatePlugins()) {\n queryData.from = previousFrom;\n }\n }\n }\n\n get currentPage(): number {\n return Math.floor(this.state.updateQuery.from / this.state.updateQuery.size) + 1\n }\n\n get maxPage(): number {\n return Math.ceil(this.totalSize / this.state.updateQuery.size)\n }\n\n render() {\n this.renderPluginCards();\n return (\n <>\n
\n
\n

{translate(\"plugin-hub\")}

\n
\n
\n
\n \n
\n {translate(\"order\")}\n
\n {/*TODO 在切换推荐方式后立即更新插件列表*/}\n \n {/*TODO 在切换排序方式后立即更新插件列表*/}\n \n
\n
\n
\n {this.pluginCards}\n
\n
\n
\n {/*Page Up*/}\n \n {/*TODO 这里翻页的翻译漏掉了*/}\n \n {/*Page Down*/}\n \n
\n
\n
\n \n )\n }\n\n componentDidUpdate(previousProps: Readonly<{ path: string }>,\n previousState: Readonly<{ updating: boolean; updatingProcess: number; errorReason: string; updateQuery: { from: number; size: number; sort: \"recommend\" | \"lastUpdate\" | \"star\"; order: \"asc\" | \"desc\"; keywords: string } }>, snapshot: any) {\n MDUI.mutation(\".\" + style.pluginButtonBar);\n }\n\n componentWillMount() {\n const queryData = this.state.updateQuery;\n if (queryData) {\n queryData.from = queryFrom;\n this.setState({\n updateQuery: queryData\n })\n }\n }\n\n componentDidMount() {\n if (this.repoData.length === 0) {\n this.updatePlugins();\n }\n MDUI.mutation(\".\" + style.pluginButtonBar);\n }\n\n componentWillUnmount() {\n queryFrom = this.state.updateQuery.from;\n }\n}","import {LocationProvider, Router, Route, ErrorBoundary, hydrate} from 'preact-iso';\nimport Home from './pages/home';\nimport NotFound from './pages/_404';\nimport About from \"./pages/about\";\nimport HeadBar from './components/headbar';\nimport PluginHub from \"./pages/plugin\";\nimport {initDefaultTheme} from \"./util/theme\";\n\nexport function App() {\n initDefaultTheme();\n return (\n \n \n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n );\n}\n\nhydrate();\n"],"names":["$3b3f088efadd8687$export$6503ec6e8aabbaf","$3b3f088efadd8687$export$f7ad0328861e2f03","$3b3f088efadd8687$var$mapping","pairs","keys","Object","i","length","id","resolved","Error","slice","options","vnodeId","rerenderQueue","prevDebounce","defer","EMPTY_OBJ","EMPTY_ARR","IS_NON_DIMENSIONAL","assign","obj","props","removeNode","node","parentNode","removeChild","createElement","type","children","key","ref","normalizedProps","arguments","call","defaultProps","createVNode","original","vnode","__k","__","__b","__e","__d","__c","__h","constructor","__v","createRef","current","Fragment","Component","context","this","getDomSibling","childIndex","indexOf","sibling","updateParentDomPointers","child","base","enqueueRender","c","push","process","__r","debounceRendering","renderQueueLength","component","commitQueue","oldVNode","oldDom","parentDom","sort","a","b","shift","diff","ownerSVGElement","commitRoot","diffChildren","renderResult","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","j","childVNode","newDom","firstChildDom","refs","oldChildren","oldChildrenLength","Array","isArray","reorderChildren","placeChild","getLastDom","nextSibling","unmount","applyRef","tmp","toChildArray","out","some","nextDom","sibDom","outer","appendChild","insertBefore","lastDom","setStyle","style","value","setProperty","test","dom","name","oldValue","useCapture","o","cssText","replace","toLowerCase","l","addEventListener","eventProxyCapture","eventProxy","removeEventListener","e","removeAttribute","setAttribute","event","newVNode","isNew","oldProps","oldState","snapshot","clearProcessingException","newProps","provider","componentContext","renderHook","count","newType","contextType","__E","prototype","render","doRender","sub","state","__n","_sb","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","forEach","componentWillUpdate","componentDidUpdate","__P","getChildContext","getSnapshotBeforeUpdate","oldHtml","newHtml","nodeType","localName","document","createTextNode","createElementNS","is","data","childNodes","dangerouslySetInnerHTML","attributes","__html","innerHTML","diffProps","hydrate","checked","diffElementNodes","diffed","root","cb","parentVNode","skipRemove","r","componentWillUnmount","replaceNode","firstChild","cloneElement","createContext","defaultValue","contextId","Consumer","contextValue","Provider","subs","ctx","_props","old","splice","error","errorInfo","ctor","handled","getDerivedStateFromError","setState","componentDidCatch","update","callback","s","forceUpdate","Promise","then","bind","resolve","setTimeout","module","exports","parcelRequire","getBundleURL","$f68Qe","bundle","reject","existingScripts","getElementsByTagName","concat","script","src","preloadLink","href","rel","as","head","async","onerror","TypeError","message","onload","remove","$afde464b7517ec1a$var$cachedBundles","$afde464b7517ec1a$var$cachedPreloads","$afde464b7517ec1a$var$cachedPrefetches","loader","cache","$afde464b7517ec1a$var$getCache","apply","catch","$f2e396bc3c0007ab$export$bdfd709ae4826697","$f2e396bc3c0007ab$var$bundleURL","$f2e396bc3c0007ab$var$getBaseURL","url","err","matches","stack","match","$f2e396bc3c0007ab$var$getBundleURL","register","JSON","parse","$aX3Yb","isStaticChildren","__source","__self","currentIndex","currentComponent","previousComponent","prevRaf","currentHook","afterPaintEffects","EMPTY","oldBeforeDiff","oldBeforeRender","oldAfterDiff","oldCommit","oldBeforeUnmount","getHookState","index","hooks","__H","__V","useState","initialState","useReducer","invokeOrReturn","reducer","init","hookState","_reducer","action","currentValue","__N","nextValue","_hasScuFromHooks","prevScu","p","stateHooks","filter","x","every","shouldUpdate","hookItem","useEffect","args","argsChanged","_pendingArgs","useLayoutEffect","useRef","initialValue","useMemo","factory","useContext","flushAfterPaintEffects","invokeCleanup","invokeEffect","requestAnimationFrame","afterNextFrame","hasErrored","HAS_RAF","raf","done","clearTimeout","timeout","cancelAnimationFrame","hook","comp","cleanup","oldArgs","newArgs","arg","f","$43d68ffe21c1874b$var$push","$43d68ffe21c1874b$var$UPDATE","undefined","ctrlKey","metaKey","altKey","shiftKey","button","link","target","closest","origin","location","getAttribute","preventDefault","pathname","search","history","pushState","replaceState","$43d68ffe21c1874b$export$78e3044358792147","route","split","Boolean","val","rest","Math","max","m","param","flag","map","decodeURIComponent","join","params","$43d68ffe21c1874b$export$5af065edda80e75c","$c4e2eebd578a1d6d$export$13e3392192263954","wasPush","$c4e2eebd578a1d6d$export$1538c33de8887b59","u","URL","path","query","fromEntries","searchParams","$c4e2eebd578a1d6d$export$e5c5a5f917a5871c","h","$43d68ffe21c1874b$var$RESOLVED","$43d68ffe21c1874b$export$55185c17a0fcbe46","$43d68ffe21c1874b$export$45d76561a5302f2b","$c4e2eebd578a1d6d$export$fae74005e78b1a27","$43d68ffe21c1874b$var$RouteContext","isLoading","$c4e2eebd578a1d6d$export$b8f5890fc79d6aca","prevRoute","cur","prev","pendingBase","hasEverCommitted","didSuspend","d","reverse","default","onLoadStart","currentDom","scrollTo","onLoadEnd","onRouteChange","$43d68ffe21c1874b$var$RenderRef","$43d68ffe21c1874b$export$e7b0ac011bb776c6","$d8c17993b5d9532b$var$oldCatchError","$d8c17993b5d9532b$export$e926676385687eaf","$d8c17993b5d9532b$var$childDidSuspend","onError","v","$8bdd1ba010af2d9d$var$initialized","$9022713400557e5c$exports","$e5c74a858184e611$export$2e25566eb172a258","str","lines","sb","line","trimEnd","$f2685acb92748138$exports","$7febace15b5efb52$var$languageId","window","localStorage","getItem","navigator","language","$7febace15b5efb52$var$getLanguageMap","languageId","$parcel$interopDefault","$7febace15b5efb52$var$translators","startsWith","translate","substring","innerWidth","$7febace15b5efb52$export$d73ee8ef04f5226a","trim","translator","$7967092a0597982e$export$2e2bcd8739ae039","$8f6515f18f7c8a65$export$34b9dba7ce09269b","className","$546d0666503ba769$export$2e2bcd8739ae039","class","$074e976c73539248$export$2e2bcd8739ae039","$30bc7d8f34004474$export$2e2bcd8739ae039","defineProperty","enumerable","configurable","writable","$61bf650173dc2a2d$export$f65d88c3974284dc","$c0f47848cfcbc1cf$export$2e2bcd8739ae039","$7c33bc9cb41bee84$exports","mdui","$51c6f484b1ef2407$export$6856b73e98185bff","noNotice","clazz","body","classList","contains","add","snackbar","buttonText","setItem","$51c6f484b1ef2407$export$201eaf2f9c1b0b4c","$75c898aae76d28a1$export$2e2bcd8739ae039","renderButtonFragments","width","toolbarRef","clientWidth","eachEle","itemCount","min","pageInfos","oldItemCount","floor","buttonFragments","listMenuFragments","infoEntry","icon","needsMutation","resizeUpdate","windowSizeListener","onClick","mutation","super","$c0b530cb61991704$export$5d1a719b881044d9","$c0b530cb61991704$export$aa3e815946b80764","$c0b530cb61991704$export$28f1d87b2c222810","$c0b530cb61991704$export$54df52f2b9f10b68","$c0b530cb61991704$export$33962d11e6aa1fef","$c0b530cb61991704$export$c89915e2373763c7","$c0b530cb61991704$export$3d215540e7cc85f5","$c0b530cb61991704$export$57cb25781891beab","$cd47de3b26e605d7$export$d9a9b8215fab3078","hostname","$cd47de3b26e605d7$var$processCommonAjaxOptions","apiURL","$cd47de3b26e605d7$export$415b389fbad9f621","method","$","ajax","$cd47de3b26e605d7$export$3457f041ce616cc2","$5d790364564baf2b$export$31b620d6bd883150","time","Date","getTime","seconds","minutes","hours","days","months","years","$152c96b174f9c5d5$exports","$b74a2cd73570c386$export$62a9e2a05a54be64","repo","openDetail","alt","iconDownloadID","owner","description","$b74a2cd73570c386$export$b8f95bae3eec617","mainLanguage","$b74a2cd73570c386$export$2ce247c189e46443","star","$b74a2cd73570c386$export$ef6ddd4748dac183","lastUpdateAt","$b74a2cd73570c386$var$CardMenuComponent","backgroundColor","openMenu","open","$e315078aa2897b73$export$2e2bcd8739ae039","static","json","bean","topics","String","pluginName","mainClass","dependencies","softDependencies","banned","qualityScore","editorRecommendScore","lastFullIndexTime","jsonString","fromJSON","$709d170a8477500a$export$4be65e66cfa2648a","reg","RegExp","cookie","$709d170a8477500a$export$110700823644f4a6","expires","now","toUTCString","encodeURIComponent","$012499c0b5007000$export$2e2bcd8739ae039","paddingLeft","drawer","Drawer","swipe","mduiDrawer","endsWith","$element","on","close","$47943eea9b7ab1a5$export$1d68b40ac09cb092","shallowDiffers","PureComponent","isPureReactComponent","oldDiffHook","__f","Symbol","for","mapFn","fn","oldCatchError","oldUnmount","detachedClone","detachedParent","effect","removeOriginal","originalParent","Suspense","__u","_suspenders","suspended","__a","SuspenseList","_next","_map","__R","promise","suspendingVNode","suspendingComponent","onResolved","onSuspensionComplete","suspendedVNode","pop","wasHydrating","detachedComponent","__O","fallback","list","delete","revealOrder","size","delegated","get","unsuspend","wrappedUnsuspend","Map","set","_this","REACT_ELEMENT_TYPE","CAMEL_PROPS","IS_DOM","onChangeInputType","parent","textContent","preactRender","isReactComponent","oldEventHook","empty","isPropagationStopped","cancelBubble","isDefaultPrevented","defaultPrevented","persist","nativeEvent","classNameDescriptor","oldVNodeHook","nonCustomElement","multiple","selected","$$typeof","oldDiffed","$bb541618fb234551$export$79956d59571aed6d","$89d4d37e1d076ee1$var$tmpElement","$89d4d37e1d076ee1$export$2e2bcd8739ae039","title","step","random","toString","fragment","append","$c0d9fc3ab6fa44d9$export$b3890eb0ae9dca99","updateSliders","dialog","Dialog","parseInt","find","$34fd1adbc5757b04$export$cbd8ee103f8ca93c","$34fd1adbc5757b04$export$6e4d26bc0085642f","$9b86879c0317c148$export$3bcf18f7e1b94062","$9b86879c0317c148$export$8ed145b1251a6e01","$9b86879c0317c148$export$ef356052e476684e","$8af831bb6c83b920$var$tmpElement","$8af831bb6c83b920$export$2e2bcd8739ae039","content","display","getElementById","$4c0a94e4529888a1$export$94e59c7802483e92","setDependencies","$c4e2eebd578a1d6d$export$60241385465d0a34","$c4e2eebd578a1d6d$export$6d9c69b0de29b591","$4c0a94e4529888a1$var$getPluginDependencies","mermaid","opacity","querySelector","uuid","interval","setInterval","clearInterval","$3330c1903585f73c$export$2e2bcd8739ae039","setDisplayTab","tab","show","pluginID","updateInfo","console","force","displayAllReleases","lastUpdateTime","repoData","responsePromise","renderedReadme","readmeData","format","contentType","releases","releaseData","displayTab","activeIndex","Tab","back","$3330c1903585f73c$export$1db4df78e9460a1a","author","$3330c1903585f73c$export$a01530fb84d2ad23","releaseDataBeans","loadAllCallback","$3330c1903585f73c$export$cb1af5ffd11ea6ae","toFixed","$3330c1903585f73c$var$copyJsonObj","stringify","updater","log","releaseDataBean","tagName","publishedAt","artifacts","artifact","createAt","sizeInBytes","downloadId","download","$4b1e2f161f2d3089$export$2e2bcd8739ae039","$4b1e2f161f2d3089$var$Hub","$4b1e2f161f2d3089$var$queryFrom","nextProps","nextState","nextContext","updating","isObjEqual","updateQuery","object1","object2","o1keys","o2keys","includes","updatePlugins","currentTime","processURL","beforeSend","xhr","upload","updatingProcess","loaded","total","textStatus","errorReason","dataObj","dataArray","each","plugins","totalSize","renderPluginCards","pluginCards","queryData","keywords","order","from","turnPageDelta","deltaPage","previousFrom","currentPage","maxPage","ceil","onChange","temp","page","previousProps","previousState","pageSize","$3124bb4e5e14f723$export$86fbec116b87613f","jsx","isodata"],"version":3,"file":"index.8e733966.js.map"}