platypush/platypush/backend/http/dist/static/js/chunk-52804492.1cbed362.js.map

1 line
118 KiB
Plaintext

{"version":3,"sources":["webpack:///./src/components/elements/DropdownItem.vue?88d4","webpack:///./src/components/elements/FormFooter.vue?502c","webpack:///./src/components/panels/Music/Index.vue","webpack:///./src/components/elements/FormFooter.vue","webpack:///./src/components/elements/FormFooter.vue?3524","webpack:///./src/components/Media/Utils.vue","webpack:///./src/components/Media/Utils.vue?c9e1","webpack:///./src/components/Media/View.vue","webpack:///./src/components/Media/Controls.vue","webpack:///./src/components/Media/Controls.vue?9965","webpack:///./src/components/Media/View.vue?55b2","webpack:///./src/components/panels/Music/Nav.vue","webpack:///./src/components/panels/Music/Nav.vue?72ba","webpack:///./src/components/panels/Music/Playlist.vue","webpack:///./src/components/panels/Music/Header.vue","webpack:///./src/components/panels/Music/Header.vue?ac30","webpack:///./src/components/elements/Dropdown.vue","webpack:///./src/components/elements/Dropdown.vue?ce46","webpack:///./src/components/elements/DropdownItem.vue","webpack:///./src/components/elements/DropdownItem.vue?41ff","webpack:///./src/components/panels/Music/Playlist.vue?1c9f","webpack:///./src/components/panels/Music/Playlists.vue","webpack:///./src/components/panels/Music/Playlists.vue?d2dd","webpack:///./src/components/panels/Music/Index.vue?080f","webpack:///./node_modules/core-js/modules/es.string.repeat.js","webpack:///./src/components/panels/Music/Header.vue?78d1","webpack:///./node_modules/core-js/modules/es.set.js","webpack:///./src/components/panels/Music/Playlist.vue?e6dc","webpack:///./src/components/Media/View.vue?4cb6","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///./src/components/Media/Controls.vue?d58f","webpack:///./src/components/elements/Dropdown.vue?f6e2","webpack:///./src/components/panels/Music/Playlists.vue?2a0e","webpack:///./node_modules/core-js/internals/freezing.js","webpack:///./src/components/panels/Music/Nav.vue?c585","webpack:///./src/components/panels/Music/Index.vue?a6bf","webpack:///./node_modules/core-js/internals/internal-metadata.js"],"names":["class","loading","plugin-name","pluginName","status","track","$emit","$event","selected-view","selectedView","tracks","openAddToPlaylist","playlists","edited-playlist","editedPlaylist","editedPlaylistTracks","title","ref","trackInfo","file","artist","href","$route","fullPath","album","date","time","addToPlaylistTrack","selectedPlaylists","Array","length","keys","map","type","placeholder","playlistFilter","playlist","i","name","toLowerCase","indexOf","key","checked","target","addToPlaylist","render","__scopeId","methods","convertTime","parseFloat","t","h","parseInt","m","s","attr","ret","push","join","expanded","buttons","previous","stop","state","next","disabled","muted","value","volume","range","volumeRange","consume","random","repeat","elapsed","duration","components","Slider","mixins","emits","props","Object","default","data","lastSync","this","computed","getTime","Date","mounted","self","$watch","setInterval","Math","round","Controls","String","required","views","view","displayName","iconClass","collapsed","Boolean","playing","search","library","filter","addTrack","icon-class","text","playlistSave","selectedTracks","selectionMode","Set","selectedTracksSet","has","playingPos","displayedTracks","onTrackDragStart","onTrackDragEnd","onTrackDragOver","draggable","onTrackClick","toggle","visible","id","items","documentClickHndl","event","element","$refs","dropdown","parentElement","close","document","removeEventListener","open","addEventListener","setTimeout","style","left","top","getComputedStyle","button","height","getBoundingClientRect","window","innerWidth","clientWidth","width","innerHeight","clientHeight","clicked","$parent","DropdownItem","Dropdown","MusicHeader","infoTrack","sourcePos","targetPos","positions","pos","shiftKey","sort","idx","ctrlKey","splice","prompt","body","querySelectorAll","forEach","classList","remove","from","to","add","trackElement","offset","offsetTop","header","$el","scrollTo","trackFilter","displayedPlaylists","Number","editor","Loading","Modal","Nav","MediaView","Playlist","Playlists","FormFooter","config","onStatusEvent","plugin_name","onPlaylistEvent","onNewPlayingTrack","notify","html","image","playlistsModal","isVisible","subscribe","info","unmounted","unsubscribe","$","proto","collection","collectionStrong","module","exports","init","arguments","undefined","defineProperty","f","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","index","first","last","size","AS_ENTRIES","getInternalState","define","entry","getEntry","removed","prototype","clear","prev","callbackfn","boundFunction","get","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","global","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","call","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","forced","toAbsoluteIndex","toInteger","toLength","toObject","arraySpeciesCreate","createProperty","arrayMethodHasSpeciesSupport","arrayMethodUsesToLength","HAS_SPECIES_SUPPORT","USES_TO_LENGTH","ACCESSORS","0","1","max","min","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","start","deleteCount","insertCount","actualDeleteCount","A","k","O","len","actualStart","argumentsLength","TypeError","isExtensible","preventExtensions","hiddenKeys","uid","FREEZING","METADATA","setMetadata","it","objectID","weakData","getWeakData","onFreeze","meta"],"mappings":"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","file":"static/js/chunk-52804492.1cbed362.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!./DropdownItem.vue?vue&type=style&index=0&id=607f43da&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!./FormFooter.vue?vue&type=style&index=0&id=2495ce8a&lang=scss&scoped=true\"","<template>\n <Loading v-if=\"loading\" />\n\n <MediaView :plugin-name=\"pluginName\" :status=\"status\" :track=\"track\" @play=\"$emit('play', $event)\"\n @pause=\"$emit('pause')\" @stop=\"$emit('stop')\" @previous=\"$emit('previous')\" @next=\"$emit('next')\"\n @set-volume=\"$emit('set-volume', $event)\" @seek=\"$emit('seek', $event)\" @consume=\"$emit('consume', $event)\"\n @repeat=\"$emit('repeat', $event)\" @random=\"$emit('random', $event)\" v-else>\n <main>\n <div class=\"nav-container\">\n <Nav :selected-view=\"selectedView\" @input=\"selectedView = $event\" />\n </div>\n\n <div class=\"view-container\">\n <Playlist :tracks=\"tracks\" :status=\"status\" :loading=\"loading\" v-if=\"selectedView === 'playing'\"\n @play=\"$emit('play', $event)\" @clear=\"$emit('clear')\" @swap=\"$emit('swap-tracks', $event)\"\n @add=\"$emit('add-to-tracklist', $event)\" @remove=\"$emit('remove-from-tracklist', $event)\"\n @move=\"$emit('tracklist-move', $event)\" @save=\"$emit('tracklist-save', $event)\"\n @track-info=\"$emit('track-info', $event)\" @add-to-playlist=\"openAddToPlaylist\" />\n\n <Playlists :playlists=\"playlists\" :loading=\"loading\" v-else-if=\"selectedView === 'playlists'\"\n :edited-playlist=\"editedPlaylist\" :tracks=\"editedPlaylistTracks\"\n @play=\"$emit('play-playlist', $event)\" @load=\"$emit('load-playlist', $event)\"\n @remove=\"$emit('remove-playlist', $event)\" @playlist-edit=\"$emit('playlist-edit', $event)\"\n @load-track=\"$emit('add-to-tracklist-from-edited-playlist', $event)\"\n @remove-track=\"$emit('remove-from-playlist', $event)\" @track-info=\"$emit('track-info', $event)\"\n @playlist-add=\"$emit('playlist-add', $event)\" @add-to-playlist=\"openAddToPlaylist\"\n @track-move=\"$emit('playlist-track-move', $event)\"/>\n </div>\n </main>\n </MediaView>\n\n <div class=\"track-info-container\">\n <Modal title=\"Track info\" ref=\"trackInfo\">\n <div class=\"track-info-content\" v-if=\"trackInfo\">\n <div class=\"row file\" v-if=\"trackInfo.file\">\n <div class=\"col-3 attr\">File</div>\n <div class=\"col-9 value\" v-text=\"trackInfo.file\" />\n </div>\n\n <div class=\"row artist\" v-if=\"trackInfo.artist\">\n <div class=\"col-3 attr\">Artist</div>\n <div class=\"col-9 value\">\n <a :href=\"$route.fullPath\" v-text=\"trackInfo.artist\"\n @click.stop=\"$emit('search', {artist: trackInfo.artist})\" />\n </div>\n </div>\n\n <div class=\"row track-title\" v-if=\"trackInfo.title\">\n <div class=\"col-3 attr\">Title</div>\n <div class=\"col-9 value\" v-text=\"trackInfo.title\" />\n </div>\n\n <div class=\"row album\" v-if=\"trackInfo.album\">\n <div class=\"col-3 attr\">Album</div>\n <div class=\"col-9 value\">\n <a :href=\"$route.fullPath\" v-text=\"trackInfo.album\"\n @click.stop=\"$emit('search', {album: trackInfo.album})\" />\n </div>\n </div>\n\n <div class=\"row date\" v-if=\"trackInfo.date\">\n <div class=\"col-3 attr\">Date</div>\n <div class=\"col-9 value\" v-text=\"trackInfo.date\" />\n </div>\n\n <div class=\"row duration\" v-if=\"trackInfo.time\">\n <div class=\"col-3 attr\">Duration</div>\n <div class=\"col-9 value\" v-text=\"convertTime(trackInfo.time)\" />\n </div>\n </div>\n </Modal>\n </div>\n\n <div class=\"playlists-modal-container\">\n <Modal title=\"Playlists\" ref=\"playlistsModal\" @close=\"addToPlaylistTrack = null\"\n @open=\"selectedPlaylists = [...Array(playlists.length).keys()].map(() => false)\">\n <div class=\"filter\">\n <label>\n <input type=\"search\" placeholder=\"Filter\" v-model=\"playlistFilter\">\n </label>\n </div>\n\n <div class=\"playlists\">\n <label class=\"row playlist\"\n :class=\"{hidden: playlistFilter?.length > 0 && playlist.name.toLowerCase().indexOf(playlistFilter.toLowerCase()) < 0}\"\n v-for=\"(playlist, i) in playlists\" :key=\"i\">\n <input type=\"checkbox\" :checked=\"selectedPlaylists[i]\"\n @change=\"selectedPlaylists[i] = $event.target.checked\" />\n <span class=\"name\" v-text=\"playlist.name\" />\n </label>\n </div>\n\n <FormFooter>\n <button @click=\"addToPlaylist\">\n <i class=\"fa fa-plus\" /> &nbsp; Add\n </button>\n </FormFooter>\n </Modal>\n </div>\n</template>\n\n<script>\nimport FormFooter from \"@/components/elements/FormFooter\";\nimport Loading from \"@/components/Loading\";\nimport Modal from \"@/components/Modal\";\nimport MediaUtils from \"@/components/Media/Utils\";\nimport MediaView from \"@/components/Media/View\";\nimport Nav from \"@/components/panels/Music/Nav\";\nimport Playlist from \"@/components/panels/Music/Playlist\";\nimport Playlists from \"@/components/panels/Music/Playlists\";\nimport Utils from \"@/Utils\";\n\nexport default {\n name: \"Music\",\n emits: ['play', 'pause', 'stop', 'clear', 'previous', 'next', 'set-volume', 'seek', 'consume', 'repeat', 'random',\n 'status-update', 'playlist-update', 'new-playing-track', 'add-to-tracklist', 'remove-from-tracklist',\n 'swap-tracks', 'play-playlist', 'load-playlist', 'remove-playlist', 'tracklist-move', 'tracklist-save',\n 'add-to-tracklist-from-edited-playlist', 'remove-from-playlist', 'track-info', 'playlist-add', 'add-to-playlist',\n 'playlist-track-move'],\n\n mixins: [Utils, MediaUtils],\n components: {Loading, Modal, Nav, MediaView, Playlist, Playlists, FormFooter},\n props: {\n pluginName: {\n type: String,\n required: true,\n },\n\n loading: {\n type: Boolean,\n default: false,\n },\n\n config: {\n type: Object,\n default: () => {},\n },\n\n tracks: {\n type: Array,\n default: () => [],\n },\n\n editedPlaylistTracks: {\n type: Array,\n default: () => [],\n },\n\n playlists: {\n type: Array,\n default: () => [],\n },\n\n status: {\n type: Object,\n default: () => {},\n },\n\n editedPlaylist: {\n type: Number,\n },\n\n trackInfo: {\n type: String,\n },\n },\n\n data() {\n return {\n selectedView: 'playing',\n selectedPlaylists: [],\n addToPlaylistTrack: null,\n playlistFilter: '',\n }\n },\n\n computed: {\n track() {\n if (this.status?.playingPos == null)\n return null\n\n return this.tracks[this.status.playingPos]\n }\n },\n\n methods: {\n async onStatusEvent(event) {\n if (event.plugin_name !== this.pluginName)\n return\n\n this.$emit('status-update', event)\n },\n\n async onPlaylistEvent(event) {\n if (event.plugin_name !== this.pluginName)\n return\n\n this.$emit('playlist-update', event)\n },\n\n async onNewPlayingTrack(event) {\n if (event.plugin_name !== this.pluginName)\n return\n\n this.notify({\n html: `<b>${event.track?.artist}</b><br>${event.track?.title}`,\n image: {\n iconClass: 'fa fa-play',\n },\n })\n\n this.$emit('new-playing-track', event)\n },\n\n async openAddToPlaylist(track) {\n this.addToPlaylistTrack = track\n this.$refs.playlistsModal.isVisible = true\n },\n\n async addToPlaylist() {\n this.$emit('add-to-playlist', {\n track: this.addToPlaylistTrack,\n playlists: [...Array(this.selectedPlaylists.length).keys()].filter((i) => this.selectedPlaylists[i])\n })\n\n this.$refs.playlistsModal.isVisible = false\n this.addToPlaylistTrack = null\n this.playlistFilter = ''\n },\n },\n\n mounted() {\n this.subscribe(this.onStatusEvent, 'on-status-update',\n 'platypush.message.event.music.MusicPlayEvent',\n 'platypush.message.event.music.MusicPauseEvent',\n 'platypush.message.event.music.MusicStopEvent',\n 'platypush.message.event.music.SeekChangeEvent',\n 'platypush.message.event.music.VolumeChangeEvent',\n 'platypush.message.event.music.MuteChangeEvent',\n 'platypush.message.event.music.PlaybackRepeatModeChangeEvent',\n 'platypush.message.event.music.PlaybackRandomModeChangeEvent',\n 'platypush.message.event.music.PlaybackConsumeModeChangeEvent',\n 'platypush.message.event.music.PlaybackSingleModeChangeEvent',\n )\n\n this.subscribe(this.onPlaylistEvent, 'on-playlist-update',\n 'platypush.message.event.music.PlaylistChangeEvent')\n\n this.subscribe(this.onNewPlayingTrack, 'on-new-playing-track',\n 'platypush.message.event.music.NewPlayingTrackEvent')\n\n this.$watch(() => this.trackInfo, (info) => {\n if (info != null)\n this.$refs.trackInfo.isVisible = true\n })\n },\n\n unmounted() {\n this.unsubscribe('on-status-update')\n this.unsubscribe('on-playlist-update')\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\nmain {\n height: 100%;\n background: $background-color;\n display: flex;\n flex-direction: row-reverse;\n\n .view-container {\n display: flex;\n flex-grow: 1;\n overflow: auto;\n }\n\n ::v-deep(button) {\n background: none;\n padding: .5em .75em;\n border: 0;\n\n &:hover {\n border: 0;\n color: $default-hover-fg;\n }\n }\n\n ::v-deep(a) {\n color: $default-fg;\n opacity: 0.65;\n\n &:hover {\n opacity: 0.75;\n border-bottom: 1px dotted;\n }\n }\n}\n\n.playlists-modal-container {\n ::v-deep(.body) {\n display: flex;\n flex-direction: column;\n padding: 0 !important;\n }\n\n ::v-deep(.filter) {\n padding: .33em;\n background-color: $default-bg-6;\n border-bottom: $default-border-2;\n\n input {\n width: 90%;\n }\n }\n\n ::v-deep(.playlists) {\n overflow: auto;\n padding: 1.5em;\n\n label {\n display: flex;\n align-items: center;\n\n &:not(:last-child) {\n margin-bottom: .5em;\n }\n\n .name {\n margin-left: .5em;\n }\n }\n }\n}\n\n.track-info-container {\n ::v-deep(.body) {\n height: 15em;\n overflow: auto;\n\n @include until($tablet) {\n width: 25em;\n }\n\n @include from($tablet) {\n width: 35em;\n }\n }\n}\n</style>\n","<template>\n <div class=\"form-footer\">\n <slot />\n </div>\n</template>\n\n<script>\nexport default {\n name: \"FormFooter\"\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.form-footer {\n height: 5em;\n padding: 1em;\n text-align: right;\n border-top: $default-border-2;\n}\n</style>\n","import { render } from \"./FormFooter.vue?vue&type=template&id=2495ce8a&scoped=true&bindings={}\"\nimport script from \"./FormFooter.vue?vue&type=script&lang=js\"\nexport * from \"./FormFooter.vue?vue&type=script&lang=js\"\n\nimport \"./FormFooter.vue?vue&type=style&index=0&id=2495ce8a&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-2495ce8a\"\n\nexport default script","<script>\nexport default {\n name: \"Utils\",\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}\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","<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\" @play=\"$emit('play', $event)\" @pause=\"$emit('pause', $event)\"\n @stop=\"$emit('stop')\" @previous=\"$emit('previous')\" @next=\"$emit('next')\" @seek=\"$emit('seek', $event)\"\n @set-volume=\"$emit('set-volume', $event)\" @consume=\"$emit('consume', $event)\"\n @repeat=\"$emit('repeat', $event)\" @random=\"$emit('random', $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'],\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}\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: calc(100% - #{$media-ctrl-panel-height});\n overflow: auto;\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 !== 'stop' ? 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\">\n <a href=\"#\" v-text=\"track.title\" @click=\"$emit('search', {album: track.album})\" v-if=\"track.album\"></a>\n <span v-text=\"track.title\" v-else></span>\n </div>\n <div class=\"artist\" v-if=\"track.artist\">\n <a href=\"#\" v-text=\"track.artist\" @click=\"$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 !== 'stop' ? 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 return {\n expanded: false,\n lastSync: 0,\n elapsed: this.status?.elapsed,\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\n this.$watch(() => self.track, (track) => {\n if (!track || self.status?.state !== 'play')\n self.lastSync = this.getTime()\n })\n\n this.$watch(() => self.status, () => {\n self.lastSync = this.getTime()\n })\n\n setInterval(() => {\n if (self.status?.state === 'play')\n self.elapsed = (self.status?.elapsed || 0) + Math.round(this.getTime() - self.lastSync)\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 }\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=0d70c0de&scoped=true&bindings={\\\"track\\\":\\\"props\\\",\\\"status\\\":\\\"props\\\",\\\"buttons\\\":\\\"props\\\",\\\"volumeRange\\\":\\\"props\\\",\\\"expanded\\\":\\\"data\\\",\\\"lastSync\\\":\\\"data\\\",\\\"elapsed\\\":\\\"data\\\",\\\"duration\\\":\\\"options\\\",\\\"getTime\\\":\\\"options\\\"}\"\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=0d70c0de&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-0d70c0de\"\n\nexport default script","import { render } from \"./View.vue?vue&type=template&id=b6f41ec8&scoped=true&bindings={\\\"pluginName\\\":\\\"props\\\",\\\"status\\\":\\\"props\\\",\\\"track\\\":\\\"props\\\"}\"\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=b6f41ec8&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-b6f41ec8\"\n\nexport default script","<template>\n <nav>\n <li v-for=\"(view, name) in views\" :key=\"name\" :title=\"view.displayName\"\n :class=\"{selected: name === selectedView}\" @click=\"$emit('input', name)\">\n <i :class=\"view.iconClass\" />\n </li>\n </nav>\n</template>\n\n<script>\nexport default {\n name: \"Nav\",\n emits: ['input'],\n props: {\n selectedView: {\n type: String,\n },\n\n collapsed: {\n type: Boolean,\n default: false,\n },\n\n views: {\n type: Object,\n default: () => {\n return {\n playing: {\n iconClass: 'fas fa-play',\n displayName: 'Now Playing',\n },\n\n search: {\n iconClass: 'fas fa-search',\n displayName: 'Search',\n },\n\n playlists: {\n iconClass: 'fas fa-list-ul',\n displayName: 'Playlists',\n },\n\n library: {\n iconClass: 'fas fa-compact-disc',\n displayName: 'Library',\n },\n }\n }\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import 'vars.scss';\n\nnav {\n width: $music-nav-width;\n height: 100%;\n background: $nav-collapsed-bg;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n box-shadow: 2.5px 0 4.5px 2px $nav-collapsed-fg;\n margin-left: 2.5px;\n overflow: hidden;\n\n li {\n display: flex;\n align-items: center;\n font-size: 1.2em;\n cursor: pointer;\n list-style: none;\n padding: .6em;\n opacity: 0.7;\n\n &.selected,\n &:hover {\n border-radius: 1.2em;\n margin: 0 0.2em;\n }\n\n &:hover {\n background: $nav-entry-collapsed-hover-bg;\n }\n\n &.selected {\n background: $nav-entry-collapsed-selected-bg;\n }\n\n }\n}\n</style>\n","import { render } from \"./Nav.vue?vue&type=template&id=04a75b69&scoped=true&bindings={\\\"selectedView\\\":\\\"props\\\",\\\"collapsed\\\":\\\"props\\\",\\\"views\\\":\\\"props\\\"}\"\nimport script from \"./Nav.vue?vue&type=script&lang=js\"\nexport * from \"./Nav.vue?vue&type=script&lang=js\"\n\nimport \"./Nav.vue?vue&type=style&index=0&id=04a75b69&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-04a75b69\"\n\nexport default script","<template>\n <Loading v-if=\"loading\" />\n\n <div class=\"playlist fade-in\" v-else>\n <div class=\"header-container\">\n <MusicHeader ref=\"header\">\n <div class=\"col-8 filter\">\n <label>\n <input type=\"search\" placeholder=\"Filter\" v-model=\"filter\">\n </label>\n </div>\n\n <div class=\"col-4 buttons\">\n <button title=\"Add track\" @click=\"addTrack\">\n <i class=\"fa fa-plus\"></i>\n </button>\n\n <Dropdown title=\"Actions\" icon-class=\"fa fa-ellipsis-h\">\n <DropdownItem text=\"Save as playlist\" icon-class=\"fa fa-save\" :disabled=\"!tracks?.length\"\n @click=\"playlistSave\" />\n <DropdownItem text=\"Swap tracks\" icon-class=\"fa fa-retweet\" v-if=\"selectedTracks?.length === 2\"\n @click=\"$emit('swap', selectedTracks)\" />\n <DropdownItem :text=\"selectionMode ? 'End selection' : 'Start selection'\" icon-class=\"far fa-check-square\"\n :disabled=\"!tracks?.length\" @click=\"selectionMode = !selectionMode\" />\n <DropdownItem :text=\"selectedTracks?.length === tracks?.length ? 'Unselect all' : 'Select all'\"\n icon-class=\"fa fa-check-double\" :disabled=\"!tracks?.length\"\n @click=\"selectedTracks = selectedTracks.length === tracks.length ? [] : [...Array(tracks.length).keys()]\" />\n <DropdownItem :text=\"'Remove track' + (selectedTracks.length > 1 ? 's' : '')\"\n icon-class=\"fa fa-trash\" v-if=\"selectedTracks.length > 0\"\n @click=\"$emit('remove', [...(new Set(selectedTracks))])\" />\n <DropdownItem text=\"Clear playlist\" icon-class=\"fa fa-ban\" :disabled=\"!tracks?.length\" @click=\"$emit('clear')\" />\n </Dropdown>\n </div>\n </MusicHeader>\n </div>\n\n <div class=\"body\" ref=\"body\">\n <div class=\"no-content\" v-if=\"!tracks?.length\">\n No tracks are loaded\n </div>\n\n <div class=\"row track\" @dragstart=\"onTrackDragStart(i)\" @dragend=\"onTrackDragEnd(i)\"\n @dragover=\"onTrackDragOver(i)\" draggable=\"true\"\n :class=\"{selected: selectedTracksSet.has(i), active: status?.playingPos === i, hidden: !displayedTracks.has(i)}\"\n v-for=\"(track, i) in tracks\" :key=\"i\" @click=\"onTrackClick($event, i)\" @dblclick=\"$emit('play', {pos: i})\">\n <div class=\"col-10\">\n <div class=\"title\">\n {{ track.title || '[No Title]' }}\n <div class=\"playing-icon\" :class=\"{paused: status?.state === 'pause'}\"\n v-if=\"status?.playingPos === i && (status?.state === 'play' || status?.state === 'pause')\">\n <span v-for=\"i in [...Array(3).keys()]\" :key=\"i\" />\n </div>\n </div>\n\n <div class=\"artist\" v-if=\"track.artist\">\n <a :href=\"$route.fullPath\" v-text=\"track.artist\"\n @click.stop=\"$emit('search', {artist: track.artist})\" />\n </div>\n\n <div class=\"album\" v-if=\"track.album\">\n <a :href=\"$route.fullPath\" v-text=\"track.album\"\n @click.stop=\"$emit('search', {artist: track.album})\" />\n </div>\n </div>\n\n <div class=\"col-2 right-side\">\n <span class=\"duration\" v-text=\"track.time ? convertTime(track.time) : '-:--'\" />\n\n <span class=\"actions\">\n <Dropdown title=\"Actions\" icon-class=\"fa fa-ellipsis-h\">\n <DropdownItem text=\"Play\" icon-class=\"fa fa-play\" @click=\"$emit('play', {pos: i})\" />\n <DropdownItem text=\"Add to playlist\" icon-class=\"fa fa-list-ul\" @click=\"$emit('add-to-playlist', track)\" />\n <DropdownItem text=\"Remove\" icon-class=\"fa fa-trash\" @click=\"$emit('remove', [...(new Set([...selectedTracks, i]))])\" />\n <DropdownItem text=\"Track info\" icon-class=\"fa fa-info\" @click=\"$emit('track-info', tracks[i])\" />\n </Dropdown>\n </span>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport MusicHeader from \"@/components/panels/Music/Header\";\nimport MediaUtils from \"@/components/Media/Utils\";\nimport Dropdown from \"@/components/elements/Dropdown\";\nimport DropdownItem from \"@/components/elements/DropdownItem\";\n\nexport default {\n name: \"Playlist\",\n mixins: [MediaUtils],\n components: {DropdownItem, Dropdown, MusicHeader},\n emits: ['play', 'clear', 'add', 'remove', 'swap', 'search', 'move', 'save', 'track-info'],\n props: {\n tracks: {\n type: Array,\n default: () => [],\n },\n\n loading: {\n type: Boolean,\n default: false,\n },\n\n status: {\n type: Object,\n default: () => {},\n }\n },\n\n data() {\n return {\n selectionMode: false,\n selectedTracks: [],\n filter: '',\n infoTrack: null,\n sourcePos: null,\n targetPos: null,\n }\n },\n\n computed: {\n selectedTracksSet() {\n return new Set(this.selectedTracks)\n },\n\n displayedTracks() {\n const positions = [...Array(this.tracks.length).keys()]\n if (!this.filter?.length)\n return new Set(positions)\n\n const self = this\n const filter = (self.filter || '').toLowerCase()\n\n return new Set(\n positions.filter((pos) => {\n const track = this.tracks[pos]\n return (track?.artist || '').toLowerCase().indexOf(filter) >= 0\n || (track?.title || '').toLowerCase().indexOf(filter) >= 0\n || (track?.album || '').toLowerCase().indexOf(filter) >= 0\n })\n )\n },\n },\n\n methods: {\n onTrackClick(event, pos) {\n if (event.shiftKey) {\n const selectedTracks = this.selectedTracks.sort()\n if (!selectedTracks.length) {\n this.selectedTracks = [pos]\n } else if (pos < selectedTracks[0]) {\n this.selectedTracks = [\n ...this.selectedTracks,\n ...[...Array(selectedTracks[0] - pos).keys()].map((i) => i + pos)\n ]\n } else if (pos > selectedTracks[selectedTracks.length - 1]) {\n this.selectedTracks = [\n ...this.selectedTracks,\n ...[...Array(pos - selectedTracks[selectedTracks.length - 1] + 1).keys()].\n map((i) => i + selectedTracks[selectedTracks.length - 1])\n ]\n }\n } else {\n const idx = this.selectedTracks.indexOf(pos)\n if (this.selectionMode || event.ctrlKey) {\n if (idx >= 0)\n this.selectedTracks.splice(idx, 1)\n else\n this.selectedTracks.push(pos)\n } else {\n if (idx >= 0)\n this.selectedTracks = []\n else\n this.selectedTracks = [pos]\n }\n }\n },\n\n addTrack() {\n const track = prompt('Item path or URL')\n if (!track?.length)\n return\n\n this.$emit('add', track)\n },\n\n onTrackDragStart(track) {\n this.sourcePos = track\n },\n\n onTrackDragEnd() {\n this.$refs.body.querySelectorAll('.track').forEach((track) => track.classList.remove('dragover'));\n if (this.sourcePos == null || this.targetPos == null || this.sourcePos === this.targetPos)\n return\n\n this.$emit('move', {from: this.sourcePos, to: this.targetPos})\n this.sourcePos = null\n this.targetPos = null\n },\n\n onTrackDragOver(track) {\n this.targetPos = track\n const tracks = this.$refs.body.querySelectorAll('.track')\n tracks.forEach((track) => track.classList.remove('dragover'));\n [...tracks][track].classList.add('dragover')\n },\n\n playlistSave() {\n const name = prompt('Playlist name')\n if (!name?.length)\n return\n\n this.$emit('save', name)\n },\n },\n\n mounted() {\n const self = this\n this.$watch(() => self.status?.playingPos, (pos) => {\n if (pos == null)\n return\n\n const trackElement = [...self.$refs.body.querySelectorAll('.track')][pos]\n const offset = trackElement.offsetTop - parseFloat(getComputedStyle(self.$refs.header.$el).height)\n self.$refs.body.scrollTo(0, offset)\n })\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import 'vars.scss';\n@import 'track.scss';\n\n.playlist {\n width: 100%;\n display: flex;\n flex-direction: column;\n\n .header-container {\n button {\n border: 0;\n background: none;\n }\n\n .filter {\n input {\n width: 100%;\n }\n }\n\n .buttons {\n display: flex;\n justify-content: right;\n }\n }\n\n .body {\n height: calc(100% - #{$music-header-height});\n overflow: auto;\n }\n\n .no-content {\n height: 100%;\n }\n}\n\n.playing-icon {\n display: inline-block;\n position: relative;\n margin-left: .75em;\n width: 1.5em;\n height: 1em;\n\n @keyframes playing_bar {\n 0% {\n height: 0\n }\n 12.5% {\n height: 75%\n }\n 25% {\n height: 100%\n }\n 37.5% {\n height: 10%\n }\n 50% {\n height: 40%\n }\n 62.5% {\n height: 50%\n }\n 75% {\n height: 30%\n }\n 87.5% {\n height: 55%\n }\n 100% {\n height: 0\n }\n }\n\n span {\n @include animation(0.2s);\n display: block;\n position: absolute;\n bottom: 0;\n width: .25em;\n height: 100%;\n background: $default-hover-fg-2;\n animation-name: playing_bar;\n animation-iteration-count: infinite;\n\n &:nth-child(1){\n left: 0;\n animation-duration: 2s;\n }\n\n &:nth-child(2){\n left: 6px;\n animation-duration: 4s;\n }\n\n &:nth-child(3){\n left: 12px;\n animation-duration: 1s;\n }\n }\n\n &.paused {\n span {\n animation-play-state: paused;\n }\n }\n}\n\n::v-deep(.track-info-content) {\n .attr {\n opacity: 0.75;\n }\n\n .value {\n text-align: right;\n }\n}\n</style>\n","<template>\n <div class=\"header\">\n <slot />\n </div>\n</template>\n\n<script>\nexport default {\n name: \"Header\"\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import 'vars.scss';\n\n.header {\n width: 100%;\n height: $music-header-height;\n background: $menu-panel-bg;\n padding: .5em;\n box-shadow: $border-shadow-bottom;\n}\n</style>\n","import { render } from \"./Header.vue?vue&type=template&id=25f0cdf5&scoped=true&bindings={}\"\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=25f0cdf5&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-25f0cdf5\"\n\nexport default script","<template>\n <div class=\"dropdown-container\" ref=\"container\">\n <button :title=\"title\" ref=\"button\" @click.stop=\"toggle\">\n <i class=\"icon\" :class=\"iconClass\" v-if=\"iconClass\" />\n <span class=\"text\" v-text=\"text\" v-if=\"text\" />\n </button>\n\n <div class=\"dropdown fade-in\" :id=\"id\" :class=\"{hidden: !visible}\" ref=\"dropdown\">\n <slot />\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n name: \"Dropdown\",\n emits: ['click'],\n props: {\n id: {\n type: String,\n },\n\n items: {\n type: Array,\n default: () => [],\n },\n\n iconClass: {\n type: String,\n },\n\n text: {\n type: String,\n },\n\n title: {\n type: String,\n },\n },\n\n data() {\n return {\n visible: false,\n }\n },\n\n methods: {\n documentClickHndl(event) {\n if (!this.visible)\n return\n\n let element = event.target\n while (element) {\n if (element === this.$refs.dropdown.element) {\n return\n }\n\n element = element.parentElement\n }\n\n this.close()\n },\n\n close() {\n this.visible = false\n document.removeEventListener('click', this.documentClickHndl)\n },\n\n open() {\n document.addEventListener('click', this.documentClickHndl)\n this.visible = true\n\n setTimeout(() => {\n const element = this.$refs.dropdown\n element.style.left = 0\n element.style.top = parseFloat(getComputedStyle(this.$refs.button).height) + 'px'\n\n if (element.getBoundingClientRect().left > window.innerWidth/2)\n element.style.left = (-element.clientWidth + parseFloat(getComputedStyle(this.$refs.button).width)) + 'px'\n\n if (element.getBoundingClientRect().top > window.innerHeight/2)\n element.style.top = (-element.clientHeight + parseFloat(getComputedStyle(this.$refs.button).height)) + 'px'\n }, 10)\n },\n\n toggle() {\n this.visible ? this.close() : this.open()\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.dropdown-container {\n position: relative;\n display: flex;\n flex-direction: column;\n\n .dropdown {\n position: absolute;\n width: max-content;\n background: $dropdown-bg;\n border-radius: .25em;\n border: $default-border-3;\n box-shadow: $dropdown-shadow;\n display: flex;\n flex-direction: column;\n z-index: 1;\n }\n}\n</style>\n","import { render } from \"./Dropdown.vue?vue&type=template&id=44aa9863&scoped=true&bindings={\\\"id\\\":\\\"props\\\",\\\"items\\\":\\\"props\\\",\\\"iconClass\\\":\\\"props\\\",\\\"text\\\":\\\"props\\\",\\\"title\\\":\\\"props\\\",\\\"visible\\\":\\\"data\\\",\\\"documentClickHndl\\\":\\\"options\\\",\\\"close\\\":\\\"options\\\",\\\"open\\\":\\\"options\\\",\\\"toggle\\\":\\\"options\\\"}\"\nimport script from \"./Dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./Dropdown.vue?vue&type=script&lang=js\"\n\nimport \"./Dropdown.vue?vue&type=style&index=0&id=44aa9863&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-44aa9863\"\n\nexport default script","<template>\n <div class=\"row item\" @click=\"clicked\">\n <div class=\"col-1 icon\">\n <i :class=\"iconClass\" v-if=\"iconClass\" />\n </div>\n <div class=\"col-11 text\" v-text=\"text\" />\n </div>\n</template>\n\n<script>\nexport default {\n name: \"DropdownItem\",\n props: {\n iconClass: {\n type: String,\n },\n\n text: {\n type: String,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n methods: {\n clicked(event) {\n this.$parent.$emit('click', event)\n this.$parent.visible = false\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.item {\n display: flex;\n padding: .5em .25em;\n cursor: pointer;\n align-items: center;\n\n &:hover {\n background: $hover-bg;\n }\n\n &.disabled {\n color: $dropdown-disabled-color;\n cursor: initial;\n }\n\n .icon {\n margin: 0 .5rem;\n }\n}\n</style>\n","import { render } from \"./DropdownItem.vue?vue&type=template&id=607f43da&scoped=true&bindings={\\\"iconClass\\\":\\\"props\\\",\\\"text\\\":\\\"props\\\",\\\"disabled\\\":\\\"props\\\",\\\"clicked\\\":\\\"options\\\"}\"\nimport script from \"./DropdownItem.vue?vue&type=script&lang=js\"\nexport * from \"./DropdownItem.vue?vue&type=script&lang=js\"\n\nimport \"./DropdownItem.vue?vue&type=style&index=0&id=607f43da&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-607f43da\"\n\nexport default script","import { render } from \"./Playlist.vue?vue&type=template&id=6b60a694&scoped=true&bindings={\\\"tracks\\\":\\\"props\\\",\\\"loading\\\":\\\"props\\\",\\\"status\\\":\\\"props\\\",\\\"selectionMode\\\":\\\"data\\\",\\\"selectedTracks\\\":\\\"data\\\",\\\"filter\\\":\\\"data\\\",\\\"infoTrack\\\":\\\"data\\\",\\\"sourcePos\\\":\\\"data\\\",\\\"targetPos\\\":\\\"data\\\",\\\"selectedTracksSet\\\":\\\"options\\\",\\\"displayedTracks\\\":\\\"options\\\",\\\"onTrackClick\\\":\\\"options\\\",\\\"addTrack\\\":\\\"options\\\",\\\"onTrackDragStart\\\":\\\"options\\\",\\\"onTrackDragEnd\\\":\\\"options\\\",\\\"onTrackDragOver\\\":\\\"options\\\",\\\"playlistSave\\\":\\\"options\\\"}\"\nimport script from \"./Playlist.vue?vue&type=script&lang=js\"\nexport * from \"./Playlist.vue?vue&type=script&lang=js\"\n\nimport \"./Playlist.vue?vue&type=style&index=0&id=6b60a694&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-6b60a694\"\n\nexport default script","<template>\n <Loading v-if=\"loading\" />\n\n <div class=\"editor-container fade-in\" v-else-if=\"editedPlaylist\">\n <div class=\"header-container\">\n <MusicHeader ref=\"header\">\n <button class=\"back-btn\" title=\"Back\" @click=\"$emit('playlist-edit', null)\">\n <i class=\"fas fa-arrow-left\" />\n </button>\n\n <label class=\"search-box\">\n <input type=\"search\" placeholder=\"Filter\" v-model=\"trackFilter\">\n </label>\n\n <button class=\"add-btn\" title=\"Add track\" @click=\"addTrack\">\n <i class=\"fas fa-plus\" />\n </button>\n </MusicHeader>\n </div>\n\n <div class=\"editor\" ref=\"editor\">\n <div class=\"no-content\" v-if=\"!tracks?.length\">\n No tracks found\n </div>\n\n <div class=\"row track\" draggable=\"true\" v-for=\"(track, i) in tracks\" :key=\"i\"\n :class=\"{selected: selectedTracksSet.has(i), active: status?.playingPos === i, hidden: !displayedTracks.has(i)}\"\n @dragstart=\"onTrackDragStart(i)\" @dragend=\"onTrackDragEnd(i)\" @dragover=\"onTrackDragOver(i)\"\n @click=\"onTrackClick($event, i)\" @dblclick=\"$emit('load-track', {pos: i, play: true})\">\n <div class=\"col-10\">\n <div class=\"title\">\n {{ track.title || '[No Title]' }}\n </div>\n\n <div class=\"artist\" v-if=\"track.artist\">\n <a :href=\"$route.fullPath\" v-text=\"track.artist\" @click.stop=\"$emit('search', {artist: track.artist})\" />\n </div>\n\n <div class=\"album\" v-if=\"track.album\">\n <a :href=\"$route.fullPath\" v-text=\"track.album\" @click.stop=\"$emit('search', {artist: track.album})\" />\n </div>\n </div>\n\n <div class=\"col-2 right-side\">\n <span class=\"duration\" v-text=\"track.time ? convertTime(track.time) : '-:--'\" />\n\n <span class=\"actions\">\n <Dropdown title=\"Actions\" icon-class=\"fa fa-ellipsis-h\">\n <DropdownItem text=\"Play\" icon-class=\"fa fa-play\" @click=\"$emit('load-track', {pos: i, play: true})\" />\n <DropdownItem text=\"Add to tracklist\" icon-class=\"fa fa-plus\" @click=\"$emit('load-track', {pos: i, play: false})\" />\n <DropdownItem text=\"Add to playlist\" icon-class=\"fa fa-list-ul\" @click=\"$emit('add-to-playlist', track)\" />\n <DropdownItem text=\"Remove\" icon-class=\"fa fa-trash\" @click=\"$emit('remove-track', [...(new Set([...selectedTracks, i]))])\" />\n <DropdownItem text=\"Show info\" icon-class=\"fa fa-info\" @click.stop=\"$emit('track-info', tracks[i])\" />\n </Dropdown>\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"playlists fade-in\" v-else>\n <div class=\"header-container\">\n <MusicHeader ref=\"header\">\n <div class=\"col-8 filter\">\n <label>\n <input type=\"search\" placeholder=\"Filter\" v-model=\"filter\">\n </label>\n </div>\n </MusicHeader>\n </div>\n\n <div class=\"body\" ref=\"body\">\n <div class=\"no-content\" v-if=\"!playlists?.length\">\n No playlists found\n </div>\n\n <div class=\"row playlist\" :class=\"{hidden: !displayedPlaylists.has(i)}\"\n v-for=\"(playlist, i) in playlists\" :key=\"i\" @click=\"$emit('playlist-edit', i)\"\n @dblclick=\"$emit('load', i)\">\n <div class=\"col-10\">\n <div class=\"name\" v-text=\"playlist.name || '[No Name]'\" />\n </div>\n\n <div class=\"col-2 right-side\">\n <span class=\"actions\">\n <Dropdown title=\"Actions\" icon-class=\"fa fa-ellipsis-h\">\n <DropdownItem text=\"Play\" icon-class=\"fa fa-play\" @click.stop=\"$emit('play', i)\" />\n <DropdownItem text=\"Load\" icon-class=\"fa fa-list-ul\" @click.stop=\"$emit('load', i)\" />\n <DropdownItem text=\"Edit\" icon-class=\"fa fa-edit\" @click.stop=\"$emit('playlist-edit', i)\" />\n <DropdownItem text=\"Remove\" icon-class=\"fa fa-trash\" @click.stop=\"$emit('remove', i)\" />\n </Dropdown>\n </span>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport MusicHeader from \"@/components/panels/Music/Header\";\nimport MediaUtils from \"@/components/Media/Utils\";\nimport Dropdown from \"@/components/elements/Dropdown\";\nimport DropdownItem from \"@/components/elements/DropdownItem\";\n\nexport default {\n name: \"Playlists\",\n mixins: [MediaUtils],\n components: {DropdownItem, Dropdown, MusicHeader},\n emits: ['play', 'load', 'remove', 'playlist-edit', 'search', 'remove-track', 'load-track', 'track-info',\n 'playlist-add', 'add-to-playlist', 'track-move'],\n\n props: {\n playlists: {\n type: Array,\n default: () => [],\n },\n\n loading: {\n type: Boolean,\n default: false,\n },\n\n tracks: {\n type: Array,\n default: () => [],\n },\n\n editedPlaylist: {\n type: Number,\n },\n },\n\n data() {\n return {\n selectedTracks: [],\n filter: '',\n trackFilter: '',\n sourcePos: null,\n targetPos: null,\n }\n },\n\n computed: {\n selectedTracksSet() {\n return new Set(this.selectedTracks)\n },\n\n displayedPlaylists() {\n const positions = [...Array(this.playlists.length).keys()]\n if (!this.filter?.length)\n return new Set(positions)\n\n const self = this\n const filter = (self.filter || '').toLowerCase()\n\n return new Set(\n positions.filter((pos) => {\n const track = this.playlists[pos]\n return (track?.name || '').toLowerCase().indexOf(filter) >= 0\n })\n )\n },\n\n displayedTracks() {\n const positions = [...Array(this.tracks.length).keys()]\n if (!this.trackFilter?.length)\n return new Set(positions)\n\n const self = this\n const filter = (self.trackFilter || '').toLowerCase()\n\n return new Set(\n positions.filter((pos) => {\n const track = this.tracks[pos]\n return (track?.artist || '').toLowerCase().indexOf(filter) >= 0\n || (track?.title || '').toLowerCase().indexOf(filter) >= 0\n || (track?.album || '').toLowerCase().indexOf(filter) >= 0\n })\n )\n },\n },\n\n methods: {\n onTrackClick(event, pos) {\n if (event.shiftKey) {\n const selectedTracks = this.selectedTracks.sort()\n if (!selectedTracks.length) {\n this.selectedTracks = [pos]\n } else if (pos < selectedTracks[0]) {\n this.selectedTracks = [\n ...this.selectedTracks,\n ...[...Array(selectedTracks[0] - pos).keys()].map((i) => i + pos)\n ]\n } else if (pos > selectedTracks[selectedTracks.length - 1]) {\n this.selectedTracks = [\n ...this.selectedTracks,\n ...[...Array(pos - selectedTracks[selectedTracks.length - 1] + 1).keys()].\n map((i) => i + selectedTracks[selectedTracks.length - 1])\n ]\n }\n } else {\n const idx = this.selectedTracks.indexOf(pos)\n if (event.ctrlKey) {\n if (idx >= 0)\n this.selectedTracks.splice(idx, 1)\n else\n this.selectedTracks.push(pos)\n } else {\n if (idx >= 0)\n this.selectedTracks = []\n else\n this.selectedTracks = [pos]\n }\n }\n },\n\n addTrack() {\n const track = prompt('Track path or URL')\n if (!track?.length)\n return\n\n this.$emit('playlist-add', track)\n },\n\n onTrackDragStart(track) {\n this.sourcePos = track\n },\n\n onTrackDragEnd() {\n this.$refs.editor.querySelectorAll('.track').forEach((track) => track.classList.remove('dragover'));\n if (this.sourcePos == null || this.targetPos == null || this.sourcePos === this.targetPos)\n return\n\n this.$emit('track-move', {from: this.sourcePos, to: this.targetPos, playlist: this.editedPlaylist})\n this.sourcePos = null\n this.targetPos = null\n },\n\n onTrackDragOver(track) {\n this.targetPos = track\n const tracks = this.$refs.editor.querySelectorAll('.track')\n tracks.forEach((track) => track.classList.remove('dragover'));\n [...tracks][track].classList.add('dragover')\n },\n\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import 'vars.scss';\n@import 'track.scss';\n\n.playlists {\n width: 100%;\n display: flex;\n flex-direction: column;\n\n .header-container {\n .filter {\n input {\n width: 100%;\n }\n }\n }\n\n .body {\n height: calc(100% - #{$music-header-height});\n overflow: auto;\n }\n\n .no-content {\n height: 100%;\n }\n\n .playlist {\n display: flex;\n justify-content: center;\n padding: .75em .25em .25em .25em;\n box-shadow: 0 2.5px 2px -1px $default-shadow-color;\n cursor: pointer;\n\n &:hover {\n background: $hover-bg;\n }\n\n &.active {\n background: $active-bg;\n }\n\n &.selected {\n background: $selected-bg;\n }\n\n .right-side {\n display: flex;\n justify-content: right;\n }\n }\n}\n\n.editor-container {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n\n .header-container {\n width: 100%;\n }\n\n ::v-deep(.header) {\n .back-btn {\n padding-left: .25em;\n }\n\n .add-btn {\n float: right;\n }\n\n .search-box {\n input {\n width: 65%;\n }\n }\n }\n\n .editor {\n width: 100%;\n height: calc(100% - #{$music-header-height});\n display: flex;\n flex-direction: column;\n overflow: auto;\n }\n}\n</style>\n","import { render } from \"./Playlists.vue?vue&type=template&id=2e357c68&scoped=true&bindings={\\\"playlists\\\":\\\"props\\\",\\\"loading\\\":\\\"props\\\",\\\"tracks\\\":\\\"props\\\",\\\"editedPlaylist\\\":\\\"props\\\",\\\"selectedTracks\\\":\\\"data\\\",\\\"filter\\\":\\\"data\\\",\\\"trackFilter\\\":\\\"data\\\",\\\"sourcePos\\\":\\\"data\\\",\\\"targetPos\\\":\\\"data\\\",\\\"selectedTracksSet\\\":\\\"options\\\",\\\"displayedPlaylists\\\":\\\"options\\\",\\\"displayedTracks\\\":\\\"options\\\",\\\"onTrackClick\\\":\\\"options\\\",\\\"addTrack\\\":\\\"options\\\",\\\"onTrackDragStart\\\":\\\"options\\\",\\\"onTrackDragEnd\\\":\\\"options\\\",\\\"onTrackDragOver\\\":\\\"options\\\"}\"\nimport script from \"./Playlists.vue?vue&type=script&lang=js\"\nexport * from \"./Playlists.vue?vue&type=script&lang=js\"\n\nimport \"./Playlists.vue?vue&type=style&index=0&id=2e357c68&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-2e357c68\"\n\nexport default script","import { render } from \"./Index.vue?vue&type=template&id=50c7a9d4&scoped=true&bindings={\\\"pluginName\\\":\\\"props\\\",\\\"loading\\\":\\\"props\\\",\\\"config\\\":\\\"props\\\",\\\"tracks\\\":\\\"props\\\",\\\"editedPlaylistTracks\\\":\\\"props\\\",\\\"playlists\\\":\\\"props\\\",\\\"status\\\":\\\"props\\\",\\\"editedPlaylist\\\":\\\"props\\\",\\\"trackInfo\\\":\\\"props\\\",\\\"selectedView\\\":\\\"data\\\",\\\"selectedPlaylists\\\":\\\"data\\\",\\\"addToPlaylistTrack\\\":\\\"data\\\",\\\"playlistFilter\\\":\\\"data\\\",\\\"track\\\":\\\"options\\\",\\\"onStatusEvent\\\":\\\"options\\\",\\\"onPlaylistEvent\\\":\\\"options\\\",\\\"onNewPlayingTrack\\\":\\\"options\\\",\\\"openAddToPlaylist\\\":\\\"options\\\",\\\"addToPlaylist\\\":\\\"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=50c7a9d4&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-50c7a9d4\"\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-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=25f0cdf5&lang=scss&scoped=true\"","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.github.io/ecma262/#sec-set-objects\nmodule.exports = collection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\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!./Playlist.vue?vue&type=style&index=0&id=6b60a694&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!./View.vue?vue&type=style&index=0&id=b6f41ec8&lang=scss&scoped=true\"","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n // eslint-disable-next-line max-len\n if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n })))) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('splice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\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!./Controls.vue?vue&type=style&index=0&id=0d70c0de&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!./Dropdown.vue?vue&type=style&index=0&id=44aa9863&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!./Playlists.vue?vue&type=style&index=0&id=2e357c68&lang=scss&scoped=true\"","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n return Object.isExtensible(Object.preventExtensions({}));\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!./Nav.vue?vue&type=style&index=0&id=04a75b69&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!./Index.vue?vue&type=style&index=0&id=50c7a9d4&lang=scss&scoped=true\"","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + ++id, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar meta = module.exports = {\n REQUIRED: false,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n"],"sourceRoot":""}