import { Vue , Component , Prop } from 'vue-property-decorator' ; @ Component export default class BaseModal extends Vue { @ Prop ( { default : ( ) => { } } ) private onOpen ! : ( ) => { } ; @ Prop ( { default : ( ) => { } } ) private onClose ! : ( ) => { } ; @ Prop ( { default : ( ) => { } } ) private onEnter ! : ( ) => { } ; @ Prop ( { default : 'md' } ) private size ! : string ; @ Prop ( ) private visibleState ! : boolean ; @ Prop ( ) private title ! : string ; @ Prop ( { default : true } ) private resetErrorOnClose ! : boolean ; private error = '' ; ns get visible ( ) : boolean { return this . visibleState ; } set visible ( value ) { if ( this . visible === value ) { return ; } if ( value ) { this . onOpen ( ) ; } else { this . onClose ( ) ; } } public close ( ) { if ( this . resetErrorOnClose ) { this . error = '' ; } this . visible = false ; } public errorHandler ( err ) { this . error = err ; } }