UNPKG

vexip-ui

Version:

A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good

3 lines (2 loc) 3.59 kB
"use strict";const e=require("vue");require("../collapse-transition/index.cjs");require("../icon/index.cjs");const u=require("@vexip-ui/config"),I=require("./props.cjs"),h=require("./symbol.cjs"),w=require("../collapse/collapse-transition.cjs"),P=require("../icon/icon.cjs"),L=["checked","disabled","tabindex","name"],M=e.defineComponent({name:"Radio",__name:"radio",props:I.radioProps,emits:["update:value"],setup(C,{expose:k,emit:g}){const z=C,a=u.useProps("radio",z,{size:u.createSizeProp(),state:u.createStateProp(),value:{default:null,static:!0},label:{default:null,static:!0,required:!0},labelClass:null,disabled:!1,tabIndex:0,loading:!1,loadingLock:!1,name:{default:"",static:!0},shape:{default:"default",validator:t=>h.radioShapes.includes(t)}}),V=g,n=e.inject(h.GROUP_STATE,null),l=u.useNameHelper("radio"),d=u.useIcons(),o=e.ref(a.value),r=e.ref(),p=e.computed(()=>(n==null?void 0:n.size)||a.size),b=e.computed(()=>(n==null?void 0:n.state)||a.state),f=e.computed(()=>(n==null?void 0:n.disabled)||a.disabled),c=e.computed(()=>(n==null?void 0:n.loading)||a.loading),E=e.computed(()=>n==null?void 0:n.loadingIcon),N=e.computed(()=>(n==null?void 0:n.loadingLock)||!1),q=e.computed(()=>(n==null?void 0:n.loadingEffect)||""),i=e.computed(()=>(n==null?void 0:n.shape)||a.shape),m=e.computed(()=>c.value&&N.value),x=e.computed(()=>[l.b(),l.bs("vars"),{[l.bm("inherit")]:a.inherit,[l.bm("checked")]:o.value===a.label,[l.bm("disabled")]:f.value,[l.bm("readonly")]:m.value,[l.bm("loading")]:c.value,[l.bm(p.value)]:p.value!=="default",[l.bm(b.value)]:b.value!=="default",[l.bm(i.value)]:i.value!=="default"&&i.value!=="button-group"}]),y=e.computed(()=>i.value==="button"||i.value==="button-group");e.watch(()=>a.value,t=>{o.value=t}),n&&(o.value=n.currentValue,e.watch(()=>n.currentValue,v),e.onMounted(()=>{n.registerInput(r)}),e.onBeforeUnmount(()=>{n.unregisterInput(r)})),k({currentValue:o,input:r});function v(t){o.value!==t&&(o.value=t,V("update:value",t),u.emitEvent(a.onChange,t))}function B(){f.value||m.value||(v(a.label),n&&o.value===a.label&&n.updateValue(o.value))}return(t,s)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(x.value)},[e.createElementVNode("input",{ref_key:"input",ref:r,type:"radio",class:e.normalizeClass(e.unref(l).be("input")),checked:o.value===e.unref(a).label,disabled:f.value||m.value,tabindex:e.unref(a).tabIndex,name:e.unref(a).name,onSubmit:s[0]||(s[0]=e.withModifiers(()=>{},["prevent"])),onChange:B,onClick:s[1]||(s[1]=e.withModifiers(()=>{},["stop"]))},null,42,L),e.createElementVNode("span",{class:e.normalizeClass([e.unref(l).be("signal"),c.value&&e.unref(l).bem("signal","active")])},null,2),e.createElementVNode("span",{class:e.normalizeClass([e.unref(l).be("label"),e.unref(a).labelClass])},[y.value?(e.openBlock(),e.createBlock(e.unref(w),{key:0,appear:"",horizontal:"","fade-effect":""},{default:e.withCtx(()=>[c.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).be("loading"))},[e.createVNode(e.unref(P),e.mergeProps(e.unref(d).loading,{effect:q.value||e.unref(d).loading.effect,icon:E.value||e.unref(d).loading.icon,label:"loading"}),null,16,["effect","icon"])],2)):e.createCommentVNode("",!0)]),_:1})):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(e.unref(a).label),1)]),e.createElementVNode("span",{class:e.normalizeClass(e.unref(l).be("extra")),onClickCapture:s[2]||(s[2]=e.withModifiers(()=>{},["prevent"]))},[e.renderSlot(t.$slots,"extra")],34)],2)],2))}});module.exports=M; //# sourceMappingURL=radio.vue2.cjs.map