57 lines
1.4 KiB
JavaScript
57 lines
1.4 KiB
JavaScript
/**
|
|
* This module includes code available for both the public website and
|
|
* administration interface)
|
|
*/
|
|
//-- vendor
|
|
import '@fortawesome/fontawesome-free/css/all.min.css'
|
|
import '@fortawesome/fontawesome-free/css/fontawesome.min.css'
|
|
|
|
|
|
//-- aircox
|
|
import App, {PlayerApp} from './app'
|
|
import Builder from './appBuilder'
|
|
import Sound from './sound'
|
|
import {Set} from './model'
|
|
|
|
import './assets/styles.scss'
|
|
|
|
|
|
window.aircox = {
|
|
// main application
|
|
builder: new Builder(App),
|
|
get app() { return this.builder.app },
|
|
|
|
// player application
|
|
playerBuilder: new Builder(PlayerApp),
|
|
get playerApp() { return this.playerBuilder && this.playerBuilder.app },
|
|
get player() { return this.playerBuilder.vm && this.playerBuilder.vm.$refs.player },
|
|
|
|
Set, Sound,
|
|
|
|
|
|
/**
|
|
* Initialize main application and player.
|
|
*/
|
|
init(props=null, {config=null, builder=null, initBuilder=true,
|
|
initPlayer=true, hotReload=false}={})
|
|
{
|
|
if(initBuilder) {
|
|
builder = builder || this.builder
|
|
this.builder = builder
|
|
if(config || window.App)
|
|
builder.config = config || window.App
|
|
builder.title = document.title
|
|
builder.mount({props})
|
|
|
|
if(hotReload)
|
|
builder.enableHotReload(hotReload)
|
|
}
|
|
|
|
if(initPlayer) {
|
|
let playerBuilder = this.playerBuilder
|
|
playerBuilder.mount()
|
|
}
|
|
},
|
|
}
|
|
|