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