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) • 2.74 kB
JavaScript
import e from"primevue/badge";import t from"primevue/icons/spinner";import n from"primevue/ripple";import l from"primevue/basecomponent";import a from"primevue/button/style";import{resolveComponent as i,resolveDirective as o,withDirectives as s,openBlock as d,createElementBlock as r,mergeProps as u,renderSlot as c,normalizeClass as p,createBlock as f,createCommentVNode as g,createElementVNode as y,toDisplayString as b}from"vue";var m={name:"Button",extends:{name:"BaseButton",extends:l,props:{label:{type:String,default:null},icon:{type:String,default:null},iconPos:{type:String,default:"left"},iconClass:{type:String,default:null},badge:{type:String,default:null},badgeClass:{type:String,default:null},badgeSeverity:{type:String,default:null},loading:{type:Boolean,default:!1},loadingIcon:{type:String,default:void 0},link:{type:Boolean,default:!1},severity:{type:String,default:null},raised:{type:Boolean,default:!1},rounded:{type:Boolean,default:!1},text:{type:Boolean,default:!1},outlined:{type:Boolean,default:!1},size:{type:String,default:null},plain:{type:Boolean,default:!1}},style:a,provide:function(){return{$parentInstance:this}}},methods:{getPTOptions:function(e){return this.ptm(e,{context:{disabled:this.disabled}})}},computed:{disabled:function(){return this.$attrs.disabled||""===this.$attrs.disabled||this.loading},defaultAriaLabel:function(){return this.label?this.label+(this.badge?" "+this.badge:""):this.$attrs.ariaLabel},hasIcon:function(){return this.icon||this.$slots.icon}},components:{SpinnerIcon:t,Badge:e},directives:{ripple:n}},v=["aria-label","disabled","data-pc-severity"];m.render=function(e,t,n,l,a,m){var h=i("SpinnerIcon"),x=i("Badge"),S=o("ripple");return s((d(),r("button",u({class:e.cx("root"),type:"button","aria-label":m.defaultAriaLabel,disabled:m.disabled},m.getPTOptions("root"),{"data-pc-name":"button","data-pc-severity":e.severity}),[c(e.$slots,"default",{},(function(){return[e.loading?c(e.$slots,"loadingicon",{key:0,class:p([e.cx("loadingIcon"),e.cx("icon")])},(function(){return[e.loadingIcon?(d(),r("span",u({key:0,class:[e.cx("loadingIcon"),e.cx("icon"),e.loadingIcon]},e.ptm("loadingIcon")),null,16)):(d(),f(h,u({key:1,class:[e.cx("loadingIcon"),e.cx("icon")],spin:""},e.ptm("loadingIcon")),null,16,["class"]))]})):c(e.$slots,"icon",{key:1,class:p([e.cx("icon")])},(function(){return[e.icon?(d(),r("span",u({key:0,class:[e.cx("icon"),e.icon,e.iconClass]},e.ptm("icon")),null,16)):g("",!0)]})),y("span",u({class:e.cx("label")},e.ptm("label")),b(e.label||" "),17),e.badge?(d(),f(x,u({key:2,value:e.badge,class:e.badgeClass,severity:e.badgeSeverity,unstyled:e.unstyled},e.ptm("badge")),null,16,["value","class","severity","unstyled"])):g("",!0)]}))],16,v)),[[S]])};export{m as default};