@pinia/colada-devtools 0.1.9 → 0.2.0
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/index.js +488 -372
- package/dist/index.js.map +1 -1
- package/dist-panel/(unselected)-B-_Xdo2t.js +17 -0
- package/dist-panel/(unselected)-B-_Xdo2t.js.map +1 -0
- package/dist-panel/{index-BNGmSTu0.js → (unselected)-BFwQCIEo.js} +5 -5
- package/dist-panel/(unselected)-BFwQCIEo.js.map +1 -0
- package/dist-panel/_mutationId_-BG1E7StK.js +306 -0
- package/dist-panel/_mutationId_-BG1E7StK.js.map +1 -0
- package/dist-panel/_queryId_-BHPtMxoe.js +423 -0
- package/dist-panel/_queryId_-BHPtMxoe.js.map +1 -0
- package/dist-panel/braces-B9tH-Qp5.js +294 -0
- package/dist-panel/braces-B9tH-Qp5.js.map +1 -0
- package/dist-panel/index-CTwvPt67.js +6403 -0
- package/dist-panel/index-CTwvPt67.js.map +1 -0
- package/dist-panel/{index-goOYcO8U.js → index-kHk614RY.js} +2 -2
- package/dist-panel/{index-goOYcO8U.js.map → index-kHk614RY.js.map} +1 -1
- package/dist-panel/index.js +1 -1
- package/dist-panel/{loader-t1YDOb8H.js → loader-nEPBwFfz.js} +2 -2
- package/dist-panel/loader-nEPBwFfz.js.map +1 -0
- package/dist-panel/{mouse-pointer-click-BMFWvdTu.js → mouse-pointer-click-DQLuAnaZ.js} +2 -2
- package/dist-panel/mouse-pointer-click-DQLuAnaZ.js.map +1 -0
- package/dist-panel/mutations-BZWQwG2S.js +297 -0
- package/dist-panel/mutations-BZWQwG2S.js.map +1 -0
- package/dist-panel/queries-D3ybdTKc.js +286 -0
- package/dist-panel/queries-D3ybdTKc.js.map +1 -0
- package/dist-panel/{settings-BRfTfxFz.js → settings-DddAyvXJ.js} +2 -2
- package/dist-panel/{settings-BRfTfxFz.js.map → settings-DddAyvXJ.js.map} +1 -1
- package/dist-panel/use-container-media-query-BWmwm2oB.js +555 -0
- package/dist-panel/use-container-media-query-BWmwm2oB.js.map +1 -0
- package/dist-shared/index.d.ts +105 -9
- package/dist-shared/index.js.map +1 -1
- package/package.json +9 -10
- package/dist-panel/_queryId_-BizYY_I8.js +0 -701
- package/dist-panel/_queryId_-BizYY_I8.js.map +0 -1
- package/dist-panel/index-BNGmSTu0.js.map +0 -1
- package/dist-panel/index-CIfbEdr_.js +0 -6340
- package/dist-panel/index-CIfbEdr_.js.map +0 -1
- package/dist-panel/loader-t1YDOb8H.js.map +0 -1
- package/dist-panel/mouse-pointer-click-BMFWvdTu.js.map +0 -1
- package/dist-panel/mutations-BNe8aMZH.js +0 -13
- package/dist-panel/mutations-BNe8aMZH.js.map +0 -1
- package/dist-panel/queries-0xQLbzuX.js +0 -795
- package/dist-panel/queries-0xQLbzuX.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as e, c, o as n } from "./index-
|
|
1
|
+
import { _ as e, c, o as n } from "./index-CTwvPt67.js";
|
|
2
2
|
const o = {};
|
|
3
3
|
function r(t, a) {
|
|
4
4
|
return n(), c("h1", null, "Homepage");
|
|
@@ -7,4 +7,4 @@ const _ = /* @__PURE__ */ e(o, [["render", r]]);
|
|
|
7
7
|
export {
|
|
8
8
|
_ as default
|
|
9
9
|
};
|
|
10
|
-
//# sourceMappingURL=index-
|
|
10
|
+
//# sourceMappingURL=index-kHk614RY.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-kHk614RY.js","sources":["../src/panel/pages/index.vue"],"sourcesContent":["<script setup lang=\"ts\"></script>\n\n<template>\n <h1>Homepage</h1>\n</template>\n"],"names":["_openBlock","_createElementBlock"],"mappings":";;;AAGE,SAAAA,EAAA,GAAAC,EAAiB,YAAb,UAAQ;;;"}
|
package/dist-panel/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { m as o, c as n, o as t, a as r } from "./index-
|
|
1
|
+
import { m as o, c as n, o as t, a as r } from "./index-CTwvPt67.js";
|
|
2
2
|
const i = {
|
|
3
3
|
viewBox: "0 0 24 24",
|
|
4
4
|
width: "1.2em",
|
|
@@ -38,4 +38,4 @@ export {
|
|
|
38
38
|
u as _,
|
|
39
39
|
m as a
|
|
40
40
|
};
|
|
41
|
-
//# sourceMappingURL=loader-
|
|
41
|
+
//# sourceMappingURL=loader-nEPBwFfz.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader-nEPBwFfz.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { m as o, c as n, o as t, a as r } from "./index-
|
|
1
|
+
import { m as o, c as n, o as t, a as r } from "./index-CTwvPt67.js";
|
|
2
2
|
const l = {
|
|
3
3
|
viewBox: "0 0 24 24",
|
|
4
4
|
width: "1.2em",
|
|
@@ -20,4 +20,4 @@ const c = o({ name: "lucide-mouse-pointer-click", render: a });
|
|
|
20
20
|
export {
|
|
21
21
|
c as _
|
|
22
22
|
};
|
|
23
|
-
//# sourceMappingURL=mouse-pointer-click-
|
|
23
|
+
//# sourceMappingURL=mouse-pointer-click-DQLuAnaZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mouse-pointer-click-DQLuAnaZ.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
import { u as O, a as U, _ as q, b as D, c as K, d as Q, e as H, f as J, h as W, x as A, g as X } from "./use-container-media-query-BWmwm2oB.js";
|
|
2
|
+
import { m as j, c as o, o as n, a as t, d as B, u as Y, b as S, r as E, e as g, w as $, f as h, n as y, g as i, F as C, h as M, t as x, i as u, j as Z, k as G, l as ee, p as te } from "./index-CTwvPt67.js";
|
|
3
|
+
import { _ as ne, a as oe } from "./loader-nEPBwFfz.js";
|
|
4
|
+
const se = {
|
|
5
|
+
viewBox: "0 0 24 24",
|
|
6
|
+
width: "1.2em",
|
|
7
|
+
height: "1.2em"
|
|
8
|
+
};
|
|
9
|
+
function ie(e, a) {
|
|
10
|
+
return n(), o("svg", se, [...a[0] || (a[0] = [
|
|
11
|
+
t("g", {
|
|
12
|
+
fill: "none",
|
|
13
|
+
stroke: "currentColor",
|
|
14
|
+
"stroke-linecap": "round",
|
|
15
|
+
"stroke-linejoin": "round",
|
|
16
|
+
"stroke-width": "2"
|
|
17
|
+
}, [
|
|
18
|
+
t("path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2zm6-5h.01" }),
|
|
19
|
+
t("path", { d: "M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3" })
|
|
20
|
+
], -1)
|
|
21
|
+
])]);
|
|
22
|
+
}
|
|
23
|
+
const ae = j({ name: "lucide-file-question", render: ie }), le = {
|
|
24
|
+
viewBox: "0 0 24 24",
|
|
25
|
+
width: "1.2em",
|
|
26
|
+
height: "1.2em"
|
|
27
|
+
};
|
|
28
|
+
function re(e, a) {
|
|
29
|
+
return n(), o("svg", le, [...a[0] || (a[0] = [
|
|
30
|
+
t("circle", {
|
|
31
|
+
cx: "12",
|
|
32
|
+
cy: "12",
|
|
33
|
+
r: "10",
|
|
34
|
+
fill: "none",
|
|
35
|
+
stroke: "currentColor",
|
|
36
|
+
"stroke-linecap": "round",
|
|
37
|
+
"stroke-linejoin": "round",
|
|
38
|
+
"stroke-width": "2"
|
|
39
|
+
}, null, -1)
|
|
40
|
+
])]);
|
|
41
|
+
}
|
|
42
|
+
const ce = j({ name: "lucide-circle", render: re });
|
|
43
|
+
function N(e) {
|
|
44
|
+
return e.asyncStatus === "loading" ? "loading" : e.state.status === "error" ? "error" : e.state.status === "success" ? "success" : e.state.status === "pending" ? "pending" : "idle";
|
|
45
|
+
}
|
|
46
|
+
const z = {
|
|
47
|
+
loading: {
|
|
48
|
+
base: "bg-purple-400",
|
|
49
|
+
clear: "bg-purple-200",
|
|
50
|
+
text: "text-purple-100"
|
|
51
|
+
},
|
|
52
|
+
success: {
|
|
53
|
+
base: "bg-success-500",
|
|
54
|
+
clear: "bg-success-200",
|
|
55
|
+
text: "text-success-100"
|
|
56
|
+
},
|
|
57
|
+
error: {
|
|
58
|
+
base: "bg-error-500",
|
|
59
|
+
clear: "bg-error-200",
|
|
60
|
+
text: "text-error-100"
|
|
61
|
+
},
|
|
62
|
+
pending: {
|
|
63
|
+
base: "bg-warning-500",
|
|
64
|
+
clear: "bg-warning-200",
|
|
65
|
+
text: "text-warning-100"
|
|
66
|
+
},
|
|
67
|
+
idle: {
|
|
68
|
+
base: "bg-neutral-400",
|
|
69
|
+
clear: "bg-neutral-200",
|
|
70
|
+
text: "text-neutral-100"
|
|
71
|
+
},
|
|
72
|
+
inactive: {
|
|
73
|
+
base: "bg-neutral-400",
|
|
74
|
+
clear: "bg-neutral-200",
|
|
75
|
+
text: "text-neutral-100"
|
|
76
|
+
}
|
|
77
|
+
}, ue = { class: "h-full w-6 relative" }, de = ["title"], me = ["href", "title", "onClick"], _e = { class: "flex items-center gap-1.5" }, ge = {
|
|
78
|
+
key: 0,
|
|
79
|
+
class: "flex font-mono grow gap-0.5 overflow-auto items-center"
|
|
80
|
+
}, pe = { class: "text-wrap wrap-break-word rounded px-0.5 bg-(--ui-text)/5" }, xe = {
|
|
81
|
+
key: 0,
|
|
82
|
+
"aria-hidden": "true"
|
|
83
|
+
}, fe = { class: "text-xs text-(--ui-text-muted)" }, ve = {
|
|
84
|
+
key: 1,
|
|
85
|
+
class: "grid grid-cols-[auto_auto_1fr] gap-1.5 items-center w-full"
|
|
86
|
+
}, he = { class: "text-xs" }, ye = { class: "font-mono rounded px-0.5 bg-(--ui-text)/8" }, be = {
|
|
87
|
+
key: 0,
|
|
88
|
+
title: "This mutation will be garbage collected"
|
|
89
|
+
}, ke = /* @__PURE__ */ B({
|
|
90
|
+
__name: "ListMutationEntry",
|
|
91
|
+
props: {
|
|
92
|
+
entry: {}
|
|
93
|
+
},
|
|
94
|
+
setup(e) {
|
|
95
|
+
const a = Y(), L = O();
|
|
96
|
+
function p(_) {
|
|
97
|
+
_.preventDefault(), _.stopPropagation(), a.push("/mutations");
|
|
98
|
+
}
|
|
99
|
+
const f = U(() => e.entry.key), b = S(() => !e.entry.key), c = S(() => N(e.entry));
|
|
100
|
+
return (_, R) => {
|
|
101
|
+
const l = ne, s = q, m = oe, v = D, k = ce, T = ae, I = K, r = E("RouterLink");
|
|
102
|
+
return n(), g(r, {
|
|
103
|
+
to: { name: "/mutations/[mutationId]", params: { mutationId: e.entry.id } },
|
|
104
|
+
custom: ""
|
|
105
|
+
}, {
|
|
106
|
+
default: $(({ isActive: d, navigate: P, href: F }) => [
|
|
107
|
+
t("div", {
|
|
108
|
+
class: y(["grid grid-cols-[minmax(0,auto)_1fr] grid-flow-col items-center gap-x-2 p-1 relative text-sm @container", [
|
|
109
|
+
d ? "bg-neutral-200 dark:bg-neutral-700" : "hover:bg-(--ui-bg-elevated)",
|
|
110
|
+
e.entry.active ? "" : "text-(--ui-text)/50"
|
|
111
|
+
]])
|
|
112
|
+
}, [
|
|
113
|
+
t("div", ue, [
|
|
114
|
+
t("div", {
|
|
115
|
+
class: y(["absolute -inset-1 right-0 flex items-center justify-center", i(z)[c.value].base]),
|
|
116
|
+
title: c.value
|
|
117
|
+
}, [
|
|
118
|
+
c.value === "loading" ? (n(), g(l, {
|
|
119
|
+
key: 0,
|
|
120
|
+
title: "Loading",
|
|
121
|
+
"aria-label": "Loading icon"
|
|
122
|
+
})) : c.value === "success" ? (n(), g(s, {
|
|
123
|
+
key: 1,
|
|
124
|
+
title: "Success",
|
|
125
|
+
"aria-label": "Success icon"
|
|
126
|
+
})) : c.value === "error" ? (n(), g(m, {
|
|
127
|
+
key: 2,
|
|
128
|
+
title: "Error",
|
|
129
|
+
"aria-label": "Error icon"
|
|
130
|
+
})) : c.value === "pending" ? (n(), g(v, {
|
|
131
|
+
key: 3,
|
|
132
|
+
title: "Pending",
|
|
133
|
+
"aria-label": "Pending icon"
|
|
134
|
+
})) : c.value === "idle" ? (n(), g(k, {
|
|
135
|
+
key: 4,
|
|
136
|
+
title: "Idle",
|
|
137
|
+
"aria-label": "Idle icon"
|
|
138
|
+
})) : c.value === "inactive" ? (n(), g(k, {
|
|
139
|
+
key: 5,
|
|
140
|
+
title: "Inactive",
|
|
141
|
+
"aria-label": "Inactive icon"
|
|
142
|
+
})) : h("", !0)
|
|
143
|
+
], 10, de)
|
|
144
|
+
]),
|
|
145
|
+
t("a", {
|
|
146
|
+
href: F,
|
|
147
|
+
class: "hover:cursor-pointer block overflow-hidden",
|
|
148
|
+
title: `${b.value ? "Anonymous" : "Mutation"} execution ${e.entry.id}`,
|
|
149
|
+
onClick: (w) => d ? p(w) : P(w)
|
|
150
|
+
}, [
|
|
151
|
+
t("div", _e, [
|
|
152
|
+
i(f) ? (n(), o("ol", ge, [
|
|
153
|
+
(n(!0), o(C, null, M(i(f), (w, V) => (n(), o(C, { key: V }, [
|
|
154
|
+
t("li", pe, x(w), 1),
|
|
155
|
+
V < i(f).length - 1 ? (n(), o("li", xe, "/")) : h("", !0)
|
|
156
|
+
], 64))), 128)),
|
|
157
|
+
t("li", fe, "(" + x(e.entry.id) + ")", 1)
|
|
158
|
+
])) : h("", !0),
|
|
159
|
+
b.value ? (n(), o("div", ve, [
|
|
160
|
+
u(T, { class: "text-(--ui-text-muted) grow" }),
|
|
161
|
+
t("span", he, x(e.entry.id), 1),
|
|
162
|
+
t("span", null, [
|
|
163
|
+
t("span", ye, x(new Date(e.entry.when).toISOString()), 1)
|
|
164
|
+
])
|
|
165
|
+
])) : h("", !0)
|
|
166
|
+
])
|
|
167
|
+
], 8, me),
|
|
168
|
+
!e.entry.active && e.entry.gcTimeout && e.entry.devtools.inactiveAt && typeof e.entry.options?.gcTime == "number" && Number.isFinite(e.entry.options.gcTime) && e.entry.options.gcTime <= 3e4 ? (n(), o("div", be, [
|
|
169
|
+
u(I, {
|
|
170
|
+
class: "size-[1em] dark:text-neutral-500 text-neutral-400",
|
|
171
|
+
max: e.entry.options.gcTime,
|
|
172
|
+
value: e.entry.devtools.inactiveAt + e.entry.options.gcTime - i(L)
|
|
173
|
+
}, null, 8, ["max", "value"])
|
|
174
|
+
])) : h("", !0)
|
|
175
|
+
], 2)
|
|
176
|
+
]),
|
|
177
|
+
_: 1
|
|
178
|
+
}, 8, ["to"]);
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
}), we = { class: "grid grid-rows-[auto_1fr] overflow-hidden @container" }, $e = { class: "flex items-center p-2 border-b border-(--ui-border) gap-2" }, ze = { class: "relative grow" }, Se = { class: "flex gap-x-1" }, Ce = ["title"], Le = { class: "@max-[750px]:hidden" }, Te = {
|
|
182
|
+
key: 0,
|
|
183
|
+
role: "list",
|
|
184
|
+
class: "divide-y divide-(--ui-border)"
|
|
185
|
+
}, Ie = {
|
|
186
|
+
key: 1,
|
|
187
|
+
class: "flex flex-col items-center p-4 text-(--ui-text-muted) text-sm text-center gap-2"
|
|
188
|
+
}, Ae = /* @__PURE__ */ B({
|
|
189
|
+
__name: "mutations",
|
|
190
|
+
setup(e) {
|
|
191
|
+
const a = Z(""), L = G(), p = S(() => {
|
|
192
|
+
let l = L.value;
|
|
193
|
+
if (a.value) {
|
|
194
|
+
const s = a.value.toLowerCase();
|
|
195
|
+
l = l.filter((m) => m.key ? m.key.some((v) => String(v).toLowerCase().includes(s)) : !1);
|
|
196
|
+
}
|
|
197
|
+
return l.toSorted((s, m) => m.devtools.updatedAt - s.devtools.updatedAt);
|
|
198
|
+
}), f = S(
|
|
199
|
+
() => ({
|
|
200
|
+
loading: [],
|
|
201
|
+
success: [],
|
|
202
|
+
error: [],
|
|
203
|
+
pending: [],
|
|
204
|
+
idle: [],
|
|
205
|
+
inactive: p.value.filter((l) => !l.active),
|
|
206
|
+
...Object.groupBy(p.value, (l) => N(l))
|
|
207
|
+
})
|
|
208
|
+
), b = ee("split-panes-container"), c = Q("(width < 768px)", () => b.value?.$el), _ = te(
|
|
209
|
+
"pc-devtools-mutation-list-panel-size",
|
|
210
|
+
[30, 70]
|
|
211
|
+
);
|
|
212
|
+
function R({ panes: l }) {
|
|
213
|
+
_.value = l.map((s) => s.size);
|
|
214
|
+
}
|
|
215
|
+
return (l, s) => {
|
|
216
|
+
const m = H, v = J, k = ke, T = X, I = E("RouterView");
|
|
217
|
+
return n(), o("section", we, [
|
|
218
|
+
t("div", $e, [
|
|
219
|
+
t("div", ze, [
|
|
220
|
+
u(m, { class: "absolute left-2 top-1/2 -translate-y-1/2 text-ui-text-muted size-4" }),
|
|
221
|
+
u(v, {
|
|
222
|
+
modelValue: a.value,
|
|
223
|
+
"onUpdate:modelValue": s[0] || (s[0] = (r) => a.value = r),
|
|
224
|
+
type: "search",
|
|
225
|
+
class: "w-full",
|
|
226
|
+
placeholder: "Search Mutations"
|
|
227
|
+
}, null, 8, ["modelValue"])
|
|
228
|
+
]),
|
|
229
|
+
t("div", Se, [
|
|
230
|
+
(n(!0), o(C, null, M(f.value, (r, d) => (n(), o("div", {
|
|
231
|
+
key: d,
|
|
232
|
+
class: y(["theme-neutral bg-(--ui-bg-muted) rounded p-1 text-xs font-semibold flex items-center gap-x-1", (r?.length ?? 0) === 0 ? "text-(--ui-text-muted)" : ""]),
|
|
233
|
+
title: `${r?.length ?? 0} ${d} mutations (after filtering)`
|
|
234
|
+
}, [
|
|
235
|
+
t("div", {
|
|
236
|
+
class: y(["rounded-full size-2", i(z)[d].base])
|
|
237
|
+
}, null, 2),
|
|
238
|
+
t("span", Le, x(d), 1),
|
|
239
|
+
t("div", {
|
|
240
|
+
class: y([
|
|
241
|
+
"px-1.5 py-0.5 rounded min-w-[1.65em] flex justify-center",
|
|
242
|
+
(r?.length ?? 0) === 0 ? "bg-(--ui-bg-accented)" : [i(z)[d].base, i(z)[d].text]
|
|
243
|
+
])
|
|
244
|
+
}, [
|
|
245
|
+
t("span", null, x(r?.length ?? 0), 1)
|
|
246
|
+
], 2)
|
|
247
|
+
], 10, Ce))), 128))
|
|
248
|
+
])
|
|
249
|
+
]),
|
|
250
|
+
u(i(W), {
|
|
251
|
+
ref: "split-panes-container",
|
|
252
|
+
class: "overflow-hidden",
|
|
253
|
+
horizontal: i(c),
|
|
254
|
+
onResized: R
|
|
255
|
+
}, {
|
|
256
|
+
default: $(() => [
|
|
257
|
+
u(i(A), {
|
|
258
|
+
"min-size": "15",
|
|
259
|
+
size: i(_)[0],
|
|
260
|
+
class: "flex flex-col"
|
|
261
|
+
}, {
|
|
262
|
+
default: $(() => [
|
|
263
|
+
p.value.length > 0 ? (n(), o("ol", Te, [
|
|
264
|
+
(n(!0), o(C, null, M(p.value, (r) => (n(), o("li", {
|
|
265
|
+
key: r.id
|
|
266
|
+
}, [
|
|
267
|
+
u(k, { entry: r }, null, 8, ["entry"])
|
|
268
|
+
]))), 128))
|
|
269
|
+
])) : (n(), o("div", Ie, [
|
|
270
|
+
u(T, { class: "size-8" }),
|
|
271
|
+
s[1] || (s[1] = t("h3", { class: "text-lg" }, "No mutations found", -1)),
|
|
272
|
+
s[2] || (s[2] = t("p", null, "Try adjusting your search or perform some mutations in your app.", -1))
|
|
273
|
+
]))
|
|
274
|
+
]),
|
|
275
|
+
_: 1
|
|
276
|
+
}, 8, ["size"]),
|
|
277
|
+
u(i(A), {
|
|
278
|
+
"min-size": "30",
|
|
279
|
+
size: i(_)[1],
|
|
280
|
+
class: "flex flex-col"
|
|
281
|
+
}, {
|
|
282
|
+
default: $(() => [
|
|
283
|
+
u(I)
|
|
284
|
+
]),
|
|
285
|
+
_: 1
|
|
286
|
+
}, 8, ["size"])
|
|
287
|
+
]),
|
|
288
|
+
_: 1
|
|
289
|
+
}, 8, ["horizontal"])
|
|
290
|
+
]);
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
export {
|
|
295
|
+
Ae as default
|
|
296
|
+
};
|
|
297
|
+
//# sourceMappingURL=mutations-BZWQwG2S.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutations-BZWQwG2S.js","sources":["../src/panel/utils/mutation-state.ts","../src/panel/components/ListMutationEntry.vue","../src/panel/pages/mutations.vue"],"sourcesContent":["import type { UseMutationEntryPayload } from '@pinia/colada-devtools/shared'\n\nexport type UseMutationEntryPayloadStatus =\n | 'loading'\n | 'success'\n | 'error'\n | 'pending'\n | 'idle'\n | 'inactive'\n\nexport function getMutationStatus(entry: UseMutationEntryPayload): UseMutationEntryPayloadStatus {\n if (entry.asyncStatus === 'loading') {\n return 'loading'\n }\n if (entry.state.status === 'error') {\n return 'error'\n }\n if (entry.state.status === 'success') {\n return 'success'\n }\n if (entry.state.status === 'pending') {\n return 'pending'\n }\n\n return 'idle'\n}\n\nexport const STATUS_COLOR_CLASSES: Record<\n UseMutationEntryPayloadStatus,\n {\n base: string\n clear: string\n text: string\n }\n> = {\n loading: {\n base: 'bg-purple-400',\n clear: 'bg-purple-200',\n text: 'text-purple-100',\n },\n success: {\n base: 'bg-success-500',\n clear: 'bg-success-200',\n text: 'text-success-100',\n },\n error: {\n base: 'bg-error-500',\n clear: 'bg-error-200',\n text: 'text-error-100',\n },\n pending: {\n base: 'bg-warning-500',\n clear: 'bg-warning-200',\n text: 'text-warning-100',\n },\n idle: {\n base: 'bg-neutral-400',\n clear: 'bg-neutral-200',\n text: 'text-neutral-100',\n },\n inactive: {\n base: 'bg-neutral-400',\n clear: 'bg-neutral-200',\n text: 'text-neutral-100',\n },\n}\n","<script setup lang=\"ts\">\nimport type { UseMutationEntryPayload } from '@pinia/colada-devtools/shared'\nimport { computed } from 'vue'\nimport { getMutationStatus, STATUS_COLOR_CLASSES } from '../utils/mutation-state'\nimport { useRouter } from 'vue-router'\nimport { usePerformanceNow } from '../composables/performance-now'\nimport { useFormattedKey } from '../composables/entries'\n\nconst { entry } = defineProps<{\n entry: UseMutationEntryPayload\n}>()\nconst router = useRouter()\nconst now = usePerformanceNow()\n\nfunction unselect(event: MouseEvent) {\n event.preventDefault()\n event.stopPropagation()\n router.push('/mutations')\n}\n\nconst formattedKey = useFormattedKey(() => entry.key)\nconst isAnonymous = computed(() => !entry.key)\nconst status = computed(() => getMutationStatus(entry))\n</script>\n\n<template>\n <RouterLink\n v-slot=\"{ isActive, navigate, href }\"\n :to=\"{ name: '/mutations/[mutationId]', params: { mutationId: entry.id } }\"\n custom\n >\n <div\n class=\"grid grid-cols-[minmax(0,auto)_1fr] grid-flow-col items-center gap-x-2 p-1 relative text-sm @container\"\n :class=\"[\n isActive ? 'bg-neutral-200 dark:bg-neutral-700' : 'hover:bg-(--ui-bg-elevated)',\n entry.active ? '' : 'text-(--ui-text)/50',\n ]\"\n >\n <div class=\"h-full w-6 relative\">\n <div\n class=\"absolute -inset-1 right-0 flex items-center justify-center\"\n :class=\"STATUS_COLOR_CLASSES[status].base\"\n :title=\"status\"\n >\n <i-lucide-loader v-if=\"status === 'loading'\" title=\"Loading\" aria-label=\"Loading icon\" />\n <i-lucide-check\n v-else-if=\"status === 'success'\"\n title=\"Success\"\n aria-label=\"Success icon\"\n />\n <i-lucide-x-octagon\n v-else-if=\"status === 'error'\"\n title=\"Error\"\n aria-label=\"Error icon\"\n />\n <i-lucide-pause\n v-else-if=\"status === 'pending'\"\n title=\"Pending\"\n aria-label=\"Pending icon\"\n />\n <i-lucide-circle v-else-if=\"status === 'idle'\" title=\"Idle\" aria-label=\"Idle icon\" />\n <i-lucide-circle\n v-else-if=\"status === 'inactive'\"\n title=\"Inactive\"\n aria-label=\"Inactive icon\"\n />\n </div>\n </div>\n\n <a\n :href\n class=\"hover:cursor-pointer block overflow-hidden\"\n :title=\"`${isAnonymous ? 'Anonymous' : 'Mutation'} execution ${entry.id}`\"\n @click=\"isActive ? unselect($event) : navigate($event)\"\n >\n <div class=\"flex items-center gap-1.5\">\n <ol class=\"flex font-mono grow gap-0.5 overflow-auto items-center\" v-if=\"formattedKey\">\n <template v-for=\"(key, i) in formattedKey\" :key=\"i\">\n <li class=\"text-wrap wrap-break-word rounded px-0.5 bg-(--ui-text)/5\">\n {{ key }}\n </li>\n <li v-if=\"i < formattedKey.length - 1\" aria-hidden=\"true\">/</li>\n </template>\n <li class=\"text-xs text-(--ui-text-muted)\">({{ entry.id }})</li>\n </ol>\n <div\n v-if=\"isAnonymous\"\n class=\"grid grid-cols-[auto_auto_1fr] gap-1.5 items-center w-full\"\n >\n <i-lucide-file-question class=\"text-(--ui-text-muted) grow\" />\n <span class=\"text-xs\">{{ entry.id }}</span>\n <span>\n <span class=\"font-mono rounded px-0.5 bg-(--ui-text)/8\">{{\n new Date(entry.when).toISOString()\n }}</span>\n </span>\n </div>\n </div>\n </a>\n\n <div\n v-if=\"\n !entry.active &&\n entry.gcTimeout &&\n entry.devtools.inactiveAt &&\n typeof entry.options?.gcTime === 'number' &&\n Number.isFinite(entry.options.gcTime) &&\n entry.options.gcTime <= 30_000\n \"\n title=\"This mutation will be garbage collected\"\n >\n <UCircleProgress\n class=\"size-[1em] dark:text-neutral-500 text-neutral-400\"\n :max=\"entry.options.gcTime\"\n :value=\"entry.devtools.inactiveAt + entry.options.gcTime - now\"\n />\n </div>\n </div>\n </RouterLink>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, ref, useTemplateRef } from 'vue'\nimport { Pane, Splitpanes } from '@posva/splitpanes'\nimport { useMutationEntries } from '../composables/duplex-channel'\nimport { getMutationStatus, STATUS_COLOR_CLASSES } from '../utils/mutation-state'\nimport type { UseMutationEntryPayloadStatus } from '../utils/mutation-state'\nimport type { UseMutationEntryPayload } from '@pinia/colada-devtools/shared'\nimport { useContainerMediaQuery } from '../composables/use-container-media-query'\nimport { useLocalStorage } from '@vueuse/core'\n\nconst searchQuery = ref('')\n\nconst mutations = useMutationEntries()\n\nconst filteredItems = computed(() => {\n let items = mutations.value\n\n if (searchQuery.value) {\n const query = searchQuery.value.toLowerCase()\n items = items.filter((item) => {\n if (!item.key) return false\n return item.key.some((v) => String(v).toLowerCase().includes(query))\n })\n }\n\n // Sort by most recent first\n return items.toSorted((a, b) => {\n return b.devtools.updatedAt - a.devtools.updatedAt\n })\n})\n\nconst mutationsGrouped = computed<Record<UseMutationEntryPayloadStatus, UseMutationEntryPayload[]>>(\n () => {\n return {\n loading: [],\n success: [],\n error: [],\n pending: [],\n idle: [],\n inactive: filteredItems.value.filter((item) => !item.active),\n ...Object.groupBy(filteredItems.value, (item) => getMutationStatus(item)),\n }\n },\n)\n\nconst container = useTemplateRef('split-panes-container')\nconst isNarrow = useContainerMediaQuery('(width < 768px)', () => container.value?.$el)\n\nconst mutationListPanelSize = useLocalStorage<number[]>(\n 'pc-devtools-mutation-list-panel-size',\n [30, 70],\n)\n\nfunction updatePanesSize({ panes }: { panes: { size: number }[] }) {\n mutationListPanelSize.value = panes.map((pane) => pane.size)\n}\n</script>\n\n<template>\n <section class=\"grid grid-rows-[auto_1fr] overflow-hidden @container\">\n <!-- Search & Actions Bar -->\n <div class=\"flex items-center p-2 border-b border-(--ui-border) gap-2\">\n <div class=\"relative grow\">\n <i-lucide-search\n class=\"absolute left-2 top-1/2 -translate-y-1/2 text-ui-text-muted size-4\"\n />\n <UInput v-model=\"searchQuery\" type=\"search\" class=\"w-full\" placeholder=\"Search Mutations\" />\n </div>\n\n <div class=\"flex gap-x-1\">\n <div\n v-for=\"(mutationGroup, status) in mutationsGrouped\"\n :key=\"status\"\n class=\"theme-neutral bg-(--ui-bg-muted) rounded p-1 text-xs font-semibold flex items-center gap-x-1\"\n :class=\"(mutationGroup?.length ?? 0) === 0 ? 'text-(--ui-text-muted)' : ''\"\n :title=\"`${mutationGroup?.length ?? 0} ${status} mutations (after filtering)`\"\n >\n <div class=\"rounded-full size-2\" :class=\"STATUS_COLOR_CLASSES[status].base\" />\n <span class=\"@max-[750px]:hidden\">{{ status }}</span>\n <div\n class=\"px-1.5 py-0.5 rounded min-w-[1.65em] flex justify-center\"\n :class=\"\n (mutationGroup?.length ?? 0) === 0\n ? 'bg-(--ui-bg-accented)'\n : [STATUS_COLOR_CLASSES[status].base, STATUS_COLOR_CLASSES[status].text]\n \"\n >\n <span>{{ mutationGroup?.length ?? 0 }}</span>\n </div>\n </div>\n </div>\n </div>\n\n <Splitpanes\n ref=\"split-panes-container\"\n class=\"overflow-hidden\"\n :horizontal=\"isNarrow\"\n @resized=\"updatePanesSize\"\n >\n <!-- List Panel -->\n <Pane min-size=\"15\" :size=\"mutationListPanelSize[0]\" class=\"flex flex-col\">\n <ol role=\"list\" class=\"divide-y divide-(--ui-border)\" v-if=\"filteredItems.length > 0\">\n <li v-for=\"entry of filteredItems\" :key=\"entry.id\">\n <ListMutationEntry :entry />\n </li>\n </ol>\n <div\n v-else\n class=\"flex flex-col items-center p-4 text-(--ui-text-muted) text-sm text-center gap-2\"\n >\n <i-lucide-inbox class=\"size-8\" />\n <h3 class=\"text-lg\">No mutations found</h3>\n <p>Try adjusting your search or perform some mutations in your app.</p>\n </div>\n </Pane>\n\n <!-- Details Panel -->\n <Pane min-size=\"30\" :size=\"mutationListPanelSize[1]\" class=\"flex flex-col\">\n <RouterView />\n </Pane>\n </Splitpanes>\n </section>\n</template>\n"],"names":["getMutationStatus","entry","STATUS_COLOR_CLASSES","router","useRouter","now","usePerformanceNow","unselect","event","formattedKey","useFormattedKey","__props","isAnonymous","computed","status","_createBlock","_component_RouterLink","_withCtx","isActive","navigate","href","_createElementVNode","_hoisted_1","_unref","_component_i_lucide_loader","_component_i_lucide_check","_component_i_lucide_x_octagon","_component_i_lucide_pause","_component_i_lucide_circle","$event","_hoisted_4","_openBlock","_createElementBlock","_hoisted_5","_Fragment","_renderList","key","i","_hoisted_6","_toDisplayString","_hoisted_7","_hoisted_8","_hoisted_9","_createVNode","_component_i_lucide_file_question","_hoisted_10","_hoisted_11","_hoisted_12","_component_UCircleProgress","searchQuery","ref","mutations","useMutationEntries","filteredItems","items","query","item","a","b","mutationsGrouped","container","useTemplateRef","isNarrow","useContainerMediaQuery","mutationListPanelSize","useLocalStorage","updatePanesSize","panes","pane","_hoisted_2","_hoisted_3","_component_i_lucide_search","_component_UInput","mutationGroup","_normalizeClass","Splitpanes","Pane","_component_ListMutationEntry","_component_i_lucide_inbox","_cache","_component_RouterView"],"mappings":"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"}
|