UNPKG

buefy

Version:

Lightweight UI components for Vue.js based on Bulma

3 lines (2 loc) 7.8 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).Dropdown={})}(this,function(e){"use strict";var t={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,i,n,a,s,o,l,r,d){"boolean"!=typeof o&&(r=l,l=o,o=!1);var u,c="function"==typeof i?i.options:i;if(e&&e.render&&(c.render=e.render,c.staticRenderFns=e.staticRenderFns,c._compiled=!0,a&&(c.functional=!0)),n&&(c._scopeId=n),s?(u=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,r(e)),e&&e._registeredComponents&&e._registeredComponents.add(s)},c._ssrRegister=u):t&&(u=o?function(){t.call(this,d(this.$root.$options.shadowRoot))}:function(e){t.call(this,l(e))}),u)if(c.functional){var f=c.render;c.render=function(e,t){return u.call(t),f(e,t)}}else{var h=c.beforeCreate;c.beforeCreate=h?[].concat(h,u):[u]}return i};var n=i({render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"dropdown",class:e.rootClasses},[e.inline?e._e():i("div",{ref:"trigger",staticClass:"dropdown-trigger",attrs:{role:"button","aria-haspopup":"true"},on:{click:e.toggle}},[e._t("trigger")],2),e._v(" "),i("transition",{attrs:{name:e.animation}},[e.isMobileModal?i("div",{directives:[{name:"show",rawName:"v-show",value:e.isActive,expression:"isActive"}],staticClass:"background",attrs:{"aria-hidden":!e.isActive}}):e._e()]),e._v(" "),i("transition",{attrs:{name:e.animation}},[i("div",{directives:[{name:"show",rawName:"v-show",value:!e.disabled&&(e.isActive||e.isHoverable)||e.inline,expression:"(!disabled && (isActive || isHoverable)) || inline"}],ref:"dropdownMenu",staticClass:"dropdown-menu",attrs:{"aria-hidden":!e.isActive}},[i("div",{staticClass:"dropdown-content",attrs:{role:e.ariaRoleMenu}},[e._t("default")],2)])])],1)},staticRenderFns:[]},void 0,{name:"BDropdown",props:{value:{type:[String,Number,Boolean,Object,Array,Function],default:null},disabled:Boolean,hoverable:Boolean,inline:Boolean,position:{type:String,validator:function(e){return["is-top-right","is-top-left","is-bottom-left"].indexOf(e)>-1}},mobileModal:{type:Boolean,default:function(){return t.defaultDropdownMobileModal}},ariaRole:{type:String,default:""},animation:{type:String,default:"fade"},multiple:Boolean,closeOnClick:{type:Boolean,default:!0}},data:function(){return{selected:this.value,isActive:!1,isHoverable:this.hoverable,_isDropdown:!0}},computed:{rootClasses:function(){return[this.position,{"is-disabled":this.disabled,"is-hoverable":this.hoverable,"is-inline":this.inline,"is-active":this.isActive||this.inline,"is-mobile-modal":this.isMobileModal}]},isMobileModal:function(){return this.mobileModal&&!this.inline&&!this.hoverable},ariaRoleMenu:function(){return"menu"===this.ariaRole||"list"===this.ariaRole?this.ariaRole:null}},watch:{value:function(e){this.selected=e},isActive:function(e){this.$emit("active-change",e)}},methods:{selectItem:function(e){var t=this;if(this.multiple){if(this.selected){var i=this.selected.indexOf(e);-1===i?this.selected.push(e):this.selected.splice(i,1)}else this.selected=[e];this.$emit("change",this.selected)}else this.selected!==e&&(this.selected=e,this.$emit("change",this.selected));this.$emit("input",this.selected),this.multiple||(this.isActive=!this.closeOnClick,this.hoverable&&this.closeOnClick&&(this.isHoverable=!1,setTimeout(function(){t.isHoverable=!0},250)))},isInWhiteList:function(e){if(e===this.$refs.dropdownMenu)return!0;if(e===this.$refs.trigger)return!0;if(void 0!==this.$refs.dropdownMenu){var t=this.$refs.dropdownMenu.querySelectorAll("*"),i=!0,n=!1,a=void 0;try{for(var s,o=t[Symbol.iterator]();!(i=(s=o.next()).done);i=!0){if(e===s.value)return!0}}catch(e){n=!0,a=e}finally{try{i||null==o.return||o.return()}finally{if(n)throw a}}}if(void 0!==this.$refs.trigger){var l=this.$refs.trigger.querySelectorAll("*"),r=!0,d=!1,u=void 0;try{for(var c,f=l[Symbol.iterator]();!(r=(c=f.next()).done);r=!0){if(e===c.value)return!0}}catch(e){d=!0,u=e}finally{try{r||null==f.return||f.return()}finally{if(d)throw u}}}return!1},clickedOutside:function(e){this.inline||this.isInWhiteList(e.target)||(this.isActive=!1)},toggle:function(){var e=this;this.disabled||(this.isActive?this.isActive=!this.isActive:this.$nextTick(function(){var t=!e.isActive;e.isActive=t,setTimeout(function(){return e.isActive=t})}))}},created:function(){"undefined"!=typeof window&&document.addEventListener("click",this.clickedOutside)},beforeDestroy:function(){"undefined"!=typeof window&&document.removeEventListener("click",this.clickedOutside)}},void 0,!1,void 0,void 0,void 0);var a,s=i({render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return e.separator?i("hr",{staticClass:"dropdown-divider"}):e.custom||e.hasLink?i("div",{class:e.itemClasses,attrs:{role:e.ariaRoleItem,tabindex:e.focusable?0:null},on:{click:e.selectItem}},[e._t("default")],2):i("a",{staticClass:"dropdown-item",class:e.anchorClasses,attrs:{role:e.ariaRoleItem,tabindex:e.focusable?0:null},on:{click:e.selectItem}},[e._t("default")],2)},staticRenderFns:[]},void 0,{name:"BDropdownItem",props:{value:{type:[String,Number,Boolean,Object,Array,Function],default:null},separator:Boolean,disabled:Boolean,custom:Boolean,focusable:{type:Boolean,default:!0},paddingless:Boolean,hasLink:Boolean,ariaRole:{type:String,default:""}},computed:{anchorClasses:function(){return{"is-disabled":this.$parent.disabled||this.disabled,"is-paddingless":this.paddingless,"is-active":this.isActive}},itemClasses:function(){return{"dropdown-item":!this.hasLink,"is-disabled":this.disabled,"is-paddingless":this.paddingless,"is-active":this.isActive,"has-link":this.hasLink}},ariaRoleItem:function(){return"menuitem"===this.ariaRole||"listitem"===this.ariaRole?this.ariaRole:null},isClickable:function(){return!(this.$parent.disabled||this.separator||this.disabled||this.custom)},isActive:function(){return null!==this.$parent.selected&&(this.$parent.multiple?this.$parent.selected.indexOf(this.value)>=0:this.value===this.$parent.selected)}},methods:{selectItem:function(){this.isClickable&&(this.$parent.selectItem(this.value),this.$emit("click"))}},created:function(){if(!this.$parent.$data._isDropdown)throw this.$destroy(),new Error("You should wrap bDropdownItem on a bDropdown")}},void 0,!1,void 0,void 0,void 0),o=function(e,t){e.component(t.name,t)},l={install:function(e){o(e,n),o(e,s)}};a=l,"undefined"!=typeof window&&window.Vue&&window.Vue.use(a),e.Dropdown=n,e.DropdownItem=s,e.default=l,Object.defineProperty(e,"__esModule",{value:!0})});