UNPKG

buefy

Version:

Lightweight UI components for Vue.js based on Bulma

3 lines (2 loc) 13.9 kB
/*! Buefy v0.8.2 | MIT License | github.com/buefy/buefy */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).Numberinput={})}(this,function(e){"use strict";function t(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var n={defaultContainerElement:null,defaultIconPack:"mdi",defaultIconComponent:null,defaultDialogConfirmText:null,defaultDialogCancelText:null,defaultSnackbarDuration:3500,defaultSnackbarPosition:null,defaultToastDuration:2e3,defaultToastPosition:null,defaultNotificationDuration:2e3,defaultNotificationPosition:null,defaultTooltipType:"is-primary",defaultTooltipAnimated:!1,defaultTooltipDelay:0,defaultInputAutocomplete:"on",defaultDateFormatter:null,defaultDateParser:null,defaultDateCreator:null,defaultDayNames:null,defaultMonthNames:null,defaultFirstDayOfWeek:null,defaultUnselectableDaysOfWeek:null,defaultTimeFormatter:null,defaultTimeParser:null,defaultModalCanCancel:["escape","x","outside","button"],defaultModalScroll:null,defaultDatepickerMobileNative:!0,defaultTimepickerMobileNative:!0,defaultNoticeQueue:!0,defaultInputHasCounter:!0,defaultTaginputHasCounter:!0,defaultUseHtml5Validation:!0,defaultDropdownMobileModal:!0,defaultFieldLabelPosition:null,defaultDatepickerYearsRange:[-100,3],defaultDatepickerNearbyMonthDays:!0,defaultDatepickerNearbySelectableMonthDays:!1,defaultDatepickerShowWeekNumber:!1};var i=function(e,t,n,i,s,a,o,r,u,l){"boolean"!=typeof o&&(u=r,r=o,o=!1);var c,d="function"==typeof n?n.options:n;if(e&&e.render&&(d.render=e.render,d.staticRenderFns=e.staticRenderFns,d._compiled=!0,s&&(d.functional=!0)),i&&(d._scopeId=i),a?(c=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,u(e)),e&&e._registeredComponents&&e._registeredComponents.add(a)},d._ssrRegister=c):t&&(c=o?function(){t.call(this,l(this.$root.$options.shadowRoot))}:function(e){t.call(this,r(e))}),c)if(d.functional){var p=d.render;d.render=function(e,t){return c.call(t),p(e,t)}}else{var f=d.beforeCreate;d.beforeCreate=f?[].concat(f,c):[c]}return n};var s=i({render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("span",{staticClass:"icon",class:[e.newType,e.size]},[e.useIconComponent?n(e.useIconComponent,{tag:"component",class:[e.customClass],attrs:{icon:[e.newPack,e.newIcon],size:e.newCustomSize}}):n("i",{class:[e.newPack,e.newIcon,e.newCustomSize,e.customClass]})],1)},staticRenderFns:[]},void 0,{name:"BIcon",props:{type:[String,Object],pack:String,icon:String,size:String,customSize:String,customClass:String,both:Boolean},computed:{newIcon:function(){return"mdi"===this.newPack?"".concat(this.newPack,"-").concat(this.icon):this.addFAPrefix(this.getEquivalentIconOf(this.icon))},newPack:function(){return this.pack||n.defaultIconPack},newType:function(){if(this.type){var e=[];if("string"==typeof this.type)e=this.type.split("-");else for(var t in this.type)if(this.type[t]){e=t.split("-");break}if(!(e.length<=1))return"has-text-".concat(e[1])}},newCustomSize:function(){return this.customSize||this.customSizeByPack},customSizeByPack:function(){var e="mdi"===this.newPack?"mdi-24px":this.addFAPrefix("lg"),t="mdi"===this.newPack?"mdi-36px":this.addFAPrefix("2x"),n="mdi"===this.newPack?"mdi-48px":this.addFAPrefix("3x");switch(this.size){case"is-small":return;case"is-medium":return t;case"is-large":return n;default:return e}},useIconComponent:function(){return n.defaultIconComponent}},methods:{addFAPrefix:function(e){return this.useIconComponent?e:"fa-".concat(e)},getEquivalentIconOf:function(e){if(!this.both)return e;switch(e){case"check":return"check";case"information":return"info-circle";case"check-circle":return"check-circle";case"alert":return"exclamation-triangle";case"alert-circle":return"exclamation-circle";case"arrow-up":return"arrow-up";case"chevron-right":return"angle-right";case"chevron-left":return"angle-left";case"chevron-down":return"angle-down";case"eye":return"eye";case"eye-off":return"eye-slash";case"menu-down":return"caret-down";case"menu-up":return"caret-up";default:return e}}}},void 0,!1,void 0,void 0,void 0),a={props:{size:String,expanded:Boolean,loading:Boolean,rounded:Boolean,icon:String,iconPack:String,autocomplete:String,maxlength:[Number,String],useHtml5Validation:{type:Boolean,default:function(){return n.defaultUseHtml5Validation}},validationMessage:String},data:function(){return{isValid:!0,isFocused:!1,newIconPack:this.iconPack||n.defaultIconPack}},computed:{parentField:function(){for(var e=this.$parent,t=0;t<3;t++)e&&!e.$data._isField&&(e=e.$parent);return e},statusType:function(){if(this.parentField&&this.parentField.newType){if("string"==typeof this.parentField.newType)return this.parentField.newType;for(var e in this.parentField.newType)if(this.parentField.newType[e])return e}},statusMessage:function(){if(this.parentField)return this.parentField.newMessage},iconSize:function(){switch(this.size){case"is-small":return this.size;case"is-medium":return;case"is-large":return"mdi"===this.newIconPack?"is-medium":""}}},methods:{focus:function(){var e=this;void 0!==this.$data._elementRef&&this.$nextTick(function(){var t=e.$el.querySelector(e.$data._elementRef);t&&t.focus()})},onBlur:function(e){this.isFocused=!1,this.$emit("blur",e),this.checkHtml5Validity()},onFocus:function(e){this.isFocused=!0,this.$emit("focus",e)},checkHtml5Validity:function(){var e=this;if(this.useHtml5Validation&&void 0!==this.$refs[this.$data._elementRef]){var t=this.$el.querySelector(this.$data._elementRef),n=null,i=null,s=!0;return t.checkValidity()||(n="is-danger",i=this.validationMessage||t.validationMessage,s=!1),this.isValid=s,this.$nextTick(function(){e.parentField&&(e.parentField.type||(e.parentField.newType=n),e.parentField.message||(e.parentField.newMessage=i))}),this.isValid}}}};var o,r=i({render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"control",class:e.rootClasses},["textarea"!==e.type?n("input",e._b({ref:"input",staticClass:"input",class:[e.inputClasses,e.customClass],attrs:{type:e.newType,autocomplete:e.newAutocomplete,maxlength:e.maxlength},domProps:{value:e.computedValue},on:{input:e.onInput,blur:e.onBlur,focus:e.onFocus}},"input",e.$attrs,!1)):n("textarea",e._b({ref:"textarea",staticClass:"textarea",class:[e.inputClasses,e.customClass],attrs:{maxlength:e.maxlength},domProps:{value:e.computedValue},on:{input:e.onInput,blur:e.onBlur,focus:e.onFocus}},"textarea",e.$attrs,!1)),e._v(" "),e.icon?n("b-icon",{staticClass:"is-left",attrs:{icon:e.icon,pack:e.iconPack,size:e.iconSize}}):e._e(),e._v(" "),e.loading||!e.passwordReveal&&!e.statusTypeIcon?e._e():n("b-icon",{staticClass:"is-right",class:{"is-clickable":e.passwordReveal},attrs:{icon:e.passwordReveal?e.passwordVisibleIcon:e.statusTypeIcon,pack:e.iconPack,size:e.iconSize,type:e.passwordReveal?"is-primary":e.statusType,both:""},nativeOn:{click:function(t){e.togglePasswordVisibility(t)}}}),e._v(" "),e.maxlength&&e.hasCounter&&"number"!==e.type?n("small",{staticClass:"help counter",class:{"is-invisible":!e.isFocused}},[e._v("\n "+e._s(e.valueLength)+" / "+e._s(e.maxlength)+"\n ")]):e._e()],1)},staticRenderFns:[]},void 0,{name:"BInput",components:t({},s.name,s),mixins:[a],inheritAttrs:!1,props:{value:[Number,String],type:{type:String,default:"text"},passwordReveal:Boolean,hasCounter:{type:Boolean,default:function(){return n.defaultInputHasCounter}},customClass:{type:String,default:""}},data:function(){return{newValue:this.value,newType:this.type,newAutocomplete:this.autocomplete||n.defaultInputAutocomplete,isPasswordVisible:!1,_elementRef:"textarea"===this.type?"textarea":"input"}},computed:{computedValue:{get:function(){return this.newValue},set:function(e){this.newValue=e,this.$emit("input",e),!this.isValid&&this.checkHtml5Validity()}},rootClasses:function(){return[this.iconPosition,this.size,{"is-expanded":this.expanded,"is-loading":this.loading,"is-clearfix":!this.hasMessage}]},inputClasses:function(){return[this.statusType,this.size,{"is-rounded":this.rounded}]},hasIconRight:function(){return this.passwordReveal||this.loading||this.statusTypeIcon},iconPosition:function(){return this.icon&&this.hasIconRight?"has-icons-left has-icons-right":!this.icon&&this.hasIconRight?"has-icons-right":this.icon?"has-icons-left":void 0},statusTypeIcon:function(){switch(this.statusType){case"is-success":return"check";case"is-danger":return"alert-circle";case"is-info":return"information";case"is-warning":return"alert"}},hasMessage:function(){return!!this.statusMessage},passwordVisibleIcon:function(){return this.isPasswordVisible?"eye-off":"eye"},valueLength:function(){return"string"==typeof this.computedValue?this.computedValue.length:"number"==typeof this.computedValue?this.computedValue.toString().length:0}},watch:{value:function(e){this.newValue=e}},methods:{togglePasswordVisibility:function(){var e=this;this.isPasswordVisible=!this.isPasswordVisible,this.newType=this.isPasswordVisible?"text":"password",this.$nextTick(function(){e.$refs.input.focus()})},onInput:function(e){var t=this;this.$nextTick(function(){e.target&&(t.computedValue=e.target.value)})}}},void 0,!1,void 0,void 0,void 0);var u,l=i({render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"b-numberinput field",class:e.fieldClasses},[n("p",{staticClass:"control",on:{mouseup:function(t){e.onStopLongPress(!1)},mouseleave:function(t){e.onStopLongPress(!1)},touchend:function(t){e.onStopLongPress(!1)},touchcancel:function(t){e.onStopLongPress(!1)}}},[n("button",{staticClass:"button",class:e.buttonClasses,attrs:{type:"button",disabled:e.disabled||e.disabledMin},on:{mousedown:function(t){e.onStartLongPress(t,!1)},touchstart:function(t){t.preventDefault(),e.onStartLongPress(t,!1)},click:function(t){e.onControlClick(t,!1)}}},[n("b-icon",{attrs:{icon:"minus",pack:e.iconPack,size:e.iconSize}})],1)]),e._v(" "),n("b-input",e._b({ref:"input",attrs:{type:"number",step:e.newStep,max:e.max,min:e.min,size:e.size,disabled:e.disabled,readonly:!e.editable,loading:e.loading,rounded:e.rounded,icon:e.icon,"icon-pack":e.iconPack,autocomplete:e.autocomplete,expanded:e.expanded,"use-html5-validation":e.useHtml5Validation},on:{focus:function(t){e.$emit("focus",t)},blur:function(t){e.$emit("blur",t)}},model:{value:e.computedValue,callback:function(t){e.computedValue=e._n(t)},expression:"computedValue"}},"b-input",e.$attrs,!1)),e._v(" "),n("p",{staticClass:"control",on:{mouseup:function(t){e.onStopLongPress(!0)},mouseleave:function(t){e.onStopLongPress(!0)},touchend:function(t){e.onStopLongPress(!0)},touchcancel:function(t){e.onStopLongPress(!0)}}},[n("button",{staticClass:"button",class:e.buttonClasses,attrs:{type:"button",disabled:e.disabled||e.disabledMax},on:{mousedown:function(t){e.onStartLongPress(t,!0)},touchstart:function(t){t.preventDefault(),e.onStartLongPress(t,!0)},click:function(t){e.onControlClick(t,!0)}}},[n("b-icon",{attrs:{icon:"plus",pack:e.iconPack,size:e.iconSize}})],1)])],1)},staticRenderFns:[]},void 0,{name:"BNumberinput",components:(o={},t(o,s.name,s),t(o,r.name,r),o),mixins:[a],inheritAttrs:!1,props:{value:Number,min:[Number,String],max:[Number,String],step:[Number,String],disabled:Boolean,type:{type:String,default:"is-primary"},editable:{type:Boolean,default:!0},controlsRounded:{type:Boolean,default:!1},controlsPosition:String},data:function(){return{newValue:isNaN(this.value)?parseFloat(this.min)||0:this.value,newStep:this.step||1,_elementRef:"input"}},computed:{computedValue:{get:function(){return this.newValue},set:function(e){var t=e;""===e&&(t=parseFloat(this.min)||0),this.newValue=t,this.$emit("input",t),!this.isValid&&this.$refs.input.checkHtml5Validity()}},fieldClasses:function(){return[{"has-addons":"compact"===this.controlsPosition},{"is-grouped":"compact"!==this.controlsPosition}]},buttonClasses:function(){return[this.type,this.size,{"is-rounded":this.controlsRounded}]},minNumber:function(){return"string"==typeof this.min?parseFloat(this.min):this.min},maxNumber:function(){return"string"==typeof this.max?parseFloat(this.max):this.max},stepNumber:function(){return"string"==typeof this.newStep?parseFloat(this.newStep):this.newStep},disabledMin:function(){return this.computedValue-this.stepNumber<this.minNumber},disabledMax:function(){return this.computedValue+this.stepNumber>this.maxNumber},stepDecimals:function(){var e=this.stepNumber.toString(),t=e.indexOf(".");return t>=0?e.substring(t+1).length:0}},watch:{value:function(e){this.newValue=e}},methods:{decrement:function(){if(void 0===this.minNumber||this.computedValue-this.stepNumber>=this.minNumber){var e=this.computedValue-this.stepNumber;this.computedValue=parseFloat(e.toFixed(this.stepDecimals))}},increment:function(){if(void 0===this.maxNumber||this.computedValue+this.stepNumber<=this.maxNumber){var e=this.computedValue+this.stepNumber;this.computedValue=parseFloat(e.toFixed(this.stepDecimals))}},onControlClick:function(e,t){0===e.detail&&"click"!==e.type&&(t?this.increment():this.decrement())},onStartLongPress:function(e,t){var n=this;0!==e.button&&"touchstart"!==e.type||(this._$intervalTime=new Date,clearInterval(this._$intervalRef),this._$intervalRef=setInterval(function(){t?n.increment():n.decrement()},250))},onStopLongPress:function(e){this._$intervalRef&&(new Date-this._$intervalTime<250&&(e?this.increment():this.decrement()),clearInterval(this._$intervalRef),this._$intervalRef=null)}}},void 0,!1,void 0,void 0,void 0),c={install:function(e){!function(e,t){e.component(t.name,t)}(e,l)}};u=c,"undefined"!=typeof window&&window.Vue&&window.Vue.use(u),e.Numberinput=l,e.default=c,Object.defineProperty(e,"__esModule",{value:!0})});