mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-10-25 00:12:08 +08:00
Replace jQuery usage in connector.js
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
import $ from "jquery";
|
||||
import * as d3 from "d3";
|
||||
import { Toast } from "ui/toast";
|
||||
|
||||
@@ -13,9 +12,17 @@ const ribbonOuterSingle = 6;
|
||||
const ribbonInnerMultiple = 1;
|
||||
const ribbonOuterMultiple = 3;
|
||||
|
||||
function offset(element) {
|
||||
const rect = element.getBoundingClientRect();
|
||||
return {
|
||||
top: rect.top + window.scrollY,
|
||||
left: rect.left + window.scrollX,
|
||||
};
|
||||
}
|
||||
|
||||
class Connector {
|
||||
constructor(manager = {}, outputHandle = null, inputHandle = null) {
|
||||
this.manager = manager;
|
||||
constructor(canvasManager = {}, outputHandle = null, inputHandle = null) {
|
||||
this.manager = canvasManager;
|
||||
this.dragging = false;
|
||||
this.innerClass = "ribbon-inner";
|
||||
this.canvas = document.createElement("div");
|
||||
@@ -64,26 +71,28 @@ class Connector {
|
||||
if (!outputHandle || !inputHandle) {
|
||||
return;
|
||||
}
|
||||
const canvas_container = $("#canvas-container");
|
||||
const canvasZoom = this.manager.canvasZoom;
|
||||
if (this.dragging) {
|
||||
this.canvas.style.zIndex = zIndex;
|
||||
}
|
||||
const relativeLeft = (e) => ($(e).offset().left - canvas_container.offset().left) / canvasZoom;
|
||||
const relativeTop = (e) => ($(e).offset().top - canvas_container.offset().top) / canvasZoom;
|
||||
if (!outputHandle || !inputHandle) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Set handle ids, used in test cases
|
||||
this.canvas.setAttribute("output-handle-id", outputHandle.element.getAttribute("id"));
|
||||
this.canvas.setAttribute("input-handle-id", inputHandle.element.getAttribute("id"));
|
||||
|
||||
// Find the position of each handle
|
||||
let start_x = relativeLeft(outputHandle.element) + handleMarginX;
|
||||
let start_y = relativeTop(outputHandle.element) + 0.5 * $(outputHandle.element).height();
|
||||
let end_x = relativeLeft(inputHandle.element) + handleMarginX;
|
||||
let end_y = relativeTop(inputHandle.element) + 0.5 * $(inputHandle.element).height();
|
||||
const canvasContainer = document.getElementById("canvas-container");
|
||||
const canvasZoom = this.manager.canvasZoom;
|
||||
|
||||
const relativeLeft = (e) => (offset(e).left - offset(canvasContainer).left) / canvasZoom + handleMarginX;
|
||||
const relativeTop = (e) =>
|
||||
(offset(e).top - offset(canvasContainer).top) / canvasZoom + 0.5 * inputHandle.element.offsetHeight;
|
||||
|
||||
let start_x = relativeLeft(outputHandle.element);
|
||||
let start_y = relativeTop(outputHandle.element);
|
||||
let end_x = relativeLeft(inputHandle.element);
|
||||
let end_y = relativeTop(inputHandle.element);
|
||||
|
||||
// Calculate canvas area
|
||||
const canvas_min_x = Math.min(start_x, end_x);
|
||||
|
||||
Reference in New Issue
Block a user