UNPKG

vxe-pc-ui

Version:
1 lines 2.47 kB
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_ui=require("../../ui");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeCheckbox",props:{modelValue:[String,Number,Boolean],label:{type:[String,Number],default:null},indeterminate:Boolean,title:[String,Number],checkedValue:{type:[String,Number,Boolean],default:!0},uncheckedValue:{type:[String,Number,Boolean],default:!1},content:[String,Number],disabled:{type:Boolean,default:null},size:{type:String,default:()=>(0,_ui.getConfig)().checkbox.size||(0,_ui.getConfig)().size}},emits:["update:modelValue","change"],setup(a,e){let{slots:n,emit:i}=e,c=(0,_vue.inject)("$xeForm",null),r=(0,_vue.inject)("xeFormItemInfo",null),o=(0,_vue.inject)("$xeCheckboxGroup",null);var t=_xeUtils.default.uniqueId(),u=(0,_vue.reactive)({});let l={xID:t,props:a,context:e,reactData:u},d={},s=(0,_ui.useSize)(a).computeSize,p=(0,_vue.computed)(()=>o?_xeUtils.default.includes(o.props.modelValue,a.label):a.modelValue===a.checkedValue),_=(0,_vue.computed)(()=>{var e,t,u=a.disabled,l=p.value;if(null===u&&o)return{computeIsDisabled:e,computeIsMaximize:t}=o.getComputeMaps(),e=e.value,t=t.value,e||t&&!l;return u}),v=e=>{var t,{checkedValue:u,uncheckedValue:l}=a;_.value||(u={checked:t=e.target.checked,value:t=t?u:l,label:a.label},o?o.handleChecked(u,e):(i("update:modelValue",t),d.dispatchEvent("change",u,e),c&&r&&c.triggerItemEvent(e,r.itemConfig.field,t)))};d={dispatchEvent:(e,t,u)=>{i(e,(0,_ui.createEvent)(u,{$checkbox:l},t))}},Object.assign(l,d);return l.renderVN=()=>{var e=a.label,t=s.value,u=_.value,l=p.value,i=!l&&a.indeterminate;return(0,_vue.h)("label",{key:e,class:["vxe-checkbox vxe-checkbox--default",{["size--"+t]:t,"is--indeterminate":i,"is--disabled":u,"is--checked":l}],title:a.title},[(0,_vue.h)("input",{class:"vxe-checkbox--input",type:"checkbox",disabled:u,checked:l,onChange:v}),(0,_vue.h)("span",{class:["vxe-checkbox--icon",i?(0,_ui.getIcon)().CHECKBOX_INDETERMINATE:l?(0,_ui.getIcon)().CHECKBOX_CHECKED:u?(0,_ui.getIcon)().CHECKBOX_DISABLED_UNCHECKED:(0,_ui.getIcon)().CHECKBOX_UNCHECKED]}),(0,_vue.h)("span",{class:"vxe-checkbox--label"},n.default?n.default({}):(0,_utils.getFuncText)(a.content))])},l},render(){return this.renderVN()}});