2 lines
5.0 KiB
JavaScript
2 lines
5.0 KiB
JavaScript
import{k as S,J as N,ak as P,b as W,i as V,R as X,d as Y,a as Z,y as p,D as F,aK as L,G as _,o as a,c as v,q as x,t as ee,f as i,n as d,h as b,e as o,w as r,r as k,E as f,g as s,aa as E,s as ae,br as te,al as ie,aL as ne,aQ as ce,j as m,P as le,aJ as M,C as se,am as oe,aU as ue,l as ve}from"./index-ghV-82DL.js";import{I as B,C as A,U as $}from"./raf-BoD1MYsK.js";import{b as de,e as re,d as fe,c as me}from"./index-C1VOT7ML.js";import{i as he}from"./validator-DvliXwNJ.js";import{u as ye}from"./index-GIcLy50t.js";const be=W({modelValue:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:void 0},loading:Boolean,size:{type:String,validator:he},width:{type:[String,Number],default:""},inlinePrompt:Boolean,inactiveActionIcon:{type:V},activeActionIcon:{type:V},activeIcon:{type:V},inactiveIcon:{type:V},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:X(Function)},id:String,tabindex:{type:[String,Number]},...ye(["ariaLabel"])}),ke={[$]:e=>S(e)||N(e)||P(e),[A]:e=>S(e)||N(e)||P(e),[B]:e=>S(e)||N(e)||P(e)},ge=["id","aria-checked","aria-disabled","aria-label","name","true-value","false-value","disabled","tabindex"],Ie=["aria-hidden"],we={key:1},Ve={key:1},Ee=["aria-hidden"],T="ElSwitch";var Te=Y({name:T,__name:"switch",props:be,emits:ke,setup(e,{expose:O,emit:U}){const c=e,h=U,{formItem:y}=de(),R=re(),n=Z("switch"),{inputId:G}=fe(c,{formItemContext:y}),I=me(m(()=>{if(c.loading)return!0})),D=p(c.modelValue!==!1),g=ce(),J=m(()=>[n.b(),n.m(R.value),n.is("disabled",I.value),n.is("checked",l.value)]),j=m(()=>[n.e("label"),n.em("label","left"),n.is("active",!l.value)]),q=m(()=>[n.e("label"),n.em("label","right"),n.is("active",l.value)]),H=m(()=>({width:oe(c.width)}));F(()=>c.modelValue,()=>{D.value=!0});const z=m(()=>D.value?c.modelValue:!1),l=m(()=>z.value===c.activeValue);[c.activeValue,c.inactiveValue].includes(z.value)||(L(T,"model-value must be active-value or inactive-value"),h($,c.inactiveValue),h(A,c.inactiveValue),h(B,c.inactiveValue)),F(l,t=>{var u;g.value.checked=t,c.validateEvent&&((u=y==null?void 0:y.validate)==null||u.call(y,"change").catch(ue))});const w=()=>{const t=l.value?c.inactiveValue:c.activeValue;h($,t),h(A,t),h(B,t),le(()=>{g.value.checked=l.value})},K=()=>{if(I.value)return;const{beforeChange:t}=c;if(!t){w();return}const u=t();[M(u),S(u)].includes(!0)||se(T,"beforeChange must return type `Promise<boolean>` or `boolean`"),M(u)?u.then(C=>{C&&w()}).catch(C=>{L(T,`some error occurred: ${C}`)}):u&&w()},Q=()=>{var t,u;(u=(t=g.value)==null?void 0:t.focus)==null||u.call(t)};return _(()=>{g.value.checked=l.value}),O({focus:Q,checked:l}),(t,u)=>(a(),v("div",{class:d(J.value),onClick:ne(K,["prevent"])},[x("input",{id:i(G),ref_key:"input",ref:g,class:d(i(n).e("input")),type:"checkbox",role:"switch","aria-checked":l.value,"aria-disabled":i(I),"aria-label":e.ariaLabel,name:e.name,"true-value":e.activeValue,"false-value":e.inactiveValue,disabled:i(I),tabindex:e.tabindex,onChange:w,onKeydown:ee(K,["enter"])},null,42,ge),!e.inlinePrompt&&(e.inactiveIcon||e.inactiveText||t.$slots.inactive)?(a(),v("span",{key:0,class:d(j.value)},[b(t.$slots,"inactive",{},()=>[e.inactiveIcon?(a(),o(i(f),{key:0},{default:r(()=>[(a(),o(k(e.inactiveIcon)))]),_:1})):s("v-if",!0),!e.inactiveIcon&&e.inactiveText?(a(),v("span",{key:1,"aria-hidden":l.value},E(e.inactiveText),9,Ie)):s("v-if",!0)])],2)):s("v-if",!0),x("span",{class:d(i(n).e("core")),style:ie(H.value)},[e.inlinePrompt?(a(),v("div",{key:0,class:d(i(n).e("inner"))},[l.value?(a(),v("div",{key:1,class:d(i(n).e("inner-wrapper"))},[b(t.$slots,"active",{},()=>[e.activeIcon?(a(),o(i(f),{key:0},{default:r(()=>[(a(),o(k(e.activeIcon)))]),_:1})):s("v-if",!0),!e.activeIcon&&e.activeText?(a(),v("span",Ve,E(e.activeText),1)):s("v-if",!0)])],2)):(a(),v("div",{key:0,class:d(i(n).e("inner-wrapper"))},[b(t.$slots,"inactive",{},()=>[e.inactiveIcon?(a(),o(i(f),{key:0},{default:r(()=>[(a(),o(k(e.inactiveIcon)))]),_:1})):s("v-if",!0),!e.inactiveIcon&&e.inactiveText?(a(),v("span",we,E(e.inactiveText),1)):s("v-if",!0)])],2))],2)):s("v-if",!0),x("div",{class:d(i(n).e("action"))},[e.loading?(a(),o(i(f),{key:0,class:d(i(n).is("loading"))},{default:r(()=>[ae(i(te))]),_:1},8,["class"])):l.value?b(t.$slots,"active-action",{key:1},()=>[e.activeActionIcon?(a(),o(i(f),{key:0},{default:r(()=>[(a(),o(k(e.activeActionIcon)))]),_:1})):s("v-if",!0)]):l.value?s("v-if",!0):b(t.$slots,"inactive-action",{key:2},()=>[e.inactiveActionIcon?(a(),o(i(f),{key:0},{default:r(()=>[(a(),o(k(e.inactiveActionIcon)))]),_:1})):s("v-if",!0)])],2)],6),!e.inlinePrompt&&(e.activeIcon||e.activeText||t.$slots.active)?(a(),v("span",{key:1,class:d(q.value)},[b(t.$slots,"active",{},()=>[e.activeIcon?(a(),o(i(f),{key:0},{default:r(()=>[(a(),o(k(e.activeIcon)))]),_:1})):s("v-if",!0),!e.activeIcon&&e.activeText?(a(),v("span",{key:1,"aria-hidden":!l.value},E(e.activeText),9,Ee)):s("v-if",!0)])],2)):s("v-if",!0)],2))}}),Se=Te;const Ae=ve(Se);export{Ae as E};
|