UNPKG

vxe-pc-ui

Version:
1 lines 2.15 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_ui=require("../../ui");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeRadioButton",props:{modelValue:[String,Number,Boolean],label:{type:[String,Number,Boolean],default:null},title:[String,Number],content:[String,Number],disabled:{type:Boolean,default:null},strict:{type:Boolean,default:()=>(0,_ui.getConfig)().radioButton.strict},size:{type:String,default:()=>(0,_ui.getConfig)().radioButton.size||(0,_ui.getConfig)().size}},emits:["update:modelValue","change"],setup(i,e){const{slots:r,emit:l}=e,u=(0,_vue.inject)("$xeForm",null),a=(0,_vue.inject)("xeFormItemInfo",null),n=(0,_vue.inject)("$xeRadioGroup",null);var t=_xeUtils.default.uniqueId(),o=(0,_vue.reactive)({});const d=(0,_ui.useSize)(i)["computeSize"],s={xID:t,props:i,context:e,reactData:o},v=(0,_vue.computed)(()=>{var e,t=i["disabled"];if(null===t&&n)return e=n.getComputeMaps()["computeIsDisabled"],e.value;return t}),p=(0,_vue.computed)(()=>n?n.name:null),c=(0,_vue.computed)(()=>(n?n.props:i).strict),_=(0,_vue.computed)(()=>{var e=i["label"];return n?n.props.modelValue===e:i.modelValue===e}),m={dispatchEvent(e,t,u){l(e,(0,_ui.createEvent)(u,{$radioButton:s},t))}};Object.assign(s,m,{});const f=(e,t)=>{n?n.handleChecked({label:e},t):(l("update:modelValue",e),m.dispatchEvent("change",{label:e},t),u&&a&&u.triggerItemEvent(t,a.itemConfig.field,e))},b=e=>{v.value||f(i.label,e)},g=e=>{var t=v.value,u=c.value;t||u||i.label===(n?n.props:i).modelValue&&f(null,e)};t=()=>{var e=i["label"],t=d.value,u=v.value,l=p.value,a=_.value;return(0,_vue.h)("label",{key:e,class:["vxe-radio","vxe-radio-button",{["size--"+t]:t,"is--disabled":u}],title:i.title},[(0,_vue.h)("input",{class:"vxe-radio--input",type:"radio",name:l,checked:a,disabled:u,onChange:b,onClick:g}),(0,_vue.h)("span",{class:"vxe-radio--label"},r.default?r.default({}):(0,_utils.getFuncText)(i.content))])};return s.renderVN=t}});