bootstrap-vue-3
Version:
Early (but lovely) implementation of Vue 3, Bootstrap 5 and Typescript
152 lines (143 loc) • 6.27 kB
text/typescript
import {App, Plugin} from 'vue'
import './styles/styles.scss'
import * as Components from './components'
import * as Directives from './directives/exports'
import {createBreadcrumb} from './composables'
import {BootstrapVueOptions} from './types'
// Inject all components into the global @vue/runtime-core
// This allows intellisense in templates w/out direct importing
declare module '@vue/runtime-core' {
export interface GlobalComponents {
BAccordion: typeof Components.BAccordion
BAccordionItem: typeof Components.BAccordionItem
BAlert: typeof Components.BAlert
BAvatar: typeof Components.BAvatar
BAvatarGroup: typeof Components.BAvatarGroup
BBadge: typeof Components.BBadge
BBreadcrumb: typeof Components.BBreadcrumb
BBreadcrumbItem: typeof Components.BBreadcrumbItem
BButton: typeof Components.BButton
BButtonGroup: typeof Components.BButtonGroup
BButtonToolbar: typeof Components.BButtonToolbar
BCard: typeof Components.BCard
BCardBody: typeof Components.BCardBody
BCardFooter: typeof Components.BCardFooter
BCardGroup: typeof Components.BCardGroup
BCardHeader: typeof Components.BCardHeader
BCardImg: typeof Components.BCardImg
BCardSubtitle: typeof Components.BCardSubtitle
BCardText: typeof Components.BCardText
BCardTitle: typeof Components.BCardTitle
BCarousel: typeof Components.BCarousel
BCarouselSlide: typeof Components.BCarouselSlide
BCloseButton: typeof Components.BCloseButton
BCol: typeof Components.BCol
BCollapse: typeof Components.BCollapse
BContainer: typeof Components.BContainer
BDropdown: typeof Components.BDropdown
BDropdownDivider: typeof Components.BDropdownDivider
BDropdownForm: typeof Components.BDropdownForm
BDropdownGroup: typeof Components.BDropdownGroup
BDropdownHeader: typeof Components.BDropdownHeader
BDropdownItem: typeof Components.BDropdownItem
BDropdownItemButton: typeof Components.BDropdownItemButton
BDropdownText: typeof Components.BDropdownText
BForm: typeof Components.BForm
BFormCheckbox: typeof Components.BFormCheckbox
BFormCheckboxGroup: typeof Components.BFormCheckboxGroup
BFormFloatingLabel: typeof Components.BFormFloatingLabel
BFormGroup: typeof Components.BFormGroup
BFormInput: typeof Components.BFormInput
BFormInvalidFeedback: typeof Components.BFormInvalidFeedback
BFormRadio: typeof Components.BFormRadio
BFormRadioGroup: typeof Components.BFormRadioGroup
BFormRow: typeof Components.BFormRow
BFormSelect: typeof Components.BFormSelect
BFormSelectOption: typeof Components.BFormSelectOption
BFormSelectOptionGroup: typeof Components.BFormSelectOptionGroup
BFormText: typeof Components.BFormText
BFormTextarea: typeof Components.BFormTextarea
BFormTag: typeof Components.BFormTag
BFormTags: typeof Components.BFormTags
BFormSpinButton: typeof Components.BFormSpinButton
BFormValidFeedback: typeof Components.BFormValidFeedback
BImg: typeof Components.BImg
BInputGroup: typeof Components.BInputGroup
BInputGroupAddon: typeof Components.BInputGroupAddon
BInputGroupAppend: typeof Components.BInputGroupAppend
BInputGroupPrepend: typeof Components.BInputGroupPrepend
BInputGroupText: typeof Components.BInputGroupText
BLink: typeof Components.BLink
BListGroup: typeof Components.BListGroup
BListGroupItem: typeof Components.BListGroupItem
BModal: typeof Components.BModal
BNav: typeof Components.BNav
BNavForm: typeof Components.BNavForm
BNavText: typeof Components.BNavText
BNavbar: typeof Components.BNavbar
BNavbarBrand: typeof Components.BNavbarBrand
BNavbarNav: typeof Components.BNavbarNav
BNavbarToggle: typeof Components.BNavbarToggle
BNavItem: typeof Components.BNavItem
BNavItemDropdown: typeof Components.BNavItemDropdown
BOffcanvas: typeof Components.BOffcanvas
BOverlay: typeof Components.BOverlay
BPagination: typeof Components.BPagination
BPlaceholder: typeof Components.BPlaceholder
BPlaceholderButton: typeof Components.BPlaceholderButton
BPlaceholderCard: typeof Components.BPlaceholderCard
BPlaceholderTable: typeof Components.BPlaceholderTable
BPlaceholderWrapper: typeof Components.BPlaceholderWrapper
BPopover: typeof Components.BPopover
BProgress: typeof Components.BProgress
BProgressBar: typeof Components.BProgressBar
BRow: typeof Components.BRow
BSkeleton: typeof Components.BSkeleton
BSkeletonIcon: typeof Components.BSkeletonIcon
BSkeletonTable: typeof Components.BSkeletonTable
BSkeletonWrapper: typeof Components.BSkeletonWrapper
BSpinner: typeof Components.BSpinner
BTab: typeof Components.BTab
BTable: typeof Components.BTable
BTableSimple: typeof Components.BTableSimple
BTbody: typeof Components.BTbody
BTd: typeof Components.BTd
BTfoot: typeof Components.BTfoot
BTh: typeof Components.BTh
BThead: typeof Components.BThead
BTr: typeof Components.BTr
BToast: typeof Components.BToast
BToaster: typeof Components.BToaster
BToastContainer: typeof Components.BToastContainer
BTabs: typeof Components.BTabs
BTransition: typeof Components.BTransition
BToastPlugin: typeof Components.BToastPlugin
}
}
// Main app plugin
const plugin: Plugin = {
// TODO: use options in the future
// eslint-disable-next-line @typescript-eslint/no-unused-vars
install(app: App, options: BootstrapVueOptions = {}) {
Object.entries(Components).forEach(([name, component]) => {
app.component(name, component)
})
Object.entries(Directives).forEach(([name, component]) => {
app.directive(name, component)
})
createBreadcrumb(app)
},
}
export * from './components'
export * as Components from './components'
export * from './directives/exports'
export * as Directives from './directives/exports'
export * from './composables/exports'
export * as Composables from './composables/exports'
export * from './utils/exports'
export * as Utils from './utils/exports'
export * from './types/exports'
export * as Types from './types/exports'
export {useToast} from './components/BToast/'
export {plugin as BootstrapVue3}
export default plugin