aboutsummaryrefslogtreecommitdiff
path: root/src/App.vue
diff options
context:
space:
mode:
authorTerry Truong <terry06890@gmail.com>2022-04-26 15:11:27 +1000
committerTerry Truong <terry06890@gmail.com>2022-04-26 15:11:27 +1000
commitde55b59141a82c68b6a5b360d6f57a7e760e2fd6 (patch)
tree8be1a1bdbb91b8ef7b71e5553f62fff176e8d6af /src/App.vue
parent04e9444746d3ba8ddcc96d0fd16f1c02adce1389 (diff)
Make TolMap have Map type
Diffstat (limited to 'src/App.vue')
-rw-r--r--src/App.vue28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/App.vue b/src/App.vue
index f1e6e2a..24ae12b 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -40,7 +40,8 @@ function getReverseAction(action: Action): Action | null {
// Get tree-of-life data
const rootName = "cellular organisms";
-const tolMap: TolMap = {[rootName]: new TolNode()};
+const tolMap: TolMap = new Map();
+tolMap.set(rootName, new TolNode());
// Configurable options
const defaultLytOpts: LayoutOptions = {
@@ -186,12 +187,12 @@ export default defineComponent({
return success;
};
// Check if data for node-to-expand exists, getting from server if needed
- let tolNode = this.tolMap[layoutNode.name];
- if (tolNode.children[0] in this.tolMap == false){
+ let tolNode = this.tolMap.get(layoutNode.name)!;
+ if (!this.tolMap.has(tolNode.children[0])){
return fetch('/tolnode/' + layoutNode.name + '?type=children')
.then(response => response.json())
.then(obj => {
- Object.getOwnPropertyNames(obj).forEach(key => {this.tolMap[key] = obj[key]});
+ Object.getOwnPropertyNames(obj).forEach(key => {this.tolMap.set(key, obj[key])});
doExpansion();
})
.catch(error => {
@@ -211,16 +212,15 @@ export default defineComponent({
layoutNode.failFlag = !layoutNode.failFlag; // Triggers failure animation
} else {
// Clear out excess nodes when a threshold is reached
- let tolNodeNames = Object.getOwnPropertyNames(this.tolMap)
- let extraNodes = tolNodeNames.length - this.layoutMap.size;
+ let numNodes = this.tolMap.size;
+ let extraNodes = numNodes - this.layoutMap.size;
if (extraNodes > this.excessTolNodeThreshold){
- for (let n of tolNodeNames){
+ for (let n of this.tolMap.keys()){
if (!this.layoutMap.has(n)){
- delete this.tolMap[n];
+ this.tolMap.delete(n)
}
}
- let numRemovedNodes = tolNodeNames.length - Object.getOwnPropertyNames(this.tolMap).length;
- console.log(`Cleaned up tolMap (removed ${numRemovedNodes} out of ${tolNodeNames.length})`);
+ console.log(`Cleaned up tolMap (removed ${numNodes - this.tolMap.size} out of ${numNodes})`);
}
}
return success;
@@ -289,7 +289,7 @@ export default defineComponent({
// Get nearest in-layout-tree ancestor
let ancestorName = name;
while (this.layoutMap.get(ancestorName) == null){
- ancestorName = this.tolMap[ancestorName].parent!;
+ ancestorName = this.tolMap.get(ancestorName)!.parent!;
}
let layoutNode = this.layoutMap.get(ancestorName)!;
// If hidden, expand self/ancestor in ancestry-bar
@@ -349,7 +349,7 @@ export default defineComponent({
// Determine available actions
let action: Action | null;
let actionWeights: {[key: string]: number}; // Maps actions to choice weights
- let node = this.lastFocused;
+ let node: LayoutNode = this.lastFocused;
if (node.children.length == 0){
actionWeights = {'move across': 1, 'move up': 2, 'expand': 3};
// Zero weights for disallowed actions
@@ -359,7 +359,7 @@ export default defineComponent({
if (node == this.activeRoot){
actionWeights['move up'] = 0;
}
- if (this.tolMap[node.name].children.length == 0){
+ if (this.tolMap.get(node.name)!.children.length == 0){
actionWeights['expand'] = 0;
}
} else {
@@ -495,7 +495,7 @@ export default defineComponent({
fetch('/tolnode/' + rootName)
.then(response => response.json())
.then(obj => {
- Object.getOwnPropertyNames(obj).forEach(key => {this.tolMap[key] = obj[key]});
+ Object.getOwnPropertyNames(obj).forEach(key => {this.tolMap.set(key, obj[key])});
this.layoutTree = initLayoutTree(this.tolMap, this.layoutTree.name, 0);
this.activeRoot = this.layoutTree;
this.layoutMap = initLayoutMap(this.layoutTree);