platypush/platypush/backend/http/dist/static/js/chunk-b51533f6.dc0f3b3e.js.map

1 line
32 KiB
Plaintext

{"version":3,"sources":["webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./src/components/Media/Utils.vue","webpack:///./src/components/Media/Utils.vue?4bb6","webpack:///./node_modules/core-js/modules/es.string.repeat.js","webpack:///./src/components/Media/Controls.vue?363d","webpack:///./src/components/Media/View.vue","webpack:///./src/components/Media/Controls.vue","webpack:///./src/components/Media/Controls.vue?df4e","webpack:///./src/components/Media/View.vue?e4b8","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./src/components/Media/View.vue?b3dd"],"names":["module","exports","Object","is","x","y","name","mixins","Utils","computed","audioExtensions","Set","videoExtensions","mediaExtensions","this","methods","convertTime","time","parseFloat","t","h","parseInt","m","s","attr","ret","push","join","startStreaming","resource","download","url","subtitles","request","media","stopStreaming","mediaId","media_id","$","repeat","target","proto","class","status","track","buttons","$emit","$event","expanded","buttons_","previous","title","stop","state","next","disabled","muted","value","volume","range","volumeRange","consume","random","elapsed","duration","album","href","$route","fullPath","length","artist","components","Slider","emits","props","type","default","Array","data","keys","lastSync","position","getTime","Date","mounted","self","$watch","setInterval","Math","round","render","__scopeId","Controls","pluginName","String","required","fixRegExpWellKnownSymbolLogic","anObject","requireObjectCoercible","sameValue","regExpExec","SEARCH","nativeSearch","maybeCallNative","regexp","O","searcher","undefined","call","RegExp","res","done","rx","S","previousLastIndex","lastIndex","result","index"],"mappings":"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","file":"static/js/chunk-b51533f6.dc0f3b3e.js","sourcesContent":["// `SameValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-samevalue\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","<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, 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(`media.start_streaming`, {\n media: url,\n subtitles: subtitles,\n download: download,\n })\n\n return {...resource, ...ret}\n },\n\n async stopStreaming(mediaId) {\n await this.request('media.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\nexport default script","var $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n repeat: repeat\n});\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Controls.vue?vue&type=style&index=0&id=ea63d9a0&lang=scss&scoped=true\"","<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)\"/>\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: ['play', 'pause', 'stop', 'next', 'previous', 'set-volume', 'seek', 'consume', 'random', 'repeat', 'search'],\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=\"row\">\n <div class=\"col-3\">\n </div>\n <div class=\"col-6\">\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 class=\"col-3\">\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col-9 volume-container\">\n <div class=\"col-1\">\n <button :disabled=\"status.muted == null\" @click=\"$emit(status.muted ? 'unmute' : 'mute')\">\n <i class=\"icon fa fa-volume-up\"></i>\n </button>\n </div>\n <div class=\"col-11 volume-slider\">\n <Slider :value=\"status.volume\" :range=\"volumeRange\" :disabled=\"status.volume == null\"\n @mouseup=\"$emit('set-volume', $event.target.value)\" />\n </div>\n </div>\n\n <div class=\"col-3 list-controls\">\n <button @click=\"$emit('consume', !status.consume)\" :class=\"{enabled: status.consume}\"\n title=\"Toggle consume mode\" v-if=\"buttons_.consume\">\n <i class=\"icon fa fa-utensils\"></i>\n </button>\n\n <button @click=\"$emit('random', !status.random)\" :class=\"{enabled: status.random}\"\n title=\"Toggle shuffle\" v-if=\"buttons_.random\">\n <i class=\"icon fa fa-random\"></i>\n </button>\n\n <button @click=\"$emit('repeat', !status.repeat)\" :class=\"{enabled: status.repeat}\"\n title=\"Toggle repeat\" v-if=\"buttons_.repeat\">\n <i class=\"icon fa fa-redo\"></i>\n </button>\n </div>\n </div>\n\n <div class=\"row\">\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\">\n <Slider :value=\"elapsed\" :range=\"[0, duration]\" :disabled=\"!duration || status.state === 'stop'\"\n @mouseup=\"$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 </div>\n\n <div class=\"controls\">\n <div class=\"playback-controls mobile tablet col-2\">\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 </div>\n\n <div class=\"track-container col-s-8 col-m-8 col-l-3\">\n <div class=\"track-info\" v-if=\"track && status?.state !== 'stop'\">\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\n <div class=\"playback-controls 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 <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 <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 <div class=\"col-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-10\">\n <Slider :value=\"elapsed\" :range=\"[0, duration]\" :disabled=\"!duration || status.state === 'stop'\"\n @mouseup=\"$emit('seek', $event.target.value)\" />\n </div>\n <div class=\"col-1 time\">\n <span class=\"total-time\"\n v-text=\"duration && status.state !== 'stop' ? convertTime(duration) : '-:--'\"></span>\n </div>\n </div>\n </div>\n\n <div class=\"col-2 pull-right mobile tablet right-buttons\">\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 pull-right desktop\">\n <div class=\"row list-controls\">\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\n <div class=\"row volume-container\">\n <div class=\"col-2\">\n <button :disabled=\"status.muted == null\" @click=\"$emit(status.muted ? 'unmute' : 'mute')\">\n <i class=\"icon fa fa-volume-up\"></i>\n </button>\n </div>\n <div class=\"col-10\">\n <Slider :value=\"status.volume\" :range=\"volumeRange\" :disabled=\"status.volume == null\"\n @mouseup=\"$emit('set-volume', $event.target.value)\" />\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport Utils from \"@/Utils\"\nimport MediaUtils from \"@/components/Media/Utils\";\nimport Slider from \"@/components/elements/Slider\";\n\nexport default {\n name: \"Controls\",\n components: {Slider},\n mixins: [Utils, MediaUtils],\n emits: ['search', 'previous', 'next', 'play', 'pause', 'stop', 'seek', 'consume', 'random', 'repeat',\n 'set-volume', 'mute', 'unmute'],\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\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 &: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\n @include until($desktop) {\n display: flex;\n padding-top: .5em;\n }\n\n .row {\n display: flex;\n }\n\n .buttons {\n justify-content: center;\n margin: 0;\n }\n\n .volume-container,\n .list-controls {\n display: flex;\n align-items: center;\n\n button {\n padding: 0 .25em;\n }\n }\n\n .list-controls {\n margin-top: -.5em;\n flex-flow: row-reverse;\n }\n\n .time {\n &:first-child {\n margin-left: .25em;\n }\n\n &:last-child {\n margin-right: .25em;\n }\n }\n\n .volume-slider {\n margin-left: 2.25em;\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\n .row {\n width: 100%;\n display: flex;\n }\n\n .track-container {\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-left: 0;\n\n @include until($tablet) {\n align-items: 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\n .playback-controls {\n &.mobile {\n display: none;\n\n @include until($tablet) {\n display: flex !important;\n align-items: center;\n }\n }\n\n &.tablet {\n display: none;\n\n @media screen and (min-width: $tablet) and (max-width: $desktop - 1) {\n display: flex !important;\n align-items: center;\n }\n }\n\n .row {\n justify-content: center;\n }\n\n .buttons {\n height: 50%;\n align-items: center;\n }\n\n button {\n padding: 0;\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 .list-controls {\n height: 50%;\n opacity: 0.7;\n display: flex;\n align-items: center;\n margin-bottom: 1em;\n flex-flow: row-reverse;\n }\n\n .mobile.right-buttons {\n @include until ($desktop) {\n display: flex;\n align-items: center;\n justify-content: right;\n }\n }\n\n .pull-right {\n button {\n padding: 0;\n }\n\n .volume-container {\n button {\n background: none;\n }\n }\n }\n\n .seek-slider {\n width: 75%;\n }\n\n .volume-slider {\n width: 75%;\n margin-right: 1rem;\n }\n}\n\n.time {\n font-size: .7em;\n position: relative;\n}\n\n.elapsed-time {\n text-align: right;\n float: right;\n}\n\n.mobile {\n @include from($tablet) {\n display: none;\n }\n}\n\n.tablet {\n @media screen and (max-width: $tablet), screen and (min-width: $desktop - 1) {\n display: none;\n }\n}\n\n.desktop {\n @include until($desktop) {\n display: none;\n }\n}\n</style>\n","import { render } from \"./Controls.vue?vue&type=template&id=ea63d9a0&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=ea63d9a0&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-ea63d9a0\"\n\nexport default script","import { render } from \"./View.vue?vue&type=template&id=70d7a7df&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=70d7a7df&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-70d7a7df\"\n\nexport default script","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : regexp[SEARCH];\n return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative(nativeSearch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./View.vue?vue&type=style&index=0&id=70d7a7df&lang=scss&scoped=true\""],"sourceRoot":""}