app/src/plugins/bootstrap-vue.tstypescript
import "bootstrap/dist/css/bootstrap.css";
import "bootstrap-vue-next/dist/bootstrap-vue-next.css";
import {
BContainer,
BButton,
BButtonGroup,
BForm,
BFormInput,
BFormGroup,
BFormSelect,
BFormCheckbox,
BFormCheckboxGroup,
BFormTextarea,
BFormRadio,
BFormRadioGroup,
BInput,
BModal,
BTable,
BCard,
BAlert,
BRow,
BCol,
BNav,
BNavItem,
BNavbar,
BNavbarBrand,
BNavbarToggle,
BNavItemDropdown,
BNavbarNav,
BDropdown,
BDropdownText,
BDropdownDivider,
BDropdownGroup,
BDropdownItem,
BCollapse,
BBadge,
BCardTitle,
BCardSubtitle,
BAvatar,
BTab,
BTabs,
BPlaceholder,
BPlaceholderWrapper,
BTableSimple,
BSpinner,
BCardText,
BCardHeader,
BCardBody,
BCardGroup,
BListGroupItem,
BListGroup,
BTh,
BTr,
BThead,
BTd,
BTbody,
BTooltip,
BOverlay,
BProgress,
vBTooltip,
vBToggle,
createBootstrap,
BApp,
BInputGroupText,
BInputGroup,
BAccordion,
BAccordionItem,
BPopover,
BLink,
BPlaceholderButton,
vBModal,
} from "bootstrap-vue-next";
import type { App, Component, Directive } from "vue";
const components: Record<string, Component | object> = {
BApp,
BContainer,
BButton,
BButtonGroup,
BForm,
BFormInput,
BFormGroup,
BFormSelect,
BFormCheckbox,
BFormCheckboxGroup,
BFormTextarea,
BFormRadio,
BFormRadioGroup,
BInput,
BModal,
BTable,
BCard,
BCardText,
BCardHeader,
BCardBody,
BCardGroup,
BAlert,
BRow,
BCol,
BNav,
BNavItem,
BNavbar,
BNavbarBrand,
BNavbarToggle,
BNavItemDropdown,
BNavbarNav,
BDropdown,
BDropdownText,
BDropdownDivider,
BDropdownGroup,
BDropdownItem,
BCollapse,
BBadge,
BCardTitle,
BCardSubtitle,
BAvatar,
BTab,
BTabs,
BPlaceholder,
BPlaceholderWrapper,
BTableSimple,
BSpinner,
BListGroup,
BListGroupItem,
BTh,
BTr,
BThead,
BTd,
BTbody,
BTooltip,
BOverlay,
BProgress,
BInputGroupText,
BInputGroup,
BAccordion,
BAccordionItem,
BPopover,
BLink,
BPlaceholderButton,
};
const directives: Record<string, Directive> = {
"b-tooltip": vBTooltip,
"b-toggle": vBToggle,
"b-modal": vBModal,
};
export default {
install(app: App) {
app.use(createBootstrap());
Object.entries(components).forEach(([componentName, component]) => {
app.component(componentName, component);
});
Object.entries(directives).forEach(([name, directive]) => {
app.directive(name, directive);
});
},
};