primevue
Version:
[](https://opensource.org/licenses/MIT) [](https://badge.fury.io/js/primevue) [ • 1.77 kB
JavaScript
import{ObjectUtils as e}from"primevue/utils";import{openBlock as l,createBlock as c,createVNode as s,mergeProps as t}from"vue";var i={name:"Checkbox",inheritAttrs:!1,emits:["click","update:modelValue","change","input"],props:{value:null,modelValue:null,binary:Boolean,class:null,style:null,trueValue:{type:null,default:!0},falseValue:{type:null,default:!1}},data:()=>({focused:!1}),methods:{onClick(l){if(!this.$attrs.disabled){let c;c=this.binary?this.checked?this.falseValue:this.trueValue:this.checked?this.modelValue.filter((l=>!e.equals(l,this.value))):this.modelValue?[...this.modelValue,this.value]:[this.value],this.$emit("click",l),this.$emit("update:modelValue",c),this.$emit("change",l),this.$emit("input",c),this.$refs.input.focus()}},onFocus(){this.focused=!0},onBlur(){this.focused=!1}},computed:{checked(){return this.binary?this.modelValue===this.trueValue:e.contains(this.value,this.modelValue)},containerClass(){return["p-checkbox p-component",this.class,{"p-checkbox-checked":this.checked,"p-checkbox-disabled":this.$attrs.disabled,"p-checkbox-focused":this.focused}]}}};const u={class:"p-hidden-accessible"};i.render=function(e,i,a,o,h,d){return l(),c("div",{class:d.containerClass,onClick:i[3]||(i[3]=e=>d.onClick(e)),style:a.style},[s("div",u,[s("input",t({ref:"input",type:"checkbox",checked:d.checked,value:a.value},e.$attrs,{onFocus:i[1]||(i[1]=(...e)=>d.onFocus&&d.onFocus(...e)),onBlur:i[2]||(i[2]=(...e)=>d.onBlur&&d.onBlur(...e))}),null,16,["checked","value"])]),s("div",{ref:"box",class:["p-checkbox-box",{"p-highlight":d.checked,"p-disabled":e.$attrs.disabled,"p-focus":h.focused}],role:"checkbox","aria-checked":d.checked},[s("span",{class:["p-checkbox-icon",{"pi pi-check":d.checked}]},null,2)],10,["aria-checked"])],6)};export default i;