diff --git a/src/components/NodeMap.vue b/src/components/NodeMap.vue index 9443b48..0988a2b 100644 --- a/src/components/NodeMap.vue +++ b/src/components/NodeMap.vue @@ -18,6 +18,9 @@ :cy="node.y" :class="node.data.class + (node.data.first ? ' first' : '')" :r="node.children ? 7 : 5" + tabindex="0" + @click="onNodeClick(node.data)" + @keyup.enter="onNodeClick(node.data)" > {{ node.data.title }} @@ -107,7 +110,7 @@ export default { .force('center', forceCenter(this.width * 0.5, this.height * 0.5)) }, - // DRAG EVENT HANDLER + // D3 DRAG EVENT HANDLERS onNodeDragStart (e, node) { if (!e.active) { @@ -128,6 +131,17 @@ export default { } node.fx = null node.fy = null + }, + + // BASIC HANDLERS + + onNodeClick (nodeData) { + const { id, parents } = nodeData + if (parents) { + this.$emit('open', parents[0].id, id) + } else { + this.$emit('open', id) + } } }, diff --git a/src/components/text/TextCard.vue b/src/components/text/TextCard.vue index 282f634..df1b7fd 100644 --- a/src/components/text/TextCard.vue +++ b/src/components/text/TextCard.vue @@ -17,12 +17,12 @@ {{ child.id }} - + x diff --git a/src/pages/Library.vue b/src/pages/Library.vue index 6e3ff11..312a1ec 100644 --- a/src/pages/Library.vue +++ b/src/pages/Library.vue @@ -1,16 +1,16 @@