UNPKG

vxe-pc-ui

Version:
1 lines 2.91 kB
"use strict";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(i,e){const{slots:o,emit:a}=e,n=(0,_vue.inject)("$xeForm",null),r=(0,_vue.inject)("xeFormItemInfo",null);var t=_xeUtils.default.uniqueId(),u=(0,_vue.reactive)({});const s=createInternalData();var l=(0,_vue.computed)(()=>{var e=i["disabled"];return null===e?!!n&&(n.props.readonly||n.props.disabled):e}),c=(0,_vue.computed)(()=>{var{modelValue:e,max:t}=i;return!!t&&(e?e.length:0)>=_xeUtils.default.toNumber(t)});const d=(0,_vue.computed)(()=>Object.assign({},i.defaultConfig)),p=(0,_vue.computed)(()=>Object.assign({},i.optionProps)),v=(0,_vue.computed)(()=>{return p.value.label||"label"}),_=(0,_vue.computed)(()=>{return p.value.value||"value"}),f=(0,_vue.computed)(()=>{return p.value.disabled||"disabled"}),m={computeIsMaximize:c,computeIsDisabled:l},x={xID:t,props:i,context:e,reactData:u,getComputeMaps:()=>m},b=((0,_ui.useSize)(i),(e,t,u)=>{a(e,(0,_ui.createEvent)(u,{$checkboxGroup:x},t))}),g=e=>{a("update:modelValue",e)},h=e=>{g(e),b("default-change",{value:e},null)};c={dispatchEvent:b};const k=e=>{var t=s["isLoaded"],u=d.value;const a=_.value;if(!t){t=u["selectMode"];if(0<e.length&&_xeUtils.default.eqNull(i.modelValue)){if("all"===t)(0,_vue.nextTick)(()=>{h(e.map(e=>e[a]))});else if("first"===t||"last"===t){const l=_xeUtils.default[t](e);l&&(0,_vue.nextTick)(()=>{_xeUtils.default.eqNull(i.modelValue)&&h([l[a]])})}s.isLoaded=!0}}return(0,_vue.nextTick)()};Object.assign(x,c,{handleChecked(e,t){var{checked:u,label:a}=e,l=i.modelValue||[],o=l.indexOf(a);u?-1===o&&l.push(a):l.splice(o,1),g(l),x.dispatchEvent("change",Object.assign({},e,{checklist:l,value:l}),t),n&&r&&n.triggerItemEvent(t,r.itemConfig.field,l)}});l=()=>{var e=i["options"],t=o.default;const u=_.value,a=v.value,l=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[a],disabled:e[l]})):[])};return(0,_vue.watch)(()=>i.options,e=>{k(e||[])}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=i["options"];e&&k(e)})}),(0,_vue.onUnmounted)(()=>{_xeUtils.default.assign(s,createInternalData())}),(0,_vue.provide)("$xeCheckboxGroup",x),x.renderVN=l}});