diff --git a/package-lock.json b/package-lock.json index f6bc7dff255fbaaa4c57f7256814d58707850ca0..d045f1f11a9a7fb89b4834e43fb1d3b08edd13c8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3911,16 +3911,6 @@ "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true }, - "clipboard": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz", - "integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==", - "requires": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } - }, "cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", @@ -4511,11 +4501,6 @@ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, - "delegate": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" - }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -6170,14 +6155,6 @@ "minimist": "^1.2.5" } }, - "good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", - "requires": { - "delegate": "^3.1.2" - } - }, "graceful-fs": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", @@ -9299,11 +9276,6 @@ } } }, - "select": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", - "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" - }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -10835,11 +10807,6 @@ "setimmediate": "^1.0.4" } }, - "tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" - }, "tinycolor2": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", @@ -11297,19 +11264,6 @@ "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.12.tgz", "integrity": "sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==" }, - "vue-blurhash": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/vue-blurhash/-/vue-blurhash-0.1.2.tgz", - "integrity": "sha512-VfIiQW2+F1HsJktumGsEwCsp0CYLdnmTcCA3nMvZ8Bze8bkpp9tonIygzBnjUKN0WZyOxb22i9QQ+lqgngjedA==" - }, - "vue-clipboard2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/vue-clipboard2/-/vue-clipboard2-0.3.1.tgz", - "integrity": "sha512-H5S/agEDj0kXjUb5GP2c0hCzIXWRBygaWLN3NEFsaI9I3uWin778SFEMt8QRXiPG+7anyjqWiw2lqcxWUSfkYg==", - "requires": { - "clipboard": "^2.0.0" - } - }, "vue-color": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/vue-color/-/vue-color-2.7.1.tgz", diff --git a/package.json b/package.json index 6507d10792a26694e79b9ed94833fe166795ea24..e61b437bcb9798abc2ca89c1b2525318d6fcc599 100644 --- a/package.json +++ b/package.json @@ -44,8 +44,6 @@ "postcss-loader": "^4.1.0", "style-loader": "^2.0.0", "vue": "^2.6.12", - "vue-blurhash": "^0.1.2", - "vue-clipboard2": "^0.3.1", "vue-content-loader": "^0.2.3", "vue-resize-observer": "^1.0.32", "vue-router": "^3.4.9", diff --git a/src/components/Table.vue b/src/components/Table.vue index 0308db39c4a3be9f053eb0b6aa162e57ff5a52f7..c3ec3b4073a1a73238c559fb2c5b071abfa8d19b 100644 --- a/src/components/Table.vue +++ b/src/components/Table.vue @@ -43,15 +43,30 @@ :key="idx" :class="{ selected: idx === activeItem}"> <td class="iconColumn"> - <div> - <blur-hash-image - hash="00PZr%" - :src="episode.imgURL" /> - </div> + <div class="episodeImage" + :style="{ backgroundImage: `url(${episode.imgURL})` }" /> </td> <td class="nameColumn" @click="changeRoute(`/browse/show/${episode.podcast_id}/${episode.id}`)"> + <i-amp-video-eq> + <div class="-amp-video-eq-col"> + <div class="-amp-video-eq-1-1" /> + <div class="-amp-video-eq-1-2" /> + </div> + <div class="-amp-video-eq-col"> + <div class="-amp-video-eq-2-1" /> + <div class="-amp-video-eq-2-2" /> + </div> + <div class="-amp-video-eq-col"> + <div class="-amp-video-eq-3-1" /> + <div class="-amp-video-eq-3-2" /> + </div> + <div class="-amp-video-eq-col"> + <div class="-amp-video-eq-4-1" /> + <div class="-amp-video-eq-4-2" /> + </div> + </i-amp-video-eq> <b>{{ episode.title }}</b> <vue-show-more-text :text="escapedEpisodeDescription(episode.description)" @@ -238,14 +253,6 @@ table.episodeTable { overflow: hidden; text-overflow: ellipsis; padding-right: 0px; - span { - display: block; - max-height: 45px; - white-space: normal; - text-overflow: ellipsis; - overflow: hidden; - color: #657786; - } b { color: var(--color-main-text); user-select: none; @@ -297,4 +304,82 @@ table.episodeTable { } } } + +i-amp-video-eq { + align-items: flex-end; + display: none; + width: 20px; + height: 12px; + overflow: hidden; + opacity: 0.8; + position: relative; + float: left; + top: 5px; + margin-right: 5px; +} + +i-amp-video-eq .-amp-video-eq-col { + flex: 1; + position: relative; + height: 100%; + margin-right: 1px; +} + +i-amp-video-eq .-amp-video-eq-col div { + animation-name: amp-video-eq-animation; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; + background-color: rgb(0, 130, 201); + position: absolute; + width: 100%; + height: 100%; + transform: translateY(100%); + will-change: transform; +} + +.-amp-video-eq-1-1 { + animation-duration: 0.3s; +} + +.-amp-video-eq-1-2 { + animation-duration: 0.45s; +} + +.-amp-video-eq-2-1 { + animation-duration: 0.5s; +} + +.-amp-video-eq-2-2 { + animation-duration: 0.4s; +} + +.-amp-video-eq-3-1 { + animation-duration: 0.3s; +} + +.-amp-video-eq-3-2 { + animation-duration: 0.35s; +} + +.-amp-video-eq-4-1 { + animation-duration: 0.4s; +} + +.-amp-video-eq-4-2 { + animation-duration: 0.25s; +} + +@keyframes amp-video-eq-animation { + 0% { + transform: translateY(100%); + } + 100% { + transform: translateY(0); + } +} + +table.episodeTable tr.selected i-amp-video-eq { + display: flex; +} </style> diff --git a/src/main.js b/src/main.js index 6de012bbd0f266603b7341368125a744ab349c8b..b62e2e863536b03c7aecd4bde6ca70443a5d2f57 100644 --- a/src/main.js +++ b/src/main.js @@ -28,12 +28,8 @@ import { translate, translatePlural } from '@nextcloud/l10n' import App from './App' -import VueBlurHash from 'vue-blurhash' -import VueClipboard from 'vue-clipboard2' import VueResizeObserver from 'vue-resize-observer' -import 'vue-blurhash/dist/vue-blurhash.css' - Vue.prototype.t = translate Vue.prototype.n = translatePlural Vue.prototype.OC = window.OC @@ -41,8 +37,6 @@ Vue.prototype.OCA = window.OCA Vue.prototype.$apiUrl = 'https://api.fyyd.de/0.2' Vue.prototype.$version = '0.0.1' -Vue.use(VueClipboard) -Vue.use(VueBlurHash) Vue.use(VueResizeObserver) export default new Vue({