whose-turn 0.0.0-stage → 1.0.0-alpha.3

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.
Files changed (55) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/LICENSE +21 -0
  3. package/README.md +244 -2
  4. package/config.example.json +144 -0
  5. package/connectors/demo.mjs +146 -0
  6. package/connectors/github.mjs +316 -0
  7. package/connectors/index.mjs +38 -0
  8. package/connectors/jira.mjs +155 -0
  9. package/connectors/linear.mjs +113 -0
  10. package/dist/assets/_plugin-vue_export-helper-BKveAJb2.css +1 -0
  11. package/dist/assets/_plugin-vue_export-helper-DHr5RHTx.js +18 -0
  12. package/dist/assets/bem-COKTjsky.js +1 -0
  13. package/dist/assets/index-CuyWocyb.js +3 -0
  14. package/dist/assets/index-p8D7awn0.css +1 -0
  15. package/dist/assets/report-BtGnm9ax.js +1 -0
  16. package/dist/assets/report-xVOo7qip.css +1 -0
  17. package/dist/assets/scheme-DJ3WNw60.js +1 -0
  18. package/dist/assets/sheet-CBYGM-FG.js +1 -0
  19. package/dist/assets/sheet-DYpaJaXO.css +1 -0
  20. package/dist/index.html +19 -0
  21. package/dist/report.html +16 -0
  22. package/dist/sheet.html +16 -0
  23. package/dist/vendor/popper.min.js +6 -0
  24. package/dist/vendor/tippy-bundle.umd.min.js +2 -0
  25. package/install.sh +69 -0
  26. package/lib/api.mjs +406 -0
  27. package/lib/backoff.mjs +2 -0
  28. package/lib/compose.mjs +67 -0
  29. package/lib/config.mjs +290 -0
  30. package/lib/default-table.mjs +58 -0
  31. package/lib/errors.mjs +55 -0
  32. package/lib/facts.mjs +128 -0
  33. package/lib/feedback.mjs +148 -0
  34. package/lib/handoff.mjs +127 -0
  35. package/lib/health.mjs +35 -0
  36. package/lib/http-client.mjs +44 -0
  37. package/lib/inbox.mjs +60 -0
  38. package/lib/linear-api.mjs +12 -0
  39. package/lib/notify.mjs +36 -0
  40. package/lib/palette.mjs +213 -0
  41. package/lib/platform/credential.ps1 +84 -0
  42. package/lib/registry.mjs +61 -0
  43. package/lib/rules.mjs +241 -0
  44. package/lib/secrets.mjs +69 -0
  45. package/lib/static.mjs +36 -0
  46. package/lib/store.mjs +61 -0
  47. package/lib/table.mjs +148 -0
  48. package/lib/text.mjs +46 -0
  49. package/lib/token-cache.mjs +12 -0
  50. package/lib/update.mjs +134 -0
  51. package/lib/window.mjs +33 -0
  52. package/lib/workspace.mjs +294 -0
  53. package/open.sh +40 -0
  54. package/package.json +67 -4
  55. package/server.mjs +96 -0
@@ -0,0 +1,155 @@
1
+ /** Jira Cloud connector: your tickets by JQL with all comments (ADF turned into text) and the changelog entry for the current status. Token from the secret store. */
2
+ import { toIsoUtc, mapLimit } from '../lib/text.mjs';
3
+ import { cachedToken } from '../lib/token-cache.mjs';
4
+
5
+ const DEFAULT_SERVICE = 'whose-turn-jira';
6
+
7
+ export const id = 'jira';
8
+ export const label = 'Jira';
9
+ export const links = (settings) => (settings.base ? [{ label: 'Jira', url: String(settings.base).replace(/\/$/, '') }] : []);
10
+ export const endpointKey = 'base';
11
+ export const fields = [
12
+ { key: 'base', label: 'Site', hint: 'https://your-site.atlassian.net', required: true },
13
+ { key: 'email', label: 'Account email', hint: 'the account the API token belongs to', required: true },
14
+ { key: 'token', label: 'API token', hint: 'stored in the secret store, never in the config', secret: { account: 'email', service: 'token_service', default: DEFAULT_SERVICE } },
15
+ { key: 'token_service', label: 'Secret entry', hint: 'name of the secret-store entry; default whose-turn-jira' },
16
+ { key: 'jql', label: 'JQL', hint: 'which tickets to watch; leave empty for the default' },
17
+ ];
18
+
19
+ const SIMPLE_MARKS = { code: '`', strong: '**' };
20
+
21
+ export const adfToText = (node, meId, meName) => {
22
+ if (!node) {
23
+ return '';
24
+ }
25
+ const type = node.type;
26
+ const children = node.content || [];
27
+ const inner = (separator = '') => children.map((child) => adfToText(child, meId, meName)).join(separator);
28
+ if (type === 'text') {
29
+ let text = node.text || '';
30
+ for (const mark of node.marks || []) {
31
+ if (SIMPLE_MARKS[mark.type]) {
32
+ text = `${SIMPLE_MARKS[mark.type]}${text}${SIMPLE_MARKS[mark.type]}`;
33
+ } else if (mark.type === 'link') {
34
+ const href = (mark.attrs || {}).href || '';
35
+ text = href && href !== text ? `[${text}](${href})` : text;
36
+ }
37
+ }
38
+ return text;
39
+ }
40
+ if (type === 'mention') {
41
+ const attrs = node.attrs || {};
42
+ return attrs.id === meId ? `@${meName}` : attrs.text || '@someone';
43
+ }
44
+ if (type === 'hardBreak') {
45
+ return '\n';
46
+ }
47
+ if (type === 'paragraph') {
48
+ return `${inner()}\n\n`;
49
+ }
50
+ if (type === 'heading') {
51
+ return `${'#'.repeat(Number((node.attrs || {}).level || 2))} ${inner()}\n\n`;
52
+ }
53
+ if (type === 'codeBlock') {
54
+ return `\`\`\`\n${inner()}\n\`\`\`\n\n`;
55
+ }
56
+ if (type === 'blockquote') {
57
+ return `${inner().trim().split('\n').map((line) => `> ${line}`).join('\n')}\n\n`;
58
+ }
59
+ if (type === 'bulletList' || type === 'orderedList') {
60
+ return `${children.map((item, index) => `${type === 'orderedList' ? `${index + 1}.` : '-'} ${adfToText(item, meId, meName).trim().replace(/\n\n/g, '\n')}`).join('\n')}\n\n`;
61
+ }
62
+ if (['mediaSingle', 'mediaGroup', 'media', 'mediaInline'].includes(type)) {
63
+ return '[image]';
64
+ }
65
+ if (type === 'inlineCard' || type === 'blockCard') {
66
+ return (node.attrs || {}).url || '';
67
+ }
68
+ if (type === 'emoji') {
69
+ return (node.attrs || {}).text || '';
70
+ }
71
+ return inner();
72
+ };
73
+
74
+ const createApi = (http, base, email, token) => {
75
+ const auth = Buffer.from(`${email}:${token}`).toString('base64');
76
+ return (path, body) => http.fetchJson(`${base}${path}`, { method: body === undefined ? 'GET' : 'POST', body, useEtag: false, headers: { Authorization: `Basic ${auth}`, Accept: 'application/json' } });
77
+ };
78
+
79
+ const statusEntered = async (api, cache, key, updated, status) => {
80
+ const cached = cache.get(key);
81
+ if (cached && cached.updated === updated) {
82
+ return cached.info;
83
+ }
84
+ let info = null;
85
+ let start = 0;
86
+ for (;;) {
87
+ const page = await api(`/rest/api/3/issue/${key}/changelog?startAt=${start}&maxResults=100`);
88
+ for (const history of page.values || []) {
89
+ for (const item of history.items || []) {
90
+ if (item.field === 'status' && String(item.toString || '').toLowerCase() === status.toLowerCase()) {
91
+ const at = toIsoUtc(history.created);
92
+ if (!info || at > info.since) {
93
+ info = { since: at, by: (history.author || {}).displayName || '' };
94
+ }
95
+ }
96
+ }
97
+ }
98
+ if (page.isLast !== false || !(page.values || []).length) {
99
+ break;
100
+ }
101
+ start += page.values.length;
102
+ }
103
+ cache.set(key, { updated, info });
104
+ return info;
105
+ };
106
+
107
+ const jiraToken = async (settings, secrets, cache) => {
108
+ const service = settings.token_service || DEFAULT_SERVICE;
109
+ const token = await cachedToken(cache, () => secrets.get(service, settings.email));
110
+ if (!token) {
111
+ throw new Error(`No Jira API token in the secret store (service ${service}, account ${settings.email})`);
112
+ }
113
+ return token;
114
+ };
115
+
116
+ export const poll = async ({ settings, http, secrets, cache }) => {
117
+ const base = String(settings.base).replace(/\/$/, '');
118
+ if (!base.startsWith('https://')) {
119
+ throw new Error('jira.base must start with https://');
120
+ }
121
+ const api = createApi(http, base, settings.email, await jiraToken(settings, secrets, cache));
122
+ cache.me ??= await api('/rest/api/3/myself');
123
+ const meId = cache.me.accountId;
124
+ const meName = cache.me.displayName || 'me';
125
+ const jql = settings.jql || '(assignee = currentUser() AND statusCategory != Done) OR (assignee was currentUser() AND updated >= -30d) ORDER BY updated DESC';
126
+ const result = await api('/rest/api/3/search/jql', { jql, maxResults: 100, fields: ['summary', 'status', 'assignee', 'updated', 'comment'] });
127
+ const tickets = [];
128
+ const comments = [];
129
+ for (const issue of result.issues || []) {
130
+ const fields = issue.fields;
131
+ const url = `${base}/browse/${issue.key}`;
132
+ tickets.push({
133
+ key: issue.key, summary: fields.summary || '', status: (fields.status || {}).name || '', status_category: ((fields.status || {}).statusCategory || {}).key || '',
134
+ assignee: (fields.assignee || {}).displayName || 'Unassigned', updated: fields.updated || '', url,
135
+ });
136
+ for (const comment of ((fields.comment || {}).comments || [])) {
137
+ const body = comment.body;
138
+ comments.push({
139
+ id: comment.id, key: issue.key, at: toIsoUtc(comment.created), author: (comment.author || {}).displayName || '',
140
+ body: body && typeof body === 'object' ? adfToText(body, meId, meName).trim() : String(body || ''), url: `${url}?focusedCommentId=${comment.id}`,
141
+ });
142
+ }
143
+ }
144
+ cache.statusEntered ??= new Map();
145
+ const errors = {};
146
+ await mapLimit(tickets.filter((ticket) => ticket.status_category !== 'done'), 4, async (ticket) => {
147
+ try {
148
+ ticket.status_change = await statusEntered(api, cache.statusEntered, ticket.key, ticket.updated, ticket.status);
149
+ } catch (error) {
150
+ ticket.status_change = null;
151
+ errors.changelog = `${error.name}: ${error.message}`;
152
+ }
153
+ });
154
+ return { me: meName, tickets, comments, ticket_base: `${base}/browse/`, errors };
155
+ };
@@ -0,0 +1,113 @@
1
+ /** Linear connector: your issues in one workspace (optionally one team or project) with comments and the moment they entered their state. API key from the secret store. */
2
+ import { toIsoUtc } from '../lib/text.mjs';
3
+ import { linearQuery } from '../lib/linear-api.mjs';
4
+ import { cachedToken } from '../lib/token-cache.mjs';
5
+
6
+ const DEFAULT_SERVICE = 'whose-turn-linear';
7
+
8
+ export const id = 'linear';
9
+ export const label = 'Linear';
10
+ export const links = (settings) => (settings.workspace ? [{ label: 'Linear', url: `https://linear.app/${settings.workspace}${settings.team ? `/team/${settings.team}` : ''}` }] : []);
11
+ export const fields = [
12
+ { key: 'workspace', label: 'Workspace slug', hint: 'the part after linear.app/ in your issue links', required: true },
13
+ { key: 'api_key', label: 'API key', hint: 'a personal API key, stored in the secret store, never in the config', secret: { account: 'workspace', service: 'token_service', default: DEFAULT_SERVICE } },
14
+ { key: 'token_service', label: 'Secret entry', hint: 'name of the secret-store entry; default whose-turn-linear' },
15
+ { key: 'team', label: 'Team key', hint: 'only issues of this team, for example TEAM; empty for all' },
16
+ { key: 'project', label: 'Project', hint: 'only issues of this project, by name; empty for all' },
17
+ ];
18
+
19
+ const QUERY = `
20
+ query Mine($filter: IssueFilter!, $after: String) {
21
+ viewer { id name displayName }
22
+ issues(filter: $filter, first: 50, after: $after, orderBy: updatedAt) {
23
+ pageInfo { hasNextPage endCursor }
24
+ nodes {
25
+ id identifier title url updatedAt completedAt
26
+ state { name type }
27
+ assignee { id name displayName }
28
+ comments(first: 50) { nodes { id body createdAt url user { id name displayName } } }
29
+ history(first: 25) { nodes { createdAt toState { name } actor { name displayName } } }
30
+ }
31
+ }
32
+ }`;
33
+
34
+ const CATEGORY = { completed: 'done', canceled: 'done', started: 'indeterminate', backlog: 'new', unstarted: 'new', triage: 'new' };
35
+
36
+ const mentionText = (body) => String(body || '').replace(/\[@?([^\]]+)\]\(https:\/\/linear\.app\/[^)]*\/profiles\/[^)]*\)/g, '@$1');
37
+
38
+ const stateEntered = (issue) => {
39
+ const entries = (issue.history?.nodes || []).filter((entry) => entry.toState && entry.toState.name === issue.state?.name);
40
+ if (!entries.length) {
41
+ return null;
42
+ }
43
+ const latest = entries.sort((a, b) => String(b.createdAt).localeCompare(String(a.createdAt)))[0];
44
+ return { since: toIsoUtc(latest.createdAt), by: latest.actor?.displayName || latest.actor?.name || '' };
45
+ };
46
+
47
+ const buildFilter = (settings, done) => {
48
+ const filter = { assignee: { isMe: { eq: true } } };
49
+ if (done) {
50
+ filter.completedAt = { gte: new Date(Date.now() - 30 * 86400000).toISOString() };
51
+ } else {
52
+ filter.state = { type: { nin: ['completed', 'canceled'] } };
53
+ }
54
+ if (settings.team) {
55
+ filter.team = { key: { eq: settings.team } };
56
+ }
57
+ if (settings.project) {
58
+ filter.project = { name: { eqIgnoreCase: settings.project } };
59
+ }
60
+ return filter;
61
+ };
62
+
63
+ const apiKey = async (settings, secrets, cache) => {
64
+ const service = settings.token_service || DEFAULT_SERVICE;
65
+ const token = await cachedToken(cache, () => secrets.get(service, settings.workspace));
66
+ if (!token) {
67
+ throw new Error(`No Linear API key in the secret store (service ${service}, account ${settings.workspace})`);
68
+ }
69
+ return token;
70
+ };
71
+
72
+ const fetchAll = async (http, key, filter) => {
73
+ const nodes = [];
74
+ let after = null;
75
+ let viewer = null;
76
+ for (let page = 0; page < 10; page += 1) {
77
+ const data = await linearQuery(http, key, QUERY, { filter, after });
78
+ viewer = data.viewer;
79
+ nodes.push(...data.issues.nodes);
80
+ if (!data.issues.pageInfo.hasNextPage) {
81
+ break;
82
+ }
83
+ after = data.issues.pageInfo.endCursor;
84
+ }
85
+ return { viewer, nodes };
86
+ };
87
+
88
+ export const normalise = (issues, viewer) => {
89
+ const me = viewer.displayName || viewer.name || '';
90
+ const tickets = [];
91
+ const comments = [];
92
+ for (const issue of issues) {
93
+ tickets.push({
94
+ key: issue.identifier, summary: issue.title, status: issue.state?.name || '', status_category: CATEGORY[issue.state?.type] || 'indeterminate',
95
+ assignee: issue.assignee?.displayName || issue.assignee?.name || 'Unassigned', updated: issue.updatedAt, url: issue.url,
96
+ status_change: issue.state?.type === 'completed' ? null : stateEntered(issue),
97
+ });
98
+ for (const comment of issue.comments?.nodes || []) {
99
+ comments.push({ id: comment.id, key: issue.identifier, at: toIsoUtc(comment.createdAt), author: comment.user?.displayName || comment.user?.name || '', body: mentionText(comment.body), url: comment.url || issue.url });
100
+ }
101
+ }
102
+ const base = tickets[0] ? tickets[0].url.replace(/\/issue\/[^/]+.*$/, '/issue/') : '';
103
+ return { me, tickets, comments, ticket_base: base };
104
+ };
105
+
106
+ export const poll = async ({ settings, http, secrets, cache }) => {
107
+ const key = await apiKey(settings, secrets, cache);
108
+ const [open, done] = await Promise.all([fetchAll(http, key, buildFilter(settings, false)), fetchAll(http, key, buildFilter(settings, true))]);
109
+ const seen = new Set();
110
+ const issues = [...open.nodes, ...done.nodes].filter((issue) => !seen.has(issue.id) && seen.add(issue.id));
111
+ const result = normalise(issues, open.viewer || done.viewer || {});
112
+ return { ...result, ticket_base: result.ticket_base || `https://linear.app/${settings.workspace}/issue/`, errors: {} };
113
+ };
@@ -0,0 +1 @@
1
+ :root{--page-bg: #f3f4f8;--tip-bg: #1f2433;--tip-ink: #e8ecf5;--tip-edge: rgb(255 255 255 / 12%);--tip-shadow: rgb(0 0 0 / 45%)}@media(prefers-color-scheme:dark){:root{--page-bg: #0d0f13}}@media(prefers-color-scheme:light){:root{--tip-bg: #fff;--tip-ink: #1d2023;--tip-edge: #d3d6de;--tip-shadow: rgb(0 0 0 / 18%)}}.app{--md-primary: #2c5697;--md-on-primary: #fff;--md-primary-container: #d8e2ff;--md-on-primary-container: #001a41;--md-secondary-container: #dae2f9;--md-on-secondary-container: #131c2b;--md-tertiary-container: #c8f0ec;--md-on-tertiary-container: #00201e;--md-warn-container: #ffdea6;--md-on-warn-container: #271900;--md-error: #ba1a1a;--md-error-container: #ffdad6;--md-on-error-container: #410002;--md-surface: #f9f9ff;--md-s-low: #fff;--md-s: #f1f3f9;--md-s-high: #e7e9f0;--md-s-highest: #e0e2ea;--md-on-surface: #191c20;--md-on-surface-variant: #44474e;--md-outline: #74777f;--md-outline-variant: #d3d6de;--md-state: 25, 28, 32;--state-hover: rgb(var(--md-state), .08);--focus-ring: 2px solid var(--md-primary);--glass: 255, 255, 255;--glass-a: .52;--glass-edge: rgb(255 255 255 / 70%);--glass-hi: rgb(255 255 255 / 90%);--blob-1: rgb(44 86 151 / 30%);--blob-2: rgb(0 169 224 / 22%);--blob-3: rgb(23 223 220 / 16%);--md-font: roboto, inter, -apple-system, blinkmacsystemfont, "Segoe UI", system-ui, sans-serif;--md-r-card: 12px;--md-r-chip: 8px;--new: #5cc8f0;--new-bg: rgb(92 200 240 / 17%);--new-ink: #04222e;--new-edge: rgb(92 200 240 / 28%);--new-glow: rgb(92 200 240 / 45%);--move: #e0a030;--live-on: #2bb673;--live-off: #d6455d;--live-warn: #e0a030;--live-pulse-from: rgb(43 182 115 / 50%);--live-pulse-to: rgb(43 182 115 / 0%);--live-pulse-rest: rgb(43 182 115 / 60%)}@media(prefers-color-scheme:dark){.app{--md-primary: #adc6ff;--md-on-primary: #0f2f60;--md-primary-container: #2b4678;--md-on-primary-container: #d8e2ff;--md-secondary-container: #3e4759;--md-on-secondary-container: #dae2f9;--md-tertiary-container: #1f504c;--md-on-tertiary-container: #b4efe9;--md-warn-container: #5c4300;--md-on-warn-container: #ffdea6;--md-error: #ffb4ab;--md-error-container: #93000a;--md-on-error-container: #ffdad6;--md-surface: #111318;--md-s-low: #1b1e23;--md-s: #1f2227;--md-s-high: #292c32;--md-s-highest: #34373d;--md-on-surface: #e2e2e9;--md-on-surface-variant: #c4c6d0;--md-outline: #8e9099;--md-outline-variant: #3a3d44;--md-state: 226, 226, 233;--glass: 30, 34, 42;--glass-a: .55;--glass-edge: rgb(255 255 255 / 9%);--glass-hi: rgb(255 255 255 / 6%);--blob-1: rgb(44 86 151 / 55%);--blob-2: rgb(0 169 224 / 28%);--blob-3: rgb(23 223 220 / 14%)}}:root,.page,.page__mount,.app{height:100%;margin:0}:where(.page) button{box-sizing:content-box;margin:0;padding:0;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;word-spacing:inherit;text-align:inherit;text-transform:inherit;text-indent:inherit;text-shadow:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none}.page{background:var(--page-bg);overflow:hidden}.page--scroll{overflow:auto}.dashboard{position:relative;isolation:isolate;box-sizing:border-box;display:grid;gap:12px;padding:14px;border-radius:20px;font-family:var(--md-font);color:var(--md-on-surface);font-size:14px;line-height:1.43;letter-spacing:.01em}.dashboard:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:20px;pointer-events:none;background:radial-gradient(60% 55% at 12% 8%,var(--blob-1),transparent 70%),radial-gradient(45% 50% at 92% 30%,var(--blob-2),transparent 70%),radial-gradient(55% 60% at 55% 105%,var(--blob-3),transparent 70%)}.dashboard__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;width:100%;height:100%;border-radius:20px;pointer-events:none}.dashboard a{color:var(--md-primary);text-decoration:none}.dashboard a:hover{text-decoration:underline;text-underline-offset:3px}.dashboard a:focus-visible{outline:var(--focus-ring);outline-offset:2px;border-radius:4px}.dashboard a.btn{text-decoration:none}.dashboard__layout{display:grid;gap:12px;grid-template-columns:minmax(0,2.2fr) minmax(0,1fr);align-items:start}.dashboard__main{display:grid;gap:12px;min-width:0}.dashboard__feed{position:sticky;top:12px;max-height:calc(100vh - 24px);display:flex;flex-direction:column}@media(min-width:901px){.dashboard.dashboard--fit{height:var(--dashboard-height, calc(100vh - 120px) );grid-template-rows:auto minmax(0,1fr);overflow:hidden}.dashboard--fit .dashboard__layout{min-height:0;height:100%;align-items:stretch}.dashboard--fit .dashboard__main{display:flex;flex-direction:column;gap:12px;min-height:0}.dashboard--fit .dashboard__main>.island{display:flex;flex-direction:column;min-height:0}.dashboard--fit .dashboard__move{flex:0 1 auto;max-height:60%}.dashboard--fit .dashboard__todo{flex:0 0 auto;max-height:30%}.dashboard--fit .dashboard__waiting{flex:1 1 0}.dashboard--fit .dashboard__waiting:not(.island--collapsed){min-height:5rem}.dashboard--fit .dashboard__feed{position:static;max-height:none;height:100%;min-height:0}}.dashboard--fit .dashboard__main:has(.dashboard__waiting.island--collapsed) .dashboard__move:not(.island--collapsed){max-height:none;flex:1 1 0}.dashboard--fit .dashboard__main:has(.dashboard__waiting.island--collapsed):has(.dashboard__move.island--collapsed) .dashboard__todo:not(.island--collapsed){max-height:none;flex:1 1 0}.dashboard--fit .dashboard__main>.island--collapsed{flex:0 0 auto;max-height:none}.dashboard--fit .dashboard__feed.island--collapsed{height:auto;align-self:start}@media(max-width:900px){.page{overflow:auto}.dashboard__layout{grid-template-columns:1fr}.dashboard__feed{position:static;max-height:none}}.island{min-width:0;overflow:hidden;border:1px solid var(--glass-edge);border-radius:var(--md-r-card);background:rgb(var(--glass),var(--glass-a));-webkit-backdrop-filter:blur(8px) saturate(150%);backdrop-filter:blur(8px) saturate(150%);box-shadow:inset 0 1px 0 var(--glass-hi),0 8px 24px #0000002e}.fold-toggle{flex:none;display:inline-grid;place-items:center;width:24px;height:24px;margin-left:6px;border-radius:50%;cursor:pointer;color:var(--md-on-surface-variant);font-size:18px;line-height:1;transition:transform .15s ease}.fold-toggle:hover{background:var(--state-hover)}.fold-toggle--folded{transform:rotate(-90deg)}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-weight:500;color:var(--md-on-surface-variant);background:rgb(var(--glass),.32);-webkit-backdrop-filter:blur(10px) saturate(140%);backdrop-filter:blur(10px) saturate(140%);font-size:12px;line-height:16px;letter-spacing:.03em;padding:8px 12px;border-bottom:1px solid var(--glass-edge);white-space:nowrap}.table td{padding:12px;border-bottom:1px solid var(--md-outline-variant);vertical-align:top}.table th:first-child,.table td:first-child{padding-left:20px}.table th:last-child,.table td:last-child{padding-right:20px}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:var(--state-hover)}.table__actions-col{width:1%}.table__actions{white-space:nowrap}.table__actions>*{vertical-align:middle}.table__ai{margin-right:6px}@media(min-width:901px){.dashboard--fit .table thead th{position:sticky;top:0;z-index:1}}@media(prefers-reduced-transparency:reduce){.island,.table th{background:var(--md-s-low);-webkit-backdrop-filter:none;backdrop-filter:none}}.pill{display:inline-block;max-width:100%;height:24px;padding:0 10px;overflow:hidden;line-height:24px;text-overflow:ellipsis;border-radius:var(--md-r-chip);font-size:12px;font-weight:500;letter-spacing:.03em;white-space:nowrap;background:var(--md-s-high);color:var(--md-on-surface-variant)}.pill--bad{background:var(--md-error-container);color:var(--md-on-error-container)}.pill--warn{background:var(--md-warn-container);color:var(--md-on-warn-container)}.pill--ok{background:var(--md-tertiary-container);color:var(--md-on-tertiary-container)}.pill--info{background:var(--md-secondary-container);color:var(--md-on-secondary-container)}.age{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:6px;font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--md-on-surface-variant);background:var(--md-s-high);cursor:help;white-space:nowrap}.age--old{color:var(--md-on-warn-container);background:var(--md-warn-container)}.handled-chip{display:inline-flex;align-items:center;height:18px;padding:0 7px;margin-left:6px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.04em;background:var(--md-s-highest);color:var(--md-on-surface-variant);vertical-align:middle}.at-you{display:inline-block;padding:1px 7px;border-radius:4px;font-size:11px;font-weight:800;letter-spacing:.03em;background:var(--md-warn-container);color:var(--md-on-warn-container)}.ticket-key{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:500}.timestamp{color:var(--md-on-surface-variant);white-space:nowrap;font-size:12px;font-variant-numeric:tabular-nums}.ai-hint{font-size:12px;opacity:.8}.hint-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;box-sizing:border-box;width:16px;height:16px;padding:0;border:1px solid var(--md-outline);border-radius:50%;font-size:10px;font-weight:700;line-height:1;text-align:center;color:var(--md-on-surface-variant);cursor:pointer;-webkit-user-select:none;user-select:none}.hint-icon:hover,.hint-icon[aria-expanded=true]{color:var(--md-primary);border-color:var(--md-primary)}.hint-icon:focus-visible{outline:var(--focus-ring);outline-offset:2px}.hint-row{display:flex;align-items:center;gap:6px;min-width:0}.empty{color:var(--md-on-surface-variant);font-size:14px;margin:12px 0 0;padding-bottom:14px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@media(max-width:640px){.hide-narrow{display:none}}.btn{display:inline-flex;align-items:center;height:32px;padding:0 14px;border:1px solid var(--md-outline);border-radius:999px;font-size:13px;font-weight:500;color:var(--md-primary);background:transparent;cursor:pointer;-webkit-user-select:none;user-select:none}.btn--tonal{background:var(--md-secondary-container);color:var(--md-on-secondary-container);border-color:transparent}.btn[aria-disabled=true]{opacity:.38;cursor:default;pointer-events:none}.btn:hover{box-shadow:inset 0 0 0 100px rgb(var(--md-state),.08)}.btn:focus-visible{outline:var(--focus-ring);outline-offset:2px}.btn--danger{color:var(--md-error);border-color:var(--md-error)}.input{font:inherit;font-size:13px;padding:7px 10px;border:1px solid var(--md-outline-variant);border-radius:8px;background:var(--md-s-low);color:var(--md-on-surface)}.input:focus{outline:var(--focus-ring);outline-offset:-1px;border-color:transparent}.alert{margin:0 4px 8px;padding:8px 12px;border-radius:10px;font-size:13px;font-family:var(--md-font);background:var(--md-warn-container);color:var(--md-on-warn-container)}.alert--inline{margin:0 0 8px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:24px;background:#00000073;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal__card{width:min(760px,100%);max-height:100%;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--glass-edge);border-radius:16px;background:rgb(var(--glass),.9);-webkit-backdrop-filter:blur(24px) saturate(150%);backdrop-filter:blur(24px) saturate(150%);box-shadow:0 24px 64px #00000073}.modal__head{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--md-outline-variant)}.modal__title{flex:1;min-width:0;margin:0;font-size:18px;font-weight:500}.modal__meta{color:var(--md-on-surface-variant);font-size:12px}.sheet-form{display:flex;flex-direction:column;gap:14px;padding:16px 20px 24px;overflow:auto;font-size:14px}.sheet-form__heading{margin:10px 0 0;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--md-on-surface-variant)}.tippy-box[data-theme~=wt]{border:1px solid var(--tip-edge);border-radius:10px;background:var(--tip-bg);color:var(--tip-ink);box-shadow:0 12px 32px var(--tip-shadow);font:13px/1.5 Roboto,Inter,-apple-system,system-ui,sans-serif}.tippy-box[data-theme~=wt] .tippy-content{padding:10px 12px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:50vh;overflow:auto}.tippy-box[data-theme~=wt]>.tippy-arrow{color:var(--tip-bg)}
@@ -0,0 +1,18 @@
1
+ (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&s(o)}).observe(document,{childList:!0,subtree:!0});function n(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function s(r){if(r.ep)return;r.ep=!0;const i=n(r);fetch(r.href,i)}})();/**
2
+ * @vue/shared v3.5.44
3
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
+ * @license MIT
5
+ **/function Zn(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const j={},tt=[],Ae=()=>{},Xs=()=>!1,sn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),rn=e=>e.startsWith("onUpdate:"),Z=Object.assign,kn=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},ci=Object.prototype.hasOwnProperty,V=(e,t)=>ci.call(e,t),E=Array.isArray,Be=e=>Pt(e)==="[object Map]",it=e=>Pt(e)==="[object Set]",bs=e=>Pt(e)==="[object Date]",R=e=>typeof e=="function",J=e=>typeof e=="string",de=e=>typeof e=="symbol",H=e=>e!==null&&typeof e=="object",Qs=e=>(H(e)||R(e))&&R(e.then)&&R(e.catch),Zs=Object.prototype.toString,Pt=e=>Zs.call(e),ui=e=>Pt(e).slice(8,-1),ks=e=>Pt(e)==="[object Object]",on=e=>J(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,yt=Zn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),ln=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},ai=/-\w/g,he=ln(e=>e.replace(ai,t=>t.slice(1).toUpperCase())),di=/\B([A-Z])/g,Le=ln(e=>e.replace(di,"-$1").toLowerCase()),er=ln(e=>e.charAt(0).toUpperCase()+e.slice(1)),Tn=ln(e=>e?`on${er(e)}`:""),ee=(e,t)=>!Object.is(e,t),Ut=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},tr=(e,t,n,s=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},fn=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let xs;const cn=()=>xs||(xs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function es(e){if(E(e)){const t={};for(let n=0;n<e.length;n++){const s=e[n],r=J(s)?_i(s):es(s);if(r)for(const i in r)t[i]=r[i]}return t}else if(J(e)||H(e))return e}const hi=/;(?![^(]*\))/g,pi=/:([^]+)/,gi=/"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;function _i(e){const t={};return e.replace(gi,n=>n.startsWith("/*")?"":n).split(hi).forEach(n=>{if(n){const s=n.split(pi);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function ts(e){let t="";if(J(e))t=e;else if(E(e))for(let n=0;n<e.length;n++){const s=ts(e[n]);s&&(t+=s+" ")}else if(H(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const mi="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,playsinline,readonly",yi=Zn(mi);function nr(e){return!!e||e===""}function bi(e,t,n){if(e.length!==t.length)return!1;let s=!0;for(let r=0;s&&r<e.length;r++)s=Ge(e[r],t[r],n);return s}function vs(e,t,n){if(e.size!==t.size)return!1;const s=Array.from(t),r=new Uint8Array(s.length);for(const i of e){let o=-1;for(let l=0;l<s.length;l++)if(!r[l]&&Ge(i,s[l],n)){o=l;break}if(o<0)return!1;r[o]=1}return!0}function xi(e,t,n){let s=Be(e),r=Be(t);if(s||r||(s=it(e),r=it(t),s||r))return s&&r?vs(e,t,n):!1;const i=Object.keys(e).length,o=Object.keys(t).length;if(i!==o)return!1;for(const l in e){const c=e.hasOwnProperty(l),d=t.hasOwnProperty(l);if(c&&!d||!c&&d||!Ge(e[l],t[l],n))return!1}return String(e)===String(t)}function Ss(e,t,n,s){n||(n=[new Map,new Map]);const[r,i]=n;if(r.has(e)||i.has(t))return r.get(e)===t&&i.get(t)===e;r.set(e,t),i.set(t,e);const o=s(e,t,n);return r.delete(e),i.delete(t),o}function Ge(e,t,n){if(e===t)return!0;let s=bs(e),r=bs(t);return s||r?s&&r?e.getTime()===t.getTime():!1:(s=de(e),r=de(t),s||r?e===t:(s=E(e),r=E(t),s||r?s&&r?Ss(e,t,n,bi):!1:(s=H(e),r=H(t),s||r?!s||!r?!1:Ss(e,t,n,xi):String(e)===String(t))))}function vi(e,t){return e.findIndex(n=>Ge(n,t))}const sr=e=>!!(e&&e.__v_isRef===!0),Si=e=>J(e)?e:e==null?"":E(e)||H(e)&&(e.toString===Zs||!R(e.toString))?sr(e)?Si(e.value):JSON.stringify(e,rr,2):String(e),rr=(e,t)=>sr(t)?rr(e,t.value):Be(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r],i)=>(n[On(s,i)+" =>"]=r,n),{})}:it(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>On(n))}:de(t)?On(t):H(t)&&!E(t)&&!ks(t)?String(t):t,On=(e,t="")=>{var n;return de(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/**
6
+ * @vue/reactivity v3.5.44
7
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
8
+ * @license MIT
9
+ **/let X;class wi{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&X&&(X.active?(this.parent=X,this.index=(X.scopes||(X.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes){const s=this.scopes.slice();for(t=0,n=s.length;t<n;t++)s[t].pause()}for(t=0,n=this.effects.length;t<n;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,n;if(this.scopes){const r=this.scopes.slice();for(t=0,n=r.length;t<n;t++)r[t].resume()}const s=this.effects.slice();for(t=0,n=s.length;t<n;t++)s[t].resume()}}run(t){if(this._active){const n=X;try{return X=this,t()}finally{X=n}}}on(){++this._on===1&&(this.prevScope=X,X=this)}off(){if(this._on>0&&--this._on===0){if(X===this)X=this.prevScope;else{let t=X;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,s;for(n=0,s=this.effects.length;n<s;n++)this.effects[n].stop();for(this.effects.length=0,n=0,s=this.cleanups.length;n<s;n++)this.cleanups[n]();if(this.cleanups.length=0,this.scopes){const r=this.scopes.slice();for(n=0,s=r.length;n<s;n++)r[n].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const r=this.parent.scopes.pop();r&&r!==this&&(this.parent.scopes[this.index]=r,r.index=this.index)}this.parent=void 0}}}function Ci(){return X}function Gl(e,t=!1){X&&X.cleanups.push(e)}let W;const En=new WeakSet;class ir{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,X&&(X.active?X.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,En.has(this)&&(En.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||lr(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,ws(this),fr(this);const t=W,n=ye;W=this,ye=!0;try{return this.fn()}finally{cr(this),W=t,ye=n,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)rs(t);this.deps=this.depsTail=void 0,ws(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?En.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Ln(this)&&this.run()}get dirty(){return Ln(this)}}let or=0,bt,xt;function lr(e,t=!1){if(e.flags|=8,t){e.next=xt,xt=e;return}e.next=bt,bt=e}function ns(){or++}function ss(){if(--or>0)return;if(xt){let t=xt;for(xt=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;bt;){let t=bt;for(bt=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=n}}if(e)throw e}function fr(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function cr(e){let t,n=e.depsTail,s=n;for(;s;){const r=s.prevDep;s.version===-1?(s===n&&(n=r),rs(s),Ti(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=r}e.deps=t,e.depsTail=n}function Ln(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(ur(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function ur(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===wt)||(e.globalVersion=wt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Ln(e))))return;e.flags|=2;const t=e.dep,n=W,s=ye;W=e,ye=!0;try{fr(e);const r=e.fn(e._value);(t.version===0||ee(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{W=n,ye=s,cr(e),e.flags&=-3}}function rs(e,t=!1){const{dep:n,prevSub:s,nextSub:r}=e;if(s&&(s.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)rs(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Ti(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let ye=!0;const ar=[];function Me(){ar.push(ye),ye=!1}function Re(){const e=ar.pop();ye=e===void 0?!0:e}function ws(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=W;W=void 0;try{t()}finally{W=n}}}let wt=0;class Oi{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class un{constructor(t){this.computed=t,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(t){if(!W||!ye||W===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==W)n=this.activeLink=new Oi(W,this),W.deps?(n.prevDep=W.depsTail,W.depsTail.nextDep=n,W.depsTail=n):W.deps=W.depsTail=n,dr(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=W.depsTail,n.nextDep=void 0,W.depsTail.nextDep=n,W.depsTail=n,W.deps===n&&(W.deps=s)}return n}trigger(t){this.version++,wt++,this.notify(t)}notify(t){ns();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ss()}}}function dr(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)dr(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const qt=new WeakMap,st=Symbol(""),$n=Symbol(""),Ct=Symbol("");function te(e,t,n){if(ye&&W){let s=qt.get(e);s||qt.set(e,s=new Map);let r=s.get(n);r||(s.set(n,r=new un),r.map=s,r.key=n),r.track()}}function Ne(e,t,n,s,r,i){const o=qt.get(e);if(!o){wt++;return}const l=c=>{c&&c.trigger()};if(ns(),t==="clear")o.forEach(l);else{const c=E(e),d=c&&on(n);if(c&&n==="length"){const a=Number(s);o.forEach((p,C)=>{(C==="length"||C===Ct||!de(C)&&C>=a)&&l(p)})}else switch((n!==void 0||o.has(void 0))&&l(o.get(n)),d&&l(o.get(Ct)),t){case"add":c?d&&l(o.get("length")):(l(o.get(st)),Be(e)&&l(o.get($n)));break;case"delete":c||(l(o.get(st)),Be(e)&&l(o.get($n)));break;case"set":Be(e)&&l(o.get(st));break}}ss()}function Ei(e,t){const n=qt.get(e);return n&&n.get(t)}function ot(e){const t=N(e);return t===e||(te(t,"iterate",Ct),ae(e))?t:Ie(e)?qe(e)?t.map(n=>Je(pe(n))):t.map(Je):t.map(pe)}function an(e){return te(e=N(e),"iterate",Ct),e}function Te(e,t){return Ie(e)?Je(qe(e)?pe(t):t):pe(t)}const Ai={__proto__:null,[Symbol.iterator](){return An(this,Symbol.iterator,e=>Te(this,e))},concat(...e){return ot(this).concat(...e.map(t=>E(t)?ot(t):t))},entries(){return An(this,"entries",e=>(e[1]=Te(this,e[1]),e))},every(e,t){return Fe(this,"every",e,t,void 0,arguments)},filter(e,t){return Fe(this,"filter",e,t,n=>n.map(s=>Te(this,s)),arguments)},find(e,t){return Fe(this,"find",e,t,n=>Te(this,n),arguments)},findIndex(e,t){return Fe(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Fe(this,"findLast",e,t,n=>Te(this,n),arguments)},findLastIndex(e,t){return Fe(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Fe(this,"forEach",e,t,void 0,arguments)},includes(...e){return Pn(this,"includes",e)},indexOf(...e){return Pn(this,"indexOf",e)},join(e){return ot(this).join(e)},lastIndexOf(...e){return Pn(this,"lastIndexOf",e)},map(e,t){return Fe(this,"map",e,t,void 0,arguments)},pop(){return pt(this,"pop")},push(...e){return pt(this,"push",e)},reduce(e,...t){return Ts(this,"reduce",e,t)},reduceRight(e,...t){return Ts(this,"reduceRight",e,t)},shift(){return pt(this,"shift")},some(e,t){return Fe(this,"some",e,t,void 0,arguments)},splice(...e){return pt(this,"splice",e)},toReversed(){return ot(this).toReversed()},toSorted(e){return ot(this).toSorted(e)},toSpliced(...e){return ot(this).toSpliced(...e)},unshift(...e){return pt(this,"unshift",e)},values(){return An(this,"values",e=>Te(this,e))}};function An(e,t,n){const s=an(e),r=s[t],i=r.call(s);if(s!==e&&!ae(e)){if(i[Symbol.toStringTag]==="Array Iterator"){const o=Object.create(Object.getPrototypeOf(i));return o.next=()=>Cs(i.next(),n),r!==hr[t]&&Object.defineProperties(o,{return:{get(){const l=i.return;return typeof l=="function"?l.bind(i):l}},throw:{get(){const l=i.throw;return typeof l=="function"?l.bind(i):l}}}),o}i._next=i.next,i.next=()=>Cs(i._next(),n)}return i}function Cs(e,t){return e.done||(e.value=t(e.value)),e}const hr=Array.prototype;function Fe(e,t,n,s,r,i){const o=an(e),l=o!==e&&!ae(e),c=o[t];if(c!==hr[t]){const p=c.apply(e,i);return l?pe(p):p}let d=n;o!==e&&(l?d=function(p,C){return n.call(this,Te(e,p),C,e)}:n.length>2&&(d=function(p,C){return n.call(this,p,C,e)}));const a=c.call(o,d,s);return l&&r?r(a):a}function Ts(e,t,n,s){const r=an(e),i=r!==e&&!ae(e);let o=n,l=!1;r!==e&&(i?(l=s.length===0,o=function(d,a,p){return l&&(l=!1,d=Te(e,d)),n.call(this,d,Te(e,a),p,e)}):n.length>3&&(o=function(d,a,p){return n.call(this,d,a,p,e)}));const c=r[t](o,...s);return l?Te(e,c):c}function Pn(e,t,n){const s=N(e);te(s,"iterate",Ct);const r=s[t](...n);return(r===-1||r===!1)&&pn(n[0])?(n[0]=N(n[0]),s[t](...n)):r}function pt(e,t,n=[]){Me(),ns();const s=N(e)[t].apply(e,n);return ss(),Re(),s}const Pi=Zn("__proto__,__v_isRef,__isVue"),pr=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(de));function Mi(e){de(e)||(e=String(e));const t=N(this);return te(t,"has",e),t.hasOwnProperty(e)}class gr{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){if(n==="__v_skip")return t.__v_skip;const r=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return i;if(n==="__v_raw")return s===(r?i?vr:xr:i?br:yr).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const o=E(t);if(!r){let c;if(o&&(c=Ai[n]))return c;if(n==="hasOwnProperty")return Mi}const l=Reflect.get(t,n,Q(t)?t:s);if((de(n)?pr.has(n):Pi(n))||(r||te(t,"get",n),i))return l;if(Q(l)){const c=o&&on(n)?l:l.value;return r&&H(c)?Un(c):c}return H(l)?r?Un(l):is(l):l}}class _r extends gr{constructor(t=!1){super(!1,t)}set(t,n,s,r){let i=t[n];const o=E(t)&&on(n);if(!this._isShallow){const d=Ie(i);if(!ae(s)&&!Ie(s)&&(i=N(i),s=N(s)),!o&&Q(i)&&!Q(s))return d||(i.value=s),!0}const l=o?Number(n)<t.length:V(t,n),c=Reflect.set(t,n,s,Q(t)?t:r);return t===N(r)&&c&&(l?ee(s,i)&&Ne(t,"set",n,s):Ne(t,"add",n,s)),c}deleteProperty(t,n){const s=V(t,n);t[n];const r=Reflect.deleteProperty(t,n);return r&&s&&Ne(t,"delete",n,void 0),r}has(t,n){const s=Reflect.has(t,n);return(!de(n)||!pr.has(n))&&te(t,"has",n),s}ownKeys(t){return te(t,"iterate",E(t)?"length":st),Reflect.ownKeys(t)}}class mr extends gr{constructor(t=!1){super(!0,t)}set(t,n){return!0}deleteProperty(t,n){return!0}}const Ri=new _r,Ii=new mr,Fi=new _r(!0),ji=new mr(!0),Kn=e=>e,Vt=e=>Reflect.getPrototypeOf(e);function Di(e,t,n){return function(...s){const r=this.__v_raw,i=N(r),o=Be(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,d=r[e](...s),a=n?Kn:t?Je:pe;return!t&&te(i,"iterate",c?$n:st),Z(Object.create(d),{next(){const{value:p,done:C}=d.next();return C?{value:p,done:C}:{value:l?[a(p[0]),a(p[1])]:a(p),done:C}}})}}function Ht(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Ni(e,t){const n={get(r){const i=this.__v_raw,o=N(i),l=N(r);e||(ee(r,l)&&te(o,"get",r),te(o,"get",l));const{has:c}=Vt(o),d=t?Kn:e?Je:pe;if(c.call(o,r))return d(i.get(r));if(c.call(o,l))return d(i.get(l));i!==o&&i.get(r)},get size(){const r=this.__v_raw;return!e&&te(N(r),"iterate",st),r.size},has(r){const i=this.__v_raw,o=N(i),l=N(r);return e||(ee(r,l)&&te(o,"has",r),te(o,"has",l)),r===l?i.has(r):i.has(r)||i.has(l)},forEach(r,i){const o=this,l=o.__v_raw,c=N(l),d=t?Kn:e?Je:pe;return!e&&te(c,"iterate",st),l.forEach((a,p)=>r.call(i,d(a),d(p),o))}};return Z(n,e?{add:Ht("add"),set:Ht("set"),delete:Ht("delete"),clear:Ht("clear")}:{add(r){const i=N(this),o=Vt(i),l=N(r),c=!t&&!ae(r)&&!Ie(r)?l:r;return o.has.call(i,c)||ee(r,c)&&o.has.call(i,r)||ee(l,c)&&o.has.call(i,l)||(i.add(c),Ne(i,"add",c,c)),this},set(r,i){!t&&!ae(i)&&!Ie(i)&&(i=N(i));const o=N(this),{has:l,get:c}=Vt(o);let d=l.call(o,r);d||(r=N(r),d=l.call(o,r));const a=c.call(o,r);return o.set(r,i),d?ee(i,a)&&Ne(o,"set",r,i):Ne(o,"add",r,i),this},delete(r){const i=N(this),{has:o,get:l}=Vt(i);let c=o.call(i,r);c||(r=N(r),c=o.call(i,r)),l&&l.call(i,r);const d=i.delete(r);return c&&Ne(i,"delete",r,void 0),d},clear(){const r=N(this),i=r.size!==0,o=r.clear();return i&&Ne(r,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=Di(r,e,t)}),n}function dn(e,t){const n=Ni(e,t);return(s,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_isShallow"?t:r==="__v_raw"?s:Reflect.get(V(n,r)&&r in s?n:s,r,i)}const Vi={get:dn(!1,!1)},Hi={get:dn(!1,!0)},Li={get:dn(!0,!1)},$i={get:dn(!0,!0)},yr=new WeakMap,br=new WeakMap,xr=new WeakMap,vr=new WeakMap;function Ki(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function is(e){return Ie(e)?e:hn(e,!1,Ri,Vi,yr)}function Ui(e){return hn(e,!1,Fi,Hi,br)}function Un(e){return hn(e,!0,Ii,Li,xr)}function Jl(e){return hn(e,!0,ji,$i,vr)}function hn(e,t,n,s,r){if(!H(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const i=r.get(e);if(i)return i;const o=Ki(ui(e));if(o===0)return e;const l=new Proxy(e,o===2?s:n);return r.set(e,l),l}function qe(e){return Ie(e)?qe(e.__v_raw):!!(e&&e.__v_isReactive)}function Ie(e){return!!(e&&e.__v_isReadonly)}function ae(e){return!!(e&&e.__v_isShallow)}function pn(e){return e?!!e.__v_raw:!1}function N(e){const t=e&&e.__v_raw;return t?N(t):e}function Wi(e){return!V(e,"__v_skip")&&Object.isExtensible(e)&&tr(e,"__v_skip",!0),e}const pe=e=>H(e)?is(e):e,Je=e=>H(e)?Un(e):e;function Q(e){return e?e.__v_isRef===!0:!1}function Bi(e){return Sr(e,!1)}function qi(e){return Sr(e,!0)}function Sr(e,t){return Q(e)?e:new Gi(e,t)}class Gi{constructor(t,n){this.dep=new un,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:N(t),this._value=n?t:pe(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||ae(t)||Ie(t);t=s?t:N(t),ee(t,n)&&(this._rawValue=t,this._value=s?t:pe(t),this.dep.trigger())}}function os(e){return Q(e)?e.value:e}function zl(e){return R(e)?e():os(e)}const Ji={get:(e,t,n)=>t==="__v_raw"?e:os(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return Q(r)&&!Q(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function wr(e){return qe(e)?e:new Proxy(e,Ji)}class zi{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new un,{get:s,set:r}=t(n.track.bind(n),n.trigger.bind(n));this._get=s,this._set=r}get value(){return this._value=this._get()}set value(t){this._set(t)}}function Yi(e){return new zi(e)}class Xi{constructor(t,n,s){this._object=t,this._defaultValue=s,this.__v_isRef=!0,this._value=void 0,this._key=de(n)?n:String(n),this._raw=N(t);let r=!0,i=t;if(!E(t)||de(this._key)||!on(this._key))do r=!pn(i)||ae(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let t=this._object[this._key];return this._shallow&&(t=os(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&Q(this._raw[this._key])){const n=this._object[this._key];if(Q(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return Ei(this._raw,this._key)}}class Qi{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Yl(e,t,n){return Q(e)?e:R(e)?new Qi(e):H(e)&&arguments.length>1?Zi(e,t,n):Bi(e)}function Zi(e,t,n){return new Xi(e,t,n)}class ki{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new un(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=wt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&W!==this)return lr(this,!0),!0}get value(){const t=this.dep.track();return ur(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function eo(e,t,n=!1){let s,r;return R(e)?s=e:(s=e.get,r=e.set),new ki(s,r,n)}const Lt={},Gt=new WeakMap;let ke;function to(e,t=!1,n=ke){if(n){let s=Gt.get(n);s||Gt.set(n,s=[]),s.push(e)}}function no(e,t,n=j){const{immediate:s,deep:r,once:i,scheduler:o,augmentJob:l,call:c}=n,d=P=>r?P:ae(P)||r===!1||r===0?Ve(P,1):Ve(P);let a,p,C,w,I=!1,A=!1;if(Q(e)?(p=()=>e.value,I=ae(e)):qe(e)?(p=()=>d(e),I=!0):E(e)?(A=!0,I=e.some(P=>qe(P)||ae(P)),p=()=>e.map(P=>{if(Q(P))return P.value;if(qe(P))return d(P);if(R(P))return c?c(P,2):P()})):R(e)?t?p=c?()=>c(e,2):e:p=()=>{if(C){Me();try{C()}finally{Re()}}const P=ke;ke=a;try{return c?c(e,3,[w]):e(w)}finally{ke=P}}:p=Ae,t&&r){const P=p,Y=r===!0?1/0:r;p=()=>Ve(P(),Y)}const q=Ci(),B=()=>{a.stop(),q&&q.active&&kn(q.effects,a)};if(i&&t){const P=t;t=(...Y)=>{try{return P(...Y)}finally{B()}}}let D=A?new Array(e.length).fill(Lt):Lt;const L=P=>{if(!(!(a.flags&1)||!a.dirty&&!P))if(t){const Y=a.run();if(P||r||I||(A?Y.some((Ke,xe)=>ee(Ke,D[xe])):ee(Y,D))){const Ke=ke;Me();try{C&&C(),ke=a;const xe=[Y,D===Lt?void 0:A&&D[0]===Lt?[]:D,w];D=Y,c?c(t,3,xe):t(...xe)}finally{ke=Ke,Re()}}}else a.run()};return l&&l(L),a=new ir(p),a.scheduler=o?()=>o(L,!1):L,w=P=>to(P,!1,a),C=a.onStop=()=>{const P=Gt.get(a);if(P){if(c)c(P,4);else for(const Y of P)Y();Gt.delete(a)}},t?s?L(!0):D=a.run():o?o(L.bind(null,!0),!0):a.run(),B.pause=a.pause.bind(a),B.resume=a.resume.bind(a),B.stop=B,B}function Ve(e,t=1/0,n){if(t<=0||!H(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Q(e))Ve(e.value,t,n);else if(E(e))for(let s=0;s<e.length;s++)Ve(e[s],t,n);else if(it(e)||Be(e))e.forEach(s=>{Ve(s,t,n)});else if(ks(e)){for(const s in e)Ve(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&Ve(e[s],t,n)}return e}/**
10
+ * @vue/runtime-core v3.5.44
11
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
12
+ * @license MIT
13
+ **/function Mt(e,t,n,s){try{return s?e(...s):e()}catch(r){gn(r,t,n)}}function be(e,t,n,s){if(R(e)){const r=Mt(e,t,n,s);return r&&Qs(r)&&r.catch(i=>{gn(i,t,n)}),r}if(E(e)){const r=[];for(let i=0;i<e.length;i++)r.push(be(e[i],t,n,s));return r}}function gn(e,t,n,s=!0){const r=t?t.vnode:null,{errorHandler:i,throwUnhandledErrorInProduction:o}=t&&t.appContext.config||j;if(t){let l=t.parent;const c=t.proxy,d=`https://vuejs.org/error-reference/#runtime-${n}`;for(;l;){const a=l.ec;if(a){for(let p=0;p<a.length;p++)if(a[p](e,c,d)===!1)return}l=l.parent}if(i){Me(),Mt(i,null,10,[e,c,d]),Re();return}}so(e,n,r,s,o)}function so(e,t,n,s=!0,r=!1){if(r)throw e;console.error(e)}const ie=[];let me=-1;const Oe=[];let We=null,lt=0;const Cr=Promise.resolve();let Jt=null;function Tr(e){const t=Jt||Cr;return e?t.then(this?e.bind(this):e):t}function ro(e){let t=me+1,n=ie.length;for(;t<n;){const s=t+n>>>1,r=ie[s],i=Tt(r);i<e||i===e&&r.flags&2?t=s+1:n=s}return t}function ls(e){if(!(e.flags&1)){const t=Tt(e),n=ie[ie.length-1];!n||!(e.flags&2)&&t>=Tt(n)?ie.push(e):ie.splice(ro(t),0,e),e.flags|=1,Or()}}function Or(){Jt||(Jt=Cr.then(Pr))}function io(e){if(!E(e))We&&e.id===-1?We.splice(lt+1,0,e):e.flags&1||(Oe.push(e),e.flags|=1);else for(let t=0;t<e.length;t++)Oe.push(e[t]);Or()}function Er(e,t,n,s=me+1){for(;s<ie.length;s++){const r=ie[s];if(r&&r.flags&2){if(e&&r.id!==e.uid||t!==void 0&&!(r.id>=t))continue;ie.splice(s,1),s=e?s-1:me,r.flags&4&&(r.flags&=-2),r(),r.flags&4||(r.flags&=-2)}}}function Ar(e,t,n=0){if(Oe.length){let s=Oe,r=0;if(t){s=[];for(let o=0;o<Oe.length;o++){const l=Oe[o];(l.i!==void 0?!l.i||l.i.uid<n:t.has(l))?Oe[r++]=l:s.push(l)}}const i=[...new Set(s)].sort((o,l)=>Tt(o)-Tt(l));if(Oe.length=r,We){for(let o=0;o<i.length;o++)We.push(i[o]);return}for(We=i,lt=0;lt<We.length;lt++){const o=We[lt];o.flags&4&&(o.flags&=-2),o.flags&8||o(),o.flags&=-2}We=null,lt=0}}let Mn=!1;function oo(e,t){if(Mn){e();return}const n=t===void 0?void 0:new Set(Oe);e(),Mn=!0;try{Er(void 0,t),Ar(void 0,n,t)}finally{Mn=!1}}const Tt=e=>e.id==null?e.flags&2?-1:1/0:e.id;function Pr(e){try{for(me=0;me<ie.length;me++){const t=ie[me];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),Mt(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;me<ie.length;me++){const t=ie[me];t&&(t.flags&=-2)}me=-1,ie.length=0,Ar(),Jt=null,(ie.length||Oe.length)&&Pr()}}let ne=null,Mr=null;function zt(e){const t=ne;return ne=e,Mr=e&&e.type.__scopeId||null,t}function lo(e,t=ne,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&Ds(-1);const i=zt(t),o=He.length;let l;try{l=e(...r)}finally{for(let c=He.length;c>o;c--)as();zt(i),s._d&&Ds(1)}return l};return s._n=!0,s._c=!0,s._d=!0,s}function Xl(e,t){if(ne===null)return e;const n=wn(ne),s=e.dirs||(e.dirs=[]);for(let r=0;r<t.length;r++){let[i,o,l,c=j]=t[r];i&&(R(i)&&(i={mounted:i,updated:i}),i.deep&&Ve(o),s.push({dir:i,instance:n,value:o,oldValue:void 0,arg:l,modifiers:c}))}return e}function Qe(e,t,n,s){const r=e.dirs,i=t&&t.dirs;for(let o=0;o<r.length;o++){const l=r[o];i&&(l.oldValue=i[o].value);let c=l.dir[s];c&&(Me(),be(c,n,8,[e.el,l,e,t]),Re())}}function fo(e,t){if(oe){let n=oe.provides;const s=oe.parent&&oe.parent.provides;s===n&&(n=oe.provides=Object.create(s)),n[e]=t}}function Wt(e,t,n=!1){const s=Sn();if(s||rt){let r=rt?rt._context.provides:s?s.parent==null||s.ce?s.vnode.appContext&&s.vnode.appContext.provides:s.parent.provides:void 0;if(r&&e in r)return r[e];if(arguments.length>1)return n&&R(t)?t.call(s&&s.proxy):t}}function Ql(){return!!(Sn()||rt)}const co=Symbol.for("v-scx"),uo=()=>Wt(co);function Zl(e,t){return _n(e,null,t)}function ao(e,t){return _n(e,null,{flush:"sync"})}function Rn(e,t,n){return _n(e,t,n)}function _n(e,t,n=j){const{immediate:s,deep:r,flush:i,once:o}=n,l=Z({},n),c=t&&s||!t&&i!=="post";let d;if(At){if(i==="sync"){const w=uo();d=w.__watcherHandles||(w.__watcherHandles=[])}else if(!c){const w=()=>{};return w.stop=Ae,w.resume=Ae,w.pause=Ae,w}}const a=oe;l.call=(w,I,A)=>be(w,a,I,A);let p=!1;i==="post"?l.scheduler=w=>{w.i=a,le(w,a&&a.suspense)}:i!=="sync"&&(p=!0,l.scheduler=(w,I)=>{I?w():ls(w)}),l.augmentJob=w=>{t&&(w.flags|=4),p&&(w.flags|=2,a&&(w.id=a.uid,w.i=a))};const C=no(e,t,l);return At&&(d?d.push(C):c&&C()),C}function ho(e,t,n){const s=this.proxy,r=J(e)?e.includes(".")?Rr(s,e):()=>s[e]:e.bind(s,s);let i;R(t)?i=t:(i=t.handler,n=t);const o=Rt(this),l=_n(r,i.bind(s),n);return o(),l}function Rr(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r<n.length&&s;r++)s=s[n[r]];return s}}const po=Symbol("_vte"),mn=e=>e.__isTeleport,In=Symbol("_leaveCb");function go(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==ge){t=n;break}}return t}function Ir(e){if(!fs(e))return mn(e.type)&&e.children?go(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&R(n.default))return n.default()}}function Yt(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;Yt(mn(n.type)&&Ir(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===fe&&E(e.children)){const n=Ur(e.children,!1);n&&Yt(n,t)}}function Wn(e){if(e.component)return Wn(e.component.subTree);if(e.type===fe){const t=E(e.children)&&Ur(e.children,!1);return t?Wn(t):void 0}if(e.type!==ge)return e}function kl(e,t){return R(e)?Z({name:e.name},t,{setup:e}):e}function Fr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function ef(e){const t=Sn(),n=qi(null);if(t){const r=t.refs===j?t.refs={}:t.refs;Object.defineProperty(r,e,{enumerable:!0,get:()=>n.value,set:i=>n.value=i})}return n}function Os(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Xt=new WeakMap;function vt(e,t,n,s,r=!1){if(E(e)){e.forEach((A,q)=>vt(A,t&&(E(t)?t[q]:t),n,s,r));return}if(ft(s)&&!r){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&vt(e,t,n,s.component.subTree);return}const i=s.shapeFlag&4?wn(s.component):s.el,o=r?null:i,{i:l,r:c}=e,d=t&&t.r,a=l.refs===j?l.refs={}:l.refs,p=l.setupState,C=N(p),w=p===j?Xs:A=>Os(a,A)?!1:V(C,A),I=(A,q)=>!(q&&Os(a,q));if(d!=null&&d!==c){if(Es(t),J(d))a[d]=null,w(d)&&(p[d]=null);else if(Q(d)){const A=t;I(d,A.k)&&(d.value=null),A.k&&(a[A.k]=null)}}if(R(c))Mt(c,l,12,[o,a]);else{const A=J(c),q=Q(c);if(A||q){const B=()=>{if(e.f){const D=A?w(c)?p[c]:a[c]:I()||!e.k?c.value:a[e.k];if(r)E(D)&&kn(D,i);else if(E(D))D.includes(i)||D.push(i);else if(A)a[c]=[i],w(c)&&(p[c]=a[c]);else{const L=[i];I(c,e.k)&&(c.value=L),e.k&&(a[e.k]=L)}}else A?(a[c]=o,w(c)&&(p[c]=o)):q&&(I(c,e.k)&&(c.value=o),e.k&&(a[e.k]=o))};if(o){const D=()=>{B(),Xt.delete(e)};D.id=-1,Xt.set(e,D),le(D,n)}else Es(e),B()}}}function Es(e){const t=Xt.get(e);t&&(t.flags|=8,Xt.delete(e))}cn().requestIdleCallback;cn().cancelIdleCallback;const ft=e=>!!e.type.__asyncLoader,fs=e=>e.type.__isKeepAlive;function _o(e,t){jr(e,"a",t)}function mo(e,t){jr(e,"da",t)}function jr(e,t,n=oe){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(yn(t,s,n),n){let r=n.parent;for(;r&&r.parent;)fs(r.parent.vnode)&&yo(s,t,n,r),r=r.parent}}function yo(e,t,n,s){const r=yn(t,e,s,!0);Dr(()=>{kn(s[t],r)},n)}function yn(e,t,n=oe,s=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{Me();const l=Rt(n),c=be(t,n,e,o);return l(),Re(),c});return s?r.unshift(i):r.push(i),i}}const $e=e=>(t,n=oe)=>{(!At||e==="sp")&&yn(e,(...s)=>t(...s),n)},bo=$e("bm"),xo=$e("m"),vo=$e("bu"),So=$e("u"),wo=$e("bum"),Dr=$e("um"),Co=$e("sp"),To=$e("rtg"),Oo=$e("rtc");function Eo(e,t=oe){yn("ec",e,t)}const Ao=Symbol.for("v-ndc");function tf(e,t,n,s){let r;const i=n,o=E(e);if(o||J(e)){const l=o&&qe(e);let c=!1,d=!1;l&&(c=!ae(e),d=Ie(e),e=an(e)),r=new Array(e.length);for(let a=0,p=e.length;a<p;a++)r[a]=t(c?d?Je(pe(e[a])):pe(e[a]):e[a],a,void 0,i)}else if(typeof e=="number")if(!Number.isInteger(e)||e<0)r=[];else{r=new Array(e);for(let l=0;l<e;l++)r[l]=t(l+1,l,void 0,i)}else if(H(e))if(e[Symbol.iterator])r=Array.from(e,(l,c)=>t(l,c,void 0,i));else{const l=Object.keys(e);r=new Array(l.length);for(let c=0,d=l.length;c<d;c++){const a=l[c];r[c]=t(e[a],a,c,i)}}else r=[];return r}function nf(e,t,n,s,r,i){if(n==null&&(n={}),ne.ce||ne.parent&&ft(ne.parent)&&ne.parent.ce){const d=n,a=Object.keys(d).length>0;return t!=="default"&&(d.name=t),Yn(),Xn(fe,null,[Pe("slot",d,s)],a?-2:64)}let o=e[t];o&&o._c&&(o._d=!1);const l=He.length;Yn();let c;try{const d=o&&Nr(o(n)),a=n.key||i||d&&d.key;c=Xn(fe,{key:(a&&!de(a)?a:`_${t}`)+(!d&&s?"_fb":"")},d||(s?s():[]),d&&e._===1?64:-2)}catch(d){for(let a=He.length;a>l;a--)as();throw d}finally{o&&o._c&&(o._d=!0)}return c}function Nr(e){return e.some(t=>vn(t)?!(t.type===ge||t.type===fe&&!Nr(t.children)):!0)?e:null}const Bn=e=>e?ii(e)?wn(e):Bn(e.parent):null,St=Z(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=>Bn(e.parent),$root:e=>Bn(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Hr(e),$forceUpdate:e=>e.f||(e.f=()=>{ls(e.update)}),$nextTick:e=>e.n||(e.n=Tr.bind(e.proxy)),$watch:e=>ho.bind(e)}),Fn=(e,t)=>e!==j&&!e.__isScriptSetup&&V(e,t),Po={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:r,props:i,accessCache:o,type:l,appContext:c}=e;if(t[0]!=="$"){const C=o[t];if(C!==void 0)switch(C){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(Fn(s,t))return o[t]=1,s[t];if(r!==j&&V(r,t))return o[t]=2,r[t];if(V(i,t))return o[t]=3,i[t];if(n!==j&&V(n,t))return o[t]=4,n[t];qn&&(o[t]=0)}}const d=St[t];let a,p;if(d)return t==="$attrs"&&te(e.attrs,"get",""),d(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==j&&V(n,t))return o[t]=4,n[t];if(p=c.config.globalProperties,V(p,t))return p[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:i}=e;return Fn(r,t)?(r[t]=n,!0):s!==j&&V(s,t)?(s[t]=n,!0):V(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,props:i,type:o}},l){let c;return!!(n[l]||e!==j&&l[0]!=="$"&&V(e,l)||Fn(t,l)||V(i,l)||V(s,l)||V(St,l)||V(r.config.globalProperties,l)||(c=o.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:V(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Qt(e){return E(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}function sf(e,t){return!e||!t?e||t:E(e)&&E(t)?e.concat(t):Z({},Qt(e),Qt(t))}let qn=!0;function Mo(e){const t=Hr(e),n=e.proxy,s=e.ctx;qn=!1,t.beforeCreate&&As(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:c,inject:d,created:a,beforeMount:p,mounted:C,beforeUpdate:w,updated:I,activated:A,deactivated:q,beforeDestroy:B,beforeUnmount:D,destroyed:L,unmounted:P,render:Y,renderTracked:Ke,renderTriggered:xe,errorCaptured:Ue,serverPrefetch:It,expose:ze,inheritAttrs:ut,components:Ft,directives:jt,filters:Cn}=t;if(d&&Ro(d,s,null),o)for(const G in o){const U=o[G];R(U)&&(s[G]=U.bind(n))}if(r){const G=r.call(n,n);H(G)&&(e.data=is(G))}if(qn=!0,i)for(const G in i){const U=i[G],Ye=R(U)?U.bind(n,n):R(U.get)?U.get.bind(n,n):Ae,Dt=!R(U)&&R(U.set)?U.set.bind(n):Ae,Xe=dl({get:Ye,set:Dt});Object.defineProperty(s,G,{enumerable:!0,configurable:!0,get:()=>Xe.value,set:_e=>Xe.value=_e})}if(l)for(const G in l)Vr(l[G],s,n,G);if(c){const G=R(c)?c.call(n):c;Reflect.ownKeys(G).forEach(U=>{fo(U,G[U])})}a&&As(a,e,"c");function se(G,U){E(U)?U.forEach(Ye=>G(Ye.bind(n))):U&&G(U.bind(n))}if(se(bo,p),se(xo,C),se(vo,w),se(So,I),se(_o,A),se(mo,q),se(Eo,Ue),se(Oo,Ke),se(To,xe),se(wo,D),se(Dr,P),se(Co,It),E(ze))if(ze.length){const G=e.exposed||(e.exposed={});ze.forEach(U=>{Object.defineProperty(G,U,{get:()=>n[U],set:Ye=>n[U]=Ye,enumerable:!0})})}else e.exposed||(e.exposed={});Y&&e.render===Ae&&(e.render=Y),ut!=null&&(e.inheritAttrs=ut),Ft&&(e.components=Ft),jt&&(e.directives=jt),It&&Fr(e)}function Ro(e,t,n=Ae){E(e)&&(e=Gn(e));for(const s in e){const r=e[s];let i;H(r)?"default"in r?i=Wt(r.from||s,r.default,!0):i=Wt(r.from||s):i=Wt(r),Q(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[s]=i}}function As(e,t,n){be(E(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Vr(e,t,n,s){let r=s.includes(".")?Rr(n,s):()=>n[s];if(J(e)){const i=t[e];R(i)&&Rn(r,i)}else if(R(e))Rn(r,e.bind(n));else if(H(e))if(E(e))e.forEach(i=>Vr(i,t,n,s));else{const i=R(e.handler)?e.handler.bind(n):t[e.handler];R(i)&&Rn(r,i,e)}}function Hr(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let c;return l?c=l:!r.length&&!n&&!s?c=t:(c={},r.length&&r.forEach(d=>Zt(c,d,o,!0)),Zt(c,t,o)),H(t)&&i.set(t,c),c}function Zt(e,t,n,s=!1){const{mixins:r,extends:i}=t;i&&Zt(e,i,n,!0),r&&r.forEach(o=>Zt(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const l=Io[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const Io={data:Ps,props:Ms,emits:Ms,methods:_t,computed:_t,beforeCreate:re,created:re,beforeMount:re,mounted:re,beforeUpdate:re,updated:re,beforeDestroy:re,beforeUnmount:re,destroyed:re,unmounted:re,activated:re,deactivated:re,errorCaptured:re,serverPrefetch:re,components:_t,directives:_t,watch:jo,provide:Ps,inject:Fo};function Ps(e,t){return t?e?function(){return Z(R(e)?e.call(this,this):e,R(t)?t.call(this,this):t)}:t:e}function Fo(e,t){return _t(Gn(e),Gn(t))}function Gn(e){if(E(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function re(e,t){return e?[...new Set([].concat(e,t))]:t}function _t(e,t){return e?Z(Object.create(null),e,t):t}function Ms(e,t){return e?E(e)&&E(t)?[...new Set([...e,...t])]:Z(Object.create(null),Qt(e),Qt(t??{})):t}function jo(e,t){if(!e)return t;if(!t)return e;const n=Z(Object.create(null),e);for(const s in t)n[s]=re(e[s],t[s]);return n}function Lr(){return{app:null,config:{isNativeTag:Xs,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}}let Do=0;function No(e,t){return function(s,r=null){R(s)||(s=Z({},s)),r!=null&&!H(r)&&(r=null);const i=Lr(),o=new WeakSet,l=[];let c=!1;const d=i.app={_uid:Do++,_component:s,_props:r,_container:null,_context:i,_instance:null,version:hl,get config(){return i.config},set config(a){},use(a,...p){return o.has(a)||(a&&R(a.install)?(o.add(a),a.install(d,...p)):R(a)&&(o.add(a),a(d,...p))),d},mixin(a){return i.mixins.includes(a)||i.mixins.push(a),d},component(a,p){return p?(i.components[a]=p,d):i.components[a]},directive(a,p){return p?(i.directives[a]=p,d):i.directives[a]},mount(a,p,C){if(!c){const w=d._ceVNode||Pe(s,r);return w.appContext=i,C===!0?C="svg":C===!1&&(C=void 0),e(w,a,C),c=!0,d._container=a,a.__vue_app__=d,wn(w.component)}},onUnmount(a){l.push(a)},unmount(){c&&(be(l,d._instance,16),e(null,d._container),delete d._container.__vue_app__)},provide(a,p){return i.provides[a]=p,d},runWithContext(a){const p=rt;rt=d;try{return a()}finally{rt=p}}};return d}}let rt=null;function rf(e,t,n=j){const s=Sn(),r=he(t),i=Le(t),o=$r(e,r),l=Yi((c,d)=>{let a,p=j,C;return ao(()=>{const w=e[r];ee(a,w)&&(a=w,d())}),{get(){return c(),n.get?n.get(a):a},set(w){const I=n.set?n.set(w):w;if(!ee(I,a)&&!(p!==j&&ee(w,p)))return;const A=s.vnode.props,q=!!(A&&(t in A||r in A||i in A)&&(`onUpdate:${t}`in A||`onUpdate:${r}`in A||`onUpdate:${i}`in A));q||(a=w,d()),s.emit(`update:${t}`,I),ee(w,p)&&(ee(w,I)&&!ee(I,C)||q&&p!==j&&!ee(I,a))&&d(),p=w,C=I}}});return l[Symbol.iterator]=()=>{let c=0;return{next(){return c<2?{value:c++?o||j:l,done:!1}:{done:!0}}}},l}const $r=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${he(t)}Modifiers`]||e[`${Le(t)}Modifiers`];function Vo(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||j;let r=n;const i=t.startsWith("update:"),o=i&&$r(s,t.slice(7));o&&(o.trim&&(r=n.map(a=>J(a)?a.trim():a)),o.number&&(r=r.map(fn)));let l,c=s[l=Tn(t)]||s[l=Tn(he(t))];!c&&i&&(c=s[l=Tn(Le(t))]),c&&be(c,e,6,r);const d=s[l+"Once"];if(d){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,be(d,e,6,r)}}const Ho=new WeakMap;function Kr(e,t,n=!1){const s=n?Ho:t.emitsCache,r=s.get(e);if(r!==void 0)return r;const i=e.emits;let o={},l=!1;if(!R(e)){const c=d=>{const a=Kr(d,t,!0);a&&(l=!0,Z(o,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(H(e)&&s.set(e,null),null):(E(i)?i.forEach(c=>o[c]=null):Z(o,i),H(e)&&s.set(e,o),o)}function bn(e,t){return!e||!sn(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),V(e,t[0].toLowerCase()+t.slice(1))||V(e,Le(t))||V(e,t))}function Rs(e){const{type:t,vnode:n,proxy:s,withProxy:r,propsOptions:[i],slots:o,attrs:l,emit:c,render:d,renderCache:a,props:p,data:C,setupState:w,ctx:I,inheritAttrs:A}=e,q=zt(e);let B,D;try{if(n.shapeFlag&4){const P=r||s,Y=P;B=Ee(d.call(Y,P,a,p,w,C,I)),D=l}else{const P=t;B=Ee(P.length>1?P(p,{attrs:l,slots:o,emit:c}):P(p,null)),D=t.props?l:Lo(l)}}catch(P){He.length=0,gn(P,e,1),B=Pe(ge)}let L=B;if(D&&A!==!1){const P=Object.keys(D),{shapeFlag:Y}=L;P.length&&Y&7&&(i&&P.some(rn)&&(D=$o(D,i)),L=ct(L,D,!1,!0))}if(n.dirs&&(L=ct(L,null,!1,!0),L.dirs=L.dirs?L.dirs.concat(n.dirs):n.dirs),n.transition){const P=mn(L.type)&&Ir(L)||L;Yt(P,n.transition)}return B=L,zt(q),B}function Ur(e,t=!0){let n;for(let s=0;s<e.length;s++){const r=e[s];if(vn(r)){if(r.type!==ge||r.children==="v-if"){if(n)return;n=r}}else return}return n}const Lo=e=>{let t;for(const n in e)(n==="class"||n==="style"||sn(n))&&((t||(t={}))[n]=e[n]);return t},$o=(e,t)=>{const n={};for(const s in e)(!rn(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function Ko(e,t,n){const{props:s,children:r,component:i}=e,{props:o,children:l,patchFlag:c}=t,d=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?Is(s,o,d):!!o;if(c&8){const a=t.dynamicProps;for(let p=0;p<a.length;p++){const C=a[p];if(Wr(o,s,C)&&!bn(d,C))return!0}}}else return(r||l)&&(!l||!l.$stable)?!0:s===o?!1:s?o?Is(s,o,d):!0:!!o;return!1}function Is(e,t,n){const s=Object.keys(t);if(s.length!==Object.keys(e).length)return!0;for(let r=0;r<s.length;r++){const i=s[r];if(!V(e,i)||Wr(t,e,i)&&!bn(n,i))return!0}return!1}function Wr(e,t,n){const s=e[n],r=t[n];return n==="style"&&H(s)&&H(r)?!Ge(s,r):s!==r}function Uo({vnode:e,parent:t,suspense:n},s){for(;t;){const r=t.subTree;if(r.suspense&&r.suspense.activeBranch===e&&(r.suspense.vnode.el=r.el=s,e=r),r===e)(e=t.vnode).el=s,t=t.parent;else break}n&&n.activeBranch===e&&(n.vnode.el=s)}const Br={},qr=()=>Object.create(Br),Gr=e=>Object.getPrototypeOf(e)===Br;function Wo(e,t,n,s=!1){const r={},i=qr();e.propsDefaults=Object.create(null),Jr(e,t,r,i);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);n?e.props=s?r:Ui(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function Bo(e,t,n,s){const{props:r,attrs:i,vnode:{patchFlag:o}}=e,l=N(r),[c]=e.propsOptions;let d=!1;if((s||o>0)&&!(o&16)){if(o&8){const a=e.vnode.dynamicProps;for(let p=0;p<a.length;p++){let C=a[p];if(bn(e.emitsOptions,C))continue;const w=t[C];if(c)if(V(i,C))w!==i[C]&&(i[C]=w,d=!0);else{const I=he(C);r[I]=Jn(c,l,I,w,e,!1)}else w!==i[C]&&(i[C]=w,d=!0)}}}else{Jr(e,t,r,i)&&(d=!0);let a;for(const p in l)(!t||!V(t,p)&&((a=Le(p))===p||!V(t,a)))&&(c?n&&(n[p]!==void 0||n[a]!==void 0)&&(r[p]=Jn(c,l,p,void 0,e,!0)):delete r[p]);if(i!==l)for(const p in i)(!t||!V(t,p))&&(delete i[p],d=!0)}d&&Ne(e.attrs,"set","")}function Jr(e,t,n,s){const[r,i]=e.propsOptions;let o=!1,l;if(t)for(let c in t){if(yt(c))continue;const d=t[c];let a;r&&V(r,a=he(c))?!i||!i.includes(a)?n[a]=d:(l||(l={}))[a]=d:bn(e.emitsOptions,c)||(!(c in s)||d!==s[c])&&(s[c]=d,o=!0)}if(i){const c=N(n),d=l||j;for(let a=0;a<i.length;a++){const p=i[a];n[p]=Jn(r,c,p,d[p],e,!V(d,p))}}return o}function Jn(e,t,n,s,r,i){const o=e[n];if(o!=null){const l=V(o,"default");if(l&&s===void 0){const c=o.default;if(o.type!==Function&&!o.skipFactory&&R(c)){const{propsDefaults:d}=r;if(n in d)s=d[n];else{const a=Rt(r);s=d[n]=c.call(null,t),a()}}else s=c;r.ce&&r.ce._setProp(n,s)}o[0]&&(i&&!l?s=!1:o[1]&&(s===""||s===Le(n))&&(s=!0))}return s}const qo=new WeakMap;function zr(e,t,n=!1){const s=n?qo:t.propsCache,r=s.get(e);if(r)return r;const i=e.props,o={},l=[];let c=!1;if(!R(e)){const a=p=>{c=!0;const[C,w]=zr(p,t,!0);Z(o,C),w&&l.push(...w)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!i&&!c)return H(e)&&s.set(e,tt),tt;if(E(i))for(let a=0;a<i.length;a++){const p=he(i[a]);Fs(p)&&(o[p]=j)}else if(i)for(const a in i){const p=he(a);if(Fs(p)){const C=i[a],w=o[p]=E(C)||R(C)?{type:C}:Z({},C),I=w.type;let A=!1,q=!0;if(E(I))for(let B=0;B<I.length;++B){const D=I[B],L=R(D)&&D.name;if(L==="Boolean"){A=!0;break}else L==="String"&&(q=!1)}else A=R(I)&&I.name==="Boolean";w[0]=A,w[1]=q,(A||V(w,"default"))&&l.push(p)}}const d=[o,l];return H(e)&&s.set(e,d),d}function Fs(e){return e[0]!=="$"&&!yt(e)}const cs=e=>e==="_"||e==="_ctx"||e==="$stable",us=e=>E(e)?e.map(Ee):[Ee(e)],Go=(e,t,n)=>{if(t._n)return t;const s=lo((...r)=>us(t(...r)),n);return s._c=!1,s},Yr=(e,t,n)=>{const s=e._ctx;for(const r in e){if(cs(r))continue;const i=e[r];if(R(i))t[r]=Go(r,i,s);else if(i!=null){const o=us(i);t[r]=()=>o}}},Xr=(e,t)=>{const n=us(t);e.slots.default=()=>n},Qr=(e,t,n)=>{for(const s in t)(n||!cs(s))&&(e[s]=t[s])},Jo=(e,t,n)=>{const s=e.slots=qr();if(e.vnode.shapeFlag&32){const r=t._;r?(Qr(s,t,n),n&&tr(s,"_",r,!0)):Yr(t,s)}else t&&Xr(e,t)},zo=(e,t,n)=>{const{vnode:s,slots:r}=e;let i=!0,o=j;if(s.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:Qr(r,t,n):(i=!t.$stable,Yr(t,r)),o=t}else t&&(Xr(e,t),o={default:1});if(i)for(const l in r)!cs(l)&&o[l]==null&&delete r[l]},le=ko;function Yo(e){return Xo(e)}function Xo(e,t){const n=cn();n.__VUE__=!0;const{insert:s,remove:r,patchProp:i,createElement:o,createText:l,createComment:c,setText:d,setElementText:a,parentNode:p,nextSibling:C,setScopeId:w=Ae,insertStaticContent:I}=e,A=(f,u,h,y=null,_=null,m=null,v=void 0,x=null,b=!!u.dynamicChildren)=>{if(f===u)return;f&&!gt(f,u)&&(y=Nt(f),_e(f,_,m,!0),f=null),u.patchFlag===-2&&(b=!1,u.dynamicChildren=null),u.dynamicChildren&&f&&f.dynamicChildren&&f.dynamicChildren.hasOnce&&(u.dynamicChildren===tt&&(u.dynamicChildren=[]),u.dynamicChildren.hasOnce=!0);const{type:g,ref:T,shapeFlag:S}=u;switch(g){case xn:q(f,u,h,y);break;case ge:B(f,u,h,y);break;case Dn:f==null&&D(u,h,y,v);break;case fe:Ft(f,u,h,y,_,m,v,x,b);break;default:S&1?Y(f,u,h,y,_,m,v,x,b):S&6?jt(f,u,h,y,_,m,v,x,b):(S&64||S&128)&&g.process(f,u,h,y,_,m,v,x,b,dt)}T!=null&&_?vt(T,f&&f.ref,m,u||f,!u):T==null&&f&&f.ref!=null&&vt(f.ref,null,m,f,!0)},q=(f,u,h,y)=>{if(f==null)s(u.el=l(u.children),h,y);else{const _=u.el=f.el;u.children!==f.children&&d(_,u.children)}},B=(f,u,h,y)=>{f==null?s(u.el=c(u.children||""),h,y):u.el=f.el},D=(f,u,h,y)=>{[f.el,f.anchor]=I(f.children,u,h,y,f.el,f.anchor)},L=({el:f,anchor:u},h,y)=>{let _;for(;f&&f!==u;)_=C(f),s(f,h,y),f=_;s(u,h,y)},P=({el:f,anchor:u})=>{let h;for(;f&&f!==u;)h=C(f),r(f),f=h;r(u)},Y=(f,u,h,y,_,m,v,x,b)=>{if(u.type==="svg"?v="svg":u.type==="math"&&(v="mathml"),f==null)Ke(u,h,y,_,m,v,x,b);else{const g=f.el&&f.el._isVueCE?f.el:null;try{g&&g._beginPatch(),It(f,u,_,m,v,x,b)}finally{g&&g._endPatch()}}},Ke=(f,u,h,y,_,m,v,x)=>{let b,g;const{props:T,shapeFlag:S,transition:O,dirs:M}=f;if(b=f.el=o(f.type,m,T&&T.is,T),S&8?a(b,f.children):S&16&&Ue(f.children,b,null,y,_,jn(f,m),v,x),M&&Qe(f,null,y,"created"),xe(b,f,f.scopeId,v,y),T){for(const K in T)K!=="value"&&!yt(K)&&i(b,K,null,T[K],m,y);"value"in T&&i(b,"value",null,T.value,m),(g=T.onVnodeBeforeMount)&&Ce(g,y,f)}M&&Qe(f,null,y,"beforeMount");const F=Qo(_,O);F&&O.beforeEnter(b),s(b,u,h),((g=T&&T.onVnodeMounted)||F||M)&&le(()=>{try{g&&Ce(g,y,f),F&&O.enter(b),M&&Qe(f,null,y,"mounted")}finally{}},_)},xe=(f,u,h,y,_)=>{if(h&&w(f,h),y)for(let m=0;m<y.length;m++)w(f,y[m]);if(_){let m=_.subTree;if(u===m||ei(m.type)&&(m.ssContent===u||m.ssFallback===u)){const v=_.vnode;xe(f,v,v.scopeId,v.slotScopeIds,_.parent)}}},Ue=(f,u,h,y,_,m,v,x,b=0)=>{for(let g=b;g<f.length;g++){const T=f[g]=x?De(f[g]):Ee(f[g]);A(null,T,u,h,y,_,m,v,x)}},It=(f,u,h,y,_,m,v)=>{const x=u.el=f.el;let{patchFlag:b,dynamicChildren:g,dirs:T}=u;b|=f.patchFlag&16;const S=f.props||j,O=u.props||j;let M;if(h&&Ze(h,!1),(M=O.onVnodeBeforeUpdate)&&Ce(M,h,u,f),T&&Qe(u,f,h,"beforeUpdate"),h&&Ze(h,!0),g&&(!f.dynamicChildren||f.dynamicChildren.length!==g.length)&&(b=0,v=!1,g=null),(S.innerHTML&&O.innerHTML==null||S.textContent&&O.textContent==null)&&a(x,""),g?ze(f.dynamicChildren,g,x,h,y,jn(u,_),m):v||U(f,u,x,null,h,y,jn(u,_),m,!1),b>0){if(b&16)ut(x,S,O,h,_);else if(b&2&&S.class!==O.class&&i(x,"class",null,O.class,_),b&4&&i(x,"style",S.style,O.style,_),b&8){const F=u.dynamicProps;for(let K=0;K<F.length;K++){const $=F[K],z=S[$],k=O[$];(k!==z||$==="value")&&i(x,$,z,k,_,h)}}b&1&&f.children!==u.children&&a(x,u.children)}else!v&&g==null&&ut(x,S,O,h,_);((M=O.onVnodeUpdated)||T)&&le(()=>{M&&Ce(M,h,u,f),T&&Qe(u,f,h,"updated")},y)},ze=(f,u,h,y,_,m,v)=>{for(let x=0;x<u.length;x++){const b=f[x],g=u[x],T=b.el||zn(b),S=T&&(b.type===fe||!gt(b,g)||b.shapeFlag&198)?p(T):h;A(b,g,S,null,y,_,m,v,!0)}},ut=(f,u,h,y,_)=>{if(u!==h){if(u!==j)for(const m in u)!yt(m)&&!(m in h)&&i(f,m,u[m],null,_,y);for(const m in h){if(yt(m))continue;const v=h[m],x=u[m];v!==x&&m!=="value"&&i(f,m,x,v,_,y)}"value"in h&&i(f,"value",u.value,h.value,_)}},Ft=(f,u,h,y,_,m,v,x,b)=>{const g=u.el=f?f.el:l(""),T=u.anchor=f?f.anchor:l("");let{patchFlag:S,dynamicChildren:O,slotScopeIds:M}=u;M&&(x=x?x.concat(M):M),f==null?(s(g,h,y),s(T,h,y),Ue(u.children||[],h,T,_,m,v,x,b)):S>0&&S&64&&O&&f.dynamicChildren&&f.dynamicChildren.length===O.length?(ze(f.dynamicChildren,O,h,_,m,v,x),(u.key!=null||_&&u===_.subTree)&&Zr(f,u,!0)):U(f,u,h,T,_,m,v,x,b)},jt=(f,u,h,y,_,m,v,x,b)=>{u.slotScopeIds=x,f==null?u.shapeFlag&512?_.ctx.activate(u,h,y,v,b):Cn(u,h,y,_,m,v,b):ds(f,u,b)},Cn=(f,u,h,y,_,m,v)=>{const x=f.component=ol(f,y,_);if(fs(f)&&(x.ctx.renderer=dt),ll(x,!1,v),x.asyncDep){if(_&&_.registerDep(x,se,v,m),!f.el){const b=x.subTree=Pe(ge);B(null,b,u,h),f.placeholder=b.el}}else se(x,f,u,h,_,m,v)},ds=(f,u,h)=>{const y=u.component=f.component;if(Ko(f,u,h))if(y.asyncDep&&!y.asyncResolved){u.el=f.el,u.placeholder=f.placeholder,G(y,u,h);return}else y.next=u,y.update();else u.el=f.el,u.placeholder=f.placeholder,y.vnode=u},se=(f,u,h,y,_,m,v)=>{const x=()=>{if(f.isMounted){let{next:S,bu:O,u:M,parent:F,vnode:K}=f;{const Se=kr(f);if(Se){S&&(S.el=K.el,G(f,S,v)),Se.asyncDep.then(()=>{le(()=>{f.isUnmounted||g()},_)});return}}let $=S,z;Ze(f,!1),S?(S.el=K.el,G(f,S,v)):S=K,O&&Ut(O),(z=S.props&&S.props.onVnodeBeforeUpdate)&&Ce(z,F,S,K),Ze(f,!0);const k=Rs(f),ve=f.subTree;f.subTree=k,A(ve,k,p(ve.el),Nt(ve),f,_,m),S.el=k.el,$===null&&Uo(f,k.el),M&&le(M,_),(z=S.props&&S.props.onVnodeUpdated)&&le(()=>Ce(z,F,S,K),_)}else{let S;const{el:O,props:M}=u,{bm:F,m:K,parent:$,root:z,type:k}=f,ve=ft(u);Ze(f,!1),F&&Ut(F),!ve&&(S=M&&M.onVnodeBeforeMount)&&Ce(S,$,u),Ze(f,!0);{z.ce&&z.ce._hasShadowRoot()&&z.ce._injectChildStyle(k,f.parent?f.parent.type:void 0);const Se=f.subTree=Rs(f);A(null,Se,h,y,f,_,m),u.el=Se.el}if(K&&le(K,_),!ve&&(S=M&&M.onVnodeMounted)){const Se=u;le(()=>Ce(S,$,Se),_)}(u.shapeFlag&256||$&&ft($.vnode)&&$.vnode.shapeFlag&256)&&f.a&&le(f.a,_),f.isMounted=!0,u=h=y=null}};f.scope.on();const b=f.effect=new ir(x);f.scope.off();const g=f.update=b.run.bind(b),T=f.job=b.runIfDirty.bind(b);T.i=f,T.id=f.uid,b.scheduler=()=>ls(T),Ze(f,!0),g()},G=(f,u,h)=>{u.component=f;const y=f.vnode.props;f.vnode=u,f.next=null,Bo(f,u.props,y,h),zo(f,u.children,h),Me(),Er(f),Re()},U=(f,u,h,y,_,m,v,x,b=!1)=>{const g=f&&f.children,T=f?f.shapeFlag:0,S=u.children,{patchFlag:O,shapeFlag:M}=u;if(O>0){if(O&128){Dt(g,S,h,y,_,m,v,x,b);return}else if(O&256){Ye(g,S,h,y,_,m,v,x,b);return}}M&8?(T&16&&at(g,_,m),S!==g&&a(h,S)):T&16?M&16?Dt(g,S,h,y,_,m,v,x,b):at(g,_,m,!0):(T&8&&a(h,""),M&16&&Ue(S,h,y,_,m,v,x,b))},Ye=(f,u,h,y,_,m,v,x,b)=>{f=f||tt,u=u||tt;const g=f.length,T=u.length,S=Math.min(g,T);let O;for(O=0;O<S;O++){const M=u[O]=b?De(u[O]):Ee(u[O]);A(f[O],M,h,null,_,m,v,x,b)}g>T?at(f,_,m,!0,!1,S):Ue(u,h,y,_,m,v,x,b,S)},Dt=(f,u,h,y,_,m,v,x,b)=>{let g=0;const T=u.length;let S=f.length-1,O=T-1;for(;g<=S&&g<=O;){const M=f[g],F=u[g]=b?De(u[g]):Ee(u[g]);if(gt(M,F))A(M,F,h,null,_,m,v,x,b);else break;g++}for(;g<=S&&g<=O;){const M=f[S],F=u[O]=b?De(u[O]):Ee(u[O]);if(gt(M,F))A(M,F,h,null,_,m,v,x,b);else break;S--,O--}if(g>S){if(g<=O){const M=O+1,F=M<T?u[M].el:y;for(;g<=O;)A(null,u[g]=b?De(u[g]):Ee(u[g]),h,F,_,m,v,x,b),g++}}else if(g>O)for(;g<=S;)_e(f[g],_,m,!0),g++;else{const M=g,F=g,K=new Map;for(g=F;g<=O;g++){const ce=u[g]=b?De(u[g]):Ee(u[g]);ce.key!=null&&K.set(ce.key,g)}let $,z=0;const k=O-F+1;let ve=!1,Se=0;const ht=new Array(k);for(g=0;g<k;g++)ht[g]=0;for(g=M;g<=S;g++){const ce=f[g];if(z>=k){_e(ce,_,m,!0);continue}let we;if(ce.key!=null)we=K.get(ce.key);else for($=F;$<=O;$++)if(ht[$-F]===0&&gt(ce,u[$])){we=$;break}we===void 0?_e(ce,_,m,!0):(ht[we-F]=g+1,we>=Se?Se=we:ve=!0,A(ce,u[we],h,null,_,m,v,x,b),z++)}const _s=ve?Zo(ht):tt;for($=_s.length-1,g=k-1;g>=0;g--){const ce=F+g,we=u[ce],ms=u[ce+1],ys=ce+1<T?ms.el||zn(ms):y;ht[g]===0?A(null,we,h,ys,_,m,v,x,b):ve&&($<0||g!==_s[$]?Xe(we,h,ys,2):$--)}}},Xe=(f,u,h,y,_=null)=>{const{el:m,type:v,transition:x,children:b,shapeFlag:g}=f;if(g&6){Xe(f.component.subTree,u,h,y);return}if(g&128){f.suspense.move(u,h,y);return}if(g&64){v.move(f,u,h,dt);return}if(v===fe){s(m,u,h);for(let S=0;S<b.length;S++)Xe(b[S],u,h,y);s(f.anchor,u,h);return}if(v===Dn){L(f,u,h);return}if(y!==2&&g&1&&x)if(y===0)x.persisted&&!m[In]?s(m,u,h):(x.beforeEnter(m),s(m,u,h),le(()=>x.enter(m),_));else{const{leave:S,delayLeave:O,afterLeave:M}=x,F=()=>{f.ctx.isUnmounted?r(m):s(m,u,h)},K=()=>{const $=m._isLeaving||!!m[In];m._isLeaving&&m[In](!0),x.persisted&&!$?F():S(m,()=>{F(),M&&M()})};O?O(m,F,K):K()}else s(m,u,h)},_e=(f,u,h,y=!1,_=!1)=>{const{type:m,props:v,ref:x,children:b,dynamicChildren:g,shapeFlag:T,patchFlag:S,dirs:O,cacheIndex:M,memo:F}=f;if((S===-2||g&&g.hasOnce)&&(_=!1),x!=null&&(Me(),vt(x,null,h,f,!0),Re()),M!=null&&(!f.ctx||f.ctx===u)&&(u.renderCache[M]=void 0),T&256){u.ctx.deactivate(f);return}const K=T&1&&O,$=!ft(f);let z;if($&&(z=v&&v.onVnodeBeforeUnmount)&&Ce(z,u,f),T&6)fi(f.component,h,y);else{if(T&128){f.suspense.unmount(h,y);return}K&&Qe(f,null,u,"beforeUnmount"),T&64?f.type.remove(f,u,h,dt,y):g&&!g.hasOnce&&(m!==fe||S>0&&S&64)?at(g,u,h,!1,!0):(m===fe&&S&384||!_&&T&16)&&at(b,u,h),y&&hs(f)}const k=F!=null&&M==null;($&&(z=v&&v.onVnodeUnmounted)||K||k)&&le(()=>{z&&Ce(z,u,f),K&&Qe(f,null,u,"unmounted"),k&&(f.el=null)},h)},hs=f=>{const{type:u,el:h,anchor:y,transition:_}=f,m=u===fe;if(m&&!_){ps(h,y);return}if(u===Dn){P(f),_&&!_.persisted&&_.afterLeave&&_.afterLeave();return}const v=m?Wn(f):f,x=()=>{m?p(h)&&ps(h,y):r(h),_&&!_.persisted&&_.afterLeave&&_.afterLeave()};if(v&&v.shapeFlag&1&&_&&!_.persisted){const{leave:b,delayLeave:g}=_,T=v.el,S=()=>b(T,x);g?g(T,x,S):S()}else x()},ps=(f,u)=>{let h;for(;f!==u;)h=C(f),r(f),f=h;r(u)},fi=(f,u,h)=>{const{bum:y,scope:_,job:m,subTree:v,um:x,m:b,a:g}=f;js(b),js(g),y&&Ut(y),_.stop(),m?(m.flags|=8,_e(v,f,u,h)):f.vnode.el&&v&&(v.transition=f.vnode.transition,_e(v,f,u,h)),x&&le(x,u),le(()=>{f.isUnmounted=!0},u)},at=(f,u,h,y=!1,_=!1,m=0)=>{for(let v=m;v<f.length;v++)_e(f[v],u,h,y,_)},Nt=f=>{if(f.shapeFlag&6)return Nt(f.component.subTree);if(f.shapeFlag&128)return f.suspense.next();const u=C(f.anchor||f.el),h=u&&u[po];return h?C(h):u},gs=(f,u,h)=>{const y=f&&u._vnode?void 0:f&&f.component?f.component.uid:il();oo(()=>{f==null?u._vnode&&_e(u._vnode,null,null,!0):A(u._vnode||null,f,u,null,null,null,h),u._vnode=f},y)},dt={p:A,um:_e,m:Xe,r:hs,mt:Cn,mc:Ue,pc:U,pbc:ze,n:Nt,o:e};return{render:gs,hydrate:void 0,createApp:No(gs)}}function jn({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 Ze({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Qo(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Zr(e,t,n=!1){const s=e.children,r=t.children;if(E(s)&&E(r))for(let i=0;i<s.length;i++){const o=s[i];let l=r[i];l.shapeFlag&1&&!l.dynamicChildren&&((l.patchFlag<=0||l.patchFlag===32)&&(l=r[i]=De(r[i]),l.el=o.el),!n&&l.patchFlag!==-2&&Zr(o,l)),l.type===xn&&(l.patchFlag===-1&&(l=r[i]=De(l)),l.el=o.el),l.type===ge&&!l.el&&(l.el=o.el)}}function Zo(e){const t=e.slice(),n=[0];let s,r,i,o,l;const c=e.length;for(s=0;s<c;s++){const d=e[s];if(d!==0){if(r=n[n.length-1],e[r]<d){t[s]=r,n.push(s);continue}for(i=0,o=n.length-1;i<o;)l=i+o>>1,e[n[l]]<d?i=l+1:o=l;d<e[n[i]]&&(i>0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}function kr(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:kr(t)}function js(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function zn(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?zn(t.subTree):null}const ei=e=>e.__isSuspense;function ko(e,t){t&&t.pendingBranch?E(e)?t.effects.push(...e):t.effects.push(e):io(e)}const fe=Symbol.for("v-fgt"),xn=Symbol.for("v-txt"),ge=Symbol.for("v-cmt"),Dn=Symbol.for("v-stc"),He=[];let ue=null;function Yn(e=!1){He.push(ue=e?null:[])}function as(){He.pop(),ue=He[He.length-1]||null}let Ot=1;function Ds(e,t=!1){Ot+=e,e<0&&ue&&t&&(ue.hasOnce=!0)}function ti(e){return e.dynamicChildren=Ot>0?ue||tt:null,as(),Ot>0&&ue&&ue.push(e),e}function of(e,t,n,s,r,i){return ti(si(e,t,n,s,r,i,!0))}function Xn(e,t,n,s,r){return ti(Pe(e,t,n,s,r,!0))}function vn(e){return e?e.__v_isVNode===!0:!1}function gt(e,t){return e.type===t.type&&e.key===t.key}const ni=({key:e})=>e??null,Bt=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?J(e)||Q(e)||R(e)?{i:ne,r:e,k:t,f:!!n}:e:null);function si(e,t=null,n=null,s=0,r=null,i=e===fe?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ni(t),ref:t&&Bt(t),scopeId:Mr,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:i,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:ne};return l?(kt(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=J(n)?8:16),Ot>0&&!o&&ue&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&ue.push(c),c}const Pe=el;function el(e,t=null,n=null,s=0,r=null,i=!1){if((!e||e===Ao)&&(e=ge),vn(e)){const l=ct(e,t,!0);return n&&kt(l,n),Ot>0&&!i&&ue&&(l.shapeFlag&6?ue[ue.indexOf(e)]=l:ue.push(l)),l.patchFlag=-2,l}if(al(e)&&(e=e.__vccOpts),t){t=tl(t);let{class:l,style:c}=t;l&&!J(l)&&(t.class=ts(l)),H(c)&&(pn(c)&&!E(c)&&(c=Z({},c)),t.style=es(c))}const o=J(e)?1:ei(e)?128:mn(e)?64:H(e)?4:R(e)?2:0;return si(e,t,n,s,r,o,i,!0)}function tl(e){return e?pn(e)||Gr(e)?Z({},e):e:null}function ct(e,t,n=!1,s=!1){const{props:r,ref:i,patchFlag:o,children:l,transition:c}=e,d=t?sl(r||{},t):r,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:d,key:d&&ni(d),ref:t&&t.ref?n&&i?E(i)?i.concat(Bt(t)):[i,Bt(t)]:Bt(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==fe?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&&ct(e.ssContent),ssFallback:e.ssFallback&&ct(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return c&&s&&Yt(a,c.clone(a)),a}function nl(e=" ",t=0){return Pe(xn,null,e,t)}function lf(e="",t=!1){return t?(Yn(),Xn(ge,null,e)):Pe(ge,null,e)}function Ee(e){return e==null||typeof e=="boolean"?Pe(ge):E(e)?Pe(fe,null,e.slice()):vn(e)?De(e):Pe(xn,null,String(e))}function De(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ct(e)}function kt(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(E(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),kt(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!Gr(t)?t._ctx=ne:r===3&&ne&&(ne.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(R(t)){if(s&65){kt(e,{default:t});return}t={default:t,_ctx:ne},n=32}else t=String(t),s&64?(n=16,t=[nl(t)]):n=8;e.children=t,e.shapeFlag|=n}function sl(...e){const t={};for(let n=0;n<e.length;n++){const s=e[n];for(const r in s)if(r==="class")t.class!==s.class&&(t.class=ts([t.class,s.class]));else if(r==="style")t.style=es([t.style,s.style]);else if(sn(r)){const i=t[r],o=s[r];o&&i!==o&&!(E(i)&&i.includes(o))?t[r]=i?[].concat(i,o):o:o==null&&i==null&&!rn(r)&&(t[r]=o)}else r!==""&&(t[r]=s[r])}return t}function Ce(e,t,n,s=null){be(e,t,7,[n,s])}const rl=Lr();let ri=0;function il(){return ri}function ol(e,t,n){const s=e.type,r=(t?t.appContext:e.appContext)||rl,i={uid:ri++,vnode:e,type:s,parent:t,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new wi(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(r.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:zr(s,r),emitsOptions:Kr(s,r),emit:null,emitted:null,propsDefaults:j,inheritAttrs:s.inheritAttrs,ctx:j,data:j,props:j,attrs:j,slots:j,refs:j,setupState:j,setupContext:null,suspense:n,suspenseId:n?n.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 i.ctx={_:i},i.root=t?t.root:i,i.emit=Vo.bind(null,i),e.ce&&e.ce(i),i}let oe=null;const Sn=()=>oe||ne;let en,Et;{const e=cn(),t=(n,s)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(s),i=>{r.length>1?r.forEach(o=>o(i)):r[0](i)}};en=t("__VUE_INSTANCE_SETTERS__",n=>oe=n),Et=t("__VUE_SSR_SETTERS__",n=>At=n)}const Rt=e=>{const t=oe;return en(e),e.scope.on(),()=>{e.scope.off(),en(t)}},Ns=()=>{oe&&oe.scope.off(),en(null)};function ii(e){return e.vnode.shapeFlag&4}let At=!1;function ll(e,t=!1,n=!1){t&&Et(t);const{props:s,children:r}=e.vnode,i=ii(e);Wo(e,s,i,t),Jo(e,r,n||t);const o=i?fl(e,t):void 0;return t&&Et(!1),o}function fl(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Po);const{setup:s}=n;if(s){Me();const r=e.setupContext=s.length>1?ul(e):null,i=Rt(e),o=Mt(s,e,0,[e.props,r]),l=Qs(o);if(Re(),i(),(l||e.sp)&&!ft(e)&&Fr(e),l){if(o.then(Ns,Ns),t)return o.then(c=>{Et(!0);try{Vs(e,c,t)}finally{Et(!1)}}).catch(c=>{gn(c,e,0)});e.asyncDep=o}else Vs(e,o)}else oi(e)}function Vs(e,t,n){R(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:H(t)&&(e.setupState=wr(t)),oi(e)}function oi(e,t,n){const s=e.type;e.render||(e.render=s.render||Ae);{const r=Rt(e);Me();try{Mo(e)}finally{Re(),r()}}}const cl={get(e,t){return te(e,"get",""),e[t]}};function ul(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,cl),slots:e.slots,emit:e.emit,expose:t}}function wn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(wr(Wi(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in St)return St[n](e)},has(t,n){return n in t||n in St}})):e.proxy}function al(e){return R(e)&&"__vccOpts"in e}const dl=(e,t)=>eo(e,t,At),hl="3.5.44";/**
14
+ * @vue/runtime-dom v3.5.44
15
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
16
+ * @license MIT
17
+ **/let Qn;const Hs=typeof window<"u"&&window.trustedTypes;if(Hs)try{Qn=Hs.createPolicy("vue",{createHTML:e=>e})}catch{}const li=Qn?e=>Qn.createHTML(e):e=>e,pl="http://www.w3.org/2000/svg",gl="http://www.w3.org/1998/Math/MathML",je=typeof document<"u"?document:null,Ls=je&&je.createElement("template"),_l={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?je.createElementNS(pl,e):t==="mathml"?je.createElementNS(gl,e):n?je.createElement(e,{is:n}):je.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>je.createTextNode(e),createComment:e=>je.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>je.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,i){const o=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{Ls.innerHTML=li(s==="svg"?`<svg>${e}</svg>`:s==="mathml"?`<math>${e}</math>`:e);const l=Ls.content;if(s==="svg"||s==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},ml=Symbol("_vtc");function yl(e,t,n){const s=e[ml];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const $s=Symbol("_vod"),bl=Symbol("_vsh"),xl=Symbol(""),vl=/(?:^|;)\s*display\s*:/;function Sl(e,t,n){const s=e.style,r=J(n);let i=!1;if(n&&!r){if(t)if(J(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&mt(s,l,"")}else for(const o in t)n[o]==null&&mt(s,o,"");for(const o in n){o==="display"&&(i=!0);const l=n[o];l!=null?Cl(e,o,!J(t)&&t?t[o]:void 0,l)||mt(s,o,l):mt(s,o,"")}}else if(r){if(t!==n){const o=s[xl];o&&(n+=";"+o),s.cssText=n,i=vl.test(n)}}else t&&e.removeAttribute("style");$s in e&&((!r||t!==n)&&(e[$s]=i?s.display:""),e[bl]&&(s.display="none"))}const $t=/\s*!important$/;function mt(e,t,n){if(E(n))n.forEach(s=>mt(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))$t.test(n)?e.setProperty(t,n.replace($t,""),"important"):e.setProperty(t,n);else{const s=wl(e,t);$t.test(n)?e.setProperty(Le(s),n.replace($t,""),"important"):e[s]=n}}const Ks=["Webkit","Moz","ms"],Nn={};function wl(e,t){const n=Nn[t];if(n)return n;let s=he(t);if(s!=="filter"&&s in e)return Nn[t]=s;s=er(s);for(let r=0;r<Ks.length;r++){const i=Ks[r]+s;if(i in e)return Nn[t]=i}return t}function Cl(e,t,n,s){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&J(s)&&n===s}const Us="http://www.w3.org/1999/xlink";function Ws(e,t,n,s,r,i=yi(t)){s&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(Us,t.slice(6,t.length)):e.setAttributeNS(Us,t,n):n==null||i&&!nr(n)?e.removeAttribute(t):e.setAttribute(t,i?"":de(n)?String(n):n)}function Bs(e,t,n,s,r){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?li(n):n);return}const i=e.tagName;if(t==="value"&&i!=="PROGRESS"&&!i.includes("-")){const l=i==="OPTION"?e.getAttribute("value")||"":e.value,c=n==null?e.type==="checkbox"?"on":"":String(n);(l!==c||!("_value"in e))&&(e.value=c),n==null&&e.removeAttribute(t),e._value=n;return}let o=!1;if(n===""||n==null){const l=typeof e[t];l==="boolean"?n=nr(n):n==null&&l==="string"?(n="",o=!0):l==="number"&&(n=0,o=!0)}try{e[t]=n}catch{}o&&e.removeAttribute(r||t)}function et(e,t,n,s){e.addEventListener(t,n,s)}function Tl(e,t,n,s){e.removeEventListener(t,n,s)}const qs=Symbol("_vei");function Ol(e,t,n,s,r=null){const i=e[qs]||(e[qs]={}),o=i[t];if(s&&o)o.value=s;else{const[l,c]=Pl(t);if(s){const d=i[t]=Il(s,r);et(e,l,d,c)}else o&&(Tl(e,l,o,c),i[t]=void 0)}}const El=/(Once|Passive|Capture)$/,Al=/^on:?(?:Once|Passive|Capture)$/;function Pl(e){let t,n;for(;(n=e.match(El))&&!Al.test(e);)t||(t={}),e=e.slice(0,e.length-n[1].length),t[n[1].toLowerCase()]=!0;return[e[2]===":"?e.slice(3):Le(e.slice(2)),t]}let Vn=0;const Ml=Promise.resolve(),Rl=()=>Vn||(Ml.then(()=>Vn=0),Vn=Date.now());function Il(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;const r=n.value;if(E(r)){const i=s.stopImmediatePropagation;s.stopImmediatePropagation=()=>{i.call(s),s._stopped=!0};const o=r.slice(),l=[s];for(let c=0;c<o.length&&!s._stopped;c++){const d=o[c];d&&be(d,t,5,l)}}else be(r,t,5,[s])};return n.value=e,n.attached=Rl(),n}const Gs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Fl=(e,t,n,s,r,i)=>{const o=r==="svg";t==="class"?yl(e,s,o):t==="style"?Sl(e,n,s):sn(t)?rn(t)||Ol(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):jl(e,t,s,o))?(Bs(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Ws(e,t,s,o,i,t!=="value")):e._isVueCE&&(Dl(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!J(s)))?Bs(e,he(t),s,i,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Ws(e,t,s,o))};function jl(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&Gs(t)&&R(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"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return Gs(t)&&J(n)?!1:t in e}function Dl(e,t){const n=e._def.props;if(!n)return!1;const s=he(t);return Array.isArray(n)?n.some(r=>he(r)===s):Object.keys(n).some(r=>he(r)===s)}const tn=e=>{const t=e.props["onUpdate:modelValue"]||!1;return E(t)?n=>Ut(t,n):t};function Nl(e){e.target.composing=!0}function Js(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const nt=Symbol("_assign"),Kt=Symbol("_initialValue");function Hn(e,t,n){return t&&(e=e.trim()),n&&(e=fn(e)),e}const ff={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e.parentNode&&(e.type==="text"?e[Kt]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Kt]=e.defaultValue.replace(/\r\n?/g,`
18
+ `))),e[nt]=tn(r);const i=s||r.props&&r.props.type==="number";et(e,t?"change":"input",o=>{o.target.composing||e[nt](Hn(e.value,n,i))}),(n||i)&&et(e,"change",()=>{e.value=Hn(e.value,n,i)}),t||(et(e,"compositionstart",Nl),et(e,"compositionend",Js),et(e,"change",Js))},mounted(e,{value:t,modifiers:{trim:n,number:s}}){const r=t??"",i=e[Kt];delete e[Kt],i!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==i?e[nt](Hn(e.value,n,s)):e.value=r},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:r,number:i}},o){if(e[nt]=tn(o),e.composing)return;const l=(i||e.type==="number")&&!/^0\d/.test(e.value)?fn(e.value):e.value,c=t??"";if(l===c)return;const d=e.getRootNode();(d instanceof Document||d instanceof ShadowRoot)&&d.activeElement===e&&e.type!=="range"&&(s&&t===n||r&&e.value.trim()===c)||(e.value=c)}},cf={deep:!0,created(e,{value:t,modifiers:{number:n}},s){e._modelValue=t,et(e,"change",()=>{const r=Array.prototype.filter.call(e.options,c=>c.selected).map(c=>n?fn(nn(c)):nn(c)),i=e.multiple,o=i?it(e._modelValue)?new Set(r):r:r[0],l=e._pendingValue=[i,i?E(o)?r.slice():r:o];try{e[nt](o)}finally{Tr(()=>{e._pendingValue===l&&(e._pendingValue=void 0)})}}),e[nt]=tn(s)},mounted(e,{value:t}){zs(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[nt]=tn(n)},updated(e,{value:t}){const n=e._pendingValue;e._pendingValue=void 0,(!n||n[0]!==e.multiple||!Vl(t,n[1],n[0]))&&zs(e,t)}};function Vl(e,t,n){if(!n||E(e))return Ge(e,t);if(it(e)){if(e.size!==t.length)return!1;for(const s of t)if(!e.has(s))return!1;return!0}return!1}function zs(e,t){const n=e.multiple,s=E(t);if(!(n&&!s&&!it(t))){for(let r=0,i=e.options.length;r<i;r++){const o=e.options[r],l=nn(o);if(n)if(s){const c=typeof l;c==="string"||c==="number"?o.selected=t.some(d=>String(d)===String(l)):o.selected=vi(t,l)>-1}else o.selected=t.has(l);else if(Ge(nn(o),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function nn(e){return"_value"in e?e._value:e.value}const Hl=["ctrl","shift","alt","meta"],Ll={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Hl.some(n=>e[`${n}Key`]&&!t.includes(n))},uf=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=((r,...i)=>{for(let o=0;o<t.length;o++){const l=Ll[t[o]];if(l&&l(r,t))return}return e(r,...i)}))},$l={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},af=(e,t)=>{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=(r=>{if(!("key"in r))return;const i=Le(r.key);if(t.some(o=>o===i||$l[o]===i))return e(r)}))},Kl=Z({patchProp:Fl},_l);let Ys;function Ul(){return Ys||(Ys=Yo(Kl))}const df=((...e)=>{const t=Ul().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Bl(s);if(!r)return;const i=t._component;!R(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const o=n(r,!1,Wl(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},t});function Wl(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Bl(e){return J(e)?document.querySelector(e):e}const hf=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n};export{ff as A,Zl as B,Tr as C,ef as D,xo as E,fe as F,es as G,df as H,cf as I,Jl as J,zl as K,qi as L,Yi as M,Yl as N,Un as O,Sn as P,Ql as Q,Wt as R,Ci as S,Gl as T,hf as _,of as a,tf as b,dl as c,kl as d,uf as e,si as f,Si as g,lf as h,Bi as i,nl as j,Pe as k,Xn as l,nf as m,ts as n,Yn as o,rf as p,sf as q,is as r,Ui as s,N as t,os as u,lo as v,Rn as w,Q as x,Xl as y,af as z};
@@ -0,0 +1 @@
1
+ const E=e=>fetch(e).then(t=>t.json(),()=>Promise.reject(new Error("unreachable"))),T=(e,t)=>fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t||{})}).then(n=>n.json(),()=>Promise.reject(new Error("unreachable"))),r=(e,t)=>(e.details||[]).find(n=>n["@type"]===t),S=e=>{var o,s;const t=r(e,"BadRequest");if(t&&t.field_violations)return t.field_violations.map(i=>i.description);const n=(s=(o=r(e,"ErrorInfo"))==null?void 0:o.metadata)==null?void 0:s.detail;return[n?String(n):e.message]},h=e=>{var t;return((t=r(e,"ErrorInfo"))==null?void 0:t.reason)||""},O=e=>fetch("/api/handoff?"+new URLSearchParams(e)).then(t=>t.ok?t.text():Promise.reject(new Error(String(t.status)))),_=e=>typeof e=="string"&&/^https:\/\//.test(e)?e:"",f="No workspace configured. Open Settings.",A=e=>e!=="",N=(e,t,n)=>e.some(o=>o.id===t&&o.open_moves!==n)?e.map(o=>o.id===t?{...o,open_moves:n}:o):e,y=(e,t)=>{const n=e.filter(a=>a.group==="you").map(a=>({row:a,handled:!!a.handled})).sort((a,d)=>a.row.rank-d.row.rank||String(a.row.updated).localeCompare(String(d.row.updated))),o=n.filter(a=>!a.handled).length,s=t==="handled";return{rows:n.filter(a=>a.handled===s),open:o,handled:n.length-o}},c=e=>String(e.status_since||e.updated),R=e=>e.filter(t=>t.group==="done").sort((t,n)=>c(n).localeCompare(c(t))).slice(0,15),P=e=>e.filter(t=>t.group==="others").sort((t,n)=>String(n.updated).localeCompare(String(t.updated))),D=e=>e==="failing"?"bad":e==="running"?"warn":e==="passing"?"ok":"",g={code_review:"info",qa:"info",on_hold:"warn"},b=e=>g[e||""]||"",v=e=>({open:"info",done:"ok",dropped:"warn"})[e||""]||"info",U=(e,t,n=1)=>e.filter(o=>o>t+n).length,p="unreachable",l="The local server is not answering",u=l+"; try again once it is back.",k=l+"; your text is kept.",m={NO_WORKSPACE:f,NOT_CONFIGURED:"The maintainer's tracker is not connected on this machine, so nothing can be sent from here.",UPSTREAM_FAILED:"The tracker did not answer; try again in a minute.",RATE_LIMITED:"The source is rate-limited; the monitor backs off.",OPEN_TOO_SOON:"The app window is already opening; give it a few seconds.",UPDATE_IN_PROGRESS:"An update is already installing; the monitor restarts when it is done.",UPDATE_UNAVAILABLE:"There is no update to install right now.",INTERNAL:"The local server failed; see its log."},w=(e,t="Not saved")=>m[h(e)]||t+": "+(e.message||"the server refused the change."),C=(e,{refused:t="Not saved",unreachable:n=u}={})=>{if(e instanceof Error)return e.message===p?n:t+": "+e.message;if(!e||typeof e!="object"||Array.isArray(e))return"";const o=e.error;return o?w(o,t):""},L=e=>{const t=Math.round((Date.now()-new Date(e).getTime())/6e4);return isFinite(t)?t<1?"now":t<60?t+"m ago":t<2880?Math.round(t/60)+"h ago":new Date(e).toLocaleDateString("en-US",{month:"short",day:"numeric"}):""},I=e=>{const t=(Date.now()-new Date(e??"").getTime())/36e5;return!isFinite(t)||t<0?{text:"",old:!1,hours:0}:{text:t<1?"<1h":t<48?Math.floor(t)+"h":Math.floor(t/24)+"d",old:t>=24,hours:t}},j=e=>e?new Date(e).toLocaleString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):"",M=(e,t)=>t?`${e}--${t}`:"";export{l as S,k as T,A as a,C as b,L as c,D as d,w as e,b as f,E as g,O as h,j as i,R as j,I as k,U as l,M as m,P as n,v as o,T as p,S as q,h as r,_ as s,N as w,y};