From e3549d3e4068d808a8cfe906862ff9b1f63ff7ce Mon Sep 17 00:00:00 2001 From: P0psicles Date: Thu, 16 Jul 2020 21:20:38 +0200 Subject: [PATCH] rebundle build lock. --- themes-default/slim/yarn.lock | 5 ----- themes/dark/assets/js/medusa-runtime.js | 10 +++++----- themes/light/assets/js/medusa-runtime.js | 10 +++++----- 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/themes-default/slim/yarn.lock b/themes-default/slim/yarn.lock index a52024f4a0..2fccb07cd9 100644 --- a/themes-default/slim/yarn.lock +++ b/themes-default/slim/yarn.lock @@ -12441,11 +12441,6 @@ vue-js-toggle-button@1.3.3: resolved "https://registry.yarnpkg.com/vue-js-toggle-button/-/vue-js-toggle-button-1.3.3.tgz#d603089039e41d45e607355ad2e0478c6a52aceb" integrity sha512-0b920oztgK+1SqlYF26MPiT28hAieL5aAQE7u21XEym5ryfzD4EMer4hLkgDC/1sWsCHb22GvV+t1Kb4AI6QFw== -vue-lazy-images@1.4.6: - version "1.4.6" - resolved "https://registry.yarnpkg.com/vue-lazy-images/-/vue-lazy-images-1.4.6.tgz#1719ed9856159b9421d3e788b0c5f85083f193f5" - integrity sha1-FxntmFYVm5Qh0+eIsMX4UIPxk/U= - vue-loader@15.9.2: version "15.9.2" resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.2.tgz#ae01f5f4c9c6a04bff4483912e72ef91a402c1ae" diff --git a/themes/dark/assets/js/medusa-runtime.js b/themes/dark/assets/js/medusa-runtime.js index 91adface43..3bd3f251aa 100644 --- a/themes/dark/assets/js/medusa-runtime.js +++ b/themes/dark/assets/js/medusa-runtime.js @@ -548,7 +548,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue_ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var vue_good_table__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue-good-table */ \"./node_modules/vue-good-table/dist/vue-good-table.esm.js\");\n/* harmony import */ var _utils_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/core */ \"./src/utils/core.js\");\n/* harmony import */ var _mixins_manage_cookie__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../mixins/manage-cookie */ \"./src/mixins/manage-cookie.js\");\n/* harmony import */ var _helpers_quality_pill_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./helpers/quality-pill.vue */ \"./src/components/helpers/quality-pill.vue\");\n/* harmony import */ var _utils_jquery__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/jquery */ \"./src/utils/jquery.js\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'show-history',\n components: {\n VueGoodTable: vue_good_table__WEBPACK_IMPORTED_MODULE_1__[\"VueGoodTable\"],\n QualityPill: _helpers_quality_pill_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n },\n mixins: [Object(_mixins_manage_cookie__WEBPACK_IMPORTED_MODULE_3__[\"manageCookieMixin\"])('showHistory')],\n props: {\n show: {\n type: Object,\n required: true\n },\n season: {\n type: Number,\n required: true\n },\n episode: {\n type: Number,\n required: false\n }\n },\n\n data() {\n const {\n getCookie\n } = this;\n const columns = [{\n label: 'Date',\n field: 'actionDate',\n dateInputFormat: 'yyyyMMddHHmmss',\n // E.g. 07-09-2017 19:16:25\n dateOutputFormat: 'yyyy-MM-dd HH:mm:ss',\n type: 'date',\n hidden: getCookie('Date')\n }, {\n label: 'Status',\n field: 'statusName',\n hidden: getCookie('Status')\n }, {\n label: 'Quality',\n field: 'quality',\n type: 'number',\n hidden: getCookie('Quality')\n }, {\n label: 'Provider/Group',\n field: 'provider.id',\n hidden: getCookie('Provider/Group')\n }, {\n label: 'Release',\n field: 'resource',\n hidden: getCookie('Release')\n }, {\n label: 'Season',\n field: 'season',\n type: 'number',\n hidden: getCookie('Season')\n }, {\n label: 'Episode',\n field: 'episode',\n type: 'number',\n hidden: getCookie('Episode')\n }, {\n label: 'Size',\n field: 'size',\n formatFn: _utils_core__WEBPACK_IMPORTED_MODULE_2__[\"humanFileSize\"],\n type: 'number',\n hidden: getCookie('Size')\n }];\n\n if (this.episode) {\n columns.find(column => column.label === 'Season').hidden = true;\n columns.find(column => column.label === 'Episode').hidden = true;\n }\n\n return {\n columns,\n loading: false,\n loadingMessage: '',\n history: [],\n hideHistory: true\n };\n },\n\n mounted() {\n const {\n getHistory\n } = this;\n getHistory();\n Object(_utils_jquery__WEBPACK_IMPORTED_MODULE_5__[\"addQTip\"])();\n },\n\n computed: { ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapState\"])({\n config: state => state.config.general,\n layout: state => state.config.layout,\n showHistory: state => state.history.showHistory,\n episodeHistory: state => state.history.episodeHistory\n }),\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapGetters\"])({\n getEpisodeHistory: 'getEpisodeHistory',\n getSeasonHistory: 'getSeasonHistory',\n fuzzyParseDateTime: 'fuzzyParseDateTime'\n })\n },\n methods: {\n humanFileSize: _utils_core__WEBPACK_IMPORTED_MODULE_2__[\"humanFileSize\"],\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapActions\"])({\n getShowEpisodeHistory: 'getShowEpisodeHistory',\n getShowHistory: 'getHistory'\n }),\n\n close() {\n this.$emit('close'); // Destroy the vue listeners, etc\n\n this.$destroy(); // Remove the element from the DOM\n\n this.$el.remove();\n },\n\n getHistory() {\n const {\n getShowHistory,\n getShowEpisodeHistory,\n show,\n episode,\n season,\n updateHistory\n } = this;\n\n if (show.id.slug) {\n if (episode) {\n // Use apiv2 to get latest episode history\n getShowEpisodeHistory({\n showSlug: show.id.slug,\n episodeSlug: Object(_utils_core__WEBPACK_IMPORTED_MODULE_2__[\"episodeToSlug\"])(season, episode)\n });\n } else {\n getShowHistory(show.id.slug);\n }\n } // Update the local history array with store data.\n\n\n updateHistory();\n },\n\n updateHistory() {\n const {\n getEpisodeHistory,\n getSeasonHistory,\n show,\n episode,\n season\n } = this;\n\n if (!show.id.slug) {\n return;\n }\n\n if (episode) {\n this.history = getEpisodeHistory({\n showSlug: show.id.slug,\n episodeSlug: Object(_utils_core__WEBPACK_IMPORTED_MODULE_2__[\"episodeToSlug\"])(season, episode)\n });\n } else {\n // As this is not an episode search, we're returning all results for the specific season.\n this.history = getSeasonHistory({\n showSlug: show.id.slug,\n season\n });\n }\n },\n\n rowStyleClassFn(row) {\n return row.statusName.toLowerCase() || 'skipped';\n }\n\n },\n watch: {\n episodeHistory: {\n handler() {\n const {\n show,\n updateHistory\n } = this;\n\n if (show.id.slug) {\n updateHistory();\n }\n },\n\n deep: true,\n immediate: false\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/show-history.vue?./node_modules/babel-loader/lib??ref--1!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var vue_good_table__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue-good-table */ \"./node_modules/vue-good-table/dist/vue-good-table.esm.js\");\n/* harmony import */ var _utils_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/core */ \"./src/utils/core.js\");\n/* harmony import */ var _mixins_manage_cookie__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../mixins/manage-cookie */ \"./src/mixins/manage-cookie.js\");\n/* harmony import */ var _helpers_quality_pill_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./helpers/quality-pill.vue */ \"./src/components/helpers/quality-pill.vue\");\n/* harmony import */ var _utils_jquery__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/jquery */ \"./src/utils/jquery.js\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'show-history',\n components: {\n VueGoodTable: vue_good_table__WEBPACK_IMPORTED_MODULE_1__[\"VueGoodTable\"],\n QualityPill: _helpers_quality_pill_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n },\n mixins: [Object(_mixins_manage_cookie__WEBPACK_IMPORTED_MODULE_3__[\"manageCookieMixin\"])('showHistory')],\n props: {\n show: {\n type: Object,\n required: true\n },\n season: {\n type: Number,\n required: true\n },\n episode: {\n type: Number,\n required: false\n }\n },\n\n data() {\n const {\n getCookie\n } = this;\n const columns = [{\n label: 'Date',\n field: 'actionDate',\n dateInputFormat: 'yyyyMMddHHmmss',\n // E.g. 07-09-2017 19:16:25\n dateOutputFormat: 'yyyy-MM-dd HH:mm:ss',\n type: 'date',\n hidden: getCookie('Date')\n }, {\n label: 'Status',\n field: 'statusName',\n hidden: getCookie('Status')\n }, {\n label: 'Quality',\n field: 'quality',\n type: 'number',\n hidden: getCookie('Quality')\n }, {\n label: 'Provider/Group',\n field: 'provider.id',\n hidden: getCookie('Provider/Group')\n }, {\n label: 'Release',\n field: 'resource',\n hidden: getCookie('Release')\n }, {\n label: 'Season',\n field: 'season',\n type: 'number',\n hidden: getCookie('Season')\n }, {\n label: 'Episode',\n field: 'episode',\n type: 'number',\n hidden: getCookie('Episode')\n }, {\n label: 'Size',\n field: 'size',\n formatFn: _utils_core__WEBPACK_IMPORTED_MODULE_2__[\"humanFileSize\"],\n type: 'number',\n hidden: getCookie('Size')\n }];\n\n if (this.episode) {\n columns.find(column => column.label === 'Season').hidden = true;\n columns.find(column => column.label === 'Episode').hidden = true;\n }\n\n return {\n columns,\n loading: false,\n loadingMessage: '',\n history: [],\n hideHistory: true\n };\n },\n\n mounted() {\n const {\n getHistory\n } = this;\n getHistory();\n Object(_utils_jquery__WEBPACK_IMPORTED_MODULE_5__[\"addQTip\"])();\n },\n\n computed: { ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapState\"])({\n config: state => state.config.general,\n layout: state => state.config.layout,\n showHistory: state => state.history.showHistory,\n episodeHistory: state => state.history.episodeHistory\n }),\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapGetters\"])({\n getEpisodeHistory: 'getEpisodeHistory',\n getSeasonHistory: 'getSeasonHistory',\n fuzzyParseDateTime: 'fuzzyParseDateTime'\n })\n },\n methods: {\n humanFileSize: _utils_core__WEBPACK_IMPORTED_MODULE_2__[\"humanFileSize\"],\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapActions\"])({\n getShowEpisodeHistory: 'getShowEpisodeHistory',\n getShowHistory: 'getHistory'\n }),\n\n close() {\n this.$emit('close'); // Destroy the vue listeners, etc\n\n this.$destroy(); // Remove the element from the DOM\n\n this.$el.remove();\n },\n\n getHistory() {\n const {\n getShowHistory,\n getShowEpisodeHistory,\n show,\n episode,\n season,\n updateHistory\n } = this;\n\n if (show.id.slug) {\n if (episode) {\n // Use apiv2 to get latest episode history\n getShowEpisodeHistory({\n showSlug: show.id.slug,\n episodeSlug: Object(_utils_core__WEBPACK_IMPORTED_MODULE_2__[\"episodeToSlug\"])(season, episode)\n });\n } else {\n getShowHistory(show.id.slug);\n }\n } // Update the local history array with store data.\n\n\n updateHistory();\n },\n\n updateHistory() {\n const {\n getEpisodeHistory,\n getSeasonHistory,\n show,\n episode,\n season\n } = this;\n\n if (!show.id.slug) {\n return;\n }\n\n if (episode) {\n this.history = getEpisodeHistory({\n showSlug: show.id.slug,\n episodeSlug: Object(_utils_core__WEBPACK_IMPORTED_MODULE_2__[\"episodeToSlug\"])(season, episode)\n });\n } else {\n // As this is not an episode search, we're returning all results for the specific season.\n this.history = getSeasonHistory({\n showSlug: show.id.slug,\n season\n });\n }\n },\n\n rowStyleClassFn(row) {\n return row.statusName.toLowerCase() || 'skipped';\n }\n\n },\n watch: {\n episodeHistory: {\n handler() {\n const {\n show,\n updateHistory\n } = this;\n\n if (show.id.slug) {\n updateHistory();\n }\n },\n\n deep: true,\n immediate: false\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/show-history.vue?./node_modules/babel-loader/lib??ref--1!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), @@ -584,7 +584,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vuex /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var pretty_bytes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! pretty-bytes */ \"./node_modules/pretty-bytes/index.js\");\n/* harmony import */ var pretty_bytes__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(pretty_bytes__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../helpers */ \"./src/components/helpers/index.js\");\n/* harmony import */ var vueisotope__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vueisotope */ \"./node_modules/vueisotope/dist/vue_isotope.min.js\");\n/* harmony import */ var vueisotope__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(vueisotope__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var vue_images_loaded__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue-images-loaded */ \"./node_modules/vue-images-loaded/dist/vueimagesloaded.js\");\n/* harmony import */ var vue_images_loaded__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(vue_images_loaded__WEBPACK_IMPORTED_MODULE_4__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'poster',\n directives: {\n imagesLoaded: (vue_images_loaded__WEBPACK_IMPORTED_MODULE_4___default())\n },\n components: {\n Asset: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"Asset\"],\n AppLink: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"AppLink\"],\n ProgressBar: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"ProgressBar\"],\n QualityPill: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"QualityPill\"],\n Isotope: (vueisotope__WEBPACK_IMPORTED_MODULE_3___default())\n },\n props: {\n layout: {\n validator: val => val === null || typeof val === 'string',\n required: true\n },\n shows: {\n type: Array,\n required: true\n },\n listTitle: {\n type: String\n },\n header: {\n type: Boolean\n }\n },\n\n data() {\n return {\n // Isotope stuff\n itemSelector: '.show-container',\n selected: null,\n option: {\n getSortData: {\n id: row => row.id.slug,\n name: 'title',\n date: row => {\n const {\n maxNextAirDate\n } = this;\n\n if (row.nextAirDate && Date.parse(row.nextAirDate) > Date.now()) {\n return Date.parse(row.nextAirDate) - Date.now();\n }\n\n if (row.prevAirDate) {\n return maxNextAirDate + Date.now() - Date.parse(row.prevAirDate);\n }\n\n return Date.now();\n },\n network: 'network',\n progress: row => {\n if (!row.stats) {\n return 0;\n }\n\n return Math.round(row.stats.episodes.downloaded / row.stats.episodes.total * 100);\n },\n indexer: row => {\n const {\n indexers\n } = this;\n return indexers.indexers[row.indexer].id;\n }\n },\n sortBy: () => this.posterSortBy,\n layoutMode: 'fitRows',\n sortAscending: () => this.posterSortDir\n },\n fontSize: null,\n logoWidth: null,\n borderRadius: null,\n borderWidth: null,\n isotopeLoaded: false,\n imgLazyLoad: null\n };\n },\n\n computed: { ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapState\"])({\n config: state => state.config.general,\n stateLayout: state => state.config.layout,\n indexers: state => state.config.indexers,\n // Need to map these computed, as we need them in the $watch.\n posterSortBy: state => state.config.layout.posterSortby,\n posterSortDir: state => state.config.layout.posterSortdir,\n posterSize: state => state.config.layout.local.posterSize,\n currentShowTab: state => state.config.layout.local.currentShowTab\n }),\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapGetters\"])({\n fuzzyParseDateTime: 'fuzzyParseDateTime'\n }),\n\n sortedShows() {\n const {\n shows,\n maxNextAirDate\n } = this;\n\n if (shows.length === 0 || !maxNextAirDate) {\n return [];\n }\n\n return shows;\n },\n\n showContainerStyle() {\n const {\n posterSize,\n borderWidth,\n borderRadius\n } = this;\n return {\n width: posterSize + 'px',\n borderWidth: borderWidth + 'px',\n borderRadius: borderRadius + 'px'\n };\n },\n\n maxNextAirDate() {\n const {\n shows\n } = this;\n return Math.max(...shows.filter(show => show.nextAirDate).map(show => Date.parse(show.nextAirDate)));\n }\n\n },\n methods: {\n prettyBytes: bytes => pretty_bytes__WEBPACK_IMPORTED_MODULE_1___default()(bytes),\n\n showIndexerUrl(show) {\n const {\n indexers\n } = this;\n\n if (!show.indexer) {\n return;\n }\n\n const id = show.id[show.indexer];\n const indexerUrl = indexers.indexers[show.indexer].showUrl;\n return `${indexerUrl}${id}`;\n },\n\n parsePrevDateFn(row) {\n const {\n fuzzyParseDateTime\n } = this;\n\n if (row.prevAirDate) {\n console.log(`Calculating time for show ${row.title} prev date: ${row.prevAirDate}`);\n return fuzzyParseDateTime(row.prevAirDate);\n }\n\n return '';\n },\n\n parseNextDateFn(row) {\n const {\n fuzzyParseDateTime\n } = this;\n\n if (row.nextAirDate) {\n console.log(`Calculating time for show ${row.title} next date: ${row.nextAirDate}`);\n return fuzzyParseDateTime(row.nextAirDate);\n }\n\n return '';\n },\n\n calculateSize() {\n const {\n posterSize\n } = this;\n\n if (posterSize < 125) {\n // Small\n this.fontSize = null;\n this.borderRadius = 3;\n this.borderWidth = 4;\n } else if (posterSize < 175) {\n // Medium\n this.fontSize = 9;\n this.logoWidth = 40;\n this.borderRadius = 4;\n this.borderWidth = 5;\n } else {\n // Large\n this.fontSize = 11;\n this.logoWidth = 50;\n this.borderRadius = 6;\n this.borderWidth = 6;\n }\n },\n\n updateLayout() {\n const {\n calculateSize,\n imgLazyLoad,\n listTitle,\n posterSortBy,\n posterSortDir\n } = this;\n this.isotopeLoaded = true; // this.$lazyImages.loadImage();\n // imgLazyLoad.update();\n\n calculateSize(); // Render layout (for sizing)\n\n this.$refs[`isotope-${listTitle}`].layout(); // Arrange & Sort\n\n this.$refs[`isotope-${listTitle}`].arrange({\n sortBy: posterSortBy,\n sortAscending: posterSortDir\n });\n console.log('isotope Layout loaded');\n },\n\n dateOrStatus(show) {\n if (show.nextAirDate) {\n const {\n fuzzyParseDateTime\n } = this;\n return fuzzyParseDateTime(show.nextAirDate);\n }\n\n if (!show.status.includes('nded') && show.config.paused) {\n return 'Paused';\n }\n\n return show.status;\n }\n\n },\n\n mounted() {// this.imgLazyLoad = new LazyLoad({\n // threshold: 500\n // });\n },\n\n watch: {\n posterSortBy(key) {\n const {\n listTitle\n } = this;\n this.$refs[`isotope-${listTitle}`].sort(key);\n },\n\n posterSortDir(value) {\n const {\n listTitle,\n posterSortBy\n } = this;\n this.$refs[`isotope-${listTitle}`].arrange({\n sortBy: posterSortBy,\n sortAscending: value\n });\n },\n\n posterSize(oldSize, newSize) {\n const {\n calculateSize,\n isotopeLoaded,\n listTitle\n } = this;\n\n if (!isotopeLoaded || oldSize === newSize) {\n return;\n }\n\n calculateSize();\n this.$nextTick(() => {\n this.$refs[`isotope-${listTitle}`].arrange();\n });\n },\n\n currentShowTab() {\n const {\n isotopeLoaded,\n listTitle\n } = this;\n\n if (!isotopeLoaded) {\n return;\n }\n\n this.$nextTick(() => {\n this.$refs[`isotope-${listTitle}`].arrange();\n });\n }\n\n }\n});\n\n//# sourceURL=webpack:///./src/components/show-list/poster.vue?./node_modules/babel-loader/lib??ref--1!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var pretty_bytes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! pretty-bytes */ \"./node_modules/pretty-bytes/index.js\");\n/* harmony import */ var pretty_bytes__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(pretty_bytes__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../helpers */ \"./src/components/helpers/index.js\");\n/* harmony import */ var vueisotope__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vueisotope */ \"./node_modules/vueisotope/dist/vue_isotope.min.js\");\n/* harmony import */ var vueisotope__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(vueisotope__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var vue_images_loaded__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue-images-loaded */ \"./node_modules/vue-images-loaded/dist/vueimagesloaded.js\");\n/* harmony import */ var vue_images_loaded__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(vue_images_loaded__WEBPACK_IMPORTED_MODULE_4__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'poster',\n directives: {\n imagesLoaded: (vue_images_loaded__WEBPACK_IMPORTED_MODULE_4___default())\n },\n components: {\n Asset: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"Asset\"],\n AppLink: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"AppLink\"],\n ProgressBar: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"ProgressBar\"],\n QualityPill: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"QualityPill\"],\n Isotope: (vueisotope__WEBPACK_IMPORTED_MODULE_3___default())\n },\n props: {\n layout: {\n validator: val => val === null || typeof val === 'string',\n required: true\n },\n shows: {\n type: Array,\n required: true\n },\n listTitle: {\n type: String\n },\n header: {\n type: Boolean\n }\n },\n\n data() {\n return {\n // Isotope stuff\n itemSelector: '.show-container',\n selected: null,\n option: {\n getSortData: {\n id: row => row.id.slug,\n name: 'title',\n date: row => {\n const {\n maxNextAirDate\n } = this;\n\n if (row.nextAirDate && Date.parse(row.nextAirDate) > Date.now()) {\n return Date.parse(row.nextAirDate) - Date.now();\n }\n\n if (row.prevAirDate) {\n return maxNextAirDate + Date.now() - Date.parse(row.prevAirDate);\n }\n\n return Date.now();\n },\n network: 'network',\n progress: row => {\n if (!row.stats) {\n return 0;\n }\n\n return Math.round(row.stats.episodes.downloaded / row.stats.episodes.total * 100);\n },\n indexer: row => {\n const {\n indexers\n } = this;\n return indexers.indexers[row.indexer].id;\n }\n },\n sortBy: () => this.posterSortBy,\n layoutMode: 'fitRows',\n sortAscending: () => this.posterSortDir\n },\n fontSize: null,\n logoWidth: null,\n borderRadius: null,\n borderWidth: null,\n isotopeLoaded: false,\n imgLazyLoad: null\n };\n },\n\n computed: { ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapState\"])({\n config: state => state.config.general,\n stateLayout: state => state.config.layout,\n indexers: state => state.config.indexers,\n // Need to map these computed, as we need them in the $watch.\n posterSortBy: state => state.config.layout.posterSortby,\n posterSortDir: state => state.config.layout.posterSortdir,\n posterSize: state => state.config.layout.local.posterSize,\n currentShowTab: state => state.config.layout.local.currentShowTab\n }),\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapGetters\"])({\n fuzzyParseDateTime: 'fuzzyParseDateTime'\n }),\n\n sortedShows() {\n const {\n shows,\n maxNextAirDate\n } = this;\n\n if (shows.length === 0 || !maxNextAirDate) {\n return [];\n }\n\n return shows;\n },\n\n showContainerStyle() {\n const {\n posterSize,\n borderWidth,\n borderRadius\n } = this;\n return {\n width: posterSize + 'px',\n borderWidth: borderWidth + 'px',\n borderRadius: borderRadius + 'px'\n };\n },\n\n maxNextAirDate() {\n const {\n shows\n } = this;\n return Math.max(...shows.filter(show => show.nextAirDate).map(show => Date.parse(show.nextAirDate)));\n }\n\n },\n methods: {\n prettyBytes: bytes => pretty_bytes__WEBPACK_IMPORTED_MODULE_1___default()(bytes),\n\n showIndexerUrl(show) {\n const {\n indexers\n } = this;\n\n if (!show.indexer) {\n return;\n }\n\n const id = show.id[show.indexer];\n const indexerUrl = indexers.indexers[show.indexer].showUrl;\n return `${indexerUrl}${id}`;\n },\n\n parsePrevDateFn(row) {\n const {\n fuzzyParseDateTime\n } = this;\n\n if (row.prevAirDate) {\n console.log(`Calculating time for show ${row.title} prev date: ${row.prevAirDate}`);\n return fuzzyParseDateTime(row.prevAirDate);\n }\n\n return '';\n },\n\n parseNextDateFn(row) {\n const {\n fuzzyParseDateTime\n } = this;\n\n if (row.nextAirDate) {\n console.log(`Calculating time for show ${row.title} next date: ${row.nextAirDate}`);\n return fuzzyParseDateTime(row.nextAirDate);\n }\n\n return '';\n },\n\n calculateSize() {\n const {\n posterSize\n } = this;\n\n if (posterSize < 125) {\n // Small\n this.fontSize = null;\n this.borderRadius = 3;\n this.borderWidth = 4;\n } else if (posterSize < 175) {\n // Medium\n this.fontSize = 9;\n this.logoWidth = 40;\n this.borderRadius = 4;\n this.borderWidth = 5;\n } else {\n // Large\n this.fontSize = 11;\n this.logoWidth = 50;\n this.borderRadius = 6;\n this.borderWidth = 6;\n }\n },\n\n updateLayout() {\n const {\n calculateSize,\n listTitle,\n posterSortBy,\n posterSortDir\n } = this;\n this.isotopeLoaded = true;\n calculateSize(); // Render layout (for sizing)\n\n this.$refs[`isotope-${listTitle}`].layout(); // Arrange & Sort\n\n this.$refs[`isotope-${listTitle}`].arrange({\n sortBy: posterSortBy,\n sortAscending: posterSortDir\n });\n console.log('isotope Layout loaded');\n },\n\n dateOrStatus(show) {\n if (show.nextAirDate) {\n const {\n fuzzyParseDateTime\n } = this;\n return fuzzyParseDateTime(show.nextAirDate);\n }\n\n if (!show.status.includes('nded') && show.config.paused) {\n return 'Paused';\n }\n\n return show.status;\n }\n\n },\n watch: {\n posterSortBy(key) {\n const {\n listTitle\n } = this;\n this.$refs[`isotope-${listTitle}`].sort(key);\n },\n\n posterSortDir(value) {\n const {\n listTitle,\n posterSortBy\n } = this;\n this.$refs[`isotope-${listTitle}`].arrange({\n sortBy: posterSortBy,\n sortAscending: value\n });\n },\n\n posterSize(oldSize, newSize) {\n const {\n calculateSize,\n isotopeLoaded,\n listTitle\n } = this;\n\n if (!isotopeLoaded || oldSize === newSize) {\n return;\n }\n\n calculateSize();\n this.$nextTick(() => {\n this.$refs[`isotope-${listTitle}`].arrange();\n });\n },\n\n currentShowTab() {\n const {\n isotopeLoaded,\n listTitle\n } = this;\n\n if (!isotopeLoaded) {\n return;\n }\n\n this.$nextTick(() => {\n this.$refs[`isotope-${listTitle}`].arrange();\n });\n }\n\n }\n});\n\n//# sourceURL=webpack:///./src/components/show-list/poster.vue?./node_modules/babel-loader/lib??ref--1!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), @@ -811,7 +811,7 @@ eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../. /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { -eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n.app-image[data-v-2a36af9c] {\\n max-width: 100%;\\n max-height: 100%;\\n width: auto;\\n height: auto;\\n vertical-align: middle;\\n}\\nimg[data-v-2a36af9c]:not([src]) {\\n visibility: hidden;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/components/helpers/lazy-image.vue?./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib??vue-loader-options"); +eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n.app-image[data-v-2a36af9c] {\\n max-width: 100%;\\n max-height: 100%;\\n width: auto;\\n height: auto;\\n vertical-align: middle;\\n}\\nimg[data-v-2a36af9c]:not([src]) {\\n visibility: hidden;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/components/helpers/lazy-image.vue?./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), @@ -965,7 +965,7 @@ eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../. /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { -eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n/* Make some room for the Select columns ul / dropdown. */\\n.component-margin[data-v-c645b858] {\\n margin-bottom: 50px;\\n}\\n.show-history-wrapper[data-v-c645b858] table.subtitle-table tr {\\n background-color: rgb(190, 222, 237);\\n}\\n.show-history-wrapper > td[data-v-c645b858] {\\n padding: 0;\\n}\\n.search-question[data-v-c645b858],\\n.loading-message[data-v-c645b858] {\\n background-color: rgb(51, 51, 51);\\n color: rgb(255, 255, 255);\\n padding: 10px;\\n line-height: 55px;\\n}\\nspan.subtitle-name[data-v-c645b858] {\\n color: rgb(0, 0, 0);\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/components/show-history.vue?./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib??vue-loader-options"); +eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n/* Make some room for the Select columns ul / dropdown. */\\n.component-margin[data-v-c645b858] {\\n margin-bottom: 50px;\\n}\\n.show-history-wrapper[data-v-c645b858] table.subtitle-table tr {\\n background-color: rgb(190, 222, 237);\\n}\\n.show-history-wrapper > td[data-v-c645b858] {\\n padding: 0;\\n}\\n.search-question[data-v-c645b858],\\n.loading-message[data-v-c645b858] {\\n background-color: rgb(51, 51, 51);\\n color: rgb(255, 255, 255);\\n padding: 10px;\\n line-height: 55px;\\n}\\nspan.subtitle-name[data-v-c645b858] {\\n color: rgb(0, 0, 0);\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/components/show-history.vue?./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), @@ -1524,7 +1524,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticClass: \"show-history-wrapper\",\n class: { \"component-margin\": !_vm.hideHistory }\n },\n [\n _c(\n \"div\",\n {\n staticClass: \"row\",\n class: { fanartBackground: _vm.layout.fanartBackground }\n },\n [\n _c(\n \"div\",\n { staticClass: \"col-md-12 top-15\" },\n [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.history.length > 0,\n expression: \"history.length > 0\"\n }\n ],\n staticClass: \"button-row\"\n },\n [\n _c(\n \"button\",\n {\n staticClass: \"btn-medusa top-5 bottom-5 pull-right\",\n attrs: { id: \"showhistory\", type: \"button\" },\n on: {\n click: function($event) {\n _vm.hideHistory = !_vm.hideHistory\n }\n }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.hideHistory ? \"Show History\" : \"Hide History\"\n ) +\n \"\\n \"\n )\n ]\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"vue-good-table\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value:\n !_vm.hideHistory &&\n _vm.show.id.slug &&\n _vm.history.length > 0,\n expression:\n \"!hideHistory && show.id.slug && history.length > 0\"\n }\n ],\n attrs: {\n columns: _vm.columns,\n rows: _vm.history,\n \"search-options\": {\n enabled: false\n },\n \"sort-options\": {\n enabled: true,\n initialSortBy: { field: \"actionDate\", type: \"desc\" }\n },\n \"column-filter-options\": {\n enabled: true\n },\n styleClass: \"vgt-table condensed\",\n \"row-style-class\": _vm.rowStyleClassFn\n },\n scopedSlots: _vm._u([\n {\n key: \"table-row\",\n fn: function(props) {\n return [\n props.column.label === \"Date\"\n ? _c(\"span\", { staticClass: \"align-center\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n props.row.actionDate\n ? _vm.fuzzyParseDateTime(\n props.formattedRow[props.column.field]\n )\n : \"\"\n ) +\n \"\\n \"\n )\n ])\n : props.column.label === \"Quality\"\n ? _c(\n \"span\",\n { staticClass: \"align-center\" },\n [\n props.row.quality !== 0\n ? _c(\"quality-pill\", {\n attrs: { quality: props.row.quality }\n })\n : _vm._e()\n ],\n 1\n )\n : props.column.label === \"Provider/Group\"\n ? _c(\n \"span\",\n { staticClass: \"align-center\" },\n [\n [\"Snatched\", \"Failed\", \"Downloaded\"].includes(\n props.row.statusName\n )\n ? [\n _c(\"img\", {\n staticClass: \"addQTip\",\n staticStyle: { \"margin-right\": \"5px\" },\n attrs: {\n src:\n \"images/providers/\" +\n props.row.provider.id +\n \".png\",\n alt: props.row.provider.name,\n width: \"16\",\n height: \"16\",\n title: props.row.provider.name,\n onError:\n \"this.onerror=null;this.src='images/providers/missing.png';\"\n }\n }),\n _vm._v(\" \"),\n props.row.statusName === \"Downloaded\"\n ? _c(\"span\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n props.row.releaseGroup !== -1\n ? props.row.releaseGroup\n : \"\"\n ) +\n \"\\n \"\n )\n ])\n : _vm._e()\n ]\n : props.row.statusName === \"Subtitled\"\n ? _c(\"img\", {\n staticClass: \"addQTip\",\n staticStyle: { \"margin-right\": \"5px\" },\n attrs: {\n src:\n \"images/subtitles/\" +\n props.row.provider.id +\n \".png\",\n alt: props.row.provider.name,\n width: \"16\",\n height: \"16\",\n title: props.row.provider.name\n }\n })\n : _c(\"span\", [\n _vm._v(\n \"\\n \" +\n _vm._s(props.row.provider.name) +\n \"\\n \"\n )\n ])\n ],\n 2\n )\n : props.column.label === \"Release\" &&\n props.row.statusName === \"Subtitled\"\n ? _c(\"span\", { staticClass: \"align-center\" }, [\n props.row.resource !== \"und\"\n ? _c(\"img\", {\n attrs: {\n src:\n \"images/subtitles/flags/\" +\n props.row.resource +\n \".png\",\n width: \"16\",\n height: \"11\",\n alt: props.row.resource,\n onError:\n \"this.onerror=null;this.src='images/flags/unknown.png';\"\n }\n })\n : _c(\"img\", {\n staticClass: \"subtitle-flag\",\n attrs: {\n src:\n \"images/subtitles/flags/\" +\n props.row.resource +\n \".png\",\n width: \"16\",\n height: \"11\",\n alt: props.row.resource,\n onError:\n \"this.onerror=null;this.src='images/flags/unknown.png';\"\n }\n })\n ])\n : _c(\"span\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n props.formattedRow[props.column.field]\n ) +\n \"\\n \"\n )\n ])\n ]\n }\n }\n ])\n })\n ],\n 1\n )\n ]\n )\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/show-history.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticClass: \"show-history-wrapper\",\n class: { \"component-margin\": !_vm.hideHistory }\n },\n [\n _c(\n \"div\",\n {\n staticClass: \"row\",\n class: { fanartBackground: _vm.layout.fanartBackground }\n },\n [\n _c(\n \"div\",\n { staticClass: \"col-md-12 top-15\" },\n [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.history.length > 0,\n expression: \"history.length > 0\"\n }\n ],\n staticClass: \"button-row\"\n },\n [\n _c(\n \"button\",\n {\n staticClass: \"btn-medusa top-5 bottom-5 pull-right\",\n attrs: { id: \"showhistory\", type: \"button\" },\n on: {\n click: function($event) {\n _vm.hideHistory = !_vm.hideHistory\n }\n }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.hideHistory ? \"Show History\" : \"Hide History\"\n ) +\n \"\\n \"\n )\n ]\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"vue-good-table\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value:\n !_vm.hideHistory &&\n _vm.show.id.slug &&\n _vm.history.length > 0,\n expression:\n \"!hideHistory && show.id.slug && history.length > 0\"\n }\n ],\n attrs: {\n columns: _vm.columns,\n rows: _vm.history,\n \"search-options\": {\n enabled: false\n },\n \"sort-options\": {\n enabled: true,\n initialSortBy: { field: \"actionDate\", type: \"desc\" }\n },\n \"column-filter-options\": {\n enabled: true\n },\n styleClass: \"vgt-table condensed\",\n \"row-style-class\": _vm.rowStyleClassFn\n },\n scopedSlots: _vm._u([\n {\n key: \"table-row\",\n fn: function(props) {\n return [\n props.column.label === \"Date\"\n ? _c(\"span\", { staticClass: \"align-center\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n props.row.actionDate\n ? _vm.fuzzyParseDateTime(\n props.formattedRow[props.column.field]\n )\n : \"\"\n ) +\n \"\\n \"\n )\n ])\n : props.column.label === \"Quality\"\n ? _c(\n \"span\",\n { staticClass: \"align-center\" },\n [\n props.row.quality !== 0\n ? _c(\"quality-pill\", {\n attrs: { quality: props.row.quality }\n })\n : _vm._e()\n ],\n 1\n )\n : props.column.label === \"Provider/Group\"\n ? _c(\n \"span\",\n { staticClass: \"align-center\" },\n [\n [\"Snatched\", \"Failed\"].includes(\n props.row.statusName\n )\n ? [\n _c(\"img\", {\n staticClass: \"addQTip\",\n staticStyle: { \"margin-right\": \"5px\" },\n attrs: {\n src:\n \"images/providers/\" +\n props.row.provider.id +\n \".png\",\n alt: props.row.provider.name,\n width: \"16\",\n height: \"16\",\n title: props.row.provider.name,\n onError:\n \"this.onerror=null;this.src='images/providers/missing.png';\"\n }\n })\n ]\n : _vm._e(),\n _vm._v(\" \"),\n props.row.statusName === \"Downloaded\"\n ? _c(\"span\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n props.row.releaseGroup !== -1\n ? props.row.releaseGroup\n : \"\"\n ) +\n \"\\n \"\n )\n ])\n : props.row.statusName === \"Subtitled\"\n ? _c(\"img\", {\n staticClass: \"addQTip\",\n staticStyle: { \"margin-right\": \"5px\" },\n attrs: {\n src:\n \"images/subtitles/\" +\n props.row.provider.id +\n \".png\",\n alt: props.row.provider.name,\n width: \"16\",\n height: \"16\",\n title: props.row.provider.name\n }\n })\n : _c(\"span\", [\n _vm._v(\n \"\\n \" +\n _vm._s(props.row.provider.name) +\n \"\\n \"\n )\n ])\n ],\n 2\n )\n : props.column.label === \"Release\" &&\n props.row.statusName === \"Subtitled\"\n ? _c(\"span\", { staticClass: \"align-center\" }, [\n props.row.resource !== \"und\"\n ? _c(\"img\", {\n attrs: {\n src:\n \"images/subtitles/flags/\" +\n props.row.resource +\n \".png\",\n width: \"16\",\n height: \"11\",\n alt: props.row.resource,\n onError:\n \"this.onerror=null;this.src='images/flags/unknown.png';\"\n }\n })\n : _c(\"img\", {\n staticClass: \"subtitle-flag\",\n attrs: {\n src:\n \"images/subtitles/flags/\" +\n props.row.resource +\n \".png\",\n width: \"16\",\n height: \"11\",\n alt: props.row.resource,\n onError:\n \"this.onerror=null;this.src='images/flags/unknown.png';\"\n }\n })\n ])\n : _c(\"span\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n props.formattedRow[props.column.field]\n ) +\n \"\\n \"\n )\n ])\n ]\n }\n }\n ])\n })\n ],\n 1\n )\n ]\n )\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/show-history.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), diff --git a/themes/light/assets/js/medusa-runtime.js b/themes/light/assets/js/medusa-runtime.js index 91adface43..3bd3f251aa 100644 --- a/themes/light/assets/js/medusa-runtime.js +++ b/themes/light/assets/js/medusa-runtime.js @@ -548,7 +548,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue_ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var vue_good_table__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue-good-table */ \"./node_modules/vue-good-table/dist/vue-good-table.esm.js\");\n/* harmony import */ var _utils_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/core */ \"./src/utils/core.js\");\n/* harmony import */ var _mixins_manage_cookie__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../mixins/manage-cookie */ \"./src/mixins/manage-cookie.js\");\n/* harmony import */ var _helpers_quality_pill_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./helpers/quality-pill.vue */ \"./src/components/helpers/quality-pill.vue\");\n/* harmony import */ var _utils_jquery__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/jquery */ \"./src/utils/jquery.js\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'show-history',\n components: {\n VueGoodTable: vue_good_table__WEBPACK_IMPORTED_MODULE_1__[\"VueGoodTable\"],\n QualityPill: _helpers_quality_pill_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n },\n mixins: [Object(_mixins_manage_cookie__WEBPACK_IMPORTED_MODULE_3__[\"manageCookieMixin\"])('showHistory')],\n props: {\n show: {\n type: Object,\n required: true\n },\n season: {\n type: Number,\n required: true\n },\n episode: {\n type: Number,\n required: false\n }\n },\n\n data() {\n const {\n getCookie\n } = this;\n const columns = [{\n label: 'Date',\n field: 'actionDate',\n dateInputFormat: 'yyyyMMddHHmmss',\n // E.g. 07-09-2017 19:16:25\n dateOutputFormat: 'yyyy-MM-dd HH:mm:ss',\n type: 'date',\n hidden: getCookie('Date')\n }, {\n label: 'Status',\n field: 'statusName',\n hidden: getCookie('Status')\n }, {\n label: 'Quality',\n field: 'quality',\n type: 'number',\n hidden: getCookie('Quality')\n }, {\n label: 'Provider/Group',\n field: 'provider.id',\n hidden: getCookie('Provider/Group')\n }, {\n label: 'Release',\n field: 'resource',\n hidden: getCookie('Release')\n }, {\n label: 'Season',\n field: 'season',\n type: 'number',\n hidden: getCookie('Season')\n }, {\n label: 'Episode',\n field: 'episode',\n type: 'number',\n hidden: getCookie('Episode')\n }, {\n label: 'Size',\n field: 'size',\n formatFn: _utils_core__WEBPACK_IMPORTED_MODULE_2__[\"humanFileSize\"],\n type: 'number',\n hidden: getCookie('Size')\n }];\n\n if (this.episode) {\n columns.find(column => column.label === 'Season').hidden = true;\n columns.find(column => column.label === 'Episode').hidden = true;\n }\n\n return {\n columns,\n loading: false,\n loadingMessage: '',\n history: [],\n hideHistory: true\n };\n },\n\n mounted() {\n const {\n getHistory\n } = this;\n getHistory();\n Object(_utils_jquery__WEBPACK_IMPORTED_MODULE_5__[\"addQTip\"])();\n },\n\n computed: { ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapState\"])({\n config: state => state.config.general,\n layout: state => state.config.layout,\n showHistory: state => state.history.showHistory,\n episodeHistory: state => state.history.episodeHistory\n }),\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapGetters\"])({\n getEpisodeHistory: 'getEpisodeHistory',\n getSeasonHistory: 'getSeasonHistory',\n fuzzyParseDateTime: 'fuzzyParseDateTime'\n })\n },\n methods: {\n humanFileSize: _utils_core__WEBPACK_IMPORTED_MODULE_2__[\"humanFileSize\"],\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapActions\"])({\n getShowEpisodeHistory: 'getShowEpisodeHistory',\n getShowHistory: 'getHistory'\n }),\n\n close() {\n this.$emit('close'); // Destroy the vue listeners, etc\n\n this.$destroy(); // Remove the element from the DOM\n\n this.$el.remove();\n },\n\n getHistory() {\n const {\n getShowHistory,\n getShowEpisodeHistory,\n show,\n episode,\n season,\n updateHistory\n } = this;\n\n if (show.id.slug) {\n if (episode) {\n // Use apiv2 to get latest episode history\n getShowEpisodeHistory({\n showSlug: show.id.slug,\n episodeSlug: Object(_utils_core__WEBPACK_IMPORTED_MODULE_2__[\"episodeToSlug\"])(season, episode)\n });\n } else {\n getShowHistory(show.id.slug);\n }\n } // Update the local history array with store data.\n\n\n updateHistory();\n },\n\n updateHistory() {\n const {\n getEpisodeHistory,\n getSeasonHistory,\n show,\n episode,\n season\n } = this;\n\n if (!show.id.slug) {\n return;\n }\n\n if (episode) {\n this.history = getEpisodeHistory({\n showSlug: show.id.slug,\n episodeSlug: Object(_utils_core__WEBPACK_IMPORTED_MODULE_2__[\"episodeToSlug\"])(season, episode)\n });\n } else {\n // As this is not an episode search, we're returning all results for the specific season.\n this.history = getSeasonHistory({\n showSlug: show.id.slug,\n season\n });\n }\n },\n\n rowStyleClassFn(row) {\n return row.statusName.toLowerCase() || 'skipped';\n }\n\n },\n watch: {\n episodeHistory: {\n handler() {\n const {\n show,\n updateHistory\n } = this;\n\n if (show.id.slug) {\n updateHistory();\n }\n },\n\n deep: true,\n immediate: false\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/show-history.vue?./node_modules/babel-loader/lib??ref--1!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var vue_good_table__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue-good-table */ \"./node_modules/vue-good-table/dist/vue-good-table.esm.js\");\n/* harmony import */ var _utils_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/core */ \"./src/utils/core.js\");\n/* harmony import */ var _mixins_manage_cookie__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../mixins/manage-cookie */ \"./src/mixins/manage-cookie.js\");\n/* harmony import */ var _helpers_quality_pill_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./helpers/quality-pill.vue */ \"./src/components/helpers/quality-pill.vue\");\n/* harmony import */ var _utils_jquery__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/jquery */ \"./src/utils/jquery.js\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'show-history',\n components: {\n VueGoodTable: vue_good_table__WEBPACK_IMPORTED_MODULE_1__[\"VueGoodTable\"],\n QualityPill: _helpers_quality_pill_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n },\n mixins: [Object(_mixins_manage_cookie__WEBPACK_IMPORTED_MODULE_3__[\"manageCookieMixin\"])('showHistory')],\n props: {\n show: {\n type: Object,\n required: true\n },\n season: {\n type: Number,\n required: true\n },\n episode: {\n type: Number,\n required: false\n }\n },\n\n data() {\n const {\n getCookie\n } = this;\n const columns = [{\n label: 'Date',\n field: 'actionDate',\n dateInputFormat: 'yyyyMMddHHmmss',\n // E.g. 07-09-2017 19:16:25\n dateOutputFormat: 'yyyy-MM-dd HH:mm:ss',\n type: 'date',\n hidden: getCookie('Date')\n }, {\n label: 'Status',\n field: 'statusName',\n hidden: getCookie('Status')\n }, {\n label: 'Quality',\n field: 'quality',\n type: 'number',\n hidden: getCookie('Quality')\n }, {\n label: 'Provider/Group',\n field: 'provider.id',\n hidden: getCookie('Provider/Group')\n }, {\n label: 'Release',\n field: 'resource',\n hidden: getCookie('Release')\n }, {\n label: 'Season',\n field: 'season',\n type: 'number',\n hidden: getCookie('Season')\n }, {\n label: 'Episode',\n field: 'episode',\n type: 'number',\n hidden: getCookie('Episode')\n }, {\n label: 'Size',\n field: 'size',\n formatFn: _utils_core__WEBPACK_IMPORTED_MODULE_2__[\"humanFileSize\"],\n type: 'number',\n hidden: getCookie('Size')\n }];\n\n if (this.episode) {\n columns.find(column => column.label === 'Season').hidden = true;\n columns.find(column => column.label === 'Episode').hidden = true;\n }\n\n return {\n columns,\n loading: false,\n loadingMessage: '',\n history: [],\n hideHistory: true\n };\n },\n\n mounted() {\n const {\n getHistory\n } = this;\n getHistory();\n Object(_utils_jquery__WEBPACK_IMPORTED_MODULE_5__[\"addQTip\"])();\n },\n\n computed: { ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapState\"])({\n config: state => state.config.general,\n layout: state => state.config.layout,\n showHistory: state => state.history.showHistory,\n episodeHistory: state => state.history.episodeHistory\n }),\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapGetters\"])({\n getEpisodeHistory: 'getEpisodeHistory',\n getSeasonHistory: 'getSeasonHistory',\n fuzzyParseDateTime: 'fuzzyParseDateTime'\n })\n },\n methods: {\n humanFileSize: _utils_core__WEBPACK_IMPORTED_MODULE_2__[\"humanFileSize\"],\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapActions\"])({\n getShowEpisodeHistory: 'getShowEpisodeHistory',\n getShowHistory: 'getHistory'\n }),\n\n close() {\n this.$emit('close'); // Destroy the vue listeners, etc\n\n this.$destroy(); // Remove the element from the DOM\n\n this.$el.remove();\n },\n\n getHistory() {\n const {\n getShowHistory,\n getShowEpisodeHistory,\n show,\n episode,\n season,\n updateHistory\n } = this;\n\n if (show.id.slug) {\n if (episode) {\n // Use apiv2 to get latest episode history\n getShowEpisodeHistory({\n showSlug: show.id.slug,\n episodeSlug: Object(_utils_core__WEBPACK_IMPORTED_MODULE_2__[\"episodeToSlug\"])(season, episode)\n });\n } else {\n getShowHistory(show.id.slug);\n }\n } // Update the local history array with store data.\n\n\n updateHistory();\n },\n\n updateHistory() {\n const {\n getEpisodeHistory,\n getSeasonHistory,\n show,\n episode,\n season\n } = this;\n\n if (!show.id.slug) {\n return;\n }\n\n if (episode) {\n this.history = getEpisodeHistory({\n showSlug: show.id.slug,\n episodeSlug: Object(_utils_core__WEBPACK_IMPORTED_MODULE_2__[\"episodeToSlug\"])(season, episode)\n });\n } else {\n // As this is not an episode search, we're returning all results for the specific season.\n this.history = getSeasonHistory({\n showSlug: show.id.slug,\n season\n });\n }\n },\n\n rowStyleClassFn(row) {\n return row.statusName.toLowerCase() || 'skipped';\n }\n\n },\n watch: {\n episodeHistory: {\n handler() {\n const {\n show,\n updateHistory\n } = this;\n\n if (show.id.slug) {\n updateHistory();\n }\n },\n\n deep: true,\n immediate: false\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/show-history.vue?./node_modules/babel-loader/lib??ref--1!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), @@ -584,7 +584,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vuex /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var pretty_bytes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! pretty-bytes */ \"./node_modules/pretty-bytes/index.js\");\n/* harmony import */ var pretty_bytes__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(pretty_bytes__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../helpers */ \"./src/components/helpers/index.js\");\n/* harmony import */ var vueisotope__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vueisotope */ \"./node_modules/vueisotope/dist/vue_isotope.min.js\");\n/* harmony import */ var vueisotope__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(vueisotope__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var vue_images_loaded__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue-images-loaded */ \"./node_modules/vue-images-loaded/dist/vueimagesloaded.js\");\n/* harmony import */ var vue_images_loaded__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(vue_images_loaded__WEBPACK_IMPORTED_MODULE_4__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'poster',\n directives: {\n imagesLoaded: (vue_images_loaded__WEBPACK_IMPORTED_MODULE_4___default())\n },\n components: {\n Asset: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"Asset\"],\n AppLink: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"AppLink\"],\n ProgressBar: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"ProgressBar\"],\n QualityPill: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"QualityPill\"],\n Isotope: (vueisotope__WEBPACK_IMPORTED_MODULE_3___default())\n },\n props: {\n layout: {\n validator: val => val === null || typeof val === 'string',\n required: true\n },\n shows: {\n type: Array,\n required: true\n },\n listTitle: {\n type: String\n },\n header: {\n type: Boolean\n }\n },\n\n data() {\n return {\n // Isotope stuff\n itemSelector: '.show-container',\n selected: null,\n option: {\n getSortData: {\n id: row => row.id.slug,\n name: 'title',\n date: row => {\n const {\n maxNextAirDate\n } = this;\n\n if (row.nextAirDate && Date.parse(row.nextAirDate) > Date.now()) {\n return Date.parse(row.nextAirDate) - Date.now();\n }\n\n if (row.prevAirDate) {\n return maxNextAirDate + Date.now() - Date.parse(row.prevAirDate);\n }\n\n return Date.now();\n },\n network: 'network',\n progress: row => {\n if (!row.stats) {\n return 0;\n }\n\n return Math.round(row.stats.episodes.downloaded / row.stats.episodes.total * 100);\n },\n indexer: row => {\n const {\n indexers\n } = this;\n return indexers.indexers[row.indexer].id;\n }\n },\n sortBy: () => this.posterSortBy,\n layoutMode: 'fitRows',\n sortAscending: () => this.posterSortDir\n },\n fontSize: null,\n logoWidth: null,\n borderRadius: null,\n borderWidth: null,\n isotopeLoaded: false,\n imgLazyLoad: null\n };\n },\n\n computed: { ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapState\"])({\n config: state => state.config.general,\n stateLayout: state => state.config.layout,\n indexers: state => state.config.indexers,\n // Need to map these computed, as we need them in the $watch.\n posterSortBy: state => state.config.layout.posterSortby,\n posterSortDir: state => state.config.layout.posterSortdir,\n posterSize: state => state.config.layout.local.posterSize,\n currentShowTab: state => state.config.layout.local.currentShowTab\n }),\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapGetters\"])({\n fuzzyParseDateTime: 'fuzzyParseDateTime'\n }),\n\n sortedShows() {\n const {\n shows,\n maxNextAirDate\n } = this;\n\n if (shows.length === 0 || !maxNextAirDate) {\n return [];\n }\n\n return shows;\n },\n\n showContainerStyle() {\n const {\n posterSize,\n borderWidth,\n borderRadius\n } = this;\n return {\n width: posterSize + 'px',\n borderWidth: borderWidth + 'px',\n borderRadius: borderRadius + 'px'\n };\n },\n\n maxNextAirDate() {\n const {\n shows\n } = this;\n return Math.max(...shows.filter(show => show.nextAirDate).map(show => Date.parse(show.nextAirDate)));\n }\n\n },\n methods: {\n prettyBytes: bytes => pretty_bytes__WEBPACK_IMPORTED_MODULE_1___default()(bytes),\n\n showIndexerUrl(show) {\n const {\n indexers\n } = this;\n\n if (!show.indexer) {\n return;\n }\n\n const id = show.id[show.indexer];\n const indexerUrl = indexers.indexers[show.indexer].showUrl;\n return `${indexerUrl}${id}`;\n },\n\n parsePrevDateFn(row) {\n const {\n fuzzyParseDateTime\n } = this;\n\n if (row.prevAirDate) {\n console.log(`Calculating time for show ${row.title} prev date: ${row.prevAirDate}`);\n return fuzzyParseDateTime(row.prevAirDate);\n }\n\n return '';\n },\n\n parseNextDateFn(row) {\n const {\n fuzzyParseDateTime\n } = this;\n\n if (row.nextAirDate) {\n console.log(`Calculating time for show ${row.title} next date: ${row.nextAirDate}`);\n return fuzzyParseDateTime(row.nextAirDate);\n }\n\n return '';\n },\n\n calculateSize() {\n const {\n posterSize\n } = this;\n\n if (posterSize < 125) {\n // Small\n this.fontSize = null;\n this.borderRadius = 3;\n this.borderWidth = 4;\n } else if (posterSize < 175) {\n // Medium\n this.fontSize = 9;\n this.logoWidth = 40;\n this.borderRadius = 4;\n this.borderWidth = 5;\n } else {\n // Large\n this.fontSize = 11;\n this.logoWidth = 50;\n this.borderRadius = 6;\n this.borderWidth = 6;\n }\n },\n\n updateLayout() {\n const {\n calculateSize,\n imgLazyLoad,\n listTitle,\n posterSortBy,\n posterSortDir\n } = this;\n this.isotopeLoaded = true; // this.$lazyImages.loadImage();\n // imgLazyLoad.update();\n\n calculateSize(); // Render layout (for sizing)\n\n this.$refs[`isotope-${listTitle}`].layout(); // Arrange & Sort\n\n this.$refs[`isotope-${listTitle}`].arrange({\n sortBy: posterSortBy,\n sortAscending: posterSortDir\n });\n console.log('isotope Layout loaded');\n },\n\n dateOrStatus(show) {\n if (show.nextAirDate) {\n const {\n fuzzyParseDateTime\n } = this;\n return fuzzyParseDateTime(show.nextAirDate);\n }\n\n if (!show.status.includes('nded') && show.config.paused) {\n return 'Paused';\n }\n\n return show.status;\n }\n\n },\n\n mounted() {// this.imgLazyLoad = new LazyLoad({\n // threshold: 500\n // });\n },\n\n watch: {\n posterSortBy(key) {\n const {\n listTitle\n } = this;\n this.$refs[`isotope-${listTitle}`].sort(key);\n },\n\n posterSortDir(value) {\n const {\n listTitle,\n posterSortBy\n } = this;\n this.$refs[`isotope-${listTitle}`].arrange({\n sortBy: posterSortBy,\n sortAscending: value\n });\n },\n\n posterSize(oldSize, newSize) {\n const {\n calculateSize,\n isotopeLoaded,\n listTitle\n } = this;\n\n if (!isotopeLoaded || oldSize === newSize) {\n return;\n }\n\n calculateSize();\n this.$nextTick(() => {\n this.$refs[`isotope-${listTitle}`].arrange();\n });\n },\n\n currentShowTab() {\n const {\n isotopeLoaded,\n listTitle\n } = this;\n\n if (!isotopeLoaded) {\n return;\n }\n\n this.$nextTick(() => {\n this.$refs[`isotope-${listTitle}`].arrange();\n });\n }\n\n }\n});\n\n//# sourceURL=webpack:///./src/components/show-list/poster.vue?./node_modules/babel-loader/lib??ref--1!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var pretty_bytes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! pretty-bytes */ \"./node_modules/pretty-bytes/index.js\");\n/* harmony import */ var pretty_bytes__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(pretty_bytes__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../helpers */ \"./src/components/helpers/index.js\");\n/* harmony import */ var vueisotope__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vueisotope */ \"./node_modules/vueisotope/dist/vue_isotope.min.js\");\n/* harmony import */ var vueisotope__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(vueisotope__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var vue_images_loaded__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue-images-loaded */ \"./node_modules/vue-images-loaded/dist/vueimagesloaded.js\");\n/* harmony import */ var vue_images_loaded__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(vue_images_loaded__WEBPACK_IMPORTED_MODULE_4__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'poster',\n directives: {\n imagesLoaded: (vue_images_loaded__WEBPACK_IMPORTED_MODULE_4___default())\n },\n components: {\n Asset: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"Asset\"],\n AppLink: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"AppLink\"],\n ProgressBar: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"ProgressBar\"],\n QualityPill: _helpers__WEBPACK_IMPORTED_MODULE_2__[\"QualityPill\"],\n Isotope: (vueisotope__WEBPACK_IMPORTED_MODULE_3___default())\n },\n props: {\n layout: {\n validator: val => val === null || typeof val === 'string',\n required: true\n },\n shows: {\n type: Array,\n required: true\n },\n listTitle: {\n type: String\n },\n header: {\n type: Boolean\n }\n },\n\n data() {\n return {\n // Isotope stuff\n itemSelector: '.show-container',\n selected: null,\n option: {\n getSortData: {\n id: row => row.id.slug,\n name: 'title',\n date: row => {\n const {\n maxNextAirDate\n } = this;\n\n if (row.nextAirDate && Date.parse(row.nextAirDate) > Date.now()) {\n return Date.parse(row.nextAirDate) - Date.now();\n }\n\n if (row.prevAirDate) {\n return maxNextAirDate + Date.now() - Date.parse(row.prevAirDate);\n }\n\n return Date.now();\n },\n network: 'network',\n progress: row => {\n if (!row.stats) {\n return 0;\n }\n\n return Math.round(row.stats.episodes.downloaded / row.stats.episodes.total * 100);\n },\n indexer: row => {\n const {\n indexers\n } = this;\n return indexers.indexers[row.indexer].id;\n }\n },\n sortBy: () => this.posterSortBy,\n layoutMode: 'fitRows',\n sortAscending: () => this.posterSortDir\n },\n fontSize: null,\n logoWidth: null,\n borderRadius: null,\n borderWidth: null,\n isotopeLoaded: false,\n imgLazyLoad: null\n };\n },\n\n computed: { ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapState\"])({\n config: state => state.config.general,\n stateLayout: state => state.config.layout,\n indexers: state => state.config.indexers,\n // Need to map these computed, as we need them in the $watch.\n posterSortBy: state => state.config.layout.posterSortby,\n posterSortDir: state => state.config.layout.posterSortdir,\n posterSize: state => state.config.layout.local.posterSize,\n currentShowTab: state => state.config.layout.local.currentShowTab\n }),\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapGetters\"])({\n fuzzyParseDateTime: 'fuzzyParseDateTime'\n }),\n\n sortedShows() {\n const {\n shows,\n maxNextAirDate\n } = this;\n\n if (shows.length === 0 || !maxNextAirDate) {\n return [];\n }\n\n return shows;\n },\n\n showContainerStyle() {\n const {\n posterSize,\n borderWidth,\n borderRadius\n } = this;\n return {\n width: posterSize + 'px',\n borderWidth: borderWidth + 'px',\n borderRadius: borderRadius + 'px'\n };\n },\n\n maxNextAirDate() {\n const {\n shows\n } = this;\n return Math.max(...shows.filter(show => show.nextAirDate).map(show => Date.parse(show.nextAirDate)));\n }\n\n },\n methods: {\n prettyBytes: bytes => pretty_bytes__WEBPACK_IMPORTED_MODULE_1___default()(bytes),\n\n showIndexerUrl(show) {\n const {\n indexers\n } = this;\n\n if (!show.indexer) {\n return;\n }\n\n const id = show.id[show.indexer];\n const indexerUrl = indexers.indexers[show.indexer].showUrl;\n return `${indexerUrl}${id}`;\n },\n\n parsePrevDateFn(row) {\n const {\n fuzzyParseDateTime\n } = this;\n\n if (row.prevAirDate) {\n console.log(`Calculating time for show ${row.title} prev date: ${row.prevAirDate}`);\n return fuzzyParseDateTime(row.prevAirDate);\n }\n\n return '';\n },\n\n parseNextDateFn(row) {\n const {\n fuzzyParseDateTime\n } = this;\n\n if (row.nextAirDate) {\n console.log(`Calculating time for show ${row.title} next date: ${row.nextAirDate}`);\n return fuzzyParseDateTime(row.nextAirDate);\n }\n\n return '';\n },\n\n calculateSize() {\n const {\n posterSize\n } = this;\n\n if (posterSize < 125) {\n // Small\n this.fontSize = null;\n this.borderRadius = 3;\n this.borderWidth = 4;\n } else if (posterSize < 175) {\n // Medium\n this.fontSize = 9;\n this.logoWidth = 40;\n this.borderRadius = 4;\n this.borderWidth = 5;\n } else {\n // Large\n this.fontSize = 11;\n this.logoWidth = 50;\n this.borderRadius = 6;\n this.borderWidth = 6;\n }\n },\n\n updateLayout() {\n const {\n calculateSize,\n listTitle,\n posterSortBy,\n posterSortDir\n } = this;\n this.isotopeLoaded = true;\n calculateSize(); // Render layout (for sizing)\n\n this.$refs[`isotope-${listTitle}`].layout(); // Arrange & Sort\n\n this.$refs[`isotope-${listTitle}`].arrange({\n sortBy: posterSortBy,\n sortAscending: posterSortDir\n });\n console.log('isotope Layout loaded');\n },\n\n dateOrStatus(show) {\n if (show.nextAirDate) {\n const {\n fuzzyParseDateTime\n } = this;\n return fuzzyParseDateTime(show.nextAirDate);\n }\n\n if (!show.status.includes('nded') && show.config.paused) {\n return 'Paused';\n }\n\n return show.status;\n }\n\n },\n watch: {\n posterSortBy(key) {\n const {\n listTitle\n } = this;\n this.$refs[`isotope-${listTitle}`].sort(key);\n },\n\n posterSortDir(value) {\n const {\n listTitle,\n posterSortBy\n } = this;\n this.$refs[`isotope-${listTitle}`].arrange({\n sortBy: posterSortBy,\n sortAscending: value\n });\n },\n\n posterSize(oldSize, newSize) {\n const {\n calculateSize,\n isotopeLoaded,\n listTitle\n } = this;\n\n if (!isotopeLoaded || oldSize === newSize) {\n return;\n }\n\n calculateSize();\n this.$nextTick(() => {\n this.$refs[`isotope-${listTitle}`].arrange();\n });\n },\n\n currentShowTab() {\n const {\n isotopeLoaded,\n listTitle\n } = this;\n\n if (!isotopeLoaded) {\n return;\n }\n\n this.$nextTick(() => {\n this.$refs[`isotope-${listTitle}`].arrange();\n });\n }\n\n }\n});\n\n//# sourceURL=webpack:///./src/components/show-list/poster.vue?./node_modules/babel-loader/lib??ref--1!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), @@ -811,7 +811,7 @@ eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../. /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { -eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n.app-image[data-v-2a36af9c] {\\n max-width: 100%;\\n max-height: 100%;\\n width: auto;\\n height: auto;\\n vertical-align: middle;\\n}\\nimg[data-v-2a36af9c]:not([src]) {\\n visibility: hidden;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/components/helpers/lazy-image.vue?./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib??vue-loader-options"); +eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n.app-image[data-v-2a36af9c] {\\n max-width: 100%;\\n max-height: 100%;\\n width: auto;\\n height: auto;\\n vertical-align: middle;\\n}\\nimg[data-v-2a36af9c]:not([src]) {\\n visibility: hidden;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/components/helpers/lazy-image.vue?./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), @@ -965,7 +965,7 @@ eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../. /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { -eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n/* Make some room for the Select columns ul / dropdown. */\\n.component-margin[data-v-c645b858] {\\n margin-bottom: 50px;\\n}\\n.show-history-wrapper[data-v-c645b858] table.subtitle-table tr {\\n background-color: rgb(190, 222, 237);\\n}\\n.show-history-wrapper > td[data-v-c645b858] {\\n padding: 0;\\n}\\n.search-question[data-v-c645b858],\\n.loading-message[data-v-c645b858] {\\n background-color: rgb(51, 51, 51);\\n color: rgb(255, 255, 255);\\n padding: 10px;\\n line-height: 55px;\\n}\\nspan.subtitle-name[data-v-c645b858] {\\n color: rgb(0, 0, 0);\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/components/show-history.vue?./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib??vue-loader-options"); +eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n/* Make some room for the Select columns ul / dropdown. */\\n.component-margin[data-v-c645b858] {\\n margin-bottom: 50px;\\n}\\n.show-history-wrapper[data-v-c645b858] table.subtitle-table tr {\\n background-color: rgb(190, 222, 237);\\n}\\n.show-history-wrapper > td[data-v-c645b858] {\\n padding: 0;\\n}\\n.search-question[data-v-c645b858],\\n.loading-message[data-v-c645b858] {\\n background-color: rgb(51, 51, 51);\\n color: rgb(255, 255, 255);\\n padding: 10px;\\n line-height: 55px;\\n}\\nspan.subtitle-name[data-v-c645b858] {\\n color: rgb(0, 0, 0);\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/components/show-history.vue?./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), @@ -1524,7 +1524,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticClass: \"show-history-wrapper\",\n class: { \"component-margin\": !_vm.hideHistory }\n },\n [\n _c(\n \"div\",\n {\n staticClass: \"row\",\n class: { fanartBackground: _vm.layout.fanartBackground }\n },\n [\n _c(\n \"div\",\n { staticClass: \"col-md-12 top-15\" },\n [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.history.length > 0,\n expression: \"history.length > 0\"\n }\n ],\n staticClass: \"button-row\"\n },\n [\n _c(\n \"button\",\n {\n staticClass: \"btn-medusa top-5 bottom-5 pull-right\",\n attrs: { id: \"showhistory\", type: \"button\" },\n on: {\n click: function($event) {\n _vm.hideHistory = !_vm.hideHistory\n }\n }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.hideHistory ? \"Show History\" : \"Hide History\"\n ) +\n \"\\n \"\n )\n ]\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"vue-good-table\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value:\n !_vm.hideHistory &&\n _vm.show.id.slug &&\n _vm.history.length > 0,\n expression:\n \"!hideHistory && show.id.slug && history.length > 0\"\n }\n ],\n attrs: {\n columns: _vm.columns,\n rows: _vm.history,\n \"search-options\": {\n enabled: false\n },\n \"sort-options\": {\n enabled: true,\n initialSortBy: { field: \"actionDate\", type: \"desc\" }\n },\n \"column-filter-options\": {\n enabled: true\n },\n styleClass: \"vgt-table condensed\",\n \"row-style-class\": _vm.rowStyleClassFn\n },\n scopedSlots: _vm._u([\n {\n key: \"table-row\",\n fn: function(props) {\n return [\n props.column.label === \"Date\"\n ? _c(\"span\", { staticClass: \"align-center\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n props.row.actionDate\n ? _vm.fuzzyParseDateTime(\n props.formattedRow[props.column.field]\n )\n : \"\"\n ) +\n \"\\n \"\n )\n ])\n : props.column.label === \"Quality\"\n ? _c(\n \"span\",\n { staticClass: \"align-center\" },\n [\n props.row.quality !== 0\n ? _c(\"quality-pill\", {\n attrs: { quality: props.row.quality }\n })\n : _vm._e()\n ],\n 1\n )\n : props.column.label === \"Provider/Group\"\n ? _c(\n \"span\",\n { staticClass: \"align-center\" },\n [\n [\"Snatched\", \"Failed\", \"Downloaded\"].includes(\n props.row.statusName\n )\n ? [\n _c(\"img\", {\n staticClass: \"addQTip\",\n staticStyle: { \"margin-right\": \"5px\" },\n attrs: {\n src:\n \"images/providers/\" +\n props.row.provider.id +\n \".png\",\n alt: props.row.provider.name,\n width: \"16\",\n height: \"16\",\n title: props.row.provider.name,\n onError:\n \"this.onerror=null;this.src='images/providers/missing.png';\"\n }\n }),\n _vm._v(\" \"),\n props.row.statusName === \"Downloaded\"\n ? _c(\"span\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n props.row.releaseGroup !== -1\n ? props.row.releaseGroup\n : \"\"\n ) +\n \"\\n \"\n )\n ])\n : _vm._e()\n ]\n : props.row.statusName === \"Subtitled\"\n ? _c(\"img\", {\n staticClass: \"addQTip\",\n staticStyle: { \"margin-right\": \"5px\" },\n attrs: {\n src:\n \"images/subtitles/\" +\n props.row.provider.id +\n \".png\",\n alt: props.row.provider.name,\n width: \"16\",\n height: \"16\",\n title: props.row.provider.name\n }\n })\n : _c(\"span\", [\n _vm._v(\n \"\\n \" +\n _vm._s(props.row.provider.name) +\n \"\\n \"\n )\n ])\n ],\n 2\n )\n : props.column.label === \"Release\" &&\n props.row.statusName === \"Subtitled\"\n ? _c(\"span\", { staticClass: \"align-center\" }, [\n props.row.resource !== \"und\"\n ? _c(\"img\", {\n attrs: {\n src:\n \"images/subtitles/flags/\" +\n props.row.resource +\n \".png\",\n width: \"16\",\n height: \"11\",\n alt: props.row.resource,\n onError:\n \"this.onerror=null;this.src='images/flags/unknown.png';\"\n }\n })\n : _c(\"img\", {\n staticClass: \"subtitle-flag\",\n attrs: {\n src:\n \"images/subtitles/flags/\" +\n props.row.resource +\n \".png\",\n width: \"16\",\n height: \"11\",\n alt: props.row.resource,\n onError:\n \"this.onerror=null;this.src='images/flags/unknown.png';\"\n }\n })\n ])\n : _c(\"span\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n props.formattedRow[props.column.field]\n ) +\n \"\\n \"\n )\n ])\n ]\n }\n }\n ])\n })\n ],\n 1\n )\n ]\n )\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/show-history.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticClass: \"show-history-wrapper\",\n class: { \"component-margin\": !_vm.hideHistory }\n },\n [\n _c(\n \"div\",\n {\n staticClass: \"row\",\n class: { fanartBackground: _vm.layout.fanartBackground }\n },\n [\n _c(\n \"div\",\n { staticClass: \"col-md-12 top-15\" },\n [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.history.length > 0,\n expression: \"history.length > 0\"\n }\n ],\n staticClass: \"button-row\"\n },\n [\n _c(\n \"button\",\n {\n staticClass: \"btn-medusa top-5 bottom-5 pull-right\",\n attrs: { id: \"showhistory\", type: \"button\" },\n on: {\n click: function($event) {\n _vm.hideHistory = !_vm.hideHistory\n }\n }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.hideHistory ? \"Show History\" : \"Hide History\"\n ) +\n \"\\n \"\n )\n ]\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"vue-good-table\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value:\n !_vm.hideHistory &&\n _vm.show.id.slug &&\n _vm.history.length > 0,\n expression:\n \"!hideHistory && show.id.slug && history.length > 0\"\n }\n ],\n attrs: {\n columns: _vm.columns,\n rows: _vm.history,\n \"search-options\": {\n enabled: false\n },\n \"sort-options\": {\n enabled: true,\n initialSortBy: { field: \"actionDate\", type: \"desc\" }\n },\n \"column-filter-options\": {\n enabled: true\n },\n styleClass: \"vgt-table condensed\",\n \"row-style-class\": _vm.rowStyleClassFn\n },\n scopedSlots: _vm._u([\n {\n key: \"table-row\",\n fn: function(props) {\n return [\n props.column.label === \"Date\"\n ? _c(\"span\", { staticClass: \"align-center\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n props.row.actionDate\n ? _vm.fuzzyParseDateTime(\n props.formattedRow[props.column.field]\n )\n : \"\"\n ) +\n \"\\n \"\n )\n ])\n : props.column.label === \"Quality\"\n ? _c(\n \"span\",\n { staticClass: \"align-center\" },\n [\n props.row.quality !== 0\n ? _c(\"quality-pill\", {\n attrs: { quality: props.row.quality }\n })\n : _vm._e()\n ],\n 1\n )\n : props.column.label === \"Provider/Group\"\n ? _c(\n \"span\",\n { staticClass: \"align-center\" },\n [\n [\"Snatched\", \"Failed\"].includes(\n props.row.statusName\n )\n ? [\n _c(\"img\", {\n staticClass: \"addQTip\",\n staticStyle: { \"margin-right\": \"5px\" },\n attrs: {\n src:\n \"images/providers/\" +\n props.row.provider.id +\n \".png\",\n alt: props.row.provider.name,\n width: \"16\",\n height: \"16\",\n title: props.row.provider.name,\n onError:\n \"this.onerror=null;this.src='images/providers/missing.png';\"\n }\n })\n ]\n : _vm._e(),\n _vm._v(\" \"),\n props.row.statusName === \"Downloaded\"\n ? _c(\"span\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n props.row.releaseGroup !== -1\n ? props.row.releaseGroup\n : \"\"\n ) +\n \"\\n \"\n )\n ])\n : props.row.statusName === \"Subtitled\"\n ? _c(\"img\", {\n staticClass: \"addQTip\",\n staticStyle: { \"margin-right\": \"5px\" },\n attrs: {\n src:\n \"images/subtitles/\" +\n props.row.provider.id +\n \".png\",\n alt: props.row.provider.name,\n width: \"16\",\n height: \"16\",\n title: props.row.provider.name\n }\n })\n : _c(\"span\", [\n _vm._v(\n \"\\n \" +\n _vm._s(props.row.provider.name) +\n \"\\n \"\n )\n ])\n ],\n 2\n )\n : props.column.label === \"Release\" &&\n props.row.statusName === \"Subtitled\"\n ? _c(\"span\", { staticClass: \"align-center\" }, [\n props.row.resource !== \"und\"\n ? _c(\"img\", {\n attrs: {\n src:\n \"images/subtitles/flags/\" +\n props.row.resource +\n \".png\",\n width: \"16\",\n height: \"11\",\n alt: props.row.resource,\n onError:\n \"this.onerror=null;this.src='images/flags/unknown.png';\"\n }\n })\n : _c(\"img\", {\n staticClass: \"subtitle-flag\",\n attrs: {\n src:\n \"images/subtitles/flags/\" +\n props.row.resource +\n \".png\",\n width: \"16\",\n height: \"11\",\n alt: props.row.resource,\n onError:\n \"this.onerror=null;this.src='images/flags/unknown.png';\"\n }\n })\n ])\n : _c(\"span\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n props.formattedRow[props.column.field]\n ) +\n \"\\n \"\n )\n ])\n ]\n }\n }\n ])\n })\n ],\n 1\n )\n ]\n )\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/show-history.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }),