{"version":3,"sources":["../../../src/components/VRadioGroup/VRadio.js"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport '../../stylus/components/_radios.styl'\n\n// Components\nimport VIcon from '../VIcon'\nimport VLabel from '../VLabel'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Rippleable from '../../mixins/rippleable'\nimport Themeable from '../../mixins/themeable'\nimport Selectable from '../../mixins/selectable'\nimport {\n inject as RegistrableInject\n} from '../../mixins/registrable'\n\n/* @vue/component */\nexport default {\n name: 'v-radio',\n\n mixins: [\n Colorable,\n Rippleable,\n RegistrableInject('radio', 'v-radio', 'v-radio-group'),\n Themeable\n ],\n\n inheritAttrs: false,\n\n props: {\n color: {\n type: String,\n default: 'accent'\n },\n disabled: Boolean,\n label: String,\n onIcon: {\n type: String,\n default: '$vuetify.icons.radioOn'\n },\n offIcon: {\n type: String,\n default: '$vuetify.icons.radioOff'\n },\n readonly: Boolean,\n value: null\n },\n\n data: () => ({\n isActive: false,\n isFocused: false,\n parentError: false\n }),\n\n computed: {\n computedData () {\n return this.setTextColor(!this.parentError && this.isActive && this.color, {\n staticClass: 'v-radio',\n 'class': {\n 'v-radio--is-disabled': this.isDisabled,\n 'v-radio--is-focused': this.isFocused,\n ...this.themeClasses\n }\n })\n },\n computedColor () {\n return this.isActive ? this.color : this.radio.validationState || false\n },\n computedIcon () {\n return this.isActive\n ? this.onIcon\n : this.offIcon\n },\n hasState () {\n return this.isActive || !!this.radio.validationState\n },\n isDisabled () {\n return this.disabled || !!this.radio.disabled\n },\n isReadonly () {\n return this.readonly || !!this.radio.readonly\n }\n },\n\n mounted () {\n this.radio.register(this)\n },\n\n beforeDestroy () {\n this.radio.unregister(this)\n },\n\n methods: {\n genInput (...args) {\n // We can't actually use the mixin directly because\n // it's made for standalone components, but its\n // genInput method is exactly what we need\n return Selectable.options.methods.genInput.call(this, ...args)\n },\n genLabel () {\n return this.$createElement(VLabel, {\n on: { click: this.onChange },\n attrs: {\n for: this.id\n },\n props: {\n color: this.radio.validationState || '',\n dark: this.dark,\n focused: this.hasState,\n light: this.light\n }\n }, this.$slots.label || this.label)\n },\n genRadio () {\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input'\n }, [\n this.genInput('radio', {\n name: this.radio.name || (this.radio._uid ? 'v-radio-' + this.radio._uid : false),\n value: this.value,\n ...this.$attrs\n }),\n this.genRipple(this.setTextColor(this.computedColor)),\n this.$createElement(VIcon, this.setTextColor(this.computedColor, {\n props: {\n dark: this.dark,\n light: this.light\n }\n }), this.computedIcon)\n ])\n },\n onFocus (e) {\n this.isFocused = true\n this.$emit('focus', e)\n },\n onBlur (e) {\n this.isFocused = false\n this.$emit('blur', e)\n },\n onChange () {\n if (this.isDisabled || this.isReadonly) return\n\n if (!this.isDisabled && (!this.isActive || !this.radio.mandatory)) {\n this.$emit('change', this.value)\n }\n },\n onKeydown () {}\n },\n\n render (h) {\n return h('div', this.computedData, [\n this.genRadio(),\n this.genLabel()\n ])\n }\n}\n"],"sourceRoot":""}