You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 lines
4.6 KiB
1 lines
4.6 KiB
import{L as w,f as M,h as d,k as E,l as O,E as Y,o as i,c as v,a as S,u as a,n as u,B as Z,z as c,w as p,ak as y,g as r,t as T,b as _,r as F,i as x,C as ee,aj as ae,aO as L}from"./Ca9y1zsW.js";import{b as ie,h as te,j as V,i as C,u as ne,c as se,E as m,V as oe,_ as le,w as ce}from"./BPRC2v3K.js";import{c as re,i as g}from"./Immh241S.js";import{u as ue}from"./CPNNouYu.js";import{U as N,C as P,I as B}from"./BB_Ol6Sd.js";import{a as de,b as ve,d as fe,c as pe}from"./DaX0k22-.js";import{d as me,t as he}from"./Cq9Fpw4b.js";const ye=o=>["",...re].includes(o),be=ie({modelValue:{type:[Boolean,String,Number],default:!1},disabled:Boolean,loading:Boolean,size:{type:String,validator:ye},width:{type:[String,Number],default:""},inlinePrompt:Boolean,inactiveActionIcon:{type:g},activeActionIcon:{type:g},activeIcon:{type:g},inactiveIcon:{type:g},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},beforeChange:{type:te(Function)},id:String,tabindex:{type:[String,Number]},...ue(["ariaLabel"])}),ke={[N]:o=>V(o)||w(o)||C(o),[P]:o=>V(o)||w(o)||C(o),[B]:o=>V(o)||w(o)||C(o)},U="ElSwitch",Ie=M({name:U}),ge=M({...Ie,props:be,emits:ke,setup(o,{expose:j,emit:f}){const n=o,{formItem:b}=de(),$=ve(),t=ne("switch"),{inputId:G}=fe(n,{formItemContext:b}),k=pe(d(()=>n.loading)),A=E(n.modelValue!==!1),h=E(),H=E(),R=d(()=>[t.b(),t.m($.value),t.is("disabled",k.value),t.is("checked",s.value)]),W=d(()=>[t.e("label"),t.em("label","left"),t.is("active",!s.value)]),q=d(()=>[t.e("label"),t.em("label","right"),t.is("active",s.value)]),J=d(()=>({width:se(n.width)}));O(()=>n.modelValue,()=>{A.value=!0});const z=d(()=>A.value?n.modelValue:!1),s=d(()=>z.value===n.activeValue);[n.activeValue,n.inactiveValue].includes(z.value)||(f(N,n.inactiveValue),f(P,n.inactiveValue),f(B,n.inactiveValue)),O(s,e=>{var l;h.value.checked=e,n.validateEvent&&((l=b==null?void 0:b.validate)==null||l.call(b,"change").catch(X=>me()))});const I=()=>{const e=s.value?n.inactiveValue:n.activeValue;f(N,e),f(P,e),f(B,e),ae(()=>{h.value.checked=s.value})},D=()=>{if(k.value)return;const{beforeChange:e}=n;if(!e){I();return}const l=e();[L(l),V(l)].includes(!0)||he(U,"beforeChange must return type `Promise<boolean>` or `boolean`"),L(l)?l.then(K=>{K&&I()}).catch(K=>{}):l&&I()},Q=()=>{var e,l;(l=(e=h.value)==null?void 0:e.focus)==null||l.call(e)};return Y(()=>{h.value.checked=s.value}),j({focus:Q,checked:s}),(e,l)=>(i(),v("div",{class:u(a(R)),onClick:ee(D,["prevent"])},[S("input",{id:a(G),ref_key:"input",ref:h,class:u(a(t).e("input")),type:"checkbox",role:"switch","aria-checked":a(s),"aria-disabled":a(k),"aria-label":e.ariaLabel,name:e.name,"true-value":e.activeValue,"false-value":e.inactiveValue,disabled:a(k),tabindex:e.tabindex,onChange:I,onKeydown:Z(D,["enter"])},null,42,["id","aria-checked","aria-disabled","aria-label","name","true-value","false-value","disabled","tabindex","onKeydown"]),!e.inlinePrompt&&(e.inactiveIcon||e.inactiveText)?(i(),v("span",{key:0,class:u(a(W))},[e.inactiveIcon?(i(),c(a(m),{key:0},{default:p(()=>[(i(),c(y(e.inactiveIcon)))]),_:1})):r("v-if",!0),!e.inactiveIcon&&e.inactiveText?(i(),v("span",{key:1,"aria-hidden":a(s)},T(e.inactiveText),9,["aria-hidden"])):r("v-if",!0)],2)):r("v-if",!0),S("span",{ref_key:"core",ref:H,class:u(a(t).e("core")),style:x(a(J))},[e.inlinePrompt?(i(),v("div",{key:0,class:u(a(t).e("inner"))},[e.activeIcon||e.inactiveIcon?(i(),c(a(m),{key:0,class:u(a(t).is("icon"))},{default:p(()=>[(i(),c(y(a(s)?e.activeIcon:e.inactiveIcon)))]),_:1},8,["class"])):e.activeText||e.inactiveText?(i(),v("span",{key:1,class:u(a(t).is("text")),"aria-hidden":!a(s)},T(a(s)?e.activeText:e.inactiveText),11,["aria-hidden"])):r("v-if",!0)],2)):r("v-if",!0),S("div",{class:u(a(t).e("action"))},[e.loading?(i(),c(a(m),{key:0,class:u(a(t).is("loading"))},{default:p(()=>[_(a(oe))]),_:1},8,["class"])):a(s)?F(e.$slots,"active-action",{key:1},()=>[e.activeActionIcon?(i(),c(a(m),{key:0},{default:p(()=>[(i(),c(y(e.activeActionIcon)))]),_:1})):r("v-if",!0)]):a(s)?r("v-if",!0):F(e.$slots,"inactive-action",{key:2},()=>[e.inactiveActionIcon?(i(),c(a(m),{key:0},{default:p(()=>[(i(),c(y(e.inactiveActionIcon)))]),_:1})):r("v-if",!0)])],2)],6),!e.inlinePrompt&&(e.activeIcon||e.activeText)?(i(),v("span",{key:1,class:u(a(q))},[e.activeIcon?(i(),c(a(m),{key:0},{default:p(()=>[(i(),c(y(e.activeIcon)))]),_:1})):r("v-if",!0),!e.activeIcon&&e.activeText?(i(),v("span",{key:1,"aria-hidden":!a(s)},T(e.activeText),9,["aria-hidden"])):r("v-if",!0)],2)):r("v-if",!0)],10,["onClick"]))}});var Ve=le(ge,[["__file","switch.vue"]]);const Be=ce(Ve);export{Be as E};
|