platypush/platypush/backend/http/webapp/dist/static/js/5762.7dcb5ad6.js.map

1 line
8.0 KiB
Plaintext

{"version":3,"file":"static/js/5762.7dcb5ad6.js","mappings":"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","sources":["webpack://platypush/./src/components/panels/Media/Providers/YouTube/Channel.vue","webpack://platypush/./src/components/panels/Media/Providers/YouTube/Channel.vue?e8bb"],"sourcesContent":["<template>\n <div class=\"media-youtube-channel\" @scroll=\"onScroll\">\n <Loading v-if=\"loading\" />\n\n <div class=\"channel\" @scroll=\"onScroll\" v-else-if=\"channel\">\n <div class=\"header\">\n <div class=\"banner\">\n <img :src=\"channel.banner\" v-if=\"channel?.banner?.length\" />\n </div>\n\n <div class=\"row\">\n <a :href=\"channel.url\" target=\"_blank\" rel=\"noopener noreferrer\">\n <div class=\"image\">\n <img :src=\"channel.image\" v-if=\"channel?.image?.length\" />\n </div>\n </a>\n\n <div class=\"info\">\n <a class=\"title\" :href=\"channel.url\" target=\"_blank\" rel=\"noopener noreferrer\">\n {{ channel?.name }}\n </a>\n <div class=\"description\">{{ channel?.description }}</div>\n </div>\n </div>\n </div>\n\n <Results :results=\"channel.items\"\n :filter=\"filter\"\n :selected-result=\"selectedResult\"\n ref=\"results\"\n @select=\"selectedResult = $event\"\n @play=\"$emit('play', $event)\" />\n </div>\n </div>\n</template>\n\n<script>\nimport Loading from \"@/components/Loading\";\nimport Results from \"@/components/panels/Media/Results\";\nimport Utils from \"@/Utils\";\n\nexport default {\n emits: ['play'],\n mixins: [Utils],\n components: {\n Loading,\n Results,\n },\n\n props: {\n id: {\n type: String,\n required: true,\n },\n\n filter: {\n type: String,\n default: null,\n },\n },\n\n data() {\n return {\n channel: null,\n loading: false,\n loadingNextPage: false,\n selectedResult: null,\n }\n },\n\n computed: {\n itemsByUrl() {\n return this.channel?.items.reduce((acc, item) => {\n acc[item.url] = item\n return acc\n }, {})\n },\n },\n\n methods: {\n async loadChannel() {\n this.loading = true\n try {\n this.channel = await this.request('youtube.get_channel', {id: this.id})\n } finally {\n this.loading = false\n }\n },\n\n async loadNextPage() {\n if (!this.channel?.next_page_token || this.loadingNextPage)\n return\n\n try {\n const nextPage = await this.request(\n 'youtube.get_channel',\n {id: this.id, next_page_token: this.channel.next_page_token}\n )\n\n this.channel.items.push(...nextPage.items.filter(item => !this.itemsByUrl[item.url]))\n this.channel.next_page_token = nextPage.next_page_token\n this.$refs.results.maxResultIndex += this.$refs.results.resultIndexStep\n } finally {\n this.loadingNextPage = false\n }\n },\n\n onScroll(e) {\n const el = e.target\n if (!el)\n return\n\n const bottom = (el.scrollHeight - el.scrollTop) <= el.clientHeight + 150\n if (!bottom)\n return\n\n this.loadNextPage()\n },\n },\n\n mounted() {\n this.loadChannel()\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.media-youtube-channel {\n height: 100%;\n overflow-y: auto;\n\n .header {\n border-bottom: $default-border-2;\n padding-bottom: 0.5em;\n\n .banner {\n max-height: 200px;\n display: flex;\n justify-content: center;\n\n img {\n max-width: 100%;\n max-height: 100%;\n }\n }\n\n .image {\n height: 100px;\n margin: -2.5em 2em 0.5em 0.5em;\n\n img {\n height: 100%;\n border-radius: 50%;\n }\n }\n\n .row {\n display: flex;\n\n @include from($desktop) {\n flex-direction: row;\n }\n\n .info {\n display: flex;\n flex-direction: column;\n }\n }\n\n .title {\n color: $default-fg-2;\n font-size: 1.7em;\n font-weight: bold;\n margin: 0.5em 0;\n text-decoration: dotted;\n\n &:hover {\n color: $default-hover-fg;\n }\n }\n\n .description {\n font-size: 0.9em;\n margin-right: 0.5em;\n }\n }\n}\n</style>\n","import { render } from \"./Channel.vue?vue&type=template&id=21b0d859&scoped=true\"\nimport script from \"./Channel.vue?vue&type=script&lang=js\"\nexport * from \"./Channel.vue?vue&type=script&lang=js\"\n\nimport \"./Channel.vue?vue&type=style&index=0&id=21b0d859&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-21b0d859\"]])\n\nexport default __exports__"],"names":["class","_createElementBlock","onScroll","_cache","args","$options","$data","loading","_createBlock","_component_Loading","key","channel","_createElementVNode","_hoisted_1","_hoisted_2","banner","length","src","_hoisted_4","href","url","target","rel","_hoisted_6","image","_hoisted_8","name","_hoisted_9","_hoisted_10","_toDisplayString","description","_createVNode","_component_Results","results","items","filter","$props","selectedResult","ref","onSelect","$event","onPlay","_ctx","$emit","emits","mixins","Utils","components","Loading","Results","props","id","type","String","required","default","data","loadingNextPage","computed","itemsByUrl","this","reduce","acc","item","methods","loadChannel","request","loadNextPage","next_page_token","nextPage","push","$refs","maxResultIndex","resultIndexStep","e","el","bottom","scrollHeight","scrollTop","clientHeight","mounted","__exports__","render"],"sourceRoot":""}