bootstrap-vue
Version:
BootstrapVue, with over 40 plugins and more than 80 custom components, custom directives, and over 300 icons, provides one of the most comprehensive implementations of Bootstrap v4 components and grid system for Vue.js. With extensive and automated WAI-AR
31 lines (29 loc) • 778 B
JavaScript
/* Form control contextual state class computation
*
* Returned class is either 'is-valid' or 'is-invalid' based on the 'state' prop
* state can be one of five values:
* - true for is-valid
* - false for is-invalid
* - null for no contextual state
*/
import { isBoolean } from '../utils/inspect'
// @vue/component
export default {
props: {
state: {
// Tri-state prop: true, false, null (or undefined)
type: Boolean,
default: null
}
},
computed: {
computedState() {
// If not a boolean, ensure that value is null
return isBoolean(this.state) ? this.state : null
},
stateClass() {
const state = this.computedState
return state === true ? 'is-valid' : state === false ? 'is-invalid' : null
}
}
}