platypush/platypush/backend/http/webapp/dist/static/js/1420.fea2168b.js.map

1 line
46 KiB
Plaintext

{"version":3,"file":"static/js/1420.fea2168b.js","mappings":"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","sources":["webpack://platypush/./src/components/Media/Utils.vue","webpack://platypush/./src/components/Media/Utils.vue?af63","webpack://platypush/./src/components/Media/View.vue","webpack://platypush/./src/components/Media/Controls.vue","webpack://platypush/./src/components/Media/ExtraControls.vue","webpack://platypush/./src/components/Media/ExtraControls.vue?b9c1","webpack://platypush/./src/components/Media/PlayPauseButton.vue","webpack://platypush/./src/components/Media/PlayPauseButton.vue?80fd","webpack://platypush/./src/components/Media/ProgressBar.vue","webpack://platypush/./src/components/Media/ProgressBar.vue?32c3","webpack://platypush/./src/components/Media/VolumeSlider.vue","webpack://platypush/./src/components/Media/VolumeSlider.vue?4097","webpack://platypush/./src/components/Media/Controls.vue?3032","webpack://platypush/./src/components/Media/View.vue?78ca","webpack://platypush/./src/components/elements/Slider.vue","webpack://platypush/./src/components/elements/Slider.vue?787f"],"sourcesContent":["<script>\nimport Utils from \"@/Utils\";\n\nexport default {\n name: \"Utils\",\n mixins: [Utils],\n\n computed: {\n audioExtensions() {\n return new Set([\n '3gp', 'aa', 'aac', 'aax', 'act', 'aiff', 'amr', 'ape', 'au',\n 'awb', 'dct', 'dss', 'dvf', 'flac', 'gsm', 'iklax', 'ivs',\n 'm4a', 'm4b', 'm4p', 'mmf', 'mp3', 'mpc', 'msv', 'nmf', 'nsf',\n 'ogg,', 'opus', 'ra,', 'raw', 'sln', 'tta', 'vox', 'wav',\n 'wma', 'wv', 'webm', '8svx',\n ])\n },\n\n videoExtensions() {\n return new Set([\n 'webm', 'mkv', 'flv', 'flv', 'vob', 'ogv', 'ogg', 'drc', 'gif',\n 'gifv', 'mng', 'avi', 'mts', 'm2ts', 'mov', 'qt', 'wmv', 'yuv',\n 'rm', 'rmvb', 'asf', 'amv', 'mp4', 'm4p', 'm4v', 'mpg', 'mp2',\n 'mpeg', 'mpe', 'mpv', 'mpg', 'mpeg', 'm2v', 'm4v', 'svi',\n '3gp', '3g2', 'mxf', 'roq', 'nsv', 'flv', 'f4v', 'f4p', 'f4a', 'f4b',\n ])\n },\n\n mediaExtensions() {\n return new Set([...this.videoExtensions, ...this.audioExtensions])\n },\n },\n\n methods: {\n convertTime(time) {\n time = parseFloat(time); // Normalize strings\n const t = {}\n t.h = '' + parseInt(time/3600)\n t.m = '' + parseInt(time/60 - t.h*60)\n t.s = '' + parseInt(time - (t.h*3600 + t.m*60))\n\n for (const attr of ['m','s']) {\n if (parseInt(t[attr]) < 10) {\n t[attr] = '0' + t[attr]\n }\n }\n\n const ret = []\n if (parseInt(t.h)) {\n ret.push(t.h)\n }\n\n ret.push(t.m, t.s)\n return ret.join(':')\n },\n\n async startStreaming(resource, pluginName, download=false) {\n let url = resource\n let subtitles = null\n\n if (resource instanceof Object) {\n url = resource.url\n subtitles = resource.subtitles\n } else {\n resource = {url: url}\n }\n\n const ret = await this.request(`${pluginName}.start_streaming`, {\n media: url,\n subtitles: subtitles,\n download: download,\n })\n\n return {...resource, ...ret}\n },\n\n async stopStreaming(mediaId, pluginName) {\n await this.request(`${pluginName}.stop_streaming`, {media_id: mediaId})\n },\n },\n}\n</script>\n","import script from \"./Utils.vue?vue&type=script&lang=js\"\nexport * from \"./Utils.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","<template>\n <div class=\"media-container\">\n <div class=\"view-container\">\n <slot />\n </div>\n <div class=\"controls-container\">\n <Controls :status=\"status\" :track=\"track\" :buttons=\"buttons\" @play=\"$emit('play', $event)\"\n @pause=\"$emit('pause', $event)\" @stop=\"$emit('stop')\" @previous=\"$emit('previous')\"\n @next=\"$emit('next')\" @seek=\"$emit('seek', $event)\" @set-volume=\"$emit('set-volume', $event)\"\n @consume=\"$emit('consume', $event)\" @repeat=\"$emit('repeat', $event)\" @random=\"$emit('random', $event)\"\n @search=\"$emit('search', $event)\" @mute=\"$emit('mute')\" @unmute=\"$emit('unmute')\" />\n </div>\n </div>\n</template>\n\n<script>\nimport Controls from \"@/components/Media/Controls\";\n\nexport default {\n name: \"View\",\n components: {Controls},\n emits: [\n 'consume',\n 'mute',\n 'next',\n 'pause',\n 'play',\n 'previous',\n 'random',\n 'repeat',\n 'search',\n 'seek',\n 'set-volume',\n 'stop',\n 'unmute',\n ],\n\n props: {\n pluginName: {\n type: String,\n required: true,\n },\n\n status: {\n type: Object,\n default: () => {},\n },\n\n track: {\n type: Object,\n },\n\n buttons: {\n type: Object,\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import 'vars.scss';\n\n.media-container {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n position: relative;\n\n .view-container {\n height: 100%;\n }\n\n .controls-container {\n width: 100%;\n position: absolute;\n bottom: 0;\n border-top: $default-border-2;\n background: $default-bg-2;\n box-shadow: $border-shadow-top;\n }\n}\n</style>\n","<template>\n <div class=\"extension fade-in\" :class=\"{hidden: !expanded}\">\n <div class=\"image-container\" @click.prevent=\"onImageClick\" v-if=\"status?.state !== 'stop'\">\n <div class=\"remote-image-container\" v-if=\"track?.image\">\n <img class=\"image\" :src=\"track.image\" :alt=\"track.title\">\n </div>\n\n <div class=\"icon-container\" v-else>\n <i class=\"icon fas fa-compact-disc\"\n :class=\"{playing: status?.state === 'play'}\" />\n </div>\n </div>\n\n <div class=\"row buttons-container\">\n <div class=\"buttons\">\n <div class=\"buttons\">\n <button @click=\"$emit('previous')\" title=\"Play previous track\" v-if=\"buttons_.previous\">\n <i class=\"icon fa fa-step-backward\"></i>\n </button>\n <button @click=\"$emit('stop')\" v-if=\"buttons_.stop && status.state !== 'stop'\" title=\"Stop playback\">\n <i class=\"icon fa fa-stop\"></i>\n </button>\n <button @click=\"$emit('next')\" title=\"Play next track\" v-if=\"buttons_.next\">\n <i class=\"icon fa fa-step-forward\"></i>\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"row\">\n <VolumeSlider :value=\"status.volume\" :range=\"volumeRange\" :status=\"status\"\n @mute=\"$emit('mute')\" @unmute=\"$emit('unmute')\"\n @set-volume=\"$emit('set-volume', $event)\" />\n\n <ExtraControls :status=\"status\" :buttons=\"buttons_\"\n @consume=\"$emit('consume', !status.consume)\"\n @random=\"$emit('random', !status.random)\"\n @repeat=\"$emit('repeat', !status.repeat)\" />\n </div>\n\n <div class=\"row\">\n <ProgressBar :elapsed=\"elapsed\" :duration=\"duration\" :status=\"status\" @seek=\"$emit('seek', $event)\" />\n </div>\n </div>\n\n <div class=\"controls\">\n <div class=\"playback-controls until tablet col-2\">\n <PlayPauseButton :status=\"status\" @play=\"$emit('play')\" @pause=\"$emit('pause')\" />\n </div>\n\n <div class=\"track-container col-s-9 col-m-9 col-l-3\">\n <div class=\"track-info\" v-if=\"track && status?.state !== 'stop'\">\n <div class=\"img-container\" v-if=\"track.image\">\n <img class=\"image from desktop\" :src=\"track.image\" :alt=\"track.title\">\n </div>\n\n <div class=\"title-container\">\n <div class=\"title\" v-if=\"status.state === 'play' || status.state === 'pause'\">\n <a :href=\"$route.fullPath\" v-text=\"track.title?.length ? track.title : '[No Title]'\"\n @click.prevent=\"$emit('search', {artist: track.artist, album: track.album})\" v-if=\"track.album\"></a>\n <a :href=\"track.url\" v-text=\"track.title?.length ? track.title : '[No Title]'\" v-else-if=\"track.url\"></a>\n <span v-text=\"track.title?.length ? track.title : '[No Title]' \" v-else></span>\n </div>\n <div class=\"artist\" v-if=\"track.artist?.length && (status.state === 'play' || status.state === 'pause')\">\n <a :href=\"$route.fullPath\" v-text=\"track.artist\" @click.prevent=\"$emit('search', {artist: track.artist})\"></a>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"playback-controls from desktop col-6\">\n <div class=\"row buttons\">\n <button @click=\"$emit('previous')\" title=\"Play previous track\" v-if=\"buttons_.previous\">\n <i class=\"icon fa fa-step-backward\"></i>\n </button>\n <PlayPauseButton :status=\"status\" @play=\"$emit('play')\" @pause=\"$emit('pause')\" />\n <button @click=\"$emit('stop')\" v-if=\"buttons_.stop && status.state !== 'stop'\" title=\"Stop playback\">\n <i class=\"icon fa fa-stop\"></i>\n </button>\n <button @click=\"$emit('next')\" title=\"Play next track\" v-if=\"buttons_.next\">\n <i class=\"icon fa fa-step-forward\"></i>\n </button>\n </div>\n\n <div class=\"row\">\n <ProgressBar :elapsed=\"elapsed\" :duration=\"duration\" :status=\"status\" @seek=\"$emit('seek', $event)\" />\n </div>\n </div>\n\n <div class=\"col-1 until tablet right-controls\">\n <button @click=\"expanded = !expanded\" :title=\"expanded ? 'Show more controls' : 'Hide extra controls'\">\n <i class=\"fas\" :class=\"[`fa-chevron-${expanded ? 'down' : 'up'}`]\" />\n </button>\n </div>\n\n <div class=\"col-3 from desktop right-controls\">\n <VolumeSlider :value=\"status.volume\" :range=\"volumeRange\" :status=\"status\"\n @mute=\"$emit('mute')\" @unmute=\"$emit('unmute')\"\n @set-volume=\"$emit('set-volume', $event)\" />\n\n <ExtraControls :status=\"status\" :buttons=\"buttons_\"\n @consume=\"$emit('consume', !status.consume)\"\n @random=\"$emit('random', !status.random)\"\n @repeat=\"$emit('repeat', !status.repeat)\" />\n </div>\n </div>\n</template>\n\n<script>\nimport Utils from \"@/Utils\"\nimport MediaUtils from \"@/components/Media/Utils\";\nimport ExtraControls from \"./ExtraControls\";\nimport PlayPauseButton from \"./PlayPauseButton\";\nimport ProgressBar from \"./ProgressBar\";\nimport VolumeSlider from \"./VolumeSlider\";\n\nexport default {\n components: {ExtraControls, PlayPauseButton, ProgressBar, VolumeSlider},\n mixins: [Utils, MediaUtils],\n emits: [\n 'consume',\n 'mute',\n 'next',\n 'pause',\n 'play',\n 'previous',\n 'random',\n 'repeat',\n 'search',\n 'seek',\n 'set-volume',\n 'stop',\n 'unmute',\n ],\n\n props: {\n track: {\n type: Object,\n },\n\n status: {\n type: Object,\n default: () => {},\n },\n\n // Enabled playback buttons\n buttons: {\n type: Object,\n default: () => {\n return {\n previous: true,\n next: true,\n stop: true,\n consume: true,\n random: true,\n repeat: true,\n }\n },\n },\n\n // Volume range\n volumeRange: {\n type: Array,\n default: () => [0, 100],\n }\n },\n\n data() {\n const buttons = Object.keys(this.buttons)?.length ? this.buttons : {\n previous: true,\n next: true,\n stop: true,\n consume: true,\n random: true,\n repeat: true,\n }\n\n return {\n expanded: false,\n lastSync: 0,\n elapsed: this.status?.elapsed || this.status?.position,\n buttons_: buttons,\n }\n },\n\n computed: {\n duration() {\n return this.status?.duration != null ? this.status.duration : this.track?.duration\n },\n },\n\n methods: {\n getTime() {\n return (new Date()).getTime() / 1000\n },\n\n onImageClick() {\n if (this.track?.artist && this.track?.album)\n this.$emit('search', {artist: this.track.artist, album: this.track.album})\n },\n },\n\n mounted() {\n const self = this\n this.lastSync = this.getTime()\n\n this.$watch(() => this.track, (track) => {\n if (!track || self.status?.state !== 'play')\n self.lastSync = this.getTime()\n })\n\n this.$watch(() => this.status, () => {\n self.lastSync = this.getTime()\n })\n\n setInterval(() => {\n if (self.status?.state !== 'stop') {\n self.elapsed = (self.status?.elapsed || self.status?.position || 0)\n if (self.status?.state === 'play')\n self.elapsed += Math.round(this.getTime() - self.lastSync)\n }\n }, 1000)\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import 'vars.scss';\n\nbutton {\n border: 0;\n background: none;\n\n &:hover {\n border: 0;\n\n .icon {\n color: $default-hover-fg;\n }\n }\n\n &.enabled {\n color: $selected-fg;\n }\n}\n\n.extension {\n box-shadow: $border-shadow-bottom;\n flex-direction: column;\n display: none;\n overflow: hidden;\n padding: .5em;\n\n @include until($desktop) {\n display: flex;\n }\n\n :deep(.extra-controls-container) {\n @extend .pull-right;\n flex: 1;\n }\n\n :deep(.progress-bar-container, .volume-slider-container) {\n font-size: 1.25em;\n }\n\n :deep(.volume-slider-container) {\n margin: 1em 0;\n }\n\n .row {\n display: flex;\n }\n\n .buttons-container {\n width: calc(100% + 1em);\n margin-left: -0.5em;\n font-size: 2em;\n justify-content: center;\n box-shadow: $border-shadow-bottom;\n\n button {\n text-align: center;\n\n &:hover {\n color: $default-hover-fg;\n }\n\n i {\n margin: auto;\n }\n }\n }\n\n .buttons {\n display: flex;\n justify-content: center;\n margin: 0;\n }\n\n .image-container {\n width: 100%;\n display: flex;\n justify-content: center;\n cursor: pointer;\n\n .remote-image-container {\n height: 30vh;\n\n .image {\n height: 100%;\n }\n }\n\n .icon-container {\n padding: 0.05em;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 15em;\n opacity: 0.5;\n border: $default-border-2;\n box-shadow: $border-shadow-bottom;\n\n &:hover {\n color: $default-hover-fg;\n opacity: 1;\n }\n }\n\n .icon {\n &.playing {\n animation-duration: 3s;\n animation-name: rotate;\n animation-iteration-count: infinite;\n }\n }\n\n @keyframes rotate {\n 0% {\n transform: rotate(0deg);\n opacity: 1;\n }\n\n 50% {\n opacity: 0.5;\n }\n\n 100% {\n transform: rotate(359deg);\n opacity: 1;\n }\n }\n }\n}\n\n.controls {\n width: 100%;\n height: $media-ctrl-panel-height;\n display: flex;\n padding: 1em .5em;\n overflow: hidden;\n align-items: center;\n\n .row {\n width: 100%;\n display: flex;\n }\n\n .track-container {\n display: flex;\n align-items: center;\n margin-left: 0;\n\n @include until($desktop) {\n flex-direction: column;\n text-align: center;\n }\n\n a {\n color: initial;\n text-decoration: none;\n\n &:hover {\n color: $default-hover-fg;\n }\n }\n\n .artist, .title {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .artist {\n opacity: 0.6;\n letter-spacing: .04em;\n }\n\n .title {\n font-weight: normal;\n font-size: 1em;\n letter-spacing: .05em;\n margin-bottom: .25em;\n }\n\n .image {\n width: 5em;\n max-height: 100%;\n display: inline-flex;\n }\n }\n\n .track-info {\n display: flex;\n\n @include until($desktop) {\n flex-direction: column;\n }\n\n @include from($desktop) {\n flex-direction: row;\n align-items: center;\n\n .image {\n margin-right: 0.75em;\n }\n }\n }\n\n .playback-controls {\n .row {\n justify-content: center;\n }\n\n .buttons {\n margin-bottom: .5em;\n align-items: center;\n }\n\n button {\n padding: 0.5em;\n margin: 0 .75em;\n\n .play-pause {\n color: $play-btn-fg;\n font-size: 1.75em;\n\n &:hover {\n color: $default-hover-fg-2;\n }\n }\n }\n }\n\n .right-controls {\n @extend .pull-right;\n\n display: flex;\n flex-direction: column;\n flex: 1;\n align-items: flex-end;\n\n button {\n padding: 0.5em;\n }\n\n :deep(.extra-controls-container) {\n @extend .pull-right;\n }\n }\n\n .seek-slider {\n width: 75%;\n }\n}\n</style>\n","<template>\n <div class=\"extra-controls-container\">\n <button @click=\"$emit('consume')\" :class=\"{enabled: status.consume}\" title=\"Toggle consume mode\" v-if=\"buttons.consume\">\n <i class=\"icon fa fa-utensils\"></i>\n </button>\n <button @click=\"$emit('random')\" :class=\"{enabled: status.random}\" title=\"Toggle shuffle\" v-if=\"buttons.random\">\n <i class=\"icon fa fa-random\"></i>\n </button>\n <button @click=\"$emit('repeat')\" :class=\"{enabled: status.repeat}\" title=\"Toggle repeat\" v-if=\"buttons.repeat\">\n <i class=\"icon fa fa-redo\"></i>\n </button>\n </div>\n</template>\n\n<script>\nexport default {\n emits: ['consume', 'random', 'repeat'],\n props: {\n status: {\n type: Object,\n default: () => ({}),\n },\n\n buttons: {\n type: Object,\n default: () => ({}),\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.extra-controls-container {\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.7;\n\n button {\n margin: 0 .25em;\n padding: 0;\n background: none;\n border: 0;\n\n &.enabled {\n color: $selected-fg;\n }\n\n &:not(:disabled):hover {\n color: $default-hover-fg;\n opacity: 1;\n }\n }\n}\n</style>\n","import { render } from \"./ExtraControls.vue?vue&type=template&id=772c7a5b&scoped=true\"\nimport script from \"./ExtraControls.vue?vue&type=script&lang=js\"\nexport * from \"./ExtraControls.vue?vue&type=script&lang=js\"\n\nimport \"./ExtraControls.vue?vue&type=style&index=0&id=772c7a5b&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-772c7a5b\"]])\n\nexport default __exports__","<template>\n <button @click=\"$emit(status.state === 'play' ? 'pause' : 'play')\"\n :title=\"status.state === 'play' ? 'Pause' : 'Play'\">\n <i class=\"icon play-pause fa fa-pause\" v-if=\"status.state === 'play'\"></i>\n <i class=\"icon play-pause fa fa-play\" v-else></i>\n </button>\n</template>\n\n<script>\nexport default {\n emits: ['play', 'pause'],\n props: {\n status: {\n type: Object,\n default: () => ({}),\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\nbutton {\n font-size: 1.75em;\n background: transparent;\n color: $play-btn-fg;\n padding: 0 !important;\n border: none;\n\n &:hover {\n color: $play-btn-hover-fg;\n }\n}\n</style>\n","import { render } from \"./PlayPauseButton.vue?vue&type=template&id=a742ddb0&scoped=true\"\nimport script from \"./PlayPauseButton.vue?vue&type=script&lang=js\"\nexport * from \"./PlayPauseButton.vue?vue&type=script&lang=js\"\n\nimport \"./PlayPauseButton.vue?vue&type=style&index=0&id=a742ddb0&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-a742ddb0\"]])\n\nexport default __exports__","<template>\n <div class=\"progress-bar-container\">\n <div class=\"col-s-2 col-m-1 time\">\n <span class=\"elapsed-time\"\n v-text=\"elapsed != null && (status.state === 'play' || status.state === 'pause') ? convertTime(elapsed) : '-:--'\"></span>\n </div>\n <div class=\"col-s-8 col-m-10 time-bar\">\n <Slider :value=\"elapsed\" :range=\"[0, duration]\" :disabled=\"!duration || status.state === 'stop'\"\n @change=\"$emit('seek', $event.target.value)\" />\n </div>\n <div class=\"col-s-2 col-m-1 time\">\n <span class=\"total-time\"\n v-text=\"duration && status.state !== 'stop' ? convertTime(duration) : '-:--'\"></span>\n </div>\n </div>\n</template>\n\n<script>\nimport MediaUtils from \"@/components/Media/Utils\";\nimport Slider from \"@/components/elements/Slider\";\n\nexport default {\n components: {Slider},\n emits: ['seek'],\n mixins: [MediaUtils],\n\n props: {\n elapsed: {\n type: Number,\n },\n\n duration: {\n type: Number,\n },\n\n // Current player status\n status: {\n type: Object,\n default: () => ({}),\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$time-width: 2.5em;\n\n.progress-bar-container {\n width: 100%;\n display: flex;\n align-items: center;\n\n .time {\n width: $time-width;\n font-size: .7em;\n position: relative;\n margin-left: 0;\n }\n\n .elapsed-time {\n text-align: right;\n float: right;\n }\n\n .time-bar {\n width: calc(100% - #{$time-width * 2} - 2em);\n flex-grow: 1;\n margin: 0 .5em;\n }\n}\n</style>\n","import { render } from \"./ProgressBar.vue?vue&type=template&id=3894ad4d&scoped=true\"\nimport script from \"./ProgressBar.vue?vue&type=script&lang=js\"\nexport * from \"./ProgressBar.vue?vue&type=script&lang=js\"\n\nimport \"./ProgressBar.vue?vue&type=style&index=0&id=3894ad4d&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3894ad4d\"]])\n\nexport default __exports__","<template>\n <div class=\"volume-slider-container\">\n <div class=\"col-1\">\n <button\n :disabled=\"status.mute == null\"\n :title=\"status.mute ? 'Muted' : 'Unmuted'\"\n @click=\"$emit(status.mute ? 'unmute' : 'mute')\">\n <i class=\"icon fa fa-volume-xmark\" v-if=\"status.mute\" />\n <i class=\"icon fa fa-volume-up\" v-else />\n </button>\n </div>\n\n <div class=\"col-11 volume-slider\">\n <Slider :value=\"status.volume\" :range=\"volumeRange\" :disabled=\"status.volume == null\"\n @change=\"$emit('set-volume', $event.target.value)\" />\n </div>\n </div>\n</template>\n\n<script>\nimport Slider from \"@/components/elements/Slider\";\n\nexport default {\n components: {Slider},\n emits: ['set-volume', 'mute', 'unmute'],\n\n props: {\n // Volume range\n volumeRange: {\n type: Array,\n default: () => [0, 100],\n },\n\n // Current player status\n status: {\n type: Object,\n default: () => ({}),\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import 'vars.scss';\n\n.volume-slider-container {\n min-width: 15em;\n max-width: 25em;\n display: inline-flex;\n align-items: center;\n flex: 1;\n\n .volume-slider {\n margin: 0;\n padding: 0 .5em 0 1em;\n flex: 1;\n }\n\n button {\n margin: 0;\n padding: 0;\n background: transparent;\n border: none;\n\n &:disabled {\n cursor: default;\n }\n\n &:not(:disabled):hover {\n color: $default-hover-fg;\n }\n }\n}\n</style>\n","import { render } from \"./VolumeSlider.vue?vue&type=template&id=662f988f&scoped=true\"\nimport script from \"./VolumeSlider.vue?vue&type=script&lang=js\"\nexport * from \"./VolumeSlider.vue?vue&type=script&lang=js\"\n\nimport \"./VolumeSlider.vue?vue&type=style&index=0&id=662f988f&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-662f988f\"]])\n\nexport default __exports__","import { render } from \"./Controls.vue?vue&type=template&id=34374f87&scoped=true\"\nimport script from \"./Controls.vue?vue&type=script&lang=js\"\nexport * from \"./Controls.vue?vue&type=script&lang=js\"\n\nimport \"./Controls.vue?vue&type=style&index=0&id=34374f87&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-34374f87\"]])\n\nexport default __exports__","import { render } from \"./View.vue?vue&type=template&id=7a861c3a&scoped=true\"\nimport script from \"./View.vue?vue&type=script&lang=js\"\nexport * from \"./View.vue?vue&type=script&lang=js\"\n\nimport \"./View.vue?vue&type=style&index=0&id=7a861c3a&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7a861c3a\"]])\n\nexport default __exports__","<template>\n <label class=\"slider-wrapper\">\n <span class=\"range-labels\" :class=\"{'with-label': withLabel}\" v-if=\"withRange\">\n <span class=\"label left\" v-if=\"withRange\" v-text=\"range[0]\" />\n <span class=\"label right\" v-if=\"withRange\" v-text=\"range[1]\" />\n </span>\n\n <span class=\"slider-container\">\n <input class=\"slider\"\n type=\"range\"\n :class=\"{'with-label': withLabel}\"\n :min=\"range[0]\"\n :max=\"range[1]\"\n :step=\"step\"\n :disabled=\"disabled\"\n :value=\"value\"\n ref=\"range\"\n @input.stop=\"$emit('input', $event)\"\n @change.stop=\"$emit('change', $event)\">\n\n <span class=\"label\" v-if=\"withLabel\" v-text=\"value\" ref=\"label\"></span>\n </span>\n </label>\n</template>\n\n<script>\nexport default {\n emits: ['input', 'change'],\n props: {\n value: {\n type: Number,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n range: {\n type: Array,\n default: () => [0, 100],\n },\n\n step: {\n type: Number,\n default: 1,\n },\n\n withLabel: {\n type: Boolean,\n default: false,\n },\n\n withRange: {\n type: Boolean,\n default: false,\n }\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$label-width: 3em;\n$thumb-height: 1em;\n$slider-height: 0.5em;\n\n.slider-wrapper {\n width: 100%;\n display: flex;\n position: relative;\n flex-direction: column;\n\n .slider-container {\n width: 100%;\n display: flex;\n position: relative;\n }\n\n input.slider {\n width: 100%;\n background: none;\n height: 1.5em;\n position: relative;\n border-radius: 0.5em;\n cursor: pointer;\n outline: none;\n overflow: hidden;\n transition: all ease 100ms;\n @include appearance(none);\n\n &:active {\n filter: brightness(80%);\n cursor: grabbing;\n }\n\n &:hover {\n filter: saturate(130%);\n }\n\n &:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n filter: grayscale(1);\n }\n\n /* Chrome and friends */\n &::-webkit-slider-runnable-track {\n position: relative;\n border-radius: $slider-height;\n background: linear-gradient($slider-bg 0 0) scroll no-repeat center /\n 100% calc(#{$slider-height} + 1px);\n }\n\n &::-webkit-slider-runnable-track,\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n transition: all ease 100ms;\n height: $thumb-height;\n }\n\n &::-webkit-slider-thumb {\n --clip-top: calc((#{$thumb-height} - #{$slider-height}) * 0.5);\n --clip-bottom: calc(#{$thumb-height} - var(--clip-top));\n --clip-further: calc(100% + 1px);\n\n width: $thumb-height;\n background: $slider-progress-bg;\n box-shadow: calc(-100vmax - #{$thumb-height} + 2.5px) #{$slider-height} #{$slider-height} 100vmax #{$slider-progress-bg};\n border-radius: $thumb-height;\n cursor: grab;\n\n &:hover {\n filter: brightness(130%) blur(1px);\n cursor: grab;\n }\n\n clip-path: polygon(\n 100% -1px,\n #{$slider-height} -1px,\n 0 var(--clip-top),\n -100vmax var(--clip-top),\n -100vmax var(--clip-bottom),\n 0 var(--clip-bottom),\n #{$slider-height} 100%,\n var(--clip-further) var(--clip-further)\n );\n }\n\n /* Firefox */\n &::-moz-range-track {\n background: $slider-bg;\n position: relative;\n height: $slider-height;\n border-radius: 0.5em;\n box-shadow: inset 1px 0px 3px 0 $slider-track-shadow;\n }\n\n &::-moz-range-thumb {\n $thumb-height: 1.125em;\n width: $thumb-height;\n height: $thumb-height;\n position: relative;\n background: $slider-thumb-bg;\n border-radius: 50%;\n border: none;\n cursor: grabbing;\n transition: all ease 100ms;\n @include appearance(none);\n\n &:hover {\n filter: brightness(130%) blur(1px);\n cursor: grab;\n }\n\n &:disabled {\n background: $slider-thumb-disabled-bg;\n cursor: not-allowed;\n }\n }\n\n &::-moz-range-progress {\n width: 100%;\n height: $slider-height;\n cursor: pointer;\n background: $slider-progress-bg;\n border-radius: 0.5em 0 0 0.5em;\n }\n }\n\n .range-labels {\n width: 100%;\n display: flex;\n\n .left {\n text-align: left;\n }\n\n .right {\n @extend .pull-right;\n flex-grow: 1;\n }\n }\n\n .label {\n width: $label-width;\n position: relative;\n font-weight: normal;\n text-align: center;\n }\n\n .with-label {\n width: calc(100% - $label-width);\n }\n}\n</style>\n","import { render } from \"./Slider.vue?vue&type=template&id=d90e850c&scoped=true\"\nimport script from \"./Slider.vue?vue&type=script&lang=js\"\nexport * from \"./Slider.vue?vue&type=script&lang=js\"\n\nimport \"./Slider.vue?vue&type=style&index=0&id=d90e850c&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-d90e850c\"]])\n\nexport default __exports__"],"names":["name","mixins","Utils","computed","audioExtensions","Set","videoExtensions","mediaExtensions","this","methods","convertTime","time","parseFloat","t","h","parseInt","m","s","attr","ret","push","join","startStreaming","resource","pluginName","download","url","subtitles","Object","request","media","stopStreaming","mediaId","media_id","__exports__","class","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_renderSlot","_ctx","$slots","undefined","_hoisted_3","_createVNode","_component_Controls","status","$props","track","buttons","onPlay","_cache","$event","$emit","onPause","onStop","onPrevious","onNext","onSeek","onSetVolume","onConsume","onRepeat","onRandom","onSearch","onMute","onUnmute","_hoisted_7","_hoisted_9","_hoisted_11","_hoisted_30","_hoisted_32","_hoisted_34","_normalizeClass","hidden","$data","expanded","state","onClick","_withModifiers","args","$options","onImageClick","image","src","alt","title","playing","_hoisted_4","_hoisted_5","_hoisted_6","buttons_","previous","stop","next","_hoisted_13","_component_VolumeSlider","value","volume","range","volumeRange","_component_ExtraControls","consume","random","repeat","_hoisted_14","_component_ProgressBar","elapsed","duration","_hoisted_15","_hoisted_16","_component_PlayPauseButton","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_21","_hoisted_22","album","href","$route","fullPath","_toDisplayString","length","artist","_hoisted_26","_hoisted_28","_hoisted_29","_hoisted_36","_hoisted_37","_hoisted_39","enabled","emits","props","type","default","_component_Slider","disabled","onChange","target","components","Slider","MediaUtils","Number","mute","Array","ExtraControls","PlayPauseButton","ProgressBar","VolumeSlider","data","keys","lastSync","position","getTime","Date","mounted","self","$watch","setInterval","Math","round","Controls","String","required","render","withRange","withLabel","min","max","step","ref","onInput","Boolean"],"sourceRoot":""}