@vitejs/devtools-vite 0.0.0-alpha.1 → 0.0.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{dirs-Z7VQHyIZ.js → dirs-K_XnRVOr.js} +1 -1
- package/dist/dirs.js +1 -1
- package/dist/index.d.ts +52 -24
- package/dist/index.js +107 -62
- package/dist/nitro.json +2 -2
- package/dist/public/200.html +1 -1
- package/dist/public/404.html +1 -1
- package/dist/public/_nuxt/17ealR8P.js +1 -0
- package/dist/public/_nuxt/2OALqkc2.js +1 -0
- package/dist/public/_nuxt/AuXMpmu_.js +1 -0
- package/dist/public/_nuxt/B-LCQpq9.js +2 -0
- package/dist/public/_nuxt/B-MkobAt.js +1 -0
- package/dist/public/_nuxt/BFwdTbGt.js +1 -0
- package/dist/public/_nuxt/BQPGP7j8.js +1 -0
- package/dist/public/_nuxt/BWDYSEh7.js +11 -0
- package/dist/public/_nuxt/B_mZ82Ef.js +1 -0
- package/dist/public/_nuxt/BkcJ9YuP.js +33 -0
- package/dist/public/_nuxt/Bs1eUuZt.js +1 -0
- package/dist/public/_nuxt/C2Zn9dj_.js +1 -0
- package/dist/public/_nuxt/CIZ7KSXz.js +1 -0
- package/dist/public/_nuxt/CbzAqNxs.js +1 -0
- package/dist/public/_nuxt/ChaI2u-J.js +1 -0
- package/dist/public/_nuxt/CmZYssbg.js +1 -0
- package/dist/public/_nuxt/Cnct9GAr.js +1 -0
- package/dist/public/_nuxt/Cq2KqeQT.js +1 -0
- package/dist/public/_nuxt/Cql2HFZJ.js +1 -0
- package/dist/public/_nuxt/D-ZnEyqr.js +1 -0
- package/dist/public/_nuxt/D2Zr4_9a.js +1 -0
- package/dist/public/_nuxt/D7AVRXB9.js +1 -0
- package/dist/public/_nuxt/{BQ-NBLhA.js → DL1ysgP5.js} +1 -1
- package/dist/public/_nuxt/DP5rIU2b.js +1 -0
- package/dist/public/_nuxt/DQtLZa7C.js +1 -0
- package/dist/public/_nuxt/DcamI1aQ.js +1 -0
- package/dist/public/_nuxt/HzvsUJ0F.js +1 -0
- package/dist/public/_nuxt/Jdu9jmuG.js +1 -0
- package/dist/public/_nuxt/{IrMnfQaU.js → LMGHh3hZ.js} +1 -1
- package/dist/public/_nuxt/{BdGMcGSQ.js → SO3ppn9m.js} +1 -1
- package/dist/public/_nuxt/X7aOo9pb.js +1 -0
- package/dist/public/_nuxt/_hSlj5r4.js +1 -0
- package/dist/public/_nuxt/builds/latest.json +1 -1
- package/dist/public/_nuxt/builds/meta/a75cfc75-2758-4449-8135-5151dc9f3c34.json +1 -0
- package/dist/public/_nuxt/diff.worker-DCsgdfuV.js +10 -0
- package/dist/public/_nuxt/entry.CxcRHwcK.css +1 -0
- package/dist/public/_nuxt/error-404.CCdr3eE4.css +1 -0
- package/dist/public/_nuxt/error-500.D-vBsHK_.css +1 -0
- package/dist/public/_nuxt/lxg2Cb0s.js +1 -0
- package/dist/public/_nuxt/mIZU4Om9.js +1 -0
- package/dist/public/_nuxt/qkzn-X0p.js +1 -0
- package/dist/public/_nuxt/vzoJapJG.js +1 -0
- package/dist/public/index.html +1 -1
- package/package.json +16 -16
- package/dist/public/_nuxt/B1Vd6rqS.js +0 -1
- package/dist/public/_nuxt/B2YLpys2.js +0 -1
- package/dist/public/_nuxt/B2fBtupD.js +0 -1
- package/dist/public/_nuxt/BBRXmiYk.js +0 -1
- package/dist/public/_nuxt/BL9XEsp7.js +0 -1
- package/dist/public/_nuxt/BO9hKuA-.js +0 -1
- package/dist/public/_nuxt/BcAccMwu.js +0 -1
- package/dist/public/_nuxt/BdSZoQls.js +0 -1
- package/dist/public/_nuxt/BjbaCuBE.js +0 -1
- package/dist/public/_nuxt/Bjr51Ks8.js +0 -1
- package/dist/public/_nuxt/BvuqupwD.js +0 -1
- package/dist/public/_nuxt/C2X_oPur.js +0 -1
- package/dist/public/_nuxt/C5J04JCq.js +0 -1
- package/dist/public/_nuxt/CQNn9qP2.js +0 -1
- package/dist/public/_nuxt/CS0-317H.js +0 -1
- package/dist/public/_nuxt/CciM0jEL.js +0 -1
- package/dist/public/_nuxt/CcwEApAr.js +0 -1
- package/dist/public/_nuxt/Ci9NHG69.js +0 -1
- package/dist/public/_nuxt/D1yk44lc.js +0 -1
- package/dist/public/_nuxt/DKn-LAPX.js +0 -11
- package/dist/public/_nuxt/DS2MKblJ.js +0 -1
- package/dist/public/_nuxt/DSjlpmm-.js +0 -1
- package/dist/public/_nuxt/DZeYNBxL.js +0 -1
- package/dist/public/_nuxt/D_Sk_I-u.js +0 -1
- package/dist/public/_nuxt/Dl8iHwQo.js +0 -2
- package/dist/public/_nuxt/Z5tyTJaP.js +0 -1
- package/dist/public/_nuxt/builds/meta/6f75d3aa-4cfc-4ed3-af3a-9078b8defb8f.json +0 -1
- package/dist/public/_nuxt/cRQbgMUp.js +0 -1
- package/dist/public/_nuxt/diff.worker-BXxwMoGc.js +0 -10
- package/dist/public/_nuxt/entry.Dufqy7qJ.css +0 -1
- package/dist/public/_nuxt/error-404.yUUAZDjV.css +0 -1
- package/dist/public/_nuxt/error-500.BHZzZRS-.css +0 -1
- package/dist/public/_nuxt/pXptjyzi.js +0 -1
- package/dist/public/_nuxt/rwBDQBzn.js +0 -1
- package/dist/public/_nuxt/tS5wJZMm.js +0 -1
- package/dist/public/_nuxt/yfNgynAH.js +0 -33
- package/dist/public/_nuxt/z9pSC1xM.js +0 -1
- /package/dist/public/_nuxt/{l47FwQA-.js → D03ETnho.js} +0 -0
package/dist/dirs.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -1,25 +1,54 @@
|
|
|
1
1
|
import { Plugin, ResolvedConfig, ViteDevServer } from "vite";
|
|
2
2
|
|
|
3
|
-
//#region ../
|
|
3
|
+
//#region ../kit/src/types/rpc-augments.d.ts
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* To be extended
|
|
7
7
|
*/
|
|
8
8
|
interface DevToolsRpcServerFunctions {}
|
|
9
9
|
//#endregion
|
|
10
|
-
//#region ../
|
|
10
|
+
//#region ../kit/src/types/utils.d.ts
|
|
11
11
|
type Thenable<T> = T | Promise<T>;
|
|
12
12
|
//#endregion
|
|
13
|
-
//#region ../
|
|
13
|
+
//#region ../kit/src/types/views.d.ts
|
|
14
14
|
interface DevToolsDockHost {
|
|
15
|
+
views: Map<string, DevToolsDockEntry>;
|
|
15
16
|
register: (entry: DevToolsDockEntry) => void;
|
|
17
|
+
update: (entry: DevToolsDockEntry) => void;
|
|
16
18
|
values: () => DevToolsDockEntry[];
|
|
17
19
|
}
|
|
20
|
+
interface DevToolsViewHost {
|
|
21
|
+
/**
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
buildStaticDirs: {
|
|
25
|
+
baseUrl: string;
|
|
26
|
+
distDir: string;
|
|
27
|
+
}[];
|
|
28
|
+
/**
|
|
29
|
+
* Helper to host static files
|
|
30
|
+
* - In `dev` mode, it will register middleware to `viteServer.middlewares` to host the static files
|
|
31
|
+
* - In `build` mode, it will copy the static files to the dist directory
|
|
32
|
+
*/
|
|
33
|
+
hostStatic: (baseUrl: string, distDir: string) => void;
|
|
34
|
+
}
|
|
18
35
|
interface DevToolsDockEntryBase {
|
|
19
36
|
id: string;
|
|
20
37
|
title: string;
|
|
21
38
|
icon: string;
|
|
22
39
|
}
|
|
40
|
+
interface ClientScriptEntry {
|
|
41
|
+
/**
|
|
42
|
+
* The filepath or module name to import from
|
|
43
|
+
*/
|
|
44
|
+
importFrom: string;
|
|
45
|
+
/**
|
|
46
|
+
* The name to import the module as
|
|
47
|
+
*
|
|
48
|
+
* @default 'default'
|
|
49
|
+
*/
|
|
50
|
+
importName?: string;
|
|
51
|
+
}
|
|
23
52
|
interface DevToolsViewIframe extends DevToolsDockEntryBase {
|
|
24
53
|
type: 'iframe';
|
|
25
54
|
url: string;
|
|
@@ -29,23 +58,26 @@ interface DevToolsViewIframe extends DevToolsDockEntryBase {
|
|
|
29
58
|
* When not provided, it would be treated as a unique frame.
|
|
30
59
|
*/
|
|
31
60
|
frameId?: string;
|
|
61
|
+
/**
|
|
62
|
+
* Optional script to import into the iframe
|
|
63
|
+
*/
|
|
64
|
+
import?: ClientScriptEntry;
|
|
32
65
|
}
|
|
33
66
|
interface DevToolsViewWebComponent extends DevToolsDockEntryBase {
|
|
34
67
|
type: 'webcomponent';
|
|
35
|
-
|
|
36
|
-
import: string;
|
|
68
|
+
import: ClientScriptEntry;
|
|
37
69
|
}
|
|
38
70
|
interface DevToolsViewAction extends DevToolsDockEntryBase {
|
|
39
71
|
type: 'action';
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* @default 'default'
|
|
43
|
-
*/
|
|
44
|
-
importName?: string;
|
|
72
|
+
import: ClientScriptEntry;
|
|
45
73
|
}
|
|
46
|
-
|
|
74
|
+
interface DevToolsViewCustomRender extends DevToolsDockEntryBase {
|
|
75
|
+
type: 'custom-render';
|
|
76
|
+
import: ClientScriptEntry;
|
|
77
|
+
}
|
|
78
|
+
type DevToolsDockEntry = DevToolsViewIframe | DevToolsViewWebComponent | DevToolsViewAction | DevToolsViewCustomRender;
|
|
47
79
|
//#endregion
|
|
48
|
-
//#region ../
|
|
80
|
+
//#region ../kit/src/types/vite-plugin.d.ts
|
|
49
81
|
interface DevToolsCapabilities {
|
|
50
82
|
rpc?: boolean;
|
|
51
83
|
views?: boolean;
|
|
@@ -64,19 +96,14 @@ interface DevToolsNodeContext {
|
|
|
64
96
|
readonly viteServer?: ViteDevServer;
|
|
65
97
|
rpc: RpcFunctionsHost;
|
|
66
98
|
docks: DevToolsDockHost;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
hostStatic: (baseUrl: string, distDir: string) => void;
|
|
73
|
-
staticDirs: {
|
|
74
|
-
baseUrl: string;
|
|
75
|
-
distDir: string;
|
|
76
|
-
}[];
|
|
99
|
+
views: DevToolsViewHost;
|
|
100
|
+
utils: DevToolsNodeUtils;
|
|
101
|
+
}
|
|
102
|
+
interface DevToolsNodeUtils {
|
|
103
|
+
clientEntryFromSimpleFunction: (fn: () => void) => ClientScriptEntry;
|
|
77
104
|
}
|
|
78
105
|
//#endregion
|
|
79
|
-
//#region ../
|
|
106
|
+
//#region ../kit/src/types/rpc.d.ts
|
|
80
107
|
/**
|
|
81
108
|
* Type of the RPC function,
|
|
82
109
|
* - static: A function that returns a static data (can be cached and dumped)
|
|
@@ -89,6 +116,7 @@ interface RpcFunctionsHost {
|
|
|
89
116
|
readonly functions: DevToolsRpcServerFunctions;
|
|
90
117
|
readonly definitions: Map<string, RpcFunctionDefinition<string, any, any, any>>;
|
|
91
118
|
register: (fn: RpcFunctionDefinition<string, any, any, any>) => void;
|
|
119
|
+
update: (fn: RpcFunctionDefinition<string, any, any, any>) => void;
|
|
92
120
|
}
|
|
93
121
|
interface RpcFunctionSetupResult<ARGS extends any[], RETURN = void> {
|
|
94
122
|
handler: (...args: ARGS) => RETURN;
|
|
@@ -102,7 +130,7 @@ interface RpcFunctionDefinition<NAME extends string, TYPE extends RpcFunctionTyp
|
|
|
102
130
|
__promise?: Thenable<RpcFunctionSetupResult<ARGS, RETURN>>;
|
|
103
131
|
}
|
|
104
132
|
//#endregion
|
|
105
|
-
//#region ../
|
|
133
|
+
//#region ../kit/src/types/vite-augment.d.ts
|
|
106
134
|
declare module 'vite' {
|
|
107
135
|
interface Plugin {
|
|
108
136
|
devtools?: DevToolsPluginOptions;
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { clientPublicDir } from "./dirs-
|
|
1
|
+
import { t as clientPublicDir } from "./dirs-K_XnRVOr.js";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import { defineRpcFunction } from "@vitejs/devtools-kit";
|
|
4
4
|
import fs, { existsSync } from "node:fs";
|
|
@@ -974,8 +974,7 @@ var RolldownEventsReader = class RolldownEventsReader {
|
|
|
974
974
|
async read() {
|
|
975
975
|
const { mtime, size } = await fs.promises.stat(this.filepath);
|
|
976
976
|
if (mtime.getTime() <= this.lastTimestamp) return;
|
|
977
|
-
|
|
978
|
-
await parseJsonStreamWithConcatArrays(stream, (event) => {
|
|
977
|
+
await parseJsonStreamWithConcatArrays(fs.createReadStream(this.filepath, { start: this.lastBytes }), (event) => {
|
|
979
978
|
this.manager.handleEvent(event);
|
|
980
979
|
return event;
|
|
981
980
|
});
|
|
@@ -998,8 +997,9 @@ var RolldownLogsManager = class {
|
|
|
998
997
|
this.dir = dir;
|
|
999
998
|
}
|
|
1000
999
|
async list() {
|
|
1000
|
+
if (!existsSync(this.dir)) return [];
|
|
1001
1001
|
const sessions = await fs$1.readdir(this.dir, { withFileTypes: true });
|
|
1002
|
-
return await Promise.all(sessions.filter((d) => d.isDirectory()).map(async (d) => {
|
|
1002
|
+
return await Promise.all(sessions.filter((d) => d.isDirectory()).filter((d) => existsSync(join(this.dir, d.name, "meta.json"))).map(async (d) => {
|
|
1003
1003
|
const reader = RolldownEventsReader.get(join(this.dir, d.name, "meta.json"));
|
|
1004
1004
|
await reader.read();
|
|
1005
1005
|
const meta = reader.manager.events[reader.manager.events.length - 1];
|
|
@@ -1028,9 +1028,10 @@ const weakMap = /* @__PURE__ */ new WeakMap();
|
|
|
1028
1028
|
function getLogsManager(context) {
|
|
1029
1029
|
let manager = weakMap.get(context);
|
|
1030
1030
|
if (!manager) {
|
|
1031
|
-
const
|
|
1032
|
-
|
|
1033
|
-
|
|
1031
|
+
const dirs = [join(context.cwd, ".rolldown"), join(process.cwd(), ".rolldown")];
|
|
1032
|
+
const dir = dirs.find((dir$1) => existsSync(dir$1));
|
|
1033
|
+
if (!dir) console.warn("[Vite DevTools] Rolldown logs directory `.rolldown` not found, you might want to run build with `build.rolldownOptions.debug` enabled first.");
|
|
1034
|
+
manager = new RolldownLogsManager(dir ?? dirs[0]);
|
|
1034
1035
|
}
|
|
1035
1036
|
return manager;
|
|
1036
1037
|
}
|
|
@@ -1052,13 +1053,11 @@ const rolldownGetAssetDetails = defineRpcFunction({
|
|
|
1052
1053
|
if (asset.chunk_id === null) return { asset };
|
|
1053
1054
|
const assetChunkId = asset.chunk_id;
|
|
1054
1055
|
const chunk = chunks.get(assetChunkId);
|
|
1055
|
-
const importers = chunkList.filter((mod) => mod.imports.some((i) => i.chunk_id === assetChunkId)).map((c) => assetList.find((a) => a.chunk_id === c.chunk_id));
|
|
1056
|
-
const imports = chunk.imports.map((c) => assetList.find((a) => a.chunk_id === c.chunk_id));
|
|
1057
1056
|
return {
|
|
1058
1057
|
asset,
|
|
1059
1058
|
chunk,
|
|
1060
|
-
importers,
|
|
1061
|
-
imports
|
|
1059
|
+
importers: chunkList.filter((mod) => mod.imports.some((i) => i.chunk_id === assetChunkId)).map((c) => assetList.find((a) => a.chunk_id === c.chunk_id)),
|
|
1060
|
+
imports: chunk.imports.map((c) => assetList.find((a) => a.chunk_id === c.chunk_id))
|
|
1062
1061
|
};
|
|
1063
1062
|
} };
|
|
1064
1063
|
}
|
|
@@ -1078,6 +1077,21 @@ const rolldownGetAssetsList = defineRpcFunction({
|
|
|
1078
1077
|
}
|
|
1079
1078
|
});
|
|
1080
1079
|
|
|
1080
|
+
//#endregion
|
|
1081
|
+
//#region src/shared/utils/guess-chunk-name.ts
|
|
1082
|
+
function guessChunkName(chunk) {
|
|
1083
|
+
if (chunk.name) return chunk.name;
|
|
1084
|
+
if (chunk.modules.length === 1) return `[${simplifyModuleName(chunk.modules[0])}]`;
|
|
1085
|
+
if (chunk.modules.length > 1) return `[${simplifyModuleName(`${chunk.modules[0]}`)}_${chunk.modules.length}]`;
|
|
1086
|
+
return "[unnamed]";
|
|
1087
|
+
}
|
|
1088
|
+
function simplifyModuleName(module$1) {
|
|
1089
|
+
let parts = module$1.replace(/^.*(\.pnpm|node_modules|src|app|packages)\//gi, "").replace(/\b(index|main|dist|test|component|components)\b/gi, "").replace(/\/+/g, "/").replace(/\?.*$/, "").replace(/\.\w+$/, "").replace(/\W/g, "_").replace(/_+/g, "_").replace(/^_+|_+$/g, "").replace(/([a-z])([A-Z])/g, "$1_$2").toLowerCase().split("_").filter(Boolean);
|
|
1090
|
+
parts = Array.from(new Set(parts));
|
|
1091
|
+
if (parts.length > 5) parts = parts.slice(0, 5);
|
|
1092
|
+
return parts.join("_");
|
|
1093
|
+
}
|
|
1094
|
+
|
|
1081
1095
|
//#endregion
|
|
1082
1096
|
//#region src/node/rpc/functions/rolldown-get-chunk-info.ts
|
|
1083
1097
|
const rolldownGetChunkInfo = defineRpcFunction({
|
|
@@ -1086,7 +1100,9 @@ const rolldownGetChunkInfo = defineRpcFunction({
|
|
|
1086
1100
|
setup: (context) => {
|
|
1087
1101
|
const manager = getLogsManager(context);
|
|
1088
1102
|
return { handler: async ({ session, id }) => {
|
|
1089
|
-
|
|
1103
|
+
const chunk = (await manager.loadSession(session)).manager.chunks.get(id);
|
|
1104
|
+
if (chunk && !chunk.name) chunk.name = guessChunkName(chunk);
|
|
1105
|
+
return chunk;
|
|
1090
1106
|
} };
|
|
1091
1107
|
}
|
|
1092
1108
|
});
|
|
@@ -1100,7 +1116,11 @@ const rolldownGetChunksGraph = defineRpcFunction({
|
|
|
1100
1116
|
const manager = getLogsManager(context);
|
|
1101
1117
|
return { handler: async ({ session }) => {
|
|
1102
1118
|
const reader = await manager.loadSession(session);
|
|
1103
|
-
|
|
1119
|
+
const chunks = Array.from(reader.manager.chunks.values());
|
|
1120
|
+
chunks.forEach((chunk) => {
|
|
1121
|
+
if (chunk && !chunk.name) chunk.name = guessChunkName(chunk);
|
|
1122
|
+
});
|
|
1123
|
+
return chunks;
|
|
1104
1124
|
} };
|
|
1105
1125
|
}
|
|
1106
1126
|
});
|
|
@@ -1209,13 +1229,65 @@ function getModuleNameFromPath(path) {
|
|
|
1209
1229
|
return match.split("/")[0];
|
|
1210
1230
|
}
|
|
1211
1231
|
function getPackageDirPath(path) {
|
|
1212
|
-
|
|
1213
|
-
const packageName = getModuleNameFromPath(path);
|
|
1214
|
-
return nodeModulesPrefix + packageName;
|
|
1232
|
+
return path.replace(/%2F/g, "/").replace(/\\/g, "/").match(/^(.+\/node_modules\/)/)?.[1] + getModuleNameFromPath(path);
|
|
1215
1233
|
}
|
|
1216
1234
|
|
|
1217
1235
|
//#endregion
|
|
1218
1236
|
//#region src/node/rpc/functions/rolldown-get-packages.ts
|
|
1237
|
+
async function getPackagesManifest(reader) {
|
|
1238
|
+
const modulesMap = reader.manager.modules;
|
|
1239
|
+
const chunks = Array.from(reader.manager.chunks.values());
|
|
1240
|
+
const packagesManifest = /* @__PURE__ */ new Map();
|
|
1241
|
+
const getImporters = (path, packageDir, visited = /* @__PURE__ */ new Set()) => {
|
|
1242
|
+
const importers = modulesMap.get(path)?.importers || [];
|
|
1243
|
+
const result = [];
|
|
1244
|
+
for (const importer of importers) {
|
|
1245
|
+
if (visited.has(importer)) continue;
|
|
1246
|
+
visited.add(importer);
|
|
1247
|
+
if ((modulesMap.get(importer)?.imports?.map((i) => i.module_id) || []).some((i) => getPackageDirPath(i) === packageDir)) result.push(importer);
|
|
1248
|
+
result.push(...getImporters(importer, packageDir, visited));
|
|
1249
|
+
}
|
|
1250
|
+
return result;
|
|
1251
|
+
};
|
|
1252
|
+
const packages = chunks.map((chunk) => chunk.modules.map((module$1) => module$1)).flat().filter(isNodeModulePath).map((p) => {
|
|
1253
|
+
const moduleBuildMetrics = modulesMap.get(p)?.build_metrics;
|
|
1254
|
+
return {
|
|
1255
|
+
path: p,
|
|
1256
|
+
dir: getPackageDirPath(p),
|
|
1257
|
+
transformedCodeSize: moduleBuildMetrics?.transforms[moduleBuildMetrics?.transforms.length - 1]?.transformed_code_size ?? 0
|
|
1258
|
+
};
|
|
1259
|
+
});
|
|
1260
|
+
await Promise.all(packages.map(async (p) => {
|
|
1261
|
+
const manifest = await readProjectManifestOnly(p.dir);
|
|
1262
|
+
const packageKey = `${manifest.name}@${manifest.version}`;
|
|
1263
|
+
const packageInfo = packagesManifest.get(packageKey);
|
|
1264
|
+
const importers = getImporters(p.path, p.dir).map((i) => ({
|
|
1265
|
+
path: i,
|
|
1266
|
+
version: ""
|
|
1267
|
+
}));
|
|
1268
|
+
if (packageInfo) packagesManifest.set(packageKey, {
|
|
1269
|
+
...packageInfo,
|
|
1270
|
+
files: [...packageInfo.files, {
|
|
1271
|
+
path: p.path,
|
|
1272
|
+
transformedCodeSize: p.transformedCodeSize,
|
|
1273
|
+
importers
|
|
1274
|
+
}],
|
|
1275
|
+
transformedCodeSize: packageInfo.transformedCodeSize + p.transformedCodeSize
|
|
1276
|
+
});
|
|
1277
|
+
else packagesManifest.set(packageKey, {
|
|
1278
|
+
name: manifest.name,
|
|
1279
|
+
version: manifest.version,
|
|
1280
|
+
dir: p.dir,
|
|
1281
|
+
files: [{
|
|
1282
|
+
path: p.path,
|
|
1283
|
+
transformedCodeSize: p.transformedCodeSize,
|
|
1284
|
+
importers
|
|
1285
|
+
}],
|
|
1286
|
+
transformedCodeSize: p.transformedCodeSize
|
|
1287
|
+
});
|
|
1288
|
+
}));
|
|
1289
|
+
return packagesManifest;
|
|
1290
|
+
}
|
|
1219
1291
|
const rolldownGetPackages = defineRpcFunction({
|
|
1220
1292
|
name: "vite:rolldown:get-packages",
|
|
1221
1293
|
type: "query",
|
|
@@ -1223,50 +1295,9 @@ const rolldownGetPackages = defineRpcFunction({
|
|
|
1223
1295
|
const manager = getLogsManager(context);
|
|
1224
1296
|
return { handler: async ({ session }) => {
|
|
1225
1297
|
const reader = await manager.loadSession(session);
|
|
1226
|
-
const chunks = Array.from(reader.manager.chunks.values());
|
|
1227
1298
|
const modulesMap = reader.manager.modules;
|
|
1228
1299
|
const duplicatePackagesMap = /* @__PURE__ */ new Map();
|
|
1229
|
-
const packagesManifest =
|
|
1230
|
-
const packages = chunks.map((chunk) => chunk.modules.map((module$1) => module$1)).flat().filter(isNodeModulePath).map((p) => {
|
|
1231
|
-
const moduleBuildMetrics = modulesMap.get(p)?.build_metrics;
|
|
1232
|
-
return {
|
|
1233
|
-
path: p,
|
|
1234
|
-
dir: getPackageDirPath(p),
|
|
1235
|
-
transformedCodeSize: moduleBuildMetrics?.transforms[moduleBuildMetrics?.transforms.length - 1]?.transformed_code_size ?? 0
|
|
1236
|
-
};
|
|
1237
|
-
});
|
|
1238
|
-
await Promise.all(packages.map(async (p) => {
|
|
1239
|
-
const manifest = await readProjectManifestOnly(p.dir);
|
|
1240
|
-
const packageKey = `${manifest.name}@${manifest.version}`;
|
|
1241
|
-
const packageInfo = packagesManifest.get(packageKey);
|
|
1242
|
-
const module$1 = modulesMap.get(p.path);
|
|
1243
|
-
if (packageInfo) packagesManifest.set(packageKey, {
|
|
1244
|
-
...packageInfo,
|
|
1245
|
-
files: [...packageInfo.files, {
|
|
1246
|
-
path: p.path,
|
|
1247
|
-
transformedCodeSize: p.transformedCodeSize,
|
|
1248
|
-
importers: module$1?.importers?.map((i) => ({
|
|
1249
|
-
path: i,
|
|
1250
|
-
version: ""
|
|
1251
|
-
})) ?? []
|
|
1252
|
-
}],
|
|
1253
|
-
transformedCodeSize: packageInfo.transformedCodeSize + p.transformedCodeSize
|
|
1254
|
-
});
|
|
1255
|
-
else packagesManifest.set(packageKey, {
|
|
1256
|
-
name: manifest.name,
|
|
1257
|
-
version: manifest.version,
|
|
1258
|
-
dir: p.dir,
|
|
1259
|
-
files: [{
|
|
1260
|
-
path: p.path,
|
|
1261
|
-
transformedCodeSize: p.transformedCodeSize,
|
|
1262
|
-
importers: module$1?.importers?.map((i) => ({
|
|
1263
|
-
path: i,
|
|
1264
|
-
version: ""
|
|
1265
|
-
})) ?? []
|
|
1266
|
-
}],
|
|
1267
|
-
transformedCodeSize: p.transformedCodeSize
|
|
1268
|
-
});
|
|
1269
|
-
}));
|
|
1300
|
+
const packagesManifest = await getPackagesManifest(reader);
|
|
1270
1301
|
return (await Promise.all(Array.from(packagesManifest.values()).map((p) => {
|
|
1271
1302
|
duplicatePackagesMap.set(p.name, (duplicatePackagesMap.get(p.name) ?? 0) + 1);
|
|
1272
1303
|
return {
|
|
@@ -1299,6 +1330,19 @@ const rolldownGetPackages = defineRpcFunction({
|
|
|
1299
1330
|
}
|
|
1300
1331
|
});
|
|
1301
1332
|
|
|
1333
|
+
//#endregion
|
|
1334
|
+
//#region src/node/rpc/functions/rolldown-get-package-details.ts
|
|
1335
|
+
const rolldownGetPackageDetails = defineRpcFunction({
|
|
1336
|
+
name: "vite:rolldown:get-package-details",
|
|
1337
|
+
type: "query",
|
|
1338
|
+
setup: (context) => {
|
|
1339
|
+
const manager = getLogsManager(context);
|
|
1340
|
+
return { handler: async ({ session, id }) => {
|
|
1341
|
+
return (await getPackagesManifest(await manager.loadSession(session))).get(id);
|
|
1342
|
+
} };
|
|
1343
|
+
}
|
|
1344
|
+
});
|
|
1345
|
+
|
|
1302
1346
|
//#endregion
|
|
1303
1347
|
//#region src/node/rpc/functions/rolldown-get-plugin-details.ts
|
|
1304
1348
|
const rolldownGetPluginDetails = defineRpcFunction({
|
|
@@ -1436,24 +1480,25 @@ const rpcFunctions = [
|
|
|
1436
1480
|
rolldownGetPluginDetails,
|
|
1437
1481
|
rolldownGetSessionCompareSummary,
|
|
1438
1482
|
rolldownGetChunkInfo,
|
|
1439
|
-
rolldownGetPackages
|
|
1483
|
+
rolldownGetPackages,
|
|
1484
|
+
rolldownGetPackageDetails
|
|
1440
1485
|
];
|
|
1441
1486
|
|
|
1442
1487
|
//#endregion
|
|
1443
1488
|
//#region src/node/plugin.ts
|
|
1444
1489
|
function DevToolsViteUI() {
|
|
1445
1490
|
return {
|
|
1446
|
-
name: "vite:devtools",
|
|
1491
|
+
name: "vite:devtools:vite-ui",
|
|
1447
1492
|
devtools: { setup(ctx) {
|
|
1448
1493
|
console.log("Vite DevTools Vite plugin setup");
|
|
1449
1494
|
for (const fn of rpcFunctions) ctx.rpc.register(fn);
|
|
1450
|
-
ctx.hostStatic("/
|
|
1495
|
+
ctx.views.hostStatic("/.devtools-vite/", clientPublicDir);
|
|
1451
1496
|
ctx.docks.register({
|
|
1452
1497
|
id: "vite",
|
|
1453
1498
|
title: "Vite",
|
|
1454
1499
|
icon: "https://vite.dev/logo.svg",
|
|
1455
1500
|
type: "iframe",
|
|
1456
|
-
url: "/
|
|
1501
|
+
url: "/.devtools-vite/"
|
|
1457
1502
|
});
|
|
1458
1503
|
} }
|
|
1459
1504
|
};
|
package/dist/nitro.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
-
"date": "2025-
|
|
2
|
+
"date": "2025-11-04T08:08:22.280Z",
|
|
3
3
|
"preset": "static",
|
|
4
4
|
"framework": {
|
|
5
5
|
"name": "nuxt",
|
|
6
6
|
"version": "4.1.2"
|
|
7
7
|
},
|
|
8
8
|
"versions": {
|
|
9
|
-
"nitro": "2.12.
|
|
9
|
+
"nitro": "2.12.8"
|
|
10
10
|
},
|
|
11
11
|
"commands": {
|
|
12
12
|
"preview": "npx serve public"
|
package/dist/public/200.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="bg-dots"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><script type="importmap">{"imports":{"#entry":"/
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="bg-dots"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><script type="importmap">{"imports":{"#entry":"/.devtools-vite/_nuxt/BWDYSEh7.js"}}</script><title>Vite DevTools</title><link rel="stylesheet" href="/.devtools-vite/_nuxt/entry.CxcRHwcK.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/.devtools-vite/_nuxt/BWDYSEh7.js"><link rel="prefetch" as="style" crossorigin href="/.devtools-vite/_nuxt/error-404.CCdr3eE4.css"><link rel="prefetch" as="script" crossorigin href="/.devtools-vite/_nuxt/D-ZnEyqr.js"><link rel="prefetch" as="script" crossorigin href="/.devtools-vite/_nuxt/Jdu9jmuG.js"><link rel="prefetch" as="style" crossorigin href="/.devtools-vite/_nuxt/error-500.D-vBsHK_.css"><link rel="prefetch" as="script" crossorigin href="/.devtools-vite/_nuxt/AuXMpmu_.js"><meta name="description" content="DevTools for Vite"><meta property="og:title" content="Vite DevTools"><meta property="og:description" content="DevTools for Vite"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><script type="module" src="/.devtools-vite/_nuxt/BWDYSEh7.js" crossorigin></script><script id="unhead:payload" type="application/json">{"title":"Vite DevTools"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1762243702213,false]</script><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/.devtools-vite/",buildId:"a75cfc75-2758-4449-8135-5151dc9f3c34",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
|
package/dist/public/404.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="bg-dots"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><script type="importmap">{"imports":{"#entry":"/
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="bg-dots"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><script type="importmap">{"imports":{"#entry":"/.devtools-vite/_nuxt/BWDYSEh7.js"}}</script><title>Vite DevTools</title><link rel="stylesheet" href="/.devtools-vite/_nuxt/entry.CxcRHwcK.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/.devtools-vite/_nuxt/BWDYSEh7.js"><link rel="prefetch" as="style" crossorigin href="/.devtools-vite/_nuxt/error-404.CCdr3eE4.css"><link rel="prefetch" as="script" crossorigin href="/.devtools-vite/_nuxt/D-ZnEyqr.js"><link rel="prefetch" as="script" crossorigin href="/.devtools-vite/_nuxt/Jdu9jmuG.js"><link rel="prefetch" as="style" crossorigin href="/.devtools-vite/_nuxt/error-500.D-vBsHK_.css"><link rel="prefetch" as="script" crossorigin href="/.devtools-vite/_nuxt/AuXMpmu_.js"><meta name="description" content="DevTools for Vite"><meta property="og:title" content="Vite DevTools"><meta property="og:description" content="DevTools for Vite"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><script type="module" src="/.devtools-vite/_nuxt/BWDYSEh7.js" crossorigin></script><script id="unhead:payload" type="application/json">{"title":"Vite DevTools"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1762243702213,false]</script><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/.devtools-vite/",buildId:"a75cfc75-2758-4449-8135-5151dc9f3c34",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Tt as e,in as t,it as n,kt as r,mt as i,st as a,ut as o}from"#entry";var s={flex:`~ gap5`,"w-full":``,border:`b base`,pb3:``},c={"font-mono":``},l={"font-mono":``},u=[`datetime`],d=i({__name:`SessionMeta`,props:{sessions:{}},setup(i){return(d,f)=>(e(),o(`div`,s,[(e(!0),o(n,null,r(i.sessions,n=>(e(),o(`div`,{key:n.id,"flex-1":``,border:`~ base rounded`,p4:``,grid:`~ cols-[max-content_140px_2fr] max-lg:cols-[max-content_80px_2fr] gap-2 items-center`},[f[0]||=a(`div`,{class:`i-ph-hash-duotone`},null,-1),a(`div`,null,t(n.title),1),a(`div`,c,[a(`span`,null,t(n.id),1)]),f[1]||=a(`div`,{class:`i-ph-clock-duotone`},null,-1),f[2]||=a(`div`,null,` Created At `,-1),a(`div`,l,[a(`time`,{datetime:n.createdAt.toISOString()},t(n.createdAt.toLocaleString()),9,u)])]))),128))]))}}),f=Object.assign(d,{__name:`CompareSessionMeta`});export{f as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Tt as e,_t as t,mt as n,ot as r,tn as i,ut as a}from"#entry";import{r as o,s}from"./B_mZ82Ef.js";var c=[`title`],l=n({__name:`FileIcon`,props:{filename:{}},setup(t){let n=t,o=r(()=>s(n.filename));return(t,n)=>(e(),a(`div`,{"flex-none":``,"icon-catppuccin":``,title:o.value.description||o.value.name,class:i([o.value.icon])},null,10,c))}}),u=Object.assign(l,{__name:`DisplayFileIcon`}),d=n({name:`HighlightedPath`,props:{path:{type:String,required:!0},minimal:{type:Boolean,default:!1}},setup(e){return()=>{let n=e.path.split(/([?/&:=])/g),r=`path`,i=n.map(()=>[]),a=n.map(()=>[]),s=n.map(e=>t(`span`,{class:``},e)),c=new Set;return n.forEach((t,l)=>{if(t===`?`&&(r=`query`),r===`path`){if(t.match(/^\.+$/)||t===`/`?i[l]?.push(`op50`):(t===`node_modules`||t===`dist`||t===`lib`||t.match(/^\.\w/))&&i[l]?.push(`op60`),t===`node_modules`&&e.minimal)for(let e=0;e<l+2;e++)c.add(e);if(t===`.pnpm`&&(s[l]&&(s[l].children=`~`,i[l]?.push(`op25!`),i[l-1]?.push(`op25!`)),c.add(l+1),c.add(l+2),i[l+3]?.push(`op25!`),s[l+4]?.children===`node_modules`&&(c.add(l+3),c.add(l+4),i[l+5]?.push(`op25!`))),t===`:`&&(s[l-1]&&a[l-1]?.push(`color: ${o(n[l-1])}`),i[l]?.push(`op50`)),n[l-2]===`node_modules`&&!t.startsWith(`.`)){let e=`color: ${o(n[l])}`;a[l]?.push(e),t.startsWith(`@`)&&(a[l+1]?.push(e),a[l+2]?.push(e))}}r===`query`&&(t===`?`?i[l]?.push(`text-red-500 dark:text-red-400`):t===`&`&&i[l]?.push(`text-orange-500 dark:text-orange-400`),t===`=`?i[l]?.push(`text-orange-900 dark:text-orange-200 op50`):n[l+1]===`=`?i[l]?.push(`text-amber-900 dark:text-amber-200`):i[l]?.push(`text-orange-900 dark:text-orange-200`))}),s.forEach((e,t)=>{e.props&&(e.props.class=i[t]?.join(` `)??``,e.props.style=a[t]?.join(`;`)??``)}),Array.from(c).sort((e,t)=>t-e).forEach(e=>{s.splice(e,1)}),s}}});export{u as n,d as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{C as e,Tt as t,V as n,in as r,st as i,ut as a}from"#entry";var o={class:`antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide`},s={class:`max-w-520px text-center`},c=[`textContent`],l=[`textContent`],u=[`textContent`],d=e({__name:`error-500`,props:{appName:{type:String,default:`Nuxt`},statusCode:{type:Number,default:500},statusMessage:{type:String,default:`Internal server error`},description:{type:String,default:`This page is temporarily unavailable.`},refresh:{type:String,default:`Refresh this page`}},setup(e){let d=e;return n({title:`${d.statusCode} - ${d.statusMessage} | ${d.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:`*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }`}]}),(n,d)=>(t(),a(`div`,o,[i(`div`,s,[i(`h1`,{class:`font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]`,textContent:r(e.statusCode)},null,8,c),i(`h2`,{class:`font-semibold mb-2 sm:text-3xl text-2xl`,textContent:r(e.statusMessage)},null,8,l),i(`p`,{class:`mb-4 px-2 text-[#64748B] text-md`,textContent:r(e.description)},null,8,u)])]))}},[[`__scopeId`,`data-v-4936aca7`]]);export{d as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{At as e,Et as t,Gt as n,Ht as r,Mt as i,Nt as a,Ot as o,Pt as s,Tt as c,Ut as l,Vt as u,Yt as d,_t as f,bt as p,ct as m,en as h,gt as g,h as _,in as v,it as y,jt as b,kt as x,lt as S,mt as C,nn as w,pt as T,rn as ee,st as E,tn as D,tt as te,ut as O,xt as k}from"#entry";var ne={flex:`col gap-2`,"max-w-90vw":``,"min-w-30vw":``,border:`~ base rounded-xl`,"bg-glass":``},re={key:0},ie=[`title`],ae=[`checked`,`onChange`],oe={"text-sm":``},A=[`title`],se={key:0,op75:``,"i-ph-selection-slash-duotone":``},ce={key:1,op75:``,"i-ph-selection-plus-duotone":``},le=C({__name:`SearchPanel`,props:{rules:{},modelValue:{default:()=>({search:``,selected:null})},selectedContainerClass:{default:``}},emits:[`update:modelValue`],setup(t,{emit:n}){let i=t,a=_(i,`modelValue`,n);function o(e){let{modelValue:t}=i;return t?.selected?t.selected.includes(e.name):!0}function s(e){let{rules:t}=i;a?.value?.selected||(a.value.selected=t.map(e=>e.name)),a.value.selected.includes(e.name)?a.value.selected=a.value.selected.filter(t=>t!==e.name):a.value.selected.push(e.name),a?.value?.selected.length===i.rules.length&&(a.value.selected=null)}function l(){a?.value?.selected?.length===i.rules.length?a.value.selected=null:a?.value?.selected==null?a.value.selected=[]:a.value.selected=i.rules.map(e=>e.name).filter(e=>!a.value.selected?.includes(e))}function u(){a?.value?.selected?.length===0?a.value.selected=null:a.value.selected=[]}return(n,i)=>(c(),O(`div`,ne,[t.modelValue.search===!1?S(``,!0):(c(),O(`div`,re,[r(E(`input`,{"onUpdate:modelValue":i[0]||=e=>h(a).search=e,p2:``,px4:``,"w-full":``,style:{outline:`none`},placeholder:`Search`},null,512),[[te,h(a).search]])])),t.rules.length?(c(),O(`div`,{key:1,class:D(t.selectedContainerClass),flex:`~ gap-2 wrap`,p2:``,border:`t base`},[(c(!0),O(y,null,x(t.rules,e=>(c(),O(`label`,{key:e.name,border:`~ base rounded-md`,px2:``,py1:``,flex:`~ items-center gap-1`,"select-none":``,title:e.description,class:D(o(e)?`bg-active`:`grayscale op50`)},[E(`input`,{type:`checkbox`,mr1:``,checked:o(e),onChange:t=>s(e)},null,40,ae),E(`div`,{class:D(e.icon),"icon-catppuccin":``},null,2),E(`div`,oe,v(e.description||e.name),1)],10,ie))),128)),E(`button`,{"rounded-md":``,p1:``,flex:`~ items-center gap-1`,"select-none":``,hover:`bg-active`,title:`Reverse Selection`,onClick:l},[...i[1]||=[E(`div`,{op75:``,"i-ph-selection-background-duotone":``},null,-1)]]),E(`button`,{"rounded-md":``,p1:``,flex:`~ items-center gap-1`,"select-none":``,hover:`bg-active`,title:h(a).selected?.length===0?`Select All`:`Unselect All`,onClick:u},[h(a).selected?.length===0?(c(),O(`div`,se)):(c(),O(`div`,ce))],8,A)],2)):S(``,!0),e(n.$slots,`default`)]))}}),ue=Object.assign(le,{__name:`DataSearchPanel`});function de(){var e=window.navigator.userAgent,t=e.indexOf(`MSIE `);if(t>0)return parseInt(e.substring(t+5,e.indexOf(`.`,t)),10);if(e.indexOf(`Trident/`)>0){var n=e.indexOf(`rv:`);return parseInt(e.substring(n+3,e.indexOf(`.`,n)),10)}var r=e.indexOf(`Edge/`);return r>0?parseInt(e.substring(r+5,e.indexOf(`.`,r)),10):-1}var j;function M(){M.init||(M.init=!0,j=de()!==-1)}var N={name:`ResizeObserver`,props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},emits:[`notify`],mounted(){M(),k(()=>{this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitOnMount&&this.emitSize()});let e=document.createElement(`object`);this._resizeObject=e,e.setAttribute(`aria-hidden`,`true`),e.setAttribute(`tabindex`,-1),e.onload=this.addResizeHandlers,e.type=`text/html`,j&&this.$el.appendChild(e),e.data=`about:blank`,j||this.$el.appendChild(e)},beforeUnmount(){this.removeResizeHandlers()},methods:{compareAndNotify(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize(){this.$emit(`notify`,{width:this._w,height:this._h})},addResizeHandlers(){this._resizeObject.contentDocument.defaultView.addEventListener(`resize`,this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers(){this._resizeObject&&this._resizeObject.onload&&(!j&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener(`resize`,this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}},fe=l(`data-v-b329ee4c`);o(`data-v-b329ee4c`);var pe={class:`resize-observer`,tabindex:`-1`};t(),N.render=fe((e,t,n,r,i,a)=>(c(),m(`div`,pe))),N.__scopeId=`data-v-b329ee4c`,N.__file=`src/components/ResizeObserver.vue`;function P(e){"@babel/helpers - typeof";return P=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},P(e)}function me(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function F(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function he(e,t,n){return t&&F(e.prototype,t),n&&F(e,n),e}function I(e){return L(e)||R(e)||ge(e)||_e()}function L(e){if(Array.isArray(e))return z(e)}function R(e){if(typeof Symbol<`u`&&Symbol.iterator in Object(e))return Array.from(e)}function ge(e,t){if(e){if(typeof e==`string`)return z(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`)return Array.from(e);if(n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return z(e,t)}}function z(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function _e(){throw TypeError(`Invalid attempt to spread non-iterable instance.
|
|
2
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ve(e){return typeof e==`function`?{callback:e}:e}function ye(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r,i,a,o=function(o){if(a=[...arguments].slice(1),!(r&&o===i)){var s=n.leading;typeof s==`function`&&(s=s(o,i)),(!r||o!==i)&&s&&e.apply(void 0,[o].concat(I(a))),i=o,clearTimeout(r),r=setTimeout(function(){e.apply(void 0,[o].concat(I(a))),r=0},t)}};return o._clear=function(){clearTimeout(r),r=null},o}function B(e,t){if(e===t)return!0;if(P(e)===`object`){for(var n in e)if(!B(e[n],t[n]))return!1;return!0}return!1}var be=function(){function e(t,n,r){me(this,e),this.el=t,this.observer=null,this.frozen=!1,this.createObserver(n,r)}return he(e,[{key:`createObserver`,value:function(e,t){var n=this;if(this.observer&&this.destroyObserver(),!this.frozen){if(this.options=ve(e),this.callback=function(e,t){n.options.callback(e,t),e&&n.options.once&&(n.frozen=!0,n.destroyObserver())},this.callback&&this.options.throttle){var r=(this.options.throttleOptions||{}).leading;this.callback=ye(this.callback,this.options.throttle,{leading:function(e){return r===`both`||r===`visible`&&e||r===`hidden`&&!e}})}this.oldResult=void 0,this.observer=new IntersectionObserver(function(e){var t=e[0];if(e.length>1){var r=e.find(function(e){return e.isIntersecting});r&&(t=r)}if(n.callback){var i=t.isIntersecting&&t.intersectionRatio>=n.threshold;if(i===n.oldResult)return;n.oldResult=i,n.callback(i,t)}},this.options.intersection),k(function(){n.observer&&n.observer.observe(n.el)})}}},{key:`destroyObserver`,value:function(){this.observer&&=(this.observer.disconnect(),null),this.callback&&this.callback._clear&&(this.callback._clear(),this.callback=null)}},{key:`threshold`,get:function(){return this.options.intersection&&typeof this.options.intersection.threshold==`number`?this.options.intersection.threshold:0}}]),e}();function V(e,t,n){var r=t.value;r&&(typeof IntersectionObserver>`u`?console.warn(`[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill`):e._vue_visibilityState=new be(e,r,n))}function xe(e,t,n){var r=t.value,i=t.oldValue;if(!B(r,i)){var a=e._vue_visibilityState;if(!r){H(e);return}a?a.createObserver(r,n):V(e,{value:r},n)}}function H(e){var t=e._vue_visibilityState;t&&(t.destroyObserver(),delete e._vue_visibilityState)}var Se={beforeMount:V,updated:xe,unmounted:H};function Ce(e){return{all:e||=new Map,on:function(t,n){var r=e.get(t);r&&r.push(n)||e.set(t,[n])},off:function(t,n){var r=e.get(t);r&&r.splice(r.indexOf(n)>>>0,1)},emit:function(t,n){(e.get(t)||[]).slice().map(function(e){e(n)}),(e.get(`*`)||[]).slice().map(function(e){e(t,n)})}}}var we={itemsLimit:1e3},Te=/(auto|scroll)/;function U(e,t){return e.parentNode===null?t:U(e.parentNode,t.concat([e]))}var W=function(e,t){return getComputedStyle(e,null).getPropertyValue(t)},Ee=function(e){return W(e,`overflow`)+W(e,`overflow-y`)+W(e,`overflow-x`)},De=function(e){return Te.test(Ee(e))};function G(e){if(e instanceof HTMLElement||e instanceof SVGElement){for(var t=U(e.parentNode,[]),n=0;n<t.length;n+=1)if(De(t[n]))return t[n];return document.scrollingElement||document.documentElement}}function K(e){"@babel/helpers - typeof";return K=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},K(e)}var q={items:{type:Array,required:!0},keyField:{type:String,default:`id`},direction:{type:String,default:`vertical`,validator:function(e){return[`vertical`,`horizontal`].includes(e)}},listTag:{type:String,default:`div`},itemTag:{type:String,default:`div`}};function J(){return this.items.length&&K(this.items[0])!==`object`}var Y=!1;if(typeof window<`u`){Y=!1;try{var Oe=Object.defineProperty({},`passive`,{get:function(){Y=!0}});window.addEventListener(`test`,null,Oe)}catch{}}var ke=0,X={name:`RecycleScroller`,components:{ResizeObserver:N},directives:{ObserveVisibility:Se},props:{...q,itemSize:{type:Number,default:null},gridItems:{type:Number,default:void 0},itemSecondarySize:{type:Number,default:void 0},minItemSize:{type:[Number,String],default:null},sizeField:{type:String,default:`size`},typeField:{type:String,default:`type`},buffer:{type:Number,default:200},pageMode:{type:Boolean,default:!1},prerender:{type:Number,default:0},emitUpdate:{type:Boolean,default:!1},updateInterval:{type:Number,default:0},skipHover:{type:Boolean,default:!1},listTag:{type:String,default:`div`},itemTag:{type:String,default:`div`},listClass:{type:[String,Object,Array],default:``},itemClass:{type:[String,Object,Array],default:``}},emits:[`resize`,`visible`,`hidden`,`update`,`scroll-start`,`scroll-end`],data(){return{pool:[],totalSize:0,ready:!1,hoverKey:null}},computed:{sizes(){if(this.itemSize===null){let e={"-1":{accumulator:0}},t=this.items,n=this.sizeField,r=this.minItemSize,i=1e4,a=0,o;for(let s=0,c=t.length;s<c;s++)o=t[s][n]||r,o<i&&(i=o),a+=o,e[s]={accumulator:a,size:o};return this.$_computedMinItemSize=i,e}return[]},simpleArray:J,itemIndexByKey(){let{keyField:e,items:t}=this,n={};for(let r=0,i=t.length;r<i;r++)n[t[r][e]]=r;return n}},watch:{items(){this.updateVisibleItems(!0)},pageMode(){this.applyPageMode(),this.updateVisibleItems(!1)},sizes:{handler(){this.updateVisibleItems(!1)},deep:!0},gridItems(){this.updateVisibleItems(!0)},itemSecondarySize(){this.updateVisibleItems(!0)}},created(){this.$_startIndex=0,this.$_endIndex=0,this.$_views=new Map,this.$_unusedViews=new Map,this.$_scrollDirty=!1,this.$_lastUpdateScrollPosition=0,this.prerender&&(this.$_prerender=!0,this.updateVisibleItems(!1)),this.gridItems&&!this.itemSize&&console.error(`[vue-recycle-scroller] You must provide an itemSize when using gridItems`)},mounted(){this.applyPageMode(),this.$nextTick(()=>{this.$_prerender=!1,this.updateVisibleItems(!0),this.ready=!0})},activated(){let e=this.$_lastUpdateScrollPosition;typeof e==`number`&&this.$nextTick(()=>{this.scrollToPosition(e)})},beforeUnmount(){this.removeListeners()},methods:{addView(e,t,r,i,a){let o=d({item:r,position:0,nr:n({id:ke++,index:t,used:!0,key:i,type:a})});return e.push(o),o},unuseView(e,t=!1){let n=this.$_unusedViews,r=e.nr.type,i=n.get(r);i||(i=[],n.set(r,i)),i.push(e),t||(e.nr.used=!1,e.position=-9999)},handleResize(){this.$emit(`resize`),this.ready&&this.updateVisibleItems(!1)},handleScroll(e){if(!this.$_scrollDirty){if(this.$_scrollDirty=!0,this.$_updateTimeout)return;let e=()=>requestAnimationFrame(()=>{this.$_scrollDirty=!1;let{continuous:e}=this.updateVisibleItems(!1,!0);e||(clearTimeout(this.$_refreshTimout),this.$_refreshTimout=setTimeout(this.handleScroll,this.updateInterval+100))});e(),this.updateInterval&&(this.$_updateTimeout=setTimeout(()=>{this.$_updateTimeout=0,this.$_scrollDirty&&e()},this.updateInterval))}},handleVisibilityChange(e,t){this.ready&&(e||t.boundingClientRect.width!==0||t.boundingClientRect.height!==0?(this.$emit(`visible`),requestAnimationFrame(()=>{this.updateVisibleItems(!1)})):this.$emit(`hidden`))},updateVisibleItems(e,t=!1){let n=this.itemSize,r=this.gridItems||1,i=this.itemSecondarySize||n,a=this.$_computedMinItemSize,o=this.typeField,s=this.simpleArray?null:this.keyField,c=this.items,l=c.length,u=this.sizes,d=this.$_views,f=this.$_unusedViews,p=this.pool,m=this.itemIndexByKey,h,g,_,v,y;if(!l)h=g=v=y=_=0;else if(this.$_prerender)h=v=0,g=y=Math.min(this.prerender,c.length),_=null;else{let e=this.getScroll();if(t){let t=e.start-this.$_lastUpdateScrollPosition;if(t<0&&(t=-t),n===null&&t<a||t<n)return{continuous:!0}}this.$_lastUpdateScrollPosition=e.start;let i=this.buffer;e.start-=i,e.end+=i;let o=0;if(this.$refs.before&&(o=this.$refs.before.scrollHeight,e.start-=o),this.$refs.after){let t=this.$refs.after.scrollHeight;e.end+=t}if(n===null){let t,n=0,r=l-1,i=~~(l/2),a;do a=i,t=u[i].accumulator,t<e.start?n=i:i<l-1&&u[i+1].accumulator>e.start&&(r=i),i=~~((n+r)/2);while(i!==a);for(i<0&&(i=0),h=i,_=u[l-1].accumulator,g=i;g<l&&u[g].accumulator<e.end;g++);for(g===-1?g=c.length-1:(g++,g>l&&(g=l)),v=h;v<l&&o+u[v].accumulator<e.start;v++);for(y=v;y<l&&o+u[y].accumulator<e.end;y++);}else{h=~~(e.start/n*r);let t=h%r;h-=t,g=Math.ceil(e.end/n*r),v=Math.max(0,Math.floor((e.start-o)/n*r)),y=Math.floor((e.end-o)/n*r),h<0&&(h=0),g>l&&(g=l),v<0&&(v=0),y>l&&(y=l),_=Math.ceil(l/r)*n}}g-h>we.itemsLimit&&this.itemsLimitError(),this.totalSize=_;let b,x=h<=this.$_endIndex&&g>=this.$_startIndex;if(x)for(let t=0,n=p.length;t<n;t++)b=p[t],b.nr.used&&(e&&(b.nr.index=m[b.item[s]]),(b.nr.index==null||b.nr.index<h||b.nr.index>=g)&&this.unuseView(b));let S=x?null:new Map,C,w,T;for(let e=h;e<g;e++){C=c[e];let t=s?C[s]:C;if(t==null)throw Error(`Key is ${t} on item (keyField is '${s}')`);if(b=d.get(t),!n&&!u[e].size){b&&this.unuseView(b);continue}w=C[o];let a=f.get(w),l=!1;if(!b)x?b=a&&a.length?a.pop():this.addView(p,e,C,t,w):(T=S.get(w)||0,(!a||T>=a.length)&&(b=this.addView(p,e,C,t,w),this.unuseView(b,!0),a=f.get(w)),b=a[T],S.set(w,T+1)),d.delete(b.nr.key),b.nr.used=!0,b.nr.index=e,b.nr.key=t,b.nr.type=w,d.set(t,b),l=!0;else if(!b.nr.used&&(b.nr.used=!0,l=!0,a)){let e=a.indexOf(b);e!==-1&&a.splice(e,1)}b.item=C,l&&(e===c.length-1&&this.$emit(`scroll-end`),e===0&&this.$emit(`scroll-start`)),n===null?(b.position=u[e-1].accumulator,b.offset=0):(b.position=Math.floor(e/r)*n,b.offset=e%r*i)}return this.$_startIndex=h,this.$_endIndex=g,this.emitUpdate&&this.$emit(`update`,h,g,v,y),clearTimeout(this.$_sortTimer),this.$_sortTimer=setTimeout(this.sortViews,this.updateInterval+300),{continuous:x}},getListenerTarget(){let e=G(this.$el);return window.document&&(e===window.document.documentElement||e===window.document.body)&&(e=window),e},getScroll(){let{$el:e,direction:t}=this,n=t===`vertical`,r;if(this.pageMode){let t=e.getBoundingClientRect(),i=n?t.height:t.width,a=-(n?t.top:t.left),o=n?window.innerHeight:window.innerWidth;a<0&&(o+=a,a=0),a+o>i&&(o=i-a),r={start:a,end:a+o}}else r=n?{start:e.scrollTop,end:e.scrollTop+e.clientHeight}:{start:e.scrollLeft,end:e.scrollLeft+e.clientWidth};return r},applyPageMode(){this.pageMode?this.addListeners():this.removeListeners()},addListeners(){this.listenerTarget=this.getListenerTarget(),this.listenerTarget.addEventListener(`scroll`,this.handleScroll,Y?{passive:!0}:!1),this.listenerTarget.addEventListener(`resize`,this.handleResize)},removeListeners(){this.listenerTarget&&=(this.listenerTarget.removeEventListener(`scroll`,this.handleScroll),this.listenerTarget.removeEventListener(`resize`,this.handleResize),null)},scrollToItem(e){let t,n=this.gridItems||1;t=this.itemSize===null?e>0?this.sizes[e-1].accumulator:0:Math.floor(e/n)*this.itemSize,this.scrollToPosition(t)},scrollToPosition(e){let t=this.direction===`vertical`?{scroll:`scrollTop`,start:`top`}:{scroll:`scrollLeft`,start:`left`},n,r,i;if(this.pageMode){let a=G(this.$el),o=a.tagName===`HTML`?0:a[t.scroll],s=a.getBoundingClientRect(),c=this.$el.getBoundingClientRect()[t.start]-s[t.start];n=a,r=t.scroll,i=e+o+c}else n=this.$el,r=t.scroll,i=e;n[r]=i},itemsLimitError(){throw setTimeout(()=>{console.log(`It seems the scroller element isn't scrolling, so it tries to render all the items at once.`,`Scroller:`,this.$el),console.log(`Make sure the scroller has a fixed height (or width) and 'overflow-y' (or 'overflow-x') set to 'auto' so it can scroll correctly and only render the items visible in the scroll viewport.`)}),Error(`Rendered items limit reached`)},sortViews(){this.pool.sort((e,t)=>e.nr.index-t.nr.index)}}},Z={key:0,ref:`before`,class:`vue-recycle-scroller__slot`},Ae={key:1,ref:`after`,class:`vue-recycle-scroller__slot`};function je(t,n,o,l,d,f){let h=b(`ResizeObserver`),g=i(`observe-visibility`);return r((c(),O(`div`,{class:D([`vue-recycle-scroller`,{ready:d.ready,"page-mode":o.pageMode,[`direction-${t.direction}`]:!0}]),onScrollPassive:n[0]||=(...e)=>f.handleScroll&&f.handleScroll(...e)},[t.$slots.before?(c(),O(`div`,Z,[e(t.$slots,`before`)],512)):S(`v-if`,!0),(c(),m(a(o.listTag),{ref:`wrapper`,style:ee({[t.direction===`vertical`?`minHeight`:`minWidth`]:d.totalSize+`px`}),class:D([`vue-recycle-scroller__item-wrapper`,o.listClass])},{default:u(()=>[(c(!0),O(y,null,x(d.pool,n=>(c(),m(a(o.itemTag),p({key:n.nr.id,style:d.ready?{transform:`translate${t.direction===`vertical`?`Y`:`X`}(${n.position}px) translate${t.direction===`vertical`?`X`:`Y`}(${n.offset}px)`,width:o.gridItems?`${t.direction===`vertical`&&o.itemSecondarySize||o.itemSize}px`:void 0,height:o.gridItems?`${t.direction===`horizontal`&&o.itemSecondarySize||o.itemSize}px`:void 0}:null,class:[`vue-recycle-scroller__item-view`,[o.itemClass,{hover:!o.skipHover&&d.hoverKey===n.nr.key}]]},s(o.skipHover?{}:{mouseenter:()=>{d.hoverKey=n.nr.key},mouseleave:()=>{d.hoverKey=null}})),{default:u(()=>[e(t.$slots,`default`,{item:n.item,index:n.nr.index,active:n.nr.used})]),_:2},1040,[`style`,`class`]))),128)),e(t.$slots,`empty`)]),_:3},8,[`style`,`class`])),t.$slots.after?(c(),O(`div`,Ae,[e(t.$slots,`after`)],512)):S(`v-if`,!0),T(h,{onNotify:f.handleResize},null,8,[`onNotify`])],34)),[[g,f.handleVisibilityChange]])}X.render=je,X.__file=`src/components/RecycleScroller.vue`;var Q={name:`DynamicScroller`,components:{RecycleScroller:X},provide(){return typeof ResizeObserver<`u`&&(this.$_resizeObserver=new ResizeObserver(e=>{requestAnimationFrame(()=>{if(Array.isArray(e)){for(let t of e)if(t.target&&t.target.$_vs_onResize){let e,n;if(t.borderBoxSize){let r=t.borderBoxSize[0];e=r.inlineSize,n=r.blockSize}else e=t.contentRect.width,n=t.contentRect.height;t.target.$_vs_onResize(t.target.$_vs_id,e,n)}}})})),{vscrollData:this.vscrollData,vscrollParent:this,vscrollResizeObserver:this.$_resizeObserver}},inheritAttrs:!1,props:{...q,minItemSize:{type:[Number,String],required:!0}},emits:[`resize`,`visible`],data(){return{vscrollData:{active:!0,sizes:{},keyField:this.keyField,simpleArray:!1}}},computed:{simpleArray:J,itemsWithSize(){let e=[],{items:t,keyField:n,simpleArray:r}=this,i=this.vscrollData.sizes,a=t.length;for(let o=0;o<a;o++){let a=t[o],s=r?o:a[n],c=i[s];c===void 0&&!this.$_undefinedMap[s]&&(c=0),e.push({item:a,id:s,size:c})}return e}},watch:{items(){this.forceUpdate()},simpleArray:{handler(e){this.vscrollData.simpleArray=e},immediate:!0},direction(e){this.forceUpdate(!0)},itemsWithSize(e,t){let n=this.$el.scrollTop,r=0,i=0,a=Math.min(e.length,t.length);for(let o=0;o<a&&!(r>=n);o++)r+=t[o].size||this.minItemSize,i+=e[o].size||this.minItemSize;let o=i-r;o!==0&&(this.$el.scrollTop+=o)}},beforeCreate(){this.$_updates=[],this.$_undefinedSizes=0,this.$_undefinedMap={},this.$_events=Ce()},activated(){this.vscrollData.active=!0},deactivated(){this.vscrollData.active=!1},unmounted(){this.$_events.all.clear()},methods:{onScrollerResize(){this.$refs.scroller&&this.forceUpdate(),this.$emit(`resize`)},onScrollerVisible(){this.$_events.emit(`vscroll:update`,{force:!1}),this.$emit(`visible`)},forceUpdate(e=!1){(e||this.simpleArray)&&(this.vscrollData.sizes={}),this.$_events.emit(`vscroll:update`,{force:!0})},scrollToItem(e){let t=this.$refs.scroller;t&&t.scrollToItem(e)},getItemSize(e,t=void 0){let n=this.simpleArray?t??this.items.indexOf(e):e[this.keyField];return this.vscrollData.sizes[n]||0},scrollToBottom(){if(this.$_scrollingToBottom)return;this.$_scrollingToBottom=!0;let e=this.$el;this.$nextTick(()=>{e.scrollTop=e.scrollHeight+5e3;let t=()=>{e.scrollTop=e.scrollHeight+5e3,requestAnimationFrame(()=>{e.scrollTop=e.scrollHeight+5e3,this.$_undefinedSizes===0?this.$_scrollingToBottom=!1:requestAnimationFrame(t)})};requestAnimationFrame(t)})}}};function Me(t,n,r,i,a,o){let s=b(`RecycleScroller`);return c(),m(s,p({ref:`scroller`,items:o.itemsWithSize,"min-item-size":r.minItemSize,direction:t.direction,"key-field":`id`,"list-tag":t.listTag,"item-tag":t.itemTag},t.$attrs,{onResize:o.onScrollerResize,onVisible:o.onScrollerVisible}),{default:u(({item:n,index:r,active:i})=>[e(t.$slots,`default`,w(g({item:n.item,index:r,active:i,itemWithSize:n})))]),before:u(()=>[e(t.$slots,`before`)]),after:u(()=>[e(t.$slots,`after`)]),empty:u(()=>[e(t.$slots,`empty`)]),_:3},16,[`items`,`min-item-size`,`direction`,`list-tag`,`item-tag`,`onResize`,`onVisible`])}Q.render=Me,Q.__file=`src/components/DynamicScroller.vue`;var $={name:`DynamicScrollerItem`,inject:[`vscrollData`,`vscrollParent`,`vscrollResizeObserver`],props:{item:{required:!0},watchData:{type:Boolean,default:!1},active:{type:Boolean,required:!0},index:{type:Number,default:void 0},sizeDependencies:{type:[Array,Object],default:null},emitResize:{type:Boolean,default:!1},tag:{type:String,default:`div`}},emits:[`resize`],computed:{id(){if(this.vscrollData.simpleArray)return this.index;if(this.vscrollData.keyField in this.item)return this.item[this.vscrollData.keyField];throw Error(`keyField '${this.vscrollData.keyField}' not found in your item. You should set a valid keyField prop on your Scroller`)},size(){return this.vscrollData.sizes[this.id]||0},finalActive(){return this.active&&this.vscrollData.active}},watch:{watchData:`updateWatchData`,id(e,t){if(this.$el.$_vs_id=this.id,this.size||this.onDataUpdate(),this.$_sizeObserved){let n=this.vscrollData.sizes[t],r=this.vscrollData.sizes[e];n!=null&&n!==r&&this.applySize(n)}},finalActive(e){this.size||(e?this.vscrollParent.$_undefinedMap[this.id]||(this.vscrollParent.$_undefinedSizes++,this.vscrollParent.$_undefinedMap[this.id]=!0):this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=!1)),this.vscrollResizeObserver?e?this.observeSize():this.unobserveSize():e&&this.$_pendingVScrollUpdate===this.id&&this.updateSize()}},created(){if(!this.$isServer&&(this.$_forceNextVScrollUpdate=null,this.updateWatchData(),!this.vscrollResizeObserver)){for(let e in this.sizeDependencies)this.$watch(()=>this.sizeDependencies[e],this.onDataUpdate);this.vscrollParent.$_events.on(`vscroll:update`,this.onVscrollUpdate)}},mounted(){this.finalActive&&(this.updateSize(),this.observeSize())},beforeUnmount(){this.vscrollParent.$_events.off(`vscroll:update`,this.onVscrollUpdate),this.unobserveSize()},methods:{updateSize(){this.finalActive?this.$_pendingSizeUpdate!==this.id&&(this.$_pendingSizeUpdate=this.id,this.$_forceNextVScrollUpdate=null,this.$_pendingVScrollUpdate=null,this.computeSize(this.id)):this.$_forceNextVScrollUpdate=this.id},updateWatchData(){this.watchData&&!this.vscrollResizeObserver?this.$_watchData=this.$watch(`item`,()=>{this.onDataUpdate()},{deep:!0}):this.$_watchData&&=(this.$_watchData(),null)},onVscrollUpdate({force:e}){!this.finalActive&&e&&(this.$_pendingVScrollUpdate=this.id),(this.$_forceNextVScrollUpdate===this.id||e||!this.size)&&this.updateSize()},onDataUpdate(){this.updateSize()},computeSize(e){this.$nextTick(()=>{if(this.id===e){let e=this.$el.offsetWidth,t=this.$el.offsetHeight;this.applyWidthHeight(e,t)}this.$_pendingSizeUpdate=null})},applyWidthHeight(e,t){let n=~~(this.vscrollParent.direction===`vertical`?t:e);n&&this.size!==n&&this.applySize(n)},applySize(e){this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=void 0),this.vscrollData.sizes[this.id]=e,this.emitResize&&this.$emit(`resize`,this.id)},observeSize(){this.vscrollResizeObserver&&(this.$_sizeObserved||=(this.vscrollResizeObserver.observe(this.$el),this.$el.$_vs_id=this.id,this.$el.$_vs_onResize=this.onResize,!0))},unobserveSize(){this.vscrollResizeObserver&&(this.$_sizeObserved&&=(this.vscrollResizeObserver.unobserve(this.$el),this.$el.$_vs_onResize=void 0,!1))},onResize(e,t,n){this.id===e&&this.applyWidthHeight(t,n)}},render(){return f(this.tag,this.$slots.default())}};$.__file=`src/components/DynamicScrollerItem.vue`;var Ne=C({__name:`VirtualList`,props:{items:{},keyProp:{}},setup(t){return(n,r)=>(c(),m(h(Q),{items:t.items,"min-item-size":30,"key-field":t.keyProp,"page-mode":``},{default:u(({item:r,active:i,index:a})=>[T(h($),{item:r,active:i,"data-index":a},{default:u(()=>[e(n.$slots,`default`,p({key:r[t.keyProp]},{item:r,index:a,active:i}))]),_:2},1032,[`item`,`active`,`data-index`])]),_:3},8,[`items`,`key-field`]))}}),Pe=Object.assign(Ne,{__name:`DataVirtualList`});export{ue as n,Pe as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Bt as e,Jt as t,Nt as n,S as r,Tt as i,Vt as a,ct as o,en as s,ft as c,in as l,it as u,kt as d,lt as f,mt as p,ot as m,pt as h,st as g,tn as _,ut as v,y}from"#entry";import{t as b}from"./Jdu9jmuG.js";import{t as x}from"./17ealR8P.js";import"./B_mZ82Ef.js";import"./2OALqkc2.js";import{r as S,t as C}from"./DL1ysgP5.js";import{t as w}from"./CbzAqNxs.js";import"./DnpfwSMy.js";import{t as T}from"./SO3ppn9m.js";var E={flex:`~ col gap-2`},D={flex:`~ gap-1 items-center`,"font-mono":``,op50:``,"text-sm":``},O={"font-mono":``,"font-sm":``},k={key:0,flex:`~ gap-1 items-center`},A={key:0,op50:``,"text-xs":``,border:`~ base rounded-md`,px1:``,"font-mono":``},j=p({__name:`SessionSelector`,props:{sessionMode:{},sessions:{},selectedSessionIds:{},selectedSessions:{}},emits:[`select`],setup(e,{emit:t}){let r=e,p=t;function y(e){return T(e.meta.inputs[0]?.filename??``,e.meta.cwd).path}let x=m(()=>{let e=r.selectedSessions?.[0];return e?y(e):``});function j(e){return x.value&&x.value!==y(e)}function M(e){r.sessionMode===`compare`&&!j(e)&&p(`select`,e)}return(t,r)=>{let p=C,m=S,y=w;return i(),v(`div`,E,[(i(!0),v(u,null,d(e.sessions,t=>(i(),v(`div`,{key:t.id,flex:`~ row gap-2`,relative:``},[(i(),o(n(e.sessionMode===`list`?s(b):`div`),{to:`/session/${t.id}`,border:`~ rounded-md`,class:_(e.sessionMode===`list`?[`hover:bg-active`,`border-base`]:[e.selectedSessionIds.includes(t.id)?`border-active`:`border-base`,j(t)||e.selectedSessions.length===2&&!e.selectedSessionIds.includes(t.id)?`op50`:`hover:bg-active`]),flex:`~ col gap-1`,px4:``,py3:``,"w-full":``,onClick:e=>M(t)},{default:a(()=>[g(`div`,D,[r[0]||=g(`div`,{"i-ph-hash-duotone":``},null,-1),c(` `+l(t.id),1)]),g(`div`,O,l(t.meta.cwd),1),t.meta.inputs[0]?(i(),v(`div`,k,[h(p,{id:t.meta.inputs[0].filename,cwd:t.meta.cwd},null,8,[`id`,`cwd`]),h(m,{text:t.meta.inputs[0].name||`entry`},null,8,[`text`]),t.meta.inputs.length>1?(i(),v(`span`,A,` +`+l(t.meta.inputs.length-1),1)):f(``,!0)])):f(``,!0),h(y,{timestamp:t.timestamp,pt2:``,"text-sm":``,op50:``},null,8,[`timestamp`])]),_:2},1032,[`to`,`class`,`onClick`]))]))),128))])}}}),M=Object.assign(j,{__name:`PanelSessionSelector`}),N={p4:``,flex:`~ col gap-4`,"items-center":``,"justify-center":``,relative:``},P={op50:``},F={relative:``,flex:`~ col gap3 items-center`},I={fixed:``,"top-5":``,"right-5":``,flex:`~ col gap2`},L={flex:`~ row justify-around`,w20:``,h8:``,border:`~ base rounded-8`,"of-hidden":``},R=[`title`,`onClick`],z={key:0,fixed:``,"bottom-5":``,"right-5":``,border:`~ base rounded-2`,w100:``,"max-lg:w85":``,"bg-glass":``,"z-panel-content":``},B={flex:`~ justify-center`,p2:``},V={key:1,op80:``,"text-sm":``},H=p({__name:`index`,async setup(n){let p,S,C=t(`list`),w=[{label:`Session List`,icon:`i-ph-list-bullets-duotone`,value:`list`},{label:`Session Compare`,icon:`i-ph-git-diff-duotone`,value:`compare`}],T=t([]),E=m(()=>T.value.map(e=>e.id).sort()),D=m(()=>[...T.value].sort((e,t)=>e.timestamp-t.timestamp).map((e,t)=>({...e,createdAt:new Date(e.timestamp),title:t===0?`Session A`:`Session B`}))),O=y(),k=([p,S]=e(()=>O.value[`vite:rolldown:list-sessions`]()),p=await p,S(),p);function A(e){E.value.includes(e.id)?T.value=T.value.filter(t=>t.id!==e.id):T.value=[...T.value,e]}return(e,t)=>{let n=r,p=M,m=x,y=b;return i(),v(`div`,N,[h(n),g(`p`,P,l(C.value===`list`?`Select a build session to get started:`:`Select 2 build sessions to compare:`),1),g(`div`,F,[h(p,{"session-mode":C.value,sessions:s(k),"selected-session-ids":E.value,"selected-sessions":T.value,onSelect:A},null,8,[`session-mode`,`sessions`,`selected-session-ids`,`selected-sessions`])]),g(`div`,I,[g(`div`,L,[(i(),v(u,null,d(w,e=>g(`button`,{key:e.value,title:e.label,"flex-1":``,op50:``,flex:`~ items-center justify-center`,class:_({"bg-active text-base op100!":C.value===e.value}),hover:`bg-active text-base op100!`,onClick:t=>C.value=e.value},[g(`span`,{class:_([e.icon,`text-sm`])},null,2)],10,R)),64))])]),T.value.length>0&&C.value===`compare`?(i(),v(`div`,z,[h(m,{sessions:D.value,class:`flex-col gap0 [&>div]:border-none! [&>first-child]:border-b!`},null,8,[`sessions`]),g(`div`,B,[T.value.length===2?(i(),o(y,{key:0,tag:`button`,to:`/compare/${E.value.join(`,`)}`,"btn-action":``,"rounded-8":``,"text-3":``,flex:`~ justify-center`,w30:``,h8:``},{default:a(()=>[...t[0]||=[c(` Compare `,-1)]]),_:1},8,[`to`])):(i(),v(`div`,V,` Select one more session to compare. `))])])):f(``,!0)])}}});export{H as default};
|