UNPKG

vxe-pc-ui

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