2023-11-15 15:57:04 +08:00

2 lines
4.9 KiB
JavaScript

import{U as B,C as P,I as _,d as X,w as Y,a as Z,t as x}from"./event-f85d77b0.js";import{m as w,d as F,b as ee,c as u,r as I,w as S,o as ae,e as o,f as d,g as V,u as a,n as r,v,x as b,S as E,H as c,B as T,y as te,j as U,_ as ie,L as ne,E as oe,a$ as A,l as se}from"./plugin-vue_export-helper-85a4d40b.js";import{b as le,m as K,d as re,c as k,a as N,r as ce,v as ue,a6 as de,u as ve,e as fe,E as g,l as pe}from"./index-cf9a2dd7.js";import{i as me}from"./validator-bcf701e4.js";import{u as he}from"./index-de1d3b53.js";const ye=le({modelValue:{type:[Boolean,String,Number],default:!1},value:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},width:{type:[String,Number],default:""},inlinePrompt:{type:Boolean,default:!1},activeIcon:{type:K},inactiveIcon:{type:K},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeColor:{type:String,default:""},inactiveColor:{type:String,default:""},borderColor:{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},id:String,loading:{type:Boolean,default:!1},beforeChange:{type:re(Function)},size:{type:String,validator:me},tabindex:{type:[String,Number]}}),be={[B]:s=>k(s)||w(s)||N(s),[P]:s=>k(s)||w(s)||N(s),[_]:s=>k(s)||w(s)||N(s)},ge=["onClick"],ke=["id","aria-checked","aria-disabled","name","true-value","false-value","disabled","tabindex","onKeydown"],Ce=["aria-hidden"],we=["aria-hidden"],Ie=["aria-hidden"],D="ElSwitch",Se=F({name:D}),Ve=F({...Se,props:ye,emits:be,setup(s,{expose:H,emit:f}){const t=s,L=ne(),{formItem:m}=ce(),j=ue(),i=ee("switch");he({from:'"value"',replacement:'"model-value" or "v-model"',scope:D,version:"2.3.0",ref:"https://element-plus.org/en-US/component/switch.html#attributes",type:"Attribute"},u(()=>{var e;return!!((e=L.vnode.props)!=null&&e.value)}));const{inputId:G}=de(t,{formItemContext:m}),h=ve(u(()=>t.loading)),C=I(t.modelValue!==!1),p=I(),W=I(),$=u(()=>[i.b(),i.m(j.value),i.is("disabled",h.value),i.is("checked",n.value)]),q=u(()=>({width:fe(t.width)}));S(()=>t.modelValue,()=>{C.value=!0}),S(()=>t.value,()=>{C.value=!1});const z=u(()=>C.value?t.modelValue:t.value),n=u(()=>z.value===t.activeValue);[t.activeValue,t.inactiveValue].includes(z.value)||(f(B,t.inactiveValue),f(P,t.inactiveValue),f(_,t.inactiveValue)),S(n,e=>{var l;p.value.checked=e,t.validateEvent&&((l=m==null?void 0:m.validate)==null||l.call(m,"change").catch(R=>X()))});const y=()=>{const e=n.value?t.inactiveValue:t.activeValue;f(B,e),f(P,e),f(_,e),oe(()=>{p.value.checked=n.value})},M=()=>{if(h.value)return;const{beforeChange:e}=t;if(!e){y();return}const l=e();[A(l),k(l)].includes(!0)||x(D,"beforeChange must return type `Promise<boolean>` or `boolean`"),A(l)?l.then(O=>{O&&y()}).catch(O=>{}):l&&y()},J=u(()=>i.cssVarBlock({...t.activeColor?{"on-color":t.activeColor}:null,...t.inactiveColor?{"off-color":t.inactiveColor}:null,...t.borderColor?{"border-color":t.borderColor}:null})),Q=()=>{var e,l;(l=(e=p.value)==null?void 0:e.focus)==null||l.call(e)};return ae(()=>{p.value.checked=n.value}),H({focus:Q,checked:n}),(e,l)=>(o(),d("div",{class:r(a($)),style:U(a(J)),onClick:Z(M,["prevent"])},[V("input",{id:a(G),ref_key:"input",ref:p,class:r(a(i).e("input")),type:"checkbox",role:"switch","aria-checked":a(n),"aria-disabled":a(h),name:e.name,"true-value":e.activeValue,"false-value":e.inactiveValue,disabled:a(h),tabindex:e.tabindex,onChange:y,onKeydown:Y(M,["enter"])},null,42,ke),!e.inlinePrompt&&(e.inactiveIcon||e.inactiveText)?(o(),d("span",{key:0,class:r([a(i).e("label"),a(i).em("label","left"),a(i).is("active",!a(n))])},[e.inactiveIcon?(o(),v(a(g),{key:0},{default:b(()=>[(o(),v(E(e.inactiveIcon)))]),_:1})):c("v-if",!0),!e.inactiveIcon&&e.inactiveText?(o(),d("span",{key:1,"aria-hidden":a(n)},T(e.inactiveText),9,Ce)):c("v-if",!0)],2)):c("v-if",!0),V("span",{ref_key:"core",ref:W,class:r(a(i).e("core")),style:U(a(q))},[e.inlinePrompt?(o(),d("div",{key:0,class:r(a(i).e("inner"))},[e.activeIcon||e.inactiveIcon?(o(),v(a(g),{key:0,class:r(a(i).is("icon"))},{default:b(()=>[(o(),v(E(a(n)?e.activeIcon:e.inactiveIcon)))]),_:1},8,["class"])):e.activeText||e.inactiveText?(o(),d("span",{key:1,class:r(a(i).is("text")),"aria-hidden":!a(n)},T(a(n)?e.activeText:e.inactiveText),11,we)):c("v-if",!0)],2)):c("v-if",!0),V("div",{class:r(a(i).e("action"))},[e.loading?(o(),v(a(g),{key:0,class:r(a(i).is("loading"))},{default:b(()=>[te(a(pe))]),_:1},8,["class"])):c("v-if",!0)],2)],6),!e.inlinePrompt&&(e.activeIcon||e.activeText)?(o(),d("span",{key:1,class:r([a(i).e("label"),a(i).em("label","right"),a(i).is("active",a(n))])},[e.activeIcon?(o(),v(a(g),{key:0},{default:b(()=>[(o(),v(E(e.activeIcon)))]),_:1})):c("v-if",!0),!e.activeIcon&&e.activeText?(o(),d("span",{key:1,"aria-hidden":!a(n)},T(e.activeText),9,Ie)):c("v-if",!0)],2)):c("v-if",!0)],14,ge))}});var Ee=ie(Ve,[["__file","/home/runner/work/element-plus/element-plus/packages/components/switch/src/switch.vue"]]);const De=se(Ee);export{De as E};