in src/js/webview/webview.js [128:176]
function handleSelectElement(event: MouseEvent) {
let element = event.target;
if (!(element instanceof Element)) {
return;
}
const fieldName = WebviewStateMachine.fieldName;
if (fieldName == null) {
return;
}
const contextSelector = WebviewStateMachine.contextSelector;
// Filter element
element = WebviewUtils.filterElement(element);
// Resolve the CSS selector for the selected element
const selectors: string[] = CSSSelectorResolver.resolve(
element,
WebviewStateMachine.state === WebviewStates.SELECTING_MULTIPLE,
contextSelector,
fieldName
);
ipcRenderer.sendToHost('message', {
type: BrowserMessageTypes.ELEMENT_SELECTED,
selectors,
});
const selector = selectors[0];
if (selector != null) {
if (
WebviewStateMachine.state ===
BrowserMessageTypes.HIGHLIGHT_WARNING_ELEMENTS
) {
WebviewUtils.highlightWarningElementsBySelector(selector);
} else {
WebviewUtils.highlightElementsBySelector(
selector,
WebviewStateMachine.contextSelector
);
}
}
WebviewStateMachine.state = WebviewStates.DEFAULT;
// Prevent navigation to links when clicked
event.preventDefault();
}