| 1 |
- import{a as q,Q as A,c as E,ay as G,ax as H,i as O,aQ as R,a7 as U,s as J,j as K}from"./index-DgoHEtHi.js";import{d as M,p as W,c as S,o as k,a as m,s as w,b as r,q as X,F as N,m as u,t as f,u as y,n as Y,y as Z,j,e as C,A as x}from"./vue-vendor-C15EL-OS.js";const _=M({name:"Switch",components:{IconLoading:A},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=E("switch"),{mergedSize:g}=G(B),{mergedDisabled:t,mergedSize:z,eventHandlers:v}=H({disabled:h,size:g}),d=j(e.defaultChecked?e.checkedValue:e.uncheckedValue),s=C(()=>{var l;return((l=e.modelValue)!=null?l:d.value)===e.checkedValue}),b=j(!1),$=C(()=>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=v.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 T=await i(o);(T??!0)&&F(n,l)}finally{b.value=!1}}else F(n,l)},L=l=>{var n,o;a("focus",l),(o=(n=v.value)==null?void 0:n.onFocus)==null||o.call(n,l)},P=l=>{var n,o;a("blur",l),(o=(n=v.value)==null?void 0:n.onBlur)==null||o.call(n,l)};x(p,l=>{(O(l)||R(l))&&(d.value=e.uncheckedValue)});const I=C(()=>[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)}]),Q=C(()=>{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:I,mergedDisabled:t,buttonStyle:Q,computedCheck:s,computedLoading:$,handleClick:D,handleFocus:L,handleBlur:P}}}),ee=["aria-checked","disabled"];function le(e,a,h,B,p,c){const g=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(g,{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),w(" 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(y(e.checkedText),1)]):u(e.$slots,"unchecked",{key:1},()=>[f(y(e.uncheckedText),1)])],2),m("span",{class:r(`${e.prefixCls}-text`)},[e.computedCheck?u(e.$slots,"checked",{key:0},()=>[f(y(e.checkedText),1)]):u(e.$slots,"unchecked",{key:1},()=>[f(y(e.uncheckedText),1)])],2)],64)):w("v-if",!0)],46,ee)}var V=q(_,[["render",le]]);const oe=Object.assign(V,{install:(e,a)=>{J(e,a);const h=K(a);e.component(h+V.name,V)}});export{oe as S};
|