@webwriter/flowchart
Version:
Create programming flowcharts with interactive tasks. Use standardized Elements such as loops and Branchings.
82 lines (81 loc) • 3.17 kB
text/typescript
// Zeige oder verstecke die angefragten Benutzeroberflächen
export function toggleMenu(element: HTMLElement, menu: 'task' | 'flow' | 'context' | 'preset' | 'help' | 'translate' | 'setting') {
const taskMenu = element.shadowRoot.querySelector('.task-menu');
const helpMenu = element.shadowRoot.querySelector('.help-menu');
const presetMenu = element.shadowRoot.querySelector('.preset-menu');
const flowchartMenu = element.shadowRoot.querySelector('.flowchart-menu');
const showFlowchartButton = element.shadowRoot.querySelector('.show-flowchart-button');
const translateMenu = element.shadowRoot.querySelector('.translate-menu');
const settingMenu = element.shadowRoot.querySelector('.setting-menu');
const contextMenu = element.shadowRoot.getElementById('context-menu');
switch (menu) {
case 'task':
if (taskMenu) {
taskMenu.classList.toggle('hidden');
if (!taskMenu.classList.contains('hidden')) {
helpMenu.classList.add('hidden');
presetMenu.classList.add('hidden');
translateMenu.classList.add('hidden');
settingMenu.classList.add('hidden');
}
}
break;
case 'help':
if (helpMenu) {
helpMenu.classList.toggle('hidden');
if (!helpMenu.classList.contains('hidden')) {
taskMenu.classList.add('hidden');
presetMenu.classList.add('hidden');
translateMenu.classList.add('hidden');
settingMenu.classList.add('hidden');
}
}
break;
case 'preset':
if (presetMenu) {
presetMenu.classList.toggle('hidden');
if (!presetMenu.classList.contains('hidden')) {
taskMenu.classList.add('hidden');
helpMenu.classList.add('hidden');
translateMenu.classList.add('hidden');
settingMenu.classList.add('hidden');
}
}
break;
case 'translate':
if (translateMenu) {
translateMenu.classList.toggle('hidden');
if (!translateMenu.classList.contains('hidden')) {
taskMenu.classList.add('hidden');
helpMenu.classList.add('hidden');
presetMenu.classList.add('hidden');
settingMenu.classList.add('hidden');
}
}
break;
case 'setting':
if (settingMenu) {
settingMenu.classList.toggle('hidden');
if (!settingMenu.classList.contains('hidden')) {
taskMenu.classList.add('hidden');
helpMenu.classList.add('hidden');
presetMenu.classList.add('hidden');
translateMenu.classList.add('hidden');
}
}
break;
case 'flow':
if (flowchartMenu && showFlowchartButton) {
flowchartMenu.classList.toggle('hidden');
showFlowchartButton.classList.toggle('hidden');
}
break;
case 'context':
if (contextMenu) {
contextMenu.style.display = 'none';
}
break;
default:
console.log('Unbekannter Menü Bezeichnung');
}
}