|
(window["webpackJsonpGUI"] = window["webpackJsonpGUI"] || []).push([["addon-entry-custom-zoom"],{ |
|
|
|
"./node_modules/css-loader/index.js!./src/addons/addons/custom-zoom/style.css": |
|
|
|
|
|
|
|
|
|
(function(module, exports, __webpack_require__) { |
|
|
|
exports = module.exports = __webpack_require__( "./node_modules/css-loader/lib/css-base.js")(false); |
|
|
|
|
|
|
|
|
|
exports.push([module.i, ".sa-custom-zoom-area {\n position: absolute;\n bottom: 0;\n right: 0;\n width: 60px;\n height: 148px;\n pointer-events: none;\n}\n.blocklyZoom > * {\n transition: transform var(--sa-custom-zoom-speed, 0) ease-in-out;\n}\n.sa-custom-zoom-hidden > * {\n transform: translateX(80px);\n}\n", ""]); |
|
|
|
|
|
|
|
|
|
}), |
|
|
|
"./src/addons/addons/custom-zoom/_runtime_entry.js": |
|
|
|
|
|
|
|
|
|
(function(module, __webpack_exports__, __webpack_require__) { |
|
|
|
"use strict"; |
|
__webpack_require__.r(__webpack_exports__); |
|
__webpack_require__.d(__webpack_exports__, "resources", function() { return resources; }); |
|
var _userscript_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "./src/addons/addons/custom-zoom/userscript.js"); |
|
var _css_loader_style_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( "./node_modules/css-loader/index.js!./src/addons/addons/custom-zoom/style.css"); |
|
var _css_loader_style_css__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(_css_loader_style_css__WEBPACK_IMPORTED_MODULE_1__); |
|
|
|
|
|
|
|
const resources = { |
|
"userscript.js": _userscript_js__WEBPACK_IMPORTED_MODULE_0__["default"], |
|
"style.css": _css_loader_style_css__WEBPACK_IMPORTED_MODULE_1___default.a |
|
}; |
|
|
|
}), |
|
|
|
"./src/addons/addons/custom-zoom/userscript.js": |
|
|
|
|
|
|
|
|
|
(function(module, __webpack_exports__, __webpack_require__) { |
|
|
|
"use strict"; |
|
__webpack_require__.r(__webpack_exports__); |
|
__webpack_exports__["default"] = (async function (_ref) { |
|
let { |
|
addon, |
|
console |
|
} = _ref; |
|
await addon.tab.traps.getBlockly(); |
|
let controlsRect; |
|
let previousIsHovered = false; |
|
const speeds = { |
|
none: "0s", |
|
short: "0.2s", |
|
default: "0.3s", |
|
long: "0.5s" |
|
}; |
|
const customZoomAreaElement = document.createElement("div"); |
|
customZoomAreaElement.className = "sa-custom-zoom-area"; |
|
function update() { |
|
document.removeEventListener("mousemove", onMouseMove); |
|
if (addon.tab.editorMode !== "editor") return; |
|
Blockly.getMainWorkspace().options.zoomOptions.maxScale = addon.settings.get("maxZoom") / 100; |
|
Blockly.getMainWorkspace().options.zoomOptions.minScale = addon.settings.get("minZoom") / 100; |
|
Blockly.getMainWorkspace().options.zoomOptions.startScale = addon.settings.get("startZoom") / 100; |
|
Blockly.getMainWorkspace().options.zoomOptions.scaleSpeed = 1 + 0.2 * (addon.settings.get("zoomSpeed") / 100); |
|
const svgGroup = getZoomControls(); |
|
const autohide = addon.settings.get("autohide"); |
|
if (svgGroup) svgGroup.classList.toggle("sa-custom-zoom-hidden", autohide); |
|
if (autohide) { |
|
const injectionDiv = document.querySelector(".injectionDiv"); |
|
injectionDiv.appendChild(customZoomAreaElement); |
|
updateRect(); |
|
document.addEventListener("mousemove", onMouseMove); |
|
} |
|
} |
|
function getZoomControls() { |
|
const zoomControls = Blockly.getMainWorkspace().zoomControls_; |
|
if (zoomControls) return zoomControls.svgGroup_; |
|
return null; |
|
} |
|
function onMouseMove(e) { |
|
const isHovered = e.x > controlsRect.left && e.x < controlsRect.right && e.y > controlsRect.top && e.y < controlsRect.bottom; |
|
if (isHovered !== previousIsHovered) { |
|
previousIsHovered = isHovered; |
|
const svgGroup = getZoomControls(); |
|
if (svgGroup) { |
|
svgGroup.style.setProperty("--sa-custom-zoom-speed", speeds[addon.settings.get("speed")]); |
|
svgGroup.classList.toggle("sa-custom-zoom-hidden", !isHovered); |
|
} |
|
} |
|
} |
|
function updateRect() { |
|
controlsRect = customZoomAreaElement.getBoundingClientRect(); |
|
} |
|
function onResize() { |
|
if (addon.tab.editorMode === "editor" && addon.settings.get("autohide")) { |
|
updateRect(); |
|
} |
|
} |
|
await addon.tab.waitForElement(".blocklyZoom"); |
|
update(); |
|
addon.tab.addEventListener("urlChange", update); |
|
addon.settings.addEventListener("change", update); |
|
window.addEventListener("resize", onResize); |
|
}); |
|
|
|
}) |
|
|
|
}]); |
|
|