@fapost/jig-ui 0.1.0-next.5 → 0.1.0-next.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/args.js +4 -2
- package/dist/http/access.js +46 -0
- package/dist/http/app.js +17 -31
- package/dist/main.js +64 -13
- package/dist/open-browser.js +47 -0
- package/dist/registry/config-dir.js +10 -0
- package/dist/registry/instance.js +50 -0
- package/dist/web/assets/index-DG1hSWcJ.js +1 -0
- package/dist/web/index.html +12 -0
- package/package.json +11 -5
package/dist/args.js
CHANGED
|
@@ -10,6 +10,7 @@ export function parseCliArgs(argv) {
|
|
|
10
10
|
allowPositionals: false,
|
|
11
11
|
options: {
|
|
12
12
|
port: { type: 'string' },
|
|
13
|
+
'no-open': { type: 'boolean' },
|
|
13
14
|
help: { type: 'boolean', short: 'h' },
|
|
14
15
|
version: { type: 'boolean', short: 'v' },
|
|
15
16
|
},
|
|
@@ -22,11 +23,12 @@ export function parseCliArgs(argv) {
|
|
|
22
23
|
return { kind: 'help' };
|
|
23
24
|
if (values.version)
|
|
24
25
|
return { kind: 'version' };
|
|
26
|
+
const open = !values['no-open'];
|
|
25
27
|
if (values.port === undefined)
|
|
26
|
-
return { kind: 'run', port: DEFAULT_PORT };
|
|
28
|
+
return { kind: 'run', port: DEFAULT_PORT, open };
|
|
27
29
|
const port = /^\d+$/.test(values.port) ? Number(values.port) : Number.NaN;
|
|
28
30
|
if (!Number.isInteger(port) || port < 1 || port > 65535) {
|
|
29
31
|
return { kind: 'error', message: `Invalid --port value: ${values.port}. Use a number from 1 to 65535.` };
|
|
30
32
|
}
|
|
31
|
-
return { kind: 'run', port };
|
|
33
|
+
return { kind: 'run', port, open };
|
|
32
34
|
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { timingSafeEqual } from 'node:crypto';
|
|
2
|
+
import { getCookie, setCookie } from 'hono/cookie';
|
|
3
|
+
import { cookieName } from '../registry/instance.js';
|
|
4
|
+
/** Refuses requests whose `Host` or `Origin` is not this server's own loopback address. */
|
|
5
|
+
export function localOnly(port) {
|
|
6
|
+
const hosts = new Set([`127.0.0.1:${port}`, `localhost:${port}`]);
|
|
7
|
+
const origins = new Set([`http://127.0.0.1:${port}`, `http://localhost:${port}`]);
|
|
8
|
+
return async (c, next) => {
|
|
9
|
+
const host = c.req.header('host');
|
|
10
|
+
const origin = c.req.header('origin');
|
|
11
|
+
if (host === undefined || !hosts.has(host.toLowerCase())) {
|
|
12
|
+
return c.text('Forbidden', 403);
|
|
13
|
+
}
|
|
14
|
+
if (origin !== undefined && !origins.has(origin.toLowerCase())) {
|
|
15
|
+
return c.text('Forbidden', 403);
|
|
16
|
+
}
|
|
17
|
+
await next();
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function sameSecret(given, token) {
|
|
21
|
+
if (given === undefined)
|
|
22
|
+
return false;
|
|
23
|
+
const a = Buffer.from(given);
|
|
24
|
+
const b = Buffer.from(token);
|
|
25
|
+
return a.length === b.length && timingSafeEqual(a, b);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The per-start token: `/?token=` swaps it for a cookie and redirects to `/`, and every `/api/*`
|
|
29
|
+
* request without that cookie is refused. Static files need no token; they carry no data.
|
|
30
|
+
*/
|
|
31
|
+
export function tokenAccess({ port, token }) {
|
|
32
|
+
const cookie = cookieName(port);
|
|
33
|
+
return async (c, next) => {
|
|
34
|
+
const path = c.req.path;
|
|
35
|
+
if (path === '/' && c.req.query('token') !== undefined) {
|
|
36
|
+
if (!sameSecret(c.req.query('token'), token))
|
|
37
|
+
return c.text('Forbidden', 403);
|
|
38
|
+
setCookie(c, cookie, token, { httpOnly: true, sameSite: 'Strict', path: '/' });
|
|
39
|
+
return c.redirect('/', 302);
|
|
40
|
+
}
|
|
41
|
+
if ((path === '/api' || path.startsWith('/api/')) && !sameSecret(getCookie(c, cookie), token)) {
|
|
42
|
+
return c.json({ error: 'unauthorized' }, 401);
|
|
43
|
+
}
|
|
44
|
+
await next();
|
|
45
|
+
};
|
|
46
|
+
}
|
package/dist/http/app.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
import { readFileSync } from 'node:fs';
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { serveStatic } from '@hono/node-server/serve-static';
|
|
2
5
|
import { Hono } from 'hono';
|
|
6
|
+
import { localOnly, tokenAccess } from './access.js';
|
|
3
7
|
/**
|
|
4
8
|
* Reads the version from the package's own package.json. The relative path is the same from
|
|
5
9
|
* `server/http/` (tests) and `dist/http/` (published), as both sit two levels below the root.
|
|
@@ -9,37 +13,19 @@ export function readPackageVersion() {
|
|
|
9
13
|
const pkg = JSON.parse(readFileSync(url, 'utf8'));
|
|
10
14
|
return pkg.version;
|
|
11
15
|
}
|
|
12
|
-
/**
|
|
13
|
-
export
|
|
14
|
-
|
|
15
|
-
const origins = new Set([`http://127.0.0.1:${port}`, `http://localhost:${port}`]);
|
|
16
|
-
return async (c, next) => {
|
|
17
|
-
const host = c.req.header('host');
|
|
18
|
-
const origin = c.req.header('origin');
|
|
19
|
-
if (host === undefined || !hosts.has(host.toLowerCase())) {
|
|
20
|
-
return c.text('Forbidden', 403);
|
|
21
|
-
}
|
|
22
|
-
if (origin !== undefined && !origins.has(origin.toLowerCase())) {
|
|
23
|
-
return c.text('Forbidden', 403);
|
|
24
|
-
}
|
|
25
|
-
await next();
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
export function createApp({ port, version = readPackageVersion() }) {
|
|
16
|
+
/** The built page: `dist/web`, next to `dist/http` where this file runs when published. */
|
|
17
|
+
export const DEFAULT_WEB_ROOT = fileURLToPath(new URL('../web', import.meta.url));
|
|
18
|
+
export function createApp({ port, token, version = readPackageVersion(), webRoot = DEFAULT_WEB_ROOT }) {
|
|
29
19
|
const app = new Hono();
|
|
30
20
|
app.use(localOnly(port));
|
|
31
|
-
app.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
<p>Version ${version}</p>
|
|
41
|
-
</body>
|
|
42
|
-
</html>
|
|
43
|
-
`));
|
|
21
|
+
app.use(tokenAccess({ port, token }));
|
|
22
|
+
app.get('/api/instance', (c) => c.json({ version }));
|
|
23
|
+
app.all('/api/*', (c) => c.json({ error: 'not found' }, 404));
|
|
24
|
+
if (existsSync(join(webRoot, 'index.html'))) {
|
|
25
|
+
app.use('/*', serveStatic({ root: webRoot }));
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
app.get('/', (c) => c.text('The page is not built. Run npm run build.', 503));
|
|
29
|
+
}
|
|
44
30
|
return app;
|
|
45
31
|
}
|
package/dist/main.js
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
|
+
import { randomBytes } from 'node:crypto';
|
|
2
|
+
import { homedir } from 'node:os';
|
|
3
|
+
import { setTimeout as delay } from 'node:timers/promises';
|
|
1
4
|
import { serve } from '@hono/node-server';
|
|
2
|
-
import { parseCliArgs } from './args.js';
|
|
5
|
+
import { DEFAULT_PORT, parseCliArgs } from './args.js';
|
|
3
6
|
import { createApp, readPackageVersion } from './http/app.js';
|
|
7
|
+
import { openBrowser } from './open-browser.js';
|
|
8
|
+
import { configDir } from './registry/config-dir.js';
|
|
9
|
+
import { probeInstance, readInstance, removeInstance, writeInstance } from './registry/instance.js';
|
|
4
10
|
const HOST = '127.0.0.1';
|
|
5
11
|
const HELP = `Usage: jig-ui [options]
|
|
6
12
|
|
|
7
13
|
Options:
|
|
8
14
|
--port <n> Port to listen on (default 4870)
|
|
15
|
+
--no-open Print the link instead of opening the browser
|
|
9
16
|
-v, --version Print the version and exit
|
|
10
17
|
-h, --help Print this help and exit
|
|
11
18
|
`;
|
|
@@ -13,7 +20,28 @@ function fail(message) {
|
|
|
13
20
|
console.error(message);
|
|
14
21
|
process.exit(1);
|
|
15
22
|
}
|
|
16
|
-
|
|
23
|
+
const link = ({ port, token }) => `http://${HOST}:${port}/?token=${token}`;
|
|
24
|
+
async function show(info, open, dir) {
|
|
25
|
+
console.log(`Open it at ${link(info)}`);
|
|
26
|
+
if (open && !(await openBrowser(link(info), dir)))
|
|
27
|
+
console.log('Could not open a browser; open the link above.');
|
|
28
|
+
}
|
|
29
|
+
/** The instance recorded in the config directory, if it still answers with its token. */
|
|
30
|
+
async function runningInstance(dir) {
|
|
31
|
+
const info = await readInstance(dir);
|
|
32
|
+
return info && (await probeInstance(info)) ? info : undefined;
|
|
33
|
+
}
|
|
34
|
+
/** After losing the port: the winner writes its file only once it listens, so give it a moment. */
|
|
35
|
+
async function winnerOfRace(dir) {
|
|
36
|
+
for (let attempt = 0; attempt < 5; attempt++) {
|
|
37
|
+
const winner = await runningInstance(dir);
|
|
38
|
+
if (winner)
|
|
39
|
+
return winner;
|
|
40
|
+
await delay(200);
|
|
41
|
+
}
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
export async function main() {
|
|
17
45
|
const command = parseCliArgs(process.argv.slice(2));
|
|
18
46
|
if (command.kind === 'error')
|
|
19
47
|
fail(command.message);
|
|
@@ -25,22 +53,45 @@ export function main() {
|
|
|
25
53
|
console.log(readPackageVersion());
|
|
26
54
|
return;
|
|
27
55
|
}
|
|
28
|
-
const { port } = command;
|
|
56
|
+
const { port, open } = command;
|
|
57
|
+
const dir = configDir(process.env, process.platform, homedir());
|
|
58
|
+
const running = await runningInstance(dir);
|
|
59
|
+
if (running) {
|
|
60
|
+
console.log(`Jig UI is already running on port ${running.port}.`);
|
|
61
|
+
// ponytail: a --port equal to the default is indistinguishable from no flag; no note then.
|
|
62
|
+
if (port !== running.port && port !== DEFAULT_PORT)
|
|
63
|
+
console.log(`--port ${port} is ignored.`);
|
|
64
|
+
await show(running, open, dir);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
29
67
|
const version = readPackageVersion();
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
68
|
+
const token = randomBytes(32).toString('base64url');
|
|
69
|
+
const server = serve({ fetch: createApp({ port, token, version }).fetch, hostname: HOST, port }, () => {
|
|
70
|
+
void (async () => {
|
|
71
|
+
await writeInstance(dir, { port, token, pid: process.pid, version });
|
|
72
|
+
console.log(`Jig UI ${version} is running at http://${HOST}:${port}/`);
|
|
73
|
+
await show({ port, token }, open, dir);
|
|
74
|
+
console.log('Press Ctrl+C to stop.');
|
|
75
|
+
})().catch((error) => fail(`Could not start: ${error instanceof Error ? error.message : String(error)}`));
|
|
33
76
|
});
|
|
34
77
|
server.on('error', (error) => {
|
|
35
|
-
if (error.code
|
|
36
|
-
fail(`
|
|
37
|
-
|
|
38
|
-
|
|
78
|
+
if (error.code !== 'EADDRINUSE')
|
|
79
|
+
fail(`Could not start the server: ${error.message}`);
|
|
80
|
+
// Two starts at once: the one that lost the port opens the one that won.
|
|
81
|
+
void winnerOfRace(dir).then(async (winner) => {
|
|
82
|
+
if (!winner)
|
|
83
|
+
fail(`Port ${port} is already in use. Stop the other process or choose another port with --port.`);
|
|
84
|
+
console.log(`Jig UI is already running on port ${winner.port}.`);
|
|
85
|
+
await show(winner, open, dir);
|
|
86
|
+
process.exit(0);
|
|
87
|
+
});
|
|
39
88
|
});
|
|
40
89
|
const shutdown = () => {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
server
|
|
90
|
+
void removeInstance(dir, token).finally(() => {
|
|
91
|
+
server.close(() => process.exit(0));
|
|
92
|
+
if ('closeAllConnections' in server)
|
|
93
|
+
server.closeAllConnections();
|
|
94
|
+
});
|
|
44
95
|
};
|
|
45
96
|
process.on('SIGINT', shutdown);
|
|
46
97
|
process.on('SIGTERM', shutdown);
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { execFile } from 'node:child_process';
|
|
2
|
+
import { OPEN_FILE, writeConfigFile } from './registry/instance.js';
|
|
3
|
+
/** The system command that opens a file in the default browser. */
|
|
4
|
+
export function browserCommand(platform, file) {
|
|
5
|
+
if (platform === 'darwin')
|
|
6
|
+
return { cmd: 'open', args: [file] };
|
|
7
|
+
if (platform === 'win32')
|
|
8
|
+
return { cmd: 'explorer.exe', args: [file] };
|
|
9
|
+
return { cmd: 'xdg-open', args: [file] };
|
|
10
|
+
}
|
|
11
|
+
/** A page that sends the browser on to `url`; the token travels in the file, not in a process's arguments. */
|
|
12
|
+
export function redirectPage(url) {
|
|
13
|
+
const json = JSON.stringify(url).replace(/</g, '\\u003c');
|
|
14
|
+
const attr = url.replace(/&/g, '&').replace(/"/g, '"');
|
|
15
|
+
return `<!doctype html>
|
|
16
|
+
<html lang="en">
|
|
17
|
+
<head>
|
|
18
|
+
<meta charset="utf-8" />
|
|
19
|
+
<meta http-equiv="refresh" content="0; url=${attr}" />
|
|
20
|
+
<title>Jig UI</title>
|
|
21
|
+
<script>location.replace(${json});</script>
|
|
22
|
+
</head>
|
|
23
|
+
<body><a href="${attr}">Open Jig UI</a></body>
|
|
24
|
+
</html>
|
|
25
|
+
`;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Opens `url` in the default browser through a redirect file, because `ps` shows every user the
|
|
29
|
+
* arguments of a process, and the url carries the token. The file lives in the config directory
|
|
30
|
+
* and is not removed here: a second start exits at once, maybe before the browser read it; the
|
|
31
|
+
* instance removes it when it stops. Resolves false when no browser could be started; the caller
|
|
32
|
+
* prints the link instead.
|
|
33
|
+
*/
|
|
34
|
+
export async function openBrowser(url, dir, platform = process.platform) {
|
|
35
|
+
let file;
|
|
36
|
+
try {
|
|
37
|
+
file = await writeConfigFile(dir, OPEN_FILE, redirectPage(url));
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
const { cmd, args } = browserCommand(platform, file);
|
|
43
|
+
return new Promise((resolve) => {
|
|
44
|
+
// explorer.exe exits with 1 even when it opened the file, so on Windows only a spawn error counts.
|
|
45
|
+
execFile(cmd, args, (error) => resolve(!error || (platform === 'win32' && typeof error.code === 'number')));
|
|
46
|
+
});
|
|
47
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { posix, win32 } from 'node:path';
|
|
2
|
+
/**
|
|
3
|
+
* Jig UI's config directory, following each system's convention: `%APPDATA%\jig-ui` on Windows,
|
|
4
|
+
* else `$XDG_CONFIG_HOME/jig-ui`, else `~/.config/jig-ui`. Pure: the caller passes the environment.
|
|
5
|
+
*/
|
|
6
|
+
export function configDir(env, platform, home) {
|
|
7
|
+
if (platform === 'win32')
|
|
8
|
+
return win32.join(env.APPDATA || win32.join(home, 'AppData', 'Roaming'), 'jig-ui');
|
|
9
|
+
return posix.join(env.XDG_CONFIG_HOME || posix.join(home, '.config'), 'jig-ui');
|
|
10
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { randomBytes } from 'node:crypto';
|
|
2
|
+
import { mkdir, readFile, rename, rm, writeFile } from 'node:fs/promises';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
const FILE = 'instance.json';
|
|
5
|
+
/** The page that sends the browser on to the instance; it carries the token, so it lives here too. */
|
|
6
|
+
export const OPEN_FILE = 'open.html';
|
|
7
|
+
/** The cookie that carries the token; named by port, as browsers do not separate cookies by port. */
|
|
8
|
+
export const cookieName = (port) => `jig-ui-${port}`;
|
|
9
|
+
export async function readInstance(dir) {
|
|
10
|
+
try {
|
|
11
|
+
const info = JSON.parse(await readFile(join(dir, FILE), 'utf8'));
|
|
12
|
+
if (typeof info.port !== 'number' || typeof info.token !== 'string')
|
|
13
|
+
return undefined;
|
|
14
|
+
return info;
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/** Writes a file of the config directory atomically (temp file, then rename), readable only by the user. */
|
|
21
|
+
export async function writeConfigFile(dir, name, content) {
|
|
22
|
+
await mkdir(dir, { recursive: true, mode: 0o700 });
|
|
23
|
+
const temp = join(dir, `${name}.${randomBytes(6).toString('hex')}.tmp`);
|
|
24
|
+
await writeFile(temp, content, { mode: 0o600 });
|
|
25
|
+
await rename(temp, join(dir, name));
|
|
26
|
+
return join(dir, name);
|
|
27
|
+
}
|
|
28
|
+
export async function writeInstance(dir, info) {
|
|
29
|
+
await writeConfigFile(dir, FILE, `${JSON.stringify(info, null, 2)}\n`);
|
|
30
|
+
}
|
|
31
|
+
/** Removes the files only while they are still ours: an instance started after us may have replaced them. */
|
|
32
|
+
export async function removeInstance(dir, token) {
|
|
33
|
+
if ((await readInstance(dir))?.token !== token)
|
|
34
|
+
return;
|
|
35
|
+
await rm(join(dir, OPEN_FILE), { force: true });
|
|
36
|
+
await rm(join(dir, FILE), { force: true });
|
|
37
|
+
}
|
|
38
|
+
/** True when an instance answers on its port with its token; a crash leaves the file behind. */
|
|
39
|
+
export async function probeInstance(info, timeoutMs = 1000) {
|
|
40
|
+
try {
|
|
41
|
+
const res = await fetch(`http://127.0.0.1:${info.port}/api/instance`, {
|
|
42
|
+
headers: { cookie: `${cookieName(info.port)}=${info.token}` },
|
|
43
|
+
signal: AbortSignal.timeout(timeoutMs),
|
|
44
|
+
});
|
|
45
|
+
return res.ok;
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();function e(e){let t=Object.create(null);for(let n of e.split(`,`))t[n]=1;return e=>e in t}var t={},n=[],r=()=>{},i=()=>!1,a=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),o=e=>e.startsWith(`onUpdate:`),s=Object.assign,c=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},l=Object.prototype.hasOwnProperty,u=(e,t)=>l.call(e,t),d=Array.isArray,f=e=>x(e)===`[object Map]`,p=e=>x(e)===`[object Set]`,m=e=>x(e)===`[object Date]`,h=e=>typeof e==`function`,g=e=>typeof e==`string`,_=e=>typeof e==`symbol`,v=e=>typeof e==`object`&&!!e,y=e=>(v(e)||h(e))&&h(e.then)&&h(e.catch),b=Object.prototype.toString,x=e=>b.call(e),S=e=>x(e).slice(8,-1),C=e=>x(e)===`[object Object]`,w=e=>g(e)&&e!==`NaN`&&e[0]!==`-`&&``+parseInt(e,10)===e,ee=e(`,key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted`),te=e=>{let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},ne=/-\w/g,T=te(e=>e.replace(ne,e=>e.slice(1).toUpperCase())),re=/\B([A-Z])/g,E=te(e=>e.replace(re,`-$1`).toLowerCase()),ie=te(e=>e.charAt(0).toUpperCase()+e.slice(1)),ae=te(e=>e?`on${ie(e)}`:``),D=(e,t)=>!Object.is(e,t),oe=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},O=(e,t,n,r=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},se=e=>{let t=parseFloat(e);return isNaN(t)?e:t},ce,le=()=>ce||=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{};function ue(e){if(d(e)){let t={};for(let n=0;n<e.length;n++){let r=e[n],i=g(r)?me(r):ue(r);if(i)for(let e in i)t[e]=i[e]}return t}if(g(e)||v(e))return e}var de=/;(?![^(]*\))/g,fe=/:([^]+)/,pe=/"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;function me(e){let t={};return e.replace(pe,e=>e.startsWith(`/*`)?``:e).split(de).forEach(e=>{if(e){let n=e.split(fe);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function k(e){let t=``;if(g(e))t=e;else if(d(e))for(let n=0;n<e.length;n++){let r=k(e[n]);r&&(t+=r+` `)}else if(v(e))for(let n in e)e[n]&&(t+=n+` `);return t.trim()}var he=e(`itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,playsinline,readonly`);function ge(e){return!!e||e===``}function _e(e,t,n){if(e.length!==t.length)return!1;let r=!0;for(let i=0;r&&i<e.length;i++)r=xe(e[i],t[i],n);return r}function ve(e,t,n){if(e.size!==t.size)return!1;let r=Array.from(t),i=new Uint8Array(r.length);for(let t of e){let e=-1;for(let a=0;a<r.length;a++)if(!i[a]&&xe(t,r[a],n)){e=a;break}if(e<0)return!1;i[e]=1}return!0}function ye(e,t,n){let r=f(e),i=f(t);if(r||i||(r=p(e),i=p(t),r||i))return r&&i?ve(e,t,n):!1;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e){let i=e.hasOwnProperty(r),a=t.hasOwnProperty(r);if(i&&!a||!i&&a||!xe(e[r],t[r],n))return!1}return String(e)===String(t)}function be(e,t,n,r){n||=[new Map,new Map];let[i,a]=n;if(i.has(e)||a.has(t))return i.get(e)===t&&a.get(t)===e;i.set(e,t),a.set(t,e);let o=r(e,t,n);return i.delete(e),a.delete(t),o}function xe(e,t,n){if(e===t)return!0;let r=m(e),i=m(t);return r||i?r&&i?e.getTime()===t.getTime():!1:(r=_(e),i=_(t),r||i?e===t:(r=d(e),i=d(t),r||i?r&&i?be(e,t,n,_e):!1:(r=v(e),i=v(t),r||i?!r||!i?!1:be(e,t,n,ye):String(e)===String(t))))}var Se=e=>!!(e&&e.__v_isRef===!0),Ce=e=>g(e)?e:e==null?``:d(e)||v(e)&&(e.toString===b||!h(e.toString))?Se(e)?Ce(e.value):JSON.stringify(e,we,2):String(e),we=(e,t)=>Se(t)?we(e,t.value):f(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[Te(t,r)+` =>`]=n,e),{})}:p(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>Te(e))}:_(t)?Te(t):v(t)&&!d(t)&&!C(t)?String(t):t,Te=(e,t=``)=>_(e)?`Symbol(${e.description??t})`:e,A,Ee=class{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&A&&(A.active?(this.parent=A,this.index=(A.scopes||(A.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes){let n=this.scopes.slice();for(e=0,t=n.length;e<t;e++)n[e].pause()}for(e=0,t=this.effects.length;e<t;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let e,t;if(this.scopes){let n=this.scopes.slice();for(e=0,t=n.length;e<t;e++)n[e].resume()}let n=this.effects.slice();for(e=0,t=n.length;e<t;e++)n[e].resume()}}run(e){if(this._active){let t=A;try{return A=this,e()}finally{A=t}}}on(){++this._on===1&&(this.prevScope=A,A=this)}off(){if(this._on>0&&--this._on===0){if(A===this)A=this.prevScope;else{let e=A;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.prevScope}}this.prevScope=void 0}}stop(e){if(this._active){this._active=!1;let t,n;for(t=0,n=this.effects.length;t<n;t++)this.effects[t].stop();for(this.effects.length=0,t=0,n=this.cleanups.length;t<n;t++)this.cleanups[t]();if(this.cleanups.length=0,this.scopes){let e=this.scopes.slice();for(t=0,n=e.length;t<n;t++)e[t].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){let e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.parent=void 0}}};function De(){return A}var j,Oe=new WeakSet,ke=class{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,A&&(A.active?A.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Oe.has(this)&&(Oe.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Ne(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,Ue(this),Ie(this);let e=j,t=M;j=this,M=!0;try{return this.fn()}finally{Le(this),j=e,M=t,this.flags&=-3}}stop(){if(this.flags&1){for(let e=this.deps;e;e=e.nextDep)Be(e);this.deps=this.depsTail=void 0,Ue(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Oe.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Re(this)&&this.run()}get dirty(){return Re(this)}},Ae=0,je,Me;function Ne(e,t=!1){e.flags|=8,t?(e.next=Me,Me=e):(e.next=je,je=e)}function Pe(){Ae++}function Fe(){if(--Ae>0)return;if(Me){let e=Me;for(Me=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;je;){let t=je;for(je=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(t){e||=t}t=n}}if(e)throw e}function Ie(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Le(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;r.version===-1?(r===n&&(n=e),Be(r),Ve(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function Re(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(ze(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function ze(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===We)||(e.globalVersion=We,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Re(e))))return;e.flags|=2;let t=e.dep,n=j,r=M;j=e,M=!0;try{Ie(e);let n=e.fn(e._value);(t.version===0||D(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{j=n,M=r,Le(e),e.flags&=-3}}function Be(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)Be(e,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Ve(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}var M=!0,He=[];function N(){He.push(M),M=!1}function P(){let e=He.pop();M=e===void 0||e}function Ue(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=j;j=void 0;try{t()}finally{j=e}}}var We=0,Ge=class{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},Ke=class{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!j||!M||j===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==j)t=this.activeLink=new Ge(j,this),j.deps?(t.prevDep=j.depsTail,j.depsTail.nextDep=t,j.depsTail=t):j.deps=j.depsTail=t,qe(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=j.depsTail,t.nextDep=void 0,j.depsTail.nextDep=t,j.depsTail=t,j.deps===t&&(j.deps=e)}return t}trigger(e){this.version++,We++,this.notify(e)}notify(e){Pe();try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{Fe()}}};function qe(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let e=t.deps;e;e=e.nextDep)qe(e)}let n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}var Je=new WeakMap,Ye=Symbol(``),Xe=Symbol(``),Ze=Symbol(``);function F(e,t,n){if(M&&j){let t=Je.get(e);t||Je.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new Ke),r.map=t,r.key=n),r.track()}}function I(e,t,n,r,i,a){let o=Je.get(e);if(!o){We++;return}let s=e=>{e&&e.trigger()};if(Pe(),t===`clear`)o.forEach(s);else{let i=d(e),a=i&&w(n);if(i&&n===`length`){let e=Number(r);o.forEach((t,n)=>{(n===`length`||n===Ze||!_(n)&&n>=e)&&s(t)})}else switch((n!==void 0||o.has(void 0))&&s(o.get(n)),a&&s(o.get(Ze)),t){case`add`:i?a&&s(o.get(`length`)):(s(o.get(Ye)),f(e)&&s(o.get(Xe)));break;case`delete`:i||(s(o.get(Ye)),f(e)&&s(o.get(Xe)));break;case`set`:f(e)&&s(o.get(Ye))}}Fe()}function Qe(e){let t=z(e);return t===e||(F(t,`iterate`,Ze),R(e))?t:It(e)?Ft(e)?t.map(e=>zt(B(e))):t.map(zt):t.map(B)}function $e(e){return F(e=z(e),`iterate`,Ze),e}function L(e,t){return It(e)?zt(Ft(e)?B(t):t):B(t)}var et={__proto__:null,[Symbol.iterator](){return tt(this,Symbol.iterator,e=>L(this,e))},concat(...e){return Qe(this).concat(...e.map(e=>d(e)?Qe(e):e))},entries(){return tt(this,`entries`,e=>(e[1]=L(this,e[1]),e))},every(e,t){return it(this,`every`,e,t,void 0,arguments)},filter(e,t){return it(this,`filter`,e,t,e=>e.map(e=>L(this,e)),arguments)},find(e,t){return it(this,`find`,e,t,e=>L(this,e),arguments)},findIndex(e,t){return it(this,`findIndex`,e,t,void 0,arguments)},findLast(e,t){return it(this,`findLast`,e,t,e=>L(this,e),arguments)},findLastIndex(e,t){return it(this,`findLastIndex`,e,t,void 0,arguments)},forEach(e,t){return it(this,`forEach`,e,t,void 0,arguments)},includes(...e){return ot(this,`includes`,e)},indexOf(...e){return ot(this,`indexOf`,e)},join(e){return Qe(this).join(e)},lastIndexOf(...e){return ot(this,`lastIndexOf`,e)},map(e,t){return it(this,`map`,e,t,void 0,arguments)},pop(){return st(this,`pop`)},push(...e){return st(this,`push`,e)},reduce(e,...t){return at(this,`reduce`,e,t)},reduceRight(e,...t){return at(this,`reduceRight`,e,t)},shift(){return st(this,`shift`)},some(e,t){return it(this,`some`,e,t,void 0,arguments)},splice(...e){return st(this,`splice`,e)},toReversed(){return Qe(this).toReversed()},toSorted(e){return Qe(this).toSorted(e)},toSpliced(...e){return Qe(this).toSpliced(...e)},unshift(...e){return st(this,`unshift`,e)},values(){return tt(this,`values`,e=>L(this,e))}};function tt(e,t,n){let r=$e(e),i=r[t],a=i.call(r);if(r!==e&&!R(e)){if(a[Symbol.toStringTag]===`Array Iterator`){let e=Object.create(Object.getPrototypeOf(a));return e.next=()=>nt(a.next(),n),i!==rt[t]&&Object.defineProperties(e,{return:{get(){let e=a.return;return typeof e==`function`?e.bind(a):e}},throw:{get(){let e=a.throw;return typeof e==`function`?e.bind(a):e}}}),e}a._next=a.next,a.next=()=>nt(a._next(),n)}return a}function nt(e,t){return e.done||(e.value=t(e.value)),e}var rt=Array.prototype;function it(e,t,n,r,i,a){let o=$e(e),s=o!==e&&!R(e),c=o[t];if(c!==rt[t]){let t=c.apply(e,a);return s?B(t):t}let l=n;o!==e&&(s?l=function(t,r){return n.call(this,L(e,t),r,e)}:n.length>2&&(l=function(t,r){return n.call(this,t,r,e)}));let u=c.call(o,l,r);return s&&i?i(u):u}function at(e,t,n,r){let i=$e(e),a=i!==e&&!R(e),o=n,s=!1;i!==e&&(a?(s=r.length===0,o=function(t,r,i){return s&&(s=!1,t=L(e,t)),n.call(this,t,L(e,r),i,e)}):n.length>3&&(o=function(t,r,i){return n.call(this,t,r,i,e)}));let c=i[t](o,...r);return s?L(e,c):c}function ot(e,t,n){let r=z(e);F(r,`iterate`,Ze);let i=r[t](...n);return(i===-1||i===!1)&&Lt(n[0])?(n[0]=z(n[0]),r[t](...n)):i}function st(e,t,n=[]){N(),Pe();let r=z(e)[t].apply(e,n);return Fe(),P(),r}var ct=e(`__proto__,__v_isRef,__isVue`),lt=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!==`arguments`&&e!==`caller`).map(e=>Symbol[e]).filter(_));function ut(e){_(e)||(e=String(e));let t=z(this);return F(t,`has`,e),t.hasOwnProperty(e)}var dt=class{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if(t===`__v_skip`)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if(t===`__v_isReactive`)return!r;if(t===`__v_isReadonly`)return r;if(t===`__v_isShallow`)return i;if(t===`__v_raw`)return n===(r?i?kt:Ot:i?Dt:Et).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let a=d(e);if(!r){let e;if(a&&(e=et[t]))return e;if(t===`hasOwnProperty`)return ut}let o=Reflect.get(e,t,V(e)?e:n);if((_(t)?lt.has(t):ct(t))||(r||F(e,`get`,t),i))return o;if(V(o)){let e=a&&w(t)?o:o.value;return r&&v(e)?Nt(e):e}return v(o)?r?Nt(o):jt(o):o}},ft=class extends dt{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],a=d(e)&&w(t);if(!this._isShallow){let e=It(i);if(!R(n)&&!It(n)&&(i=z(i),n=z(n)),!a&&V(i)&&!V(n))return e||(i.value=n),!0}let o=a?Number(t)<e.length:u(e,t),s=Reflect.set(e,t,n,V(e)?e:r);return e===z(r)&&s&&(o?D(n,i)&&I(e,`set`,t,n,i):I(e,`add`,t,n)),s}deleteProperty(e,t){let n=u(e,t),r=e[t],i=Reflect.deleteProperty(e,t);return i&&n&&I(e,`delete`,t,void 0,r),i}has(e,t){let n=Reflect.has(e,t);return(!_(t)||!lt.has(t))&&F(e,`has`,t),n}ownKeys(e){return F(e,`iterate`,d(e)?`length`:Ye),Reflect.ownKeys(e)}},pt=class extends dt{constructor(e=!1){super(!0,e)}set(e,t){return!0}deleteProperty(e,t){return!0}},mt=new ft,ht=new pt,gt=new ft(!0),_t=e=>e,vt=e=>Reflect.getPrototypeOf(e);function yt(e,t,n){return function(...r){let i=this.__v_raw,a=z(i),o=f(a),c=e===`entries`||e===Symbol.iterator&&o,l=e===`keys`&&o,u=i[e](...r),d=n?_t:t?zt:B;return!t&&F(a,`iterate`,l?Xe:Ye),s(Object.create(u),{next(){let{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:c?[d(e[0]),d(e[1])]:d(e),done:t}}})}}function bt(e){return function(...t){return e===`delete`?!1:e===`clear`?void 0:this}}function xt(e,t){let n={get(n){let r=this.__v_raw,i=z(r),a=z(n);e||(D(n,a)&&F(i,`get`,n),F(i,`get`,a));let{has:o}=vt(i),s=t?_t:e?zt:B;if(o.call(i,n))return s(r.get(n));if(o.call(i,a))return s(r.get(a));r!==i&&r.get(n)},get size(){let t=this.__v_raw;return!e&&F(z(t),`iterate`,Ye),t.size},has(t){let n=this.__v_raw,r=z(n),i=z(t);return e||(D(t,i)&&F(r,`has`,t),F(r,`has`,i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,a=i.__v_raw,o=z(a),s=t?_t:e?zt:B;return!e&&F(o,`iterate`,Ye),a.forEach((e,t)=>n.call(r,s(e),s(t),i))}};return s(n,e?{add:bt(`add`),set:bt(`set`),delete:bt(`delete`),clear:bt(`clear`)}:{add(e){let n=z(this),r=vt(n),i=z(e),a=!t&&!R(e)&&!It(e)?i:e;return r.has.call(n,a)||D(e,a)&&r.has.call(n,e)||D(i,a)&&r.has.call(n,i)||(n.add(a),I(n,`add`,a,a)),this},set(e,n){!t&&!R(n)&&!It(n)&&(n=z(n));let r=z(this),{has:i,get:a}=vt(r),o=i.call(r,e);o||=(e=z(e),i.call(r,e));let s=a.call(r,e);return r.set(e,n),o?D(n,s)&&I(r,`set`,e,n,s):I(r,`add`,e,n),this},delete(e){let t=z(this),{has:n,get:r}=vt(t),i=n.call(t,e);i||=(e=z(e),n.call(t,e));let a=r?r.call(t,e):void 0,o=t.delete(e);return i&&I(t,`delete`,e,void 0,a),o},clear(){let e=z(this),t=e.size!==0,n=e.clear();return t&&I(e,`clear`,void 0,void 0,void 0),n}}),[`keys`,`values`,`entries`,Symbol.iterator].forEach(r=>{n[r]=yt(r,e,t)}),n}function St(e,t){let n=xt(e,t);return(r,i,a)=>i===`__v_isReactive`?!e:i===`__v_isReadonly`?e:i===`__v_isShallow`?t:i===`__v_raw`?r:Reflect.get(u(n,i)&&i in r?n:r,i,a)}var Ct={get:St(!1,!1)},wt={get:St(!1,!0)},Tt={get:St(!0,!1)},Et=new WeakMap,Dt=new WeakMap,Ot=new WeakMap,kt=new WeakMap;function At(e){switch(e){case`Object`:case`Array`:return 1;case`Map`:case`Set`:case`WeakMap`:case`WeakSet`:return 2;default:return 0}}function jt(e){return It(e)?e:Pt(e,!1,mt,Ct,Et)}function Mt(e){return Pt(e,!1,gt,wt,Dt)}function Nt(e){return Pt(e,!0,ht,Tt,Ot)}function Pt(e,t,n,r,i){if(!v(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let a=i.get(e);if(a)return a;let o=At(S(e));if(o===0)return e;let s=new Proxy(e,o===2?r:n);return i.set(e,s),s}function Ft(e){return It(e)?Ft(e.__v_raw):!!(e&&e.__v_isReactive)}function It(e){return!!(e&&e.__v_isReadonly)}function R(e){return!!(e&&e.__v_isShallow)}function Lt(e){return e?!!e.__v_raw:!1}function z(e){let t=e&&e.__v_raw;return t?z(t):e}function Rt(e){return!u(e,`__v_skip`)&&Object.isExtensible(e)&&O(e,`__v_skip`,!0),e}var B=e=>v(e)?jt(e):e,zt=e=>v(e)?Nt(e):e;function V(e){return e?e.__v_isRef===!0:!1}function Bt(e){return Vt(e,!1)}function Vt(e,t){return V(e)?e:new Ht(e,t)}var Ht=class{constructor(e,t){this.dep=new Ke,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:z(e),this._value=t?e:B(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||R(e)||It(e);e=n?e:z(e),D(e,t)&&(this._rawValue=e,this._value=n?e:B(e),this.dep.trigger())}};function Ut(e){return V(e)?e.value:e}var Wt={get:(e,t,n)=>t===`__v_raw`?e:Ut(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return V(i)&&!V(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function Gt(e){return Ft(e)?e:new Proxy(e,Wt)}var Kt=class{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new Ke(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=We-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&j!==this)return Ne(this,!0),!0}get value(){let e=this.dep.track();return ze(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}};function qt(e,t,n=!1){let r,i;return h(e)?r=e:(r=e.get,i=e.set),new Kt(r,i,n)}var Jt={},Yt=new WeakMap,Xt=void 0;function Zt(e,t=!1,n=Xt){if(n){let t=Yt.get(n);t||Yt.set(n,t=[]),t.push(e)}}function Qt(e,n,i=t){let{immediate:a,deep:o,once:s,scheduler:l,augmentJob:u,call:f}=i,p=e=>o?e:R(e)||o===!1||o===0?$t(e,1):$t(e),m,g,_,v,y=!1,b=!1;if(V(e)?(g=()=>e.value,y=R(e)):Ft(e)?(g=()=>p(e),y=!0):d(e)?(b=!0,y=e.some(e=>Ft(e)||R(e)),g=()=>e.map(e=>{if(V(e))return e.value;if(Ft(e))return p(e);if(h(e))return f?f(e,2):e()})):g=h(e)?n?f?()=>f(e,2):e:()=>{if(_){N();try{_()}finally{P()}}let t=Xt;Xt=m;try{return f?f(e,3,[v]):e(v)}finally{Xt=t}}:r,n&&o){let e=g,t=o===!0?1/0:o;g=()=>$t(e(),t)}let x=De(),S=()=>{m.stop(),x&&x.active&&c(x.effects,m)};if(s&&n){let e=n;n=(...t)=>{try{return e(...t)}finally{S()}}}let C=b?Array(e.length).fill(Jt):Jt,w=e=>{if(m.flags&1&&(m.dirty||e)){if(n){let t=m.run();if(e||o||y||(b?t.some((e,t)=>D(e,C[t])):D(t,C))){let e=Xt;N();try{_&&_(),Xt=m;let e=[t,C===Jt?void 0:b&&C[0]===Jt?[]:C,v];C=t,f?f(n,3,e):n(...e)}finally{Xt=e,P()}}}else m.run()}};return u&&u(w),m=new ke(g),m.scheduler=l?()=>l(w,!1):w,v=e=>Zt(e,!1,m),_=m.onStop=()=>{let e=Yt.get(m);if(e){if(f)f(e,4);else for(let t of e)t();Yt.delete(m)}},n?a?w(!0):C=m.run():l?l(w.bind(null,!0),!0):m.run(),S.pause=m.pause.bind(m),S.resume=m.resume.bind(m),S.stop=S,S}function $t(e,t=1/0,n){if(t<=0||!v(e)||e.__v_skip||(n||=new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,V(e))$t(e.value,t,n);else if(d(e))for(let r=0;r<e.length;r++)$t(e[r],t,n);else if(p(e)||f(e))e.forEach(e=>{$t(e,t,n)});else if(C(e)){for(let r in e)$t(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&$t(e[r],t,n)}return e}function en(e,t,n,r){try{return r?e(...r):e()}catch(e){tn(e,t,n)}}function H(e,t,n,r){if(h(e)){let i=en(e,t,n,r);return i&&y(i)&&i.catch(e=>{tn(e,t,n)}),i}if(d(e)){let i=[];for(let a=0;a<e.length;a++)i.push(H(e[a],t,n,r));return i}}function tn(e,n,r,i=!0){let a=n?n.vnode:null,{errorHandler:o,throwUnhandledErrorInProduction:s}=n&&n.appContext.config||t;if(n){let t=n.parent,i=n.proxy,a=`https://vuejs.org/error-reference/#runtime-${r}`;for(;t;){let n=t.ec;if(n){for(let t=0;t<n.length;t++)if(n[t](e,i,a)===!1)return}t=t.parent}if(o){N(),en(o,null,10,[e,i,a]),P();return}}nn(e,r,a,i,s)}function nn(e,t,n,r=!0,i=!1){if(i)throw e;console.error(e)}var U=[],W=-1,G=[],rn=null,an=0,on=Promise.resolve(),sn=null;function cn(e){let t=sn||on;return e?t.then(this?e.bind(this):e):t}function ln(e){let t=W+1,n=U.length;for(;t<n;){let r=t+n>>>1,i=U[r],a=_n(i);a<e||a===e&&i.flags&2?t=r+1:n=r}return t}function un(e){if(!(e.flags&1)){let t=_n(e),n=U[U.length-1];!n||!(e.flags&2)&&t>=_n(n)?U.push(e):U.splice(ln(t),0,e),e.flags|=1,dn()}}function dn(){sn||=on.then(vn)}function fn(e){if(!d(e))rn&&e.id===-1?rn.splice(an+1,0,e):e.flags&1||(G.push(e),e.flags|=1);else for(let t=0;t<e.length;t++)G.push(e[t]);dn()}function pn(e,t,n,r=W+1){for(;r<U.length;r++){let n=U[r];if(n&&n.flags&2){if(e&&n.id!==e.uid||t!==void 0&&!(n.id>=t))continue;U.splice(r,1),r=e?r-1:W,n.flags&4&&(n.flags&=-2),n(),n.flags&4||(n.flags&=-2)}}}function mn(e,t,n=0){if(G.length){let e=G,r=0;if(t){e=[];for(let i=0;i<G.length;i++){let a=G[i];(a.i===void 0?t.has(a):!a.i||a.i.uid<n)?G[r++]=a:e.push(a)}}let i=[...new Set(e)].sort((e,t)=>_n(e)-_n(t));if(G.length=r,rn){for(let e=0;e<i.length;e++)rn.push(i[e]);return}for(rn=i,an=0;an<rn.length;an++){let e=rn[an];e.flags&4&&(e.flags&=-2),e.flags&8||e(),e.flags&=-2}rn=null,an=0}}var hn=!1;function gn(e,t){if(hn){e();return}let n=t===void 0?void 0:new Set(G);e(),hn=!0;try{pn(void 0,t),mn(void 0,n,t)}finally{hn=!1}}var _n=e=>e.id==null?e.flags&2?-1:1/0:e.id;function vn(e){try{for(W=0;W<U.length;W++){let e=U[W];e&&!(e.flags&8)&&(e.flags&4&&(e.flags&=-2),en(e,e.i,e.i?15:14),e.flags&4||(e.flags&=-2))}}finally{for(;W<U.length;W++){let e=U[W];e&&(e.flags&=-2)}W=-1,U.length=0,mn(e),sn=null,(U.length||G.length)&&vn(e)}}var K=null,yn=null;function bn(e){let t=K;return K=e,yn=e&&e.type.__scopeId||null,t}function xn(e,t=K,n){if(!t||e._n)return e;let r=(...n)=>{r._d&&Oi(-1);let i=bn(t),a=wi.length,o;try{o=e(...n)}finally{for(let e=wi.length;e>a;e--)Ei();bn(i),r._d&&Oi(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function Sn(e,t,n,r){let i=e.dirs,a=t&&t.dirs;for(let o=0;o<i.length;o++){let s=i[o];a&&(s.oldValue=a[o].value);let c=s.dir[r];c&&(N(),H(c,n,8,[e.el,s,e,t]),P())}}function Cn(e,t){if($){let n=$.provides,r=$.parent&&$.parent.provides;r===n&&(n=$.provides=Object.create(r)),n[e]=t}}function wn(e,t,n=!1){let r=Ji();if(r||jr){let i=jr?jr._context.provides:r?r.parent==null||r.ce?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides:void 0;if(i&&e in i)return i[e];if(arguments.length>1)return n&&h(t)?t.call(r&&r.proxy):t}}var Tn=Symbol.for(`v-scx`),En=()=>wn(Tn);function Dn(e,t,n){return On(e,t,n)}function On(e,n,i=t){let{immediate:a,deep:o,flush:c,once:l}=i,u=s({},i),d=n&&a||!n&&c!==`post`,f;if(ea){if(c===`sync`){let e=En();f=e.__watcherHandles||=[]}else if(!d){let e=()=>{};return e.stop=r,e.resume=r,e.pause=r,e}}let p=$;u.call=(e,t,n)=>H(e,p,t,n);let m=!1;c===`post`?u.scheduler=e=>{e.i=p,J(e,p&&p.suspense)}:c!==`sync`&&(m=!0,u.scheduler=(e,t)=>{t?e():un(e)}),u.augmentJob=e=>{n&&(e.flags|=4),m&&(e.flags|=2,p&&(e.id=p.uid,e.i=p))};let h=Qt(e,n,u);return ea&&(f?f.push(h):d&&h()),h}function kn(e,t,n){let r=this.proxy,i=g(e)?e.includes(`.`)?An(r,e):()=>r[e]:e.bind(r,r),a;h(t)?a=t:(a=t.handler,n=t);let o=Zi(this),s=On(i,a.bind(r),n);return o(),s}function An(e,t){let n=t.split(`.`);return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}var jn=Symbol(`_vte`),Mn=e=>e.__isTeleport,Nn=Symbol(`_leaveCb`);function Pn(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==Si){t=n;break}}return t}function Fn(e){if(!Gn(e))return Mn(e.type)&&e.children?Pn(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&h(n.default))return n.default()}}function In(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;let n=e.component.subTree;In(Mn(n.type)&&Fn(n)||n,t)}else if(e.shapeFlag&128)e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback);else if(e.transition=t,e.type===Y&&d(e.children)){let n=Rr(e.children,!1);n&&In(n,t)}}function Ln(e){if(e.component)return Ln(e.component.subTree);if(e.type===Y){let t=d(e.children)&&Rr(e.children,!1);return t?Ln(t):void 0}if(e.type!==Si)return e}function Rn(e,t){return h(e)?s({name:e.name},t,{setup:e}):e}function zn(e){e.ids=[e.ids[0]+e.ids[2]+++`-`,0,0]}function Bn(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}var Vn=new WeakMap;function Hn(e,n,r,a,o=!1){if(d(e)){e.forEach((e,t)=>Hn(e,n&&(d(n)?n[t]:n),r,a,o));return}if(Wn(a)&&!o){a.shapeFlag&512&&a.type.__asyncResolved&&a.component.subTree.component&&Hn(e,n,r,a.component.subTree);return}let s=a.shapeFlag&4?sa(a.component):a.el,l=o?null:s,{i:f,r:p}=e,m=n&&n.r,_=f.refs===t?f.refs={}:f.refs,v=f.setupState,y=z(v),b=v===t?i:e=>!Bn(_,e)&&u(y,e),x=(e,t)=>!(t&&Bn(_,t));if(m!=null&&m!==p){if(Un(n),g(m))_[m]=null,b(m)&&(v[m]=null);else if(V(m)){let e=n;x(m,e.k)&&(m.value=null),e.k&&(_[e.k]=null)}}if(h(p))en(p,f,12,[l,_]);else{let t=g(p),n=V(p);if(t||n){let i=()=>{if(e.f){let n=t?b(p)?v[p]:_[p]:x(p)||!e.k?p.value:_[e.k];if(o)d(n)&&c(n,s);else if(d(n))n.includes(s)||n.push(s);else if(t)_[p]=[s],b(p)&&(v[p]=_[p]);else{let t=[s];x(p,e.k)&&(p.value=t),e.k&&(_[e.k]=t)}}else t?(_[p]=l,b(p)&&(v[p]=l)):n&&(x(p,e.k)&&(p.value=l),e.k&&(_[e.k]=l))};if(l){let t=()=>{i(),Vn.delete(e)};t.id=-1,Vn.set(e,t),J(t,r)}else Un(e),i()}}}function Un(e){let t=Vn.get(e);t&&(t.flags|=8,Vn.delete(e))}le().requestIdleCallback,le().cancelIdleCallback;var Wn=e=>!!e.type.__asyncLoader,Gn=e=>e.type.__isKeepAlive;function Kn(e,t){Jn(e,`a`,t)}function qn(e,t){Jn(e,`da`,t)}function Jn(e,t,n=$){let r=e.__wdc||=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()};if(Xn(t,r,n),n){let e=n.parent;for(;e&&e.parent;)Gn(e.parent.vnode)&&Yn(r,t,n,e),e=e.parent}}function Yn(e,t,n,r){let i=Xn(t,e,r,!0);rr(()=>{c(r[t],i)},n)}function Xn(e,t,n=$,r=!1){if(n){let i=n[e]||(n[e]=[]),a=t.__weh||=(...r)=>{N();let i=Zi(n),a=H(t,n,e,r);return i(),P(),a};return r?i.unshift(a):i.push(a),a}}var Zn=e=>(t,n=$)=>{(!ea||e===`sp`)&&Xn(e,(...e)=>t(...e),n)},Qn=Zn(`bm`),$n=Zn(`m`),er=Zn(`bu`),tr=Zn(`u`),nr=Zn(`bum`),rr=Zn(`um`),ir=Zn(`sp`),ar=Zn(`rtg`),or=Zn(`rtc`);function sr(e,t=$){Xn(`ec`,e,t)}var cr=Symbol.for(`v-ndc`),lr=e=>e?$i(e)?sa(e):lr(e.parent):null,ur=s(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>lr(e.parent),$root:e=>lr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>yr(e),$forceUpdate:e=>e.f||=()=>{un(e.update)},$nextTick:e=>e.n||=cn.bind(e.proxy),$watch:e=>kn.bind(e)}),dr=(e,n)=>e!==t&&!e.__isScriptSetup&&u(e,n),fr={get({_:e},n){if(n===`__v_skip`)return!0;let{ctx:r,setupState:i,data:a,props:o,accessCache:s,type:c,appContext:l}=e;if(n[0]!==`$`){let e=s[n];if(e!==void 0)switch(e){case 1:return i[n];case 2:return a[n];case 4:return r[n];case 3:return o[n]}else if(dr(i,n))return s[n]=1,i[n];else if(a!==t&&u(a,n))return s[n]=2,a[n];else if(u(o,n))return s[n]=3,o[n];else if(r!==t&&u(r,n))return s[n]=4,r[n];else mr&&(s[n]=0)}let d=ur[n],f,p;if(d)return n===`$attrs`&&F(e.attrs,`get`,``),d(e);if((f=c.__cssModules)&&(f=f[n]))return f;if(r!==t&&u(r,n))return s[n]=4,r[n];if(p=l.config.globalProperties,u(p,n))return p[n]},set({_:e},n,r){let{data:i,setupState:a,ctx:o}=e;return dr(a,n)?(a[n]=r,!0):i!==t&&u(i,n)?(i[n]=r,!0):u(e.props,n)||n[0]===`$`&&n.slice(1)in e?!1:(o[n]=r,!0)},has({_:{data:e,setupState:n,accessCache:r,ctx:i,appContext:a,props:o,type:s}},c){let l;return!!(r[c]||e!==t&&c[0]!==`$`&&u(e,c)||dr(n,c)||u(o,c)||u(i,c)||u(ur,c)||u(a.config.globalProperties,c)||(l=s.__cssModules)&&l[c])},defineProperty(e,t,n){return n.get==null?u(n,`value`)&&this.set(e,t,n.value,null):e._.accessCache[t]=0,Reflect.defineProperty(e,t,n)}};function pr(e){return d(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}var mr=!0;function hr(e){let t=yr(e),n=e.proxy,i=e.ctx;mr=!1,t.beforeCreate&&_r(t.beforeCreate,e,`bc`);let{data:a,computed:o,methods:s,watch:c,provide:l,inject:u,created:f,beforeMount:p,mounted:m,beforeUpdate:g,updated:_,activated:y,deactivated:b,beforeDestroy:x,beforeUnmount:S,destroyed:C,unmounted:w,render:ee,renderTracked:te,renderTriggered:ne,errorCaptured:T,serverPrefetch:re,expose:E,inheritAttrs:ie,components:ae,directives:D,filters:oe}=t;if(u&&gr(u,i,null),s)for(let e in s){let t=s[e];h(t)&&(i[e]=t.bind(n))}if(a){let t=a.call(n,n);v(t)&&(e.data=jt(t))}if(mr=!0,o)for(let e in o){let t=o[e],a=la({get:h(t)?t.bind(n,n):h(t.get)?t.get.bind(n,n):r,set:!h(t)&&h(t.set)?t.set.bind(n):r});Object.defineProperty(i,e,{enumerable:!0,configurable:!0,get:()=>a.value,set:e=>a.value=e})}if(c)for(let e in c)vr(c[e],i,n,e);if(l){let e=h(l)?l.call(n):l;Reflect.ownKeys(e).forEach(t=>{Cn(t,e[t])})}f&&_r(f,e,`c`);function O(e,t){d(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(O(Qn,p),O($n,m),O(er,g),O(tr,_),O(Kn,y),O(qn,b),O(sr,T),O(or,te),O(ar,ne),O(nr,S),O(rr,w),O(ir,re),d(E)){if(E.length){let t=e.exposed||={};E.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||={}}ee&&e.render===r&&(e.render=ee),ie!=null&&(e.inheritAttrs=ie),ae&&(e.components=ae),D&&(e.directives=D),re&&zn(e)}function gr(e,t,n=r){d(e)&&(e=wr(e));for(let n in e){let r=e[n],i;i=v(r)?`default`in r?wn(r.from||n,r.default,!0):wn(r.from||n):wn(r),V(i)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e}):t[n]=i}}function _r(e,t,n){H(d(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function vr(e,t,n,r){let i=r.includes(`.`)?An(n,r):()=>n[r];if(g(e)){let n=t[e];h(n)&&Dn(i,n)}else if(h(e))Dn(i,e.bind(n));else if(v(e)){if(d(e))e.forEach(e=>vr(e,t,n,r));else{let r=h(e.handler)?e.handler.bind(n):t[e.handler];h(r)&&Dn(i,r,e)}}}function yr(e){let t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t),c;return s?c=s:!i.length&&!n&&!r?c=t:(c={},i.length&&i.forEach(e=>br(c,e,o,!0)),br(c,t,o)),v(t)&&a.set(t,c),c}function br(e,t,n,r=!1){let{mixins:i,extends:a}=t;a&&br(e,a,n,!0),i&&i.forEach(t=>br(e,t,n,!0));for(let i in t)if(!(r&&i===`expose`)){let r=xr[i]||n&&n[i];e[i]=r?r(e[i],t[i]):t[i]}return e}var xr={data:Sr,props:Er,emits:Er,methods:Tr,computed:Tr,beforeCreate:q,created:q,beforeMount:q,mounted:q,beforeUpdate:q,updated:q,beforeDestroy:q,beforeUnmount:q,destroyed:q,unmounted:q,activated:q,deactivated:q,errorCaptured:q,serverPrefetch:q,components:Tr,directives:Tr,watch:Dr,provide:Sr,inject:Cr};function Sr(e,t){return t?e?function(){return s(h(e)?e.call(this,this):e,h(t)?t.call(this,this):t)}:t:e}function Cr(e,t){return Tr(wr(e),wr(t))}function wr(e){if(d(e)){let t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function q(e,t){return e?[...new Set([].concat(e,t))]:t}function Tr(e,t){return e?s(Object.create(null),e,t):t}function Er(e,t){return e?d(e)&&d(t)?[...new Set([...e,...t])]:s(Object.create(null),pr(e),pr(t??{})):t}function Dr(e,t){if(!e)return t;if(!t)return e;let n=s(Object.create(null),e);for(let r in t)n[r]=q(e[r],t[r]);return n}function Or(){return{app:null,config:{isNativeTag:i,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}var kr=0;function Ar(e,t){return function(n,r=null){h(n)||(n=s({},n)),r!=null&&!v(r)&&(r=null);let i=Or(),a=new WeakSet,o=[],c=!1,l=i.app={_uid:kr++,_component:n,_props:r,_container:null,_context:i,_instance:null,version:ua,get config(){return i.config},set config(e){},use(e,...t){return a.has(e)||(e&&h(e.install)?(a.add(e),e.install(l,...t)):h(e)&&(a.add(e),e(l,...t))),l},mixin(e){return i.mixins.includes(e)||i.mixins.push(e),l},component(e,t){return t?(i.components[e]=t,l):i.components[e]},directive(e,t){return t?(i.directives[e]=t,l):i.directives[e]},mount(a,o,s){if(!c){let u=l._ceVNode||Ii(n,r);return u.appContext=i,s===!0?s=`svg`:s===!1&&(s=void 0),o&&t?t(u,a):e(u,a,s),c=!0,l._container=a,a.__vue_app__=l,sa(u.component)}},onUnmount(e){o.push(e)},unmount(){c&&(H(o,l._instance,16),e(null,l._container),delete l._container.__vue_app__)},provide(e,t){return i.provides[e]=t,l},runWithContext(e){let t=jr;jr=l;try{return e()}finally{jr=t}}};return l}}var jr=null,Mr=(e,t)=>t===`modelValue`||t===`model-value`?e.modelModifiers:e[`${t}Modifiers`]||e[`${T(t)}Modifiers`]||e[`${E(t)}Modifiers`];function Nr(e,n,...r){if(e.isUnmounted)return;let i=e.vnode.props||t,a=r,o=n.startsWith(`update:`),s=o&&Mr(i,n.slice(7));s&&(s.trim&&(a=r.map(e=>g(e)?e.trim():e)),s.number&&(a=a.map(se)));let c,l=i[c=ae(n)]||i[c=ae(T(n))];!l&&o&&(l=i[c=ae(E(n))]),l&&H(l,e,6,a);let u=i[c+`Once`];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[c])return;e.emitted[c]=!0,H(u,e,6,a)}}var Pr=new WeakMap;function Fr(e,t,n=!1){let r=n?Pr:t.emitsCache,i=r.get(e);if(i!==void 0)return i;let a=e.emits,o={},c=!1;if(!h(e)){let r=e=>{let n=Fr(e,t,!0);n&&(c=!0,s(o,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return!a&&!c?(v(e)&&r.set(e,null),null):(d(a)?a.forEach(e=>o[e]=null):s(o,a),v(e)&&r.set(e,o),o)}function Ir(e,t){return!e||!a(t)?!1:(t=t.slice(2),t=t===`Once`?t:t.replace(/Once$/,``),u(e,t[0].toLowerCase()+t.slice(1))||u(e,E(t))||u(e,t))}function Lr(e){let{type:t,vnode:n,proxy:r,withProxy:i,propsOptions:[a],slots:s,attrs:c,emit:l,render:u,renderCache:d,props:f,data:p,setupState:m,ctx:h,inheritAttrs:g}=e,_=bn(e),v,y;try{if(n.shapeFlag&4){let e=i||r,t=e;v=Z(u.call(t,e,d,f,m,p,h)),y=c}else{let e=t;v=Z(e.length>1?e(f,{attrs:c,slots:s,emit:l}):e(f,null)),y=t.props?c:zr(c)}}catch(t){wi.length=0,tn(t,e,1),v=Ii(Si)}let b=v;if(y&&g!==!1){let e=Object.keys(y),{shapeFlag:t}=b;e.length&&t&7&&(a&&e.some(o)&&(y=Br(y,a)),b=zi(b,y,!1,!0))}return n.dirs&&(b=zi(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition&&In(Mn(b.type)&&Fn(b)||b,n.transition),v=b,bn(_),v}function Rr(e,t=!0){let n;for(let t=0;t<e.length;t++){let r=e[t];if(ji(r)){if(r.type!==Si||r.children===`v-if`){if(n)return;n=r}}else return}return n}var zr=e=>{let t;for(let n in e)(n===`class`||n===`style`||a(n))&&((t||={})[n]=e[n]);return t},Br=(e,t)=>{let n={};for(let r in e)(!o(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Vr(e,t,n){let{props:r,children:i,component:a}=e,{props:o,children:s,patchFlag:c}=t,l=a.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?Hr(r,o,l):!!o;if(c&8){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let n=e[t];if(Ur(o,r,n)&&!Ir(l,n))return!0}}}else return(i||s)&&(!s||!s.$stable)?!0:r===o?!1:r?!o||Hr(r,o,l):!!o;return!1}function Hr(e,t,n){let r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let i=0;i<r.length;i++){let a=r[i];if(!u(e,a)||Ur(t,e,a)&&!Ir(n,a))return!0}return!1}function Ur(e,t,n){let r=e[n],i=t[n];return n===`style`&&v(r)&&v(i)?!xe(r,i):r!==i}function Wr({vnode:e,parent:t,suspense:n},r){for(;t;){let n=t.subTree;if(n.suspense&&n.suspense.activeBranch===e&&(n.suspense.vnode.el=n.el=r,e=n),n===e)(e=t.vnode).el=r,t=t.parent;else break}n&&n.activeBranch===e&&(n.vnode.el=r)}var Gr={},Kr=()=>Object.create(Gr),qr=e=>Object.getPrototypeOf(e)===Gr;function Jr(e,t,n,r=!1){let i={},a=Kr();e.propsDefaults=Object.create(null),Xr(e,t,i,a);for(let t in e.propsOptions[0])t in i||(i[t]=void 0);e.props=n?r?i:Mt(i):e.type.props?i:a,e.attrs=a}function Yr(e,t,n,r){let{props:i,attrs:a,vnode:{patchFlag:o}}=e,s=z(i),[c]=e.propsOptions,l=!1;if((r||o>0)&&!(o&16)){if(o&8){let n=e.vnode.dynamicProps;for(let r=0;r<n.length;r++){let o=n[r];if(Ir(e.emitsOptions,o))continue;let d=t[o];if(c){if(u(a,o))d!==a[o]&&(a[o]=d,l=!0);else{let t=T(o);i[t]=Zr(c,s,t,d,e,!1)}}else d!==a[o]&&(a[o]=d,l=!0)}}}else{Xr(e,t,i,a)&&(l=!0);let r;for(let a in s)(!t||!u(t,a)&&((r=E(a))===a||!u(t,r)))&&(c?n&&(n[a]!==void 0||n[r]!==void 0)&&(i[a]=Zr(c,s,a,void 0,e,!0)):delete i[a]);if(a!==s)for(let e in a)(!t||!u(t,e))&&(delete a[e],l=!0)}l&&I(e.attrs,`set`,``)}function Xr(e,n,r,i){let[a,o]=e.propsOptions,s=!1,c;if(n)for(let t in n){if(ee(t))continue;let l=n[t],d;a&&u(a,d=T(t))?!o||!o.includes(d)?r[d]=l:(c||={})[d]=l:Ir(e.emitsOptions,t)||(!(t in i)||l!==i[t])&&(i[t]=l,s=!0)}if(o){let n=z(r),i=c||t;for(let t=0;t<o.length;t++){let s=o[t];r[s]=Zr(a,n,s,i[s],e,!u(i,s))}}return s}function Zr(e,t,n,r,i,a){let o=e[n];if(o!=null){let e=u(o,`default`);if(e&&r===void 0){let e=o.default;if(o.type!==Function&&!o.skipFactory&&h(e)){let{propsDefaults:a}=i;if(n in a)r=a[n];else{let o=Zi(i);r=a[n]=e.call(null,t),o()}}else r=e;i.ce&&i.ce._setProp(n,r)}o[0]&&(a&&!e?r=!1:o[1]&&(r===``||r===E(n))&&(r=!0))}return r}var Qr=new WeakMap;function $r(e,r,i=!1){let a=i?Qr:r.propsCache,o=a.get(e);if(o)return o;let c=e.props,l={},f=[],p=!1;if(!h(e)){let t=e=>{p=!0;let[t,n]=$r(e,r,!0);s(l,t),n&&f.push(...n)};!i&&r.mixins.length&&r.mixins.forEach(t),e.extends&&t(e.extends),e.mixins&&e.mixins.forEach(t)}if(!c&&!p)return v(e)&&a.set(e,n),n;if(d(c))for(let e=0;e<c.length;e++){let n=T(c[e]);ei(n)&&(l[n]=t)}else if(c)for(let e in c){let t=T(e);if(ei(t)){let n=c[e],r=l[t]=d(n)||h(n)?{type:n}:s({},n),i=r.type,a=!1,o=!0;if(d(i))for(let e=0;e<i.length;++e){let t=i[e],n=h(t)&&t.name;if(n===`Boolean`){a=!0;break}n===`String`&&(o=!1)}else a=h(i)&&i.name===`Boolean`;r[0]=a,r[1]=o,(a||u(r,`default`))&&f.push(t)}}let m=[l,f];return v(e)&&a.set(e,m),m}function ei(e){return e[0]!==`$`&&!ee(e)}var ti=e=>e===`_`||e===`_ctx`||e===`$stable`,ni=e=>d(e)?e.map(Z):[Z(e)],ri=(e,t,n)=>{if(t._n)return t;let r=xn((...e)=>ni(t(...e)),n);return r._c=!1,r},ii=(e,t,n)=>{let r=e._ctx;for(let n in e){if(ti(n))continue;let i=e[n];if(h(i))t[n]=ri(n,i,r);else if(i!=null){let e=ni(i);t[n]=()=>e}}},ai=(e,t)=>{let n=ni(t);e.slots.default=()=>n},oi=(e,t,n)=>{for(let r in t)(n||!ti(r))&&(e[r]=t[r])},si=(e,t,n)=>{let r=e.slots=Kr();if(e.vnode.shapeFlag&32){let e=t._;e?(oi(r,t,n),n&&O(r,`_`,e,!0)):ii(t,r)}else t&&ai(e,t)},ci=(e,n,r)=>{let{vnode:i,slots:a}=e,o=!0,s=t;if(i.shapeFlag&32){let e=n._;e?r&&e===1?o=!1:oi(a,n,r):(o=!n.$stable,ii(n,a)),s=n}else n&&(ai(e,n),s={default:1});if(o)for(let e in a)!ti(e)&&s[e]==null&&delete a[e]},J=bi;function li(e){return ui(e)}function ui(e,i){let a=le();a.__VUE__=!0;let{insert:o,remove:s,patchProp:c,createElement:l,createText:u,createComment:d,setText:f,setElementText:p,parentNode:m,nextSibling:h,setScopeId:g=r,insertStaticContent:_}=e,v=(e,t,r,i=null,a=null,o=null,s=void 0,c=null,l=!!t.dynamicChildren)=>{if(e===t)return;e&&!Mi(e,t)&&(i=ye(e),k(e,a,o,!0),e=null),t.patchFlag===-2&&(l=!1,t.dynamicChildren=null),t.dynamicChildren&&e&&e.dynamicChildren&&e.dynamicChildren.hasOnce&&(t.dynamicChildren===n&&(t.dynamicChildren=[]),t.dynamicChildren.hasOnce=!0);let{type:u,ref:d,shapeFlag:f}=t;switch(u){case xi:y(e,t,r,i);break;case Si:b(e,t,r,i);break;case Ci:e??x(t,r,i,s);break;case Y:ae(e,t,r,i,a,o,s,c,l);break;default:f&1?w(e,t,r,i,a,o,s,c,l):f&6?D(e,t,r,i,a,o,s,c,l):(f&64||f&128)&&u.process(e,t,r,i,a,o,s,c,l,xe)}d!=null&&a?Hn(d,e&&e.ref,o,t||e,!t):d==null&&e&&e.ref!=null&&Hn(e.ref,null,o,e,!0)},y=(e,t,n,r)=>{if(e==null)o(t.el=u(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&f(n,t.children)}},b=(e,t,n,r)=>{e==null?o(t.el=d(t.children||``),n,r):t.el=e.el},x=(e,t,n,r)=>{[e.el,e.anchor]=_(e.children,t,n,r,e.el,e.anchor)},S=({el:e,anchor:t},n,r)=>{let i;for(;e&&e!==t;)i=h(e),o(e,n,r),e=i;o(t,n,r)},C=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=h(e),s(e),e=n;s(t)},w=(e,t,n,r,i,a,o,s,c)=>{if(t.type===`svg`?o=`svg`:t.type===`math`&&(o=`mathml`),e==null)te(t,n,r,i,a,o,s,c);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),re(e,t,i,a,o,s,c)}finally{n&&n._endPatch()}}},te=(e,t,n,r,i,a,s,u)=>{let d,f,{props:m,shapeFlag:h,transition:g,dirs:_}=e;if(d=e.el=l(e.type,a,m&&m.is,m),h&8?p(d,e.children):h&16&&T(e.children,d,null,r,i,di(e,a),s,u),_&&Sn(e,null,r,`created`),ne(d,e,e.scopeId,s,r),m){for(let e in m)e!==`value`&&!ee(e)&&c(d,e,null,m[e],a,r);`value`in m&&c(d,`value`,null,m.value,a),(f=m.onVnodeBeforeMount)&&Q(f,r,e)}_&&Sn(e,null,r,`beforeMount`);let v=pi(i,g);v&&g.beforeEnter(d),o(d,t,n),((f=m&&m.onVnodeMounted)||v||_)&&J(()=>{try{f&&Q(f,r,e),v&&g.enter(d),_&&Sn(e,null,r,`mounted`)}finally{}},i)},ne=(e,t,n,r,i)=>{if(n&&g(e,n),r)for(let t=0;t<r.length;t++)g(e,r[t]);if(i){let n=i.subTree;if(t===n||yi(n.type)&&(n.ssContent===t||n.ssFallback===t)){let t=i.vnode;ne(e,t,t.scopeId,t.slotScopeIds,i.parent)}}},T=(e,t,n,r,i,a,o,s,c=0)=>{for(let l=c;l<e.length;l++){let c=e[l]=s?Vi(e[l]):Z(e[l]);v(null,c,t,n,r,i,a,o,s)}},re=(e,n,r,i,a,o,s)=>{let l=n.el=e.el,{patchFlag:u,dynamicChildren:d,dirs:f}=n;u|=e.patchFlag&16;let m=e.props||t,h=n.props||t,g;if(r&&fi(r,!1),(g=h.onVnodeBeforeUpdate)&&Q(g,r,n,e),f&&Sn(n,e,r,`beforeUpdate`),r&&fi(r,!0),d&&(!e.dynamicChildren||e.dynamicChildren.length!==d.length)&&(u=0,s=!1,d=null),(m.innerHTML&&h.innerHTML==null||m.textContent&&h.textContent==null)&&p(l,``),d?E(e.dynamicChildren,d,l,r,i,di(n,a),o):s||de(e,n,l,null,r,i,di(n,a),o,!1),u>0){if(u&16)ie(l,m,h,r,a);else if(u&2&&m.class!==h.class&&c(l,`class`,null,h.class,a),u&4&&c(l,`style`,m.style,h.style,a),u&8){let e=n.dynamicProps;for(let t=0;t<e.length;t++){let n=e[t],i=m[n],o=h[n];(o!==i||n===`value`)&&c(l,n,i,o,a,r)}}u&1&&e.children!==n.children&&p(l,n.children)}else!s&&d==null&&ie(l,m,h,r,a);((g=h.onVnodeUpdated)||f)&&J(()=>{g&&Q(g,r,n,e),f&&Sn(n,e,r,`updated`)},i)},E=(e,t,n,r,i,a,o)=>{for(let s=0;s<t.length;s++){let c=e[s],l=t[s],u=c.el||vi(c),d=u&&(c.type===Y||!Mi(c,l)||c.shapeFlag&198)?m(u):n;v(c,l,d,null,r,i,a,o,!0)}},ie=(e,n,r,i,a)=>{if(n!==r){if(n!==t)for(let t in n)!ee(t)&&!(t in r)&&c(e,t,n[t],null,a,i);for(let t in r){if(ee(t))continue;let o=r[t],s=n[t];o!==s&&t!==`value`&&c(e,t,s,o,a,i)}`value`in r&&c(e,`value`,n.value,r.value,a)}},ae=(e,t,n,r,i,a,s,c,l)=>{let d=t.el=e?e.el:u(``),f=t.anchor=e?e.anchor:u(``),{patchFlag:p,dynamicChildren:m,slotScopeIds:h}=t;h&&(c=c?c.concat(h):h),e==null?(o(d,n,r),o(f,n,r),T(t.children||[],n,f,i,a,s,c,l)):p>0&&p&64&&m&&e.dynamicChildren&&e.dynamicChildren.length===m.length?(E(e.dynamicChildren,m,n,i,a,s,c),(t.key!=null||i&&t===i.subTree)&&mi(e,t,!0)):de(e,t,n,f,i,a,s,c,l)},D=(e,t,n,r,i,a,o,s,c)=>{t.slotScopeIds=s,e==null?t.shapeFlag&512?i.ctx.activate(t,n,r,o,c):O(t,n,r,i,a,o,c):se(e,t,c)},O=(e,t,n,r,i,a,o)=>{let s=e.component=qi(e,r,i);if(Gn(e)&&(s.ctx.renderer=xe),ta(s,!1,o),s.asyncDep){if(i&&i.registerDep(s,ce,o,a),!e.el){let r=s.subTree=Ii(Si);b(null,r,t,n),e.placeholder=r.el}}else ce(s,e,t,n,i,a,o)},se=(e,t,n)=>{let r=t.component=e.component;if(Vr(e,t,n)){if(r.asyncDep&&!r.asyncResolved){t.el=e.el,t.placeholder=e.placeholder,ue(r,t,n);return}r.next=t,r.update()}else t.el=e.el,t.placeholder=e.placeholder,r.vnode=t},ce=(e,t,n,r,i,a,o)=>{let s=()=>{if(e.isMounted){let{next:t,bu:n,u:r,parent:s,vnode:c}=e;{let n=gi(e);if(n){t&&(t.el=c.el,ue(e,t,o)),n.asyncDep.then(()=>{J(()=>{e.isUnmounted||l()},i)});return}}let u=t,d;fi(e,!1),t?(t.el=c.el,ue(e,t,o)):t=c,n&&oe(n),(d=t.props&&t.props.onVnodeBeforeUpdate)&&Q(d,s,t,c),fi(e,!0);let f=Lr(e),p=e.subTree;e.subTree=f,v(p,f,m(p.el),ye(p),e,i,a),t.el=f.el,u===null&&Wr(e,f.el),r&&J(r,i),(d=t.props&&t.props.onVnodeUpdated)&&J(()=>Q(d,s,t,c),i)}else{let o,{el:s,props:c}=t,{bm:l,m:u,parent:d,root:f,type:p}=e,m=Wn(t);if(fi(e,!1),l&&oe(l),!m&&(o=c&&c.onVnodeBeforeMount)&&Q(o,d,t),fi(e,!0),s&&Ce){let t=()=>{e.subTree=Lr(e),Ce(s,e.subTree,e,i,null)};m&&p.__asyncHydrate?p.__asyncHydrate(s,e,t):t()}else{f.ce&&f.ce._hasShadowRoot()&&f.ce._injectChildStyle(p,e.parent?e.parent.type:void 0);let o=e.subTree=Lr(e);v(null,o,n,r,e,i,a),t.el=o.el}if(u&&J(u,i),!m&&(o=c&&c.onVnodeMounted)){let e=t;J(()=>Q(o,d,e),i)}(t.shapeFlag&256||d&&Wn(d.vnode)&&d.vnode.shapeFlag&256)&&e.a&&J(e.a,i),e.isMounted=!0,t=n=r=null}};e.scope.on();let c=e.effect=new ke(s);e.scope.off();let l=e.update=c.run.bind(c),u=e.job=c.runIfDirty.bind(c);u.i=e,u.id=e.uid,c.scheduler=()=>un(u),fi(e,!0),l()},ue=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,Yr(e,t.props,r,n),ci(e,t.children,n),N(),pn(e),P()},de=(e,t,n,r,i,a,o,s,c=!1)=>{let l=e&&e.children,u=e?e.shapeFlag:0,d=t.children,{patchFlag:f,shapeFlag:m}=t;if(f>0){if(f&128){pe(l,d,n,r,i,a,o,s,c);return}if(f&256){fe(l,d,n,r,i,a,o,s,c);return}}m&8?(u&16&&ve(l,i,a),d!==l&&p(n,d)):u&16?m&16?pe(l,d,n,r,i,a,o,s,c):ve(l,i,a,!0):(u&8&&p(n,``),m&16&&T(d,n,r,i,a,o,s,c))},fe=(e,t,r,i,a,o,s,c,l)=>{e||=n,t||=n;let u=e.length,d=t.length,f=Math.min(u,d),p=0;for(;p<f;p++){let n=t[p]=l?Vi(t[p]):Z(t[p]);v(e[p],n,r,null,a,o,s,c,l)}u>d?ve(e,a,o,!0,!1,f):T(t,r,i,a,o,s,c,l,f)},pe=(e,t,r,i,a,o,s,c,l)=>{let u=0,d=t.length,f=e.length-1,p=d-1;for(;u<=f&&u<=p;){let n=e[u],i=t[u]=l?Vi(t[u]):Z(t[u]);if(Mi(n,i))v(n,i,r,null,a,o,s,c,l);else break;u++}for(;u<=f&&u<=p;){let n=e[f],i=t[p]=l?Vi(t[p]):Z(t[p]);if(Mi(n,i))v(n,i,r,null,a,o,s,c,l);else break;f--,p--}if(u>f){if(u<=p){let e=p+1,n=e<d?t[e].el:i;for(;u<=p;)v(null,t[u]=l?Vi(t[u]):Z(t[u]),r,n,a,o,s,c,l),u++}}else if(u>p)for(;u<=f;)k(e[u],a,o,!0),u++;else{let m=u,h=u,g=new Map;for(u=h;u<=p;u++){let e=t[u]=l?Vi(t[u]):Z(t[u]);e.key!=null&&g.set(e.key,u)}let _,y=0,b=p-h+1,x=!1,S=0,C=Array(b);for(u=0;u<b;u++)C[u]=0;for(u=m;u<=f;u++){let n=e[u];if(y>=b){k(n,a,o,!0);continue}let i;if(n.key!=null)i=g.get(n.key);else for(_=h;_<=p;_++)if(C[_-h]===0&&Mi(n,t[_])){i=_;break}i===void 0?k(n,a,o,!0):(C[i-h]=u+1,i>=S?S=i:x=!0,v(n,t[i],r,null,a,o,s,c,l),y++)}let w=x?hi(C):n;for(_=w.length-1,u=b-1;u>=0;u--){let e=h+u,n=t[e],f=t[e+1],p=e+1<d?f.el||vi(f):i;C[u]===0?v(null,n,r,p,a,o,s,c,l):x&&(_<0||u!==w[_]?me(n,r,p,2):_--)}}},me=(e,t,n,r,i=null)=>{let{el:a,type:c,transition:l,children:u,shapeFlag:d}=e;if(d&6)me(e.component.subTree,t,n,r);else if(d&128)e.suspense.move(t,n,r);else if(d&64)c.move(e,t,n,xe);else if(c===Y){o(a,t,n);for(let e=0;e<u.length;e++)me(u[e],t,n,r);o(e.anchor,t,n)}else if(c===Ci)S(e,t,n);else if(r!==2&&d&1&&l){if(r===0)l.persisted&&!a[Nn]?o(a,t,n):(l.beforeEnter(a),o(a,t,n),J(()=>l.enter(a),i));else{let{leave:r,delayLeave:i,afterLeave:c}=l,u=()=>{e.ctx.isUnmounted?s(a):o(a,t,n)},d=()=>{let e=a._isLeaving||!!a[Nn];a._isLeaving&&a[Nn](!0),l.persisted&&!e?u():r(a,()=>{u(),c&&c()})};i?i(a,u,d):d()}}else o(a,t,n)},k=(e,t,n,r=!1,i=!1)=>{let{type:a,props:o,ref:s,children:c,dynamicChildren:l,shapeFlag:u,patchFlag:d,dirs:f,cacheIndex:p,memo:m}=e;if((d===-2||l&&l.hasOnce)&&(i=!1),s!=null&&(N(),Hn(s,null,n,e,!0),P()),p!=null&&(!e.ctx||e.ctx===t)&&(t.renderCache[p]=void 0),u&256){t.ctx.deactivate(e);return}let h=u&1&&f,g=!Wn(e),_;if(g&&(_=o&&o.onVnodeBeforeUnmount)&&Q(_,t,e),u&6)_e(e.component,n,r);else{if(u&128){e.suspense.unmount(n,r);return}h&&Sn(e,null,t,`beforeUnmount`),u&64?e.type.remove(e,t,n,xe,r):l&&!l.hasOnce&&(a!==Y||d>0&&d&64)?ve(l,t,n,!1,!0):(a===Y&&d&384||!i&&u&16)&&ve(c,t,n),r&&he(e)}let v=m!=null&&p==null;(g&&(_=o&&o.onVnodeUnmounted)||h||v)&&J(()=>{_&&Q(_,t,e),h&&Sn(e,null,t,`unmounted`),v&&(e.el=null)},n)},he=e=>{let{type:t,el:n,anchor:r,transition:i}=e,a=t===Y;if(a&&!i){ge(n,r);return}if(t===Ci){C(e),i&&!i.persisted&&i.afterLeave&&i.afterLeave();return}let o=a?Ln(e):e,c=()=>{a?m(n)&&ge(n,r):s(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(o&&o.shapeFlag&1&&i&&!i.persisted){let{leave:e,delayLeave:t}=i,n=o.el,r=()=>e(n,c);t?t(n,c,r):r()}else c()},ge=(e,t)=>{let n;for(;e!==t;)n=h(e),s(e),e=n;s(t)},_e=(e,t,n)=>{let{bum:r,scope:i,job:a,subTree:o,um:s,m:c,a:l}=e;_i(c),_i(l),r&&oe(r),i.stop(),a?(a.flags|=8,k(o,e,t,n)):e.vnode.el&&o&&(o.transition=e.vnode.transition,k(o,e,t,n)),s&&J(s,t),J(()=>{e.isUnmounted=!0},t)},ve=(e,t,n,r=!1,i=!1,a=0)=>{for(let o=a;o<e.length;o++)k(e[o],t,n,r,i)},ye=e=>{if(e.shapeFlag&6)return ye(e.component.subTree);if(e.shapeFlag&128)return e.suspense.next();let t=h(e.anchor||e.el),n=t&&t[jn];return n?h(n):t},be=(e,t,n)=>{gn(()=>{e==null?t._vnode&&k(t._vnode,null,null,!0):v(t._vnode||null,e,t,null,null,null,n),t._vnode=e},e&&t._vnode?void 0:e&&e.component?e.component.uid:Ki())},xe={p:v,um:k,m:me,r:he,mt:O,mc:T,pc:de,pbc:E,n:ye,o:e},Se,Ce;return i&&([Se,Ce]=i(xe)),{render:be,hydrate:Se,createApp:Ar(be,Se)}}function di({type:e,props:t},n){return n===`svg`&&e===`foreignObject`||n===`mathml`&&e===`annotation-xml`&&t&&t.encoding&&t.encoding.includes(`html`)?void 0:n}function fi({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function pi(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function mi(e,t,n=!1){let r=e.children,i=t.children;if(d(r)&&d(i))for(let e=0;e<r.length;e++){let t=r[e],a=i[e];a.shapeFlag&1&&!a.dynamicChildren&&((a.patchFlag<=0||a.patchFlag===32)&&(a=i[e]=Vi(i[e]),a.el=t.el),!n&&a.patchFlag!==-2&&mi(t,a)),a.type===xi&&(a.patchFlag===-1&&(a=i[e]=Vi(a)),a.el=t.el),a.type===Si&&!a.el&&(a.el=t.el)}}function hi(e){let t=e.slice(),n=[0],r,i,a,o,s,c=e.length;for(r=0;r<c;r++){let c=e[r];if(c!==0){if(i=n[n.length-1],e[i]<c){t[r]=i,n.push(r);continue}for(a=0,o=n.length-1;a<o;)s=a+o>>1,e[n[s]]<c?a=s+1:o=s;c<e[n[a]]&&(a>0&&(t[r]=n[a-1]),n[a]=r)}}for(a=n.length,o=n[a-1];a-->0;)n[a]=o,o=t[o];return n}function gi(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:gi(t)}function _i(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function vi(e){if(e.placeholder)return e.placeholder;let t=e.component;return t?vi(t.subTree):null}var yi=e=>e.__isSuspense;function bi(e,t){t&&t.pendingBranch?d(e)?t.effects.push(...e):t.effects.push(e):fn(e)}var Y=Symbol.for(`v-fgt`),xi=Symbol.for(`v-txt`),Si=Symbol.for(`v-cmt`),Ci=Symbol.for(`v-stc`),wi=[],X=null;function Ti(e=!1){wi.push(X=e?null:[])}function Ei(){wi.pop(),X=wi[wi.length-1]||null}var Di=1;function Oi(e,t=!1){Di+=e,e<0&&X&&t&&(X.hasOnce=!0)}function ki(e){return e.dynamicChildren=Di>0?X||n:null,Ei(),Di>0&&X&&X.push(e),e}function Ai(e,t,n,r,i,a){return ki(Fi(e,t,n,r,i,a,!0))}function ji(e){return e?e.__v_isVNode===!0:!1}function Mi(e,t){return e.type===t.type&&e.key===t.key}var Ni=({key:e})=>e??null,Pi=({ref:e,ref_key:t,ref_for:n})=>(typeof e==`number`&&(e=``+e),e==null?null:g(e)||V(e)||h(e)?{i:K,r:e,k:t,f:!!n}:e);function Fi(e,t=null,n=null,r=0,i=null,a=e===Y?0:1,o=!1,s=!1){let c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ni(t),ref:t&&Pi(t),scopeId:yn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:K};return s?(Hi(c,n),a&128&&e.normalize(c)):n&&(c.shapeFlag|=g(n)?8:16),Di>0&&!o&&X&&(c.patchFlag>0||a&6)&&c.patchFlag!==32&&X.push(c),c}var Ii=Li;function Li(e,t=null,n=null,r=0,i=null,a=!1){if((!e||e===cr)&&(e=Si),ji(e)){let r=zi(e,t,!0);return n&&Hi(r,n),Di>0&&!a&&X&&(r.shapeFlag&6?X[X.indexOf(e)]=r:X.push(r)),r.patchFlag=-2,r}if(ca(e)&&(e=e.__vccOpts),t){t=Ri(t);let{class:e,style:n}=t;e&&!g(e)&&(t.class=k(e)),v(n)&&(Lt(n)&&!d(n)&&(n=s({},n)),t.style=ue(n))}let o=g(e)?1:yi(e)?128:Mn(e)?64:v(e)?4:h(e)?2:0;return Fi(e,t,n,r,i,o,a,!0)}function Ri(e){return e?Lt(e)||qr(e)?s({},e):e:null}function zi(e,t,n=!1,r=!1){let{props:i,ref:a,patchFlag:o,children:s,transition:c}=e,l=t?Ui(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&Ni(l),ref:t&&t.ref?n&&a?d(a)?a.concat(Pi(t)):[a,Pi(t)]:Pi(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Y?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&zi(e.ssContent),ssFallback:e.ssFallback&&zi(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return c&&r&&In(u,c.clone(u)),u}function Bi(e=` `,t=0){return Ii(xi,null,e,t)}function Z(e){return e==null||typeof e==`boolean`?Ii(Si):d(e)?Ii(Y,null,e.slice()):ji(e)?Vi(e):Ii(xi,null,String(e))}function Vi(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:zi(e)}function Hi(e,t){let n=0,{shapeFlag:r}=e;if(t==null)t=null;else if(d(t))n=16;else if(typeof t==`object`){if(r&65){let n=t.default;n&&(n._c&&(n._d=!1),Hi(e,n()),n._c&&(n._d=!0));return}{n=32;let r=t._;!r&&!qr(t)?t._ctx=K:r===3&&K&&(K.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}}else if(h(t)){if(r&65){Hi(e,{default:t});return}t={default:t,_ctx:K},n=32}else t=String(t),r&64?(n=16,t=[Bi(t)]):n=8;e.children=t,e.shapeFlag|=n}function Ui(...e){let t={};for(let n=0;n<e.length;n++){let r=e[n];for(let e in r)if(e===`class`)t.class!==r.class&&(t.class=k([t.class,r.class]));else if(e===`style`)t.style=ue([t.style,r.style]);else if(a(e)){let n=t[e],i=r[e];i&&n!==i&&!(d(n)&&n.includes(i))?t[e]=n?[].concat(n,i):i:i==null&&n==null&&!o(e)&&(t[e]=i)}else e!==``&&(t[e]=r[e])}return t}function Q(e,t,n,r=null){H(e,t,7,[n,r])}var Wi=Or(),Gi=0;function Ki(){return Gi}function qi(e,n,r){let i=e.type,a=(n?n.appContext:e.appContext)||Wi,o={uid:Gi++,vnode:e,type:i,parent:n,appContext:a,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new Ee(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:n?n.provides:Object.create(a.provides),ids:n?n.ids:[``,0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:$r(i,a),emitsOptions:Fr(i,a),emit:null,emitted:null,propsDefaults:t,inheritAttrs:i.inheritAttrs,ctx:t,data:t,props:t,attrs:t,slots:t,refs:t,setupState:t,setupContext:null,suspense:r,suspenseId:r?r.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return o.ctx={_:o},o.root=n?n.root:o,o.emit=Nr.bind(null,o),e.ce&&e.ce(o),o}var $=null,Ji=()=>$||K,Yi,Xi;{let e=le(),t=(t,n)=>{let r;return(r=e[t])||(r=e[t]=[]),r.push(n),e=>{r.length>1?r.forEach(t=>t(e)):r[0](e)}};Yi=t(`__VUE_INSTANCE_SETTERS__`,e=>$=e),Xi=t(`__VUE_SSR_SETTERS__`,e=>ea=e)}var Zi=e=>{let t=$;return Yi(e),e.scope.on(),()=>{e.scope.off(),Yi(t)}},Qi=()=>{$&&$.scope.off(),Yi(null)};function $i(e){return e.vnode.shapeFlag&4}var ea=!1;function ta(e,t=!1,n=!1){t&&Xi(t);let{props:r,children:i}=e.vnode,a=$i(e);Jr(e,r,a,t),si(e,i,n||t);let o=a?na(e,t):void 0;return t&&Xi(!1),o}function na(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,fr);let{setup:r}=n;if(r){N();let n=e.setupContext=r.length>1?oa(e):null,i=Zi(e),a=en(r,e,0,[e.props,n]),o=y(a);if(P(),i(),(o||e.sp)&&!Wn(e)&&zn(e),o){if(a.then(Qi,Qi),t)return a.then(n=>{Xi(!0);try{ra(e,n,t)}finally{Xi(!1)}}).catch(t=>{tn(t,e,0)});e.asyncDep=a}else ra(e,a,t)}else ia(e,t)}function ra(e,t,n){h(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:v(t)&&(e.setupState=Gt(t)),ia(e,n)}function ia(e,t,n){let i=e.type;e.render||=i.render||r;{let t=Zi(e);N();try{hr(e)}finally{P(),t()}}}var aa={get(e,t){return F(e,`get`,``),e[t]}};function oa(e){return{attrs:new Proxy(e.attrs,aa),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function sa(e){return e.exposed?e.exposeProxy||=new Proxy(Gt(Rt(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in ur)return ur[n](e)},has(e,t){return t in e||t in ur}}):e.proxy}function ca(e){return h(e)&&`__vccOpts`in e}var la=(e,t)=>qt(e,t,ea),ua=`3.5.44`,da=void 0,fa=typeof window<`u`&&window.trustedTypes;if(fa)try{da=fa.createPolicy(`vue`,{createHTML:e=>e})}catch{}var pa=da?e=>da.createHTML(e):e=>e,ma=`http://www.w3.org/2000/svg`,ha=`http://www.w3.org/1998/Math/MathML`,ga=typeof document<`u`?document:null,_a=ga&&ga.createElement(`template`),va={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i=t===`svg`?ga.createElementNS(ma,e):t===`mathml`?ga.createElementNS(ha,e):n?ga.createElement(e,{is:n}):ga.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>ga.createTextNode(e),createComment:e=>ga.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ga.querySelector(e),setScopeId(e,t){e.setAttribute(t,``)},insertStaticContent(e,t,n,r,i,a){let o=n?n.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),i!==a&&(i=i.nextSibling););else{_a.innerHTML=pa(r===`svg`?`<svg>${e}</svg>`:r===`mathml`?`<math>${e}</math>`:e);let i=_a.content;if(r===`svg`||r===`mathml`){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},ya=Symbol(`_vtc`);function ba(e,t,n){let r=e[ya];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}var xa=Symbol(`_vod`),Sa=Symbol(`_vsh`),Ca=Symbol(``),wa=/(?:^|;)\s*display\s*:/;function Ta(e,t,n){let r=e.style,i=g(n),a=!1;if(n&&!i){if(t){if(g(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??Da(r,t,``)}else for(let e in t)n[e]??Da(r,e,``)}for(let i in n){i===`display`&&(a=!0);let o=n[i];o==null?Da(r,i,``):ja(e,i,!g(t)&&t?t[i]:void 0,o)||Da(r,i,o)}}else if(i){if(t!==n){let e=r[Ca];e&&(n+=`;`+e),r.cssText=n,a=wa.test(n)}}else t&&e.removeAttribute(`style`);xa in e&&((!i||t!==n)&&(e[xa]=a?r.display:``),e[Sa]&&(r.display=`none`))}var Ea=/\s*!important$/;function Da(e,t,n){if(d(n))n.forEach(n=>Da(e,t,n));else if(n??=``,t.startsWith(`--`))Ea.test(n)?e.setProperty(t,n.replace(Ea,``),`important`):e.setProperty(t,n);else{let r=Aa(e,t);Ea.test(n)?e.setProperty(E(r),n.replace(Ea,``),`important`):e[r]=n}}var Oa=[`Webkit`,`Moz`,`ms`],ka={};function Aa(e,t){let n=ka[t];if(n)return n;let r=T(t);if(r!==`filter`&&r in e)return ka[t]=r;r=ie(r);for(let n=0;n<Oa.length;n++){let i=Oa[n]+r;if(i in e)return ka[t]=i}return t}function ja(e,t,n,r){return e.tagName===`TEXTAREA`&&(t===`width`||t===`height`)&&g(r)&&n===r}var Ma=`http://www.w3.org/1999/xlink`;function Na(e,t,n,r,i,a=he(t)){r&&t.startsWith(`xlink:`)?n==null?e.removeAttributeNS(Ma,t.slice(6,t.length)):e.setAttributeNS(Ma,t,n):n==null||a&&!ge(n)?e.removeAttribute(t):e.setAttribute(t,a?``:_(n)?String(n):n)}function Pa(e,t,n,r,i){if(t===`innerHTML`||t===`textContent`){n!=null&&(e[t]=t===`innerHTML`?pa(n):n);return}let a=e.tagName;if(t===`value`&&a!==`PROGRESS`&&!a.includes(`-`)){let r=a===`OPTION`?e.getAttribute(`value`)||``:e.value,i=n==null?e.type===`checkbox`?`on`:``:String(n);(r!==i||!(`_value`in e))&&(e.value=i),n??e.removeAttribute(t),e._value=n;return}let o=!1;if(n===``||n==null){let r=typeof e[t];r===`boolean`?n=ge(n):n==null&&r===`string`?(n=``,o=!0):r===`number`&&(n=0,o=!0)}try{e[t]=n}catch{}o&&e.removeAttribute(i||t)}function Fa(e,t,n,r){e.addEventListener(t,n,r)}function Ia(e,t,n,r){e.removeEventListener(t,n,r)}var La=Symbol(`_vei`);function Ra(e,t,n,r,i=null){let a=e[La]||(e[La]={}),o=a[t];if(r&&o)o.value=r;else{let[n,s]=Va(t);r?Fa(e,n,a[t]=Ga(r,i),s):o&&(Ia(e,n,o,s),a[t]=void 0)}}var za=/(Once|Passive|Capture)$/,Ba=/^on:?(?:Once|Passive|Capture)$/;function Va(e){let t,n;for(;(n=e.match(za))&&!Ba.test(e);)t||={},e=e.slice(0,e.length-n[1].length),t[n[1].toLowerCase()]=!0;return[e[2]===`:`?e.slice(3):E(e.slice(2)),t]}var Ha=0,Ua=Promise.resolve(),Wa=()=>Ha||=(Ua.then(()=>Ha=0),Date.now());function Ga(e,t){let n=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=n.attached)return;let r=n.value;if(d(r)){let n=e.stopImmediatePropagation;e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0};let i=r.slice(),a=[e];for(let n=0;n<i.length&&!e._stopped;n++){let e=i[n];e&&H(e,t,5,a)}}else H(r,t,5,[e])};return n.value=e,n.attached=Wa(),n}var Ka=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,qa=(e,t,n,r,i,s)=>{let c=i===`svg`;t===`class`?ba(e,r,c):t===`style`?Ta(e,n,r):a(t)?o(t)||Ra(e,t,n,r,s):(t[0]===`.`?(t=t.slice(1),1):t[0]===`^`?(t=t.slice(1),0):Ja(e,t,r,c))?(Pa(e,t,r),!e.tagName.includes(`-`)&&(t===`value`||t===`checked`||t===`selected`)&&Na(e,t,r,c,s,t!==`value`)):e._isVueCE&&(Ya(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!g(r)))?Pa(e,T(t),r,s,t):(t===`true-value`?e._trueValue=r:t===`false-value`&&(e._falseValue=r),Na(e,t,r,c))};function Ja(e,t,n,r){if(r)return!!(t===`innerHTML`||t===`textContent`||t in e&&Ka(t)&&h(n));if(t===`spellcheck`||t===`draggable`||t===`translate`||t===`autocorrect`||t===`sandbox`&&e.tagName===`IFRAME`||t===`form`||t===`list`&&e.tagName===`INPUT`||t===`type`&&e.tagName===`TEXTAREA`)return!1;if(t===`width`||t===`height`){let t=e.tagName;if(t===`IMG`||t===`VIDEO`||t===`CANVAS`||t===`SOURCE`)return!1}return Ka(t)&&g(n)?!1:t in e}function Ya(e,t){let n=e._def.props;if(!n)return!1;let r=T(t);return Array.isArray(n)?n.some(e=>T(e)===r):Object.keys(n).some(e=>T(e)===r)}var Xa=s({patchProp:qa},va),Za;function Qa(){return Za||=li(Xa)}var $a=((...e)=>{let t=Qa().createApp(...e),{mount:n}=t;return t.mount=e=>{let r=to(e);if(!r)return;let i=t._component;!h(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,eo(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t});function eo(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function to(e){return g(e)?document.querySelector(e):e}var no={key:0},ro={key:2,role:`alert`},io={key:3,role:`alert`};$a(Rn({__name:`App`,setup(e){let t=Bt({kind:`loading`});return $n(async()=>{try{let e=await fetch(`/api/instance`);if(e.status===401){t.value={kind:`session-ended`};return}let{version:n}=await e.json();t.value={kind:`ready`,version:n}}catch{t.value={kind:`not-running`}}}),(e,n)=>(Ti(),Ai(`main`,null,[t.value.kind===`loading`?(Ti(),Ai(`p`,no,`Connecting…`)):t.value.kind===`ready`?(Ti(),Ai(Y,{key:1},[Fi(`h1`,null,`Jig UI `+Ce(t.value.version),1),n[0]||=Fi(`p`,null,`Connecting projects is not built yet.`,-1)],64)):t.value.kind===`session-ended`?(Ti(),Ai(`p`,ro,[...n[1]||=[Bi(` This page's session has ended. Run `,-1),Fi(`code`,null,`npx @fapost/jig-ui`,-1),Bi(` again to reopen it. `,-1)]])):(Ti(),Ai(`p`,io,[...n[2]||=[Bi(`Jig UI is not running. Start it with `,-1),Fi(`code`,null,`npx @fapost/jig-ui`,-1),Bi(`.`,-1)]]))]))}})).mount(`#app`);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>Jig UI</title>
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-DG1hSWcJ.js"></script>
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<div id="app"></div>
|
|
11
|
+
</body>
|
|
12
|
+
</html>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fapost/jig-ui",
|
|
3
|
-
"version": "0.1.0-next.
|
|
3
|
+
"version": "0.1.0-next.7",
|
|
4
4
|
"description": "A local web interface for Jig, the agent SDLC framework.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -21,8 +21,10 @@
|
|
|
21
21
|
"url": "git+https://github.com/fapost-lab/jig-ui.git"
|
|
22
22
|
},
|
|
23
23
|
"scripts": {
|
|
24
|
-
"build": "tsc -p tsconfig.build.json",
|
|
25
|
-
"
|
|
24
|
+
"build": "tsc -p tsconfig.build.json && vite build",
|
|
25
|
+
"start": "npm run build && node dist/cli.js",
|
|
26
|
+
"dev": "npm run build && (tsc -p tsconfig.build.json --watch --preserveWatchOutput & vite build --watch & node --watch dist/cli.js --no-open)",
|
|
27
|
+
"typecheck": "tsc --noEmit && vue-tsc --noEmit -p web/tsconfig.json",
|
|
26
28
|
"test": "vitest run"
|
|
27
29
|
},
|
|
28
30
|
"dependencies": {
|
|
@@ -31,7 +33,11 @@
|
|
|
31
33
|
},
|
|
32
34
|
"devDependencies": {
|
|
33
35
|
"@types/node": "^24.19.2",
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
+
"@vitejs/plugin-vue": "^6.0.10",
|
|
37
|
+
"typescript": "^6.0.3",
|
|
38
|
+
"vite": "^8.3.4",
|
|
39
|
+
"vitest": "^5.0.4",
|
|
40
|
+
"vue": "^3.5.44",
|
|
41
|
+
"vue-tsc": "^3.3.13"
|
|
36
42
|
}
|
|
37
43
|
}
|