el-switch-d5dc8849.js 4.8 KB

12
  1. import{j as Q,k as Y,aJ as V,_ as w,l as S,m as U,t as Z,z as d,r as E,aF as x,w as K,B as ee,o as i,b as v,d as T,u as a,C as u,aA as ae,c,a as p,L as y,e as r,X as C,f as ie,aW as te,R as M,D as ne,E as oe,A as se,cj as O,V as le}from"./index-312d0758.js";import{i as g,E as m}from"./index-7588b595.js";import{i as ce}from"./validator-8543a958.js";import{U as N,C as B,I as P}from"./event-9519ab40.js";import{_ as re}from"./plugin-vue_export-helper-1cff8a04.js";import{u as ue,a as de}from"./use-form-item-01b63eaa.js";import{u as ve,a as fe}from"./use-form-common-props-714f341f.js";import{d as pe,t as me}from"./error-78e43d3e.js";const he=Q({modelValue:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},size:{type:String,validator:ce},width:{type:[String,Number],default:""},inlinePrompt:{type:Boolean,default:!1},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:Y(Function)},id:String,tabindex:{type:[String,Number]},label:{type:String,default:void 0}}),ye={[N]:s=>V(s)||w(s)||S(s),[B]:s=>V(s)||w(s)||S(s),[P]:s=>V(s)||w(s)||S(s)},be=["onClick"],ke=["id","aria-checked","aria-disabled","aria-label","name","true-value","false-value","disabled","tabindex","onKeydown"],Ie=["aria-hidden"],ge=["aria-hidden"],Ve=["aria-hidden"],_="ElSwitch",we=U({name:_}),Se=U({...we,props:he,emits:ye,setup(s,{expose:L,emit:f}){const n=s,{formItem:b}=ue(),j=ve(),t=Z("switch"),{inputId:R}=de(n,{formItemContext:b}),k=fe(d(()=>n.loading)),A=E(n.modelValue!==!1),h=E(),W=E(),$=d(()=>[t.b(),t.m(j.value),t.is("disabled",k.value),t.is("checked",o.value)]),G=d(()=>[t.e("label"),t.em("label","left"),t.is("active",!o.value)]),H=d(()=>[t.e("label"),t.em("label","right"),t.is("active",o.value)]),J=d(()=>({width:x(n.width)}));K(()=>n.modelValue,()=>{A.value=!0});const z=d(()=>A.value?n.modelValue:!1),o=d(()=>z.value===n.activeValue);[n.activeValue,n.inactiveValue].includes(z.value)||(f(N,n.inactiveValue),f(B,n.inactiveValue),f(P,n.inactiveValue)),K(o,e=>{var l;h.value.checked=e,n.validateEvent&&((l=b==null?void 0:b.validate)==null||l.call(b,"change").catch(q=>pe()))});const I=()=>{const e=o.value?n.inactiveValue:n.activeValue;f(N,e),f(B,e),f(P,e),se(()=>{h.value.checked=o.value})},D=()=>{if(k.value)return;const{beforeChange:e}=n;if(!e){I();return}const l=e();[O(l),V(l)].includes(!0)||me(_,"beforeChange must return type `Promise<boolean>` or `boolean`"),O(l)?l.then(F=>{F&&I()}).catch(F=>{}):l&&I()},X=()=>{var e,l;(l=(e=h.value)==null?void 0:e.focus)==null||l.call(e)};return ee(()=>{h.value.checked=o.value}),L({focus:X,checked:o}),(e,l)=>(i(),v("div",{class:u(a($)),onClick:oe(D,["prevent"])},[T("input",{id:a(R),ref_key:"input",ref:h,class:u(a(t).e("input")),type:"checkbox",role:"switch","aria-checked":a(o),"aria-disabled":a(k),"aria-label":e.label,name:e.name,"true-value":e.activeValue,"false-value":e.inactiveValue,disabled:a(k),tabindex:e.tabindex,onChange:I,onKeydown:ae(D,["enter"])},null,42,ke),!e.inlinePrompt&&(e.inactiveIcon||e.inactiveText)?(i(),v("span",{key:0,class:u(a(G))},[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(o)},C(e.inactiveText),9,Ie)):r("v-if",!0)],2)):r("v-if",!0),T("span",{ref_key:"core",ref:W,class:u(a(t).e("core")),style:ne(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(o)?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(o)},C(a(o)?e.activeText:e.inactiveText),11,ge)):r("v-if",!0)],2)):r("v-if",!0),T("div",{class:u(a(t).e("action"))},[e.loading?(i(),c(a(m),{key:0,class:u(a(t).is("loading"))},{default:p(()=>[ie(a(te))]),_:1},8,["class"])):a(o)?M(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(o)?r("v-if",!0):M(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(H))},[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(o)},C(e.activeText),9,Ve)):r("v-if",!0)],2)):r("v-if",!0)],10,be))}});var Ee=re(Se,[["__file","switch.vue"]]);const Fe=le(Ee);export{Fe as E};