import Vue from 'vue' ; import { VNode } from 'vue/types/vnode' ; export const VueInput = Vue . extend ( { data ( ) { return { value : '' } ; } , methods : { setValue ( newValue ) { this . value = newValue ; } } , render ( h ) { const defaultSlotScope = { setValue : this . setValue , value : this . value } ; return h ( 'div' , [ this . $scopedSlots . default ! ( defaultSlotScope ) , h ( 'span' , `Value: ${ this . value }` ) ] ) ; } } ) ; export interface VueInputDefaultSlotScope { value : string ; setValue ( newValue ) : void ; }