@@ -38,7 +39,7 @@
-
Dark mode, visualisation settings, language
+ Dark mode, visualisation settings, draw @@init or not, collapse all edges between 2 states, language
diff --git a/editor.js b/editor.js
index c60133c..877cfc7 100644
--- a/editor.js
+++ b/editor.js
@@ -16,13 +16,29 @@ function openMenuItem(menuitem) {
var fadeOuts = [];
Array.from(document.getElementsByClassName('selectedmenuitem')).forEach(other => {
other.classList.remove('selectedmenuitem');
- Array.from(other.getElementsByClassName('submenu')).forEach(subMenu => fadeOuts.push({element: subMenu, min: 0}));
+ Array.from(other.getElementsByClassName('submenu')).forEach(subMenu => fadeOuts.push({element: subMenu, min: 0, step: 0.1}));
});
fadeOut(...fadeOuts);
menuitem.classList.add('selectedmenuitem');
- var fadeIns = [];
- Array.from(menuitem.getElementsByClassName('submenu')).forEach(subMenu => fadeIns.push({element: subMenu, max: 0.95}));
- fadeIn(null, ...fadeIns);
+ var fadeIns = [{element: submenuBackdrop, max: 1}];
+ var lastSubMenu = null;
+ Array.from(menuitem.getElementsByClassName('submenu')).forEach(subMenu => {
+ fadeIns.push({element: subMenu, max: 1});
+ lastSubMenu = subMenu;
+ });
+ function callback() {
+ var smRect = lastSubMenu.getBoundingClientRect();
+ console.log(smRect);
+ submenuBackdrop.style.top = smRect.top;// sideHeading.offsetHeight + parseFloat(smStyle.paddingTop) + parseFloat(shStyle.marginTop) + parseFloat(shStyle.marginBottom);
+ submenuBackdrop.style.left = smRect.left;
+ submenuBackdrop.style.width = lastSubMenu.offsetWidth;
+ submenuBackdrop.style.height = lastSubMenu.offsetHeight;
+ // var sbStyle = window.getComputedStyle(sideButtons);
+ // sideContent.style.bottom = sideButtons.offsetHeight + parseFloat(smStyle.paddingBottom) + parseFloat(sbStyle.marginTop) + parseFloat(sbStyle.marginBottom);
+ // console.log(sideHeading.offsetHeight + shStyle.marginTop + shStyle.marginBottom);
+ // var width =
+ }
+ fadeIn(callback, ...fadeIns);
selectedMenuItem = menuitem;
}
@@ -35,8 +51,8 @@ function closeContextMenus(...menus) {
function closeMenuItem() {
if (!selectedMenuItem) return;
selectedMenuItem.classList.remove('selectedmenuitem');
- var fadeOuts = [];
- Array.from(selectedMenuItem.getElementsByClassName('submenu')).forEach(subMenu => fadeOuts.push({element: subMenu, min: 0}));
+ var fadeOuts = [{element: submenuBackdrop, min: 0, step: 0.1}];
+ Array.from(selectedMenuItem.getElementsByClassName('submenu')).forEach(subMenu => fadeOuts.push({element: subMenu, min: 0, step: 0.1}));
fadeOut(...fadeOuts);
selectedMenuItem = null;
}
@@ -73,7 +89,7 @@ function openFileDisplay() {
var bStyle = window.getComputedStyle(fileButtons);
fileContent.style.bottom = fileButtons.offsetHeight + parseFloat(pStyle.paddingBottom) + parseFloat(bStyle.marginTop) + parseFloat(bStyle.marginBottom);
}
- fadeIn(callback, {element: filePanel, max: 0.95, step: 0.025}, {element: curtain, max: 0.5, step: 0.025});
+ fadeIn(callback, {element: filePanel, max: 1, step: 0.025}, {element: curtain, max: 0.5, step: 0.025});
closeMenuItem();
}
@@ -218,7 +234,9 @@ var selection = null; // The currently selected node/edge.
var rightSelection = null; // The currently right clicked node/edge.
var edgeTo = null; // Target of an edge to be created.
var edgeFrom = null; // Start on an edge to be created.
+//Utility elements
const curtain = document.getElementById('curtain');
+const submenuBackdrop = document.getElementById('submenu-backdrop');
//Side Panel
const sidePanel = document.getElementById('sidepanel');
const sideContent = document.getElementById('sidecontent');
@@ -272,7 +290,7 @@ function select(item) {
sideContent.style.bottom = sideButtons.offsetHeight + parseFloat(spStyle.paddingBottom) + parseFloat(sbStyle.marginTop) + parseFloat(sbStyle.marginBottom);
// console.log(sideHeading.offsetHeight + shStyle.marginTop + shStyle.marginBottom);
}
- fadeIn(callback, {element: sidePanel, max: 0.95});
+ fadeIn(callback, {element: sidePanel, max: 1});
} else {
fadeOut({element: sidePanel, min: 0});
@@ -705,7 +723,7 @@ function getEdgeColour(edge) {
}
}
wfGraph
- .linkDirectionalArrowLength(6)
+ .linkDirectionalArrowLength(4)
.linkDirectionalArrowRelPos(1)
.linkColor(getEdgeColour)
.linkCurvature('curvature')