diff --git a/docs/components/DocSlots.vue b/docs/components/DocSlots.vue index 8d3ab436..744be8d5 100644 --- a/docs/components/DocSlots.vue +++ b/docs/components/DocSlots.vue @@ -45,6 +45,16 @@ export default { "#customize-value-label" )} for detailed information.`, }, + { + name: "before-value", + props: "-", + description: `Slot showed before value container`, + }, + { + name: "after-value", + props: "-", + description: `Slot showed after value container`, + }, { name: "before-list", props: "-", diff --git a/src/components/Control.vue b/src/components/Control.vue index 46e565e4..a3c7094b 100644 --- a/src/components/Control.vue +++ b/src/components/Control.vue @@ -55,6 +55,19 @@ export default { }, methods: { + renderBeforeValue() { + const { instance } = this; + const beforeValueRenderer = instance.$scopedSlots["before-value"]; + + return beforeValueRenderer ? beforeValueRenderer() : null; + }, + renderAfterValue() { + const { instance } = this; + const afterValueRenderer = instance.$scopedSlots["after-value"]; + + return afterValueRenderer ? afterValueRenderer() : null; + }, + renderX() { const { instance } = this; const title = instance.multiple @@ -151,9 +164,11 @@ export default { class="vue-treeselect__control" onMousedown={instance.handleMouseDown} > + {this.renderBeforeValue()} {this.renderX()} {this.renderArrow()} + {this.renderAfterValue()} ); }, diff --git a/src/style.less b/src/style.less index 9c32e1d4..d2fbfd25 100644 --- a/src/style.less +++ b/src/style.less @@ -350,9 +350,11 @@ */ .vue-treeselect__control { - .row(); - - height: @treeselect-control-height; + .horizontal-padding(@treeselect-padding); + display: flex; + width: 100%; + align-items: center; + min-height: @treeselect-control-height; border: @treeselect-control-border-width solid @treeselect-control-border-color; border-radius: @treeselect-control-border-radius; @@ -425,7 +427,6 @@ right: 0; bottom: 0; left: 0; - line-height: @treeselect-control-inner-height; user-select: none; pointer-events: none; } @@ -541,7 +542,6 @@ .vue-treeselect__multi-value-label { padding-right: @treeselect-multi-value-padding-x; - white-space: pre-line; user-select: none; } @@ -1164,4 +1164,4 @@ border: 0; overflow: visible; box-sizing: border-box; -} \ No newline at end of file +}