primevue
Version:
[](https://opensource.org/licenses/MIT) [](https://badge.fury.io/js/primevue) [ • 2.45 kB
JavaScript
this.primevue=this.primevue||{},this.primevue.tristatecheckbox=function(e){"use strict";var l={name:"TriStateCheckbox",emits:["click","update:modelValue","change","keydown","focus","blur"],props:{modelValue:null,inputId:{type:String,default:null},inputProps:{type:null,default:null},disabled:{type:Boolean,default:!1},tabindex:{type:Number,default:0},"aria-labelledby":{type:String,default:null},"aria-label":{type:String,default:null}},data:()=>({focused:!1}),methods:{updateModel(){if(!this.disabled){let e;switch(this.modelValue){case!0:e=!1;break;case!1:e=null;break;case null:e=!0}this.$emit("update:modelValue",e)}},onClick(e){this.updateModel(),this.$emit("click",e),this.$emit("change",e),this.$refs.input.focus()},onKeyDown(e){"Enter"===e.code&&(this.updateModel(),this.$emit("keydown",e),e.preventDefault())},onFocus(e){this.focused=!0,this.$emit("focus",e)},onBlur(e){this.focused=!1,this.$emit("blur",e)}},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",{"p-checkbox-checked":!0===this.modelValue,"p-checkbox-disabled":this.disabled,"p-checkbox-focused":this.focused}]},ariaValueLabel(){return this.modelValue?this.$primevue.config.locale.aria.trueLabel:!1===this.modelValue?this.$primevue.config.locale.aria.falseLabel:this.$primevue.config.locale.aria.nullLabel}}};const a={class:"p-hidden-accessible"},i=["id","checked","tabindex","disabled","aria-labelledby","aria-label"],t={class:"p-sr-only","aria-live":"polite"};return l.render=function(l,s,o,n,c,d){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(d.containerClass),onClick:s[3]||(s[3]=e=>d.onClick(e))},[e.createElementVNode("div",a,[e.createElementVNode("input",e.mergeProps({ref:"input",id:o.inputId,type:"checkbox",checked:!0===o.modelValue,tabindex:o.tabindex,disabled:o.disabled,"aria-labelledby":l.ariaLabelledby,"aria-label":l.ariaLabel,onKeydown:s[0]||(s[0]=e=>d.onKeyDown(e)),onFocus:s[1]||(s[1]=e=>d.onFocus(e)),onBlur:s[2]||(s[2]=e=>d.onBlur(e))},o.inputProps),null,16,i)]),e.createElementVNode("span",t,e.toDisplayString(d.ariaValueLabel),1),e.createElementVNode("div",{ref:"box",class:e.normalizeClass(["p-checkbox-box",{"p-highlight":null!=o.modelValue,"p-disabled":o.disabled,"p-focus":c.focused}])},[e.createElementVNode("span",{class:e.normalizeClass(["p-checkbox-icon",d.icon])},null,2)],2)],2)},l}(Vue);