@gitlab/ui
Version:
GitLab UI Components
83 lines (72 loc) • 2.51 kB
JavaScript
import _uniqueId from 'lodash/uniqueId';
import { BCollapse } from 'bootstrap-vue/esm/index.js';
import GlCollapseToggle from '../../../directives/collapse_toggle';
import GlButton from '../button/button';
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
var script = {
name: 'GlAccordionItem',
components: {
BCollapse: BCollapse,
GlButton: GlButton
},
directives: {
GlCollapseToggle: GlCollapseToggle
},
inheritAttrs: false,
props: {
title: {
type: String,
required: true
},
visible: {
type: Boolean,
default: false,
required: false
},
accordion: {
type: String,
default: '',
required: false
}
},
data: function data() {
return {
accordionItemId: _uniqueId('accordion-item-'),
isVisible: this.visible
};
},
computed: {
icon: function icon() {
return this.isVisible ? 'chevron-down' : 'chevron-right';
}
}
};
/* 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('div',{staticClass:"gl-accordion-item"},[_c('gl-button',{directives:[{name:"gl-collapse-toggle",rawName:"v-gl-collapse-toggle",value:(_vm.accordionItemId),expression:"accordionItemId"}],attrs:{"variant":"link","button-text-classes":"gl-display-flex","role":"tab","icon":_vm.icon}},[_vm._v("\n "+_vm._s(_vm.title)+"\n ")]),_vm._v(" "),_c('b-collapse',{staticClass:"gl-mt-3 gl-font-base",attrs:{"id":_vm.accordionItemId,"visible":_vm.isVisible,"accordion":_vm.accordion,"role":"tabpanel"},model:{value:(_vm.isVisible),callback:function ($$v) {_vm.isVisible=$$v;},expression:"isVisible"}},[_vm._t("default")],2)],1)};
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__;