import type { App } from 'vue';

import {
  BAlert,
  BBadge,
  BButton,
  BCollapse,
  BDropdownItem,
  BForm,
  BFormCheckbox,
  BFormGroup,
  BFormInput,
  BLink,
  BModal,
  BNavItem,
  BNavItemDropdown,
  BNavbar,
  BNavbarBrand,
  BNavbarNav,
  BNavbarToggle,
  BPagination,
  BProgress,
  BProgressBar,
  createBootstrap,
  vBModal,
} from 'bootstrap-vue-next';

export function initBootstrapVue(vue: App) {
  vue.use(createBootstrap());

  vue.component('BBadge', BBadge);
  vue.component('BDropdownItem', BDropdownItem);
  vue.component('BLink', BLink);
  vue.component('BAlert', BAlert);
  vue.component('BButton', BButton);
  vue.component('BNavbar', BNavbar);
  vue.component('BNavbarNav', BNavbarNav);
  vue.component('BNavbarBrand', BNavbarBrand);
  vue.component('BNavbarToggle', BNavbarToggle);
  vue.component('BPagination', BPagination);
  vue.component('BProgress', BProgress);
  vue.component('BProgressBar', BProgressBar);
  vue.component('BForm', BForm);
  vue.component('BFormInput', BFormInput);
  vue.component('BFormGroup', BFormGroup);
  vue.component('BFormCheckbox', BFormCheckbox);
  vue.component('BCollapse', BCollapse);
  vue.component('BNavItem', BNavItem);
  vue.component('BNavItemDropdown', BNavItemDropdown);
  vue.component('BModal', BModal);
  vue.directive('b-modal', vBModal);
}
