UNPKG

buefy

Version:

Lightweight UI components for Vue.js (v3) based on Bulma

3 lines (2 loc) 5.19 kB
/*! Buefy v3.0.0 | MIT License | github.com/buefy/buefy */ !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).Button={},e.Vue)}(this,(function(e,n){"use strict";let t={defaultIconPack:"mdi",defaultIconComponent:null,defaultButtonRounded:!1,defaultLinkTags:["a","button","input","router-link","nuxt-link","n-link","RouterLink","NuxtLink","NLink"]};const i={sizes:{default:"mdi-24px","is-small":null,"is-medium":"mdi-36px","is-large":"mdi-48px"},iconPrefix:"mdi-"},o=()=>{const e="fa-";return{sizes:{default:null,"is-small":null,"is-medium":e+"lg","is-large":e+"2x"},iconPrefix:e,internalIcons:{information:"info-circle",alert:"exclamation-triangle","alert-circle":"exclamation-circle","chevron-right":"angle-right","chevron-left":"angle-left","chevron-down":"angle-down","eye-off":"eye-slash","menu-down":"caret-down","menu-up":"caret-up","close-circle":"times-circle"}}};var s=(e,n)=>{const t=e.__vccOpts||e;for(const[e,i]of n)t[e]=i;return t};var c=s(n.defineComponent({name:"BIcon",props:{type:[String,Object],component:String,pack:String,icon:{type:String,required:!0},size:String,customSize:String,customClass:String,both:Boolean},computed:{iconConfig(){return{mdi:i,fa:o(),fas:o(),far:o(),fad:o(),fab:o(),fal:o(),"fa-solid":o(),"fa-regular":o(),"fa-light":o(),"fa-thin":o(),"fa-duotone":o(),"fa-brands":o()}[this.newPack]},iconPrefix(){return this.iconConfig&&this.iconConfig.iconPrefix?this.iconConfig.iconPrefix:""},newIcon(){return`${this.iconPrefix}${this.getEquivalentIconOf(this.icon)}`},newPack(){return this.pack||t.defaultIconPack},newType(){if(!this.type)return;let e=[];if("string"==typeof this.type)e=this.type.split("-");else for(const n in this.type)if(this.type[n]){e=n.split("-");break}if(e.length<=1)return;const[,...n]=e;return`has-text-${n.join("-")}`},newCustomSize(){return this.customSize||this.customSizeByPack},customSizeByPack(){if(this.iconConfig&&this.iconConfig.sizes){if(this.size&&void 0!==this.iconConfig.sizes[this.size])return this.iconConfig.sizes[this.size];if(this.iconConfig.sizes.default)return this.iconConfig.sizes.default}return null},useIconComponent(){return this.component||t.defaultIconComponent}},methods:{getEquivalentIconOf(e){if(!this.both)return e;if(null==this.iconConfig)return e;const n=this.iconConfig;return n&&n.internalIcons&&n.internalIcons[e]?n.internalIcons[e]:e}}}),[["render",function(e,t,i,o,s,c){return n.openBlock(),n.createElementBlock("span",{class:n.normalizeClass(["icon",[e.newType,e.size]])},[e.useIconComponent?(n.openBlock(),n.createBlock(n.resolveDynamicComponent(e.useIconComponent),{key:1,icon:[e.newPack,e.newIcon],size:e.newCustomSize,class:n.normalizeClass([e.customClass])},null,8,["icon","size","class"])):(n.openBlock(),n.createElementBlock("i",{key:0,class:n.normalizeClass([e.newPack,e.newIcon,e.newCustomSize,e.customClass])},null,2))],2)}]]);const l=["button","submit","reset"];var a=n.defineComponent({name:"BButton",components:{BIcon:c},inheritAttrs:!1,props:{type:[String,Object],size:String,label:String,iconPack:String,iconLeft:String,iconRight:String,rounded:{type:Boolean,default:()=>t.defaultButtonRounded},loading:Boolean,outlined:Boolean,expanded:Boolean,inverted:Boolean,focused:Boolean,active:Boolean,hovered:Boolean,selected:Boolean,nativeType:{type:String,default:"button",validator:e=>l.indexOf(e)>=0},tag:{type:[String,Object],default:"button",validator:e=>"object"==typeof e||t.defaultLinkTags.indexOf(e)>=0}},computed:{computedTag(){return void 0!==this.$attrs.disabled&&!1!==this.$attrs.disabled?"button":this.tag},iconSize(){return this.size&&"is-medium"!==this.size?"is-large"===this.size?"is-medium":this.size:"is-small"}}});const r={key:1},u={key:2};var d=s(a,[["render",function(e,t,i,o,s,c){const l=n.resolveComponent("b-icon");return n.openBlock(),n.createBlock(n.resolveDynamicComponent(e.computedTag),n.mergeProps({class:"button"},e.$attrs,{type:"string"==typeof e.computedTag&&["button","input"].includes(e.computedTag)?e.nativeType:void 0,class:[e.size,e.type,{"is-rounded":e.rounded,"is-loading":e.loading,"is-outlined":e.outlined,"is-fullwidth":e.expanded,"is-inverted":e.inverted,"is-focused":e.focused,"is-active":e.active,"is-hovered":e.hovered,"is-selected":e.selected}]}),{default:n.withCtx((()=>[e.iconLeft?(n.openBlock(),n.createBlock(l,{key:0,pack:e.iconPack,icon:e.iconLeft,size:e.iconSize},null,8,["pack","icon","size"])):n.createCommentVNode("v-if",!0),e.label?(n.openBlock(),n.createElementBlock("span",r,n.toDisplayString(e.label),1)):e.$slots.default?(n.openBlock(),n.createElementBlock("span",u,[n.renderSlot(e.$slots,"default")])):n.createCommentVNode("v-if",!0),e.iconRight?(n.openBlock(),n.createBlock(l,{key:3,pack:e.iconPack,icon:e.iconRight,size:e.iconSize},null,8,["pack","icon","size"])):n.createCommentVNode("v-if",!0)])),_:3},16,["type","class"])}]]);const f={install(e){((e,n)=>{const t=n.name;if(null==t)throw new Error("Buefy.registerComponent: missing component name");e.component(t,n)})(e,d)}};e.BButton=d,e.default=f,Object.defineProperty(e,"__esModule",{value:!0})}));