@gitlab/ui
Version:
GitLab UI Components
76 lines (64 loc) • 2.39 kB
JavaScript
import { BBreadcrumb, BBreadcrumbItem } from 'bootstrap-vue/esm/index.js';
import GlIcon from '../icon/icon';
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
var script = {
components: {
BBreadcrumb,
BBreadcrumbItem,
GlIcon
},
inheritAttrs: false,
props: {
/**
* The breadcrumb items to be displayed as links.
*/
items: {
type: Array,
required: true,
default: () => [{
text: '',
href: ''
}],
validator: links => {
return links.every(link => {
const keys = Object.keys(link);
return keys.includes('text') && (keys.includes('href') || keys.includes('to'));
});
}
}
},
methods: {
isLastItem(items, index) {
return index === items.length - 1;
}
}
};
/* 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-breadcrumbs"},[_vm._t("avatar"),_vm._v(" "),_c('b-breadcrumb',_vm._g(_vm._b({staticClass:"gl-breadcrumb-list"},'b-breadcrumb',_vm.$attrs,false),_vm.$listeners),[_vm._l((_vm.items),function(item,index){return [_c('b-breadcrumb-item',{key:index,staticClass:"gl-breadcrumb-item",attrs:{"text":item.text,"href":item.href,"to":item.to}},[_c('span',[_vm._v(_vm._s(item.text))]),_vm._v(" "),(!_vm.isLastItem(_vm.items, index))?_c('span',{key:(index + " " + (item.text)),staticClass:"gl-breadcrumb-separator",attrs:{"data-testid":"separator"}},[_vm._t("separator",[_c('gl-icon',{attrs:{"name":"chevron-right"}})])],2):_vm._e()])]})],2)],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__;