platypush/platypush/backend/http/dist/static/js/chunk-fa962a0a.314e65ea.js.map

1 line
56 KiB
Plaintext

{"version":3,"sources":["webpack:///./src/components/panels/Media/Index.vue?d1e4","webpack:///./src/components/panels/Media/Header.vue?dd34","webpack:///./src/components/panels/Media/Index.vue","webpack:///./src/components/panels/Media/Header.vue","webpack:///./src/components/panels/Media/Players.vue","webpack:///./src/components/panels/Media/Players/Chromecast.vue","webpack:///./src/components/panels/Media/Players/Mixin.vue","webpack:///./src/components/panels/Media/Players/Mixin.vue?3ecc","webpack:///./src/components/panels/Media/Players/Chromecast.vue?4f3f","webpack:///./src/components/panels/Media/Players/Kodi.vue","webpack:///./src/components/panels/Media/Players/Kodi.vue?07b0","webpack:///./src/components/panels/Media/Players/Mplayer.vue","webpack:///./src/components/panels/Media/Players/Mplayer.vue?e52b","webpack:///./src/components/panels/Media/Players/Mpv.vue","webpack:///./src/components/panels/Media/Players/Mpv.vue?a581","webpack:///./src/components/panels/Media/Players/Omxplayer.vue","webpack:///./src/components/panels/Media/Players/Omxplayer.vue?8d01","webpack:///./src/components/panels/Media/Players/Vlc.vue","webpack:///./src/components/panels/Media/Players/Vlc.vue?2a35","webpack:///./src/components/panels/Media/Players.vue?d14c","webpack:///./src/components/panels/Media/Header.vue?c95a","webpack:///./src/components/panels/Media/Info.vue","webpack:///./src/components/panels/Media/Info.vue?3933","webpack:///./src/components/panels/Media/Results.vue","webpack:///./src/components/panels/Media/Results.vue?38a7","webpack:///./src/components/panels/Media/Index.vue?a0a3","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./src/components/panels/Media/Info.vue?f863","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///./src/components/panels/Media/Players.vue?ef7a","webpack:///./src/components/panels/Media/Results.vue?f4a7"],"names":["class","loading","plugin-name","pluginName","status","selectedPlayer","track","buttons","mediaButtons","pause","stop","setVolume","seek","search","$event","onStatusUpdate","results","selected-result","selectedResult","play","$refs","mediaInfo","isVisible","title","ref","item","filterVisible","type","placeholder","query","$emit","icon-class","text","Object","keys","sources","source","key","player","name","iconClass","refresh","players","length","i","select","mixins","Utils","emits","props","data","methods","getPlayers","component","request","resource","url","volume","position","onNewMedia","event","onMediaEvent","isMine","notify","device","image","plugin","mounted","this","subscribe","destroy","unsubscribe","Mixin","devices","Promise","all","map","chromecast","getPlayerName","render","$root","config","host","components","Loading","DropdownItem","Dropdown","Chromecast","Kodi","Mplayer","Mpv","Omxplayer","Vlc","String","required","plugins","loadPlugins","entries","filter","p","endsWith","push","__scopeId","Players","types","imdb_id","href","target","synopsis","description","channelId","channelTitle","year","publishedAt","file","trailer","size","quality","seeds","peers","language","default","result","typeIcons","Array","Number","MediaView","Header","Results","Modal","Info","previous","next","$watch","_defineProperty","obj","value","defineProperty","enumerable","configurable","writable","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","apply","_objectSpread2","arguments","forEach","getOwnPropertyDescriptors","defineProperties","isRegExp","module","exports","it","TypeError","$","f","toLength","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","nativeEndsWith","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","prototype","proto","forced","searchString","that","endPosition","undefined","len","end","call","slice","wellKnownSymbol","MATCH","METHOD_NAME","regexp","error1","error2","DESCRIPTORS","toIndexedObject","getOwnPropertyDescriptorModule","createProperty","stat","sham","O","index","fails","nativeGetOwnPropertyDescriptor","FAILS_ON_PRIMITIVES","FORCED"],"mappings":"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","file":"static/js/chunk-fa962a0a.314e65ea.js","sourcesContent":["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-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-loader-v16/dist/index.js??ref--0-1!./Index.vue?vue&type=style&index=0&id=99a8277e&lang=scss&scoped=true\"","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-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-loader-v16/dist/index.js??ref--0-1!./Header.vue?vue&type=style&index=0&id=7882f794&lang=scss&scoped=true\"","<template>\n <keep-alive>\n <div class=\"media-plugin fade-in\">\n <Loading v-if=\"loading\" />\n\n <MediaView :plugin-name=\"pluginName\" :status=\"selectedPlayer?.status || {}\" :track=\"selectedPlayer?.status || {}\"\n :buttons=\"mediaButtons\" @play=\"pause\" @pause=\"pause\" @stop=\"stop\" @set-volume=\"setVolume\"\n @seek=\"seek\" @search=\"search\">\n <main>\n <Header :plugin-name=\"pluginName\" @search=\"search\" @select-player=\"selectedPlayer = $event\"\n @player-status=\"onStatusUpdate\" />\n <Results :results=\"results\" :selected-result=\"selectedResult\" @select=\"selectedResult = $event\"\n @play=\"play\" @info=\"$refs.mediaInfo.isVisible = true\" />\n </main>\n </MediaView>\n\n <div class=\"media-info-container\">\n <Modal title=\"Media info\" ref=\"mediaInfo\">\n <Info :item=\"results[selectedResult]\" v-if=\"selectedResult != null\" />\n </Modal>\n </div>\n </div>\n </keep-alive>\n</template>\n\n<script>\nimport Loading from \"@/components/Loading\";\nimport Modal from \"@/components/Modal\";\nimport Utils from \"@/Utils\";\nimport MediaView from \"@/components/Media/View\";\nimport Header from \"@/components/panels/Media/Header\";\nimport Info from \"@/components/panels/Media/Info\";\nimport Results from \"@/components/panels/Media/Results\";\n\nexport default {\n name: \"Media\",\n mixins: [Utils],\n components: {Loading, MediaView, Header, Results, Modal, Info},\n props: {\n pluginName: {\n type: String,\n required: true,\n },\n\n mediaButtons: {\n type: Object,\n default: () => {\n return {\n previous: false,\n next: false,\n stop: true,\n }\n }\n }\n },\n\n data() {\n return {\n loading: false,\n results: [],\n selectedResult: null,\n selectedPlayer: null,\n }\n },\n\n methods: {\n async search(event) {\n this.loading = true\n\n try {\n this.results = await this.request(`${this.pluginName}.search`, event)\n } finally {\n this.loading = false\n }\n },\n\n async play(item) {\n await this.selectedPlayer.component.play(item, this.selectedPlayer)\n await this.refresh()\n },\n\n async pause() {\n await this.selectedPlayer.component.pause(this.selectedPlayer)\n await this.refresh()\n },\n\n async stop() {\n await this.selectedPlayer.component.stop(this.selectedPlayer)\n await this.refresh()\n },\n\n async setVolume(volume) {\n await this.selectedPlayer.component.setVolume(volume, this.selectedPlayer)\n await this.refresh()\n },\n\n async seek(position) {\n await this.selectedPlayer.component.seek(position, this.selectedPlayer)\n await this.refresh()\n },\n\n async refresh() {\n this.selectedPlayer.status = await this.selectedPlayer.component.status(this.selectedPlayer)\n },\n\n onStatusUpdate(status) {\n if (!this.selectedPlayer)\n return\n\n this.selectedPlayer.status = status\n }\n },\n\n mounted() {\n this.$watch(() => this.selectedPlayer, (player) => {\n if (player)\n this.refresh()\n })\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.media-plugin {\n width: 100%;\n\n main {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n }\n}\n\n::v-deep(.loading) {\n z-index: 10;\n}\n\n::v-deep(.media-info-container) {\n .modal-container {\n .content {\n max-width: 75%;\n }\n\n .body {\n padding: 1em .5em;\n overflow: auto;\n }\n }\n}\n</style>\n","<template>\n <div class=\"header\" :class=\"{'with-filter': filterVisible}\">\n <div class=\"row\">\n <div class=\"col-7 left side\">\n <button title=\"Filter\" @click=\"filterVisible = !filterVisible\">\n <i class=\"fa fa-filter\" />\n </button>\n\n <form @submit.prevent=\"search\">\n <label class=\"search-box\">\n <input type=\"search\" placeholder=\"Search\" v-model=\"query\">\n </label>\n </form>\n </div>\n\n <div class=\"col-5 right side\">\n <Players :plugin-name=\"pluginName\" @select=\"$emit('select-player', $event)\"\n @status=\"$emit('player-status', $event)\" />\n <Dropdown title=\"Actions\" icon-class=\"fa fa-ellipsis-h\">\n <DropdownItem text=\"Play URL\" icon-class=\"fa fa-play-circle\" />\n </Dropdown>\n </div>\n </div>\n\n <div class=\"row filter fade-in\" :class=\"{hidden: !filterVisible}\">\n <label v-for=\"source in Object.keys(sources)\" :key=\"source\">\n <input type=\"checkbox\" v-model=\"sources[source]\" />\n {{ source }}\n </label>\n </div>\n </div>\n</template>\n\n<script>\nimport Dropdown from \"@/components/elements/Dropdown\";\nimport DropdownItem from \"@/components/elements/DropdownItem\";\nimport Players from \"@/components/panels/Media/Players\";\nexport default {\n name: \"Header\",\n components: {Players, DropdownItem, Dropdown},\n emits: ['search', 'select-player', 'player-status'],\n\n props: {\n pluginName: {\n type: String,\n required: true,\n },\n },\n\n data() {\n return {\n filterVisible: false,\n query: '',\n sources: {\n 'file': true,\n 'youtube': true,\n 'torrent': true,\n },\n }\n },\n\n methods: {\n search() {\n const types = Object.keys(this.sources).filter((source) => this.sources[source])\n if (!this.query?.length || !types?.length)\n return\n\n this.$emit('search', {\n query: this.query,\n types: types,\n })\n },\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$media-header-height: 3.3em;\n$filter-header-height: 3em;\n\n.header {\n width: 100%;\n height: $media-header-height;\n position: relative;\n background: $menu-panel-bg;\n padding: .5em;\n box-shadow: $border-shadow-bottom;\n\n .row {\n display: flex;\n align-items: center;\n }\n\n &.with-filter {\n height: calc(#{$media-header-height} + #{$filter-header-height});\n }\n\n .side {\n display: inline-flex;\n align-items: center;\n\n &.right {\n justify-content: right;\n }\n }\n\n ::v-deep(button) {\n background: none;\n padding: 0 .25em;\n border: 0;\n margin-right: .25em;\n\n &:hover {\n color: $default-hover-fg-2;\n }\n }\n\n form {\n width: 100%;\n padding: 0;\n border: 0;\n border-radius: 0;\n box-shadow: none;\n background: initial;\n }\n\n .search-box {\n width: 100%;\n margin-left: .5em;\n\n input[type=search] {\n width: 100%;\n }\n }\n\n .filter {\n position: absolute;\n top: $media-header-height;\n height: $filter-header-height;\n padding-bottom: 1em;\n\n label {\n display: inline-flex;\n flex-direction: row;\n margin-right: 1em;\n\n input {\n margin-right: .5em;\n }\n }\n }\n}\n</style>\n","<template>\n <div class=\"plugins\">\n <Chromecast :player=\"selectedPlayer?.pluginName === 'media.chromecast' ? selectedPlayer : null\"\n ref=\"chromecastPlugin\" @status=\"$emit('status', $event)\" />\n <Kodi :player=\"selectedPlayer?.pluginName === 'media.kodi' ? selectedPlayer : null\" ref=\"kodiPlugin\"\n @status=\"$emit('status', $event)\" />\n <Mplayer :player=\"selectedPlayer?.pluginName === 'media.mplayer' ? selectedPlayer : null\" ref=\"mplayerPlugin\"\n @status=\"$emit('status', $event)\" />\n <Mpv :player=\"selectedPlayer?.pluginName === 'media.mpv' ? selectedPlayer : null\" ref=\"mpvPlugin\"\n @status=\"$emit('status', $event)\" />\n <Omxplayer :player=\"selectedPlayer?.pluginName === 'media.omxplayer' ? selectedPlayer : null\" ref=\"omxplayerPlugin\"\n @status=\"$emit('status', $event)\" />\n <Vlc :player=\"selectedPlayer?.pluginName === 'media.vlc' ? selectedPlayer : null\" ref=\"vlcPlugin\"\n @status=\"$emit('status', $event)\" />\n </div>\n\n <div class=\"players\">\n <Dropdown :title=\"selectedPlayer?.name || 'Players'\"\n :icon-class=\"selectedPlayer ? selectedPlayer.iconClass : 'fab fa-chromecast'\">\n <Loading v-if=\"loading\" />\n\n <div class=\"refresh\">\n <DropdownItem text=\"Refresh\" icon-class=\"fa fa-sync-alt\" @click=\"refresh\" />\n </div>\n\n <div class=\"no-results\" v-if=\"!players?.length\">No players found</div>\n\n <div class=\"player\" v-for=\"(player, i) in players\" :key=\"i\"\n :class=\"{selected: selectedPlayer != null && selectedPlayer.pluginName === player.pluginName\n && selectedPlayer.name === player.name}\">\n <DropdownItem :text=\"player.name\" :icon-class=\"player.iconClass\" @click=\"select(player)\" />\n </div>\n </Dropdown>\n </div>\n</template>\n\n<script>\nimport Dropdown from \"@/components/elements/Dropdown\";\nimport DropdownItem from \"@/components/elements/DropdownItem\";\nimport Loading from \"@/components/Loading\";\n\nimport Chromecast from \"@/components/panels/Media/Players/Chromecast\"\nimport Kodi from \"@/components/panels/Media/Players/Kodi\";\nimport Mplayer from \"@/components/panels/Media/Players/Mplayer\";\nimport Mpv from \"@/components/panels/Media/Players/Mpv\";\nimport Omxplayer from \"@/components/panels/Media/Players/Omxplayer\";\nimport Vlc from \"@/components/panels/Media/Players/Vlc\";\n\nexport default {\n name: \"Players\",\n components: {Loading, DropdownItem, Dropdown, Chromecast, Kodi, Mplayer, Mpv, Omxplayer, Vlc},\n emits: ['select', 'status'],\n\n props: {\n pluginName: {\n type: String,\n required: true,\n },\n },\n\n data() {\n return {\n loading: false,\n players: [],\n selectedPlayer: null,\n config: {},\n plugins: [],\n }\n },\n\n methods: {\n loadPlugins() {\n this.plugins = Object.entries(this.$refs).filter((p) => p[0].endsWith('Plugin')).map((p) => p[1])\n },\n\n async refresh() {\n this.players = []\n this.loading = true\n const config = this.$root.config\n\n try {\n await Promise.all(this.plugins.map(async (plugin) => {\n if (!(plugin.pluginName in config))\n return\n\n const players = await plugin.getPlayers()\n this.players.push(...players)\n\n if (this.selectedPlayer == null && plugin.pluginName === this.pluginName && players.length > 0) {\n this.select(players[0])\n }\n }))\n } finally {\n this.loading = false\n }\n },\n\n select(player) {\n this.selectedPlayer = player\n this.$emit('select', player)\n },\n },\n\n async mounted() {\n await this.loadPlugins()\n await this.refresh()\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.plugins {\n display: none;\n}\n\n.no-results {\n padding: 1em;\n}\n\n.players {\n ::v-deep(.dropdown) {\n .item {\n padding: .5em;\n }\n\n .icon {\n margin-right: 1em !important;\n }\n }\n\n ::v-deep(.refresh) {\n font-weight: bold;\n font-size: .8em;\n opacity: .7;\n }\n\n ::v-deep(.player.selected) {\n color: $selected-fg;\n }\n}\n</style>\n","<template>\n <div />\n</template>\n\n<script>\nimport Mixin from \"@/components/panels/Media/Players/Mixin\";\n\nexport default {\n name: \"Chromecast\",\n mixins: [Mixin],\n data() {\n return {\n name: 'Chromecast',\n pluginName: 'media.chromecast',\n iconClass: 'fab fa-chromecast',\n }\n },\n\n methods: {\n async getPlayers() {\n const devices = await this.request(`${this.pluginName}.get_chromecasts`)\n return Promise.all(devices.map(async (device) => {\n return {\n ...device,\n iconClass: device.type === 'audio' ? 'fa fa-volume-up' : 'fab fa-chromecast',\n pluginName: this.pluginName,\n status: this.request(`${this.pluginName}.status`, {chromecast: device.name}),\n component: this,\n }\n }))\n },\n\n getPlayerName(player) {\n if (typeof player === 'string')\n return player\n\n if (!player)\n return this.player?.name\n\n return player?.name\n },\n\n async status(player) {\n return await this.request(`${this.pluginName}.status`, {chromecast: this.getPlayerName(player)})\n },\n\n async play(resource, player) {\n if (!resource) {\n return await this.pause(player)\n }\n\n return await this.request(`${this.pluginName}.play`, {resource: resource.url, chromecast: this.getPlayerName(player)})\n },\n\n async pause(player) {\n return await this.request(`${this.pluginName}.pause`, {chromecast: this.getPlayerName(player)})\n },\n\n async stop(player) {\n return await this.request(`${this.pluginName}.stop`, {chromecast: this.getPlayerName(player)})\n },\n\n async setVolume(volume, player) {\n return await this.request(`${this.pluginName}.set_volume`, {volume: volume, chromecast: this.getPlayerName(player)})\n },\n\n async seek(position, player) {\n return await this.request(`${this.pluginName}.seek`, {position: position, chromecast: this.getPlayerName(player)})\n },\n\n async onMediaEvent(event) {\n if (event.plugin !== this.pluginName)\n return false\n\n this.$emit('status', await this.status(event.player))\n return true\n },\n },\n}\n</script>\n","<script>\nimport Utils from \"@/Utils\";\n\nexport default {\n name: \"Mixin\",\n mixins: [Utils],\n emits: ['status'],\n\n props: {\n player: {\n type: Object,\n },\n },\n\n data() {\n return {\n iconClass: null,\n name: null,\n pluginName: null,\n }\n },\n\n methods: {\n async getPlayers() {\n return [{\n iconClass: this.iconClass,\n name: this.name,\n pluginName: this.pluginName,\n component: this,\n status: await this.status(),\n }]\n },\n\n async status() {\n return await this.request(`${this.pluginName}.status`)\n },\n\n async play(resource) {\n if (!resource) {\n return await this.pause()\n }\n\n return await this.request(`${this.pluginName}.play`, {resource: resource.url})\n },\n\n async pause() {\n return await this.request(`${this.pluginName}.pause`)\n },\n\n async stop() {\n return await this.request(`${this.pluginName}.stop`)\n },\n\n async setVolume(volume) {\n return await this.request(`${this.pluginName}.set_volume`, {volume: volume})\n },\n\n async seek(position) {\n return await this.request(`${this.pluginName}.seek`, {position: position})\n },\n\n async onNewMedia(event) {\n const isMine = await this.onMediaEvent(event)\n\n if (isMine && event.title) {\n this.notify({\n title: event.player || event.device || this.player?.name || this.name || this.pluginName,\n text: event.title,\n image: {\n iconClass: this.iconClass || 'fa fa-play',\n }\n })\n }\n },\n\n async onMediaEvent(event) {\n if (event.plugin !== this.pluginName)\n return false\n\n this.$emit('status', await this.status())\n return true\n },\n },\n\n mounted() {\n this.subscribe(this.onNewMedia, `on-new-media-${this.pluginName}`,\n 'platypush.message.event.media.NewPlayingMediaEvent')\n\n this.subscribe(this.onMediaEvent, `on-media-event-${this.pluginName}`,\n 'platypush.message.event.media.MediaPlayEvent',\n 'platypush.message.event.media.MediaStopEvent',\n 'platypush.message.event.media.MediaPauseEvent',\n 'platypush.message.event.media.MediaSeekEvent',\n 'platypush.message.event.media.MediaVolumeChangedEvent',\n 'platypush.message.event.media.MediaMuteChangedEvent')\n },\n\n destroy() {\n this.unsubscribe(`on-media-event-${this.pluginName}`)\n },\n}\n</script>\n","import script from \"./Mixin.vue?vue&type=script&lang=js\"\nexport * from \"./Mixin.vue?vue&type=script&lang=js\"\n\nexport default script","import { render } from \"./Chromecast.vue?vue&type=template&id=1a7eab8e&bindings={\\\"name\\\":\\\"data\\\",\\\"pluginName\\\":\\\"data\\\",\\\"iconClass\\\":\\\"data\\\",\\\"getPlayers\\\":\\\"options\\\",\\\"getPlayerName\\\":\\\"options\\\",\\\"status\\\":\\\"options\\\",\\\"play\\\":\\\"options\\\",\\\"pause\\\":\\\"options\\\",\\\"stop\\\":\\\"options\\\",\\\"setVolume\\\":\\\"options\\\",\\\"seek\\\":\\\"options\\\",\\\"onMediaEvent\\\":\\\"options\\\"}\"\nimport script from \"./Chromecast.vue?vue&type=script&lang=js\"\nexport * from \"./Chromecast.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","<template>\n <div />\n</template>\n\n<script>\nimport Mixin from \"@/components/panels/Media/Players/Mixin\";\n\nexport default {\n name: \"Kodi\",\n mixins: [Mixin],\n data() {\n return {\n iconClass: 'fa fa-kodi',\n name: 'Kodi',\n pluginName: 'media.kodi',\n }\n },\n\n methods: {\n async getPlayers() {\n return [{\n iconClass: this.iconClass,\n pluginName: this.pluginName,\n name: this.$root.config['media.kodi']?.host || this.name,\n component: this,\n status: await this.request(`${this.pluginName}.status`)\n }]\n }\n },\n}\n</script>\n","import { render } from \"./Kodi.vue?vue&type=template&id=145a816c&bindings={\\\"iconClass\\\":\\\"data\\\",\\\"name\\\":\\\"data\\\",\\\"pluginName\\\":\\\"data\\\",\\\"getPlayers\\\":\\\"options\\\"}\"\nimport script from \"./Kodi.vue?vue&type=script&lang=js\"\nexport * from \"./Kodi.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","<template>\n <div />\n</template>\n\n<script>\nimport Mixin from \"@/components/panels/Media/Players/Mixin\";\n\nexport default {\n name: \"Mplayer\",\n mixins: [Mixin],\n data() {\n return {\n iconClass: 'fa fa-tv',\n name: 'MPlayer',\n pluginName: 'media.mplayer',\n }\n },\n}\n</script>\n","import { render } from \"./Mplayer.vue?vue&type=template&id=0caf2d73&bindings={\\\"iconClass\\\":\\\"data\\\",\\\"name\\\":\\\"data\\\",\\\"pluginName\\\":\\\"data\\\"}\"\nimport script from \"./Mplayer.vue?vue&type=script&lang=js\"\nexport * from \"./Mplayer.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","<template>\n <div />\n</template>\n\n<script>\nimport Mixin from \"@/components/panels/Media/Players/Mixin\";\n\nexport default {\n name: \"Mpv\",\n mixins: [Mixin],\n data() {\n return {\n iconClass: 'fa fa-tv',\n name: 'mpv',\n pluginName: 'media.mpv',\n }\n },\n}\n</script>\n","import { render } from \"./Mpv.vue?vue&type=template&id=3b3bb533&bindings={\\\"iconClass\\\":\\\"data\\\",\\\"name\\\":\\\"data\\\",\\\"pluginName\\\":\\\"data\\\"}\"\nimport script from \"./Mpv.vue?vue&type=script&lang=js\"\nexport * from \"./Mpv.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","<template>\n <div />\n</template>\n\n<script>\nimport Mixin from \"@/components/panels/Media/Players/Mixin\";\n\nexport default {\n name: \"Omxplayer\",\n mixins: [Mixin],\n data() {\n return {\n iconClass: 'fa fa-tv',\n name: 'OMXPlayer',\n pluginName: 'media.omxplayer',\n }\n },\n}\n</script>\n","import { render } from \"./Omxplayer.vue?vue&type=template&id=0f086473&bindings={\\\"iconClass\\\":\\\"data\\\",\\\"name\\\":\\\"data\\\",\\\"pluginName\\\":\\\"data\\\"}\"\nimport script from \"./Omxplayer.vue?vue&type=script&lang=js\"\nexport * from \"./Omxplayer.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","<template>\n <div />\n</template>\n\n<script>\nimport Mixin from \"@/components/panels/Media/Players/Mixin\";\n\nexport default {\n name: \"Vlc\",\n mixins: [Mixin],\n data() {\n return {\n iconClass: 'fa fa-tv',\n name: 'VLC',\n pluginName: 'media.vlc',\n }\n },\n}\n</script>\n","import { render } from \"./Vlc.vue?vue&type=template&id=5b5bcdd3&bindings={\\\"iconClass\\\":\\\"data\\\",\\\"name\\\":\\\"data\\\",\\\"pluginName\\\":\\\"data\\\"}\"\nimport script from \"./Vlc.vue?vue&type=script&lang=js\"\nexport * from \"./Vlc.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","import { render } from \"./Players.vue?vue&type=template&id=37304dfd&scoped=true&bindings={\\\"pluginName\\\":\\\"props\\\",\\\"loading\\\":\\\"data\\\",\\\"players\\\":\\\"data\\\",\\\"selectedPlayer\\\":\\\"data\\\",\\\"config\\\":\\\"data\\\",\\\"plugins\\\":\\\"data\\\",\\\"loadPlugins\\\":\\\"options\\\",\\\"refresh\\\":\\\"options\\\",\\\"select\\\":\\\"options\\\"}\"\nimport script from \"./Players.vue?vue&type=script&lang=js\"\nexport * from \"./Players.vue?vue&type=script&lang=js\"\n\nimport \"./Players.vue?vue&type=style&index=0&id=37304dfd&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-37304dfd\"\n\nexport default script","import { render } from \"./Header.vue?vue&type=template&id=7882f794&scoped=true&bindings={\\\"pluginName\\\":\\\"props\\\",\\\"filterVisible\\\":\\\"data\\\",\\\"query\\\":\\\"data\\\",\\\"sources\\\":\\\"data\\\",\\\"search\\\":\\\"options\\\"}\"\nimport script from \"./Header.vue?vue&type=script&lang=js\"\nexport * from \"./Header.vue?vue&type=script&lang=js\"\n\nimport \"./Header.vue?vue&type=style&index=0&id=7882f794&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-7882f794\"\n\nexport default script","<template>\n <div class=\"row\" v-if=\"item?.title\">\n <div class=\"left side\">Title</div>\n <div class=\"right side\">\n <a :href=\"`https://www.imdb.com/title/${item.imdb_id}`\" target=\"_blank\" v-if=\"item.imdb_id\"\n v-text=\"item.title\" />\n <span v-else v-text=\"item.title\" />\n </div>\n </div>\n\n <div class=\"row\" v-if=\"item?.synopsis\">\n <div class=\"left side\">Synopsis</div>\n <div class=\"right side\" v-text=\"item.synopsis\" />\n </div>\n\n <div class=\"row\" v-if=\"item?.description\">\n <div class=\"left side\">Description</div>\n <div class=\"right side\" v-text=\"item.description\" />\n </div>\n\n <div class=\"row\" v-if=\"item?.channelId\">\n <div class=\"left side\">Channel</div>\n <div class=\"right side\">\n <a :href=\"`https://www.youtube.com/channel/${item.channelId}`\" target=\"_blank\"\n v-text=\"item.channelTitle || `https://www.youtube.com/channel/${item.channelId}`\" />\n </div>\n </div>\n\n <div class=\"row\" v-if=\"item?.year\">\n <div class=\"left side\">Year</div>\n <div class=\"right side\" v-text=\"item.year\" />\n </div>\n\n <div class=\"row\" v-if=\"item?.publishedAt\">\n <div class=\"left side\">Published at</div>\n <div class=\"right side\" v-text=\"formatDate(item.publishedAt, true)\" />\n </div>\n\n <div class=\"row\" v-if=\"item?.file\">\n <div class=\"left side\">File</div>\n <div class=\"right side\" v-text=\"item.file\" />\n </div>\n\n <div class=\"row\" v-if=\"item?.url\">\n <div class=\"left side\">URL</div>\n <div class=\"right side url\">\n <a :href=\"item.url\" target=\"_blank\" v-text=\"item.url\" />\n </div>\n </div>\n\n <div class=\"row\" v-if=\"item?.trailer\">\n <div class=\"left side\">Trailer</div>\n <div class=\"right side url\">\n <a :href=\"item.trailer\" target=\"_blank\" v-text=\"item.trailer\" />\n </div>\n </div>\n\n <div class=\"row\" v-if=\"item?.size\">\n <div class=\"left side\">Size</div>\n <div class=\"right side\" v-text=\"convertSize(item.size)\" />\n </div>\n\n <div class=\"row\" v-if=\"item?.quality\">\n <div class=\"left side\">Quality</div>\n <div class=\"right side\" v-text=\"item.quality\" />\n </div>\n\n <div class=\"row\" v-if=\"item?.seeds\">\n <div class=\"left side\">Seeds</div>\n <div class=\"right side\" v-text=\"item.seeds\" />\n </div>\n\n <div class=\"row\" v-if=\"item?.peers\">\n <div class=\"left side\">Peers</div>\n <div class=\"right side\" v-text=\"item.peers\" />\n </div>\n\n <div class=\"row\" v-if=\"item?.language\">\n <div class=\"left side\">Language</div>\n <div class=\"right side\" v-text=\"item.language\" />\n </div>\n</template>\n\n<script>\nimport Utils from \"@/Utils\";\n\nexport default {\n name: \"Info\",\n mixins: [Utils],\n props: {\n item: {\n type: Object,\n default: () => {},\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.row {\n display: flex;\n min-height: 3em;\n padding: .5em 1em;\n\n @include until ($tablet) {\n flex-direction: column;\n }\n\n @include from ($tablet) {\n align-items: center;\n }\n\n &:not(:last-child) {\n border-bottom: $default-border-2;\n }\n\n &:hover {\n background: $hover-bg;\n border-radius: .5em;\n }\n\n .side {\n align-items: center;\n display: inline-flex;\n\n &.url {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n @include until ($tablet) {\n display: flex;\n\n &.left {\n font-weight: bold;\n }\n\n &.right {\n justify-content: left;\n }\n }\n\n @include from ($tablet) {\n display: inline-flex;\n\n &.left {\n width: 22%;\n margin-right: 3%;\n }\n\n &.right {\n width: 75%;\n justify-content: right;\n }\n }\n }\n}\n</style>\n","import { render } from \"./Info.vue?vue&type=template&id=7ef655c2&scoped=true&bindings={\\\"item\\\":\\\"props\\\"}\"\nimport script from \"./Info.vue?vue&type=script&lang=js\"\nexport * from \"./Info.vue?vue&type=script&lang=js\"\n\nimport \"./Info.vue?vue&type=style&index=0&id=7ef655c2&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-7ef655c2\"\n\nexport default script","<template>\n <div class=\"media-results\">\n <div class=\"row item\" :class=\"{selected: selectedResult === i}\" v-for=\"(result, i) in results\" :key=\"i\"\n @click=\"$emit('select', i)\">\n <div class=\"col-10 left side\">\n <div class=\"icon\">\n <i :class=\"typeIcons[result.type]\" />\n </div>\n <div class=\"title\" v-text=\"result.title\" />\n </div>\n\n <div class=\"col-2 right side\">\n <Dropdown title=\"Actions\" icon-class=\"fa fa-ellipsis-h\" @click=\"$emit('select', i)\">\n <DropdownItem icon-class=\"fa fa-play\" text=\"Play\" @click=\"$emit('play', result)\" />\n <DropdownItem icon-class=\"fas fa-closed-captioning\" text=\"Play with captions\" />\n <DropdownItem icon-class=\"fa fa-info\" text=\"Info\" @click=\"$emit('info', result)\" />\n </Dropdown>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport Dropdown from \"@/components/elements/Dropdown\";\nimport DropdownItem from \"@/components/elements/DropdownItem\";\n\nexport default {\n name: \"Results\",\n components: {Dropdown, DropdownItem},\n emits: ['select', 'info', 'play'],\n props: {\n results: {\n type: Array,\n default: () => [],\n },\n\n selectedResult: {\n type: Number,\n },\n },\n\n data() {\n return {\n typeIcons: {\n 'file': 'fa fa-hdd',\n 'torrent': 'fa fa-magnet',\n 'youtube': 'fab fa-youtube',\n },\n }\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"items\";\n\n.media-results {\n width: 100%;\n height: 100%;\n background: $background-color;\n overflow: auto;\n\n .item {\n display: flex;\n align-items: center;\n\n &.selected {\n background: $selected-bg;\n }\n\n .side {\n display: inline-flex;\n align-items: center;\n\n &.right {\n justify-content: right;\n }\n\n ::v-deep(.dropdown-container) {\n .item {\n box-shadow: none;\n }\n\n button {\n border: 0;\n padding: 0;\n background: none;\n opacity: .7;\n\n &:hover {\n color: $default-hover-fg-2;\n }\n }\n }\n }\n }\n}\n</style>\n","import { render } from \"./Results.vue?vue&type=template&id=21e154b2&scoped=true&bindings={\\\"results\\\":\\\"props\\\",\\\"selectedResult\\\":\\\"props\\\",\\\"typeIcons\\\":\\\"data\\\"}\"\nimport script from \"./Results.vue?vue&type=script&lang=js\"\nexport * from \"./Results.vue?vue&type=script&lang=js\"\n\nimport \"./Results.vue?vue&type=style&index=0&id=21e154b2&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-21e154b2\"\n\nexport default script","import { render } from \"./Index.vue?vue&type=template&id=99a8277e&scoped=true&bindings={\\\"pluginName\\\":\\\"props\\\",\\\"mediaButtons\\\":\\\"props\\\",\\\"loading\\\":\\\"data\\\",\\\"results\\\":\\\"data\\\",\\\"selectedResult\\\":\\\"data\\\",\\\"selectedPlayer\\\":\\\"data\\\",\\\"search\\\":\\\"options\\\",\\\"play\\\":\\\"options\\\",\\\"pause\\\":\\\"options\\\",\\\"stop\\\":\\\"options\\\",\\\"setVolume\\\":\\\"options\\\",\\\"seek\\\":\\\"options\\\",\\\"refresh\\\":\\\"options\\\",\\\"onStatusUpdate\\\":\\\"options\\\"}\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport \"./Index.vue?vue&type=style&index=0&id=99a8277e&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-99a8277e\"\n\nexport default script","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar nativeEndsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return nativeEndsWith\n ? nativeEndsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\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-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-loader-v16/dist/index.js??ref--0-1!./Info.vue?vue&type=style&index=0&id=7ef655c2&lang=scss&scoped=true\"","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\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-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-loader-v16/dist/index.js??ref--0-1!./Players.vue?vue&type=style&index=0&id=37304dfd&lang=scss&scoped=true\"","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-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-loader-v16/dist/index.js??ref--0-1!./Results.vue?vue&type=style&index=0&id=21e154b2&lang=scss&scoped=true\""],"sourceRoot":""}