@pinia/colada-devtools 0.1.3 → 0.1.4

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 (26) hide show
  1. package/dist/index.js +45 -45
  2. package/dist/index.js.map +1 -1
  3. package/dist-panel/{_queryId_-DBYj1x2l.js → _queryId_-Bilvrtoo.js} +14 -14
  4. package/dist-panel/{_queryId_-DBYj1x2l.js.map → _queryId_-Bilvrtoo.js.map} +1 -1
  5. package/dist-panel/{index-B5Pabqnp.js → index-B6c9Loor.js} +3 -3
  6. package/dist-panel/{index-B5Pabqnp.js.map → index-B6c9Loor.js.map} +1 -1
  7. package/dist-panel/index-D50XbbDk.js +6492 -0
  8. package/dist-panel/index-D50XbbDk.js.map +1 -0
  9. package/dist-panel/{index-BiCss4be.js → index-DsbwSvSM.js} +2 -2
  10. package/dist-panel/{index-BiCss4be.js.map → index-DsbwSvSM.js.map} +1 -1
  11. package/dist-panel/index.js +1 -1
  12. package/dist-panel/{loader-1Im1Cd49.js → loader-BxXz3POc.js} +2 -2
  13. package/dist-panel/loader-BxXz3POc.js.map +1 -0
  14. package/dist-panel/{mouse-pointer-click-DrNfYH7O.js → mouse-pointer-click--GgfMFjw.js} +2 -2
  15. package/dist-panel/mouse-pointer-click--GgfMFjw.js.map +1 -0
  16. package/dist-panel/{mutations-CXpAyQVd.js → mutations-CNQGJZrN.js} +2 -2
  17. package/dist-panel/{mutations-CXpAyQVd.js.map → mutations-CNQGJZrN.js.map} +1 -1
  18. package/dist-panel/{queries-C2Kny_VH.js → queries-CSBvC4-S.js} +6 -6
  19. package/dist-panel/{queries-C2Kny_VH.js.map → queries-CSBvC4-S.js.map} +1 -1
  20. package/dist-panel/{settings-kYLoG5O4.js → settings-Cl-hr-ie.js} +2 -2
  21. package/dist-panel/{settings-kYLoG5O4.js.map → settings-Cl-hr-ie.js.map} +1 -1
  22. package/package.json +1 -1
  23. package/dist-panel/index-BCMgcfY0.js +0 -8157
  24. package/dist-panel/index-BCMgcfY0.js.map +0 -1
  25. package/dist-panel/loader-1Im1Cd49.js.map +0 -1
  26. package/dist-panel/mouse-pointer-click-DrNfYH7O.js.map +0 -1
@@ -1,6 +1,6 @@
1
- import { _ as N } from "./mouse-pointer-click-DrNfYH7O.js";
2
- import { m, c as l, o as n, a as e, d as I, Q as A, l as U, p as F, R as Q, C as M, P as v, g as w, h as b, S as W, t as u, _ as Y, T as G, M as P, b as X, U as Z, V as J, y as z, z as K, F as q, k as r, w as d, i, W as B, X as ee, j as te } from "./index-BCMgcfY0.js";
3
- import { _ as oe, a as se } from "./loader-1Im1Cd49.js";
1
+ import { _ as N } from "./mouse-pointer-click--GgfMFjw.js";
2
+ import { m, c as l, o as n, a as e, d as z, Q as A, l as U, p as F, R as Q, C as M, P as v, g as w, h as b, S as W, t as u, _ as Y, M as G, b as P, T as X, U as Z, x as I, y as J, F as q, k as r, w as d, i, V as K, W as B, X as ee, j as te } from "./index-D50XbbDk.js";
3
+ import { _ as oe, a as se } from "./loader-BxXz3POc.js";
4
4
  const ne = {
5
5
  viewBox: "0 0 24 24",
6
6
  width: "1.2em",
@@ -76,7 +76,7 @@ function me(a, s) {
76
76
  ], -1)
77
77
  ]));
78
78
  }
79
- const he = m({ name: "lucide-refresh-cw", render: me }), _e = { class: "collapse collapse-arrow" }, fe = { class: "collapse-title px-2 py-0.5 bg-neutral-200 dark:bg-neutral-800 theme-neutral" }, ge = { class: "font-semibold text-sm flex gap-x-1 items-center" }, ke = /* @__PURE__ */ I({
79
+ const he = m({ name: "lucide-refresh-cw", render: me }), _e = { class: "collapse collapse-arrow" }, fe = { class: "collapse-title px-2 py-0.5 bg-neutral-200 dark:bg-neutral-800 theme-neutral" }, ge = { class: "font-semibold text-sm flex gap-x-1 items-center" }, ke = /* @__PURE__ */ z({
80
80
  __name: "UCollapse.ce",
81
81
  props: /* @__PURE__ */ A({
82
82
  title: { type: String },
@@ -205,7 +205,7 @@ const He = m({ name: "lucide-file-text", render: Se }), je = {
205
205
  width: "1.2em",
206
206
  height: "1.2em"
207
207
  };
208
- function ze(a, s) {
208
+ function Ie(a, s) {
209
209
  return n(), l("svg", je, s[0] || (s[0] = [
210
210
  e("g", {
211
211
  fill: "none",
@@ -223,7 +223,7 @@ function ze(a, s) {
223
223
  ], -1)
224
224
  ]));
225
225
  }
226
- const Ie = m({ name: "lucide-circle-x", render: ze }), De = {
226
+ const ze = m({ name: "lucide-circle-x", render: Ie }), De = {
227
227
  viewBox: "0 0 24 24",
228
228
  width: "1.2em",
229
229
  height: "1.2em"
@@ -320,24 +320,24 @@ const Ue = m({ name: "lucide-sigma-square", render: Ae }), Fe = { class: "flex f
320
320
  }, xt = { key: 1 }, wt = {
321
321
  key: 1,
322
322
  class: "py-6 mx-auto"
323
- }, bt = { class: "flex flex-col text-center items-center gap-2 text-lg px-2" }, qt = /* @__PURE__ */ I({
323
+ }, bt = { class: "flex flex-col text-center items-center gap-2 text-lg px-2" }, qt = /* @__PURE__ */ z({
324
324
  __name: "[queryId]",
325
325
  setup(a) {
326
- const s = G(), f = P(), o = X(() => f.value.find((c) => c.keyHash === s.params.queryId) ?? null), h = {
326
+ const s = K(), f = G(), o = P(() => f.value.find((c) => c.keyHash === s.params.queryId) ?? null), h = {
327
327
  showSecond: !0,
328
328
  rounding: "floor",
329
329
  max: 1e3 * 60 * 5
330
330
  // 5 minutes
331
- }, C = Z(() => {
331
+ }, C = X(() => {
332
332
  var c;
333
333
  return ((c = o.value) == null ? void 0 : c.devtools.updatedAt) ?? 0;
334
334
  }, {
335
335
  ...h,
336
336
  updateInterval: 3e3
337
- }), k = J(), x = z(!1);
337
+ }), k = Z(), x = I(!1);
338
338
  let T = x.value, S = null;
339
- const $ = z(!1);
340
- return K(
339
+ const $ = I(!1);
340
+ return J(
341
341
  () => {
342
342
  var c;
343
343
  return (c = o.value) == null ? void 0 : c.state;
@@ -530,7 +530,7 @@ const Ue = m({ name: "lucide-sigma-square", render: Ae }), Fe = { class: "flex f
530
530
  open: $.value,
531
531
  "onUpdate:open": t[8] || (t[8] = (p) => $.value = p),
532
532
  title: `Error${o.value.state.status === "error" ? " (!)" : ""}`,
533
- icon: i(Ie)
533
+ icon: i(ze)
534
534
  }, {
535
535
  default: d(() => [
536
536
  e("div", rt, [
@@ -618,4 +618,4 @@ const Ue = m({ name: "lucide-sigma-square", render: Ae }), Fe = { class: "flex f
618
618
  export {
619
619
  qt as default
620
620
  };
621
- //# sourceMappingURL=_queryId_-DBYj1x2l.js.map
621
+ //# sourceMappingURL=_queryId_-Bilvrtoo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_queryId_-DBYj1x2l.js","sources":["../src/panel/components/UCollapse.ce.vue","../src/panel/utils/time.ts","../src/panel/pages/queries/[queryId].vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Component } from 'vue'\n\ndefineProps<{\n title?: string\n icon?: Component\n}>()\n\nconst open = defineModel<boolean>('open', {\n default: true,\n})\n\nfunction scrollIfNeeded(event: TransitionEvent) {\n if (event.target instanceof HTMLElement) {\n const scrollOptions: ScrollIntoViewOptions = {\n block: 'nearest',\n inline: 'nearest',\n behavior: 'smooth',\n }\n event.target.scrollIntoView(scrollOptions)\n }\n}\n</script>\n\n<template>\n <div class=\"collapse collapse-arrow\">\n <input v-model=\"open\" type=\"checkbox\">\n <div class=\"collapse-title px-2 py-0.5 bg-neutral-200 dark:bg-neutral-800 theme-neutral\">\n <slot name=\"title\" :open :title>\n <h3 class=\"font-semibold text-sm flex gap-x-1 items-center\">\n <slot name=\"icon\">\n <component :is=\"icon\" v-if=\"icon\" class=\"size-4\" />\n </slot>\n {{ title ?? 'Group' }}\n </h3>\n </slot>\n </div>\n <div class=\"collapse-content px-2 text-sm overflow-hidden\" @transitionend=\"scrollIfNeeded\">\n <slot :open />\n </div>\n </div>\n</template>\n\n<style scoped>\n.collapse:not(td, tr, colgroup) {\n visibility: visible;\n}\n\n.collapse {\n position: relative;\n display: grid;\n overflow: hidden;\n width: 100%;\n grid-template-rows: max-content 0fr;\n transition: grid-template-rows 0.2s;\n isolation: isolate;\n\n > input:is([type='checkbox'], [type='radio']) {\n grid-column-start: 1;\n grid-row-start: 1;\n appearance: none;\n opacity: 0;\n }\n\n &:is([open], :focus),\n &:has(> input:is([type='checkbox'], [type='radio']):checked) {\n grid-template-rows: max-content 1fr;\n }\n\n &:is([open], :focus) > .collapse-content,\n &:not(.collapse-close)\n > :where(input:is([type='checkbox'], [type='radio']):checked ~ .collapse-content) {\n visibility: visible;\n min-height: fit-content;\n }\n &:focus-visible,\n &:has(> input:is([type='checkbox'], [type='radio']):focus-visible) {\n outline-color: var(--ui-text);\n outline-style: solid;\n outline-width: 2px;\n outline-offset: 2px;\n }\n\n &:not(.collapse-close) {\n > input[type='checkbox'],\n > input[type='radio']:not(:checked),\n > .collapse-title {\n cursor: pointer;\n }\n }\n\n &:focus:not(.collapse-close, .collapse[open]) > .collapse-title {\n cursor: unset;\n }\n\n &:is([open]) {\n &.collapse-arrow {\n > .collapse-title:after {\n transform: translateY(-50%) rotate(225deg);\n }\n }\n }\n\n &.collapse-arrow:focus {\n > .collapse-title:after {\n transform: translateY(-50%) rotate(225deg);\n }\n }\n\n &.collapse-arrow {\n > input:is([type='checkbox'], [type='radio']):checked ~ .collapse-title:after {\n transform: translateY(-50%) rotate(225deg);\n }\n }\n\n > input:is([type='checkbox'], [type='radio']) {\n z-index: 1;\n width: 100%;\n }\n}\n\n.collapse-title,\n.collapse-content {\n grid-column-start: 1;\n grid-row-start: 1;\n}\n\n.collapse-content {\n visibility: hidden;\n grid-column-start: 1;\n grid-row-start: 2;\n min-height: 0;\n cursor: unset;\n transition: visibility 0.2s;\n}\n\n.collapse-arrow {\n > .collapse-title:after {\n position: absolute;\n display: block;\n height: 0.5rem;\n width: 0.5rem;\n transform: translateY(-100%) rotate(45deg);\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 0.2s;\n top: 50%;\n right: 0.8em;\n inset-inline-end: 0.75rem;\n content: '';\n transform-origin: 75% 75%;\n box-shadow: 2px 2px;\n pointer-events: none;\n }\n}\n\n.collapse-title {\n position: relative;\n width: 100%;\n transition: background-color 0.2s ease-out;\n}\n</style>\n","export function formatDuration(timeInMs: number): string {\n if (timeInMs < 1000) {\n return `${Math.round(timeInMs)} ms`\n }\n\n const seconds = timeInMs / 1000\n if (timeInMs < 10_000) {\n return `${seconds.toFixed(3)} seconds`\n }\n\n if (timeInMs < 60_000) {\n return `${Math.floor(seconds)} seconds`\n }\n\n const minutes = Math.floor(seconds / 60)\n\n if (timeInMs < 3_600_000) {\n return `${minutes} minute${minutes > 1 ? 's' : ''}`\n }\n\n const hours = Math.floor(minutes / 60)\n\n return `${hours}h${minutes % 60}m${seconds % 60}s`\n}\n","<script setup lang=\"ts\">\nimport type { UseQueryEntryPayload } from '@pinia/colada-devtools/shared'\nimport { computed, ref, watch } from 'vue'\nimport { useDuplexChannel, useQueryEntries } from '../../composables/duplex-channel'\nimport { formatDuration } from '../../utils/time'\nimport { useRoute } from 'vue-router'\nimport type { DataStateStatus } from '@pinia/colada'\n\nimport IWrench from '~icons/lucide/wrench'\nimport IInfoCircle from '~icons/lucide/info'\nimport IFileText from '~icons/lucide/file-text'\nimport ICircleX from '~icons/lucide/circle-x'\nimport IBraces from '~icons/lucide/braces'\nimport IHistory from '~icons/lucide/history'\nimport ISigmaSquare from '~icons/lucide/sigma-square'\nimport { useTimeAgo, formatTimeAgo } from '@vueuse/core'\nimport type { FormatTimeAgoOptions } from '@vueuse/core'\n\nconst route = useRoute('/queries/[queryId]')\nconst queries = useQueryEntries()\n\nconst selectedQuery = computed<UseQueryEntryPayload | null>(() => {\n return queries.value.find((entry) => entry.keyHash === route.params.queryId) ?? null\n})\n\nconst TIME_AGO_OPTIONS: FormatTimeAgoOptions = {\n showSecond: true,\n rounding: 'floor',\n max: 1000 * 60 * 5, // 5 minutes\n}\n\nconst lastUpdate = useTimeAgo(() => selectedQuery.value?.devtools.updatedAt ?? 0, {\n ...TIME_AGO_OPTIONS,\n updateInterval: 3_000,\n})\n\n// TODO: we should be able to highlight components using this query\n// const el = useTemplateRef('me')\n// TODO: add ref=\"me\" to the div\n// watch(\n// // also trigger if the selectedQuery changes\n// () => [el.value, selectedQuery.value?.id] as const,\n// ([el]) => {\n// if (!el || !selectedQuery.value) return\n//\n// const observingComponents = findVueComponents(\n// el,\n// selectedQuery.value.deps.filter((c) => c.type === 'component').map((c) => c.uid) ?? [],\n// )\n//\n// console.log('elements', observingComponents)\n// },\n// )\n\nconst channel = useDuplexChannel()\n\nconst isDataOpen = ref(false)\nlet wasDataOpen = isDataOpen.value\nlet lastStatus: DataStateStatus | null = null\nconst isErrorOpen = ref(false)\nwatch(\n () => selectedQuery.value?.state,\n (state) => {\n if (!state || lastStatus === state.status) return\n lastStatus = state.status\n if (state.status === 'error') {\n isErrorOpen.value = true\n // preserve it for later\n wasDataOpen = isDataOpen.value\n isDataOpen.value = false\n } else if (state.status === 'success') {\n isDataOpen.value = wasDataOpen\n isErrorOpen.value = false\n }\n },\n)\n</script>\n\n<template>\n <div class=\"flex flex-col divide-y dark:divide-(--ui-border) divide-(--ui-border-accented)\">\n <template v-if=\"selectedQuery\">\n <UCollapse title=\"Details\" :icon=\"IInfoCircle\">\n <div class=\"py-1 text-sm\">\n <p class=\"grid grid-cols-[auto_1fr] gap-1\">\n <span>key:</span>\n <span>\n <code class=\"rounded bg-neutral-500/20 p-0.5\">{{ selectedQuery.key }}</code>\n </span>\n </p>\n\n <p\n class=\"grid grid-cols-[auto_1fr] gap-x-2\"\n title=\"When was the query entry last updated\"\n >\n <span>Last update:</span>\n <span class=\"font-bold\">{{ lastUpdate }}</span>\n </p>\n\n <p\n v-if=\"selectedQuery.devtools.history.at(0)?.fetchTime\"\n class=\"grid grid-cols-[auto_1fr] gap-x-2\"\n title=\"When was the last time the query was fetched\"\n >\n <span>Last fetch:</span>\n <span class=\"font-bold\">{{\n formatTimeAgo(new Date(selectedQuery.devtools.history.at(0)!.fetchTime!.start), {\n ...TIME_AGO_OPTIONS,\n max: undefined,\n })\n }}</span>\n </p>\n\n <p\n v-if=\"selectedQuery.devtools.history.at(0)?.fetchTime?.end\"\n class=\"grid grid-cols-[auto_1fr] gap-x-2\"\n title=\"How long did the last query take to fetch\"\n >\n <span>Fetch duration:</span>\n <span class=\"font-bold\">{{\n formatDuration(\n selectedQuery.devtools.history.at(0)!.fetchTime!.end!\n - selectedQuery.devtools.history.at(0)!.fetchTime!.start,\n )\n }}</span>\n </p>\n\n <p\n class=\"grid grid-cols-[auto_1fr] gap-x-2\"\n title=\"How many components and effects are using this query\"\n >\n <span>Observers: <span class=\"font-bold\">{{ selectedQuery.deps.length }}</span></span>\n </p>\n\n <p\n v-if=\"!selectedQuery.active && selectedQuery.options\"\n class=\"grid grid-cols-[auto_1fr] gap-x-2\"\n title=\"When is this query entry garbace collected\"\n >\n <template\n v-if=\"\n typeof selectedQuery.options.gcTime === 'number'\n && Number.isFinite(selectedQuery.options.gcTime)\n \"\n >\n <span>Will be <i>gced</i></span>\n <span class=\"font-bold\">{{\n formatTimeAgo(\n new Date(selectedQuery.devtools.inactiveAt + selectedQuery.options.gcTime),\n {\n ...TIME_AGO_OPTIONS,\n max: undefined,\n },\n )\n }}</span>\n </template>\n </p>\n </div>\n </UCollapse>\n\n <UCollapse title=\"Actions\" :icon=\"IWrench\">\n <div class=\"py-2 gap-2 flex flex-wrap items-center justify-items-start\">\n <UButton\n class=\"theme-info\"\n size=\"sm\"\n title=\"Refetch this query\"\n :disabled=\"selectedQuery.options?.enabled === false\"\n @click=\"channel.emit('queries:refetch', selectedQuery.key)\"\n >\n <i-lucide-refresh-cw class=\"size-3.5\" /> Refetch\n </UButton>\n\n <UButton\n class=\"theme-neutral\"\n size=\"sm\"\n title=\"Invalidate this query\"\n @click=\"channel.emit('queries:invalidate', selectedQuery.key)\"\n >\n <i-lucide-timer-reset /> Invalidate\n </UButton>\n\n <UButton\n v-if=\"selectedQuery.devtools.simulate !== 'loading'\"\n class=\"theme-purple\"\n size=\"sm\"\n title=\"Restore the previous state\"\n @click=\"channel.emit('queries:simulate:loading', selectedQuery.key)\"\n >\n <i-lucide-loader />\n Simulate loading\n </UButton>\n <UButton\n v-else\n class=\"theme-purple\"\n size=\"sm\"\n title=\"Simulate a loading state\"\n @click=\"channel.emit('queries:simulate:loading:stop', selectedQuery.key)\"\n >\n <i-lucide-loader class=\"animate-spin\" />\n Stop loading\n </UButton>\n\n <UButton\n v-if=\"selectedQuery.devtools.simulate !== 'error'\"\n class=\"theme-error\"\n size=\"sm\"\n title=\"Simulate an Error state\"\n @click=\"channel.emit('queries:simulate:error', selectedQuery.key)\"\n >\n <i-lucide-x-octagon /> Simulate error\n </UButton>\n <UButton\n v-else\n class=\"theme-error\"\n size=\"sm\"\n title=\"Restore the previous state\"\n @click=\"channel.emit('queries:simulate:error:stop', selectedQuery.key)\"\n >\n <i-lucide-rotate-ccw /> Remove error\n </UButton>\n\n <UButton\n class=\"theme-warning\"\n size=\"sm\"\n title=\"Reset this query to its initial (pending) state\"\n @click=\"channel.emit('queries:reset', selectedQuery.key)\"\n >\n <i-lucide-trash /> Reset\n </UButton>\n </div>\n </UCollapse>\n\n <UCollapse v-model:open=\"isDataOpen\" title=\"Data\" :icon=\"IFileText\">\n <div class=\"py-1\">\n <pre\n v-if=\"selectedQuery.state.data !== undefined\"\n class=\"rounded p-1 overflow-auto max-h-[1200px]\"\n >{{ selectedQuery.state.data }}</pre>\n <p v-else class=\"text-neutral-500/50\">\n No data\n </p>\n </div>\n </UCollapse>\n\n <UCollapse\n v-model:open=\"isErrorOpen\"\n :title=\"`Error${selectedQuery.state.status === 'error' ? ' (!)' : ''}`\"\n :icon=\"ICircleX\"\n >\n <div class=\"py-1\">\n <pre v-if=\"selectedQuery.state.error\" class=\"rounded p-1 overflow-auto max-h-[1200px]\">{{\n selectedQuery.state.error\n }}</pre>\n <p v-else class=\"text-neutral-500/50\">\n No error\n </p>\n </div>\n </UCollapse>\n\n <UCollapse title=\"Call count\" :icon=\"ISigmaSquare\" :open=\"false\">\n <div class=\"py-1\">\n <p class=\"grid grid-cols-[auto_1fr] gap-1\">\n <span>Calls:</span>\n <span>\n <code class=\"font-bold\">{{ selectedQuery.devtools.count.total }}</code>\n </span>\n <span>Success:</span>\n <span>\n <code class=\"font-bold\">{{ selectedQuery.devtools.count.succeed }}</code>\n </span>\n <span>Errors:</span>\n <span>\n <code class=\"font-bold\">{{ selectedQuery.devtools.count.errored }}</code>\n </span>\n <span>Cancelled:</span>\n <span>\n <code class=\"font-bold\">{{ selectedQuery.devtools.count.cancelled }}</code>\n </span>\n </p>\n </div>\n </UCollapse>\n\n <UCollapse\n :title=\"`History (${selectedQuery.devtools.history.length})`\"\n :icon=\"IHistory\"\n :open=\"false\"\n >\n <div class=\"py-1\">\n <UCollapse\n v-for=\"entry of selectedQuery.devtools.history\"\n :key=\"entry.updatedAt\"\n :title=\"`Entry nº${entry.id} (${formatTimeAgo(new Date(entry.updatedAt), TIME_AGO_OPTIONS)})`\"\n :open=\"false\"\n >\n <pre class=\"rounded p-1 overflow-auto max-h-[1200px]\">{{ entry }}</pre>\n </UCollapse>\n </div>\n </UCollapse>\n\n <UCollapse title=\"Options\" :open=\"false\" :icon=\"IBraces\">\n <div class=\"py-1\">\n <pre\n v-if=\"selectedQuery.options\"\n class=\"rounded bg-neutral-500/20 p-1 overflow-auto max-h-[1200px]\"\n >{{ selectedQuery.options }}</pre>\n <p v-else>\n This Query entry has no options. It might have been created from the server or manually\n set with\n <code>queryCache.setQueryData()</code> for prefetching.\n </p>\n </div>\n </UCollapse>\n </template>\n\n <template v-else>\n <div class=\"py-6 mx-auto\">\n <p class=\"flex flex-col text-center items-center gap-2 text-lg px-2\">\n Select a Query to inspect\n <i-lucide-mouse-pointer-click />\n </p>\n </div>\n </template>\n </div>\n</template>\n"],"names":["open","_useModel","__props","scrollIfNeeded","event","scrollOptions","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","$event","_hoisted_2","_renderSlot","_ctx","title","_hoisted_3","icon","_createBlock","_resolveDynamicComponent","_createTextVNode","formatDuration","timeInMs","seconds","minutes","route","useRoute","queries","useQueryEntries","selectedQuery","computed","entry","TIME_AGO_OPTIONS","lastUpdate","useTimeAgo","_a","channel","useDuplexChannel","isDataOpen","ref","wasDataOpen","lastStatus","isErrorOpen","watch","state","_Fragment","_createVNode","_component_UCollapse","_unref","IInfoCircle","_cache","_hoisted_4","_toDisplayString","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","formatTimeAgo","_c","_b","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","IWrench","_hoisted_15","_component_UButton","_component_i_lucide_refresh_cw","_component_i_lucide_timer_reset","_component_i_lucide_loader","_component_i_lucide_x_octagon","_component_i_lucide_rotate_ccw","_component_i_lucide_trash","IFileText","_hoisted_16","_hoisted_17","_hoisted_18","ICircleX","_hoisted_19","_hoisted_20","_hoisted_21","ISigmaSquare","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","IHistory","_hoisted_28","_hoisted_29","IBraces","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_component_i_lucide_mouse_pointer_click"],"mappings":"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"}
1
+ {"version":3,"file":"_queryId_-Bilvrtoo.js","sources":["../src/panel/components/UCollapse.ce.vue","../src/panel/utils/time.ts","../src/panel/pages/queries/[queryId].vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Component } from 'vue'\n\ndefineProps<{\n title?: string\n icon?: Component\n}>()\n\nconst open = defineModel<boolean>('open', {\n default: true,\n})\n\nfunction scrollIfNeeded(event: TransitionEvent) {\n if (event.target instanceof HTMLElement) {\n const scrollOptions: ScrollIntoViewOptions = {\n block: 'nearest',\n inline: 'nearest',\n behavior: 'smooth',\n }\n event.target.scrollIntoView(scrollOptions)\n }\n}\n</script>\n\n<template>\n <div class=\"collapse collapse-arrow\">\n <input v-model=\"open\" type=\"checkbox\">\n <div class=\"collapse-title px-2 py-0.5 bg-neutral-200 dark:bg-neutral-800 theme-neutral\">\n <slot name=\"title\" :open :title>\n <h3 class=\"font-semibold text-sm flex gap-x-1 items-center\">\n <slot name=\"icon\">\n <component :is=\"icon\" v-if=\"icon\" class=\"size-4\" />\n </slot>\n {{ title ?? 'Group' }}\n </h3>\n </slot>\n </div>\n <div class=\"collapse-content px-2 text-sm overflow-hidden\" @transitionend=\"scrollIfNeeded\">\n <slot :open />\n </div>\n </div>\n</template>\n\n<style scoped>\n.collapse:not(td, tr, colgroup) {\n visibility: visible;\n}\n\n.collapse {\n position: relative;\n display: grid;\n overflow: hidden;\n width: 100%;\n grid-template-rows: max-content 0fr;\n transition: grid-template-rows 0.2s;\n isolation: isolate;\n\n > input:is([type='checkbox'], [type='radio']) {\n grid-column-start: 1;\n grid-row-start: 1;\n appearance: none;\n opacity: 0;\n }\n\n &:is([open], :focus),\n &:has(> input:is([type='checkbox'], [type='radio']):checked) {\n grid-template-rows: max-content 1fr;\n }\n\n &:is([open], :focus) > .collapse-content,\n &:not(.collapse-close)\n > :where(input:is([type='checkbox'], [type='radio']):checked ~ .collapse-content) {\n visibility: visible;\n min-height: fit-content;\n }\n &:focus-visible,\n &:has(> input:is([type='checkbox'], [type='radio']):focus-visible) {\n outline-color: var(--ui-text);\n outline-style: solid;\n outline-width: 2px;\n outline-offset: 2px;\n }\n\n &:not(.collapse-close) {\n > input[type='checkbox'],\n > input[type='radio']:not(:checked),\n > .collapse-title {\n cursor: pointer;\n }\n }\n\n &:focus:not(.collapse-close, .collapse[open]) > .collapse-title {\n cursor: unset;\n }\n\n &:is([open]) {\n &.collapse-arrow {\n > .collapse-title:after {\n transform: translateY(-50%) rotate(225deg);\n }\n }\n }\n\n &.collapse-arrow:focus {\n > .collapse-title:after {\n transform: translateY(-50%) rotate(225deg);\n }\n }\n\n &.collapse-arrow {\n > input:is([type='checkbox'], [type='radio']):checked ~ .collapse-title:after {\n transform: translateY(-50%) rotate(225deg);\n }\n }\n\n > input:is([type='checkbox'], [type='radio']) {\n z-index: 1;\n width: 100%;\n }\n}\n\n.collapse-title,\n.collapse-content {\n grid-column-start: 1;\n grid-row-start: 1;\n}\n\n.collapse-content {\n visibility: hidden;\n grid-column-start: 1;\n grid-row-start: 2;\n min-height: 0;\n cursor: unset;\n transition: visibility 0.2s;\n}\n\n.collapse-arrow {\n > .collapse-title:after {\n position: absolute;\n display: block;\n height: 0.5rem;\n width: 0.5rem;\n transform: translateY(-100%) rotate(45deg);\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 0.2s;\n top: 50%;\n right: 0.8em;\n inset-inline-end: 0.75rem;\n content: '';\n transform-origin: 75% 75%;\n box-shadow: 2px 2px;\n pointer-events: none;\n }\n}\n\n.collapse-title {\n position: relative;\n width: 100%;\n transition: background-color 0.2s ease-out;\n}\n</style>\n","export function formatDuration(timeInMs: number): string {\n if (timeInMs < 1000) {\n return `${Math.round(timeInMs)} ms`\n }\n\n const seconds = timeInMs / 1000\n if (timeInMs < 10_000) {\n return `${seconds.toFixed(3)} seconds`\n }\n\n if (timeInMs < 60_000) {\n return `${Math.floor(seconds)} seconds`\n }\n\n const minutes = Math.floor(seconds / 60)\n\n if (timeInMs < 3_600_000) {\n return `${minutes} minute${minutes > 1 ? 's' : ''}`\n }\n\n const hours = Math.floor(minutes / 60)\n\n return `${hours}h${minutes % 60}m${seconds % 60}s`\n}\n","<script setup lang=\"ts\">\nimport type { UseQueryEntryPayload } from '@pinia/colada-devtools/shared'\nimport { computed, ref, watch } from 'vue'\nimport { useDuplexChannel, useQueryEntries } from '../../composables/duplex-channel'\nimport { formatDuration } from '../../utils/time'\nimport { useRoute } from 'vue-router'\nimport type { DataStateStatus } from '@pinia/colada'\n\nimport IWrench from '~icons/lucide/wrench'\nimport IInfoCircle from '~icons/lucide/info'\nimport IFileText from '~icons/lucide/file-text'\nimport ICircleX from '~icons/lucide/circle-x'\nimport IBraces from '~icons/lucide/braces'\nimport IHistory from '~icons/lucide/history'\nimport ISigmaSquare from '~icons/lucide/sigma-square'\nimport { useTimeAgo, formatTimeAgo } from '@vueuse/core'\nimport type { FormatTimeAgoOptions } from '@vueuse/core'\n\nconst route = useRoute('/queries/[queryId]')\nconst queries = useQueryEntries()\n\nconst selectedQuery = computed<UseQueryEntryPayload | null>(() => {\n return queries.value.find((entry) => entry.keyHash === route.params.queryId) ?? null\n})\n\nconst TIME_AGO_OPTIONS: FormatTimeAgoOptions = {\n showSecond: true,\n rounding: 'floor',\n max: 1000 * 60 * 5, // 5 minutes\n}\n\nconst lastUpdate = useTimeAgo(() => selectedQuery.value?.devtools.updatedAt ?? 0, {\n ...TIME_AGO_OPTIONS,\n updateInterval: 3_000,\n})\n\n// TODO: we should be able to highlight components using this query\n// const el = useTemplateRef('me')\n// TODO: add ref=\"me\" to the div\n// watch(\n// // also trigger if the selectedQuery changes\n// () => [el.value, selectedQuery.value?.id] as const,\n// ([el]) => {\n// if (!el || !selectedQuery.value) return\n//\n// const observingComponents = findVueComponents(\n// el,\n// selectedQuery.value.deps.filter((c) => c.type === 'component').map((c) => c.uid) ?? [],\n// )\n//\n// console.log('elements', observingComponents)\n// },\n// )\n\nconst channel = useDuplexChannel()\n\nconst isDataOpen = ref(false)\nlet wasDataOpen = isDataOpen.value\nlet lastStatus: DataStateStatus | null = null\nconst isErrorOpen = ref(false)\nwatch(\n () => selectedQuery.value?.state,\n (state) => {\n if (!state || lastStatus === state.status) return\n lastStatus = state.status\n if (state.status === 'error') {\n isErrorOpen.value = true\n // preserve it for later\n wasDataOpen = isDataOpen.value\n isDataOpen.value = false\n } else if (state.status === 'success') {\n isDataOpen.value = wasDataOpen\n isErrorOpen.value = false\n }\n },\n)\n</script>\n\n<template>\n <div class=\"flex flex-col divide-y dark:divide-(--ui-border) divide-(--ui-border-accented)\">\n <template v-if=\"selectedQuery\">\n <UCollapse title=\"Details\" :icon=\"IInfoCircle\">\n <div class=\"py-1 text-sm\">\n <p class=\"grid grid-cols-[auto_1fr] gap-1\">\n <span>key:</span>\n <span>\n <code class=\"rounded bg-neutral-500/20 p-0.5\">{{ selectedQuery.key }}</code>\n </span>\n </p>\n\n <p\n class=\"grid grid-cols-[auto_1fr] gap-x-2\"\n title=\"When was the query entry last updated\"\n >\n <span>Last update:</span>\n <span class=\"font-bold\">{{ lastUpdate }}</span>\n </p>\n\n <p\n v-if=\"selectedQuery.devtools.history.at(0)?.fetchTime\"\n class=\"grid grid-cols-[auto_1fr] gap-x-2\"\n title=\"When was the last time the query was fetched\"\n >\n <span>Last fetch:</span>\n <span class=\"font-bold\">{{\n formatTimeAgo(new Date(selectedQuery.devtools.history.at(0)!.fetchTime!.start), {\n ...TIME_AGO_OPTIONS,\n max: undefined,\n })\n }}</span>\n </p>\n\n <p\n v-if=\"selectedQuery.devtools.history.at(0)?.fetchTime?.end\"\n class=\"grid grid-cols-[auto_1fr] gap-x-2\"\n title=\"How long did the last query take to fetch\"\n >\n <span>Fetch duration:</span>\n <span class=\"font-bold\">{{\n formatDuration(\n selectedQuery.devtools.history.at(0)!.fetchTime!.end!\n - selectedQuery.devtools.history.at(0)!.fetchTime!.start,\n )\n }}</span>\n </p>\n\n <p\n class=\"grid grid-cols-[auto_1fr] gap-x-2\"\n title=\"How many components and effects are using this query\"\n >\n <span>Observers: <span class=\"font-bold\">{{ selectedQuery.deps.length }}</span></span>\n </p>\n\n <p\n v-if=\"!selectedQuery.active && selectedQuery.options\"\n class=\"grid grid-cols-[auto_1fr] gap-x-2\"\n title=\"When is this query entry garbace collected\"\n >\n <template\n v-if=\"\n typeof selectedQuery.options.gcTime === 'number'\n && Number.isFinite(selectedQuery.options.gcTime)\n \"\n >\n <span>Will be <i>gced</i></span>\n <span class=\"font-bold\">{{\n formatTimeAgo(\n new Date(selectedQuery.devtools.inactiveAt + selectedQuery.options.gcTime),\n {\n ...TIME_AGO_OPTIONS,\n max: undefined,\n },\n )\n }}</span>\n </template>\n </p>\n </div>\n </UCollapse>\n\n <UCollapse title=\"Actions\" :icon=\"IWrench\">\n <div class=\"py-2 gap-2 flex flex-wrap items-center justify-items-start\">\n <UButton\n class=\"theme-info\"\n size=\"sm\"\n title=\"Refetch this query\"\n :disabled=\"selectedQuery.options?.enabled === false\"\n @click=\"channel.emit('queries:refetch', selectedQuery.key)\"\n >\n <i-lucide-refresh-cw class=\"size-3.5\" /> Refetch\n </UButton>\n\n <UButton\n class=\"theme-neutral\"\n size=\"sm\"\n title=\"Invalidate this query\"\n @click=\"channel.emit('queries:invalidate', selectedQuery.key)\"\n >\n <i-lucide-timer-reset /> Invalidate\n </UButton>\n\n <UButton\n v-if=\"selectedQuery.devtools.simulate !== 'loading'\"\n class=\"theme-purple\"\n size=\"sm\"\n title=\"Restore the previous state\"\n @click=\"channel.emit('queries:simulate:loading', selectedQuery.key)\"\n >\n <i-lucide-loader />\n Simulate loading\n </UButton>\n <UButton\n v-else\n class=\"theme-purple\"\n size=\"sm\"\n title=\"Simulate a loading state\"\n @click=\"channel.emit('queries:simulate:loading:stop', selectedQuery.key)\"\n >\n <i-lucide-loader class=\"animate-spin\" />\n Stop loading\n </UButton>\n\n <UButton\n v-if=\"selectedQuery.devtools.simulate !== 'error'\"\n class=\"theme-error\"\n size=\"sm\"\n title=\"Simulate an Error state\"\n @click=\"channel.emit('queries:simulate:error', selectedQuery.key)\"\n >\n <i-lucide-x-octagon /> Simulate error\n </UButton>\n <UButton\n v-else\n class=\"theme-error\"\n size=\"sm\"\n title=\"Restore the previous state\"\n @click=\"channel.emit('queries:simulate:error:stop', selectedQuery.key)\"\n >\n <i-lucide-rotate-ccw /> Remove error\n </UButton>\n\n <UButton\n class=\"theme-warning\"\n size=\"sm\"\n title=\"Reset this query to its initial (pending) state\"\n @click=\"channel.emit('queries:reset', selectedQuery.key)\"\n >\n <i-lucide-trash /> Reset\n </UButton>\n </div>\n </UCollapse>\n\n <UCollapse v-model:open=\"isDataOpen\" title=\"Data\" :icon=\"IFileText\">\n <div class=\"py-1\">\n <pre\n v-if=\"selectedQuery.state.data !== undefined\"\n class=\"rounded p-1 overflow-auto max-h-[1200px]\"\n >{{ selectedQuery.state.data }}</pre>\n <p v-else class=\"text-neutral-500/50\">\n No data\n </p>\n </div>\n </UCollapse>\n\n <UCollapse\n v-model:open=\"isErrorOpen\"\n :title=\"`Error${selectedQuery.state.status === 'error' ? ' (!)' : ''}`\"\n :icon=\"ICircleX\"\n >\n <div class=\"py-1\">\n <pre v-if=\"selectedQuery.state.error\" class=\"rounded p-1 overflow-auto max-h-[1200px]\">{{\n selectedQuery.state.error\n }}</pre>\n <p v-else class=\"text-neutral-500/50\">\n No error\n </p>\n </div>\n </UCollapse>\n\n <UCollapse title=\"Call count\" :icon=\"ISigmaSquare\" :open=\"false\">\n <div class=\"py-1\">\n <p class=\"grid grid-cols-[auto_1fr] gap-1\">\n <span>Calls:</span>\n <span>\n <code class=\"font-bold\">{{ selectedQuery.devtools.count.total }}</code>\n </span>\n <span>Success:</span>\n <span>\n <code class=\"font-bold\">{{ selectedQuery.devtools.count.succeed }}</code>\n </span>\n <span>Errors:</span>\n <span>\n <code class=\"font-bold\">{{ selectedQuery.devtools.count.errored }}</code>\n </span>\n <span>Cancelled:</span>\n <span>\n <code class=\"font-bold\">{{ selectedQuery.devtools.count.cancelled }}</code>\n </span>\n </p>\n </div>\n </UCollapse>\n\n <UCollapse\n :title=\"`History (${selectedQuery.devtools.history.length})`\"\n :icon=\"IHistory\"\n :open=\"false\"\n >\n <div class=\"py-1\">\n <UCollapse\n v-for=\"entry of selectedQuery.devtools.history\"\n :key=\"entry.updatedAt\"\n :title=\"`Entry nº${entry.id} (${formatTimeAgo(new Date(entry.updatedAt), TIME_AGO_OPTIONS)})`\"\n :open=\"false\"\n >\n <pre class=\"rounded p-1 overflow-auto max-h-[1200px]\">{{ entry }}</pre>\n </UCollapse>\n </div>\n </UCollapse>\n\n <UCollapse title=\"Options\" :open=\"false\" :icon=\"IBraces\">\n <div class=\"py-1\">\n <pre\n v-if=\"selectedQuery.options\"\n class=\"rounded bg-neutral-500/20 p-1 overflow-auto max-h-[1200px]\"\n >{{ selectedQuery.options }}</pre>\n <p v-else>\n This Query entry has no options. It might have been created from the server or manually\n set with\n <code>queryCache.setQueryData()</code> for prefetching.\n </p>\n </div>\n </UCollapse>\n </template>\n\n <template v-else>\n <div class=\"py-6 mx-auto\">\n <p class=\"flex flex-col text-center items-center gap-2 text-lg px-2\">\n Select a Query to inspect\n <i-lucide-mouse-pointer-click />\n </p>\n </div>\n </template>\n </div>\n</template>\n"],"names":["open","_useModel","__props","scrollIfNeeded","event","scrollOptions","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","$event","_hoisted_2","_renderSlot","_ctx","title","_hoisted_3","icon","_createBlock","_resolveDynamicComponent","_createTextVNode","formatDuration","timeInMs","seconds","minutes","route","useRoute","queries","useQueryEntries","selectedQuery","computed","entry","TIME_AGO_OPTIONS","lastUpdate","useTimeAgo","_a","channel","useDuplexChannel","isDataOpen","ref","wasDataOpen","lastStatus","isErrorOpen","watch","state","_Fragment","_createVNode","_component_UCollapse","_unref","IInfoCircle","_cache","_hoisted_4","_toDisplayString","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","formatTimeAgo","_c","_b","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","IWrench","_hoisted_15","_component_UButton","_component_i_lucide_refresh_cw","_component_i_lucide_timer_reset","_component_i_lucide_loader","_component_i_lucide_x_octagon","_component_i_lucide_rotate_ccw","_component_i_lucide_trash","IFileText","_hoisted_16","_hoisted_17","_hoisted_18","ICircleX","_hoisted_19","_hoisted_20","_hoisted_21","ISigmaSquare","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","IHistory","_hoisted_28","_hoisted_29","IBraces","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_component_i_lucide_mouse_pointer_click"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { _ as o } from "./mouse-pointer-click-DrNfYH7O.js";
2
- import { _ as c, c as s, o as n, a as _, P as a, k as r } from "./index-BCMgcfY0.js";
1
+ import { _ as o } from "./mouse-pointer-click--GgfMFjw.js";
2
+ import { _ as c, c as s, o as n, a as _, P as a, k as r } from "./index-D50XbbDk.js";
3
3
  const i = {}, l = { class: "py-6 mx-auto" }, p = { class: "flex flex-col text-center items-center gap-2 text-lg px-2" };
4
4
  function d(m, e) {
5
5
  const t = o;
@@ -14,4 +14,4 @@ const u = /* @__PURE__ */ c(i, [["render", d]]);
14
14
  export {
15
15
  u as default
16
16
  };
17
- //# sourceMappingURL=index-B5Pabqnp.js.map
17
+ //# sourceMappingURL=index-B6c9Loor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-B5Pabqnp.js","sources":["../src/panel/pages/queries/index.vue"],"sourcesContent":["<script setup lang=\"ts\"></script>\n\n<template>\n <div class=\"py-6 mx-auto\">\n <p class=\"flex flex-col text-center items-center gap-2 text-lg px-2\">\n Select a Query to inspect\n <i-lucide-mouse-pointer-click />\n </p>\n </div>\n</template>\n"],"names":["_hoisted_1","_hoisted_2","_openBlock","_createElementBlock","_createElementVNode","_createVNode","_component_i_lucide_mouse_pointer_click"],"mappings":";;cAGOA,IAAA,EAAA,OAAM,eAAc,GACpBC,IAAA,EAAA,OAAM,4DAA2D;;;AADtE,SAAAC,EAAA,GAAAC,EAKM,OALNH,GAKM;AAAA,IAJJI,EAGI,KAHJH,GAGI;AAAA,wBAHiE,6BAEnE;AAAA,MAAAI,EAAgCC,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"index-B6c9Loor.js","sources":["../src/panel/pages/queries/index.vue"],"sourcesContent":["<script setup lang=\"ts\"></script>\n\n<template>\n <div class=\"py-6 mx-auto\">\n <p class=\"flex flex-col text-center items-center gap-2 text-lg px-2\">\n Select a Query to inspect\n <i-lucide-mouse-pointer-click />\n </p>\n </div>\n</template>\n"],"names":["_hoisted_1","_hoisted_2","_openBlock","_createElementBlock","_createElementVNode","_createVNode","_component_i_lucide_mouse_pointer_click"],"mappings":";;cAGOA,IAAA,EAAA,OAAM,eAAc,GACpBC,IAAA,EAAA,OAAM,4DAA2D;;;AADtE,SAAAC,EAAA,GAAAC,EAKM,OALNH,GAKM;AAAA,IAJJI,EAGI,KAHJH,GAGI;AAAA,wBAHiE,6BAEnE;AAAA,MAAAI,EAAgCC,CAAA;AAAA;;;;"}