<template>
	<div class="treenode">
	<button v-on:click="debugShow = !debugShow">Ladící data</button>
	<div v-if="debugShow">
		<pre>{{ item.node.polymorphic_ctype.model }}</pre>
		<pre>{{ item }}</pre>
	</div>
	<component :is='item.node.polymorphic_ctype.model' :item='item'></component>
	<div v-if="item.children.length === 0">
	<div v-if="item.appendable_children.length > 0">
		<b>Vložit jako syna</b>
		<ul>
			<li v-for="chld in item.appendable_children" :key="chld[0]">
				<a href="">{{chld[1]}}</a>
			</li>
		</ul>
	</div>
	</div>
	<div v-if="item.children.length > 0 && item.children[0].appendable_siblings.length > 0">
		<b>Vložit před</b>
		<ul>
			<li v-for="sibl in item.children[0].appendable_siblings" :key="sibl[0]">
				<a href="">{{sibl[1]}}</a>
			</li>
		</ul>
	</div>

	<ul>
		<li v-for="(chld, index) in item.children" v-bind:key="chld.nazev" >
			<TreeNode :item="chld">
			</TreeNode>
			<div v-if="chld.appendable_siblings.length > 0">
				<b v-if="index < (item.children.length - 1)">Vložit mezi</b>
				<b v-else>Vložit za</b>
				<ul>
					<li v-for="sibl in chld.appendable_siblings" :key="sibl[0]">
						<a href="">{{sibl[1]}}</a>
					</li>
				</ul>
			</div>
		</li>
	</ul>
	</div>
</template>

<script>

import rocniknode from './RocnikNode.vue'
import cislonode from './CisloNode.vue'
import temavcislenode from './TemaVCisleNode.vue'
import castnode from './CastNode.vue'
import textnode from './TextNode.vue'
import ulohazadaninode from './UlohaZadaniNode.vue'
import ulohavzoraknode from './UlohaVzorakNode.vue'


export default {
	name: 'TreeNode',
	components: {
		rocniknode,
		cislonode,
		temavcislenode,
		castnode,
		textnode,
		ulohazadaninode,
		ulohavzoraknode,
	},
	data: () => ({
		debugShow: false,
	}),
	props: {
		item: Object
	}
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h3 {
	margin: 40px 0 0;
}
ul {
/*	list-style-type: none;*/
	padding: 0;
}
li {
	/*display: inline-block;*/
	margin: 0 10px;
}
a {
	color: #42b983;
}

.treenode {
	border: 1px solid;
	border-color: "black";
	margin: 5px;
}
</style>
