@gitlab/ui
Version:
GitLab UI Components
100 lines (85 loc) • 2.79 kB
JavaScript
import { selectAll, isVisible } from 'bootstrap-vue/esm/utils/dom';
import { BDropdown } from 'bootstrap-vue/esm/index.js';
import GlIcon from '../icon/icon';
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
function filterVisible(els) {
return (els || []).filter(isVisible);
}
var Selector = {
ITEM_SELECTOR: '.dropdown-item:not(.disabled):not([disabled]),.form-control:not(.disabled):not([disabled])'
}; // see https://gitlab.com/gitlab-org/gitlab-ui/merge_requests/130#note_126406721
var ExtendedBDropdown = {
extends: BDropdown,
methods: {
getItems: function getItems() {
return filterVisible(selectAll(Selector.ITEM_SELECTOR, this.$refs.menu));
}
}
};
var script = {
components: {
BDropdown: ExtendedBDropdown,
GlIcon: GlIcon
},
inheritAttrs: false,
props: {
text: {
type: String,
required: false,
default: ''
},
noCaret: {
type: Boolean,
required: false,
default: false
},
split: {
type: Boolean,
required: false,
default: false
}
},
computed: {
renderCaret: function renderCaret() {
if (this.split || this.noCaret) {
return false;
}
return true;
}
},
methods: {
hide: function hide() {
var _this$$refs$dropdown;
(_this$$refs$dropdown = this.$refs.dropdown).hide.apply(_this$$refs$dropdown, arguments);
}
}
};
/* script */
const __vue_script__ = script;
/* template */
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-dropdown',_vm._g(_vm._b({ref:"dropdown",staticClass:"gl-dropdown",attrs:{"split":_vm.split}},'b-dropdown',_vm.$attrs,false),_vm.$listeners),[_vm._t("default"),_vm._v(" "),_vm._t("button-content",[_c('span',{staticClass:"gl-dropdown-toggle-text"},[_vm._v(_vm._s(_vm.text))]),_vm._v(" "),(_vm.renderCaret)?_c('gl-icon',{staticClass:"gl-dropdown-caret",attrs:{"name":"chevron-down","aria-hidden":"true"}}):_vm._e()],{"slot":"button-content"})],2)};
var __vue_staticRenderFns__ = [];
/* style */
const __vue_inject_styles__ = undefined;
/* scoped */
const __vue_scope_id__ = undefined;
/* module identifier */
const __vue_module_identifier__ = undefined;
/* functional template */
const __vue_is_functional_template__ = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
const __vue_component__ = __vue_normalize__(
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
__vue_inject_styles__,
__vue_script__,
__vue_scope_id__,
__vue_is_functional_template__,
__vue_module_identifier__,
false,
undefined,
undefined,
undefined
);
export default __vue_component__;