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