-
Notifications
You must be signed in to change notification settings - Fork 0
/
SideBar.js
79 lines (61 loc) · 1.74 KB
/
SideBar.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
class SideBar {
uibox;
contentBox;
isOpen = true;
constructor() {
this.createContainer();
this.addInputsForExistingGraphObjects();
this.addNewBlankInput();
}
addChild(child) {
this.contentBox.append(child);
}
createContainer() {
this.uibox = document.createElement('uibox');
this.createTopBar();
this.contentBox = document.createElement('div');
this.contentBox.className = "content-box";
this.uibox.append(this.contentBox);
let inputarea = document.createElement('inputarea');
this.addChild(inputarea);
let newInputBtn = document.createElement('button');
newInputBtn.innerText = 'New';
newInputBtn.onclick = this.addNewBlankInput;
newInputBtn.id = 'new-input-btn';
this.addChild(newInputBtn);
document.body.append(this.uibox);
}
createTopBar() {
let topBar = document.createElement("topbar");
let openAndClose = document.createElement("button");
openAndClose.innerText = "<<";
openAndClose.onclick = () => {this.openOrClose()};
openAndClose.id = 'open-and-close-btn';
topBar.append(openAndClose);
this.uibox.append(topBar);
}
openOrClose() {
this.children().forEach( child => {
child.classList.toggle("closed");
});
}
topBar() {
return document.getElementsByTagName('topbar')[0];
}
children() {
return [...this.uibox.children];
}
addInputsForExistingGraphObjects() {
mainField.getChildren().forEach(child => {
addInputForExisting(child.toString(), child.getUid());
})
}
addNewBlankInput(e) {
let input = getNewBlankInputBox();
document.getElementsByTagName('inputarea')[0].append(input);
if (e) {
let inputs = getInputs();
inputs[inputs.length - 1].focus();
}
}
}