primevue
Version:
[](https://opensource.org/licenses/MIT) [](https://badge.fury.io/js/primevue) [ • 1.55 kB
JavaScript
import{openBlock as e,createElementBlock as c,normalizeClass as s,normalizeStyle as l,createElementVNode as t,mergeProps as i}from"vue";var o={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 a={class:"p-hidden-accessible"},u=["checked"],n=["aria-checked"];o.render=function(o,d,h,r,p,k){return e(),c("div",{class:s(k.containerClass),onClick:d[2]||(d[2]=e=>k.onClick(e)),style:l(h.style)},[t("div",a,[t("input",i({ref:"input",type:"checkbox",checked:!0===h.modelValue},o.$attrs,{onFocus:d[0]||(d[0]=e=>k.onFocus()),onBlur:d[1]||(d[1]=e=>k.onBlur())}),null,16,u)]),t("div",{ref:"box",class:s(["p-checkbox-box",{"p-highlight":null!=h.modelValue,"p-disabled":o.$attrs.disabled,"p-focus":p.focused}]),role:"checkbox","aria-checked":!0===h.modelValue},[t("span",{class:s(["p-checkbox-icon",k.icon])},null,2)],10,n)],6)};export{o as default};