| 1 |
- import{a as q,Q as E,c as G,aw as H,av as J,i as Q,aO as R,a5 as U,s as A,j as K}from"./index-DuJ11xtQ.js";import{d as M,p as W,c as S,o as k,a as m,q as T,b as r,s as X,F as N,m as u,I as f,J as C,n as Y,u as Z,j,e as g,w as x}from"./vue-vendor-BdC0yijC.js";const _=M({name:"Switch",components:{IconLoading:E},props:{modelValue:{type:[String,Number,Boolean],default:void 0},defaultChecked:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},type:{type:String,default:"circle"},size:{type:String},checkedValue:{type:[String,Number,Boolean],default:!0},uncheckedValue:{type:[String,Number,Boolean],default:!1},checkedColor:{type:String},uncheckedColor:{type:String},beforeChange:{type:Function},checkedText:{type:String},uncheckedText:{type:String}},emits:{"update:modelValue":e=>!0,change:(e,a)=>!0,focus:e=>!0,blur:e=>!0},setup(e,{emit:a}){const{disabled:h,size:B,modelValue:p}=Z(e),c=G("switch"),{mergedSize:v}=H(B),{mergedDisabled:t,mergedSize:z,eventHandlers:y}=J({disabled:h,size:v}),d=j(e.defaultChecked?e.checkedValue:e.uncheckedValue),s=g(()=>{var l;return((l=e.modelValue)!=null?l:d.value)===e.checkedValue}),b=j(!1),$=g(()=>b.value||e.loading),F=(l,n)=>{var o,i;d.value=l?e.checkedValue:e.uncheckedValue,a("update:modelValue",d.value),a("change",d.value,n),(i=(o=y.value)==null?void 0:o.onChange)==null||i.call(o,n)},D=async l=>{if($.value||t.value)return;const n=!s.value,o=n?e.checkedValue:e.uncheckedValue,i=e.beforeChange;if(U(i)){b.value=!0;try{const w=await i(o);(w??!0)&&F(n,l)}finally{b.value=!1}}else F(n,l)},I=l=>{var n,o;a("focus",l),(o=(n=y.value)==null?void 0:n.onFocus)==null||o.call(n,l)},L=l=>{var n,o;a("blur",l),(o=(n=y.value)==null?void 0:n.onBlur)==null||o.call(n,l)};x(p,l=>{(Q(l)||R(l))&&(d.value=e.uncheckedValue)});const P=g(()=>[c,`${c}-type-${e.type}`,{[`${c}-small`]:z.value==="small"||z.value==="mini",[`${c}-checked`]:s.value,[`${c}-disabled`]:t.value,[`${c}-loading`]:$.value,[`${c}-custom-color`]:e.type==="line"&&(e.checkedColor||e.uncheckedColor)}]),O=g(()=>{if(s.value&&e.checkedColor)return e.type==="line"?{"--custom-color":e.checkedColor}:{backgroundColor:e.checkedColor};if(!s.value&&e.uncheckedColor)return e.type==="line"?{"--custom-color":e.uncheckedColor}:{backgroundColor:e.uncheckedColor}});return{prefixCls:c,cls:P,mergedDisabled:t,buttonStyle:O,computedCheck:s,computedLoading:$,handleClick:D,handleFocus:I,handleBlur:L}}}),ee=["aria-checked","disabled"];function le(e,a,h,B,p,c){const v=W("icon-loading");return k(),S("button",{type:"button",role:"switch","aria-checked":e.computedCheck,class:r(e.cls),style:Y(e.buttonStyle),disabled:e.mergedDisabled,onClick:a[0]||(a[0]=(...t)=>e.handleClick&&e.handleClick(...t)),onFocus:a[1]||(a[1]=(...t)=>e.handleFocus&&e.handleFocus(...t)),onBlur:a[2]||(a[2]=(...t)=>e.handleBlur&&e.handleBlur(...t))},[m("span",{class:r(`${e.prefixCls}-handle`)},[m("span",{class:r(`${e.prefixCls}-handle-icon`)},[e.computedLoading?(k(),X(v,{key:0})):(k(),S(N,{key:1},[e.computedCheck?u(e.$slots,"checked-icon",{key:0}):u(e.$slots,"unchecked-icon",{key:1})],2112))],2)],2),T(" prettier-ignore "),e.type!=="line"&&e.size!=="small"&&(e.$slots.checked||e.checkedText||e.$slots.unchecked||e.uncheckedText)?(k(),S(N,{key:0},[m("span",{class:r(`${e.prefixCls}-text-holder`)},[e.computedCheck?u(e.$slots,"checked",{key:0},()=>[f(C(e.checkedText),1)]):u(e.$slots,"unchecked",{key:1},()=>[f(C(e.uncheckedText),1)])],2),m("span",{class:r(`${e.prefixCls}-text`)},[e.computedCheck?u(e.$slots,"checked",{key:0},()=>[f(C(e.checkedText),1)]):u(e.$slots,"unchecked",{key:1},()=>[f(C(e.uncheckedText),1)])],2)],64)):T("v-if",!0)],46,ee)}var V=q(_,[["render",le]]);const oe=Object.assign(V,{install:(e,a)=>{A(e,a);const h=K(a);e.component(h+V.name,V)}});export{oe as S};
|