vite-plugin-vue-devtools 0.3.2 → 0.4.2
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/client/assets/{IframeView.vue_vue_type_script_setup_true_lang-73bb0458.js → IframeView.vue_vue_type_script_setup_true_lang-3efd85cd.js} +1 -1
- package/dist/client/assets/{StateFields.vue_vue_type_script_setup_true_lang-7733bfe8.js → StateFields.vue_vue_type_script_setup_true_lang-71b04a17.js} +4 -4
- package/dist/client/assets/{VIcon.vue_vue_type_script_setup_true_lang-844d8389.js → VIcon.vue_vue_type_script_setup_true_lang-bbd0395c.js} +1 -1
- package/dist/client/assets/{VIconButton.vue_vue_type_script_setup_true_lang-a2115df4.js → VIconButton.vue_vue_type_script_setup_true_lang-6f019c5b.js} +2 -2
- package/dist/client/assets/{VIconTitle.vue_vue_type_script_setup_true_lang-64110af4.js → VIconTitle.vue_vue_type_script_setup_true_lang-6c2f93bc.js} +1 -1
- package/dist/client/assets/{VPanelGrids-3a29966d.js → VPanelGrids-3d676ac1.js} +1 -1
- package/dist/client/assets/{VSectionBlock-b2b47991.js → VSectionBlock-ce3de44c.js} +3 -3
- package/dist/client/assets/{VTextInput.vue_vue_type_script_setup_true_lang-4ab475b0.js → VTextInput.vue_vue_type_script_setup_true_lang-387f21cb.js} +2 -2
- package/dist/client/assets/{__eyedropper-6c4f6cec.js → __eyedropper-e1877d6a.js} +2 -2
- package/dist/client/assets/{assets-c9b4a91c.js → assets-04d079f5.js} +8 -8
- package/dist/client/assets/{component-docs-f1e0f42d.js → component-docs-cb9ad5a2.js} +5 -5
- package/dist/client/assets/{components-8ce879b4.js → components-733e029a.js} +7 -7
- package/dist/client/assets/{documentations-8713b916.js → documentations-7d8323ed.js} +3 -3
- package/dist/client/assets/{graph-e31a8b10.js → graph-586e0cca.js} +2 -2
- package/dist/client/assets/{index-bfd864c8.js → index-5bdd8c01.js} +1 -1
- package/dist/client/assets/{index-5b7de771.css → index-99f31726.css} +1 -1
- package/dist/client/assets/{index-c8859523.js → index-fab050dd.js} +37 -49
- package/dist/client/assets/{inspect-0a6da43a.js → inspect-7b1f893a.js} +3 -3
- package/dist/client/assets/{npm-e3775c67.js → npm-068b3ea8.js} +6 -6
- package/dist/client/assets/{overview-d353d21c.js → overview-44a22030.js} +5 -5
- package/dist/client/assets/{pages-ce241043.js → pages-635198da.js} +5 -5
- package/dist/client/assets/{pinia-0dfabc87.js → pinia-f7635d5a.js} +6 -6
- package/dist/client/assets/{routes-2d8be0cc.js → routes-78f604b2.js} +7 -7
- package/dist/client/assets/{rpc-b60055dd.js → rpc-a4b59d16.js} +1 -1
- package/dist/client/assets/{settings-a79cec1c.js → settings-1082abbf.js} +3 -3
- package/dist/client/assets/{splitpanes.es-292c6c8e.js → splitpanes.es-8025e7b0.js} +1 -1
- package/dist/client/assets/{timeline-24b68a77.js → timeline-2dc5c96b.js} +7 -7
- package/dist/client/index.html +2 -2
- package/package.json +2 -1
- package/src/node/app.js +1 -1
- package/src/node/views/FrameBox.vue +212 -0
- package/src/node/views/Main.vue +382 -0
- package/src/node/views/composables.ts +402 -0
- package/src/node/views/utils.ts +204 -0
- package/dist/client/assets/__inspecting-27cecddb.js +0 -51
- package/src/node/Container.vue +0 -604
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { _ as __unplugin_components_0$1 } from './VPanelGrids-
|
|
2
|
-
import { a1 as ref, a2 as computed, aa as routes, v as defineComponent, r as resolveComponent, o as openBlock, c as createBlock, h as withCtx, x as createBaseVNode, u as createVNode, y as toDisplayString, z as unref, ab as vueVersion, P as createTextVNode, e as createElementBlock, F as Fragment, ac as __unplugin_components_0, a0 as __unplugin_components_1, T as _sfc_main$1 } from './index-
|
|
3
|
-
import { r as rpc } from './rpc-
|
|
4
|
-
import { i as isMacOS } from './index-
|
|
1
|
+
import { _ as __unplugin_components_0$1 } from './VPanelGrids-3d676ac1.js';
|
|
2
|
+
import { a1 as ref, a2 as computed, aa as routes, v as defineComponent, r as resolveComponent, o as openBlock, c as createBlock, h as withCtx, x as createBaseVNode, u as createVNode, y as toDisplayString, z as unref, ab as vueVersion, P as createTextVNode, e as createElementBlock, F as Fragment, ac as __unplugin_components_0, a0 as __unplugin_components_1, T as _sfc_main$1 } from './index-fab050dd.js';
|
|
3
|
+
import { r as rpc } from './rpc-a4b59d16.js';
|
|
4
|
+
import { i as isMacOS } from './index-5bdd8c01.js';
|
|
5
5
|
|
|
6
|
-
const version = "0.
|
|
6
|
+
const version = "0.4.2";
|
|
7
7
|
|
|
8
8
|
/* Injected with object hook! */
|
|
9
9
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { _ as __unplugin_components_3 } from './VSectionBlock-
|
|
2
|
-
import { v as defineComponent, a1 as ref, a2 as computed, r as resolveComponent, z as unref, o as openBlock, e as createElementBlock, x as createBaseVNode, y as toDisplayString, c as createBlock, h as withCtx, a7 as withModifiers, F as Fragment, i as renderList, g as createCommentVNode, u as createVNode, P as createTextVNode, q as normalizeClass, T as _sfc_main$4, a0 as __unplugin_components_1, a8 as onMounted, a9 as currentRoute, W as router, K as isRef, M as withKeys, aa as routes } from './index-
|
|
3
|
-
import { _ as _sfc_main$3 } from './VTextInput.vue_vue_type_script_setup_true_lang-
|
|
4
|
-
import './VIconTitle.vue_vue_type_script_setup_true_lang-
|
|
5
|
-
import './VIcon.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import { _ as __unplugin_components_3 } from './VSectionBlock-ce3de44c.js';
|
|
2
|
+
import { v as defineComponent, a1 as ref, a2 as computed, r as resolveComponent, z as unref, o as openBlock, e as createElementBlock, x as createBaseVNode, y as toDisplayString, c as createBlock, h as withCtx, a7 as withModifiers, F as Fragment, i as renderList, g as createCommentVNode, u as createVNode, P as createTextVNode, q as normalizeClass, T as _sfc_main$4, a0 as __unplugin_components_1, a8 as onMounted, a9 as currentRoute, W as router, K as isRef, M as withKeys, aa as routes } from './index-fab050dd.js';
|
|
3
|
+
import { _ as _sfc_main$3 } from './VTextInput.vue_vue_type_script_setup_true_lang-387f21cb.js';
|
|
4
|
+
import './VIconTitle.vue_vue_type_script_setup_true_lang-6c2f93bc.js';
|
|
5
|
+
import './VIcon.vue_vue_type_script_setup_true_lang-bbd0395c.js';
|
|
6
6
|
|
|
7
7
|
const _hoisted_1$2 = {
|
|
8
8
|
block: "",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { _ as _sfc_main$1 } from './StateFields.vue_vue_type_script_setup_true_lang-
|
|
2
|
-
import { g, M } from './splitpanes.es-
|
|
3
|
-
import { v as defineComponent, a1 as ref, a2 as computed, a3 as piniaStoresCategory, a4 as toRaw, a5 as piniaState, a6 as piniaGetters, z as unref, o as openBlock, e as createElementBlock, u as createVNode, h as withCtx, x as createBaseVNode, F as Fragment, i as renderList, q as normalizeClass, y as toDisplayString, c as createBlock } from './index-
|
|
4
|
-
import { p as pick } from './index-
|
|
5
|
-
import './VIcon.vue_vue_type_script_setup_true_lang-
|
|
6
|
-
import './VIconButton.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import { _ as _sfc_main$1 } from './StateFields.vue_vue_type_script_setup_true_lang-71b04a17.js';
|
|
2
|
+
import { g, M } from './splitpanes.es-8025e7b0.js';
|
|
3
|
+
import { v as defineComponent, a1 as ref, a2 as computed, a3 as piniaStoresCategory, a4 as toRaw, a5 as piniaState, a6 as piniaGetters, z as unref, o as openBlock, e as createElementBlock, u as createVNode, h as withCtx, x as createBaseVNode, F as Fragment, i as renderList, q as normalizeClass, y as toDisplayString, c as createBlock } from './index-fab050dd.js';
|
|
4
|
+
import { p as pick } from './index-5bdd8c01.js';
|
|
5
|
+
import './VIcon.vue_vue_type_script_setup_true_lang-bbd0395c.js';
|
|
6
|
+
import './VIconButton.vue_vue_type_script_setup_true_lang-6f019c5b.js';
|
|
7
7
|
|
|
8
8
|
const _hoisted_1 = {
|
|
9
9
|
"h-screen": "",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { _ as __unplugin_components_0 } from './VPanelGrids-
|
|
2
|
-
import { v as defineComponent, z as unref, W as router, o as openBlock, e as createElementBlock, u as createVNode, h as withCtx, x as createBaseVNode, F as Fragment, i as renderList, X as routeRecordMatcherState, Y as activeRouteRecordMatcherState, c as createBlock, V as _sfc_main$2, _ as __unplugin_components_7, q as normalizeClass, Z as activeRouteRecordIndex, $ as toggleRouteRecordMatcher, P as createTextVNode, y as toDisplayString, l as normalizeStyle, g as createCommentVNode, a0 as __unplugin_components_1 } from './index-
|
|
3
|
-
import { _ as _sfc_main$1 } from './StateFields.vue_vue_type_script_setup_true_lang-
|
|
4
|
-
import { g, M } from './splitpanes.es-
|
|
5
|
-
import './VIcon.vue_vue_type_script_setup_true_lang-
|
|
6
|
-
import './index-
|
|
7
|
-
import './VIconButton.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import { _ as __unplugin_components_0 } from './VPanelGrids-3d676ac1.js';
|
|
2
|
+
import { v as defineComponent, z as unref, W as router, o as openBlock, e as createElementBlock, u as createVNode, h as withCtx, x as createBaseVNode, F as Fragment, i as renderList, X as routeRecordMatcherState, Y as activeRouteRecordMatcherState, c as createBlock, V as _sfc_main$2, _ as __unplugin_components_7, q as normalizeClass, Z as activeRouteRecordIndex, $ as toggleRouteRecordMatcher, P as createTextVNode, y as toDisplayString, l as normalizeStyle, g as createCommentVNode, a0 as __unplugin_components_1 } from './index-fab050dd.js';
|
|
3
|
+
import { _ as _sfc_main$1 } from './StateFields.vue_vue_type_script_setup_true_lang-71b04a17.js';
|
|
4
|
+
import { g, M } from './splitpanes.es-8025e7b0.js';
|
|
5
|
+
import './VIcon.vue_vue_type_script_setup_true_lang-bbd0395c.js';
|
|
6
|
+
import './index-5bdd8c01.js';
|
|
7
|
+
import './VIconButton.vue_vue_type_script_setup_true_lang-6f019c5b.js';
|
|
8
8
|
|
|
9
9
|
const _hoisted_1 = {
|
|
10
10
|
key: 0,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { _ as _sfc_main$3 } from './VIcon.vue_vue_type_script_setup_true_lang-
|
|
2
|
-
import { v as defineComponent, I as useVModel, o as openBlock, e as createElementBlock, f as renderSlot, d as withDirectives, J as vModelSelect, z as unref, x as createBaseVNode, y as toDisplayString, g as createCommentVNode, K as isRef, c as createBlock, L as vModelCheckbox, M as withKeys, N as useCategorizedTabs, u as createVNode, F as Fragment, i as renderList, O as isInPopup, h as withCtx, P as createTextVNode, Q as useDevToolsSettings, R as useFrameState, S as _sfc_main$5, T as _sfc_main$6, U as _sfc_main$7, q as normalizeClass, V as _sfc_main$8 } from './index-
|
|
3
|
-
import { _ as _sfc_main$4 } from './VIconTitle.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import { _ as _sfc_main$3 } from './VIcon.vue_vue_type_script_setup_true_lang-bbd0395c.js';
|
|
2
|
+
import { v as defineComponent, I as useVModel, o as openBlock, e as createElementBlock, f as renderSlot, d as withDirectives, J as vModelSelect, z as unref, x as createBaseVNode, y as toDisplayString, g as createCommentVNode, K as isRef, c as createBlock, L as vModelCheckbox, M as withKeys, N as useCategorizedTabs, u as createVNode, F as Fragment, i as renderList, O as isInPopup, h as withCtx, P as createTextVNode, Q as useDevToolsSettings, R as useFrameState, S as _sfc_main$5, T as _sfc_main$6, U as _sfc_main$7, q as normalizeClass, V as _sfc_main$8 } from './index-fab050dd.js';
|
|
3
|
+
import { _ as _sfc_main$4 } from './VIconTitle.vue_vue_type_script_setup_true_lang-6c2f93bc.js';
|
|
4
4
|
|
|
5
5
|
const _hoisted_1$2 = { class: "n-text-input flex flex items-center border n-border-base rounded px-2 py-1 focus-within:n-focus-base focus-within:border-context n-bg-base" };
|
|
6
6
|
const _hoisted_2$2 = ["disabled"];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ay as h, o as openBlock, e as createElementBlock, f as renderSlot, l as normalizeStyle } from './index-
|
|
1
|
+
import { ay as h, o as openBlock, e as createElementBlock, f as renderSlot, l as normalizeStyle } from './index-fab050dd.js';
|
|
2
2
|
|
|
3
3
|
const M = {
|
|
4
4
|
name: "splitpanes",
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { _ as _sfc_main$2 } from './StateFields.vue_vue_type_script_setup_true_lang-
|
|
2
|
-
import { _ as __unplugin_components_0 } from './VPanelGrids-
|
|
3
|
-
import { p as pushScopeId, a as popScopeId, n as nextTick, o as openBlock, c as createBlock, w as withScopeId, m as markRaw, s as shallowReactive, r as resolveComponent, b as resolveDirective, d as withDirectives, e as createElementBlock, f as renderSlot, g as createCommentVNode, h as withCtx, F as Fragment, i as renderList, j as resolveDynamicComponent, k as mergeProps, t as toHandlers, l as normalizeStyle, q as normalizeClass, u as createVNode, v as defineComponent, x as createBaseVNode, y as toDisplayString, z as unref, _ as __unplugin_components_7, A as timelineLayer, B as activeTimelineEvents, C as activeTimelineEventIndex, D as toggleTimelineEventIndex, E as timelineEventDetails, G as activeLayerId, H as toggleTimelineLayer } from './index-
|
|
1
|
+
import { _ as _sfc_main$2 } from './StateFields.vue_vue_type_script_setup_true_lang-71b04a17.js';
|
|
2
|
+
import { _ as __unplugin_components_0 } from './VPanelGrids-3d676ac1.js';
|
|
3
|
+
import { p as pushScopeId, a as popScopeId, n as nextTick, o as openBlock, c as createBlock, w as withScopeId, m as markRaw, s as shallowReactive, r as resolveComponent, b as resolveDirective, d as withDirectives, e as createElementBlock, f as renderSlot, g as createCommentVNode, h as withCtx, F as Fragment, i as renderList, j as resolveDynamicComponent, k as mergeProps, t as toHandlers, l as normalizeStyle, q as normalizeClass, u as createVNode, v as defineComponent, x as createBaseVNode, y as toDisplayString, z as unref, _ as __unplugin_components_7, A as timelineLayer, B as activeTimelineEvents, C as activeTimelineEventIndex, D as toggleTimelineEventIndex, E as timelineEventDetails, G as activeLayerId, H as toggleTimelineLayer } from './index-fab050dd.js';
|
|
4
4
|
import { c as commonjsGlobal, g as getDefaultExportFromCjs } from './_commonjsHelpers-c0d8ada0.js';
|
|
5
|
-
import { g, M } from './splitpanes.es-
|
|
6
|
-
import './VIcon.vue_vue_type_script_setup_true_lang-
|
|
7
|
-
import './index-
|
|
8
|
-
import './VIconButton.vue_vue_type_script_setup_true_lang-
|
|
5
|
+
import { g, M } from './splitpanes.es-8025e7b0.js';
|
|
6
|
+
import './VIcon.vue_vue_type_script_setup_true_lang-bbd0395c.js';
|
|
7
|
+
import './index-5bdd8c01.js';
|
|
8
|
+
import './VIconButton.vue_vue_type_script_setup_true_lang-6f019c5b.js';
|
|
9
9
|
|
|
10
10
|
var dayjs_min = {exports: {}};/* Injected with object hook! */
|
|
11
11
|
|
package/dist/client/index.html
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
|
|
7
7
|
<title>Vue DevTools</title>
|
|
8
|
-
<script type="module" crossorigin src="./assets/index-
|
|
9
|
-
<link rel="stylesheet" href="./assets/index-
|
|
8
|
+
<script type="module" crossorigin src="./assets/index-fab050dd.js"></script>
|
|
9
|
+
<link rel="stylesheet" href="./assets/index-99f31726.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
|
12
12
|
<div id="app"></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vite-plugin-vue-devtools",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"packageManager": "pnpm@8.4.0",
|
|
5
5
|
"description": "A vite plugin for Vue Devtools",
|
|
6
6
|
"author": "webfansplz",
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"types": "dist/index.d.ts",
|
|
33
33
|
"files": [
|
|
34
34
|
"dist",
|
|
35
|
+
"src/node/views/*",
|
|
35
36
|
"src/node/app.js",
|
|
36
37
|
"src/node/Container.vue",
|
|
37
38
|
"*.d.ts"
|
package/src/node/app.js
CHANGED
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { ref, watchEffect } from 'vue'
|
|
3
|
+
import { PANEL_MAX, PANEL_MIN, popupWindow, state } from './composables'
|
|
4
|
+
import { useWindowEventListener } from './utils'
|
|
5
|
+
|
|
6
|
+
const props = defineProps<{
|
|
7
|
+
isDragging: boolean
|
|
8
|
+
|
|
9
|
+
client: {
|
|
10
|
+
close: () => void
|
|
11
|
+
getIFrame: () => HTMLIFrameElement
|
|
12
|
+
inspector: {
|
|
13
|
+
isEnabled: Ref<boolean>
|
|
14
|
+
disable: () => void
|
|
15
|
+
} | undefined
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
viewMode: 'default' | 'xs'
|
|
19
|
+
}>()
|
|
20
|
+
|
|
21
|
+
const container = ref<HTMLElement>()
|
|
22
|
+
const isResizing = ref<false | { top?: boolean; left?: boolean; right?: boolean; bottom?: boolean }>(false)
|
|
23
|
+
|
|
24
|
+
watchEffect(() => {
|
|
25
|
+
if (!container.value)
|
|
26
|
+
return
|
|
27
|
+
if (state.value.open) {
|
|
28
|
+
const iframe = props.client.getIFrame()
|
|
29
|
+
iframe.style.pointerEvents = (isResizing.value || props.isDragging) ? 'none' : 'auto'
|
|
30
|
+
|
|
31
|
+
if (!popupWindow.value) {
|
|
32
|
+
if (Array.from(container.value.children).every(el => el !== iframe))
|
|
33
|
+
container.value.appendChild(iframe)
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
useWindowEventListener('keydown', (e) => {
|
|
39
|
+
if (e.key === 'Escape' && props.client.inspector?.isEnabled.value) {
|
|
40
|
+
e.preventDefault()
|
|
41
|
+
props.client.inspector?.disable()
|
|
42
|
+
props.client.close()
|
|
43
|
+
}
|
|
44
|
+
})
|
|
45
|
+
|
|
46
|
+
useWindowEventListener('mousedown', (e: MouseEvent) => {
|
|
47
|
+
if (!state.value.closeOnOutsideClick)
|
|
48
|
+
return
|
|
49
|
+
if (popupWindow.value)
|
|
50
|
+
return
|
|
51
|
+
if (!state.value.open || isResizing.value || props.client.inspector?.isEnabled.value)
|
|
52
|
+
return
|
|
53
|
+
|
|
54
|
+
const matched = e.composedPath().find((_el) => {
|
|
55
|
+
const el = _el as HTMLElement
|
|
56
|
+
return Array.from(el.classList || []).some(c => c.startsWith('vue-devtools-'))
|
|
57
|
+
|| el.tagName?.toLowerCase() === 'iframe'
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
if (!matched)
|
|
61
|
+
state.value.open = false
|
|
62
|
+
})
|
|
63
|
+
|
|
64
|
+
useWindowEventListener('mousemove', (e) => {
|
|
65
|
+
if (!isResizing.value)
|
|
66
|
+
return
|
|
67
|
+
if (!state.value.open)
|
|
68
|
+
return
|
|
69
|
+
|
|
70
|
+
const iframe = props.client.getIFrame()
|
|
71
|
+
const box = iframe.getBoundingClientRect()
|
|
72
|
+
|
|
73
|
+
if (isResizing.value.right) {
|
|
74
|
+
const widthPx = Math.abs(e.clientX - (box?.left || 0))
|
|
75
|
+
const width = widthPx / window.innerWidth * 100
|
|
76
|
+
state.value.width = Math.min(PANEL_MAX, Math.max(PANEL_MIN, width))
|
|
77
|
+
}
|
|
78
|
+
else if (isResizing.value.left) {
|
|
79
|
+
const widthPx = Math.abs((box?.right || 0) - e.clientX)
|
|
80
|
+
const width = widthPx / window.innerWidth * 100
|
|
81
|
+
state.value.width = Math.min(PANEL_MAX, Math.max(PANEL_MIN, width))
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
if (isResizing.value.top) {
|
|
85
|
+
const heightPx = Math.abs((box?.bottom || 0) - e.clientY)
|
|
86
|
+
const height = heightPx / window.innerHeight * 100
|
|
87
|
+
state.value.height = Math.min(PANEL_MAX, Math.max(PANEL_MIN, height))
|
|
88
|
+
}
|
|
89
|
+
else if (isResizing.value.bottom) {
|
|
90
|
+
const heightPx = Math.abs(e.clientY - (box?.top || 0))
|
|
91
|
+
const height = heightPx / window.innerHeight * 100
|
|
92
|
+
state.value.height = Math.min(PANEL_MAX, Math.max(PANEL_MIN, height))
|
|
93
|
+
}
|
|
94
|
+
})
|
|
95
|
+
|
|
96
|
+
useWindowEventListener('mouseup', () => {
|
|
97
|
+
isResizing.value = false
|
|
98
|
+
})
|
|
99
|
+
|
|
100
|
+
useWindowEventListener('mouseleave', () => {
|
|
101
|
+
isResizing.value = false
|
|
102
|
+
})
|
|
103
|
+
</script>
|
|
104
|
+
|
|
105
|
+
<template>
|
|
106
|
+
<div
|
|
107
|
+
v-show="state.open && !client.inspector?.isEnabled.value && !popupWindow"
|
|
108
|
+
ref="container"
|
|
109
|
+
class="vue-devtools-frame"
|
|
110
|
+
:class="{ 'view-mode-xs': props.viewMode === 'xs' }"
|
|
111
|
+
>
|
|
112
|
+
<!-- Handlers -->
|
|
113
|
+
<div
|
|
114
|
+
v-show="state.position !== 'top'"
|
|
115
|
+
class="vue-devtools-resize-handle vue-devtools-resize-handle-horizontal"
|
|
116
|
+
:style="{ top: 0 }"
|
|
117
|
+
@mousedown.prevent="() => isResizing = { top: true }"
|
|
118
|
+
/>
|
|
119
|
+
<div
|
|
120
|
+
v-show="state.position !== 'bottom'"
|
|
121
|
+
class="vue-devtools-resize-handle vue-devtools-resize-handle-horizontal"
|
|
122
|
+
:style="{ bottom: 0 }"
|
|
123
|
+
@mousedown.prevent="() => isResizing = { bottom: true }"
|
|
124
|
+
/>
|
|
125
|
+
<div
|
|
126
|
+
v-show="state.position !== 'left'"
|
|
127
|
+
class="vue-devtools-resize-handle vue-devtools-resize-handle-vertical"
|
|
128
|
+
:style="{ left: 0 }"
|
|
129
|
+
@mousedown.prevent="() => isResizing = { left: true }"
|
|
130
|
+
/>
|
|
131
|
+
<div
|
|
132
|
+
v-show="state.position !== 'right'"
|
|
133
|
+
class="vue-devtools-resize-handle vue-devtools-resize-handle-vertical"
|
|
134
|
+
:style="{ right: 0 }"
|
|
135
|
+
@mousedown.prevent="() => isResizing = { right: true }"
|
|
136
|
+
/>
|
|
137
|
+
<div
|
|
138
|
+
v-show="state.position !== 'top' && state.position !== 'left'"
|
|
139
|
+
class="vue-devtools-resize-handle vue-devtools-resize-handle-corner"
|
|
140
|
+
:style="{ top: 0, left: 0, cursor: 'nwse-resize' }"
|
|
141
|
+
@mousedown.prevent="() => isResizing = { top: true, left: true }"
|
|
142
|
+
/>
|
|
143
|
+
<div
|
|
144
|
+
v-show="state.position !== 'top' && state.position !== 'right'"
|
|
145
|
+
class="vue-devtools-resize-handle vue-devtools-resize-handle-corner"
|
|
146
|
+
:style="{ top: 0, right: 0, cursor: 'nesw-resize' }"
|
|
147
|
+
@mousedown.prevent="() => isResizing = { top: true, right: true }"
|
|
148
|
+
/>
|
|
149
|
+
<div
|
|
150
|
+
v-show="state.position !== 'bottom' && state.position !== 'left'"
|
|
151
|
+
class="vue-devtools-resize-handle vue-devtools-resize-handle-corner"
|
|
152
|
+
:style="{ bottom: 0, left: 0, cursor: 'nesw-resize' }"
|
|
153
|
+
@mousedown.prevent="() => isResizing = { bottom: true, left: true }"
|
|
154
|
+
/>
|
|
155
|
+
<div
|
|
156
|
+
v-show="state.position !== 'bottom' && state.position !== 'right'"
|
|
157
|
+
class="vue-devtools-resize-handle vue-devtools-resize-handle-corner"
|
|
158
|
+
:style="{ bottom: 0, right: 0, cursor: 'nwse-resize' }"
|
|
159
|
+
@mousedown.prevent="() => isResizing = { bottom: true, right: true }"
|
|
160
|
+
/>
|
|
161
|
+
</div>
|
|
162
|
+
</template>
|
|
163
|
+
|
|
164
|
+
<style scoped>
|
|
165
|
+
.vue-devtools-frame {
|
|
166
|
+
position: fixed;
|
|
167
|
+
z-index: 2147483645;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.vue-devtools-frame :deep(iframe) {
|
|
171
|
+
width: 100%;
|
|
172
|
+
height: 100%;
|
|
173
|
+
outline: none;
|
|
174
|
+
background: var(--vue-devtools-widget-bg);
|
|
175
|
+
border: 1px solid rgba(125,125,125,0.2);
|
|
176
|
+
border-radius: 10px;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
.vue-devtools-resize-handle-horizontal {
|
|
180
|
+
position: absolute;
|
|
181
|
+
left: 6px;
|
|
182
|
+
right: 6px;
|
|
183
|
+
height: 10px;
|
|
184
|
+
margin: -5px 0;
|
|
185
|
+
cursor: ns-resize;
|
|
186
|
+
border-radius: 5px;
|
|
187
|
+
}
|
|
188
|
+
.vue-devtools-resize-handle-vertical {
|
|
189
|
+
position: absolute;
|
|
190
|
+
top: 6px;
|
|
191
|
+
bottom: 0;
|
|
192
|
+
width: 10px;
|
|
193
|
+
margin: 0 -5px;
|
|
194
|
+
cursor: ew-resize;
|
|
195
|
+
border-radius: 5px;
|
|
196
|
+
}
|
|
197
|
+
.vue-devtools-resize-handle-corner {
|
|
198
|
+
position: absolute;
|
|
199
|
+
width: 14px;
|
|
200
|
+
height: 14px;
|
|
201
|
+
margin: -6px;
|
|
202
|
+
border-radius: 6px;
|
|
203
|
+
}
|
|
204
|
+
.vue-devtools-resize-handle:hover {
|
|
205
|
+
background: rgba(125,125,125,0.1);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.vue-devtools-frame.view-mode-xs {
|
|
209
|
+
width: 400px !important;
|
|
210
|
+
height: 80px !important;
|
|
211
|
+
}
|
|
212
|
+
</style>
|