UNPKG

vxe-pc-ui

Version:
1 lines 2.84 kB
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_radio=_interopRequireDefault(require("./radio")),_button=_interopRequireDefault(require("./button"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function createInternalData(){return{}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeRadioGroup",props:{modelValue:[String,Number,Boolean],disabled:{type:Boolean,default:null},type:String,options:Array,optionProps:Object,strict:{type:Boolean,default:()=>(0,_ui.getConfig)().radioGroup.strict},size:{type:String,default:()=>(0,_ui.getConfig)().radioGroup.size||(0,_ui.getConfig)().size},defaultConfig:Object},emits:["update:modelValue","change","default-change"],setup(n,e){let{slots:d,emit:a}=e,l=(0,_vue.inject)("$xeForm",null),i=(0,_vue.inject)("xeFormItemInfo",null);var t=_xeUtils.default.uniqueId();let s=(0,_ui.useSize)(n).computeSize;var u=(0,_vue.reactive)({});let r=createInternalData();var o=(0,_vue.computed)(()=>{var e=n.disabled;return null===e?!!l&&(l.props.readonly||l.props.disabled):e});let p=(0,_vue.computed)(()=>Object.assign({},n.defaultConfig)),c={computeIsDisabled:o},v={xID:t,props:n,context:e,reactData:u,name:_xeUtils.default.uniqueId("xe_group_"),getComputeMaps:()=>c},_=(0,_vue.computed)(()=>Object.assign({},n.optionProps)),f=(0,_vue.computed)(()=>_.value.label||"label"),m=(0,_vue.computed)(()=>_.value.value||"value"),g=(0,_vue.computed)(()=>_.value.disabled||"disabled"),b=e=>{a("update:modelValue",e)},x=(e,t,u)=>{a(e,(0,_ui.createEvent)(u,{$radioGroup:v},t))};o={dispatchEvent:x};let h=e=>{var u=r.isLoaded,t=p.value;let a=m.value;if(!u){u=t.selectMode;if(0<e.length&&_xeUtils.default.eqNull(n.modelValue)){if("first"===u||"last"===u){let t=_xeUtils.default[u](e);t&&(0,_vue.nextTick)(()=>{var e;_xeUtils.default.eqNull(n.modelValue)&&(e=t[a],b(e),x("default-change",{value:e},null))})}r.isLoaded=!0}}return(0,_vue.nextTick)()};Object.assign(v,o,{handleChecked(e,t){var{checkedValue:e,checkedLabel:u}=e,a=e;b(a),x("change",{value:a,label:a,checkedValue:e,checkedLabel:u},t),l&&i&&l.triggerItemEvent(t,i.itemConfig.field,a)}});return(0,_vue.watch)(()=>n.options,e=>{h(e||[])}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=n.options;e&&h(e)})}),(0,_vue.onUnmounted)(()=>{_xeUtils.default.assign(r,createInternalData())}),(0,_vue.provide)("$xeRadioGroup",v),v.renderVN=()=>{var{options:e,type:t}=n,u=s.value,a=d.default;let l=m.value,i=f.value,r=g.value,o=("button"===t?_button:_radio).default;return(0,_vue.h)("div",{class:["vxe-radio-group",{["size--"+u]:u}]},a?a({}):e?e.map(e=>(0,_vue.h)(o,{key:e[l],checkedValue:e[l],content:e[i],disabled:e[r]})):[])},v},render(){return this.renderVN()}});