close search results when leaving the menu
This commit is contained in:
parent
bdce4f4deb
commit
a7928f119d
@ -120,6 +120,15 @@ body {
|
|||||||
stroke: rgb(117, 117, 117);
|
stroke: rgb(117, 117, 117);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#search-results {
|
||||||
|
display: none;
|
||||||
|
position: relative;
|
||||||
|
min-height: 20px;
|
||||||
|
padding: 20 20 20 20;
|
||||||
|
overflow-y: auto;
|
||||||
|
overflow-x: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
.submenu {
|
.submenu {
|
||||||
font-family: 'Inter';
|
font-family: 'Inter';
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
|
|||||||
@ -128,7 +128,7 @@
|
|||||||
<div class="menubutton">Search</div>
|
<div class="menubutton">Search</div>
|
||||||
<div class="submenu menu-lightmode" onclick="event.stopPropagation()">
|
<div class="submenu menu-lightmode" onclick="event.stopPropagation()">
|
||||||
<div id="search-container">
|
<div id="search-container">
|
||||||
<input type="text" placeholder="Nodes, Edges, ...">
|
<input type="text" placeholder="Nodes, Edges, ..." onclick="showSearchResults()">
|
||||||
<span class="search-button">
|
<span class="search-button">
|
||||||
<svg height="18" width="18" xmlns="http://www.w3.org/2000/svg">
|
<svg height="18" width="18" xmlns="http://www.w3.org/2000/svg">
|
||||||
<circle cx="11" cy="7" r="6" stroke-width="2" fill="none" />
|
<circle cx="11" cy="7" r="6" stroke-width="2" fill="none" />
|
||||||
@ -136,6 +136,7 @@
|
|||||||
</svg>
|
</svg>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="search-results"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="menuitem">
|
<div class="menuitem">
|
||||||
|
|||||||
23
editor.js
23
editor.js
@ -68,7 +68,7 @@ function openMenuItem(menuitem) {
|
|||||||
other.classList.remove('selectedmenuitem');
|
other.classList.remove('selectedmenuitem');
|
||||||
Array.from(other.getElementsByClassName('submenu')).forEach(subMenu => fadeOuts.push({element: subMenu, min: 0, step: 0.1}));
|
Array.from(other.getElementsByClassName('submenu')).forEach(subMenu => fadeOuts.push({element: subMenu, min: 0, step: 0.1}));
|
||||||
});
|
});
|
||||||
fadeOut(...fadeOuts);
|
fadeOut(null, ...fadeOuts);
|
||||||
menuitem.classList.add('selectedmenuitem');
|
menuitem.classList.add('selectedmenuitem');
|
||||||
var fadeIns = [{element: submenuBackdrop, max: 1}];
|
var fadeIns = [{element: submenuBackdrop, max: 1}];
|
||||||
var lastSubMenu = null;
|
var lastSubMenu = null;
|
||||||
@ -95,7 +95,7 @@ function openMenuItem(menuitem) {
|
|||||||
function closeContextMenus(...menus) {
|
function closeContextMenus(...menus) {
|
||||||
var items = []
|
var items = []
|
||||||
menus.forEach(menu => items.push({element: menu, min: 0, step: 0.1}));
|
menus.forEach(menu => items.push({element: menu, min: 0, step: 0.1}));
|
||||||
fadeOut(...items);
|
fadeOut(null, ...items);
|
||||||
}
|
}
|
||||||
|
|
||||||
function closeMenuItem() {
|
function closeMenuItem() {
|
||||||
@ -103,7 +103,7 @@ function closeMenuItem() {
|
|||||||
selectedMenuItem.classList.remove('selectedmenuitem');
|
selectedMenuItem.classList.remove('selectedmenuitem');
|
||||||
var fadeOuts = [{element: submenuBackdrop, min: 0, step: 0.1}];
|
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}));
|
Array.from(selectedMenuItem.getElementsByClassName('submenu')).forEach(subMenu => fadeOuts.push({element: subMenu, min: 0, step: 0.1}));
|
||||||
fadeOut(...fadeOuts);
|
fadeOut(() => searchResults.style.display = 'none', ...fadeOuts);
|
||||||
selectedMenuItem = null;
|
selectedMenuItem = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -133,6 +133,10 @@ function openSearchMenu(menuitem) {
|
|||||||
|
|
||||||
document.getElementById('filepanel').style.opacity = 0;
|
document.getElementById('filepanel').style.opacity = 0;
|
||||||
|
|
||||||
|
function showSearchResults() {
|
||||||
|
searchResults.style.display = 'block';
|
||||||
|
}
|
||||||
|
|
||||||
function openFileDisplay() {
|
function openFileDisplay() {
|
||||||
deselect();
|
deselect();
|
||||||
function callback() {
|
function callback() {
|
||||||
@ -150,7 +154,7 @@ function openFileDisplay() {
|
|||||||
function closeFileDisplay() {
|
function closeFileDisplay() {
|
||||||
var panel = document.getElementById('filepanel');
|
var panel = document.getElementById('filepanel');
|
||||||
var curtain = document.getElementById('curtain');
|
var curtain = document.getElementById('curtain');
|
||||||
fadeOut({element: panel, min: 0, step: 0.025}, {element: curtain, min: 0, step: 0.025});
|
fadeOut(null, {element: panel, min: 0, step: 0.025}, {element: curtain, min: 0, step: 0.025});
|
||||||
}
|
}
|
||||||
|
|
||||||
function fadeIn(callback, ...items) {
|
function fadeIn(callback, ...items) {
|
||||||
@ -173,7 +177,7 @@ function fadeIn(callback, ...items) {
|
|||||||
requestAnimationFrame(fade);
|
requestAnimationFrame(fade);
|
||||||
}
|
}
|
||||||
|
|
||||||
function fadeOut(...items) {
|
function fadeOut(callback, ...items) {
|
||||||
function fade() {
|
function fade() {
|
||||||
var proceed = false;
|
var proceed = false;
|
||||||
items.forEach(i => {
|
items.forEach(i => {
|
||||||
@ -188,6 +192,7 @@ function fadeOut(...items) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (proceed) requestAnimationFrame(fade);
|
if (proceed) requestAnimationFrame(fade);
|
||||||
|
else if (callback) requestAnimationFrame(callback);
|
||||||
}
|
}
|
||||||
requestAnimationFrame(fade);
|
requestAnimationFrame(fade);
|
||||||
}
|
}
|
||||||
@ -311,7 +316,9 @@ const fileButtons = document.getElementById('filebuttons');
|
|||||||
const contextMenuBg = document.getElementById('ctmenubg'); //Click on background
|
const contextMenuBg = document.getElementById('ctmenubg'); //Click on background
|
||||||
const contextMenuSt = document.getElementById('ctmenust'); //Click on state
|
const contextMenuSt = document.getElementById('ctmenust'); //Click on state
|
||||||
const contextMenuEd = document.getElementById('ctmenued'); //Click on edge
|
const contextMenuEd = document.getElementById('ctmenued'); //Click on edge
|
||||||
|
//Search
|
||||||
const searchContainer = document.getElementById('search-container');
|
const searchContainer = document.getElementById('search-container');
|
||||||
|
const searchResults = document.getElementById('search-results');
|
||||||
// Counters for placeholder IDs of states/actions added via GUI
|
// Counters for placeholder IDs of states/actions added via GUI
|
||||||
var stateIdCounter = 0;
|
var stateIdCounter = 0;
|
||||||
var actionIdCounter = 0;
|
var actionIdCounter = 0;
|
||||||
@ -319,7 +326,7 @@ var stateAbbreviations = [];
|
|||||||
var newStateCoords = {'x': 0, 'y': 0}; //Initial coordinates of the next new state
|
var newStateCoords = {'x': 0, 'y': 0}; //Initial coordinates of the next new state
|
||||||
|
|
||||||
sidePanel.style.top = mainMenu.offsetHeight + 15;
|
sidePanel.style.top = mainMenu.offsetHeight + 15;
|
||||||
// searchContainer.style.left = mainMenu.offsetWidth / 2 - searchContainer.offsetWidth / 2;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Marks the given item as selected.
|
* Marks the given item as selected.
|
||||||
@ -355,14 +362,14 @@ function select(item) {
|
|||||||
fadeIn(callback, {element: sidePanel, max: 1});
|
fadeIn(callback, {element: sidePanel, max: 1});
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
fadeOut({element: sidePanel, min: 0});
|
fadeOut(null, {element: sidePanel, min: 0});
|
||||||
// sidePanel.style.display = 'none';
|
// sidePanel.style.display = 'none';
|
||||||
}
|
}
|
||||||
console.log(item);
|
console.log(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
function deselect() {
|
function deselect() {
|
||||||
fadeOut({element: sidePanel, min: 0});
|
fadeOut(null, {element: sidePanel, min: 0});
|
||||||
// sidePanel.style.display = 'none';
|
// sidePanel.style.display = 'none';
|
||||||
selection = null;
|
selection = null;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user