33 lines
1.2 KiB
TypeScript
33 lines
1.2 KiB
TypeScript
// Import and register all components,
|
|
// which will allow us to use them in any template strings anywhere in the project
|
|
|
|
import CollapseTransition from "@ivanv/vue-collapse-transition/src/CollapseTransition.vue";
|
|
import { App } from "vue";
|
|
import VueNextSelect from "vue-next-select";
|
|
import "vue-next-select/dist/index.css";
|
|
import panZoom from "vue-panzoom";
|
|
import Sortable from "vue-sortable";
|
|
import VueTextareaAutosize from "vue-textarea-autosize";
|
|
import Toast from "vue-toastification";
|
|
import "vue-toastification/dist/index.css";
|
|
import Changelog from "../data/Changelog.vue";
|
|
|
|
export function registerComponents(vue: App): void {
|
|
/* from files */
|
|
const componentsContext = require.context("./");
|
|
componentsContext.keys().forEach(path => {
|
|
const component = componentsContext(path).default;
|
|
if (component && !(component.name in vue._context.components)) {
|
|
vue.component(component.name, component);
|
|
}
|
|
});
|
|
vue.component("Changelog", Changelog);
|
|
|
|
/* from packages */
|
|
vue.component("collapse-transition", CollapseTransition);
|
|
vue.use(VueTextareaAutosize);
|
|
vue.use(Sortable);
|
|
vue.component("vue-select", VueNextSelect);
|
|
vue.use(panZoom);
|
|
vue.use(Toast);
|
|
}
|