UNPKG

vxe-pc-ui

Version:
1 lines 2.84 kB
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_xeUtils=_interopRequireDefault(require("xe-utils")),_checkbox=_interopRequireDefault(require("./checkbox"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function createInternalData(){return{}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeCheckboxGroup",props:{modelValue:Array,options:Array,optionProps:Object,disabled:{type:Boolean,default:null},max:{type:[String,Number],default:null},size:{type:String,default:()=>(0,_ui.getConfig)().checkboxGroup.size||(0,_ui.getConfig)().size},defaultConfig:Object},emits:["update:modelValue","change","default-change"],setup(o,e){let{slots:i,emit:l}=e,r=(0,_vue.inject)("$xeForm",null),n=(0,_vue.inject)("xeFormItemInfo",null);var t=_xeUtils.default.uniqueId(),u=(0,_vue.reactive)({});let a=createInternalData();var d=(0,_vue.computed)(()=>{var e=o.disabled;return null===e?!!r&&(r.props.readonly||r.props.disabled):e}),c=(0,_vue.computed)(()=>{var{modelValue:e,max:t}=o;return!!t&&(e?e.length:0)>=_xeUtils.default.toNumber(t)});let s=(0,_vue.computed)(()=>Object.assign({},o.defaultConfig)),p=(0,_vue.computed)(()=>Object.assign({},o.optionProps)),v=(0,_vue.computed)(()=>p.value.label||"label"),_=(0,_vue.computed)(()=>p.value.value||"value"),f=(0,_vue.computed)(()=>p.value.disabled||"disabled"),m={computeIsMaximize:c,computeIsDisabled:d},x={xID:t,props:o,context:e,reactData:u,getComputeMaps:()=>m},b=((0,_ui.useSize)(o),(e,t,u)=>{l(e,(0,_ui.createEvent)(u,{$checkboxGroup:x},t))}),g=e=>{l("update:modelValue",e)},h=e=>{g(e),b("default-change",{value:e},null)};c={dispatchEvent:b};let k=t=>{var u=a.isLoaded,e=s.value;let l=_.value;if(!u){u=e.selectMode;if(0<t.length&&_xeUtils.default.eqNull(o.modelValue)){if("all"===u)(0,_vue.nextTick)(()=>{h(t.map(e=>e[l]))});else if("first"===u||"last"===u){let e=_xeUtils.default[u](t);e&&(0,_vue.nextTick)(()=>{_xeUtils.default.eqNull(o.modelValue)&&h([e[l]])})}a.isLoaded=!0}}return(0,_vue.nextTick)()};Object.assign(x,c,{handleChecked(e,t){var{checked:u,label:l}=e,a=o.modelValue||[],i=a.indexOf(l);u?-1===i&&a.push(l):a.splice(i,1),g(a),x.dispatchEvent("change",Object.assign({},e,{checklist:a,value:a}),t),r&&n&&r.triggerItemEvent(t,n.itemConfig.field,a)}});d=()=>{var e=o.options,t=i.default;let u=_.value,l=v.value,a=f.value;return(0,_vue.h)("div",{class:"vxe-checkbox-group"},t?t({}):e?e.map(e=>(0,_vue.h)(_checkbox.default,{key:e[u],label:e[u],content:e[l],disabled:e[a]})):[])};return(0,_vue.watch)(()=>o.options,e=>{k(e||[])}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=o.options;e&&k(e)})}),(0,_vue.onUnmounted)(()=>{_xeUtils.default.assign(a,createInternalData())}),(0,_vue.provide)("$xeCheckboxGroup",x),x.renderVN=d}});