mand-mobile
Version:
A Vue.js 2.0 Mobile UI Toolkit
158 lines (138 loc) • 5.77 kB
JavaScript
;(function(){
(function (global, factory) {
if (typeof define === "function" && define.amd) {
define(['exports', './index', '../field', '../cell-item', '../input-item', './mixins', '../_style/global.css', './style/list.css'], factory);
} else if (typeof exports !== "undefined") {
factory(exports, require('./index'), require('../field'), require('../cell-item'), require('../input-item'), require('./mixins'), require('../_style/global.css'), require('./style/list.css'));
} else {
var mod = {
exports: {}
};
factory(mod.exports, global.index, global.field, global.cellItem, global.inputItem, global.mixins, global.global, global.list);
global.list = mod.exports;
}
})(this, function (exports, _index, _field, _cellItem, _inputItem, _mixins) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _index2 = _interopRequireDefault(_index);
var _field2 = _interopRequireDefault(_field);
var _cellItem2 = _interopRequireDefault(_cellItem);
var _inputItem2 = _interopRequireDefault(_inputItem);
var _mixins2 = _interopRequireDefault(_mixins);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
var _components;
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
exports.default = {
name: 'md-radio-list',
mixins: [_mixins2.default],
components: (_components = {}, _defineProperty(_components, _index2.default.name, _index2.default), _defineProperty(_components, _field2.default.name, _field2.default), _defineProperty(_components, _cellItem2.default.name, _cellItem2.default), _defineProperty(_components, _inputItem2.default.name, _inputItem2.default), _components),
props: {
options: {
type: Array,
default: function _default() {
return [];
}
},
value: {
default: ''
},
hasInput: {
type: Boolean,
default: false
},
inputLabel: {
type: String,
default: ''
},
inputPlaceholder: {
type: String,
default: ''
},
alignCenter: {
type: Boolean,
default: false
},
isSlotScope: {
type: Boolean,
default: undefined
}
},
data: function data() {
return {
selectedValue: this.value,
inputSelected: false,
inputValue: ''
};
},
computed: {
currentValue: function currentValue() {
if (this.inputSelected) {
return this.inputValue;
} else {
return this.selectedValue;
}
},
hasSlot: function hasSlot() {
return this.isSlotScope !== undefined ? this.isSlotScope : !!this.$scopedSlots.default;
},
withoutIcon: function withoutIcon() {
return this.isSlotScope && !this.icon;
}
},
watch: {
value: function value(val) {
if (val !== this.selectedValue) {
this.selectedValue = val;
}
},
currentValue: function currentValue(val) {
this.$emit('input', val);
}
},
methods: {
$_select: function $_select(option, index) {
this.selectedValue = option.value;
this.inputSelected = false;
this.inputValue && (this.inputValue = '');
this.$emit('change', option, index);
},
select: function select(value) {
this.selectedValue = value;
this.inputSelected = false;
},
selectByIndex: function selectByIndex(index) {
var item = this.options[index];
if (item) {
this.select(item.value);
}
}
}
};
});
})()
if (module.exports.__esModule) module.exports = module.exports.default
var __vue__options__ = (typeof module.exports === "function"? module.exports.options: module.exports)
__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"md-radio-list",class:{ 'is-align-center': _vm.alignCenter }},[_vm._l((_vm.options),function(item,index){return _c('md-cell-item',{key:index,staticClass:"md-radio-item",class:{
'is-selected': _vm.selectedValue === item.value && !_vm.inputSelected,
},attrs:{"title":_vm.hasSlot ? '' : (item.text || item.label),"brief":_vm.hasSlot ? '' : item.brief,"disabled":item.disabled,"noBorder":index === _vm.options.length - 1},on:{"click":function($event){return _vm.$_select(item, index)}}},[(_vm.hasSlot)?[_vm._t("default",null,{"option":item,"index":index,"selected":_vm.currentValue === item.value})]:_vm._e(),_vm._v(" "),(!_vm.alignCenter && !_vm.inputSelected && !_vm.withoutIcon)?_c('md-radio',{attrs:{"slot":_vm.iconPosition === 'right' ? 'right' : 'left',"name":item.value,"disabled":item.disabled,"size":_vm.iconSize,"icon":_vm.icon,"icon-inverse":_vm.iconInverse,"icon-disabled":_vm.iconDisabled,"icon-svg":_vm.iconSvg},slot:_vm.iconPosition === 'right' ? 'right' : 'left',model:{value:(_vm.selectedValue),callback:function ($$v) {_vm.selectedValue=$$v},expression:"selectedValue"}}):_vm._e()],2)}),_vm._v(" "),(_vm.hasInput)?_c('md-input-item',{ref:"inputItem",staticClass:"md-radio-item",class:{
'is-selected': _vm.inputSelected,
},attrs:{"title":_vm.inputLabel,"placeholder":_vm.inputPlaceholder},on:{"focus":function($event){_vm.inputSelected = true}},model:{value:(_vm.inputValue),callback:function ($$v) {_vm.inputValue=$$v},expression:"inputValue"}}):_vm._e()],2)}
__vue__options__.staticRenderFns = []