OnShape helper

Various tweaks for OnShape, such as remap F2 for rename (SHIFT + N)

질문, 리뷰하거나, 이 스크립트를 신고하세요.
// ==UserScript==
// @name         OnShape helper
// @namespace    V@no
// @version      25.03.08
// @description  Various tweaks for OnShape, such as remap F2 for rename (SHIFT + N)
// @author       V@no
// @license      MIT
// @match        https://cad.onshape.com/documents/*
// @icon         https://www.onshape.com/global-assets/img/global/box-onshape-favicon-321x.png
// @grant        none
// ==/UserScript==

{
	"use strict";
/*
^ = CTRL
! = ALT
+ = SHIFT
*/
	const map = {
		"F2": {key: "N", code: "KeyN", keyCode: 78, shiftKey: true}
	};

	let mouseEvent = {};
	document.addEventListener("mousemove", evt =>
	{
		mouseEvent = evt;
	}, false);

	document.body.addEventListener("keydown", evt =>
	{
		let modifier = "";
		modifier = evt.altKey ? "!" : "";
		modifier = evt.shiftKey ? "+" : "";
		modifier = evt.ctrlKey || evt.metaKey ? "^" : "";
		const key = modifier + evt.code;
		if (!evt.isTrusted || !(key in map) || evt.altKey || evt.shiftKey || evt.ctrlKey || evt.metaKey)
			return console.log(evt, mouseEvent);

		if (mouseEvent.target)
		{
			evt.target.dispatchEvent(new KeyboardEvent(evt.type, Object.assign({}, evt, {key: " ", code: "space", keyCode: 32}, {bubbles: true})));
			mouseEvent.target.dispatchEvent(new PointerEvent("click", mouseEvent));
		}

		evt.target.dispatchEvent(new KeyboardEvent(evt.type, Object.assign({}, evt, map[key], {bubbles: true})));
	}, true);
	const css = `
	:root
	{
		--dimensionEdit: 20em;
	}
	.dimension-edit
	{
		max-width: var(--dimensionEdit);
	}
	.dimension-edit-container .ns-feature-parameter .bti-numeric-text, .dimension-edit-container os-quantity-parameter input
	{
		width: var(--dimensionEdit);
	}
`;
	document.head.appendChild(document.createElement("style")).textContent = css;
}