UNPKG

buefy

Version:

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

3 lines (2 loc) 6.01 kB
/*! Buefy v3.0.2 | MIT License | github.com/buefy/buefy */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Field={},e.Vue)}(this,(function(e,t){"use strict";let s=null;var n=t.defineComponent({name:"BFieldBody",inject:{parent:{from:"BField",default:null}},props:{message:{type:[String,Array]},type:{type:[String,Object]}},render(){let e=!0,s="function"==typeof this.$slots.default?this.$slots.default():this.$slots.default;return null!=s&&1===s.length&&s[0].type===t.Fragment&&(s=s[0].children),t.h("div",{class:"field-body"},{default:()=>null!=s&&s.map((s=>{if(s.type===t.Comment||s.type===t.Text)return s;let n;e&&(n=this.message,e=!1);const l=this.parent;return t.h(l?l.$.type:t.resolveComponent("b-field"),{type:this.type,message:n},(()=>s))}))})}});const l=t.defineComponent({name:"BField",components:{BFieldBody:n},provide(){return{BField:this}},inject:{parent:{from:"BField",default:!1}},props:{type:{type:[String,Object],default:void 0},label:String,labelFor:String,message:{type:[String,Array,Object],default:void 0},grouped:Boolean,groupMultiline:Boolean,position:String,expanded:Boolean,horizontal:Boolean,addons:{type:Boolean,default:!0},customClass:String,labelPosition:{type:String,default:()=>s}},data(){return{newType:this.type,newMessage:this.message,fieldLabelSize:null,numberInputClasses:[],_isField:!0}},computed:{rootClasses(){return[{"is-expanded":this.expanded,"is-horizontal":this.horizontal,"is-floating-in-label":this.hasLabel&&!this.horizontal&&"inside"===this.labelPosition,"is-floating-label":this.hasLabel&&!this.horizontal&&"on-border"===this.labelPosition},this.numberInputClasses]},innerFieldClasses(){return[this.fieldType(),this.newPosition,{"is-grouped-multiline":this.groupMultiline}]},hasInnerField(){return this.grouped||this.groupMultiline||this.hasAddons()},newPosition(){if(void 0===this.position)return;const e=this.position.split("-");if(e.length<1)return;const t=this.grouped?"is-grouped-":"has-addons-";return this.position?t+e[1]:void 0},formattedMessage(){const e=this.parent;if(e&&e.hasInnerField)return"";if("string"==typeof this.newMessage)return[this.newMessage];const t=[];if(Array.isArray(this.newMessage))this.newMessage.forEach((e=>{if("string"==typeof e)t.push(e);else for(const s in e)e[s]&&t.push(s)}));else for(const e in this.newMessage)this.newMessage[e]&&t.push(e);return t.filter((e=>!!e))},hasLabel(){return this.label||this.$slots.label},hasMessage(){const e=this.parent;return(!e||!e.hasInnerField)&&this.newMessage||this.$slots.message}},watch:{type(e){this.newType=e},message(e){JSON.stringify(e)!==JSON.stringify(this.newMessage)&&(this.newMessage=e)},newMessage(e){const t=this.parent;t&&t.hasInnerField&&(t.type||(t.newType=this.newType),t.message||(t.newMessage=e))}},methods:{fieldType(){return this.grouped?"is-grouped":this.hasAddons()?"has-addons":void 0},hasAddons(){let e=0;return this.$slots.default&&(e=this.$slots.default().reduce(((e,s)=>{return(n=s).type!==t.Comment&&n.type!==t.Text&&n.type!==t.Static?e+1:e;var n}),0)),e>1&&this.addons&&!this.horizontal},wrapNumberinput({controlsPosition:e,size:t}){const s=["has-numberinput"];e&&s.push(`has-numberinput-${e}`),t&&s.push(`has-numberinput-${t}`),this.numberInputClasses=s}},mounted(){if(this.horizontal){this.$el.querySelectorAll(".input, .select, .button, .textarea, .b-slider").length>0&&(this.fieldLabelSize="is-normal")}}});const o=["for"],i=["for"],a={key:3,class:"field-body"};var r=((e,t)=>{const s=e.__vccOpts||e;for(const[e,n]of t)s[e]=n;return s})(l,[["render",function(e,s,n,l,r,d){const p=t.resolveComponent("b-field-body"),h=t.resolveComponent("b-field");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["field",e.rootClasses])},[e.horizontal?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(["field-label",[e.customClass,e.fieldLabelSize]])},[e.hasLabel?(t.openBlock(),t.createElementBlock("label",{key:0,for:e.labelFor,class:t.normalizeClass([e.customClass,"label"])},[e.$slots.label?t.renderSlot(e.$slots,"label",{key:0}):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createTextVNode(t.toDisplayString(e.label),1)],64))],10,o)):t.createCommentVNode("v-if",!0)],2)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[e.hasLabel?(t.openBlock(),t.createElementBlock("label",{key:0,for:e.labelFor,class:t.normalizeClass([e.customClass,"label"])},[e.$slots.label?t.renderSlot(e.$slots,"label",{key:0}):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createTextVNode(t.toDisplayString(e.label),1)],64))],10,i)):t.createCommentVNode("v-if",!0)],64)),e.horizontal?(t.openBlock(),t.createBlock(p,{key:2,message:e.newMessage?e.formattedMessage:"",type:e.newType},{default:t.withCtx((()=>[t.renderSlot(e.$slots,"default")])),_:3},8,["message","type"])):e.hasInnerField?(t.openBlock(),t.createElementBlock("div",a,[t.createVNode(h,{addons:!1,type:e.type,class:t.normalizeClass(e.innerFieldClasses)},{default:t.withCtx((()=>[t.renderSlot(e.$slots,"default")])),_:3},8,["type","class"])])):t.renderSlot(e.$slots,"default",{key:4}),e.hasMessage&&!e.horizontal?(t.openBlock(),t.createElementBlock("p",{key:5,class:t.normalizeClass(["help",e.newType])},[e.$slots.message?t.renderSlot(e.$slots,"message",{key:0,messages:e.formattedMessage}):(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:1},t.renderList(e.formattedMessage,((s,n)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createTextVNode(t.toDisplayString(s)+" ",1),n+1<e.formattedMessage.length?(t.openBlock(),t.createElementBlock("br",{key:n})):t.createCommentVNode("v-if",!0)],64)))),256))],2)):t.createCommentVNode("v-if",!0)],2)}]]);const d={install(e){((e,t)=>{const s=t.name;if(null==s)throw new Error("Buefy.registerComponent: missing component name");e.component(s,t)})(e,r)}};e.BField=r,e.default=d,Object.defineProperty(e,"__esModule",{value:!0})}));