UNPKG

ant-design-x-vue-next

Version:

Ant Design X for Vue — community continuation aligned with @ant-design/x

2 lines (1 loc) 2.23 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue"),P=require("ant-design-vue"),g=require("../chunks/module-chunk.js"),A=require("../_util/hooks/use-x-component-config.js");require("../x-provider/index.js");const $=require("./style/index.js"),X=require("../x-provider/hooks/use-x-provider-context.js"),M=t.defineComponent({name:"AXSenderSwitch",inheritAttrs:!1,__name:"SenderSwitch",props:{prefixCls:{default:void 0},rootClassName:{default:""},checkedChildren:{type:[String,Boolean],default:void 0},unCheckedChildren:{type:[String,Boolean],default:void 0},value:{type:Boolean,default:void 0},defaultValue:{type:Boolean,default:!1},icon:{type:[String,Boolean],default:void 0},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},classNames:{default:()=>({})},styles:{default:()=>({})}},emits:["change","update:value"],setup(y,{expose:_,emit:S}){const r=t.ref(),e=y,i=S,c=t.useAttrs(),o=t.useSlots(),f=A.default("sender"),{direction:k,getPrefixCls:x}=X.default(),d=x("sender",e.prefixCls),n=`${d}-switch`,[w,B,N]=$.default(d),u=t.ref(e.defaultValue);t.watch(()=>e.value,s=>{s!==void 0&&(u.value=s)},{immediate:!0});const a=t.computed(()=>e.value!==void 0?e.value:u.value),q=t.computed(()=>{var s,l;return g.classnames(d,n,c.class,e.rootClassName,(s=f.value.classNames)==null?void 0:s.switch,(l=e.classNames)==null?void 0:l.root,B.value,N,{[`${n}-checked`]:a.value,[`${n}-rtl`]:k.value==="rtl"})}),V=()=>{if(e.disabled||e.loading)return;const s=!a.value;e.value===void 0&&(u.value=s),i("update:value",s),i("change",s)};return _({nativeElement:r}),()=>{var h,m,p,v;const{class:s,style:l,...b}=c;return w(t.createVNode("div",t.mergeProps(b,{ref:r,class:q.value,style:{...l,...(h=f.value.styles)==null?void 0:h.switch,...(m=e.styles)==null?void 0:m.root}}),[t.createVNode(P.Button,{disabled:e.disabled,loading:e.loading,class:g.classnames(`${n}-content`,(p=e.classNames)==null?void 0:p.content),style:(v=e.styles)==null?void 0:v.content,type:a.value?"primary":"default",ghost:!0,icon:e.icon,onClick:V},{default:()=>{var C;return[a.value?e.checkedChildren:e.unCheckedChildren,(C=o.default)==null?void 0:C.call(o)]}})]))}}});exports.default=M;