work on hot reload; fix bugs in player
This commit is contained in:
		@ -7443,8 +7443,6 @@ a.navbar-item.is-active {
 | 
			
		||||
      min-width: 2.5em;
 | 
			
		||||
      border-radius: 0px;
 | 
			
		||||
      transition: background-color 1s; }
 | 
			
		||||
    .player .player-bar .button:focus {
 | 
			
		||||
      background-color: #209cee; }
 | 
			
		||||
    .player .player-bar .title {
 | 
			
		||||
      margin: 0em; }
 | 
			
		||||
 | 
			
		||||
@ -7469,9 +7467,6 @@ main .cover.is-small {
 | 
			
		||||
main .cover.is-tiny {
 | 
			
		||||
  height: 2em; }
 | 
			
		||||
 | 
			
		||||
.sound-item .cover {
 | 
			
		||||
  height: 5em; }
 | 
			
		||||
 | 
			
		||||
aside > section {
 | 
			
		||||
  margin-bottom: 2em; }
 | 
			
		||||
 | 
			
		||||
@ -7487,6 +7482,12 @@ aside .cover.is-tiny {
 | 
			
		||||
aside .media .subtitle {
 | 
			
		||||
  font-size: 1em; }
 | 
			
		||||
 | 
			
		||||
.sound-item .cover {
 | 
			
		||||
  height: 5em; }
 | 
			
		||||
 | 
			
		||||
.sound-item .media-content a {
 | 
			
		||||
  padding: 0em; }
 | 
			
		||||
 | 
			
		||||
.is-round, .sound-item .button {
 | 
			
		||||
  border: 1px #7a7a7a solid;
 | 
			
		||||
  border-radius: 1em; }
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@ -7422,8 +7422,6 @@ a.navbar-item.is-active {
 | 
			
		||||
      min-width: 2.5em;
 | 
			
		||||
      border-radius: 0px;
 | 
			
		||||
      transition: background-color 1s; }
 | 
			
		||||
    .player .player-bar .button:focus {
 | 
			
		||||
      background-color: #209cee; }
 | 
			
		||||
    .player .player-bar .title {
 | 
			
		||||
      margin: 0em; }
 | 
			
		||||
 | 
			
		||||
@ -7448,9 +7446,6 @@ main .cover.is-small {
 | 
			
		||||
main .cover.is-tiny {
 | 
			
		||||
  height: 2em; }
 | 
			
		||||
 | 
			
		||||
.sound-item .cover {
 | 
			
		||||
  height: 5em; }
 | 
			
		||||
 | 
			
		||||
aside > section {
 | 
			
		||||
  margin-bottom: 2em; }
 | 
			
		||||
 | 
			
		||||
@ -7466,6 +7461,12 @@ aside .cover.is-tiny {
 | 
			
		||||
aside .media .subtitle {
 | 
			
		||||
  font-size: 1em; }
 | 
			
		||||
 | 
			
		||||
.sound-item .cover {
 | 
			
		||||
  height: 5em; }
 | 
			
		||||
 | 
			
		||||
.sound-item .media-content a {
 | 
			
		||||
  padding: 0em; }
 | 
			
		||||
 | 
			
		||||
.is-round, .sound-item .button {
 | 
			
		||||
  border: 1px #7a7a7a solid;
 | 
			
		||||
  border-radius: 1em; }
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@ -159,11 +159,11 @@
 | 
			
		||||
/*!******************************!*\
 | 
			
		||||
  !*** ./assets/public/app.js ***!
 | 
			
		||||
  \******************************/
 | 
			
		||||
/*! exports provided: defaultConfig, default, AppConfig */
 | 
			
		||||
/*! exports provided: defaultConfig, default */
 | 
			
		||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
 | 
			
		||||
 | 
			
		||||
"use strict";
 | 
			
		||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultConfig\", function() { return defaultConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return App; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AppConfig\", function() { return AppConfig; });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm.browser.js\");\n\n\nconst defaultConfig = {\n    el: '#app',\n    delimiters: ['[[', ']]'],\n\n    data() {\n        return {\n            page: null,\n        }\n    },\n\n    computed: {\n        player() { return window.aircox.player; },\n    },\n}\n\nfunction App(config, sync=false) {\n    return (new AppConfig(config)).load(sync)\n}\n\n/**\n * Application config for an application instance\n */\nclass AppConfig {\n    constructor(config) {\n        this._config = config;\n    }\n\n    get config() {\n        let config = this._config instanceof Function ? this._config() : this._config;\n        for(var k of new Set([...Object.keys(config || {}), ...Object.keys(defaultConfig)])) {\n            if(!config[k] && defaultConfig[k])\n                config[k] = defaultConfig[k]\n            else if(config[k] instanceof Object)\n                config[k] = {...defaultConfig[k], ...config[k]}\n        }\n        return config;\n    }\n\n    set config(value) {\n        this._config = value;\n    }\n\n    load(sync=false) {\n        var self = this;\n        return new Promise(function(resolve, reject) {\n            let func = () => { try { resolve(self.build()) } catch(error) { reject(error) }};\n            sync ? func() : window.addEventListener('load', func);\n        });\n    }\n\n    build() {\n        let config = this.config;\n        const el = document.querySelector(config.el)\n        if(!el) {\n            reject(`Error: missing element ${config.el}`);\n            return;\n        }\n        return new vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"](config);\n    }\n}\n\n\n\n\n//# sourceURL=webpack:///./assets/public/app.js?");
 | 
			
		||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultConfig\", function() { return defaultConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return AppBuilder; });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm.browser.js\");\n\n\nconst defaultConfig = {\n    el: '#app',\n    delimiters: ['[[', ']]'],\n\n    computed: {\n        player() { return window.aircox.player; },\n    },\n}\n\n\nclass AppBuilder {\n    constructor(config={}) {\n        this._config = config;\n        this.app = null;\n    }\n\n    get config() {\n        let config = this._config instanceof Function ? this._config() : this._config;\n        for(var k of new Set([...Object.keys(config || {}), ...Object.keys(defaultConfig)])) {\n            if(!config[k] && defaultConfig[k])\n                config[k] = defaultConfig[k]\n            else if(config[k] instanceof Object)\n                config[k] = {...defaultConfig[k], ...config[k]}\n        }\n        return config;\n    }\n\n    set config(value) {\n        this._config = value;\n    }\n\n    destroy() {\n        self.app && self.app.$destroy();\n        self.app = null;\n    }\n\n    fetch(url, options) {\n        return fetch(url, options).then(response => response.text())\n            .then(content => {\n                let doc = new DOMParser().parseFromString(content, 'text/html');\n                let app = doc.getElementById('app');\n                content = app ? app.innerHTML : content;\n                return this.load({sync: true, content, title: doc.title, url })\n            })\n    }\n\n    load({async=false,content=null, title=null, url=null}={}) {\n        var self = this;\n        return new Promise((resolve, reject) => {\n            let func = () => {\n                try {\n                    let config = self.config;\n                    const el = document.querySelector(config.el);\n                    if(!el)\n                        return reject(`Error: can't get element ${config.el}`)\n\n                    if(content)\n                        el.innerHTML = content\n                    if(title)\n                        document.title = title;\n                    if(url && content)\n                        history.pushState({ content: content, title: title }, '', url)\n\n                    this.app = new vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"](config);\n                    resolve(self.app)\n                } catch(error) {\n                    self.destroy();\n                    reject(error)\n                }};\n            async ? window.addEventListener('load', func) : func();\n        });\n    }\n\n    loadFromState(state) {\n        return this.load({ content: state.content, title: state.title });\n    }\n}\n\n\n\n\n//# sourceURL=webpack:///./assets/public/app.js?");
 | 
			
		||||
 | 
			
		||||
/***/ }),
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -12,7 +12,7 @@ List item for a podcast.
 | 
			
		||||
    {% endif %}
 | 
			
		||||
    {% endcomment %}
 | 
			
		||||
    <a-sound-item :data="{{ object|json }}" :player="player"
 | 
			
		||||
        :actions="['play']" @click="player.play(item)">
 | 
			
		||||
        :actions="['play']">
 | 
			
		||||
    </a-sound-item>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user