/**
 * Imports
 */
import Vue from 'vue';
import BootstrapVue from 'bootstrap-vue';
import { library } from '@fortawesome/fontawesome-svg-core';
import { fas } from '@fortawesome/free-solid-svg-icons';
import { fab } from '@fortawesome/free-brands-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
import VueTheMask from 'vue-the-mask';
import VModal from 'vue-js-modal';
import GeneralButton from '@/components/shared-components/GeneralButton.vue';
import GeneralBanner from '@/components/shared-components/GeneralBanner.vue';
import App from './App.vue';
import router from './router';
import store from './store';
import 'bootstrap/dist/css/bootstrap.css';
import 'bootstrap-vue/dist/bootstrap-vue.css';
import Notifications from "@/components/shared-components/Notifications"
import VueLodash from 'vue-lodash'
import HeaderNoCarousel from '@/components/header/HeaderNoCarousel.vue';
import CustomHeader from '@/components/header/index.vue';

import {formatCoin} from "./filters/numeric"
import {formatDDMMAAAA,formatDateTimeDDMMAAAA} from "./filters/date"

import VueSimpleAlert from "vue-simple-alert";

const _ = require('lodash');
Vue.use(VueLodash);
library.add(fas);
library.add(fab);

Vue.component('font-awesome-icon', FontAwesomeIcon);
Vue.component('general-button', GeneralButton);
Vue.component('general-banner', GeneralBanner);
Vue.component('custom-header', CustomHeader);
Vue.component('header-no-carousel', HeaderNoCarousel);
Vue.component('notifications', Notifications);

Vue.use(BootstrapVue);
Vue.use(VueTheMask);
Vue.use(VModal);
Vue.use(VueSimpleAlert);

Vue.config.productionTip = false;

/**
 * Filters
 */
Vue.filter('formatCoin', formatCoin);
Vue.filter('formatDDMMAAAA', formatDDMMAAAA);
Vue.filter('formatDateTimeDDMMAAAA', formatDateTimeDDMMAAAA);

/**
 * Instance
 */
new Vue({
  router,
  store,
  render: h => h(App),
}).$mount('#app');
