@aplus-frontend/ui
Version:
2 lines (1 loc) • 2.78 kB
JavaScript
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),f=require("@aplus-frontend/antdv"),d=require("lodash-unified");require("../../utils/index.js");require("../../hooks/index.js");const V=require("../../hooks/useControllableValue.js"),l=require("../../utils/is.js"),B=e.defineComponent({name:"ApFieldSwitch",__name:"index",props:{mode:{},class:{},style:{},id:{},prefixCls:{},size:{default:"default"},disabled:{type:Boolean,default:void 0},checkedChildren:{},unCheckedChildren:{},tabindex:{},autofocus:{type:Boolean},loading:{type:Boolean,default:void 0},checked:{},checkedValue:{default:!0},unCheckedValue:{default:!1},onChange:{},onKeydown:{},onMouseup:{},"onUpdate:checked":{},onBlur:{},onFocus:{},emptyText:{default:"--"},onAction:{},confirm:{}},emits:["update:checked"],setup(m,{emit:p}){const u=e.useSlots(),n=m,C=p,{value:t,updateValue:i}=V.useControllableValue(n,C,{valuePropName:"checked"}),r=e.ref(!1);async function h(o,a){if(!l.isDef(n.confirm)){if(!l.isDef(n.onAction)){i(o);return}r.value=!0;try{await n.onAction(o,a)&&i(o)}finally{r.value=!1}}}async function g(){const o=e.unref(t)===n.checkedValue?n.unCheckedValue:n.checkedValue;if(!l.isDef(n.onAction)){i(o);return}await n.onAction(o)&&i(o)}const y=e.computed(()=>{const o=e.unref(t);return d.isNil(o)?e.createVNode(e.Fragment,null,[n.emptyText]):o===n.checkedValue?e.createVNode(e.Fragment,null,[n.checkedChildren||u.checkedChildren?.()||`${n.checkedValue}`]):e.createVNode(e.Fragment,null,[n.unCheckedChildren||u.unCheckedChildren?.()||`${n.unCheckedValue}`])}),v=e.computed(()=>l.isDef(n.confirm)?d.isFunction(n.confirm)?n.confirm(e.unref(t)):n.confirm:{});return(o,a)=>o.mode==="read"?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(y.value),{key:0})):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[!e.unref(l.isDef)(o.confirm)||o.disabled?(e.openBlock(),e.createBlock(e.unref(f.Switch),e.mergeProps({key:0},e.unref(d.omit)(n,["onUpdate:checked","emptyText"]),{checked:e.unref(t),loading:o.loading??r.value,onClick:h}),e.createSlots({_:2},[e.renderList(u,(k,c)=>({name:c,fn:e.withCtx(s=>[e.renderSlot(o.$slots,c,e.normalizeProps(e.guardReactiveProps(s||{})))])}))]),1040,["checked","loading"])):(e.openBlock(),e.createBlock(e.unref(f.Popconfirm),e.mergeProps({key:1,disabled:r.value},v.value,{onConfirm:g}),{default:e.withCtx(()=>[e.createVNode(e.unref(f.Switch),e.mergeProps(e.unref(d.omit)(n,["onUpdate:checked","emptyText"]),{checked:e.unref(t),loading:o.loading??r.value,onClick:h}),e.createSlots({_:2},[e.renderList(u,(k,c)=>({name:c,fn:e.withCtx(s=>[e.renderSlot(o.$slots,c,e.normalizeProps(e.guardReactiveProps(s||{})))])}))]),1040,["checked","loading"])]),_:3},16,["disabled"]))],64))}});exports.default=B;