t-fighting-design
Version:
Fighting design can quickly build interactive interfaces in vue3 applications, which looks good.
2 lines (1 loc) • 1.93 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),s=require("./index3.js"),m=require("../../checkbox-group/src/index3.js"),f=["value"],k={key:0,class:"f-checkbox__box"},h={class:"f-checkbox__text"},v=e.defineComponent({name:"FCheckbox"}),_=e.defineComponent({...v,props:s.Props,emits:s.Emits,setup(u,{emit:d}){const r=u,l=e.ref(null);(()=>{const{parent:t}=e.getCurrentInstance(),o=t.type.name;o&&o==="FCheckboxGroup"&&(l.value=e.inject(m.checkboxGroupPropsKey))})();const c=e.computed(()=>!!l.value||!1),a=e.computed({get(){var t;return c.value?(t=l.value)==null?void 0:t.modelValue:r.modelValue},set(t){var o,n;if(c.value)!r.disabled&&!((o=l.value)!=null&&o.disabled)&&((n=l.value)==null||n.changeEvent(t));else{if(r.disabled)return;d("update:modelValue",t)}}}),i=e.computed(()=>{const t=a.value;return Array.isArray(t)?t.includes(r.label):typeof t=="boolean"?t:t===r.label}),p=e.computed(()=>{var t,o;return["f-checkbox",{"f-checkbox__selected":i.value,"f-checkbox__bordered":(t=l.value)==null?void 0:t.border,"f-checkbox__disabled":r.disabled||((o=l.value)==null?void 0:o.disabled)}]});return(t,o)=>{var n;return e.openBlock(),e.createElementBlock("label",{role:"checkbox","aria-checked":"false",tabindex:"0","aria-labelledby":"chk1-label",class:e.normalizeClass(e.unref(p))},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":o[0]||(o[0]=b=>e.isRef(a)?a.value=b:null),type:"checkbox",class:"f-checkbox__input",hidden:"",value:t.label},null,8,f),[[e.vModelCheckbox,e.unref(a)]]),(n=l.value)!=null&&n.border?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",k)),e.createElementVNode("span",h,[e.renderSlot(t.$slots,"default"),t.$slots.default?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(t.label),1)],64))])],2)}}});exports.default=_;