47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
|
import { install } from './install'; // Services
|
||
|
|
||
|
import * as services from './services'; // Styles
|
||
|
|
||
|
import "../src/styles/main.sass";
|
||
|
export default class Vuetify {
|
||
|
constructor(preset = {}) {
|
||
|
this.framework = {};
|
||
|
this.installed = [];
|
||
|
this.preset = {};
|
||
|
this.preset = preset;
|
||
|
this.use(services.Application);
|
||
|
this.use(services.Breakpoint);
|
||
|
this.use(services.Goto);
|
||
|
this.use(services.Icons);
|
||
|
this.use(services.Lang);
|
||
|
this.use(services.Theme);
|
||
|
} // Called on the new vuetify instance
|
||
|
// bootstrap in install beforeCreate
|
||
|
// Exposes ssrContext if available
|
||
|
|
||
|
|
||
|
init(root, ssrContext) {
|
||
|
this.installed.forEach(property => {
|
||
|
const service = this.framework[property];
|
||
|
service.framework = this.framework;
|
||
|
service.init(root, ssrContext);
|
||
|
}); // rtl is not installed and
|
||
|
// will never be called by
|
||
|
// the init process
|
||
|
|
||
|
this.framework.rtl = Boolean(this.preset.rtl);
|
||
|
} // Instantiate a VuetifyService
|
||
|
|
||
|
|
||
|
use(Service) {
|
||
|
const property = Service.property;
|
||
|
if (this.installed.includes(property)) return;
|
||
|
this.framework[property] = new Service(this.preset[property]);
|
||
|
this.installed.push(property);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
Vuetify.install = install;
|
||
|
Vuetify.installed = false;
|
||
|
Vuetify.version = "2.0.1";
|
||
|
//# sourceMappingURL=framework.js.map
|