ll-package
Version:
2 lines (1 loc) • 2.28 kB
JavaScript
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const C=require("../../../@babel/runtime/helpers/esm/objectSpread2.js"),a=require("vue"),G=require("./Checkbox.js"),A=require("../form/FormItemContext.js"),F=require("../config-provider/hooks/useConfigInject.js"),I=require("./interface.js"),P=require("./style/index.js"),$=a.defineComponent({compatConfig:{MODE:3},name:"ACheckboxGroup",inheritAttrs:!1,props:I.checkboxGroupProps(),setup(l,S){let{slots:s,attrs:m,emit:b,expose:k}=S;const x=A.useInjectFormItemContext(),{prefixCls:g,direction:y}=F.default("checkbox",l),i=a.computed(()=>`${g.value}-group`),[M,V]=P.default(i),n=a.ref((l.value===void 0?l.defaultValue:l.value)||[]);a.watch(()=>l.value,()=>{n.value=l.value||[]});const c=a.computed(()=>l.options.map(e=>typeof e=="string"||typeof e=="number"?{label:e,value:e}:e)),o=a.ref(Symbol()),v=a.ref(new Map),q=e=>{v.value.delete(e),o.value=Symbol()},w=(e,u)=>{v.value.set(e,u),o.value=Symbol()},h=a.ref(new Map);a.watch(o,()=>{const e=new Map;for(const u of v.value.values())e.set(u,!0);h.value=e});const p=e=>{const u=n.value.indexOf(e.value),r=[...n.value];u===-1?r.push(e.value):r.splice(u,1),l.value===void 0&&(n.value=r);const t=r.filter(d=>h.value.has(d)).sort((d,O)=>{const _=c.value.findIndex(f=>f.value===d),j=c.value.findIndex(f=>f.value===O);return _-j});b("update:value",t),b("change",t),x.onFieldChange()};return a.provide(I.CheckboxGroupContextKey,{cancelValue:q,registerValue:w,toggleOption:p,mergedValue:n,name:a.computed(()=>l.name),disabled:a.computed(()=>l.disabled)}),k({mergedValue:n}),()=>{var e;const{id:u=x.id.value}=l;let r=null;return c.value&&c.value.length>0&&(r=c.value.map(t=>{var d;return a.createVNode(G.default,{prefixCls:g.value,key:t.value.toString(),disabled:"disabled"in t?t.disabled:l.disabled,indeterminate:t.indeterminate,value:t.value,checked:n.value.indexOf(t.value)!==-1,onChange:t.onChange,class:`${i.value}-item`},{default:()=>[s.label!==void 0?(d=s.label)===null||d===void 0?void 0:d.call(s,t):t.label]})})),M(a.createVNode("div",C.default(C.default({},m),{},{class:[i.value,{[`${i.value}-rtl`]:y.value==="rtl"},m.class,V.value],id:u}),[r||((e=s.default)===null||e===void 0?void 0:e.call(s))]))}}});exports.default=$;
;