vite-plugin-vue-devtools 0.0.1-alpha.0 → 0.0.1-alpha.1

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 (30) hide show
  1. package/dist/client/assets/VCard-71dc6c0a.js +15 -0
  2. package/dist/client/assets/VIcon.vue_vue_type_script_setup_true_lang-527d8187.js +19 -0
  3. package/dist/client/assets/VIconTitle.vue_vue_type_script_setup_true_lang-e9a02b1e.js +30 -0
  4. package/dist/client/assets/VPanelGrids-0fa9ab66.js +15 -0
  5. package/dist/client/assets/VTextInput-52804693.css +18 -0
  6. package/dist/client/assets/VTextInput.vue_vue_type_script_setup_true_lang-3269f8e0.js +145 -0
  7. package/dist/client/assets/__inspecting-e003e6f0.js +51 -0
  8. package/dist/client/assets/assets-d5f2037f.js +1403 -0
  9. package/dist/client/assets/components-ce0097f5.js +699 -0
  10. package/dist/client/assets/fuse.esm-c317b696.js +1782 -0
  11. package/dist/client/assets/graph-c308dc8c.js +52260 -0
  12. package/dist/client/assets/index-bed0f7d1.js +15568 -0
  13. package/dist/client/assets/index-f0fa9f81.css +454 -0
  14. package/dist/client/assets/inspect-1db9f22a.js +96 -0
  15. package/dist/client/assets/overview-8afd7e36.js +302 -0
  16. package/dist/client/assets/pages-1eda0955.js +21 -0
  17. package/dist/client/assets/pages-d25b8928.js +320 -0
  18. package/dist/client/assets/pinia-622c9a72.js +139 -0
  19. package/dist/client/assets/routes-abe90ae8.js +129 -0
  20. package/dist/client/assets/rpc-9c16d07a.js +136 -0
  21. package/dist/client/assets/settings-256557dc.js +299 -0
  22. package/dist/client/assets/splitpanes.es-012cdbb8.js +725 -0
  23. package/dist/client/assets/timeline-d6eff46a.js +209 -0
  24. package/dist/client/index.html +23 -0
  25. package/dist/index.cjs +7764 -0
  26. package/dist/index.d.ts +5 -0
  27. package/dist/index.mjs +7748 -0
  28. package/package.json +92 -8
  29. package/src/node/Container.vue +298 -0
  30. package/src/node/app.js +41 -0
@@ -0,0 +1,1403 @@
1
+ import { _ as __unplugin_components_0 } from './VPanelGrids-0fa9ab66.js';
2
+ import { _ as __unplugin_components_7 } from './VCard-71dc6c0a.js';
3
+ import { _ as _sfc_main$a } from './VIcon.vue_vue_type_script_setup_true_lang-527d8187.js';
4
+ import { d as defineComponent, o as openBlock, a as createBlock, w as withCtx, b as createVNode, an as mergeProps, ao as resolveDynamicComponent, P as ref, ap as useElementSize, aq as onClickOutside, c as createElementBlock, e as createBaseVNode, v as renderSlot, u as unref, m as createCommentVNode, ar as Transition, Q as computed, t as toDisplayString, n as normalizeClass, as as useStyleTag, N as normalizeStyle, at as computedAsync, au as useTimeAgo, F as Fragment, E as createTextVNode, _ as _sfc_main$b, av as onKeyDown, z as isRef, r as renderList } from './index-bed0f7d1.js';
5
+ import { r as rpc } from './rpc-9c16d07a.js';
6
+ import { _ as _sfc_main$c, a as __unplugin_components_3 } from './VTextInput.vue_vue_type_script_setup_true_lang-3269f8e0.js';
7
+ import { F as Fuse } from './fuse.esm-c317b696.js';
8
+ import './VIconTitle.vue_vue_type_script_setup_true_lang-e9a02b1e.js';
9
+
10
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
11
+ __name: "VIconButton",
12
+ props: {
13
+ to: null,
14
+ icon: null
15
+ },
16
+ setup(__props) {
17
+ const props = __props;
18
+ return (_ctx, _cache) => {
19
+ const _component_VIcon = _sfc_main$a;
20
+ return openBlock(), createBlock(resolveDynamicComponent(__props.to ? "a" : "button"), mergeProps({ href: __props.to }, _ctx.$attrs, { class: "n-transition n-icon-button" }), {
21
+ default: withCtx(() => [
22
+ createVNode(_component_VIcon, {
23
+ icon: props.icon
24
+ }, null, 8, ["icon"])
25
+ ]),
26
+ _: 1
27
+ }, 16, ["href"]);
28
+ };
29
+ }
30
+ });
31
+
32
+ /* Injected with object hook! */
33
+
34
+ const _hoisted_1$7 = {
35
+ relative: "",
36
+ "h-full": "",
37
+ "w-full": "",
38
+ "of-auto": ""
39
+ };
40
+ const __default__ = {
41
+ inheritAttrs: false
42
+ };
43
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
44
+ ...__default__,
45
+ __name: "DrawerRight",
46
+ props: {
47
+ modelValue: { type: Boolean },
48
+ navbar: null,
49
+ autoClose: { type: Boolean }
50
+ },
51
+ emits: ["close"],
52
+ setup(__props, { emit }) {
53
+ const props = __props;
54
+ const el = ref();
55
+ const { height: top } = useElementSize(() => props.navbar, void 0, { box: "border-box" });
56
+ onClickOutside(el, () => {
57
+ if (props.modelValue && props.autoClose)
58
+ emit("close");
59
+ }, {
60
+ ignore: ["a", "button", "summary"]
61
+ });
62
+ return (_ctx, _cache) => {
63
+ const _component_VIconButton = _sfc_main$9;
64
+ return openBlock(), createBlock(Transition, {
65
+ "enter-active-class": "duration-200 ease-in",
66
+ "enter-from-class": "transform translate-x-1/1",
67
+ "enter-to-class": "opacity-100",
68
+ "leave-active-class": "duration-200 ease-out",
69
+ "leave-from-class": "opacity-100",
70
+ "leave-to-class": "transform translate-x-1/1"
71
+ }, {
72
+ default: withCtx(() => [
73
+ __props.modelValue ? (openBlock(), createElementBlock("div", mergeProps({
74
+ key: 0,
75
+ ref_key: "el",
76
+ ref: el,
77
+ border: "l base",
78
+ flex: "~ col gap-1",
79
+ absolute: "",
80
+ "bottom-0": "",
81
+ "right-0": "",
82
+ "z-10": "",
83
+ "z-20": "",
84
+ "of-auto": "",
85
+ "text-sm": "",
86
+ "glass-effect": "",
87
+ style: { top: `${unref(top)}px` }
88
+ }, _ctx.$attrs), [
89
+ createVNode(_component_VIconButton, {
90
+ absolute: "",
91
+ "right-2": "",
92
+ "top-2": "",
93
+ "z-20": "",
94
+ "text-xl": "",
95
+ icon: "carbon-close",
96
+ onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("close"))
97
+ }),
98
+ createBaseVNode("div", _hoisted_1$7, [
99
+ renderSlot(_ctx.$slots, "default")
100
+ ])
101
+ ], 16)) : createCommentVNode("", true)
102
+ ]),
103
+ _: 3
104
+ });
105
+ };
106
+ }
107
+ });
108
+
109
+ /* Injected with object hook! */
110
+
111
+ const _hoisted_1$6 = ["title"];
112
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
113
+ __name: "FilepathItem",
114
+ props: {
115
+ filepath: null,
116
+ lineBreak: { type: Boolean },
117
+ subpath: { type: Boolean }
118
+ },
119
+ setup(__props) {
120
+ const props = __props;
121
+ const parsed = computed(
122
+ () => ({ path: props.filepath })
123
+ );
124
+ return (_ctx, _cache) => {
125
+ return openBlock(), createElementBlock("button", {
126
+ "font-mono": "",
127
+ "hover:underline": "",
128
+ class: normalizeClass(__props.lineBreak ? "" : "ws-nowrap of-hidden truncate"),
129
+ title: __props.filepath
130
+ }, toDisplayString(unref(parsed).path), 11, _hoisted_1$6);
131
+ };
132
+ }
133
+ });
134
+
135
+ /* Injected with object hook! */
136
+
137
+ const defaults = {
138
+ ignoreUnknown: false,
139
+ respectType: false,
140
+ respectFunctionNames: false,
141
+ respectFunctionProperties: false,
142
+ unorderedObjects: true,
143
+ unorderedArrays: false,
144
+ unorderedSets: false
145
+ };
146
+ function objectHash(object, options = {}) {
147
+ options = { ...defaults, ...options };
148
+ const hasher = createHasher(options);
149
+ hasher.dispatch(object);
150
+ return hasher.toString();
151
+ }
152
+ function createHasher(options) {
153
+ const buff = [];
154
+ let context = [];
155
+ const write = (str) => {
156
+ buff.push(str);
157
+ };
158
+ return {
159
+ toString() {
160
+ return buff.join("");
161
+ },
162
+ getContext() {
163
+ return context;
164
+ },
165
+ dispatch(value) {
166
+ if (options.replacer) {
167
+ value = options.replacer(value);
168
+ }
169
+ const type = value === null ? "null" : typeof value;
170
+ return this["_" + type](value);
171
+ },
172
+ _object(object) {
173
+ if (object && typeof object.toJSON === "function") {
174
+ return this._object(object.toJSON());
175
+ }
176
+ const pattern = /\[object (.*)]/i;
177
+ const objString = Object.prototype.toString.call(object);
178
+ const _objType = pattern.exec(objString);
179
+ const objType = _objType ? _objType[1].toLowerCase() : "unknown:[" + objString.toLowerCase() + "]";
180
+ let objectNumber = null;
181
+ if ((objectNumber = context.indexOf(object)) >= 0) {
182
+ return this.dispatch("[CIRCULAR:" + objectNumber + "]");
183
+ } else {
184
+ context.push(object);
185
+ }
186
+ if (typeof Buffer !== "undefined" && Buffer.isBuffer && Buffer.isBuffer(object)) {
187
+ write("buffer:");
188
+ return write(object.toString("utf8"));
189
+ }
190
+ if (objType !== "object" && objType !== "function" && objType !== "asyncfunction") {
191
+ if (this["_" + objType]) {
192
+ this["_" + objType](object);
193
+ } else if (!options.ignoreUnknown) {
194
+ this._unkown(object, objType);
195
+ }
196
+ } else {
197
+ let keys = Object.keys(object);
198
+ if (options.unorderedObjects) {
199
+ keys = keys.sort();
200
+ }
201
+ if (options.respectType !== false && !isNativeFunction(object)) {
202
+ keys.splice(0, 0, "prototype", "__proto__", "letructor");
203
+ }
204
+ if (options.excludeKeys) {
205
+ keys = keys.filter(function(key) {
206
+ return !options.excludeKeys(key);
207
+ });
208
+ }
209
+ write("object:" + keys.length + ":");
210
+ for (const key of keys) {
211
+ this.dispatch(key);
212
+ write(":");
213
+ if (!options.excludeValues) {
214
+ this.dispatch(object[key]);
215
+ }
216
+ write(",");
217
+ }
218
+ }
219
+ },
220
+ _array(arr, unordered) {
221
+ unordered = typeof unordered !== "undefined" ? unordered : options.unorderedArrays !== false;
222
+ write("array:" + arr.length + ":");
223
+ if (!unordered || arr.length <= 1) {
224
+ for (const entry of arr) {
225
+ this.dispatch(entry);
226
+ }
227
+ return;
228
+ }
229
+ const contextAdditions = [];
230
+ const entries = arr.map((entry) => {
231
+ const hasher = createHasher(options);
232
+ hasher.dispatch(entry);
233
+ contextAdditions.push(hasher.getContext());
234
+ return hasher.toString();
235
+ });
236
+ context = [...context, ...contextAdditions];
237
+ entries.sort();
238
+ return this._array(entries, false);
239
+ },
240
+ _date(date) {
241
+ return write("date:" + date.toJSON());
242
+ },
243
+ _symbol(sym) {
244
+ return write("symbol:" + sym.toString());
245
+ },
246
+ _unkown(value, type) {
247
+ write(type);
248
+ if (!value) {
249
+ return;
250
+ }
251
+ write(":");
252
+ if (value && typeof value.entries === "function") {
253
+ return this._array(
254
+ Array.from(value.entries()),
255
+ true
256
+ /* ordered */
257
+ );
258
+ }
259
+ },
260
+ _error(err) {
261
+ return write("error:" + err.toString());
262
+ },
263
+ _boolean(bool) {
264
+ return write("bool:" + bool.toString());
265
+ },
266
+ _string(string) {
267
+ write("string:" + string.length + ":");
268
+ write(string.toString());
269
+ },
270
+ _function(fn) {
271
+ write("fn:");
272
+ if (isNativeFunction(fn)) {
273
+ this.dispatch("[native]");
274
+ } else {
275
+ this.dispatch(fn.toString());
276
+ }
277
+ if (options.respectFunctionNames !== false) {
278
+ this.dispatch("function-name:" + String(fn.name));
279
+ }
280
+ if (options.respectFunctionProperties) {
281
+ this._object(fn);
282
+ }
283
+ },
284
+ _number(number) {
285
+ return write("number:" + number.toString());
286
+ },
287
+ _xml(xml) {
288
+ return write("xml:" + xml.toString());
289
+ },
290
+ _null() {
291
+ return write("Null");
292
+ },
293
+ _undefined() {
294
+ return write("Undefined");
295
+ },
296
+ _regexp(regex) {
297
+ return write("regex:" + regex.toString());
298
+ },
299
+ _uint8array(arr) {
300
+ write("uint8array:");
301
+ return this.dispatch(Array.prototype.slice.call(arr));
302
+ },
303
+ _uint8clampedarray(arr) {
304
+ write("uint8clampedarray:");
305
+ return this.dispatch(Array.prototype.slice.call(arr));
306
+ },
307
+ _int8array(arr) {
308
+ write("int8array:");
309
+ return this.dispatch(Array.prototype.slice.call(arr));
310
+ },
311
+ _uint16array(arr) {
312
+ write("uint16array:");
313
+ return this.dispatch(Array.prototype.slice.call(arr));
314
+ },
315
+ _int16array(arr) {
316
+ write("int16array:");
317
+ return this.dispatch(Array.prototype.slice.call(arr));
318
+ },
319
+ _uint32array(arr) {
320
+ write("uint32array:");
321
+ return this.dispatch(Array.prototype.slice.call(arr));
322
+ },
323
+ _int32array(arr) {
324
+ write("int32array:");
325
+ return this.dispatch(Array.prototype.slice.call(arr));
326
+ },
327
+ _float32array(arr) {
328
+ write("float32array:");
329
+ return this.dispatch(Array.prototype.slice.call(arr));
330
+ },
331
+ _float64array(arr) {
332
+ write("float64array:");
333
+ return this.dispatch(Array.prototype.slice.call(arr));
334
+ },
335
+ _arraybuffer(arr) {
336
+ write("arraybuffer:");
337
+ return this.dispatch(new Uint8Array(arr));
338
+ },
339
+ _url(url) {
340
+ return write("url:" + url.toString());
341
+ },
342
+ _map(map) {
343
+ write("map:");
344
+ const arr = [...map];
345
+ return this._array(arr, options.unorderedSets !== false);
346
+ },
347
+ _set(set) {
348
+ write("set:");
349
+ const arr = [...set];
350
+ return this._array(arr, options.unorderedSets !== false);
351
+ },
352
+ _file(file) {
353
+ write("file:");
354
+ return this.dispatch([file.name, file.size, file.type, file.lastModfied]);
355
+ },
356
+ _blob() {
357
+ if (options.ignoreUnknown) {
358
+ return write("[blob]");
359
+ }
360
+ throw new Error(
361
+ 'Hashing Blob objects is currently not supported\nUse "options.replacer" or "options.ignoreUnknown"\n'
362
+ );
363
+ },
364
+ _domwindow() {
365
+ return write("domwindow");
366
+ },
367
+ _bigint(number) {
368
+ return write("bigint:" + number.toString());
369
+ },
370
+ /* Node.js standard native objects */
371
+ _process() {
372
+ return write("process");
373
+ },
374
+ _timer() {
375
+ return write("timer");
376
+ },
377
+ _pipe() {
378
+ return write("pipe");
379
+ },
380
+ _tcp() {
381
+ return write("tcp");
382
+ },
383
+ _udp() {
384
+ return write("udp");
385
+ },
386
+ _tty() {
387
+ return write("tty");
388
+ },
389
+ _statwatcher() {
390
+ return write("statwatcher");
391
+ },
392
+ _securecontext() {
393
+ return write("securecontext");
394
+ },
395
+ _connection() {
396
+ return write("connection");
397
+ },
398
+ _zlib() {
399
+ return write("zlib");
400
+ },
401
+ _context() {
402
+ return write("context");
403
+ },
404
+ _nodescript() {
405
+ return write("nodescript");
406
+ },
407
+ _httpparser() {
408
+ return write("httpparser");
409
+ },
410
+ _dataview() {
411
+ return write("dataview");
412
+ },
413
+ _signal() {
414
+ return write("signal");
415
+ },
416
+ _fsevent() {
417
+ return write("fsevent");
418
+ },
419
+ _tlswrap() {
420
+ return write("tlswrap");
421
+ }
422
+ };
423
+ }
424
+ function isNativeFunction(f) {
425
+ if (typeof f !== "function") {
426
+ return false;
427
+ }
428
+ const exp = /^function\s+\w*\s*\(\s*\)\s*{\s+\[native code]\s+}$/i;
429
+ return exp.exec(Function.prototype.toString.call(f)) != null;
430
+ }
431
+
432
+ class WordArray {
433
+ constructor(words, sigBytes) {
434
+ words = this.words = words || [];
435
+ this.sigBytes = sigBytes !== void 0 ? sigBytes : words.length * 4;
436
+ }
437
+ toString(encoder) {
438
+ return (encoder || Hex).stringify(this);
439
+ }
440
+ concat(wordArray) {
441
+ this.clamp();
442
+ if (this.sigBytes % 4) {
443
+ for (let i = 0; i < wordArray.sigBytes; i++) {
444
+ const thatByte = wordArray.words[i >>> 2] >>> 24 - i % 4 * 8 & 255;
445
+ this.words[this.sigBytes + i >>> 2] |= thatByte << 24 - (this.sigBytes + i) % 4 * 8;
446
+ }
447
+ } else {
448
+ for (let j = 0; j < wordArray.sigBytes; j += 4) {
449
+ this.words[this.sigBytes + j >>> 2] = wordArray.words[j >>> 2];
450
+ }
451
+ }
452
+ this.sigBytes += wordArray.sigBytes;
453
+ return this;
454
+ }
455
+ clamp() {
456
+ this.words[this.sigBytes >>> 2] &= 4294967295 << 32 - this.sigBytes % 4 * 8;
457
+ this.words.length = Math.ceil(this.sigBytes / 4);
458
+ }
459
+ clone() {
460
+ return new WordArray([...this.words]);
461
+ }
462
+ }
463
+ const Hex = {
464
+ stringify(wordArray) {
465
+ const hexChars = [];
466
+ for (let i = 0; i < wordArray.sigBytes; i++) {
467
+ const bite = wordArray.words[i >>> 2] >>> 24 - i % 4 * 8 & 255;
468
+ hexChars.push((bite >>> 4).toString(16), (bite & 15).toString(16));
469
+ }
470
+ return hexChars.join("");
471
+ }
472
+ };
473
+ const Base64 = {
474
+ stringify(wordArray) {
475
+ const keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
476
+ const base64Chars = [];
477
+ for (let i = 0; i < wordArray.sigBytes; i += 3) {
478
+ const byte1 = wordArray.words[i >>> 2] >>> 24 - i % 4 * 8 & 255;
479
+ const byte2 = wordArray.words[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255;
480
+ const byte3 = wordArray.words[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255;
481
+ const triplet = byte1 << 16 | byte2 << 8 | byte3;
482
+ for (let j = 0; j < 4 && i * 8 + j * 6 < wordArray.sigBytes * 8; j++) {
483
+ base64Chars.push(keyStr.charAt(triplet >>> 6 * (3 - j) & 63));
484
+ }
485
+ }
486
+ return base64Chars.join("");
487
+ }
488
+ };
489
+ const Latin1 = {
490
+ parse(latin1Str) {
491
+ const latin1StrLength = latin1Str.length;
492
+ const words = [];
493
+ for (let i = 0; i < latin1StrLength; i++) {
494
+ words[i >>> 2] |= (latin1Str.charCodeAt(i) & 255) << 24 - i % 4 * 8;
495
+ }
496
+ return new WordArray(words, latin1StrLength);
497
+ }
498
+ };
499
+ const Utf8 = {
500
+ parse(utf8Str) {
501
+ return Latin1.parse(unescape(encodeURIComponent(utf8Str)));
502
+ }
503
+ };
504
+ class BufferedBlockAlgorithm {
505
+ constructor() {
506
+ this._minBufferSize = 0;
507
+ this.blockSize = 512 / 32;
508
+ this.reset();
509
+ }
510
+ reset() {
511
+ this._data = new WordArray();
512
+ this._nDataBytes = 0;
513
+ }
514
+ _append(data) {
515
+ if (typeof data === "string") {
516
+ data = Utf8.parse(data);
517
+ }
518
+ this._data.concat(data);
519
+ this._nDataBytes += data.sigBytes;
520
+ }
521
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
522
+ _doProcessBlock(_dataWords, _offset) {
523
+ }
524
+ _process(doFlush) {
525
+ let processedWords;
526
+ let nBlocksReady = this._data.sigBytes / (this.blockSize * 4);
527
+ if (doFlush) {
528
+ nBlocksReady = Math.ceil(nBlocksReady);
529
+ } else {
530
+ nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);
531
+ }
532
+ const nWordsReady = nBlocksReady * this.blockSize;
533
+ const nBytesReady = Math.min(nWordsReady * 4, this._data.sigBytes);
534
+ if (nWordsReady) {
535
+ for (let offset = 0; offset < nWordsReady; offset += this.blockSize) {
536
+ this._doProcessBlock(this._data.words, offset);
537
+ }
538
+ processedWords = this._data.words.splice(0, nWordsReady);
539
+ this._data.sigBytes -= nBytesReady;
540
+ }
541
+ return new WordArray(processedWords, nBytesReady);
542
+ }
543
+ }
544
+ class Hasher extends BufferedBlockAlgorithm {
545
+ update(messageUpdate) {
546
+ this._append(messageUpdate);
547
+ this._process();
548
+ return this;
549
+ }
550
+ finalize(messageUpdate) {
551
+ if (messageUpdate) {
552
+ this._append(messageUpdate);
553
+ }
554
+ }
555
+ }
556
+
557
+ const H = [
558
+ 1779033703,
559
+ -1150833019,
560
+ 1013904242,
561
+ -1521486534,
562
+ 1359893119,
563
+ -1694144372,
564
+ 528734635,
565
+ 1541459225
566
+ ];
567
+ const K = [
568
+ 1116352408,
569
+ 1899447441,
570
+ -1245643825,
571
+ -373957723,
572
+ 961987163,
573
+ 1508970993,
574
+ -1841331548,
575
+ -1424204075,
576
+ -670586216,
577
+ 310598401,
578
+ 607225278,
579
+ 1426881987,
580
+ 1925078388,
581
+ -2132889090,
582
+ -1680079193,
583
+ -1046744716,
584
+ -459576895,
585
+ -272742522,
586
+ 264347078,
587
+ 604807628,
588
+ 770255983,
589
+ 1249150122,
590
+ 1555081692,
591
+ 1996064986,
592
+ -1740746414,
593
+ -1473132947,
594
+ -1341970488,
595
+ -1084653625,
596
+ -958395405,
597
+ -710438585,
598
+ 113926993,
599
+ 338241895,
600
+ 666307205,
601
+ 773529912,
602
+ 1294757372,
603
+ 1396182291,
604
+ 1695183700,
605
+ 1986661051,
606
+ -2117940946,
607
+ -1838011259,
608
+ -1564481375,
609
+ -1474664885,
610
+ -1035236496,
611
+ -949202525,
612
+ -778901479,
613
+ -694614492,
614
+ -200395387,
615
+ 275423344,
616
+ 430227734,
617
+ 506948616,
618
+ 659060556,
619
+ 883997877,
620
+ 958139571,
621
+ 1322822218,
622
+ 1537002063,
623
+ 1747873779,
624
+ 1955562222,
625
+ 2024104815,
626
+ -2067236844,
627
+ -1933114872,
628
+ -1866530822,
629
+ -1538233109,
630
+ -1090935817,
631
+ -965641998
632
+ ];
633
+ const W = [];
634
+ class SHA256 extends Hasher {
635
+ constructor() {
636
+ super();
637
+ this.reset();
638
+ }
639
+ reset() {
640
+ super.reset();
641
+ this._hash = new WordArray([...H]);
642
+ }
643
+ _doProcessBlock(M, offset) {
644
+ const H2 = this._hash.words;
645
+ let a = H2[0];
646
+ let b = H2[1];
647
+ let c = H2[2];
648
+ let d = H2[3];
649
+ let e = H2[4];
650
+ let f = H2[5];
651
+ let g = H2[6];
652
+ let h = H2[7];
653
+ for (let i = 0; i < 64; i++) {
654
+ if (i < 16) {
655
+ W[i] = M[offset + i] | 0;
656
+ } else {
657
+ const gamma0x = W[i - 15];
658
+ const gamma0 = (gamma0x << 25 | gamma0x >>> 7) ^ (gamma0x << 14 | gamma0x >>> 18) ^ gamma0x >>> 3;
659
+ const gamma1x = W[i - 2];
660
+ const gamma1 = (gamma1x << 15 | gamma1x >>> 17) ^ (gamma1x << 13 | gamma1x >>> 19) ^ gamma1x >>> 10;
661
+ W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];
662
+ }
663
+ const ch = e & f ^ ~e & g;
664
+ const maj = a & b ^ a & c ^ b & c;
665
+ const sigma0 = (a << 30 | a >>> 2) ^ (a << 19 | a >>> 13) ^ (a << 10 | a >>> 22);
666
+ const sigma1 = (e << 26 | e >>> 6) ^ (e << 21 | e >>> 11) ^ (e << 7 | e >>> 25);
667
+ const t1 = h + sigma1 + ch + K[i] + W[i];
668
+ const t2 = sigma0 + maj;
669
+ h = g;
670
+ g = f;
671
+ f = e;
672
+ e = d + t1 | 0;
673
+ d = c;
674
+ c = b;
675
+ b = a;
676
+ a = t1 + t2 | 0;
677
+ }
678
+ H2[0] = H2[0] + a | 0;
679
+ H2[1] = H2[1] + b | 0;
680
+ H2[2] = H2[2] + c | 0;
681
+ H2[3] = H2[3] + d | 0;
682
+ H2[4] = H2[4] + e | 0;
683
+ H2[5] = H2[5] + f | 0;
684
+ H2[6] = H2[6] + g | 0;
685
+ H2[7] = H2[7] + h | 0;
686
+ }
687
+ finalize(messageUpdate) {
688
+ super.finalize(messageUpdate);
689
+ const nBitsTotal = this._nDataBytes * 8;
690
+ const nBitsLeft = this._data.sigBytes * 8;
691
+ this._data.words[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32;
692
+ this._data.words[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math.floor(
693
+ nBitsTotal / 4294967296
694
+ );
695
+ this._data.words[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal;
696
+ this._data.sigBytes = this._data.words.length * 4;
697
+ this._process();
698
+ return this._hash;
699
+ }
700
+ }
701
+ function sha256base64(message) {
702
+ return new SHA256().finalize(message).toString(Base64);
703
+ }
704
+
705
+ function hash(object, options = {}) {
706
+ const hashed = typeof object === "string" ? object : objectHash(object, options);
707
+ return sha256base64(hashed).slice(0, 10);
708
+ }
709
+
710
+ /* Injected with object hook! */
711
+
712
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
713
+ __name: "AssetFontPreview",
714
+ props: {
715
+ asset: null
716
+ },
717
+ setup(__props) {
718
+ const props = __props;
719
+ const id = computed(() => `devtools-assets-${hash(props.asset)}`);
720
+ useStyleTag(computed(() => `
721
+ @font-face {
722
+ font-family: '${id.value}';
723
+ src: url('${props.asset.publicPath}');
724
+ }
725
+ `));
726
+ return (_ctx, _cache) => {
727
+ return openBlock(), createElementBlock("div", {
728
+ "of-hidden": "",
729
+ style: normalizeStyle({ fontFamily: `'${unref(id)}'` })
730
+ }, " Aa Bb Cc Dd Ee Ff Gg Hh Ii Jj Kk Ll Mm Nn Oo Pp Qq Rr Ss Tt Uu Vv Ww Xx Yy Zz ", 4);
731
+ };
732
+ }
733
+ });
734
+
735
+ /* Injected with object hook! */
736
+
737
+ const _hoisted_1$5 = {
738
+ flex: "",
739
+ "items-center": "",
740
+ "justify-center": "",
741
+ "of-hidden": "",
742
+ "bg-active": "",
743
+ "object-cover": "",
744
+ p1: ""
745
+ };
746
+ const _hoisted_2$4 = ["src"];
747
+ const _hoisted_3$2 = {
748
+ key: 2,
749
+ "i-carbon-document": "",
750
+ "text-3xl": "",
751
+ op20: ""
752
+ };
753
+ const _hoisted_4$2 = {
754
+ key: 3,
755
+ "w-full": "",
756
+ "self-start": "",
757
+ p4: ""
758
+ };
759
+ const _hoisted_5$2 = ["textContent"];
760
+ const _hoisted_6$2 = {
761
+ key: 4,
762
+ "i-carbon-help": "",
763
+ "text-3xl": "",
764
+ op20: ""
765
+ };
766
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
767
+ __name: "AssetPreview",
768
+ props: {
769
+ asset: null,
770
+ textContent: null
771
+ },
772
+ setup(__props) {
773
+ return (_ctx, _cache) => {
774
+ const _component_AssetFontPreview = _sfc_main$6;
775
+ return openBlock(), createElementBlock("div", _hoisted_1$5, [
776
+ __props.asset.type === "image" ? (openBlock(), createElementBlock("img", {
777
+ key: 0,
778
+ src: __props.asset.publicPath
779
+ }, null, 8, _hoisted_2$4)) : __props.asset.type === "font" ? (openBlock(), createBlock(_component_AssetFontPreview, {
780
+ key: __props.asset.publicPath,
781
+ asset: __props.asset,
782
+ "self-stretch": "",
783
+ p2: "",
784
+ "text-2xl": ""
785
+ }, null, 8, ["asset"])) : __props.asset.type === "text" && !__props.textContent ? (openBlock(), createElementBlock("div", _hoisted_3$2)) : __props.asset.type === "text" && __props.textContent ? (openBlock(), createElementBlock("div", _hoisted_4$2, [
786
+ createBaseVNode("pre", {
787
+ "max-h-10rem": "",
788
+ "of-hidden": "",
789
+ "font-mono": "",
790
+ "text-xs": "",
791
+ textContent: toDisplayString(__props.textContent)
792
+ }, null, 8, _hoisted_5$2)
793
+ ])) : (openBlock(), createElementBlock("div", _hoisted_6$2))
794
+ ]);
795
+ };
796
+ }
797
+ });
798
+
799
+ /* Injected with object hook! */
800
+
801
+ const _hoisted_1$4 = {
802
+ flex: "~ col gap-4",
803
+ "min-h-full": "",
804
+ "w-full": "",
805
+ "of-hidden": "",
806
+ p4: ""
807
+ };
808
+ const _hoisted_2$3 = /* @__PURE__ */ createBaseVNode("div", {
809
+ flex: "~ gap2",
810
+ "mb--2": "",
811
+ "items-center": "",
812
+ op50: ""
813
+ }, [
814
+ /* @__PURE__ */ createBaseVNode("div", { "x-divider": "" }),
815
+ /* @__PURE__ */ createBaseVNode("div", { "flex-none": "" }, " Preview "),
816
+ /* @__PURE__ */ createBaseVNode("div", { "x-divider": "" })
817
+ ], -1);
818
+ const _hoisted_3$1 = {
819
+ flex: "~",
820
+ "items-center": "",
821
+ "justify-center": ""
822
+ };
823
+ const _hoisted_4$1 = /* @__PURE__ */ createBaseVNode("div", {
824
+ flex: "~ gap2",
825
+ "mb--2": "",
826
+ "items-center": "",
827
+ op50: ""
828
+ }, [
829
+ /* @__PURE__ */ createBaseVNode("div", { "x-divider": "" }),
830
+ /* @__PURE__ */ createBaseVNode("div", { "flex-none": "" }, " Details "),
831
+ /* @__PURE__ */ createBaseVNode("div", { "x-divider": "" })
832
+ ], -1);
833
+ const _hoisted_5$1 = {
834
+ "max-w-full": "",
835
+ "w-full": "",
836
+ "table-fixed": ""
837
+ };
838
+ const _hoisted_6$1 = /* @__PURE__ */ createBaseVNode("td", {
839
+ "w-30": "",
840
+ "ws-nowrap": "",
841
+ pr5: "",
842
+ "text-right": "",
843
+ op50: ""
844
+ }, " Filepath ", -1);
845
+ const _hoisted_7$1 = {
846
+ flex: "~ gap-1",
847
+ "w-full": "",
848
+ "items-center": ""
849
+ };
850
+ const _hoisted_8$1 = /* @__PURE__ */ createBaseVNode("td", {
851
+ "w-30": "",
852
+ "ws-nowrap": "",
853
+ pr5: "",
854
+ "text-right": "",
855
+ op50: ""
856
+ }, " Public Path ", -1);
857
+ const _hoisted_9 = {
858
+ flex: "~ gap-1",
859
+ "w-full": "",
860
+ "items-center": "",
861
+ "of-hidden": ""
862
+ };
863
+ const _hoisted_10 = {
864
+ "flex-auto": "",
865
+ "of-hidden": "",
866
+ truncate: "",
867
+ "ws-pre": "",
868
+ "font-mono": ""
869
+ };
870
+ const _hoisted_11 = /* @__PURE__ */ createBaseVNode("td", {
871
+ "w-30": "",
872
+ "ws-nowrap": "",
873
+ pr5: "",
874
+ "text-right": "",
875
+ op50: ""
876
+ }, " Type ", -1);
877
+ const _hoisted_12 = { capitalize: "" };
878
+ const _hoisted_13 = /* @__PURE__ */ createBaseVNode("td", {
879
+ "w-30": "",
880
+ "ws-nowrap": "",
881
+ pr5: "",
882
+ "text-right": "",
883
+ op50: ""
884
+ }, " Image Size ", -1);
885
+ const _hoisted_14 = { key: 0 };
886
+ const _hoisted_15 = /* @__PURE__ */ createBaseVNode("td", {
887
+ "w-30": "",
888
+ "ws-nowrap": "",
889
+ pr5: "",
890
+ "text-right": "",
891
+ op50: ""
892
+ }, " Aspect Ratio ", -1);
893
+ const _hoisted_16 = /* @__PURE__ */ createBaseVNode("td", {
894
+ "w-30": "",
895
+ "ws-nowrap": "",
896
+ pr5: "",
897
+ "text-right": "",
898
+ op50: ""
899
+ }, " File size ", -1);
900
+ const _hoisted_17 = /* @__PURE__ */ createBaseVNode("td", {
901
+ "w-30": "",
902
+ "ws-nowrap": "",
903
+ pr5: "",
904
+ "text-right": "",
905
+ op50: ""
906
+ }, " Last modified ", -1);
907
+ const _hoisted_18 = { op70: "" };
908
+ const _hoisted_19 = /* @__PURE__ */ createBaseVNode("div", {
909
+ flex: "~ gap2",
910
+ "mb--2": "",
911
+ "items-center": "",
912
+ op50: ""
913
+ }, [
914
+ /* @__PURE__ */ createBaseVNode("div", { "x-divider": "" }),
915
+ /* @__PURE__ */ createBaseVNode("div", { "flex-none": "" }, " Actions "),
916
+ /* @__PURE__ */ createBaseVNode("div", { "x-divider": "" })
917
+ ], -1);
918
+ const _hoisted_20 = { flex: "~ gap2 wrap" };
919
+ const _hoisted_21 = /* @__PURE__ */ createBaseVNode("div", { "flex-auto": "" }, null, -1);
920
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
921
+ __name: "AssetDetails",
922
+ props: {
923
+ asset: null
924
+ },
925
+ setup(__props) {
926
+ const props = __props;
927
+ const origin = window.parent.location.origin;
928
+ const imageMeta = computedAsync(() => {
929
+ if (props.asset.type !== "image")
930
+ return void 0;
931
+ return rpc.getImageMeta(props.asset.filePath);
932
+ });
933
+ const textContent = computedAsync(() => {
934
+ if (props.asset.type !== "text")
935
+ return void 0;
936
+ return rpc.getTextAssetContent(props.asset.filePath);
937
+ });
938
+ const timeago = useTimeAgo(() => props.asset.mtime);
939
+ const fileSize = computed(() => {
940
+ const size = props.asset.size;
941
+ if (size < 1024)
942
+ return `${size} B`;
943
+ if (size < 1024 * 1024)
944
+ return `${(size / 1024).toFixed(2)} KB`;
945
+ return `${(size / 1024 / 1024).toFixed(2)} MB`;
946
+ });
947
+ const aspectRatio = computed(() => {
948
+ if (!imageMeta.value?.width || !imageMeta.value?.height)
949
+ return "";
950
+ const gcd = (a, b) => {
951
+ if (!b)
952
+ return a;
953
+ return gcd(b, a % b);
954
+ };
955
+ const ratio = gcd(imageMeta.value.width, imageMeta.value.height);
956
+ if (ratio > 3)
957
+ return `${imageMeta.value.width / ratio}:${imageMeta.value.height / ratio}`;
958
+ return "";
959
+ });
960
+ const supportsPreview = computed(() => {
961
+ return [
962
+ "image",
963
+ "text",
964
+ "video",
965
+ "font"
966
+ ].includes(props.asset.type);
967
+ });
968
+ return (_ctx, _cache) => {
969
+ const _component_AssetPreview = _sfc_main$5;
970
+ const _component_FilepathItem = _sfc_main$7;
971
+ const _component_VIconButton = _sfc_main$9;
972
+ const _component_VButton = _sfc_main$b;
973
+ return openBlock(), createElementBlock("div", _hoisted_1$4, [
974
+ unref(supportsPreview) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
975
+ _hoisted_2$3,
976
+ createBaseVNode("div", _hoisted_3$1, [
977
+ createVNode(_component_AssetPreview, {
978
+ "max-h-80": "",
979
+ "min-h-20": "",
980
+ "min-w-20": "",
981
+ "w-auto": "",
982
+ rounded: "",
983
+ border: "~ base",
984
+ asset: __props.asset,
985
+ "text-content": unref(textContent)
986
+ }, null, 8, ["asset", "text-content"])
987
+ ])
988
+ ], 64)) : createCommentVNode("", true),
989
+ _hoisted_4$1,
990
+ createBaseVNode("table", _hoisted_5$1, [
991
+ createBaseVNode("tbody", null, [
992
+ createBaseVNode("tr", null, [
993
+ _hoisted_6$1,
994
+ createBaseVNode("td", null, [
995
+ createBaseVNode("div", _hoisted_7$1, [
996
+ createVNode(_component_FilepathItem, {
997
+ filepath: __props.asset.filePath,
998
+ "text-left": ""
999
+ }, null, 8, ["filepath"])
1000
+ ])
1001
+ ])
1002
+ ]),
1003
+ createBaseVNode("tr", null, [
1004
+ _hoisted_8$1,
1005
+ createBaseVNode("td", null, [
1006
+ createBaseVNode("div", _hoisted_9, [
1007
+ createBaseVNode("div", _hoisted_10, toDisplayString(__props.asset.publicPath), 1),
1008
+ createVNode(_component_VIconButton, {
1009
+ "flex-none": "",
1010
+ to: `${unref(origin)}${__props.asset.publicPath}`,
1011
+ icon: "carbon-launch",
1012
+ target: "_blank",
1013
+ title: "Open in browser"
1014
+ }, null, 8, ["to"])
1015
+ ])
1016
+ ])
1017
+ ]),
1018
+ createBaseVNode("tr", null, [
1019
+ _hoisted_11,
1020
+ createBaseVNode("td", _hoisted_12, toDisplayString(__props.asset.type), 1)
1021
+ ]),
1022
+ unref(imageMeta)?.width ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
1023
+ createBaseVNode("tr", null, [
1024
+ _hoisted_13,
1025
+ createBaseVNode("td", null, toDisplayString(unref(imageMeta).width) + " x " + toDisplayString(unref(imageMeta).height), 1)
1026
+ ]),
1027
+ unref(aspectRatio) ? (openBlock(), createElementBlock("tr", _hoisted_14, [
1028
+ _hoisted_15,
1029
+ createBaseVNode("td", null, toDisplayString(unref(aspectRatio)), 1)
1030
+ ])) : createCommentVNode("", true)
1031
+ ], 64)) : createCommentVNode("", true),
1032
+ createBaseVNode("tr", null, [
1033
+ _hoisted_16,
1034
+ createBaseVNode("td", null, toDisplayString(unref(fileSize)), 1)
1035
+ ]),
1036
+ createBaseVNode("tr", null, [
1037
+ _hoisted_17,
1038
+ createBaseVNode("td", null, [
1039
+ createTextVNode(toDisplayString(new Date(__props.asset.mtime).toLocaleString()) + " ", 1),
1040
+ createBaseVNode("span", _hoisted_18, "(" + toDisplayString(unref(timeago)) + ")", 1)
1041
+ ])
1042
+ ])
1043
+ ])
1044
+ ]),
1045
+ _hoisted_19,
1046
+ createBaseVNode("div", _hoisted_20, [
1047
+ createVNode(_component_VButton, {
1048
+ to: `${unref(origin)}${__props.asset.publicPath}`,
1049
+ download: "",
1050
+ target: "_blank",
1051
+ icon: "carbon-download"
1052
+ }, {
1053
+ default: withCtx(() => [
1054
+ createTextVNode(" Download ")
1055
+ ]),
1056
+ _: 1
1057
+ }, 8, ["to"])
1058
+ ]),
1059
+ _hoisted_21
1060
+ ]);
1061
+ };
1062
+ }
1063
+ });
1064
+
1065
+ /* Injected with object hook! */
1066
+
1067
+ const _hoisted_1$3 = {
1068
+ flex: "~ gap-1",
1069
+ "w-full": "",
1070
+ "items-center": "",
1071
+ hover: "bg-active",
1072
+ rounded: "",
1073
+ px4: "",
1074
+ py2: ""
1075
+ };
1076
+ const _hoisted_2$2 = {
1077
+ "of-hidden": "",
1078
+ truncate: "",
1079
+ "ws-nowrap": "",
1080
+ "text-center": ""
1081
+ };
1082
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
1083
+ __name: "AssetListItem",
1084
+ props: {
1085
+ asset: null
1086
+ },
1087
+ setup(__props) {
1088
+ const props = __props;
1089
+ const icon = computed(() => {
1090
+ if (props.asset.type === "image")
1091
+ return "i-carbon-image";
1092
+ if (props.asset.type === "video")
1093
+ return "i-carbon-video";
1094
+ if (props.asset.type === "audio")
1095
+ return "i-carbon-volume-up";
1096
+ if (props.asset.type === "font")
1097
+ return "i-carbon-text-small-caps";
1098
+ if (props.asset.type === "text")
1099
+ return "i-carbon-document";
1100
+ if (props.asset.type === "json")
1101
+ return "i-carbon-json";
1102
+ return "i-carbon-document-blank";
1103
+ });
1104
+ return (_ctx, _cache) => {
1105
+ return openBlock(), createElementBlock("button", _hoisted_1$3, [
1106
+ createBaseVNode("div", {
1107
+ class: normalizeClass(unref(icon))
1108
+ }, null, 2),
1109
+ createBaseVNode("div", _hoisted_2$2, toDisplayString(__props.asset.path), 1)
1110
+ ]);
1111
+ };
1112
+ }
1113
+ });
1114
+
1115
+ /* Injected with object hook! */
1116
+
1117
+ const _hoisted_1$2 = {
1118
+ flex: "~ col gap-1",
1119
+ hover: "bg-active",
1120
+ "items-center": "",
1121
+ "of-hidden": "",
1122
+ rounded: "",
1123
+ p2: ""
1124
+ };
1125
+ const _hoisted_2$1 = {
1126
+ "w-full": "",
1127
+ "of-hidden": "",
1128
+ truncate: "",
1129
+ "ws-nowrap": "",
1130
+ "text-center": "",
1131
+ "text-xs": ""
1132
+ };
1133
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1134
+ __name: "AssetGridItem",
1135
+ props: {
1136
+ asset: null,
1137
+ folder: null
1138
+ },
1139
+ setup(__props) {
1140
+ const props = __props;
1141
+ const path = computed(() => {
1142
+ if (props.folder && props.asset.path.startsWith(props.folder))
1143
+ return props.asset.path.slice(props.folder.length);
1144
+ return props.asset.path;
1145
+ });
1146
+ return (_ctx, _cache) => {
1147
+ const _component_AssetPreview = _sfc_main$5;
1148
+ return openBlock(), createElementBlock("button", _hoisted_1$2, [
1149
+ createVNode(_component_AssetPreview, {
1150
+ "h-30": "",
1151
+ "w-30": "",
1152
+ rounded: "",
1153
+ border: "~ base",
1154
+ asset: __props.asset
1155
+ }, null, 8, ["asset"]),
1156
+ createBaseVNode("div", _hoisted_2$1, toDisplayString(unref(path)), 1)
1157
+ ]);
1158
+ };
1159
+ }
1160
+ });
1161
+
1162
+ /* Injected with object hook! */
1163
+
1164
+ const _hoisted_1$1 = { flex: "~ gap4" };
1165
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1166
+ __name: "Navbar",
1167
+ props: {
1168
+ search: {
1169
+ type: String,
1170
+ default: void 0
1171
+ },
1172
+ noPadding: {
1173
+ type: Boolean,
1174
+ default: false
1175
+ }
1176
+ },
1177
+ emits: ["update:search"],
1178
+ setup(__props, { emit }) {
1179
+ function update(event) {
1180
+ emit("update:search", event.target.value);
1181
+ }
1182
+ return (_ctx, _cache) => {
1183
+ const _component_VTextInput = _sfc_main$c;
1184
+ return openBlock(), createElementBlock("div", {
1185
+ flex: "~ col gap2",
1186
+ border: "b base",
1187
+ "flex-1": "",
1188
+ "navbar-glass": "",
1189
+ class: normalizeClass([{ p4: !__props.noPadding }])
1190
+ }, [
1191
+ createBaseVNode("div", _hoisted_1$1, [
1192
+ renderSlot(_ctx.$slots, "search", {}, () => [
1193
+ createVNode(_component_VTextInput, {
1194
+ placeholder: "Search...",
1195
+ icon: "carbon-search",
1196
+ n: "primary",
1197
+ "flex-auto": "",
1198
+ class: normalizeClass({ "px-5 py-2": !__props.noPadding }),
1199
+ value: __props.search,
1200
+ onInput: update
1201
+ }, null, 8, ["class", "value"])
1202
+ ]),
1203
+ renderSlot(_ctx.$slots, "actions")
1204
+ ]),
1205
+ renderSlot(_ctx.$slots, "default")
1206
+ ], 2);
1207
+ };
1208
+ }
1209
+ });
1210
+
1211
+ /* Injected with object hook! */
1212
+
1213
+ const _hoisted_1 = {
1214
+ key: 0,
1215
+ "h-full": "",
1216
+ "of-auto": "",
1217
+ "n-panel-grids": ""
1218
+ };
1219
+ const _hoisted_2 = {
1220
+ "flex-none": "",
1221
+ flex: "~ gap4"
1222
+ };
1223
+ const _hoisted_3 = { op50: "" };
1224
+ const _hoisted_4 = { key: 0 };
1225
+ const _hoisted_5 = {
1226
+ "mt--4": "",
1227
+ px2: "",
1228
+ grid: "~ cols-minmax-8rem"
1229
+ };
1230
+ const _hoisted_6 = {
1231
+ key: 1,
1232
+ p2: "",
1233
+ grid: "~ cols-minmax-8rem"
1234
+ };
1235
+ const _hoisted_7 = { key: 1 };
1236
+ const _hoisted_8 = /* @__PURE__ */ createBaseVNode("h1", {
1237
+ "text-sm": "",
1238
+ italic: "",
1239
+ op50: ""
1240
+ }, " No Assets ", -1);
1241
+ const _sfc_main = /* @__PURE__ */ defineComponent({
1242
+ __name: "assets",
1243
+ setup(__props) {
1244
+ const assets = ref([]);
1245
+ async function getAssets() {
1246
+ assets.value = await rpc.staticAssets();
1247
+ }
1248
+ getAssets();
1249
+ const search = ref("");
1250
+ const fuse = computed(() => new Fuse(assets.value || [], {
1251
+ keys: [
1252
+ "path"
1253
+ ]
1254
+ }));
1255
+ const filtered = computed(() => {
1256
+ const result = search.value ? fuse.value.search(search.value).map((i) => i.item) : assets.value || [];
1257
+ return result;
1258
+ });
1259
+ const byFolders = computed(() => {
1260
+ const result = {};
1261
+ for (const asset of filtered.value) {
1262
+ const folder = `${asset.path.split("/").slice(0, -1).join("/")}/`;
1263
+ if (!result[folder])
1264
+ result[folder] = [];
1265
+ result[folder].push(asset);
1266
+ }
1267
+ return Object.entries(result).sort(([a], [b]) => a.localeCompare(b));
1268
+ });
1269
+ const selected = ref();
1270
+ const view = ref("grid");
1271
+ function toggleView() {
1272
+ view.value = view.value === "list" ? "grid" : "list";
1273
+ }
1274
+ onKeyDown("Escape", () => {
1275
+ selected.value = void 0;
1276
+ });
1277
+ const navbar = ref();
1278
+ return (_ctx, _cache) => {
1279
+ const _component_VIcon = _sfc_main$a;
1280
+ const _component_Navbar = _sfc_main$1;
1281
+ const _component_AssetGridItem = _sfc_main$2;
1282
+ const _component_VSectionBlock = __unplugin_components_3;
1283
+ const _component_AssetListItem = _sfc_main$3;
1284
+ const _component_AssetDetails = _sfc_main$4;
1285
+ const _component_DrawerRight = _sfc_main$8;
1286
+ const _component_VCard = __unplugin_components_7;
1287
+ const _component_VPanelGrids = __unplugin_components_0;
1288
+ return unref(assets)?.length ? (openBlock(), createElementBlock("div", _hoisted_1, [
1289
+ createVNode(_component_Navbar, {
1290
+ ref_key: "navbar",
1291
+ ref: navbar,
1292
+ search: unref(search),
1293
+ "onUpdate:search": _cache[0] || (_cache[0] = ($event) => isRef(search) ? search.value = $event : null),
1294
+ pb2: ""
1295
+ }, {
1296
+ actions: withCtx(() => [
1297
+ createBaseVNode("div", _hoisted_2, [
1298
+ createBaseVNode("button", {
1299
+ title: "Toggle view",
1300
+ onClick: toggleView
1301
+ }, [
1302
+ unref(view) === "grid" ? (openBlock(), createBlock(_component_VIcon, {
1303
+ key: 0,
1304
+ icon: "i-carbon-list"
1305
+ })) : (openBlock(), createBlock(_component_VIcon, {
1306
+ key: 1,
1307
+ icon: "i-carbon-grid"
1308
+ }))
1309
+ ])
1310
+ ])
1311
+ ]),
1312
+ default: withCtx(() => [
1313
+ createBaseVNode("div", _hoisted_3, [
1314
+ unref(search) ? (openBlock(), createElementBlock("span", _hoisted_4, toDisplayString(unref(filtered).length) + " matched · ", 1)) : createCommentVNode("", true),
1315
+ createBaseVNode("span", null, toDisplayString(unref(assets)?.length) + " assets in total", 1)
1316
+ ])
1317
+ ]),
1318
+ _: 1
1319
+ }, 8, ["search"]),
1320
+ unref(view) === "grid" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
1321
+ unref(byFolders).length > 1 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(unref(byFolders), ([folder, items]) => {
1322
+ return openBlock(), createBlock(_component_VSectionBlock, {
1323
+ key: folder,
1324
+ text: folder,
1325
+ description: `${items.length} items`,
1326
+ open: items.length <= 20,
1327
+ padding: false
1328
+ }, {
1329
+ default: withCtx(() => [
1330
+ createBaseVNode("div", _hoisted_5, [
1331
+ (openBlock(true), createElementBlock(Fragment, null, renderList(items, (a) => {
1332
+ return openBlock(), createBlock(_component_AssetGridItem, {
1333
+ key: a.path,
1334
+ asset: a,
1335
+ folder,
1336
+ onClick: ($event) => selected.value = a
1337
+ }, null, 8, ["asset", "folder", "onClick"]);
1338
+ }), 128))
1339
+ ])
1340
+ ]),
1341
+ _: 2
1342
+ }, 1032, ["text", "description", "open"]);
1343
+ }), 128)) : (openBlock(), createElementBlock("div", _hoisted_6, [
1344
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(filtered), (a) => {
1345
+ return openBlock(), createBlock(_component_AssetGridItem, {
1346
+ key: a.path,
1347
+ asset: a,
1348
+ onClick: ($event) => selected.value = a
1349
+ }, null, 8, ["asset", "onClick"]);
1350
+ }), 128))
1351
+ ]))
1352
+ ], 64)) : (openBlock(), createElementBlock("div", _hoisted_7, [
1353
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(filtered), (a) => {
1354
+ return openBlock(), createBlock(_component_AssetListItem, {
1355
+ key: a.path,
1356
+ asset: a,
1357
+ onClick: ($event) => selected.value = a
1358
+ }, null, 8, ["asset", "onClick"]);
1359
+ }), 128))
1360
+ ])),
1361
+ createVNode(_component_DrawerRight, {
1362
+ "model-value": !!unref(selected),
1363
+ "auto-close": "",
1364
+ "w-120": "",
1365
+ navbar: unref(navbar),
1366
+ onClose: _cache[1] || (_cache[1] = ($event) => selected.value = void 0)
1367
+ }, {
1368
+ default: withCtx(() => [
1369
+ unref(selected) ? (openBlock(), createBlock(_component_AssetDetails, {
1370
+ key: 0,
1371
+ asset: unref(selected)
1372
+ }, null, 8, ["asset"])) : createCommentVNode("", true)
1373
+ ]),
1374
+ _: 1
1375
+ }, 8, ["model-value", "navbar"])
1376
+ ])) : (openBlock(), createBlock(_component_VPanelGrids, {
1377
+ key: 1,
1378
+ px5: ""
1379
+ }, {
1380
+ default: withCtx(() => [
1381
+ createVNode(_component_VCard, {
1382
+ flex: "~ col gap2",
1383
+ "min-w-30": "",
1384
+ "items-center": "",
1385
+ p3: ""
1386
+ }, {
1387
+ default: withCtx(() => [
1388
+ _hoisted_8
1389
+ ]),
1390
+ _: 1
1391
+ })
1392
+ ]),
1393
+ _: 1
1394
+ }));
1395
+ };
1396
+ }
1397
+ });
1398
+
1399
+ /* Injected with object hook! */
1400
+
1401
+ /* Injected with object hook! */
1402
+
1403
+ export { _sfc_main as default };