|
@@ -13,6 +13,7 @@
|
|
transform: `translate(${element.selected.x}px, ${element.selected.y}px)`,
|
|
transform: `translate(${element.selected.x}px, ${element.selected.y}px)`,
|
|
height: element.selected.height + 'px',
|
|
height: element.selected.height + 'px',
|
|
width: element.selected.width + 'px',
|
|
width: element.selected.width + 'px',
|
|
|
|
+ zIndex: 99,
|
|
}"
|
|
}"
|
|
class="indicator selected"
|
|
class="indicator selected"
|
|
></div>
|
|
></div>
|
|
@@ -24,7 +25,13 @@
|
|
:path="riFileCopyLine"
|
|
:path="riFileCopyLine"
|
|
@click="copySelector"
|
|
@click="copySelector"
|
|
/>
|
|
/>
|
|
- <input :value="element.selector" />
|
|
|
|
|
|
+ <input
|
|
|
|
+ type="text"
|
|
|
|
+ placeholder="Element selector"
|
|
|
|
+ title="Element selector"
|
|
|
|
+ readonly
|
|
|
|
+ :value="element.selector"
|
|
|
|
+ />
|
|
</div>
|
|
</div>
|
|
<template v-if="element.selector">
|
|
<template v-if="element.selector">
|
|
<button
|
|
<button
|
|
@@ -59,6 +66,7 @@ let targetEl = null;
|
|
let selectedEl = null;
|
|
let selectedEl = null;
|
|
let pathIndex = 0;
|
|
let pathIndex = 0;
|
|
let selectedPath = [];
|
|
let selectedPath = [];
|
|
|
|
+const root = document.querySelector('element-selector');
|
|
|
|
|
|
function getElementRect(target) {
|
|
function getElementRect(target) {
|
|
if (!target) return {};
|
|
if (!target) return {};
|
|
@@ -73,9 +81,10 @@ function getElementRect(target) {
|
|
};
|
|
};
|
|
}
|
|
}
|
|
function handleMouseMove({ target }) {
|
|
function handleMouseMove({ target }) {
|
|
- if (targetEl === target) return;
|
|
|
|
|
|
+ if (targetEl === target || target === root) return;
|
|
|
|
|
|
targetEl = target;
|
|
targetEl = target;
|
|
|
|
+
|
|
element.hovered = getElementRect(target);
|
|
element.hovered = getElementRect(target);
|
|
}
|
|
}
|
|
function copySelector() {
|
|
function copySelector() {
|
|
@@ -111,7 +120,6 @@ function selectChildElement() {
|
|
element.selected = getElementRect(activeEl);
|
|
element.selected = getElementRect(activeEl);
|
|
element.selector = finder(activeEl);
|
|
element.selector = finder(activeEl);
|
|
selectedEl = activeEl;
|
|
selectedEl = activeEl;
|
|
- console.log(pathIndex, selectedPath);
|
|
|
|
}
|
|
}
|
|
function selectParentElement() {
|
|
function selectParentElement() {
|
|
if (selectedEl.tagName === 'HTML' || selectedPath.length === 0) return;
|
|
if (selectedEl.tagName === 'HTML' || selectedPath.length === 0) return;
|
|
@@ -122,7 +130,6 @@ function selectParentElement() {
|
|
element.selected = getElementRect(activeEl);
|
|
element.selected = getElementRect(activeEl);
|
|
element.selector = finder(activeEl);
|
|
element.selector = finder(activeEl);
|
|
selectedEl = activeEl;
|
|
selectedEl = activeEl;
|
|
- console.log(pathIndex, selectedPath);
|
|
|
|
}
|
|
}
|
|
function handleClick(event) {
|
|
function handleClick(event) {
|
|
event.preventDefault();
|
|
event.preventDefault();
|
|
@@ -143,7 +150,6 @@ function handleKeyup({ code }) {
|
|
};
|
|
};
|
|
|
|
|
|
if (shortcuts[code]) shortcuts[code]();
|
|
if (shortcuts[code]) shortcuts[code]();
|
|
- console.log(code);
|
|
|
|
}
|
|
}
|
|
function handleScroll() {
|
|
function handleScroll() {
|
|
const { x: hoveredX, y: hoveredY } = getElementRect(targetEl);
|
|
const { x: hoveredX, y: hoveredY } = getElementRect(targetEl);
|
|
@@ -155,8 +161,6 @@ function handleScroll() {
|
|
element.selected.y = selectedY;
|
|
element.selected.y = selectedY;
|
|
}
|
|
}
|
|
function destroy() {
|
|
function destroy() {
|
|
- const root = document.querySelector('element-selector');
|
|
|
|
-
|
|
|
|
window.removeEventListener('keyup', handleKeyup);
|
|
window.removeEventListener('keyup', handleKeyup);
|
|
window.removeEventListener('scroll', handleScroll);
|
|
window.removeEventListener('scroll', handleScroll);
|
|
document.body.removeEventListener('click', handleClick);
|
|
document.body.removeEventListener('click', handleClick);
|
|
@@ -244,6 +248,7 @@ input:focus {
|
|
padding: 12px;
|
|
padding: 12px;
|
|
color: #1f2937;
|
|
color: #1f2937;
|
|
pointer-events: all;
|
|
pointer-events: all;
|
|
|
|
+ z-index: 999;
|
|
}
|
|
}
|
|
|
|
|
|
.indicator {
|
|
.indicator {
|