|
@@ -1,19 +1,19 @@
|
|
|
<template>
|
|
|
<div class="library-list">
|
|
|
<div class="library-list-container" @click="onContainerClick">
|
|
|
- <div v-for="(parents, char) in filteredNodes" :key="char">
|
|
|
+ <div v-for="([char, nodes]) in filteredNodes" :key="char">
|
|
|
<h3>{{ char }}</h3>
|
|
|
|
|
|
<div class="library-list-nodes-group">
|
|
|
<node-view
|
|
|
- v-for="parent in parents" :key="parent.id"
|
|
|
- :node="parent"
|
|
|
+ v-for="node in nodes" :key="char + '-' + node.id"
|
|
|
+ :node="node"
|
|
|
mode="card"
|
|
|
- @click.native.capture="previewNode = parent"
|
|
|
- :preview="previewNode === parent"
|
|
|
+ @click.native.capture="previewNode = node"
|
|
|
+ :preview="previewNode === node"
|
|
|
@open-node="$emit('open-node', $event)"
|
|
|
- @open-child="$emit('open-node', { parentId: parent.id, ...$event })"
|
|
|
- :style="`--opacity: ${getStrangenessOpacity(strangeness, parent)};`"
|
|
|
+ @open-child="$emit('open-node', { parentId: node.id, ...$event })"
|
|
|
+ :style="`--opacity: ${getStrangenessOpacity(strangeness, node)};`"
|
|
|
/>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -46,14 +46,14 @@ export default {
|
|
|
|
|
|
filteredNodes () {
|
|
|
if (!this.orderedTextsDepart) return {}
|
|
|
- const nodesGroups = {}
|
|
|
+ const nodesGroups = []
|
|
|
const search = this.search.toLowerCase()
|
|
|
- Object.entries(this.orderedTextsDepart).forEach(([char, nodes]) => {
|
|
|
+ this.orderedTextsDepart.forEach(([char, nodes]) => {
|
|
|
const filteredNodes = nodes
|
|
|
.filter(node => tagsInNode(this.tags, node.tags))
|
|
|
.filter(node => searchInNode(search, node))
|
|
|
if (filteredNodes.length) {
|
|
|
- nodesGroups[char] = filteredNodes
|
|
|
+ nodesGroups.push([char, filteredNodes])
|
|
|
}
|
|
|
})
|
|
|
return nodesGroups
|