123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- <script>
- import { onLeftClick } from '../utils'
- import DeleteIcon from './icons/Delete'
- export default {
- name: 'vue-treeselect--multi-value-item',
- inject: [ 'instance' ],
- props: {
- node: {
- type: Object,
- required: true,
- },
- },
- methods: {
- handleMouseDown: onLeftClick(function handleMouseDown() {
- const { instance, node } = this
- // Deselect this node.
- instance.select(node)
- }),
- },
- render() {
- const { instance, node } = this
- const itemClass = {
- 'vue-treeselect__multi-value-item': true,
- 'vue-treeselect__multi-value-item-disabled': node.isDisabled,
- 'vue-treeselect__multi-value-item-new': node.isNew,
- }
- const customValueLabelRenderer = instance.$scopedSlots['value-label']
- const labelRenderer = customValueLabelRenderer ? customValueLabelRenderer({ node }) : node.label
- return (
- <div class="vue-treeselect__multi-value-item-container">
- <div class={itemClass} onMousedown={this.handleMouseDown}>
- <span class="vue-treeselect__multi-value-label">{ labelRenderer }</span>
- <span class="vue-treeselect__icon vue-treeselect__value-remove"><DeleteIcon /></span>
- </div>
- </div>
- )
- },
- }
- </script>
|