primevue
Version:
PrimeVue is an open source UI library for Vue featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBloc
2 lines (1 loc) • 3.24 kB
JavaScript
;var e=require("primevue/ripple"),t=require("primevue/utils"),l=require("primevue/basecomponent"),n=require("primevue/togglebutton/style"),i=require("vue");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=a(e),r={name:"ToggleButton",extends:{name:"BaseToggleButton",extends:a(l).default,props:{modelValue:Boolean,onIcon:String,offIcon:String,onLabel:{type:String,default:"Yes"},offLabel:{type:String,default:"No"},iconPos:{type:String,default:"left"},invalid:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},tabindex:{type:Number,default:null},inputId:{type:String,default:null},inputClass:{type:[String,Object],default:null},inputStyle:{type:Object,default:null},ariaLabelledby:{type:String,default:null},ariaLabel:{type:String,default:null}},style:a(n).default,provide:function(){return{$parentInstance:this}}},inheritAttrs:!1,emits:["update:modelValue","change","focus","blur"],methods:{getPTOptions:function(e){return("root"===e?this.ptmi:this.ptm)(e,{context:{active:this.active,disabled:this.disabled}})},onChange:function(e){this.disabled||this.readonly||(this.$emit("update:modelValue",!this.modelValue),this.$emit("change",e))},onFocus:function(e){this.$emit("focus",e)},onBlur:function(e){this.$emit("blur",e)}},computed:{active:function(){return!0===this.modelValue},hasLabel:function(){return t.ObjectUtils.isNotEmpty(this.onLabel)&&t.ObjectUtils.isNotEmpty(this.offLabel)},hasIcon:function(){return this.$slots.icon||this.onIcon&&this.offIcon},label:function(){return this.hasLabel?this.modelValue?this.onLabel:this.offLabel:" "}},directives:{ripple:o.default}},u=["data-p-highlight","data-p-disabled"],s=["id","value","checked","tabindex","disabled","readonly","aria-labelledby","aria-label","aria-invalid"];r.render=function(e,t,l,n,a,o){var r=i.resolveDirective("ripple");return i.openBlock(),i.createElementBlock("div",i.mergeProps({class:e.cx("root")},o.getPTOptions("root"),{"data-p-highlight":o.active,"data-p-disabled":e.disabled}),[i.createElementVNode("input",i.mergeProps({id:e.inputId,type:"checkbox",role:"switch",class:[e.cx("input"),e.inputClass],style:e.inputStyle,value:e.modelValue,checked:o.active,tabindex:e.tabindex,disabled:e.disabled,readonly:e.readonly,"aria-labelledby":e.ariaLabelledby,"aria-label":e.ariaLabel,"aria-invalid":e.invalid||void 0,onFocus:t[0]||(t[0]=function(){return o.onFocus&&o.onFocus.apply(o,arguments)}),onBlur:t[1]||(t[1]=function(){return o.onBlur&&o.onBlur.apply(o,arguments)}),onChange:t[2]||(t[2]=function(){return o.onChange&&o.onChange.apply(o,arguments)})},o.getPTOptions("input")),null,16,s),i.withDirectives((i.openBlock(),i.createElementBlock("div",i.mergeProps({class:e.cx("box")},o.getPTOptions("box")),[i.renderSlot(e.$slots,"icon",{value:e.modelValue,class:i.normalizeClass(e.cx("icon"))},(function(){return[e.onIcon||e.offIcon?(i.openBlock(),i.createElementBlock("span",i.mergeProps({key:0,class:[e.cx("icon"),e.modelValue?e.onIcon:e.offIcon]},o.getPTOptions("icon")),null,16)):i.createCommentVNode("",!0)]})),i.createElementVNode("span",i.mergeProps({class:e.cx("label")},o.getPTOptions("label")),i.toDisplayString(o.label),17)],16)),[[r]])],16,u)},module.exports=r;