UNPKG

vxe-pc-ui

Version:
1 lines 2.15 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:"VxeCheckboxButton",props:{modelValue:[String,Number,Boolean],label:{type:[String,Number,Boolean],default:null},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)().checkboxButton.size||(0,_ui.getConfig)().size}},emits:["update:modelValue","change"],setup(a,e){let{slots:i,emit:n}=e,c=(0,_vue.inject)("$xeForm",null),o=(0,_vue.inject)("xeFormItemInfo",null),r=(0,_vue.inject)("$xeCheckboxGroup",null);var t=_xeUtils.default.uniqueId(),u=(0,_vue.reactive)({});let d=(0,_ui.useSize)(a).computeSize,s={xID:t,props:a,context:e,reactData:u},p=(0,_vue.computed)(()=>r?_xeUtils.default.includes(r.props.modelValue,a.label):a.modelValue===a.checkedValue),v=(0,_vue.computed)(()=>{var e,t,u=a.disabled,l=p.value;if(null===u&&r)return{computeIsDisabled:e,computeIsMaximize:t}=r.getComputeMaps(),e=e.value,t=t.value,e||t&&!l;return u}),b=e=>{var t,{checkedValue:u,uncheckedValue:l}=a;v.value||(u={checked:t=e.target.checked,value:t=t?u:l,label:a.label},r?r.handleChecked(u,e):(n("update:modelValue",t),s.dispatchEvent("change",u,e),c&&o&&c.triggerItemEvent(e,o.itemConfig.field,t)))};Object.assign(s,{dispatchEvent(e,t,u){n(e,(0,_ui.createEvent)(u,{$checkboxButton:s},t))}},{});t=()=>{var e=a.label,t=d.value,u=v.value,l=p.value;return(0,_vue.h)("label",{key:e,class:["vxe-checkbox vxe-checkbox--button",{["size--"+t]:t,"is--disabled":u}],title:a.title},[(0,_vue.h)("input",{class:"vxe-checkbox--input",type:"checkbox",disabled:u,checked:l,onChange:b}),(0,_vue.h)("span",{class:"vxe-checkbox--label"},i.default?i.default({}):(0,_utils.getFuncText)(a.content))])};return s.renderVN=t}});