parsley/app/javascript/application.js

92 lines
2.8 KiB
JavaScript

import './styles';
import "vue-resize/dist/vue-resize";
import Vue from 'vue'
import { sync } from 'vuex-router-sync';
import { swInit } from "./lib/ServiceWorker";
import responsiveSync from "./lib/VuexResponsiveSync";
import { createChannel } from "./lib/ActionCable";
import VueProgressBar from "vue-progressbar";
import VueResize from "vue-resize";
import config from './lib/config';
import store from './store';
import router from './router';
import './lib/GlobalMixins';
import App from './components/App';
import AppAutocomplete from "./components/AppAutocomplete";
import AppConfirm from "./components/AppConfirm";
import AppDateTime from "./components/AppDateTime";
import AppDatePicker from "./components/AppDatePicker";
import AppDropdown from "./components/AppDropdown";
import AppExpandTransition from "./components/AppExpandTransition";
import AppIcon from "./components/AppIcon";
import AppIconicIcon from "./components/AppIconicIcon";
import AppModal from "./components/AppModal";
import AppNavbar from "./components/AppNavbar";
import AppPager from "./components/AppPager";
import AppRating from "./components/AppRating";
import AppSearchText from "./components/AppSearchText";
import AppTagEditor from "./components/AppTagEditor";
import AppTextField from "./components/AppTextField";
import AppValidationErrors from "./components/AppValidationErrors";
Vue.component("AppAutocomplete", AppAutocomplete);
Vue.component("AppConfirm", AppConfirm);
Vue.component("AppDateTime", AppDateTime);
Vue.component("AppDatePicker", AppDatePicker);
Vue.component("AppDropdown", AppDropdown);
Vue.component("AppExpandTransition", AppExpandTransition);
Vue.component("AppIcon", AppIcon);
Vue.component("AppIconicIcon", AppIconicIcon);
Vue.component("AppModal", AppModal);
Vue.component("AppNavbar", AppNavbar);
Vue.component("AppPager", AppPager);
Vue.component("AppRating", AppRating);
Vue.component("AppSearchText", AppSearchText);
Vue.component("AppTagEditor", AppTagEditor);
Vue.component("AppTextField", AppTextField);
Vue.component("AppValidationErrors", AppValidationErrors);
Vue.use(VueProgressBar, {
// color: '#bffaf3',
// failedColor: '#874b4b',
// thickness: '5px',
// transition: {
// speed: '0.2s',
// opacity: '0.6s',
// termination: 300
// },
// autoRevert: true,
// location: 'left',
// inverse: false
});
Vue.use(VueResize);
sync(store, router);
responsiveSync(store);
Vue.prototype.$createChannel = function(...args) {
createChannel(null, ...args);
}
document.addEventListener('DOMContentLoaded', () => {
const app = document.getElementById('app');
config.baseApiUrl = app.dataset.url;
window.$vm = new Vue({
el: '#app',
store,
router: router,
render: createElement => createElement('App'),
mounted() {
this.$nextTick(() => swInit(store));
},
components: { App }
});
});