diff --git a/index.js b/index.js index 7365adf1..6861bad3 100644 --- a/index.js +++ b/index.js @@ -86,6 +86,7 @@ app.on('ready', () => { console.log('[Cider] Application is Ready. Creating Window.') if (!app.isPackaged) { console.info('[Cider] Running in development mode.') + require('vue-devtools').install() } CreateWindow() }); diff --git a/src/main/cider-base.js b/src/main/cider-base.js index 3576d90c..00949e80 100644 --- a/src/main/cider-base.js +++ b/src/main/cider-base.js @@ -194,7 +194,8 @@ const CiderBase = { EnvironmentVariables: { "env": { - platform: os.platform() + platform: os.platform(), + dev: app.isPackaged } }, diff --git a/src/renderer/index.js b/src/renderer/index.js index 897ace01..344c7957 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -1,13 +1,5 @@ Vue.use(VueObserveVisibility); - -Vue.component('sidebar-library-item', { - template: '#sidebar-library-item', - props: ['name', 'page', 'cd-click'], - methods: {} -}); - - // This is going to suck to code var CiderContextMenu = { Menu: function (event) { @@ -109,6 +101,7 @@ class NavigationEvent { const app = new Vue({ el: "#app", data: { + ipcRenderer: ipcRenderer, cfg: ipcRenderer.sendSync("getStore"), isDev: ipcRenderer.sendSync("is-dev"), drawertest: false, @@ -269,6 +262,12 @@ const app = new Vue({ }, }, methods: { + navigateBack() { + history.back() + }, + navigateForward() { + history.forward() + }, getHTMLStyle() { switch(this.cfg.visual.window_transparency) { case "acrylic": @@ -2265,6 +2264,17 @@ const app = new Vue({ } }) +Vue.component('sidebar-library-item', { + template: '#sidebar-library-item', + props: ['name', 'page', 'cd-click'], + data: function () { + return { + app: app + } + }, + methods: {} +}); + // Key binds document.addEventListener('keydown', function (e) { if (e.keyCode === 70 && e.ctrlKey) { @@ -2317,6 +2327,19 @@ document.addEventListener('musickitloaded', function () { // }); // } +const getBase64FromUrl = async (url) => { + const data = await fetch(url); + const blob = await data.blob(); + return new Promise((resolve) => { + const reader = new FileReader(); + reader.readAsDataURL(blob); + reader.onloadend = () => { + const base64data = reader.result; + resolve(base64data); + } + }); +} + function uuidv4() { return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16) diff --git a/src/renderer/style.less b/src/renderer/style.less index 53e703ce..232e03a3 100644 --- a/src/renderer/style.less +++ b/src/renderer/style.less @@ -2810,6 +2810,17 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { opacity: 0; } +.wpfade_transform-enter-active, +.wpfade_transform-leave-active { + transition: opacity .1s var(--appleEase), transform .1s var(--appleEase); +} + +.wpfade_transform-enter, +.wpfade_transform-leave-to { + transform: scale(0.90); + opacity: 0; +} + .fabfade-enter-active, .fabfade-leave-active { transition: transform .1s var(--appleEase), opacity .1s var(--appleEase); diff --git a/src/renderer/views/components/add-to-playlist.ejs b/src/renderer/views/components/add-to-playlist.ejs index a252f367..ae5d0a30 100644 --- a/src/renderer/views/components/add-to-playlist.ejs +++ b/src/renderer/views/components/add-to-playlist.ejs @@ -39,7 +39,8 @@ return { playlistSorted: [], searchQuery: "", - focused: "" + focused: "", + app: this.$root, } }, props: { diff --git a/src/renderer/views/components/animatedartwork-view.ejs b/src/renderer/views/components/animatedartwork-view.ejs index f6a33396..b6cae3cd 100644 --- a/src/renderer/views/components/animatedartwork-view.ejs +++ b/src/renderer/views/components/animatedartwork-view.ejs @@ -1,32 +1,32 @@ @@ -43,7 +43,13 @@ Vue.component('lyrics-view', { template: '#lyrics-view', props: ["time", "lyrics", "richlyrics", "translation", "onindex"], + data: function () { + return { + app: this.$root, + } + }, watch: { + time: function () { if (app.lyricon && app.drawer.open && this.$refs.lyricsview) { let currentLine = this.$refs.lyricsview.querySelector(`.lyric-line.active`) @@ -109,6 +115,9 @@ }, methods: { + seekTo(startTime) { + if(startTime != 9999999) this.app.seekTo(startTime, false); + }, getActiveLyric() { // console.log(this.time); const delayfix = 0.1 diff --git a/src/renderer/views/components/mediaitem-artwork.ejs b/src/renderer/views/components/mediaitem-artwork.ejs index 6d2cf52b..3c2a7b38 100644 --- a/src/renderer/views/components/mediaitem-artwork.ejs +++ b/src/renderer/views/components/mediaitem-artwork.ejs @@ -1,22 +1,13 @@ \ No newline at end of file diff --git a/src/renderer/views/components/mediaitem-list-item.ejs b/src/renderer/views/components/mediaitem-list-item.ejs index 671d4f68..f8c34409 100644 --- a/src/renderer/views/components/mediaitem-list-item.ejs +++ b/src/renderer/views/components/mediaitem-list-item.ejs @@ -1,67 +1,66 @@ \ No newline at end of file diff --git a/src/renderer/views/components/mediaitem-mvview.ejs b/src/renderer/views/components/mediaitem-mvview.ejs index f64368e1..3dc241e8 100644 --- a/src/renderer/views/components/mediaitem-mvview.ejs +++ b/src/renderer/views/components/mediaitem-mvview.ejs @@ -54,6 +54,11 @@ Vue.component('mediaitem-mvview', { template: '#mediaitem-mvview', props: ['item', "imagesize"], + data: function () { + return { + app: this.$root, + } + }, methods: {} }); \ No newline at end of file diff --git a/src/renderer/views/components/mediaitem-scroller-horizontal-large.ejs b/src/renderer/views/components/mediaitem-scroller-horizontal-large.ejs index 849dbdb6..3707e41a 100644 --- a/src/renderer/views/components/mediaitem-scroller-horizontal-large.ejs +++ b/src/renderer/views/components/mediaitem-scroller-horizontal-large.ejs @@ -1,10 +1,8 @@ @@ -12,6 +10,11 @@ Vue.component('mediaitem-scroller-horizontal-large', { template: '#mediaitem-scroller-horizontal-large', props: ['items'], + data: function () { + return { + app: this.$root, + } + }, methods: {} }); \ No newline at end of file diff --git a/src/renderer/views/components/mediaitem-scroller-horizontal-mvview.ejs b/src/renderer/views/components/mediaitem-scroller-horizontal-mvview.ejs index 19919512..a9c3a036 100644 --- a/src/renderer/views/components/mediaitem-scroller-horizontal-mvview.ejs +++ b/src/renderer/views/components/mediaitem-scroller-horizontal-mvview.ejs @@ -1,16 +1,18 @@ @@ -23,12 +25,12 @@ required: true }, imagesize: { - type: String, - required: true + type: Number, + required: false }, browsesp: { type: Boolean, - required: true + required: false }, kind: { type: String, @@ -36,6 +38,11 @@ default: "" } }, + data: function () { + return { + app: this.$root, + } + }, methods: {} }); \ No newline at end of file diff --git a/src/renderer/views/components/mediaitem-scroller-horizontal-sp.ejs b/src/renderer/views/components/mediaitem-scroller-horizontal-sp.ejs index 562c083a..d29bdc46 100644 --- a/src/renderer/views/components/mediaitem-scroller-horizontal-sp.ejs +++ b/src/renderer/views/components/mediaitem-scroller-horizontal-sp.ejs @@ -11,6 +11,11 @@ Vue.component('mediaitem-scroller-horizontal-sp', { template: '#mediaitem-scroller-horizontal-sp', props: ['items'], + data: function () { + return { + app: this.$root, + } + }, methods: {} }); \ No newline at end of file diff --git a/src/renderer/views/components/mediaitem-scroller-horizontal.ejs b/src/renderer/views/components/mediaitem-scroller-horizontal.ejs index 272bf174..73838811 100644 --- a/src/renderer/views/components/mediaitem-scroller-horizontal.ejs +++ b/src/renderer/views/components/mediaitem-scroller-horizontal.ejs @@ -11,6 +11,11 @@ Vue.component('mediaitem-scroller-horizontal', { template: '#mediaitem-scroller-horizontal', props: ['items'], + data: function () { + return { + app: this.$root, + } + }, methods: {} }); \ No newline at end of file diff --git a/src/renderer/views/components/mediaitem-square-large.ejs b/src/renderer/views/components/mediaitem-square-large.ejs index 4c6f8753..04b713b1 100644 --- a/src/renderer/views/components/mediaitem-square-large.ejs +++ b/src/renderer/views/components/mediaitem-square-large.ejs @@ -74,6 +74,11 @@ Vue.component('mediaitem-square-large', { template: '#mediaitem-square-large', props: ['item'], + data: function () { + return { + app: this.$root, + } + }, methods: { clickContext() { var evt = document.createEvent('MouseEvent'); diff --git a/src/renderer/views/components/mediaitem-square-sp.ejs b/src/renderer/views/components/mediaitem-square-sp.ejs index 9ff92ab9..785784a6 100644 --- a/src/renderer/views/components/mediaitem-square-sp.ejs +++ b/src/renderer/views/components/mediaitem-square-sp.ejs @@ -1,101 +1,114 @@ \ No newline at end of file diff --git a/src/renderer/views/components/mediaitem-square.ejs b/src/renderer/views/components/mediaitem-square.ejs index 0d37567c..5ab1995d 100644 --- a/src/renderer/views/components/mediaitem-square.ejs +++ b/src/renderer/views/components/mediaitem-square.ejs @@ -1,30 +1,32 @@ - + @@ -71,10 +71,10 @@ {{ mk.nowPlayingItem["attributes"]["name"] }}